This commit is contained in:
KholdFuzion
2020-11-20 14:35:54 -06:00
parent c8f06419d6
commit 3858440e14
454 changed files with 427995 additions and 0 deletions
+69
View File
@@ -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
+11
View File
@@ -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"
+69
View File
@@ -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
+40
View File
@@ -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
+20
View File
@@ -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
+1370
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
#ifndef _AUDI_H_
#define _AUDI_H_
void amCreateAudioMgr(void);
void startaudiThread(void);
#endif
+3907
View File
File diff suppressed because it is too large Load Diff
+1434
View File
File diff suppressed because it is too large Load Diff
+41
View File
@@ -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
+352
View File
@@ -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
+108
View File
@@ -0,0 +1,108 @@
#include <ultra64.h>
#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
)
+12
View File
@@ -0,0 +1,12 @@
#ifndef _BOOT_H_
#define _BOOT_H_
#include <ultra64.h>
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
+899
View File
@@ -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
+1315
View File
File diff suppressed because it is too large Load Diff
+15
View File
@@ -0,0 +1,15 @@
#ifndef _BOSS_H_
#define _BOSS_H_
#include <ultra64.h>
#include "bondgame.h"
struct memallocstring
{
s32 id;
void *string;
};
void set_loaded_stage(LEVELID stage);
void bossInitDebugNoticeList(void);
#endif
+6
View File
@@ -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};
+7
View File
@@ -0,0 +1,7 @@
#ifndef _C_DATA_FILLER_H_
#define _C_DATA_FILLER_H_
#include <ultra64.h>
extern u8 c_data_array[0x11c00];
#endif
+5
View File
@@ -0,0 +1,5 @@
#include "ultra64.h"
#include "bondgame.h"
u8 cfb_16_a[320*240*2];
u8 cfb_16_b[320*240*2];
+278
View File
@@ -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;
}
+9
View File
@@ -0,0 +1,9 @@
#ifndef _DEB_H_
#define _DEB_H_
#include "ultra64.h"
void debInitDebugNoticeList(void);
void debCheckAddDebugNoticeListEntry(void *arg0, char *string);
#endif
+698
View File
@@ -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
+23
View File
@@ -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
+852
View File
@@ -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;
}
+8
View File
@@ -0,0 +1,8 @@
#ifndef _DEB_VIDEO_H_
#define _DEB_VIDEO_H_
#include "ultra64.h"
void tlbproc(void);
#endif
+56
View File
@@ -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
+1102
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
#ifndef _DEBUGMENU_H_
#define _DEBUGMENU_H_
#include <ultra64.h>
void blank_debug_buffer_chars(void);
void debugmenuInit_REMOVED(void);
#endif
+3
View File
@@ -0,0 +1,3 @@
#include "ultra64.h"
u8 _decompressBuffer[0xAB400];
+12195
View File
File diff suppressed because it is too large Load Diff
+45
View File
@@ -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
+933
View File
@@ -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
+653
View File
@@ -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
+35351
View File
File diff suppressed because it is too large Load Diff
+2876
View File
File diff suppressed because it is too large Load Diff
+3254
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -0,0 +1,8 @@
#ifndef _BONDINV_H_
#define _BONDINV_H_
#include "ultra64.h"
void reinit_BONDdata_inventory(void);
s32 bondinvIsAliveWithFlag(void);
#endif
+24961
View File
File diff suppressed because it is too large Load Diff
+76
View File
@@ -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
+611
View File
@@ -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
File diff suppressed because it is too large Load Diff
+15
View File
@@ -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
+7567
View File
File diff suppressed because it is too large Load Diff
+190
View File
@@ -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
+23191
View File
File diff suppressed because it is too large Load Diff
+21577
View File
File diff suppressed because it is too large Load Diff
+113
View File
@@ -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
File diff suppressed because it is too large Load Diff
+679
View File
@@ -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
File diff suppressed because it is too large Load Diff
+21
View File
@@ -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);
}
}
}
+11
View File
@@ -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();
}
+6
View File
@@ -0,0 +1,6 @@
#ifndef _CLEANUP_ALARMS_H_
#define _CLEANUP_ALARMS_H_
#include "ultra64.h"
void cleanupAlarms(void);
#endif
+113
View File
@@ -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
+107
View File
@@ -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
+15
View File
@@ -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
+10
View File
@@ -0,0 +1,10 @@
#ifndef _COMPILETIME_H_
#define _COMPILETIME_H_
#include "ultra64.h"
char *get_compile_time(void);
#endif
+43
View File
@@ -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;
}
+393
View File
@@ -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
+613
View File
@@ -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
File diff suppressed because it is too large Load Diff
+42
View File
@@ -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
+92
View File
@@ -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
+8
View File
@@ -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
+578
View File
@@ -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
+7
View File
@@ -0,0 +1,7 @@
#ifndef _DYN_H_
#define _DYN_H_
#include "ultra64.h"
void dynInitDebugNoticeList(void);
#endif
+58
View File
@@ -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
+1284
View File
File diff suppressed because it is too large Load Diff
+60
View File
@@ -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
+29
View File
@@ -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);
}
+7
View File
@@ -0,0 +1,7 @@
#ifndef _GAME_DEBUG_H_
#define _GAME_DEBUG_H_
#include "ultra64.h"
void gameInitDebugNoticeList(void);
#endif
+484
View File
@@ -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;
}
+39
View File
@@ -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
+2733
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -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
+9557
View File
File diff suppressed because it is too large Load Diff
+19
View File
@@ -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
+559
View File
@@ -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
File diff suppressed because it is too large Load Diff
+34
View File
@@ -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
+276
View File
@@ -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");
}
+9
View File
@@ -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
+265
View File
@@ -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
+243
View File
@@ -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
+663
View File
@@ -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
+718
View File
@@ -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;
}
}
+8
View File
@@ -0,0 +1,8 @@
#ifndef _INITACTORPROPSTUFF_H_
#define _INITACTORPROPSTUFF_H_
#include "ultra64.h"
void sub_GAME_7F0009A0(void);
#endif
+164
View File
@@ -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
File diff suppressed because it is too large Load Diff
+281
View File
@@ -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
+36
View File
@@ -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;
}
+7
View File
@@ -0,0 +1,7 @@
#ifndef _INITGAMEDATE_H_
#define _INITGAMEDATE_H_
#include "ultra64.h"
void initGameData(void);
#endif
+138
View File
@@ -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
+55
View File
@@ -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
+15
View File
@@ -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);
}
+87
View File
@@ -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
+86
View File
@@ -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
+57
View File
@@ -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
+6
View File
@@ -0,0 +1,6 @@
#include "ultra64.h"
void null_init_main_3(void) {
return;
}
+5
View File
@@ -0,0 +1,5 @@
#include "ultra64.h"
void null_init_main_2(void) {
return;
}

Some files were not shown because too many files have changed in this diff Show More