update public from private

This commit is contained in:
Larry Ficken
2021-03-08 12:58:16 -06:00
parent 045df04316
commit 858d640da7
247 changed files with 96750 additions and 34661 deletions
+811 -1133
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -1,7 +1,9 @@
#ifndef _AUDI_H_
#define _AUDI_H_
void amCreateAudioMgr(void);
void startaudiThread(void);
#include "ultra64.h"
void amCreateAudioManager(ALSynConfig* alconf);
void amStartAudioThread(void);
#endif
+1 -1
View File
@@ -131,7 +131,7 @@
#define TARGET_PAD 0x0008 // set target type to pad
#define TARGET_COMPASS 0x0010 // set target to compass direction (hex) N: 0000 E: C000 S: 8000: W: 4000
#define TARGET_AIM_ONLY 0x0020 // aim at target instead of firing
#define TARGET_180_RANGE 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag)
#define TARGET_DONTTURN 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag)
// command 18/19 - target body part values
#define HIT_NULL_PART 0x00 // null part, no reaction - 1x damage
+5 -2
View File
@@ -1027,8 +1027,8 @@ typedef enum SCREEN_SIZE
typedef enum COLORMODE
{
MODE_32BIT = 0x0,
MODE_16BIT = 0x1
COLORMODE_32BIT = 0x0,
COLORMODE_16BIT = 0x1
} COLORMODE;
typedef enum CAMERAMODE {
@@ -1270,6 +1270,9 @@ typedef enum ACT_TYPE {
ACT_THROWGRENADE,
ACT_TURNDIR,
ACT_TEST,
ACT_BONDINTRO,
ACT_BONDDIE,
ACT_BONDMULTI,
ACT_NULL
} ACT_TYPE;
+451 -1088
View File
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -9,7 +9,11 @@ struct memallocstring
void *string;
};
void set_loaded_stage(LEVELID stage);
LEVELID bossGetStageNum();
void bossSetLoadedStage(LEVELID stage);
void bossInitDebugNoticeList(void);
void bossEnableShowMemUseFlag(void);
void bossMemBarsFlagToggle(void);
void bossRunTitleStage(void);
#endif
+58 -248
View File
@@ -2,277 +2,87 @@
#include "bondgame.h"
#include "ramrom.h"
#include "deb.h"
#include "str.h"
#include "memp.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)
struct deblistentry
{
void *temp_s0;
void *phi_s0;
struct deblistentry *next;
u32 data;
const char *name;
s32 unused;
};
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;
u8 g_DebBuffer[0x400];
u32 g_DebDebugData[] = {0, 0};
struct deblistentry *g_DebList = NULL;
s32 D_800232EC[] = {0, 0, 0};
u8 *g_DebMemPos = g_DebBuffer;
struct deblistentry *debFind(const char *name)
{
struct deblistentry *entry = g_DebList;
while (entry != NULL) {
if (strcmp(entry->name, name) == 0) {
return entry;
}
entry = entry->next;
}
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;
u8 *debAllocate(s32 size) {
u8 **pos = &g_DebMemPos;
u8 *curr = *pos;
u8 *prev = curr;
curr += size;
if (curr > (g_DebBuffer + 0x400)) {
curr -= size;
*pos = curr;
return mempAllocBytesInBank(size, 6);
} else {
*pos = curr;
}
debug_notice_list_data = (u32) (temp_v0 - arg0);
return mempAllocBytesInBank(6);
return prev;
}
#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;
void debAdd(const char *name, u32 data) {
struct deblistentry *entry = debAllocate(sizeof(struct deblistentry));
entry->next = g_DebList;
entry->data = data;
entry->name = name;
g_DebList = entry;
}
#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");
void debInit(void) {
debTryAdd(&g_DebDebugData, "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);
void debTryAdd(void* data, const char *name) {
if (debFind(name) == NULL) {
debAdd(name, 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;
}
void deb70004E98(void) {
struct deblistentry *entry = g_DebList;
while (entry != NULL) {
// Removed
entry = entry->next;
}
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
* Removed
*/
void debRemoved70004EC4(s32 arg0, s32 arg1, s32 arg2)
{
return;
void deb70004EBC(void) {
// Removed
}
/**
* Removed
*/
void deb70004EC4(s32 arg0, s32 arg1, s32 arg2) {
// Removed
}
+2 -2
View File
@@ -3,7 +3,7 @@
#include "ultra64.h"
void debInitDebugNoticeList(void);
void debCheckAddDebugNoticeListEntry(void *arg0, char *string);
void debInit(void);
void debTryAdd(void *data, const char *name);
#endif
+243 -672
View File
@@ -1,698 +1,269 @@
#include "ultra64.h"
#include "deb_print.h"
#include "bondgame.h"
#include "video.h"
#include "PR/R4300.h"
/**
* @file deb_print.c
* This file contains the stderr manager.
*/
//im just padding
// 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
//The following regDesc's are similar to PR/Tools/Gload/Server.c
/*
* Cause Register
*/
#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
static regDesc_t causeDesc[] = {
{CAUSE_BD, CAUSE_BD, "BD"},
/* Interrupt pending bits */
{CAUSE_IP8, CAUSE_IP8, "IP8"},
{CAUSE_IP7, CAUSE_IP7, "IP7"},
{CAUSE_IP6, CAUSE_IP6, "IP6"},
{CAUSE_IP5, CAUSE_IP5, "IP5"},
{CAUSE_IP4, CAUSE_IP4, "IP4"},
{CAUSE_IP3, CAUSE_IP3, "IP3"},
{CAUSE_SW2, CAUSE_SW2, "IP2"},
{CAUSE_SW1, CAUSE_SW1, "IP1"},
/* Hardware exception codes */
{CAUSE_EXCMASK, EXC_INT, "Int"},
{CAUSE_EXCMASK, EXC_MOD, "TLBmod"},
{CAUSE_EXCMASK, EXC_RMISS, "TLBload"},
{CAUSE_EXCMASK, EXC_WMISS, "TLBstore"},
{CAUSE_EXCMASK, EXC_RADE, "Address error on load or instruction fetch"},
{CAUSE_EXCMASK, EXC_WADE, "Address error on store"},
{CAUSE_EXCMASK, EXC_IBE, "Bus error exception on instruction fetch"},
{CAUSE_EXCMASK, EXC_DBE, "Bus error exception on data reference"},
{CAUSE_EXCMASK, EXC_SYSCALL, "Syscall"},
{CAUSE_EXCMASK, EXC_BREAK, "Brk"},
{CAUSE_EXCMASK, EXC_II, "Reserved instruction"},
{CAUSE_EXCMASK, EXC_CPU, "Cop unusable"},
{CAUSE_EXCMASK, EXC_OV, "Overflow"},
{CAUSE_EXCMASK, EXC_TRAP, "Trap"},
{CAUSE_EXCMASK,
EXC_VCEI,
"Virtual coherency exception on intruction fetch"},
{CAUSE_EXCMASK, EXC_FPE, "Fp exception"},
{CAUSE_EXCMASK, EXC_WATCH, "Watchpoint"},
{CAUSE_EXCMASK, EXC_VCED, "Virtual coherency exception on data reference"},
{0, 0, ""},
};
/**
* 62BC 700056BC
* write char A0 to stderr
* accepts: A0=char
/*
* Status register
*/
#ifdef NONMATCHING
void __osRdbSend(void) {
static regDesc_t srDesc[] = {
{SR_CU3, SR_CU3, "CU3"},
{SR_CU2, SR_CU2, "CU2"},
{SR_CU1, SR_CU1, "CU1"},
{SR_CU0, SR_CU0, "CU0"},
{SR_RP, SR_RP, "RP"},
{SR_FR, SR_FR, "FR"},
{SR_RE, SR_RE, "RE"},
{SR_BEV, SR_BEV, "BEV"},
{SR_TS, SR_TS, "TS"},
{SR_SR, SR_SR, "SR"},
{SR_CH, SR_CH, "CH"},
{SR_CE, SR_CE, "CE"},
{SR_DE, SR_DE, "DE"},
}
#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
/*
* Interrupt enable bits
* (NOTE: bits set to 1 enable the corresponding level interrupt)
*/
{SR_IBIT8, SR_IBIT8, "IM8"},
{SR_IBIT7, SR_IBIT7, "IM7"},
{SR_IBIT6, SR_IBIT6, "IM6"},
{SR_IBIT5, SR_IBIT5, "IM5"},
{SR_IBIT4, SR_IBIT4, "IM4"},
{SR_IBIT3, SR_IBIT3, "IM3"},
{SR_IBIT2, SR_IBIT2, "IM2"},
{SR_IBIT1, SR_IBIT1, "IM1"},
{SR_KX, SR_KX, "KX"},
{SR_SX, SR_SX, "SX"},
{SR_UX, SR_UX, "UX"},
{SR_KSU_MASK, SR_KSU_USR, "USR"},
{SR_KSU_MASK, SR_KSU_SUP, "SUP"},
{SR_KSU_MASK, SR_KSU_KER, "KER"},
{SR_ERL, SR_ERL, "ERL"},
{SR_EXL, SR_EXL, "EXL"},
{SR_IE, SR_IE, "IE"},
{0, 0, ""}
};
/**
* 63CC 700057CC
* scroll stderr down one line
* accepts: A0=ypos
/*
* floating-point status register
*/
#ifdef NONMATCHING
s32 scroll_stderr_oneline(s32 arg0) {
void *temp_a1_2;
void *temp_a1;
static regDesc_t fpcsrDesc[] = {
{FPCSR_FS, FPCSR_FS, "FS"},
{FPCSR_C, FPCSR_C, "C"},
{FPCSR_CE, FPCSR_CE, "Unimplemented"},
{FPCSR_CV, FPCSR_CV, "Invalid op"},
{FPCSR_CZ, FPCSR_CZ, "/ by 0.0"},
{FPCSR_CO, FPCSR_CO, "Overflow"},
{FPCSR_CU, FPCSR_CU, "Underflow"},
{FPCSR_CI, FPCSR_CI, "Inexact op"},
{FPCSR_EV, FPCSR_EV, "EV"},
{FPCSR_EZ, FPCSR_EZ, "EZ"},
{FPCSR_EO, FPCSR_EO, "EO"},
{FPCSR_EU, FPCSR_EU, "EU"},
{FPCSR_EI, FPCSR_EI, "EI"},
{FPCSR_FV, FPCSR_FV, "FV"},
{FPCSR_FZ, FPCSR_FZ, "FZ"},
{FPCSR_FO, FPCSR_FO, "FO"},
{FPCSR_FU, FPCSR_FU, "FU"},
{FPCSR_FI, FPCSR_FI, "FI"},
{FPCSR_RM_MASK, FPCSR_RM_RN, "RN"},
{FPCSR_RM_MASK, FPCSR_RM_RZ, "RZ"},
{FPCSR_RM_MASK, FPCSR_RM_RP, "RP"},
{FPCSR_RM_MASK, FPCSR_RM_RM, "RM"},
{0, 0, ""}
};
// 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;
}
void *g_StackPtrs1[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
void *g_StackPtrs2[] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug};
void *g_StackPtrs3[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
// 71 x 32 text buffer (32th line is not drawn)
unsigned char g_DebugOutputTextBuffer[32][71] = {0};
static s32 g_DebugOutputCurrentPosX = 0;
static s32 g_DebugOutputCurrentPosY = 0;
// 4 x 7 bitmaps of ascii characters (0x20 - 0x7E), each padded to 32 bits
u32 g_DebugOutputBitmaps[] = {
0x00000000, 0x22220200, 0x55000000, 0x05F5F500, 0x27427200, // ' ', '!', '\"', '#', '$'
0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, // '%', '&', '\'', '(', ')'
0x06F6F600, 0x00272000, 0x00000240, 0x00070000, 0x00000200, // '*', '+', '´', '-', '.'
0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, // '/', '0', '1', '2', '3'
0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, // '4', '5', '6', '7', '8'
0x25531600, 0x00200200, 0x00200640, 0x01242100, 0x00707000, // '9', ':', ';', '<', '='
0x04212400, 0x07120200, 0x25FF5700, 0x02557D00, 0x06575E00, // '>', '?', '@', 'A', 'B'
0x07445300, 0x07555600, 0x07565700, 0x07564400, 0x07C95700, // 'C', 'D', 'E', 'F', 'G'
0x05575500, 0x07222700, 0x03111600, 0x05665500, 0x04445F00, // 'H', 'I', 'J', 'K', 'L'
0x0DFF9D00, 0x0F777D00, 0x07DD5700, 0x07564600, 0x07995770, // 'M', 'N', 'O', 'P', 'Q'
0x07565500, 0x07461E00, 0x07222200, 0x0D999600, 0x0D552200, // 'R', 'S', 'T', 'U', 'V'
0x0DF77500, 0x0D625500, 0x05622600, 0x07125700, 0x32222230, // 'W', 'X', 'Y', 'Z', '['
0x44222110, 0x62222260, 0x25000000, 0x00000700, 0x42200000, // '\\', ']', '^', '_', '`'
0x0067D700, 0x44755700, 0x00788600, 0x117DD700, 0x006FC700, // 'a', 'b', 'c', 'd', 'e'
0x32722700, 0x007DD730, 0x44755500, 0x02622700, 0x02711130, // 'f', 'g', 'h', 'i', 'j',
0x44766500, 0x62222700, 0x00FFFF00, 0x00755D00, 0x006DD600, // 'k', 'l', 'm', 'n', 'o'
0x00755740, 0x00799710, 0x00744600, 0x00775700, 0x02722300, // 'p', 'q', 'r', 's', 't'
0x00555700, 0x00552200, 0x00577500, 0x00562500, 0x00552220, // 'u', 'v', 'w', 'x', 'y'
0x00703700, 0x12242210, 0x02222220, 0x42212240, 0x005A0000 // 'z', '{', '|', '}', '~'
};
u16 *g_DebugOutputVideoBuffer1 = NULL;
u16 *g_DebugOutputVideoBuffer2 = NULL;
// Padding
u32 D_80024184[4] = {0};
void deboutWriteCharAtPos(s32 x, s32 y, unsigned char c) {
if ((c == '\t') || (c == '\n')) {
c = '\0';
}
// (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
if ((c > '\0') && (c < ' ') || (c > '~')) {
c = '?';
}
// 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;
if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31))) {
g_DebugOutputTextBuffer[y][x] = c;
}
}
void deboutWriteChar(unsigned char c) {
if (c != '\0') {
if (c == '\t') {
do {
deboutWriteChar(' ');
} while (g_DebugOutputCurrentPosX & 7);
return;
}
if (c == '\n') {
g_DebugOutputCurrentPosY++;
g_DebugOutputCurrentPosX = 0;
}
if (g_DebugOutputCurrentPosY > 30) {
deboutScrollUp(g_DebugOutputCurrentPosY - 30);
g_DebugOutputCurrentPosY = 30;
}
if (c != '\n') {
deboutWriteCharAtPos(g_DebugOutputCurrentPosX, g_DebugOutputCurrentPosY, c);
g_DebugOutputCurrentPosX++;
if (g_DebugOutputCurrentPosX > 70) {
g_DebugOutputCurrentPosX = 0;
g_DebugOutputCurrentPosY++;
}
}
}
// (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);
void deboutScrollUp(s32 numlines) {
s32 y;
s32 x;
while (numlines-- > 0) {
for (y = 0; y < 31; y++) {
for (x = 0; x < 71; x++) {
g_DebugOutputTextBuffer[y][x] = g_DebugOutputTextBuffer[y + 1][x];
}
}
}
}
/**
* 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[0], &cfb_16[1]);
void deboutDrawChar(s32 x, s32 y, unsigned char c) {
s32 bitmap_x;
s32 bitmap_y;
u32 bitmap;
s16 screen_w = viGetX();
u16 *ptr;
if (c == '\0') {
c = ' ';
}
if ((c >= ' ') && (c <= '~')) {
ptr = (g_DebugOutputVideoBuffer1 + x + (y * screen_w));
bitmap = g_DebugOutputBitmaps[c - ' '];
for (bitmap_y = 0; bitmap_y < 7; bitmap_y++) {
for (bitmap_x = 0; bitmap_x < 4; bitmap_x++) {
if (bitmap & (1 << 31)) {
*ptr = GPACK_RGBA5551(255, 255, 255, 1);
} else {
*ptr = GPACK_RGBA5551(0, 0, 0, 1);
}
ptr++;
bitmap <<= 1;
}
ptr += screen_w;
ptr -= 4;
}
}
}
/**
* 65D0 700059D0
* write stderr to video buffer A0
* accepts: A0=p->video buffer
*/
#ifdef NONMATCHING
void write_stderr_to_buffer(void) {
void deboutSetBuffers(u16 *buffer1, u16 *buffer2) {
g_DebugOutputVideoBuffer1 = K0_TO_K1(buffer1);
g_DebugOutputVideoBuffer2 = K0_TO_K1(buffer2);
}
void deboutInitBuffers(void) {
deboutSetBuffers(&cfb_16[0], &cfb_16[1]);
}
void deboutDrawToBuffer(u16 *buffer) {
s32 screen_w;
s32 screen_h;
s32 output_w;
s32 output_h;
s32 x;
s32 y;
deboutInitBuffers();
g_DebugOutputVideoBuffer1 = K0_TO_K1(buffer);
screen_w = ((viGetX() - 13) / 4);
screen_h = ((viGetY() - 10) / 7);
output_w = screen_w - 5; // - margin_w
output_h = screen_h - 1; // - margin_h
for (y = 0; ((y < output_h) && (y < 31)); y++) {
for (x = 0; ((x < output_w) && (x < 71)); x++) {
deboutDrawChar(((x + 5) * 4), ((y + 1) * 7), g_DebugOutputTextBuffer[y][x]);
}
}
}
#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
+13 -14
View File
@@ -3,21 +3,20 @@
#include "ultra64.h"
//im just padding
extern u32 D_80023300;
struct debug_processor_error_entry
typedef struct
{
u32 val1;
u32 val2;
void *string;
};
u32 mask;
u32 value;
char *string;
} regDesc_t;
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];
extern void *g_StackPtrs1[];
extern void *g_StackPtrs2[];
extern void *g_StackPtrs3[];
void deboutWriteChar(unsigned char c);
void deboutScrollUp(s32 numlines);
void deboutInitBuffers();
void deboutDrawToBuffer(u16 *buffer);
void write_stderr_to_buffer(u32 *buffer);
#endif
+31 -156
View File
@@ -2,6 +2,7 @@
#include "ultra64.h"
#include "bondgame.h"
#include "deb_video.h"
#include "tlb_manage.h"
/**
* @file deb_video.c
@@ -10,6 +11,13 @@
* I should probably be renamed...
*/
#define IEEE_FLOAT_FRACTION_BITMASK 0x7FFFFF
#define IEEE_FLOAT_FRACTION_BIT_COUNT 23
#define IEEE_FLOAT_EXPONENT_BITMASK 0x7F800000
#define IEEE_FLOAT_EXPONENT_BIT_COUNT 8
#define IEEE_FLOAT_SIGN_BITMASK 0x80000000
#define IEEE_FLOAT_SIGN_BIT_COUNT 1
//bss
char tlbthread[0x6B0];
char tlbStack[0x2300];
@@ -27,7 +35,7 @@ char indy_read_buffer[0x60];
* 5AE0 70004EE0
*/
void init_tlb(void) {
set_video_buffer_pointers();
deboutInitBuffers();
osCreateMesgQueue(&tlbMesgQ, &tlbMesgBuf, 1);
osCreateThread(&tlbthread, 5, &tlbproc, 0, &tlbStack, 0x28);
osStartThread(&tlbthread);
@@ -98,7 +106,7 @@ glabel tlbproc
/* 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
/* 005C14 70005014 0C000676 */ jal tlbmanageTranslateLoadRomFromTlbAddress
/* 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)
@@ -545,16 +553,16 @@ s32 debug_sp_related_11(u32 arg0, u32 arg1)
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;
sp1C = (?32) g_StackPtrs1;
sp1C.unk4 = (?32) g_StackPtrs1.unk4;
sp1C.unk8 = (?32) g_StackPtrs1.unk8;
sp1C.unkC = (?32) g_StackPtrs1.unkC;
sp1C.unk10 = (?32) g_StackPtrs1.unk10;
sp8 = (?32) g_StackPtrs2;
sp8.unk4 = (?32) g_StackPtrs2.unk4;
sp8.unk8 = (?32) g_StackPtrs2.unk8;
sp8.unkC = (?32) g_StackPtrs2.unkC;
sp8.unk10 = (?32) g_StackPtrs2.unk10;
if (arg1 <= 0)
{
return 0;
@@ -575,15 +583,15 @@ s32 debug_sp_related_11(u32 arg0, u32 arg1)
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
/* 006020 70005420 3C0E8002 */ lui $t6, %hi(g_StackPtrs1)
/* 006024 70005424 25CE36DC */ addiu $t6, %lo(g_StackPtrs1) # 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
/* 00603C 7000543C 3C098002 */ lui $t1, %hi(g_StackPtrs2)
/* 006040 70005440 252936F0 */ addiu $t1, %lo(g_StackPtrs2) # 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
@@ -645,11 +653,11 @@ 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;
sp4 = (?32) g_StackPtrs3;
sp4.unk4 = (?32) g_StackPtrs3.unk4;
sp4.unk8 = (?32) g_StackPtrs3.unk8;
sp4.unkC = (?32) g_StackPtrs3.unkC;
sp4.unk10 = (?32) g_StackPtrs3.unk10;
if (arg1 <= 0)
{
// Node 2
@@ -678,8 +686,8 @@ s32 debug_sp_related_12(u32 arg0, u32 arg1) {
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
/* 0060E4 700054E4 3C0E8002 */ lui $t6, %hi(g_StackPtrs3)
/* 0060E8 700054E8 25CE3704 */ addiu $t6, %lo(g_StackPtrs3) # addiu $t6, $t6, 0x3704
/* 0060EC 700054EC 8DC10000 */ lw $at, ($t6)
/* 0060F0 700054F0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0060F4 700054F4 27A20004 */ addiu $v0, $sp, 4
@@ -717,136 +725,3 @@ glabel debug_sp_related_12
#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;
}
+368 -824
View File
File diff suppressed because it is too large Load Diff
+10 -2
View File
@@ -2,6 +2,14 @@
#define _DEBUGMENU_H_
#include <ultra64.h>
void blank_debug_buffer_chars(void);
void debugmenuInit_REMOVED(void);
void debmenu7000ADA8(void);
void debmenuInit(void);
void debmenuReset(void);
void debmenuSetPosition(s32 x, s32 y);
void debmenuSetPrimColor(s32 r, s32 g, s32 b, s32 a);
void debmenuSetEnvColor(s32 r, s32 g, s32 b, s32 a);
void debmenuWriteString(const unsigned char *str);
Gfx *debmenuDraw(Gfx *gdl);
#endif
+176 -194
View File
@@ -250,237 +250,219 @@ u32 D_80044924 = 0;
*/
//D:80044928
Gfx D_80044928[] = {
0xFC26A004, 0x1F1093FF, 0xFC232DFF, 0xFFFFFE38,
//gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2),
//gDPSetCombineLERP(TEXEL1, 0, COMBINED_ALPHA, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
0x0,0x0
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
0,0
};
//D:80044940 - Primary
Gfx D_80044940[] = {
0xB900031D, 0x0C192078, 0xB900031D, 0xC8112078,
0xB900031D, 0x0C182078, 0xB900031D, 0xC8102078,
0xB900031D, 0x0C192D58, 0xB900031D, 0xC8112D58,
0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8,
0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8,
0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078,
0xB900031D, 0x0C192048, 0xB900031D, 0xC8112048,
0xB900031D, 0x0C182048, 0xB900031D, 0xC8102048,
/*
Gfx FogDL_primary_80044940[] = {
//Add FOG to all rendermodes
//Standard HiQuality Surface to Standard Fogable HiQuality Surface
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
//Terrain to Fogable Terrain
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2),
//Standard DECAL to FOG DECAL
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2),
//Transparent DECAL to FOG Transparent DECAL
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
//Transparent Surface to FOG Transparent Surface
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
// Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp
// See PGDLists\Transparent Textures.htm for more info
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
//Standard Z-Less OPA to Standard FOG Z-Less OPA
gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2),
//Z-Less OPA Terrain to Z-Less Fog OPA Terrain
gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2),
*/
0x0, 0x0
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2),
0x0, 0x0
};
//D:800449C8 - Secondary
Gfx D_800449C8[] = {
0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8,
0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8,
0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078,
0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF,
0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF,
0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD,
0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD,
0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF,
0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF,
0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD,
0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD,
0xFCFFFFFF, 0xFFFE7838, 0xFCFFFFFF, 0xFFFE7A38,
0xFCFFFFFF, 0xFFFE793C, 0xFCFFFFFF, 0xFFFE7B3D,
0xFC26E404, 0x1F10FFFF, 0xFC26E404, 0x1F14FFFF,
/*
Gfx FogDL_secondary_800449C8[] = {
//Add FOG to Rendermodes
//Transparent DECAL to FOG Transparent DECAL
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
//Transparent Surface to FOG Transparent Surface
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
// Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
0xB900031D, 0x0C193078,
0xB900031D, 0xC8113078,
// Swap all refrences to Shade in Alpha to Environment
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA),
gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2),
gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
// This one is an oddball... its extra here AND is weird using Tile1 only for Alpha
gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA) , gDPSetCombineMode(TLRGB_ATile1, ModulateRGB_EnvA2),
*/
0x0, 0x0
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
0x0,
0x0
};
//D:80044AB0
// Loaded once on first time entering level, only once ever
u64 D_80044AB0[] = {
0xFC26A0041F1093FF, 0xFC26A0041F1493FF,
0xFC121824FF33FFFF, 0xFC121A24FF37FFFF,
0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD,
0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD,
0xFC26A0041F1093FF, 0xFC26A0041F1493FF,
0xFC121824FF33FFFF, 0xFC121A24FF37FFFF,
0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD,
0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD,
0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38,
0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D,
/*
// Swap all refrences to Shade in Alpha to Environment
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA),
gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2),
gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA),
*/
0x0
Gfx D_80044AB0[] = {
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
0,0
};
//D:80044B58
// Loaded once on first time entering level, only once ever
u64 D_80044B58[] = {
0xFC26A0041F1093FF, 0xFC26A0041F1493FF,
0xFC121824FF33FFFF, 0xFC121A24FF37FFFF,
0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD,
0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD,
0xFC26A0041F1093FF, 0xFC26A0041F1493FF,
0xFC121824FF33FFFF, 0xFC121A24FF37FFFF,
0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD,
0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD,
0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38,
0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D,
/*
// Swap all refrences to Shade in Alpha to Environment
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2),
gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA2),
*/
0x0
Gfx D_80044B58[] = {
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
0,0
};
//D:80044C00
u64 D_80044C00[] = {
0xB900031D005049D8, 0xB900031D00553078,
0xB900031D0C1849D8, 0xB900031D0C193078,
/*
Gfx BillboardDL_80044C00[] = {
//Transparent 1Cycle to BillBoard 1Cycle
gDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
//Transparent Surface to Billboard
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
*/
0x0
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
0x0,0x0
};
//D:80044C28
//water
u64 D_80044C28[] = {
0xB900031D00552078, 0xB900031D00502078,
0xB900031D0C192078, 0xB900031D0C182078,
Gfx ParticleDL_80044C28[] = {
0xB900031D, 0x00552078, 0xB900031D, 0x00502078,
0xB900031D, 0x0C192078, 0xB900031D, 0x0C182078,
/*
//1 Cycle Opa to Particle
gDPSetRenderMode(RM_AA_ZB_OPA_SURF, RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_AA_ZB_PCL_SURF, G_RM_AA_ZB_PCL_SURF2),
//2 cycle Opa to Particle
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_PCL_SURF2),
*/
0x0
0x0, 0
};
//D:80044C50
u64 D_80044C50[] = {
0xB900031D0C1849D8, 0xB900031D0C184B50,
/*
Gfx transparent2cloudDL_80044C50[] = {
//Transparent to Cloud (Saves AA - Stops Jaggies from appearing behind BillBoard)
gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2),
*/
0x0
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2),
0,0
};
//D:80044C68
//(Wallet Bond - Main Menu)
u64 D_80044C68[] = {
0xBA00140200000000, 0xBA00140200100000, //1Cycle --> 2Cycle
0xB900031D00502048, 0xB900031D08D02048,
0xFC127E24FFFFF9FC, 0xFC127FFFFFFFF838,
Gfx WalletBondDL_80044C68[] = {
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPSetCycleType(G_CYC_2CYCLE), //1Cycle --> 2Cycle
0xB900031D, 0x00502048,
0xB900031D, 0x08D02048,
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
/*
//1 Cycle particle Surface to 2 Cycle colour + 1-a*Fog ???
gsDPSetCycleType(G_CYC_2CYCLE),
gDPSetRenderMode(G_RM_AA_PCL_SURF, G_RM_AA_PCL_SURF2), gDPSetRenderMode(AA_EN | IM_RD | CVG_DST_CLAMP | ALPHA_CVG_SEL | ZMODE_OPA | GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA) | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2), gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2),
*/
0x0
0x0, 0
};
//D:80044CA0
u64 D_80044CA0[] = {
0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD,
0xFC121824FF33FFFF, 0xFC131A26FF37FFFF,
0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD,
0xFC121824FF33FFFF, 0xFC131A26FF37FFFF,
0xFCFFFFFFFFFE793C, 0xFC637EC6FFFFFBFD,
0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD,
0xFC26A0041F1093FF, 0xFC26A0061F1493FF,
0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD,
0xFC26A0041F1093FF, 0xFC26A0061F1493FF,
0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD,
0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF,
0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD,
0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF,
0xFCFFFFFFFFFE7838, 0xFC637FFFFFFFFA38,
/*
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2),
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2),
gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT),
gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0),
gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT),
gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0),
gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT),
gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0),
gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
*/
0x0
Gfx D_80044CA0[] = {
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
0,0
};
//D:80044D88
s32 *ptrDynamic_CC_RM_LUT[] = {
&D_80044928, &D_80044940, &D_80044C00, &D_80044C28, &D_80044C50,
&D_800449C8, &D_80044AB0, &D_80044B58, &D_80044C68, &D_80044CA0
&D_80044928, &FogDL_primary_80044940, &BillboardDL_80044C00, &ParticleDL_80044C28, &transparent2cloudDL_80044C50,
&FogDL_secondary_800449C8, &D_80044AB0, &D_80044B58, &WalletBondDL_80044C68, &D_80044CA0
};
//D:80044DB0
s32 D_80044DB0 = 0;
@@ -492,7 +474,7 @@ s32 D_80044DB0 = 0;
void bgInitDebugNoticeList(void) {
debCheckAddDebugNoticeListEntry(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug");
debTryAdd(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug");
}
@@ -2883,7 +2865,7 @@ void sub_GAME_7F0B5208(s32 arg0, void *arg1) {
s32 phi_s3_3;
// Node 0
video_related_27(&sp3C);
viGetZRange(&sp3C);
sp40 = (f32) (sp40 / D_800413FC);
phi_v1 = 0;
phi_a2 = ((arg0 * 0x50) + &array_room_info);
@@ -3077,7 +3059,7 @@ glabel sub_GAME_7F0B5208
/* 0E9D70 7F0B5240 00009825 */ move $s3, $zero
/* 0E9D74 7F0B5244 0000A025 */ move $s4, $zero
/* 0E9D78 7F0B5248 0000A825 */ move $s5, $zero
/* 0E9D7C 7F0B524C 0C0011AB */ jal video_related_27
/* 0E9D7C 7F0B524C 0C0011AB */ jal viGetZRange
/* 0E9D80 7F0B5250 27A4003C */ addiu $a0, $sp, 0x3c
/* 0E9D84 7F0B5254 3C018004 */ lui $at, %hi(D_800413FC)
/* 0E9D88 7F0B5258 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at)
@@ -3347,7 +3329,7 @@ glabel sub_GAME_7F0B5528
/* 0EA09C 7F0B556C AFA400B0 */ sw $a0, 0xb0($sp)
/* 0EA0A0 7F0B5570 AFA200AC */ sw $v0, 0xac($sp)
/* 0EA0A4 7F0B5574 241E0001 */ li $fp, 1
/* 0EA0A8 7F0B5578 0C0011AB */ jal video_related_27
/* 0EA0A8 7F0B5578 0C0011AB */ jal viGetZRange
/* 0EA0AC 7F0B557C 27A40098 */ addiu $a0, $sp, 0x98
/* 0EA0B0 7F0B5580 3C018004 */ lui $at, %hi(D_800413FC)
/* 0EA0B4 7F0B5584 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at)
@@ -4869,11 +4851,11 @@ void sub_GAME_7F0B6368(s32 rooms) {
{
// Node 5
sp1C = temp_v1;
sp2C = mem_related_0(0);
sp2C = memaGetLargestAllocSize(0);
}
// Node 6
sp1C = (void *) temp_v1;
temp_ret = mem_related_something_find_first(sp2C, sp28);
temp_ret = memaFree(sp2C, sp28);
temp_v1_2 = temp_v1;
sp20 = temp_ret;
if (temp_ret != 0)
@@ -4948,7 +4930,7 @@ void sub_GAME_7F0B6368(s32 rooms) {
{
// Node 19
sp1C = (void *) phi_v1_2;
mem_related_1(sp20, sp2C, temp_t1, phi_a3_2);
memaResize(sp20, sp2C, temp_t1, phi_a3_2);
phi_v1_3 = phi_v1_2;
}
// Node 20
@@ -5024,7 +5006,7 @@ glabel sub_GAME_7F0B6368
/* 0EAF10 7F0B63E0 AFAB002C */ sw $t3, 0x2c($sp)
/* 0EAF14 7F0B63E4 AFA3001C */ sw $v1, 0x1c($sp)
.L7F0B63E8:
/* 0EAF18 7F0B63E8 0C0028DC */ jal mem_related_0
/* 0EAF18 7F0B63E8 0C0028DC */ jal memaGetLargestAllocSize
/* 0EAF1C 7F0B63EC AFA70028 */ sw $a3, 0x28($sp)
/* 0EAF20 7F0B63F0 8FA3001C */ lw $v1, 0x1c($sp)
/* 0EAF24 7F0B63F4 8FA70028 */ lw $a3, 0x28($sp)
@@ -5032,7 +5014,7 @@ glabel sub_GAME_7F0B6368
.L7F0B63FC:
/* 0EAF2C 7F0B63FC 8FA4002C */ lw $a0, 0x2c($sp)
/* 0EAF30 7F0B6400 AFA3001C */ sw $v1, 0x1c($sp)
/* 0EAF34 7F0B6404 0C00278D */ jal mem_related_something_find_first
/* 0EAF34 7F0B6404 0C00278D */ jal memaFree
/* 0EAF38 7F0B6408 AFA70028 */ sw $a3, 0x28($sp)
/* 0EAF3C 7F0B640C 8FA3001C */ lw $v1, 0x1c($sp)
/* 0EAF40 7F0B6410 8FA70028 */ lw $a3, 0x28($sp)
@@ -5104,7 +5086,7 @@ glabel sub_GAME_7F0B6368
/* 0EB034 7F0B6504 8FA40020 */ lw $a0, 0x20($sp)
/* 0EB038 7F0B6508 01602825 */ move $a1, $t3
/* 0EB03C 7F0B650C 01203025 */ move $a2, $t1
/* 0EB040 7F0B6510 0C0028F7 */ jal mem_related_1
/* 0EB040 7F0B6510 0C0028F7 */ jal memaResize
/* 0EB044 7F0B6514 AFA3001C */ sw $v1, 0x1c($sp)
/* 0EB048 7F0B6518 8FA3001C */ lw $v1, 0x1c($sp)
.L7F0B651C:
@@ -5170,7 +5152,7 @@ void sub_GAME_7F0B65C4(s32 arg0) {
if (temp_s0->unk2C != 0)
{
// Node 1
mem_related_model_room_buffers_0(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C);
memaRegister(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C);
temp_s0->unk2C = 0;
}
// Node 2
@@ -5180,13 +5162,13 @@ void sub_GAME_7F0B65C4(s32 arg0) {
if (temp_s0->unk4 != 0)
{
// Node 4
mem_related_model_room_buffers_0(temp_s0->unk4, temp_s0->unk28);
memaRegister(temp_s0->unk4, temp_s0->unk28);
temp_s0->unk4 = 0;
}
else
{
// Node 5
mem_related_model_room_buffers_0(temp_s0->unk8, temp_s0->unk28);
memaRegister(temp_s0->unk8, temp_s0->unk28);
temp_s0->unk4 = 0;
}
// Node 6
@@ -5221,7 +5203,7 @@ glabel sub_GAME_7F0B65C4
/* 0EB138 7F0B6608 0018C080 */ sll $t8, $t8, 2
/* 0EB13C 7F0B660C 2705000F */ addiu $a1, $t8, 0xf
/* 0EB140 7F0B6610 00A1C824 */ and $t9, $a1, $at
/* 0EB144 7F0B6614 0C002808 */ jal mem_related_model_room_buffers_0
/* 0EB144 7F0B6614 0C002808 */ jal memaRegister
/* 0EB148 7F0B6618 03202825 */ move $a1, $t9
/* 0EB14C 7F0B661C AE00002C */ sw $zero, 0x2c($s0)
/* 0EB150 7F0B6620 8E020028 */ lw $v0, 0x28($s0)
@@ -5232,12 +5214,12 @@ glabel sub_GAME_7F0B65C4
/* 0EB160 7F0B6630 00402825 */ move $a1, $v0
/* 0EB164 7F0B6634 10800005 */ beqz $a0, .L7F0B664C
/* 0EB168 7F0B6638 00000000 */ nop
/* 0EB16C 7F0B663C 0C002808 */ jal mem_related_model_room_buffers_0
/* 0EB16C 7F0B663C 0C002808 */ jal memaRegister
/* 0EB170 7F0B6640 00402825 */ move $a1, $v0
/* 0EB174 7F0B6644 10000004 */ b .L7F0B6658
/* 0EB178 7F0B6648 AE000004 */ sw $zero, 4($s0)
.L7F0B664C:
/* 0EB17C 7F0B664C 0C002808 */ jal mem_related_model_room_buffers_0
/* 0EB17C 7F0B664C 0C002808 */ jal memaRegister
/* 0EB180 7F0B6650 8E040008 */ lw $a0, 8($s0)
/* 0EB184 7F0B6654 AE000004 */ sw $zero, 4($s0)
.L7F0B6658:
@@ -5696,7 +5678,7 @@ loop_3:
temp_t8 = (((((phi_t5 * 8) - phi_t5) * 4) + 0xf) & -0x10);
sp24 = temp_t8;
sp3C = (s32) phi_t5;
temp_ret = mem_related_something_find_first(temp_t8, temp_a1, temp_a1->unk8);
temp_ret = memaFree(temp_t8, temp_a1, temp_a1->unk8);
if (temp_ret != 0)
{
// Node 7
@@ -5881,7 +5863,7 @@ glabel sub_GAME_7F0B6994
/* 0EB55C 7F0B6A2C AFB80024 */ sw $t8, 0x24($sp)
/* 0EB560 7F0B6A30 AFA50028 */ sw $a1, 0x28($sp)
/* 0EB564 7F0B6A34 AFA60048 */ sw $a2, 0x48($sp)
/* 0EB568 7F0B6A38 0C00278D */ jal mem_related_something_find_first
/* 0EB568 7F0B6A38 0C00278D */ jal memaFree
/* 0EB56C 7F0B6A3C AFAD003C */ sw $t5, 0x3c($sp)
/* 0EB570 7F0B6A40 8FA50028 */ lw $a1, 0x28($sp)
/* 0EB574 7F0B6A44 8FA60048 */ lw $a2, 0x48($sp)
@@ -9760,8 +9742,8 @@ f32 sub_GAME_7F0B908C(void) {
// Node 0
sp2C = (f32) D_80041404;
sp24 = (f32) D_80041404.unk4;
sp28 = (f32) ((f32) D_8004140C + (f32) get_video2_settings_txtClipW());
sp20 = (f32) ((f32) D_80041410 + (f32) get_video2_settings_txtClipH());
sp28 = (f32) ((f32) D_8004140C + (f32) viGetX());
sp20 = (f32) ((f32) D_80041410 + (f32) viGetY());
pPlayer->unk1118 = (f32) viGetViewLeft();
if (pPlayer->unk1118 < sp2C)
{
@@ -9833,7 +9815,7 @@ glabel sub_GAME_7F0B908C
/* 0EDBDC 7F0B90AC 468021A0 */ cvt.s.w $f6, $f4
/* 0EDBE0 7F0B90B0 468042A0 */ cvt.s.w $f10, $f8
/* 0EDBE4 7F0B90B4 E7A6002C */ swc1 $f6, 0x2c($sp)
/* 0EDBE8 7F0B90B8 0C001107 */ jal get_video2_settings_txtClipW
/* 0EDBE8 7F0B90B8 0C001107 */ jal viGetX
/* 0EDBEC 7F0B90BC E7AA0024 */ swc1 $f10, 0x24($sp)
/* 0EDBF0 7F0B90C0 3C188004 */ lui $t8, %hi(D_8004140C)
/* 0EDBF4 7F0B90C4 8F18140C */ lw $t8, %lo(D_8004140C)($t8)
@@ -9842,7 +9824,7 @@ glabel sub_GAME_7F0B908C
/* 0EDC00 7F0B90D0 468021A0 */ cvt.s.w $f6, $f4
/* 0EDC04 7F0B90D4 468084A0 */ cvt.s.w $f18, $f16
/* 0EDC08 7F0B90D8 46069200 */ add.s $f8, $f18, $f6
/* 0EDC0C 7F0B90DC 0C00110B */ jal get_video2_settings_txtClipH
/* 0EDC0C 7F0B90DC 0C00110B */ jal viGetY
/* 0EDC10 7F0B90E0 E7A80028 */ swc1 $f8, 0x28($sp)
/* 0EDC14 7F0B90E4 3C198004 */ lui $t9, %hi(D_80041410)
/* 0EDC18 7F0B90E8 8F391410 */ lw $t9, %lo(D_80041410)($t9)
@@ -12002,11 +11984,11 @@ u32 sub_GAME_7F0BA5C0(u32 arg0, u32 arg1) {
phi_v0 = arg0;
loop_2:
// Node 2
if (D_80044940 != 0)
if (FogDL_primary_80044940 != 0)
{
// Node 3
phi_a0 = D_80044940;
phi_v1 = &D_80044940;
phi_a0 = FogDL_primary_80044940;
phi_v1 = &FogDL_primary_80044940;
loop_4:
// Node 4
if (*phi_v0 == phi_a0)
@@ -12046,12 +12028,12 @@ glabel sub_GAME_7F0BA5C0
/* 0EF0F0 7F0BA5C0 0085082B */ sltu $at, $a0, $a1
/* 0EF0F4 7F0BA5C4 1020001C */ beqz $at, .L7F0BA638
/* 0EF0F8 7F0BA5C8 00801025 */ move $v0, $a0
/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(D_80044940)
/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(D_80044940) # addiu $a2, $a2, 0x4940
/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(FogDL_primary_80044940)
/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(FogDL_primary_80044940) # addiu $a2, $a2, 0x4940
/* 0EF104 7F0BA5D4 8CCE0000 */ lw $t6, ($a2)
.L7F0BA5D8:
/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(D_80044940)
/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(D_80044940) # addiu $t7, $t7, 0x4940
/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(FogDL_primary_80044940)
/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(FogDL_primary_80044940) # addiu $t7, $t7, 0x4940
/* 0EF110 7F0BA5E0 11C00011 */ beqz $t6, .L7F0BA628
/* 0EF114 7F0BA5E4 00C01825 */ move $v1, $a2
/* 0EF118 7F0BA5E8 8DE40000 */ lw $a0, ($t7)
+261 -906
View File
File diff suppressed because it is too large Load Diff
+12
View File
@@ -0,0 +1,12 @@
#ifndef _BLOOD_ANIMATION_H_
#define _BLOOD_ANIMATION_H_
#include "ultra64.h"
Gfx *insert_imageDL(Gfx *gdl);
Gfx *sub_GAME_7F01C1A4(Gfx *gdl);
s32 die_blood_image_routine(s32 arg0);
Gfx *sub_GAME_7F01C400(Gfx *gdl);
Gfx *sub_GAME_7F01CA18(Gfx *gdl);
#endif
+11 -11
View File
@@ -1,11 +1,7 @@
#include "ultra64.h"
#include "blood_decrypt.h"
#ifdef NONMATCHING
void decrypt_bleeding_animation_data(void) {
u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*) {
}
#else
@@ -141,8 +137,12 @@ glabel decrypt_bleeding_animation_data
#ifdef NONMATCHING
void sub_GAME_7F01CC94(void) {
// Uses sltu instead of slt for comparison
void sub_GAME_7F01CC94(u8* arg0, u16 arg1, u8* arg2) {
while (arg1-- != 0) {
*arg2++ = (arg0[0] & 0xF0) | (arg0[1] >> 4);
arg0 += 2;
}
}
#else
GLOBAL_ASM(
@@ -338,7 +338,7 @@ glabel sub_GAME_7F01CCEC
#ifdef NONMATCHING
void sub_GAME_7F01CEEC(void) {
void sub_GAME_7F01CEEC(u8*, s32, u8*) {
}
#else
@@ -434,7 +434,7 @@ glabel sub_GAME_7F01CEEC
#ifdef NONMATCHING
void sub_GAME_7F01D02C(void) {
void sub_GAME_7F01D02C(u8*, s32, u8*) {
}
#else
@@ -530,7 +530,7 @@ glabel sub_GAME_7F01D02C
#ifdef NONMATCHING
void sub_GAME_7F01D16C(void) {
void sub_GAME_7F01D16C(u8*, s32, s32, u8*) {
}
#else
+12
View File
@@ -0,0 +1,12 @@
#ifndef _BLOOD_DECRYPT_H_
#define _BLOOD_DECRYPT_H_
#include "ultra64.h"
u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*);
void sub_GAME_7F01D16C(u8*, s32, s32, u8*);
void sub_GAME_7F01D02C(u8*, s32, u8*);
void sub_GAME_7F01CEEC(u8*, s32, u8*);
void sub_GAME_7F01CC94(u8*, u16, u8*);
#endif
+10513 -3066
View File
File diff suppressed because it is too large Load Diff
+20 -4
View File
@@ -782,10 +782,27 @@ struct player
s32 field_7C8;
s32 field_7CC;
Vp viewports[2];
/**
* Offset 0x7f0.
*/
s16 viewx;
/**
* Offset 0x7f2.
*/
s16 viewy;
/**
* Offset 0x7f4.
*/
s16 viewleft;
/**
* Offset 0x7f6.
*/
s16 viewtop;
s32 hand_invisible[2];
s32 hand_item[2];
u8 *ptr_hand_weapon_buffer[2];
@@ -921,10 +938,9 @@ struct player
s32 ammo_total_unknown2;
s32 ammo_total_tank;
s32 ammo_total_mp_token;
s32 bloodcnt;
s32 field_11AC;
s32 field_11B0;
s32 field_11B4;
u8 *field_11A8;
u8 *field_11AC;
u8 *field_11B0[2];
s32 field_11B8;
f32 zoomintime;
f32 zoomintimemax;
+910 -4
View File
@@ -1036,6 +1036,204 @@ glabel sub_GAME_7F08C86C
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08C86C
/* 0C139C 7F08C86C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0C13A0 7F08C870 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C13A4 7F08C874 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C13A8 7F08C878 AFBF0024 */ sw $ra, 0x24($sp)
/* 0C13AC 7F08C87C AFB30020 */ sw $s3, 0x20($sp)
/* 0C13B0 7F08C880 AFB2001C */ sw $s2, 0x1c($sp)
/* 0C13B4 7F08C884 AFB10018 */ sw $s1, 0x18($sp)
/* 0C13B8 7F08C888 AFB00014 */ sw $s0, 0x14($sp)
/* 0C13BC 7F08C88C AFA40028 */ sw $a0, 0x28($sp)
/* 0C13C0 7F08C890 AFA5002C */ sw $a1, 0x2c($sp)
/* 0C13C4 7F08C894 8C7011E0 */ lw $s0, 0x11e0($v1)
/* 0C13C8 7F08C898 00C09025 */ move $s2, $a2
/* 0C13CC 7F08C89C 8C910000 */ lw $s1, ($a0)
/* 0C13D0 7F08C8A0 1200003D */ beqz $s0, .L7F08C998
/* 0C13D4 7F08C8A4 8CB30000 */ lw $s3, ($a1)
/* 0C13D8 7F08C8A8 8E020000 */ lw $v0, ($s0)
.L7F08C8AC:
/* 0C13DC 7F08C8AC 24010001 */ li $at, 1
/* 0C13E0 7F08C8B0 54410013 */ bnel $v0, $at, .L7F08C900
/* 0C13E4 7F08C8B4 24010003 */ li $at, 3
/* 0C13E8 7F08C8B8 8E040004 */ lw $a0, 4($s0)
/* 0C13EC 7F08C8BC 28810021 */ slti $at, $a0, 0x21
/* 0C13F0 7F08C8C0 10200029 */ beqz $at, .L7F08C968
/* 0C13F4 7F08C8C4 0224082A */ slt $at, $s1, $a0
/* 0C13F8 7F08C8C8 10200027 */ beqz $at, .L7F08C968
/* 0C13FC 7F08C8CC 00000000 */ nop
/* 0C1400 7F08C8D0 52400008 */ beql $s2, $zero, .L7F08C8F4
/* 0C1404 7F08C8D4 00808825 */ move $s1, $a0
/* 0C1408 7F08C8D8 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C140C 7F08C8DC 00000000 */ nop
/* 0C1410 7F08C8E0 10400021 */ beqz $v0, .L7F08C968
/* 0C1414 7F08C8E4 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C1418 7F08C8E8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C141C 7F08C8EC 8E040004 */ lw $a0, 4($s0)
/* 0C1420 7F08C8F0 00808825 */ move $s1, $a0
.L7F08C8F4:
/* 0C1424 7F08C8F4 10000028 */ b .L7F08C998
/* 0C1428 7F08C8F8 00009825 */ move $s3, $zero
/* 0C142C 7F08C8FC 24010003 */ li $at, 3
.L7F08C900:
/* 0C1430 7F08C900 14410019 */ bne $v0, $at, .L7F08C968
/* 0C1434 7F08C904 00000000 */ nop
/* 0C1438 7F08C908 8E040004 */ lw $a0, 4($s0)
/* 0C143C 7F08C90C 0224082A */ slt $at, $s1, $a0
/* 0C1440 7F08C910 14200007 */ bnez $at, .L7F08C930
/* 0C1444 7F08C914 00000000 */ nop
/* 0C1448 7F08C918 16240013 */ bne $s1, $a0, .L7F08C968
/* 0C144C 7F08C91C 00000000 */ nop
/* 0C1450 7F08C920 8E180008 */ lw $t8, 8($s0)
/* 0C1454 7F08C924 0278082A */ slt $at, $s3, $t8
/* 0C1458 7F08C928 1020000F */ beqz $at, .L7F08C968
/* 0C145C 7F08C92C 00000000 */ nop
.L7F08C930:
/* 0C1460 7F08C930 12400008 */ beqz $s2, .L7F08C954
/* 0C1464 7F08C934 00000000 */ nop
/* 0C1468 7F08C938 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C146C 7F08C93C 00000000 */ nop
/* 0C1470 7F08C940 14400004 */ bnez $v0, .L7F08C954
/* 0C1474 7F08C944 00000000 */ nop
/* 0C1478 7F08C948 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C147C 7F08C94C 8E040008 */ lw $a0, 8($s0)
/* 0C1480 7F08C950 10400005 */ beqz $v0, .L7F08C968
.L7F08C954:
/* 0C1484 7F08C954 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C1488 7F08C958 8E110004 */ lw $s1, 4($s0)
/* 0C148C 7F08C95C 8E130008 */ lw $s3, 8($s0)
/* 0C1490 7F08C960 1000000D */ b .L7F08C998
/* 0C1494 7F08C964 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
.L7F08C968:
/* 0C1498 7F08C968 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C149C 7F08C96C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C14A0 7F08C970 8E10000C */ lw $s0, 0xc($s0)
/* 0C14A4 7F08C974 8C7911E0 */ lw $t9, 0x11e0($v1)
/* 0C14A8 7F08C978 16190005 */ bne $s0, $t9, .L7F08C990
/* 0C14AC 7F08C97C 00000000 */ nop
/* 0C14B0 7F08C980 56400006 */ bnezl $s2, .L7F08C99C
/* 0C14B4 7F08C984 8C6811EC */ lw $t0, 0x11ec($v1)
/* 0C14B8 7F08C988 2411FFFF */ li $s1, -1
/* 0C14BC 7F08C98C 2413FFFF */ li $s3, -1
.L7F08C990:
/* 0C14C0 7F08C990 5600FFC6 */ bnezl $s0, .L7F08C8AC
/* 0C14C4 7F08C994 8E020000 */ lw $v0, ($s0)
.L7F08C998:
/* 0C14C8 7F08C998 8C6811EC */ lw $t0, 0x11ec($v1)
.L7F08C99C:
/* 0C14CC 7F08C99C 8FA90028 */ lw $t1, 0x28($sp)
/* 0C14D0 7F08C9A0 51000051 */ beql $t0, $zero, .L7F08CAE8
/* 0C14D4 7F08C9A4 8FAB0028 */ lw $t3, 0x28($sp)
/* 0C14D8 7F08C9A8 0FC26919 */ jal getPlayerCount
/* 0C14DC 7F08C9AC 8D300000 */ lw $s0, ($t1)
/* 0C14E0 7F08C9B0 24010001 */ li $at, 1
/* 0C14E4 7F08C9B4 5441001E */ bnel $v0, $at, .L7F08CA30
/* 0C14E8 7F08C9B8 8FAF0028 */ lw $t7, 0x28($sp)
/* 0C14EC 7F08C9BC 8FAA0028 */ lw $t2, 0x28($sp)
/* 0C14F0 7F08C9C0 3C050010 */ lui $a1, 0x10
/* 0C14F4 7F08C9C4 0FC1782D */ jal bondwalkItemCheckBitflags
/* 0C14F8 7F08C9C8 8D440000 */ lw $a0, ($t2)
/* 0C14FC 7F08C9CC 50400018 */ beql $v0, $zero, .L7F08CA30
/* 0C1500 7F08C9D0 8FAF0028 */ lw $t7, 0x28($sp)
/* 0C1504 7F08C9D4 8FAB0028 */ lw $t3, 0x28($sp)
/* 0C1508 7F08C9D8 8FAC002C */ lw $t4, 0x2c($sp)
/* 0C150C 7F08C9DC 8D640000 */ lw $a0, ($t3)
/* 0C1510 7F08C9E0 8D8D0000 */ lw $t5, ($t4)
/* 0C1514 7F08C9E4 01A4082A */ slt $at, $t5, $a0
/* 0C1518 7F08C9E8 50200011 */ beql $at, $zero, .L7F08CA30
/* 0C151C 7F08C9EC 8FAF0028 */ lw $t7, 0x28($sp)
/* 0C1520 7F08C9F0 12400007 */ beqz $s2, .L7F08CA10
/* 0C1524 7F08C9F4 00000000 */ nop
/* 0C1528 7F08C9F8 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C152C 7F08C9FC 00000000 */ nop
/* 0C1530 7F08CA00 5040000B */ beql $v0, $zero, .L7F08CA30
/* 0C1534 7F08CA04 8FAF0028 */ lw $t7, 0x28($sp)
/* 0C1538 7F08CA08 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C153C 7F08CA0C 8DC40000 */ lw $a0, ($t6)
.L7F08CA10:
/* 0C1540 7F08CA10 16240003 */ bne $s1, $a0, .L7F08CA20
/* 0C1544 7F08CA14 0093082A */ slt $at, $a0, $s3
/* 0C1548 7F08CA18 50200005 */ beql $at, $zero, .L7F08CA30
/* 0C154C 7F08CA1C 8FAF0028 */ lw $t7, 0x28($sp)
.L7F08CA20:
/* 0C1550 7F08CA20 00808825 */ move $s1, $a0
/* 0C1554 7F08CA24 1000002F */ b .L7F08CAE4
/* 0C1558 7F08CA28 00809825 */ move $s3, $a0
/* 0C155C 7F08CA2C 8FAF0028 */ lw $t7, 0x28($sp)
.L7F08CA30:
/* 0C1560 7F08CA30 24030021 */ li $v1, 33
/* 0C1564 7F08CA34 8DF80000 */ lw $t8, ($t7)
/* 0C1568 7F08CA38 16380005 */ bne $s1, $t8, .L7F08CA50
/* 0C156C 7F08CA3C 00000000 */ nop
/* 0C1570 7F08CA40 8FB9002C */ lw $t9, 0x2c($sp)
/* 0C1574 7F08CA44 8F280000 */ lw $t0, ($t9)
/* 0C1578 7F08CA48 56680027 */ bnel $s3, $t0, .L7F08CAE8
/* 0C157C 7F08CA4C 8FAB0028 */ lw $t3, 0x28($sp)
.L7F08CA50:
/* 0C1580 7F08CA50 26090001 */ addiu $t1, $s0, 1
.L7F08CA54:
/* 0C1584 7F08CA54 0123001A */ div $zero, $t1, $v1
/* 0C1588 7F08CA58 00008010 */ mfhi $s0
/* 0C158C 7F08CA5C 260A0001 */ addiu $t2, $s0, 1
/* 0C1590 7F08CA60 14600002 */ bnez $v1, .L7F08CA6C
/* 0C1594 7F08CA64 00000000 */ nop
/* 0C1598 7F08CA68 0007000D */ break 7
.L7F08CA6C:
/* 0C159C 7F08CA6C 2401FFFF */ li $at, -1
/* 0C15A0 7F08CA70 14610004 */ bne $v1, $at, .L7F08CA84
/* 0C15A4 7F08CA74 3C018000 */ lui $at, 0x8000
/* 0C15A8 7F08CA78 15210002 */ bne $t1, $at, .L7F08CA84
/* 0C15AC 7F08CA7C 00000000 */ nop
/* 0C15B0 7F08CA80 0006000D */ break 6
.L7F08CA84:
/* 0C15B4 7F08CA84 1600000C */ bnez $s0, .L7F08CAB8
/* 0C15B8 7F08CA88 00000000 */ nop
/* 0C15BC 7F08CA8C 0143001A */ div $zero, $t2, $v1
/* 0C15C0 7F08CA90 00008010 */ mfhi $s0
/* 0C15C4 7F08CA94 14600002 */ bnez $v1, .L7F08CAA0
/* 0C15C8 7F08CA98 00000000 */ nop
/* 0C15CC 7F08CA9C 0007000D */ break 7
.L7F08CAA0:
/* 0C15D0 7F08CAA0 2401FFFF */ li $at, -1
/* 0C15D4 7F08CAA4 14610004 */ bne $v1, $at, .L7F08CAB8
/* 0C15D8 7F08CAA8 3C018000 */ lui $at, 0x8000
/* 0C15DC 7F08CAAC 15410002 */ bne $t2, $at, .L7F08CAB8
/* 0C15E0 7F08CAB0 00000000 */ nop
/* 0C15E4 7F08CAB4 0006000D */ break 6
.L7F08CAB8:
/* 0C15E8 7F08CAB8 52400006 */ beql $s2, $zero, .L7F08CAD4
/* 0C15EC 7F08CABC 02008825 */ move $s1, $s0
/* 0C15F0 7F08CAC0 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C15F4 7F08CAC4 02002025 */ move $a0, $s0
/* 0C15F8 7F08CAC8 10400004 */ beqz $v0, .L7F08CADC
/* 0C15FC 7F08CACC 24030021 */ li $v1, 33
/* 0C1600 7F08CAD0 02008825 */ move $s1, $s0
.L7F08CAD4:
/* 0C1604 7F08CAD4 10000003 */ b .L7F08CAE4
/* 0C1608 7F08CAD8 00009825 */ move $s3, $zero
.L7F08CADC:
/* 0C160C 7F08CADC 5611FFDD */ bnel $s0, $s1, .L7F08CA54
/* 0C1610 7F08CAE0 26090001 */ addiu $t1, $s0, 1
.L7F08CAE4:
/* 0C1614 7F08CAE4 8FAB0028 */ lw $t3, 0x28($sp)
.L7F08CAE8:
/* 0C1618 7F08CAE8 AD710000 */ sw $s1, ($t3)
/* 0C161C 7F08CAEC 8FAC002C */ lw $t4, 0x2c($sp)
/* 0C1620 7F08CAF0 AD930000 */ sw $s3, ($t4)
/* 0C1624 7F08CAF4 8FBF0024 */ lw $ra, 0x24($sp)
/* 0C1628 7F08CAF8 8FB30020 */ lw $s3, 0x20($sp)
/* 0C162C 7F08CAFC 8FB2001C */ lw $s2, 0x1c($sp)
/* 0C1630 7F08CB00 8FB10018 */ lw $s1, 0x18($sp)
/* 0C1634 7F08CB04 8FB00014 */ lw $s0, 0x14($sp)
/* 0C1638 7F08CB08 03E00008 */ jr $ra
/* 0C163C 7F08CB0C 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
#endif
@@ -1566,6 +1764,258 @@ glabel sub_GAME_7F08CB10
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08CB10
/* 0C1640 7F08CB10 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0C1644 7F08CB14 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C1648 7F08CB18 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C164C 7F08CB1C AFBF0024 */ sw $ra, 0x24($sp)
/* 0C1650 7F08CB20 AFB30020 */ sw $s3, 0x20($sp)
/* 0C1654 7F08CB24 AFB2001C */ sw $s2, 0x1c($sp)
/* 0C1658 7F08CB28 AFB10018 */ sw $s1, 0x18($sp)
/* 0C165C 7F08CB2C AFB00014 */ sw $s0, 0x14($sp)
/* 0C1660 7F08CB30 AFA40028 */ sw $a0, 0x28($sp)
/* 0C1664 7F08CB34 AFA5002C */ sw $a1, 0x2c($sp)
/* 0C1668 7F08CB38 8C6211E0 */ lw $v0, 0x11e0($v1)
/* 0C166C 7F08CB3C 00C09025 */ move $s2, $a2
/* 0C1670 7F08CB40 8C910000 */ lw $s1, ($a0)
/* 0C1674 7F08CB44 00807025 */ move $t6, $a0
/* 0C1678 7F08CB48 8CB30000 */ lw $s3, ($a1)
/* 0C167C 7F08CB4C 10400042 */ beqz $v0, .L7F08CC58
/* 0C1680 7F08CB50 00A07825 */ move $t7, $a1
/* 0C1684 7F08CB54 8C500010 */ lw $s0, 0x10($v0)
.L7F08CB58:
/* 0C1688 7F08CB58 8E020000 */ lw $v0, ($s0)
/* 0C168C 7F08CB5C 24010001 */ li $at, 1
/* 0C1690 7F08CB60 54410018 */ bnel $v0, $at, .L7F08CBC4
/* 0C1694 7F08CB64 24010003 */ li $at, 3
/* 0C1698 7F08CB68 8E040004 */ lw $a0, 4($s0)
/* 0C169C 7F08CB6C 28810021 */ slti $at, $a0, 0x21
/* 0C16A0 7F08CB70 1020002E */ beqz $at, .L7F08CC2C
/* 0C16A4 7F08CB74 00000000 */ nop
/* 0C16A8 7F08CB78 0091082A */ slt $at, $a0, $s1
/* 0C16AC 7F08CB7C 14200005 */ bnez $at, .L7F08CB94
/* 0C16B0 7F08CB80 00000000 */ nop
/* 0C16B4 7F08CB84 16240029 */ bne $s1, $a0, .L7F08CC2C
/* 0C16B8 7F08CB88 00000000 */ nop
/* 0C16BC 7F08CB8C 1A600027 */ blez $s3, .L7F08CC2C
/* 0C16C0 7F08CB90 00000000 */ nop
.L7F08CB94:
/* 0C16C4 7F08CB94 52400008 */ beql $s2, $zero, .L7F08CBB8
/* 0C16C8 7F08CB98 00808825 */ move $s1, $a0
/* 0C16CC 7F08CB9C 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C16D0 7F08CBA0 00000000 */ nop
/* 0C16D4 7F08CBA4 10400021 */ beqz $v0, .L7F08CC2C
/* 0C16D8 7F08CBA8 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C16DC 7F08CBAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C16E0 7F08CBB0 8E040004 */ lw $a0, 4($s0)
/* 0C16E4 7F08CBB4 00808825 */ move $s1, $a0
.L7F08CBB8:
/* 0C16E8 7F08CBB8 10000027 */ b .L7F08CC58
/* 0C16EC 7F08CBBC 00009825 */ move $s3, $zero
/* 0C16F0 7F08CBC0 24010003 */ li $at, 3
.L7F08CBC4:
/* 0C16F4 7F08CBC4 14410019 */ bne $v0, $at, .L7F08CC2C
/* 0C16F8 7F08CBC8 00000000 */ nop
/* 0C16FC 7F08CBCC 8E040004 */ lw $a0, 4($s0)
/* 0C1700 7F08CBD0 0091082A */ slt $at, $a0, $s1
/* 0C1704 7F08CBD4 14200007 */ bnez $at, .L7F08CBF4
/* 0C1708 7F08CBD8 00000000 */ nop
/* 0C170C 7F08CBDC 16240013 */ bne $s1, $a0, .L7F08CC2C
/* 0C1710 7F08CBE0 00000000 */ nop
/* 0C1714 7F08CBE4 8E180008 */ lw $t8, 8($s0)
/* 0C1718 7F08CBE8 0313082A */ slt $at, $t8, $s3
/* 0C171C 7F08CBEC 1020000F */ beqz $at, .L7F08CC2C
/* 0C1720 7F08CBF0 00000000 */ nop
.L7F08CBF4:
/* 0C1724 7F08CBF4 12400008 */ beqz $s2, .L7F08CC18
/* 0C1728 7F08CBF8 00000000 */ nop
/* 0C172C 7F08CBFC 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C1730 7F08CC00 00000000 */ nop
/* 0C1734 7F08CC04 14400004 */ bnez $v0, .L7F08CC18
/* 0C1738 7F08CC08 00000000 */ nop
/* 0C173C 7F08CC0C 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C1740 7F08CC10 8E040008 */ lw $a0, 8($s0)
/* 0C1744 7F08CC14 10400005 */ beqz $v0, .L7F08CC2C
.L7F08CC18:
/* 0C1748 7F08CC18 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C174C 7F08CC1C 8E110004 */ lw $s1, 4($s0)
/* 0C1750 7F08CC20 8E130008 */ lw $s3, 8($s0)
/* 0C1754 7F08CC24 1000000C */ b .L7F08CC58
/* 0C1758 7F08CC28 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
.L7F08CC2C:
/* 0C175C 7F08CC2C 3C038008 */ lui $v1, %hi(pPlayer)
/* 0C1760 7F08CC30 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1)
/* 0C1764 7F08CC34 8C7911E0 */ lw $t9, 0x11e0($v1)
/* 0C1768 7F08CC38 16190005 */ bne $s0, $t9, .L7F08CC50
/* 0C176C 7F08CC3C 00000000 */ nop
/* 0C1770 7F08CC40 56400006 */ bnezl $s2, .L7F08CC5C
/* 0C1774 7F08CC44 8C6811EC */ lw $t0, 0x11ec($v1)
/* 0C1778 7F08CC48 241103E8 */ li $s1, 1000
/* 0C177C 7F08CC4C 241303E8 */ li $s3, 1000
.L7F08CC50:
/* 0C1780 7F08CC50 1000FFC1 */ b .L7F08CB58
/* 0C1784 7F08CC54 8E100010 */ lw $s0, 0x10($s0)
.L7F08CC58:
/* 0C1788 7F08CC58 8C6811EC */ lw $t0, 0x11ec($v1)
.L7F08CC5C:
/* 0C178C 7F08CC5C 8FAA002C */ lw $t2, 0x2c($sp)
/* 0C1790 7F08CC60 51000079 */ beql $t0, $zero, .L7F08CE48
/* 0C1794 7F08CC64 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C1798 7F08CC68 8D4B0000 */ lw $t3, ($t2)
/* 0C179C 7F08CC6C 8FA90028 */ lw $t1, 0x28($sp)
/* 0C17A0 7F08CC70 24030021 */ li $v1, 33
/* 0C17A4 7F08CC74 1560001B */ bnez $t3, .L7F08CCE4
/* 0C17A8 7F08CC78 8D300000 */ lw $s0, ($t1)
/* 0C17AC 7F08CC7C 260C0020 */ addiu $t4, $s0, 0x20
/* 0C17B0 7F08CC80 0183001A */ div $zero, $t4, $v1
/* 0C17B4 7F08CC84 00008010 */ mfhi $s0
/* 0C17B8 7F08CC88 260D0020 */ addiu $t5, $s0, 0x20
/* 0C17BC 7F08CC8C 14600002 */ bnez $v1, .L7F08CC98
/* 0C17C0 7F08CC90 00000000 */ nop
/* 0C17C4 7F08CC94 0007000D */ break 7
.L7F08CC98:
/* 0C17C8 7F08CC98 2401FFFF */ li $at, -1
/* 0C17CC 7F08CC9C 14610004 */ bne $v1, $at, .L7F08CCB0
/* 0C17D0 7F08CCA0 3C018000 */ lui $at, 0x8000
/* 0C17D4 7F08CCA4 15810002 */ bne $t4, $at, .L7F08CCB0
/* 0C17D8 7F08CCA8 00000000 */ nop
/* 0C17DC 7F08CCAC 0006000D */ break 6
.L7F08CCB0:
/* 0C17E0 7F08CCB0 1600000C */ bnez $s0, .L7F08CCE4
/* 0C17E4 7F08CCB4 00000000 */ nop
/* 0C17E8 7F08CCB8 01A3001A */ div $zero, $t5, $v1
/* 0C17EC 7F08CCBC 00008010 */ mfhi $s0
/* 0C17F0 7F08CCC0 14600002 */ bnez $v1, .L7F08CCCC
/* 0C17F4 7F08CCC4 00000000 */ nop
/* 0C17F8 7F08CCC8 0007000D */ break 7
.L7F08CCCC:
/* 0C17FC 7F08CCCC 2401FFFF */ li $at, -1
/* 0C1800 7F08CCD0 14610004 */ bne $v1, $at, .L7F08CCE4
/* 0C1804 7F08CCD4 3C018000 */ lui $at, 0x8000
/* 0C1808 7F08CCD8 15A10002 */ bne $t5, $at, .L7F08CCE4
/* 0C180C 7F08CCDC 00000000 */ nop
/* 0C1810 7F08CCE0 0006000D */ break 6
.L7F08CCE4:
/* 0C1814 7F08CCE4 1611001E */ bne $s0, $s1, .L7F08CD60
/* 0C1818 7F08CCE8 00000000 */ nop
/* 0C181C 7F08CCEC 0FC26919 */ jal getPlayerCount
/* 0C1820 7F08CCF0 00000000 */ nop
/* 0C1824 7F08CCF4 24010001 */ li $at, 1
/* 0C1828 7F08CCF8 14410052 */ bne $v0, $at, .L7F08CE44
/* 0C182C 7F08CCFC 02002025 */ move $a0, $s0
/* 0C1830 7F08CD00 0FC1782D */ jal bondwalkItemCheckBitflags
/* 0C1834 7F08CD04 3C050010 */ lui $a1, 0x10
/* 0C1838 7F08CD08 5040004F */ beql $v0, $zero, .L7F08CE48
/* 0C183C 7F08CD0C 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C1840 7F08CD10 52400006 */ beql $s2, $zero, .L7F08CD2C
/* 0C1844 7F08CD14 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C1848 7F08CD18 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C184C 7F08CD1C 02002025 */ move $a0, $s0
/* 0C1850 7F08CD20 50400049 */ beql $v0, $zero, .L7F08CE48
/* 0C1854 7F08CD24 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C1858 7F08CD28 8FAE0028 */ lw $t6, 0x28($sp)
.L7F08CD2C:
/* 0C185C 7F08CD2C 8FB8002C */ lw $t8, 0x2c($sp)
/* 0C1860 7F08CD30 8DCF0000 */ lw $t7, ($t6)
/* 0C1864 7F08CD34 560F0005 */ bnel $s0, $t7, .L7F08CD4C
/* 0C1868 7F08CD38 0270082A */ slt $at, $s3, $s0
/* 0C186C 7F08CD3C 8F190000 */ lw $t9, ($t8)
/* 0C1870 7F08CD40 0219082A */ slt $at, $s0, $t9
/* 0C1874 7F08CD44 1020003F */ beqz $at, .L7F08CE44
/* 0C1878 7F08CD48 0270082A */ slt $at, $s3, $s0
.L7F08CD4C:
/* 0C187C 7F08CD4C 5020003E */ beql $at, $zero, .L7F08CE48
/* 0C1880 7F08CD50 8FAE0028 */ lw $t6, 0x28($sp)
/* 0C1884 7F08CD54 02008825 */ move $s1, $s0
/* 0C1888 7F08CD58 1000003A */ b .L7F08CE44
/* 0C188C 7F08CD5C 02009825 */ move $s3, $s0
.L7F08CD60:
/* 0C1890 7F08CD60 12400005 */ beqz $s2, .L7F08CD78
/* 0C1894 7F08CD64 00000000 */ nop
/* 0C1898 7F08CD68 0FC17817 */ jal bondwalkItemHasAmmo
/* 0C189C 7F08CD6C 02002025 */ move $a0, $s0
/* 0C18A0 7F08CD70 10400018 */ beqz $v0, .L7F08CDD4
/* 0C18A4 7F08CD74 24030021 */ li $v1, 33
.L7F08CD78:
/* 0C18A8 7F08CD78 0FC26919 */ jal getPlayerCount
/* 0C18AC 7F08CD7C 00000000 */ nop
/* 0C18B0 7F08CD80 24010001 */ li $at, 1
/* 0C18B4 7F08CD84 14410010 */ bne $v0, $at, .L7F08CDC8
/* 0C18B8 7F08CD88 02002025 */ move $a0, $s0
/* 0C18BC 7F08CD8C 0FC1782D */ jal bondwalkItemCheckBitflags
/* 0C18C0 7F08CD90 3C050010 */ lui $a1, 0x10
/* 0C18C4 7F08CD94 1040000C */ beqz $v0, .L7F08CDC8
/* 0C18C8 7F08CD98 8FA80028 */ lw $t0, 0x28($sp)
/* 0C18CC 7F08CD9C 8D090000 */ lw $t1, ($t0)
/* 0C18D0 7F08CDA0 8FAA002C */ lw $t2, 0x2c($sp)
/* 0C18D4 7F08CDA4 02008825 */ move $s1, $s0
/* 0C18D8 7F08CDA8 16090005 */ bne $s0, $t1, .L7F08CDC0
/* 0C18DC 7F08CDAC 00000000 */ nop
/* 0C18E0 7F08CDB0 8D4B0000 */ lw $t3, ($t2)
/* 0C18E4 7F08CDB4 020B082A */ slt $at, $s0, $t3
/* 0C18E8 7F08CDB8 50200004 */ beql $at, $zero, .L7F08CDCC
/* 0C18EC 7F08CDBC 02008825 */ move $s1, $s0
.L7F08CDC0:
/* 0C18F0 7F08CDC0 10000020 */ b .L7F08CE44
/* 0C18F4 7F08CDC4 02009825 */ move $s3, $s0
.L7F08CDC8:
/* 0C18F8 7F08CDC8 02008825 */ move $s1, $s0
.L7F08CDCC:
/* 0C18FC 7F08CDCC 1000001D */ b .L7F08CE44
/* 0C1900 7F08CDD0 00009825 */ move $s3, $zero
.L7F08CDD4:
/* 0C1904 7F08CDD4 260C0020 */ addiu $t4, $s0, 0x20
/* 0C1908 7F08CDD8 0183001A */ div $zero, $t4, $v1
/* 0C190C 7F08CDDC 00008010 */ mfhi $s0
/* 0C1910 7F08CDE0 14600002 */ bnez $v1, .L7F08CDEC
/* 0C1914 7F08CDE4 00000000 */ nop
/* 0C1918 7F08CDE8 0007000D */ break 7
.L7F08CDEC:
/* 0C191C 7F08CDEC 2401FFFF */ li $at, -1
/* 0C1920 7F08CDF0 14610004 */ bne $v1, $at, .L7F08CE04
/* 0C1924 7F08CDF4 3C018000 */ lui $at, 0x8000
/* 0C1928 7F08CDF8 15810002 */ bne $t4, $at, .L7F08CE04
/* 0C192C 7F08CDFC 00000000 */ nop
/* 0C1930 7F08CE00 0006000D */ break 6
.L7F08CE04:
/* 0C1934 7F08CE04 1600FFB7 */ bnez $s0, .L7F08CCE4
/* 0C1938 7F08CE08 00000000 */ nop
/* 0C193C 7F08CE0C 260D0020 */ addiu $t5, $s0, 0x20
/* 0C1940 7F08CE10 01A3001A */ div $zero, $t5, $v1
/* 0C1944 7F08CE14 00008010 */ mfhi $s0
/* 0C1948 7F08CE18 14600002 */ bnez $v1, .L7F08CE24
/* 0C194C 7F08CE1C 00000000 */ nop
/* 0C1950 7F08CE20 0007000D */ break 7
.L7F08CE24:
/* 0C1954 7F08CE24 2401FFFF */ li $at, -1
/* 0C1958 7F08CE28 14610004 */ bne $v1, $at, .L7F08CE3C
/* 0C195C 7F08CE2C 3C018000 */ lui $at, 0x8000
/* 0C1960 7F08CE30 15A10002 */ bne $t5, $at, .L7F08CE3C
/* 0C1964 7F08CE34 00000000 */ nop
/* 0C1968 7F08CE38 0006000D */ break 6
.L7F08CE3C:
/* 0C196C 7F08CE3C 1000FFA9 */ b .L7F08CCE4
/* 0C1970 7F08CE40 00000000 */ nop
.L7F08CE44:
/* 0C1974 7F08CE44 8FAE0028 */ lw $t6, 0x28($sp)
.L7F08CE48:
/* 0C1978 7F08CE48 ADD10000 */ sw $s1, ($t6)
/* 0C197C 7F08CE4C 8FAF002C */ lw $t7, 0x2c($sp)
/* 0C1980 7F08CE50 ADF30000 */ sw $s3, ($t7)
/* 0C1984 7F08CE54 8FBF0024 */ lw $ra, 0x24($sp)
/* 0C1988 7F08CE58 8FB30020 */ lw $s3, 0x20($sp)
/* 0C198C 7F08CE5C 8FB2001C */ lw $s2, 0x1c($sp)
/* 0C1990 7F08CE60 8FB10018 */ lw $s1, 0x18($sp)
/* 0C1994 7F08CE64 8FB00014 */ lw $s0, 0x14($sp)
/* 0C1998 7F08CE68 03E00008 */ jr $ra
/* 0C199C 7F08CE6C 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
#endif
@@ -1630,7 +2080,7 @@ glabel sub_GAME_7F08CE70
#ifdef NONMATCHING
//NOT MATCHING YET -> Wrong Register values
void sub_GAME_7F08CF0C(void) {
void checkHasGEKey(void) {
InvItem *item = pPlayer->ptr_inventory_first_in_cycle;
@@ -1638,7 +2088,7 @@ void sub_GAME_7F08CF0C(void) {
if (item->type == 2 ) {
struct prop *temp_a0 = item->type_inv_item.type_prop.prop;
if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == 0xF8) {
if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == PROJECTILES_TYPE_GE_KEY) {
return TRUE;
}
}
@@ -1656,7 +2106,7 @@ void sub_GAME_7F08CF0C(void) {
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F08CF0C
glabel checkHasGEKey
/* 0C1A3C 7F08CF0C 3C0E8008 */ lui $t6, %hi(pPlayer)
/* 0C1A40 7F08CF10 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6)
/* 0C1A44 7F08CF14 240800F8 */ li $t0, 248
@@ -1930,6 +2380,73 @@ glabel count_total_items_in_inventory
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel count_total_items_in_inventory
/* 0C1B68 7F08D038 3C028008 */ lui $v0, %hi(pPlayer)
/* 0C1B6C 7F08D03C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0)
/* 0C1B70 7F08D040 00001825 */ move $v1, $zero
/* 0C1B74 7F08D044 3C0B0004 */ lui $t3, 4
/* 0C1B78 7F08D048 8C4411EC */ lw $a0, 0x11ec($v0)
/* 0C1B7C 7F08D04C 240A0001 */ li $t2, 1
/* 0C1B80 7F08D050 24090004 */ li $t1, 4
/* 0C1B84 7F08D054 10800002 */ beqz $a0, .L7F08D060
/* 0C1B88 7F08D058 24080002 */ li $t0, 2
/* 0C1B8C 7F08D05C 24030020 */ li $v1, 32
.L7F08D060:
/* 0C1B90 7F08D060 8C4611E0 */ lw $a2, 0x11e0($v0)
/* 0C1B94 7F08D064 10C00026 */ beqz $a2, .L7F08D100
/* 0C1B98 7F08D068 00C02825 */ move $a1, $a2
/* 0C1B9C 7F08D06C 8CA20000 */ lw $v0, ($a1)
.L7F08D070:
/* 0C1BA0 7F08D070 15020015 */ bne $t0, $v0, .L7F08D0C8
/* 0C1BA4 7F08D074 00000000 */ nop
/* 0C1BA8 7F08D078 8CA20004 */ lw $v0, 4($a1)
/* 0C1BAC 7F08D07C 90470000 */ lbu $a3, ($v0)
/* 0C1BB0 7F08D080 15270008 */ bne $t1, $a3, .L7F08D0A4
/* 0C1BB4 7F08D084 00000000 */ nop
/* 0C1BB8 7F08D088 8C470004 */ lw $a3, 4($v0)
/* 0C1BBC 7F08D08C 8CEE0064 */ lw $t6, 0x64($a3)
/* 0C1BC0 7F08D090 31CF0400 */ andi $t7, $t6, 0x400
/* 0C1BC4 7F08D094 51E00016 */ beql $t7, $zero, .L7F08D0F0
/* 0C1BC8 7F08D098 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1BCC 7F08D09C 10000013 */ b .L7F08D0EC
/* 0C1BD0 7F08D0A0 24630001 */ addiu $v1, $v1, 1
.L7F08D0A4:
/* 0C1BD4 7F08D0A4 55470012 */ bnel $t2, $a3, .L7F08D0F0
/* 0C1BD8 7F08D0A8 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1BDC 7F08D0AC 8C580004 */ lw $t8, 4($v0)
/* 0C1BE0 7F08D0B0 8F19000C */ lw $t9, 0xc($t8)
/* 0C1BE4 7F08D0B4 032B6024 */ and $t4, $t9, $t3
/* 0C1BE8 7F08D0B8 5580000D */ bnezl $t4, .L7F08D0F0
/* 0C1BEC 7F08D0BC 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1BF0 7F08D0C0 1000000A */ b .L7F08D0EC
/* 0C1BF4 7F08D0C4 24630001 */ addiu $v1, $v1, 1
.L7F08D0C8:
/* 0C1BF8 7F08D0C8 55420009 */ bnel $t2, $v0, .L7F08D0F0
/* 0C1BFC 7F08D0CC 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1C00 7F08D0D0 50800006 */ beql $a0, $zero, .L7F08D0EC
/* 0C1C04 7F08D0D4 24630001 */ addiu $v1, $v1, 1
/* 0C1C08 7F08D0D8 8CAD0004 */ lw $t5, 4($a1)
/* 0C1C0C 7F08D0DC 29A10021 */ slti $at, $t5, 0x21
/* 0C1C10 7F08D0E0 54200003 */ bnezl $at, .L7F08D0F0
/* 0C1C14 7F08D0E4 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1C18 7F08D0E8 24630001 */ addiu $v1, $v1, 1
.L7F08D0EC:
/* 0C1C1C 7F08D0EC 8CA5000C */ lw $a1, 0xc($a1)
.L7F08D0F0:
/* 0C1C20 7F08D0F0 10A60003 */ beq $a1, $a2, .L7F08D100
/* 0C1C24 7F08D0F4 00000000 */ nop
/* 0C1C28 7F08D0F8 54A0FFDD */ bnezl $a1, .L7F08D070
/* 0C1C2C 7F08D0FC 8CA20000 */ lw $v0, ($a1)
.L7F08D100:
/* 0C1C30 7F08D100 03E00008 */ jr $ra
/* 0C1C34 7F08D104 00601025 */ move $v0, $v1
)
#endif
#endif
@@ -2138,6 +2655,99 @@ glabel sub_GAME_7F08D108
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08D108
/* 0C1C38 7F08D108 3C028008 */ lui $v0, %hi(pPlayer)
/* 0C1C3C 7F08D10C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0)
/* 0C1C40 7F08D110 28810020 */ slti $at, $a0, 0x20
/* 0C1C44 7F08D114 8C4311EC */ lw $v1, 0x11ec($v0)
/* 0C1C48 7F08D118 50600006 */ beql $v1, $zero, .L7F08D134
/* 0C1C4C 7F08D11C 8C4611E0 */ lw $a2, 0x11e0($v0)
/* 0C1C50 7F08D120 10200003 */ beqz $at, .L7F08D130
/* 0C1C54 7F08D124 2484FFE0 */ addiu $a0, $a0, -0x20
/* 0C1C58 7F08D128 03E00008 */ jr $ra
/* 0C1C5C 7F08D12C 00001025 */ move $v0, $zero
.L7F08D130:
/* 0C1C60 7F08D130 8C4611E0 */ lw $a2, 0x11e0($v0)
.L7F08D134:
/* 0C1C64 7F08D134 3C0B0004 */ lui $t3, 4
/* 0C1C68 7F08D138 240A0001 */ li $t2, 1
/* 0C1C6C 7F08D13C 10C00034 */ beqz $a2, .L7F08D210
/* 0C1C70 7F08D140 00C02825 */ move $a1, $a2
/* 0C1C74 7F08D144 24090004 */ li $t1, 4
/* 0C1C78 7F08D148 24080002 */ li $t0, 2
/* 0C1C7C 7F08D14C 8CA20000 */ lw $v0, ($a1)
.L7F08D150:
/* 0C1C80 7F08D150 1502001D */ bne $t0, $v0, .L7F08D1C8
/* 0C1C84 7F08D154 00000000 */ nop
/* 0C1C88 7F08D158 8CA20004 */ lw $v0, 4($a1)
/* 0C1C8C 7F08D15C 90470000 */ lbu $a3, ($v0)
/* 0C1C90 7F08D160 1527000C */ bne $t1, $a3, .L7F08D194
/* 0C1C94 7F08D164 00000000 */ nop
/* 0C1C98 7F08D168 8C470004 */ lw $a3, 4($v0)
/* 0C1C9C 7F08D16C 8CEE0064 */ lw $t6, 0x64($a3)
/* 0C1CA0 7F08D170 31CF0400 */ andi $t7, $t6, 0x400
/* 0C1CA4 7F08D174 51E00022 */ beql $t7, $zero, .L7F08D200
/* 0C1CA8 7F08D178 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1CAC 7F08D17C 14800003 */ bnez $a0, .L7F08D18C
/* 0C1CB0 7F08D180 00000000 */ nop
/* 0C1CB4 7F08D184 03E00008 */ jr $ra
/* 0C1CB8 7F08D188 00A01025 */ move $v0, $a1
.L7F08D18C:
/* 0C1CBC 7F08D18C 1000001B */ b .L7F08D1FC
/* 0C1CC0 7F08D190 2484FFFF */ addiu $a0, $a0, -1
.L7F08D194:
/* 0C1CC4 7F08D194 5547001A */ bnel $t2, $a3, .L7F08D200
/* 0C1CC8 7F08D198 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1CCC 7F08D19C 8C580004 */ lw $t8, 4($v0)
/* 0C1CD0 7F08D1A0 8F19000C */ lw $t9, 0xc($t8)
/* 0C1CD4 7F08D1A4 032B6024 */ and $t4, $t9, $t3
/* 0C1CD8 7F08D1A8 55800015 */ bnezl $t4, .L7F08D200
/* 0C1CDC 7F08D1AC 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1CE0 7F08D1B0 14800003 */ bnez $a0, .L7F08D1C0
/* 0C1CE4 7F08D1B4 00000000 */ nop
/* 0C1CE8 7F08D1B8 03E00008 */ jr $ra
/* 0C1CEC 7F08D1BC 00A01025 */ move $v0, $a1
.L7F08D1C0:
/* 0C1CF0 7F08D1C0 1000000E */ b .L7F08D1FC
/* 0C1CF4 7F08D1C4 2484FFFF */ addiu $a0, $a0, -1
.L7F08D1C8:
/* 0C1CF8 7F08D1C8 5542000D */ bnel $t2, $v0, .L7F08D200
/* 0C1CFC 7F08D1CC 8CA5000C */ lw $a1, 0xc($a1)
/* 0C1D00 7F08D1D0 10600005 */ beqz $v1, .L7F08D1E8
/* 0C1D04 7F08D1D4 00000000 */ nop
/* 0C1D08 7F08D1D8 8CAD0004 */ lw $t5, 4($a1)
/* 0C1D0C 7F08D1DC 29A10021 */ slti $at, $t5, 0x21
/* 0C1D10 7F08D1E0 54200007 */ bnezl $at, .L7F08D200
/* 0C1D14 7F08D1E4 8CA5000C */ lw $a1, 0xc($a1)
.L7F08D1E8:
/* 0C1D18 7F08D1E8 54800004 */ bnezl $a0, .L7F08D1FC
/* 0C1D1C 7F08D1EC 2484FFFF */ addiu $a0, $a0, -1
/* 0C1D20 7F08D1F0 03E00008 */ jr $ra
/* 0C1D24 7F08D1F4 00A01025 */ move $v0, $a1
/* 0C1D28 7F08D1F8 2484FFFF */ addiu $a0, $a0, -1
.L7F08D1FC:
/* 0C1D2C 7F08D1FC 8CA5000C */ lw $a1, 0xc($a1)
.L7F08D200:
/* 0C1D30 7F08D200 50A60004 */ beql $a1, $a2, .L7F08D214
/* 0C1D34 7F08D204 00001025 */ move $v0, $zero
/* 0C1D38 7F08D208 54A0FFD1 */ bnezl $a1, .L7F08D150
/* 0C1D3C 7F08D20C 8CA20000 */ lw $v0, ($a1)
.L7F08D210:
/* 0C1D40 7F08D210 00001025 */ move $v0, $zero
.L7F08D214:
/* 0C1D44 7F08D214 03E00008 */ jr $ra
/* 0C1D48 7F08D218 00000000 */ nop
)
#endif
#endif
textoverride *get_textoverride_by_obj(ObjectRecord *obj) {
@@ -2173,7 +2783,7 @@ textoverride *get_textoverride_by_weaponum(ITEM_IDS weaponnum) {
}
#ifdef VERSION_US
#ifndef VERSION_JP
s32 get_weaponnum_by_inv_index(s32 index) {
textoverride *override;
@@ -2441,6 +3051,80 @@ glabel sub_GAME_7F08D340
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08D340
/* 0C1E70 7F08D340 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C1E74 7F08D344 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C1E78 7F08D348 0FC23442 */ jal sub_GAME_7F08D108
/* 0C1E7C 7F08D34C AFA40020 */ sw $a0, 0x20($sp)
/* 0C1E80 7F08D350 8FA50020 */ lw $a1, 0x20($sp)
/* 0C1E84 7F08D354 00401825 */ move $v1, $v0
/* 0C1E88 7F08D358 10400024 */ beqz $v0, .L7F08D3EC
/* 0C1E8C 7F08D35C 00003025 */ move $a2, $zero
/* 0C1E90 7F08D360 8C440000 */ lw $a0, ($v0)
/* 0C1E94 7F08D364 24010002 */ li $at, 2
/* 0C1E98 7F08D368 54810012 */ bnel $a0, $at, .L7F08D3B4
/* 0C1E9C 7F08D36C 24010001 */ li $at, 1
/* 0C1EA0 7F08D370 8C420004 */ lw $v0, 4($v0)
/* 0C1EA4 7F08D374 8C440004 */ lw $a0, 4($v0)
/* 0C1EA8 7F08D378 0FC23487 */ jal get_textoverride_by_obj
/* 0C1EAC 7F08D37C AFA00018 */ sw $zero, 0x18($sp)
/* 0C1EB0 7F08D380 8FA60018 */ lw $a2, 0x18($sp)
/* 0C1EB4 7F08D384 10400025 */ beqz $v0, .L7F08D41C
/* 0C1EB8 7F08D388 00401825 */ move $v1, $v0
/* 0C1EBC 7F08D38C 8C4E0014 */ lw $t6, 0x14($v0)
/* 0C1EC0 7F08D390 11C00005 */ beqz $t6, .L7F08D3A8
/* 0C1EC4 7F08D394 00000000 */ nop
/* 0C1EC8 7F08D398 0FC30776 */ jal get_textptr_for_textID
/* 0C1ECC 7F08D39C 8C640014 */ lw $a0, 0x14($v1)
/* 0C1ED0 7F08D3A0 10000021 */ b .L7F08D428
/* 0C1ED4 7F08D3A4 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D3A8:
/* 0C1ED8 7F08D3A8 1000001C */ b .L7F08D41C
/* 0C1EDC 7F08D3AC 8C460008 */ lw $a2, 8($v0)
/* 0C1EE0 7F08D3B0 24010001 */ li $at, 1
.L7F08D3B4:
/* 0C1EE4 7F08D3B4 14810019 */ bne $a0, $at, .L7F08D41C
/* 0C1EE8 7F08D3B8 00000000 */ nop
/* 0C1EEC 7F08D3BC 8C640004 */ lw $a0, 4($v1)
/* 0C1EF0 7F08D3C0 0FC23497 */ jal get_textoverride_by_weaponum
/* 0C1EF4 7F08D3C4 AFA40018 */ sw $a0, 0x18($sp)
/* 0C1EF8 7F08D3C8 10400014 */ beqz $v0, .L7F08D41C
/* 0C1EFC 7F08D3CC 8FA60018 */ lw $a2, 0x18($sp)
/* 0C1F00 7F08D3D0 8C4F0014 */ lw $t7, 0x14($v0)
/* 0C1F04 7F08D3D4 11E00011 */ beqz $t7, .L7F08D41C
/* 0C1F08 7F08D3D8 00000000 */ nop
/* 0C1F0C 7F08D3DC 0FC30776 */ jal get_textptr_for_textID
/* 0C1F10 7F08D3E0 8C440014 */ lw $a0, 0x14($v0)
/* 0C1F14 7F08D3E4 10000010 */ b .L7F08D428
/* 0C1F18 7F08D3E8 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D3EC:
/* 0C1F1C 7F08D3EC 3C188008 */ lui $t8, %hi(pPlayer)
/* 0C1F20 7F08D3F0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8)
/* 0C1F24 7F08D3F4 28A10020 */ slti $at, $a1, 0x20
/* 0C1F28 7F08D3F8 8F1911EC */ lw $t9, 0x11ec($t8)
/* 0C1F2C 7F08D3FC 13200007 */ beqz $t9, .L7F08D41C
/* 0C1F30 7F08D400 00000000 */ nop
/* 0C1F34 7F08D404 10200005 */ beqz $at, .L7F08D41C
/* 0C1F38 7F08D408 00000000 */ nop
/* 0C1F3C 7F08D40C 0FC19C2A */ jal get_ptr_short_watch_text_for_item
/* 0C1F40 7F08D410 24A40001 */ addiu $a0, $a1, 1
/* 0C1F44 7F08D414 10000004 */ b .L7F08D428
/* 0C1F48 7F08D418 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D41C:
/* 0C1F4C 7F08D41C 0FC19C2A */ jal get_ptr_short_watch_text_for_item
/* 0C1F50 7F08D420 00C02025 */ move $a0, $a2
/* 0C1F54 7F08D424 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D428:
/* 0C1F58 7F08D428 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C1F5C 7F08D42C 03E00008 */ jr $ra
/* 0C1F60 7F08D430 00000000 */ nop
)
#endif
#endif
@@ -2614,6 +3298,79 @@ glabel sub_GAME_7F08D434
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08D434
/* 0C1F64 7F08D434 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C1F68 7F08D438 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C1F6C 7F08D43C 0FC23442 */ jal sub_GAME_7F08D108
/* 0C1F70 7F08D440 AFA40020 */ sw $a0, 0x20($sp)
/* 0C1F74 7F08D444 8FA50020 */ lw $a1, 0x20($sp)
/* 0C1F78 7F08D448 00401825 */ move $v1, $v0
/* 0C1F7C 7F08D44C 10400024 */ beqz $v0, .L7F08D4E0
/* 0C1F80 7F08D450 00003025 */ move $a2, $zero
/* 0C1F84 7F08D454 8C440000 */ lw $a0, ($v0)
/* 0C1F88 7F08D458 24010002 */ li $at, 2
/* 0C1F8C 7F08D45C 54810012 */ bnel $a0, $at, .L7F08D4A8
/* 0C1F90 7F08D460 24010001 */ li $at, 1
/* 0C1F94 7F08D464 8C420004 */ lw $v0, 4($v0)
/* 0C1F98 7F08D468 8C440004 */ lw $a0, 4($v0)
/* 0C1F9C 7F08D46C 0FC23487 */ jal get_textoverride_by_obj
/* 0C1FA0 7F08D470 AFA00018 */ sw $zero, 0x18($sp)
/* 0C1FA4 7F08D474 8FA60018 */ lw $a2, 0x18($sp)
/* 0C1FA8 7F08D478 10400025 */ beqz $v0, .L7F08D510
/* 0C1FAC 7F08D47C 00401825 */ move $v1, $v0
/* 0C1FB0 7F08D480 8C4E0018 */ lw $t6, 0x18($v0)
/* 0C1FB4 7F08D484 11C00005 */ beqz $t6, .L7F08D49C
/* 0C1FB8 7F08D488 00000000 */ nop
/* 0C1FBC 7F08D48C 0FC30776 */ jal get_textptr_for_textID
/* 0C1FC0 7F08D490 8C640018 */ lw $a0, 0x18($v1)
/* 0C1FC4 7F08D494 10000021 */ b .L7F08D51C
/* 0C1FC8 7F08D498 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D49C:
/* 0C1FCC 7F08D49C 1000001C */ b .L7F08D510
/* 0C1FD0 7F08D4A0 8C460008 */ lw $a2, 8($v0)
/* 0C1FD4 7F08D4A4 24010001 */ li $at, 1
.L7F08D4A8:
/* 0C1FD8 7F08D4A8 14810019 */ bne $a0, $at, .L7F08D510
/* 0C1FDC 7F08D4AC 00000000 */ nop
/* 0C1FE0 7F08D4B0 8C640004 */ lw $a0, 4($v1)
/* 0C1FE4 7F08D4B4 0FC23497 */ jal get_textoverride_by_weaponum
/* 0C1FE8 7F08D4B8 AFA40018 */ sw $a0, 0x18($sp)
/* 0C1FEC 7F08D4BC 10400014 */ beqz $v0, .L7F08D510
/* 0C1FF0 7F08D4C0 8FA60018 */ lw $a2, 0x18($sp)
/* 0C1FF4 7F08D4C4 8C4F0018 */ lw $t7, 0x18($v0)
/* 0C1FF8 7F08D4C8 11E00011 */ beqz $t7, .L7F08D510
/* 0C1FFC 7F08D4CC 00000000 */ nop
/* 0C2000 7F08D4D0 0FC30776 */ jal get_textptr_for_textID
/* 0C2004 7F08D4D4 8C440018 */ lw $a0, 0x18($v0)
/* 0C2008 7F08D4D8 10000010 */ b .L7F08D51C
/* 0C200C 7F08D4DC 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D4E0:
/* 0C2010 7F08D4E0 3C188008 */ lui $t8, %hi(pPlayer)
/* 0C2014 7F08D4E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8)
/* 0C2018 7F08D4E8 28A10020 */ slti $at, $a1, 0x20
/* 0C201C 7F08D4EC 8F1911EC */ lw $t9, 0x11ec($t8)
/* 0C2020 7F08D4F0 13200007 */ beqz $t9, .L7F08D510
/* 0C2024 7F08D4F4 00000000 */ nop
/* 0C2028 7F08D4F8 10200005 */ beqz $at, .L7F08D510
/* 0C202C 7F08D4FC 00000000 */ nop
/* 0C2030 7F08D500 0FC19C37 */ jal get_ptr_long_watch_text_for_item
/* 0C2034 7F08D504 24A40001 */ addiu $a0, $a1, 1
/* 0C2038 7F08D508 10000004 */ b .L7F08D51C
/* 0C203C 7F08D50C 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D510:
/* 0C2040 7F08D510 0FC19C37 */ jal get_ptr_long_watch_text_for_item
/* 0C2044 7F08D514 00C02025 */ move $a0, $a2
/* 0C2048 7F08D518 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D51C:
/* 0C204C 7F08D51C 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C2050 7F08D520 03E00008 */ jr $ra
/* 0C2054 7F08D524 00000000 */ nop
)
#endif
#endif
@@ -2821,6 +3578,80 @@ glabel sub_GAME_7F08D5C8
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08D5C8
/* 0C20F8 7F08D5C8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C20FC 7F08D5CC AFBF0014 */ sw $ra, 0x14($sp)
/* 0C2100 7F08D5D0 0FC23442 */ jal sub_GAME_7F08D108
/* 0C2104 7F08D5D4 AFA40020 */ sw $a0, 0x20($sp)
/* 0C2108 7F08D5D8 8FA50020 */ lw $a1, 0x20($sp)
/* 0C210C 7F08D5DC 00401825 */ move $v1, $v0
/* 0C2110 7F08D5E0 10400024 */ beqz $v0, .L7F08D674
/* 0C2114 7F08D5E4 00003025 */ move $a2, $zero
/* 0C2118 7F08D5E8 8C440000 */ lw $a0, ($v0)
/* 0C211C 7F08D5EC 24010002 */ li $at, 2
/* 0C2120 7F08D5F0 54810012 */ bnel $a0, $at, .L7F08D63C
/* 0C2124 7F08D5F4 24010001 */ li $at, 1
/* 0C2128 7F08D5F8 8C420004 */ lw $v0, 4($v0)
/* 0C212C 7F08D5FC 8C440004 */ lw $a0, 4($v0)
/* 0C2130 7F08D600 0FC23487 */ jal get_textoverride_by_obj
/* 0C2134 7F08D604 AFA00018 */ sw $zero, 0x18($sp)
/* 0C2138 7F08D608 8FA60018 */ lw $a2, 0x18($sp)
/* 0C213C 7F08D60C 10400025 */ beqz $v0, .L7F08D6A4
/* 0C2140 7F08D610 00401825 */ move $v1, $v0
/* 0C2144 7F08D614 8C4E000C */ lw $t6, 0xc($v0)
/* 0C2148 7F08D618 11C00005 */ beqz $t6, .L7F08D630
/* 0C214C 7F08D61C 00000000 */ nop
/* 0C2150 7F08D620 0FC30776 */ jal get_textptr_for_textID
/* 0C2154 7F08D624 8C64000C */ lw $a0, 0xc($v1)
/* 0C2158 7F08D628 10000021 */ b .L7F08D6B0
/* 0C215C 7F08D62C 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D630:
/* 0C2160 7F08D630 1000001C */ b .L7F08D6A4
/* 0C2164 7F08D634 8C460008 */ lw $a2, 8($v0)
/* 0C2168 7F08D638 24010001 */ li $at, 1
.L7F08D63C:
/* 0C216C 7F08D63C 14810019 */ bne $a0, $at, .L7F08D6A4
/* 0C2170 7F08D640 00000000 */ nop
/* 0C2174 7F08D644 8C640004 */ lw $a0, 4($v1)
/* 0C2178 7F08D648 0FC23497 */ jal get_textoverride_by_weaponum
/* 0C217C 7F08D64C AFA40018 */ sw $a0, 0x18($sp)
/* 0C2180 7F08D650 10400014 */ beqz $v0, .L7F08D6A4
/* 0C2184 7F08D654 8FA60018 */ lw $a2, 0x18($sp)
/* 0C2188 7F08D658 8C4F000C */ lw $t7, 0xc($v0)
/* 0C218C 7F08D65C 11E00011 */ beqz $t7, .L7F08D6A4
/* 0C2190 7F08D660 00000000 */ nop
/* 0C2194 7F08D664 0FC30776 */ jal get_textptr_for_textID
/* 0C2198 7F08D668 8C44000C */ lw $a0, 0xc($v0)
/* 0C219C 7F08D66C 10000010 */ b .L7F08D6B0
/* 0C21A0 7F08D670 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D674:
/* 0C21A4 7F08D674 3C188008 */ lui $t8, %hi(pPlayer)
/* 0C21A8 7F08D678 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8)
/* 0C21AC 7F08D67C 28A10020 */ slti $at, $a1, 0x20
/* 0C21B0 7F08D680 8F1911EC */ lw $t9, 0x11ec($t8)
/* 0C21B4 7F08D684 13200007 */ beqz $t9, .L7F08D6A4
/* 0C21B8 7F08D688 00000000 */ nop
/* 0C21BC 7F08D68C 10200005 */ beqz $at, .L7F08D6A4
/* 0C21C0 7F08D690 00000000 */ nop
/* 0C21C4 7F08D694 0FC19C10 */ jal get_ptr_first_title_line_item
/* 0C21C8 7F08D698 24A40001 */ addiu $a0, $a1, 1
/* 0C21CC 7F08D69C 10000004 */ b .L7F08D6B0
/* 0C21D0 7F08D6A0 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D6A4:
/* 0C21D4 7F08D6A4 0FC19C10 */ jal get_ptr_first_title_line_item
/* 0C21D8 7F08D6A8 00C02025 */ move $a0, $a2
/* 0C21DC 7F08D6AC 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D6B0:
/* 0C21E0 7F08D6B0 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C21E4 7F08D6B4 03E00008 */ jr $ra
/* 0C21E8 7F08D6B8 00000000 */ nop
)
#endif
#endif
@@ -2994,6 +3825,81 @@ glabel sub_GAME_7F08D6BC
/* 0C2E04 7F08E294 00000000 */ nop
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel sub_GAME_7F08D6BC
/* 0C21EC 7F08D6BC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C21F0 7F08D6C0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C21F4 7F08D6C4 0FC23442 */ jal sub_GAME_7F08D108
/* 0C21F8 7F08D6C8 AFA40020 */ sw $a0, 0x20($sp)
/* 0C21FC 7F08D6CC 8FA50020 */ lw $a1, 0x20($sp)
/* 0C2200 7F08D6D0 00401825 */ move $v1, $v0
/* 0C2204 7F08D6D4 10400024 */ beqz $v0, .L7F08D768
/* 0C2208 7F08D6D8 00003025 */ move $a2, $zero
/* 0C220C 7F08D6DC 8C440000 */ lw $a0, ($v0)
/* 0C2210 7F08D6E0 24010002 */ li $at, 2
/* 0C2214 7F08D6E4 54810012 */ bnel $a0, $at, .L7F08D730
/* 0C2218 7F08D6E8 24010001 */ li $at, 1
/* 0C221C 7F08D6EC 8C420004 */ lw $v0, 4($v0)
/* 0C2220 7F08D6F0 8C440004 */ lw $a0, 4($v0)
/* 0C2224 7F08D6F4 0FC23487 */ jal get_textoverride_by_obj
/* 0C2228 7F08D6F8 AFA00018 */ sw $zero, 0x18($sp)
/* 0C222C 7F08D6FC 8FA60018 */ lw $a2, 0x18($sp)
/* 0C2230 7F08D700 10400025 */ beqz $v0, .L7F08D798
/* 0C2234 7F08D704 00401825 */ move $v1, $v0
/* 0C2238 7F08D708 8C4E0010 */ lw $t6, 0x10($v0)
/* 0C223C 7F08D70C 11C00005 */ beqz $t6, .L7F08D724
/* 0C2240 7F08D710 00000000 */ nop
/* 0C2244 7F08D714 0FC30776 */ jal get_textptr_for_textID
/* 0C2248 7F08D718 8C640010 */ lw $a0, 0x10($v1)
/* 0C224C 7F08D71C 10000021 */ b .L7F08D7A4
/* 0C2250 7F08D720 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D724:
/* 0C2254 7F08D724 1000001C */ b .L7F08D798
/* 0C2258 7F08D728 8C460008 */ lw $a2, 8($v0)
/* 0C225C 7F08D72C 24010001 */ li $at, 1
.L7F08D730:
/* 0C2260 7F08D730 14810019 */ bne $a0, $at, .L7F08D798
/* 0C2264 7F08D734 00000000 */ nop
/* 0C2268 7F08D738 8C640004 */ lw $a0, 4($v1)
/* 0C226C 7F08D73C 0FC23497 */ jal get_textoverride_by_weaponum
/* 0C2270 7F08D740 AFA40018 */ sw $a0, 0x18($sp)
/* 0C2274 7F08D744 10400014 */ beqz $v0, .L7F08D798
/* 0C2278 7F08D748 8FA60018 */ lw $a2, 0x18($sp)
/* 0C227C 7F08D74C 8C4F0010 */ lw $t7, 0x10($v0)
/* 0C2280 7F08D750 11E00011 */ beqz $t7, .L7F08D798
/* 0C2284 7F08D754 00000000 */ nop
/* 0C2288 7F08D758 0FC30776 */ jal get_textptr_for_textID
/* 0C228C 7F08D75C 8C440010 */ lw $a0, 0x10($v0)
/* 0C2290 7F08D760 10000010 */ b .L7F08D7A4
/* 0C2294 7F08D764 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D768:
/* 0C2298 7F08D768 3C188008 */ lui $t8, %hi(pPlayer)
/* 0C229C 7F08D76C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8)
/* 0C22A0 7F08D770 28A10020 */ slti $at, $a1, 0x20
/* 0C22A4 7F08D774 8F1911EC */ lw $t9, 0x11ec($t8)
/* 0C22A8 7F08D778 13200007 */ beqz $t9, .L7F08D798
/* 0C22AC 7F08D77C 00000000 */ nop
/* 0C22B0 7F08D780 10200005 */ beqz $at, .L7F08D798
/* 0C22B4 7F08D784 00000000 */ nop
/* 0C22B8 7F08D788 0FC19C1D */ jal get_ptr_second_title_line_item
/* 0C22BC 7F08D78C 24A40001 */ addiu $a0, $a1, 1
/* 0C22C0 7F08D790 10000004 */ b .L7F08D7A4
/* 0C22C4 7F08D794 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D798:
/* 0C22C8 7F08D798 0FC19C1D */ jal get_ptr_second_title_line_item
/* 0C22CC 7F08D79C 00C02025 */ move $a0, $a2
/* 0C22D0 7F08D7A0 8FBF0014 */ lw $ra, 0x14($sp)
.L7F08D7A4:
/* 0C22D4 7F08D7A4 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C22D8 7F08D7A8 03E00008 */ jr $ra
/* 0C22DC 7F08D7AC 00000000 */ nop
)
#endif
#endif
+8886 -3415
View File
File diff suppressed because it is too large Load Diff
+180 -35
View File
@@ -4,40 +4,182 @@
#include "game/chrobjdata.h"
#include "bondconstants.h"
struct weapon_stats
struct WeaponStats
{
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;
/**
* Distance of gun flash from the end of the barrel.
*/
f32 MuzzleFlashExtension;
/**
* On screen gun position, X.
*/
f32 PosX;
/**
* On screen gun position, Y.
*/
f32 PosY;
/**
* On screen gun position, Z.
*/
f32 PosZ;
/**
* The amount of play the guns are given when you move forward/back.
*/
f32 PlayX;
/**
* The amount of play the guns are given when you move side
* to side.
*/
f32 PlayY;
/**
* The amount of play the guns are given when you move up or down.
*/
f32 PlayZ;
/**
* Ammo type, and what ammo img is shown.
*/
s32 AmmoType;
/**
* Number of rounds before needing to reload.
*/
s16 MagSize;
/**
* Time between automatic shots. -1 (0xFF) for disabled.
* For reference, RC-P90=0x2, and KF7=0x3.
* (is this an enum?)
*/
u8 AutomaticFiringRate;
/**
* Time between manual shots.
* For reference, KF7=0, while rocket launcher = 0x14.
*/
s8 SingleFiringRate;
/**
* How many objects the bullet goes through.
*/
u8 ObjectsShootThrough;
/**
* Sound trigger rate.
*/
u8 SoundTriggerRate;
/**
* Sound effect played when gun is shot. There are 261 sound effects, or 0 - 105h.
*/
u16 Sound;
/**
* Comment from long ago:
* Location of address that displays the bullet shells flying from the guns, and runs
* the ping sound of the casings hitting the ground. This value is either 00000000 for
* no bullet casings (laser, knife, grenade, so on) or 8003CB60, the location of pointers
* that point to code possibly, I haven't explored the area a lot near that address
* (8003CB60)
*/
struct Gitemheader * ptr_cartridge_struct;
/**
* Amount of destruction or power each bullet packs.
* For reference, KF7=1.0, while golden gun = 100.0.
*/
f32 DestructionAmount;
/**
* Amount of inaccuracy the gun has.
* For reference, KF7=10.0, sniper rifle = 0.0.
*/
f32 Inaccuracy;
/**
* Amount of zoom the gun has. Just setting this value doesn't give the option of
* zooming in and out, that is somewhere else.
* For reference, KF7=30.0, sniper rifle = 15.0.
*/
f32 Zoom;
/**
* Speed of red cross-hair.
*/
f32 CrosshairSpeed;
/**
* Weapon Aim/Lock-On Speed.
*/
f32 AimLockSpeed;
/**
* Hand stabilization. A low value will keep the hands still while a high value will
* cause bonds arms to twirl around in circles and turn every which way.
*/
f32 Sway;
/**
* Recoil speed.
*/
s32 RecoilSpeed;
/**
* How far back bonds hands pull back when the gun is fired.
*/
f32 RecoilBack;
/**
* Amount of recoil the gun has.
*/
f32 RecoilUp;
/**
* How far back the bolt slides when the gun is fired.
*/
f32 BoltRecoilBack;
/**
* The minimum amount of sound an enemy can hear from this weapon.
*/
f32 LoudnessMin;
/**
* The maximum amount of sound an enemy can hear from this weapon.
*/
f32 LoudnessMax;
/**
* Amount of noise increased with each shot fired.
* ("Noise" is the value used to determine if a guard should be alerted).
*/
f32 NoiseIncreasePerShot;
/**
* Unknown (field 0x60).
*/
f32 field_60;
/**
* Unknown (field 0x64).
*/
f32 field_64;
/**
* Force of impact.
*/
f32 ForceOfImpact;
/**
*
*/
u32 BitFlags;
};
struct gitem_data_struct
@@ -45,7 +187,7 @@ struct gitem_data_struct
struct Gitemheader * item_header;
char * item_file_name;
s32 has_no_model;
struct weapon_stats * item_weapon_stats;
struct WeaponStats * item_weapon_stats;
u16 upper_watch_text;
u16 lower_watch_text;
f32 watch_pos_x;
@@ -65,7 +207,10 @@ struct ejected_cart {
char * text;
};
f32 bondwalkGetItemField68(ITEM_IDS item);
extern char dword_CODE_bss_80075DC8[20][160];
f32 bondwalkItemGetForceOfImpact(ITEM_IDS item);
u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask);
void bondwalkFireBothHands(void);
+1780 -762
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -12,4 +12,6 @@ struct struct_15 {
int anonymous_3;
};
extern char off_CODE_bss_80079E30[0x4C];
#endif
+1666 -46
View File
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -183,10 +183,13 @@ 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 u32 num_bodies;
extern u32 num_male_heads;
extern u32 num_female_heads;
extern s32 list_of_bodies[];
extern s32 random_male_heads[];
extern s32 random_female_heads[];
extern u32 current_random_body;
extern u32 current_random_male_head;
extern u32 current_random_female_head;
#endif
+954 -177
View File
File diff suppressed because it is too large Load Diff
+80
View File
@@ -0,0 +1,80 @@
#include "ultra64.h"
/**
* @file chrObjRandom.c
* This file contains code to get a random tlb value.
* The methods here are the same as in random and tlb_random (but different globals).
*/
// data
//D:80040160
u64 g_chrObjRandomSeed = 0xAB8D9F7781280783;
#ifdef NONMATCHING
/**
* Iterates the current random seed and returns a 32 bit value.
* Same assembly instructions as randomGetNext and tlbRandomGetNext, but different globals.
*/
s32 chrObjRandomGetNext(void) {
// best guess comments copied from random.c
// best -O1 guess
// g_randomSeed ^= (((((g_randomSeed << 0x3f) >> 0x1f) | ((g_randomSeed << 0x1f) >> 0x20)) ^ ((g_randomSeed << 0x2c) >> 0x20)) >> 0x14) & 0xfff;
// return (s32)(g_randomSeed);
// best -O2 guess
// u64 t = ((g_randomSeed << 0x3f) >> 0x1f);
// t |= ((g_randomSeed << 0x1f) >> 0x20);
// t ^= ((g_randomSeed << 0x2c) >> 0x20);
// t = g_randomSeed ^ ((t >> 0x14) & 0xfff);
// g_randomSeed = t;
// return (s32)(t);
}
#else
GLOBAL_ASM(
.text
glabel chrObjRandomGetNext
/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(g_chrObjRandomSeed)
/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(g_chrObjRandomSeed)($a0)
/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(g_chrObjRandomSeed)
/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f
/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f
/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f
/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0
/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc
/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1
/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0
/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0
/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14
/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff
/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2
/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0
/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(g_chrObjRandomSeed)($at)
/* 0D02B0 7F09B780 03E00008 */ jr $ra
/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0
)
#endif
#ifdef NONMATCHING
/**
* This sets the global random seed.
*
* Assembly assigns zero to $a0 at the end of the function, which seems odd.
*
* Same assembly instructions as randomSetSeed.
*/
void chrObjRandomSetSeed(u64 param_1)
{
g_chrObjRandomSeed = param_1 + 1;
}
#else
GLOBAL_ASM(
.text
glabel chrObjRandomSetSeed
/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1
/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(g_chrObjRandomSeed)
/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(g_chrObjRandomSeed)($at)
/* 0D02C4 7F09B794 03E00008 */ jr $ra
/* 0D02C8 7F09B798 24040000 */ li $a0, 0
)
#endif
+5912 -57
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -111,6 +111,7 @@ extern struct struct_20 D_80031D58;
extern u32 monitor_animation_microcode[];
extern u32 dword_D_80031F00[];
extern u32 dword_D_80031F44[];
extern u32 temp_mine_table[30];
extern f32 gas_damage_flag;
extern u32 gas_cutoff_flag;
extern struct object_standard * ptr_setup_objects;
+2
View File
@@ -676,4 +676,6 @@ extern struct PitemZ_header PdoorconsoleZ_header;
extern struct PitemZ_header PchrtesttubeZ_header;
extern struct PitemZ_header Pbollardz_header;
extern struct c_itementry c_item_entries[];
#endif
+8035 -515
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
#ifndef _CHROBJHANDLER_H_
#define _CHROBJHANDLER_H_
#include "ultra64.h"
extern s32 D_80030B00;
#endif
+2 -15
View File
@@ -1,20 +1,7 @@
#include "ultra64.h"
#include "bondconstants.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
+8 -8
View File
@@ -138,12 +138,12 @@ glabel print_debug_mcm_to_stdout
/* 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
/* 0C4A50 7F08FF20 0C002C1B */ jal debmenuSetPrimColor
/* 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
/* 0C4A60 7F08FF30 0C002C1B */ jal debmenuSetPrimColor
/* 0C4A64 7F08FF34 240700C0 */ li $a3, 192
/* 0C4A68 7F08FF38 8E980000 */ lw $t8, ($s4)
.L7F08FF3C:
@@ -176,11 +176,11 @@ glabel print_debug_mcm_to_stdout
/* 0C4ACC 7F08FF9C 00000000 */ nop
/* 0C4AD0 7F08FFA0 0006000D */ break 6
.L7F08FFA4:
/* 0C4AD4 7F08FFA4 0C002C10 */ jal set_final_debug_text_positions
/* 0C4AD4 7F08FFA4 0C002C10 */ jal debmenuSetPosition
/* 0C4AD8 7F08FFA8 00000000 */ nop
/* 0C4ADC 7F08FFAC 8ECC0000 */ lw $t4, ($s6)
/* 0C4AE0 7F08FFB0 01926821 */ addu $t5, $t4, $s2
/* 0C4AE4 7F08FFB4 0C002C7A */ jal write_string_stdout
/* 0C4AE4 7F08FFB4 0C002C7A */ jal debmenuWriteString
/* 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)
@@ -263,12 +263,12 @@ glabel sub_GAME_7F09000C
/* 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
/* 0C4BEC 7F0900BC 0C002C1B */ jal debmenuSetPrimColor
/* 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
/* 0C4BFC 7F0900CC 0C002C1B */ jal debmenuSetPrimColor
/* 0C4C00 7F0900D0 240700C0 */ li $a3, 192
/* 0C4C04 7F0900D4 8EF80000 */ lw $t8, ($s7)
.L7F0900D8:
@@ -301,12 +301,12 @@ glabel sub_GAME_7F09000C
/* 0C4C68 7F090138 00000000 */ nop
/* 0C4C6C 7F09013C 0006000D */ break 6
.L7F090140:
/* 0C4C70 7F090140 0C002C10 */ jal set_final_debug_text_positions
/* 0C4C70 7F090140 0C002C10 */ jal debmenuSetPosition
/* 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
/* 0C4C84 7F090154 0C002C7A */ jal debmenuWriteString
/* 0C4C88 7F090158 8DA40000 */ lw $a0, ($t5)
/* 0C4C8C 7F09015C 3C048005 */ lui $a0, %hi(aMenu_cErrorTriedToCallFont_makegt)
/* 0C4C90 7F090160 0C0033D1 */ jal osSyncPrintf
+11 -10
View File
@@ -1,6 +1,7 @@
#include "ultra64.h"
#include "game/debugmenu_090490.h"
#include "game/initgamedata.h"
#include "boss.h"
// data
//D:80036BA0
@@ -426,7 +427,7 @@ void removed_do_debug_profile_flag_true(void) {
#ifdef NONMATCHING
void debug_menu_processor(void) {
s32 debug_menu_processor(s8 arg0, s8 arg1, u16 arg2, u16 arg3) {
}
#else
@@ -539,7 +540,7 @@ glabel debug_menu_processor
/* 0C5108 7F0905D8 0C0012ED */ jal indy_grab_rgb_32bit
/* 0C510C 7F0905DC 00000000 */ nop
/* 0C5110 7F0905E0 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag)
/* 0C5114 7F0905E4 0C000F00 */ jal set_coloroutputmode_16bit
/* 0C5114 7F0905E4 0C000F00 */ jal viSetColorMode16Bit
/* 0C5118 7F0905E8 AC206FFC */ sw $zero, %lo(grab_rgb_screenshot_flag)($at)
/* 0C511C 7F0905EC 0C0038B4 */ jal osViBlack
/* 0C5120 7F0905F0 00002025 */ move $a0, $zero
@@ -555,7 +556,7 @@ glabel debug_menu_processor
/* 0C5144 7F090614 0C001235 */ jal indy_grab_jpg_32bit
/* 0C5148 7F090618 00000000 */ nop
/* 0C514C 7F09061C 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag)
/* 0C5150 7F090620 0C000F00 */ jal set_coloroutputmode_16bit
/* 0C5150 7F090620 0C000F00 */ jal viSetColorMode16Bit
/* 0C5154 7F090624 AC207000 */ sw $zero, %lo(grab_jpeg_screenshot_flag)($at)
/* 0C5158 7F090628 0C0038B4 */ jal osViBlack
/* 0C515C 7F09062C 00002025 */ move $a0, $zero
@@ -814,7 +815,7 @@ debug_displayspeed:
/* 0C54CC 7F09099C 3B190001 */ xori $t9, $t8, 1
/* 0C54D0 7F0909A0 17200134 */ bnez $t9, .L7F090E74
/* 0C54D4 7F0909A4 AC590000 */ sw $t9, ($v0)
/* 0C54D8 7F0909A8 0C002BC0 */ jal blank_debug_buffer_chars
/* 0C54D8 7F0909A8 0C002BC0 */ jal debmenuReset
/* 0C54DC 7F0909AC 00000000 */ nop
/* 0C54E0 7F0909B0 10000131 */ b .L7F090E78
/* 0C54E4 7F0909B4 8FB80018 */ lw $t8, 0x18($sp)
@@ -868,7 +869,7 @@ debug_testingmanpos:
/* 0C5588 7F090A58 10000106 */ b .L7F090E74
/* 0C558C 7F090A5C AC4C0000 */ sw $t4, ($v0)
debug_playtitle:
/* 0C5590 7F090A60 0C001A54 */ jal set_loaded_stage
/* 0C5590 7F090A60 0C001A54 */ jal bossSetLoadedStage
/* 0C5594 7F090A64 2404005A */ li $a0, 90
/* 0C5598 7F090A68 10000103 */ b .L7F090E78
/* 0C559C 7F090A6C 8FB80018 */ lw $t8, 0x18($sp)
@@ -885,12 +886,12 @@ debug_prroomloads:
/* 0C55C0 7F090A90 100000F8 */ b .L7F090E74
/* 0C55C4 7F090A94 AC4E0000 */ sw $t6, ($v0)
debug_showmemuse:
/* 0C55C8 7F090A98 0C0017FD */ jal enable_show_mem_use_flag
/* 0C55C8 7F090A98 0C0017FD */ jal bossEnableShowMemUseFlag
/* 0C55CC 7F090A9C 00000000 */ nop
/* 0C55D0 7F090AA0 100000F5 */ b .L7F090E78
/* 0C55D4 7F090AA4 8FB80018 */ lw $t8, 0x18($sp)
debug_showmembars:
/* 0C55D8 7F090AA8 0C001801 */ jal mem_bars_flag_toggle
/* 0C55D8 7F090AA8 0C001801 */ jal bossMemBarsFlagToggle
/* 0C55DC 7F090AAC 00000000 */ nop
/* 0C55E0 7F090AB0 100000F1 */ b .L7F090E78
/* 0C55E4 7F090AB4 8FB80018 */ lw $t8, 0x18($sp)
@@ -900,7 +901,7 @@ debug_grabrgb:
/* 0C55F0 7F090AC0 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at)
/* 0C55F4 7F090AC4 0C0038B4 */ jal osViBlack
/* 0C55F8 7F090AC8 24040001 */ li $a0, 1
/* 0C55FC 7F090ACC 0C000F04 */ jal set_coloroutputmode_32bit
/* 0C55FC 7F090ACC 0C000F04 */ jal viSetColorMode32Bit
/* 0C5600 7F090AD0 00000000 */ nop
/* 0C5604 7F090AD4 100000E8 */ b .L7F090E78
/* 0C5608 7F090AD8 8FB80018 */ lw $t8, 0x18($sp)
@@ -910,7 +911,7 @@ debug_grabjpeg:
/* 0C5614 7F090AE4 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at)
/* 0C5618 7F090AE8 0C0038B4 */ jal osViBlack
/* 0C561C 7F090AEC 24040001 */ li $a0, 1
/* 0C5620 7F090AF0 0C000F04 */ jal set_coloroutputmode_32bit
/* 0C5620 7F090AF0 0C000F04 */ jal viSetColorMode32Bit
/* 0C5624 7F090AF4 00000000 */ nop
/* 0C5628 7F090AF8 100000DF */ b .L7F090E78
/* 0C562C 7F090AFC 8FB80018 */ lw $t8, 0x18($sp)
@@ -1201,7 +1202,7 @@ def_7F090EA8:
/* 0C59F8 7F090EC8 24010001 */ li $at, 1
/* 0C59FC 7F090ECC 15610003 */ bne $t3, $at, .L7F090EDC
/* 0C5A00 7F090ED0 00000000 */ nop
/* 0C5A04 7F090ED4 0C002BC0 */ jal blank_debug_buffer_chars
/* 0C5A04 7F090ED4 0C002BC0 */ jal debmenuReset
/* 0C5A08 7F090ED8 00000000 */ nop
.L7F090EDC:
/* 0C5A0C 7F090EDC 3C018003 */ lui $at, %hi(show_debug_menu_flag)
+3 -1
View File
@@ -38,5 +38,7 @@ 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);
Gfx * print_debug_mcm_to_stdout(Gfx *);
s32 debug_menu_processor(s8 arg0, s8 arg1, u16 arg2, u16 arg3);
void display_debug_menu_text_onscreen(void);
#endif
+39 -31
View File
@@ -4,31 +4,51 @@
//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
const u8 rz_header_bytes[40] = {
0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00,
0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00
};
#ifdef NONMATCHING
u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2) {
//
u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist)
{
rz_inbuf = src;
rz_outbuf = dst;
rz_hlist = hlist;
if ((src[0] != rz_header_bytes[0]) || (src[1] != rz_header_bytes[5]))
{
if (src[1] != rz_header_bytes[8])
{
}
if (src[2] != rz_header_bytes[0x18])
{
}
}
rz_inbuf = (s32) (rz_inbuf + 2);
rz_wp = 0;
rz_inptr = 0;
loop_to_decompress_entire_file();
return rz_wp;
}
#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
/* 103320 7F0CE7F0 3C078009 */ lui $a3, %hi(rz_inbuf)
/* 103324 7F0CE7F4 24E7D350 */ addiu $a3, %lo(rz_inbuf) # 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)
/* 10332C 7F0CE7FC 3C018009 */ lui $at, %hi(rz_outbuf)
/* 103330 7F0CE800 AC25D354 */ sw $a1, %lo(rz_outbuf)($at)
/* 103334 7F0CE804 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 103338 7F0CE808 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D360)
/* 103338 7F0CE808 3C018009 */ lui $at, %hi(rz_hlist)
/* 10333C 7F0CE80C AFBF0014 */ sw $ra, 0x14($sp)
/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(dword_CODE_bss_8008D360)($at)
/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(rz_hlist)($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)
@@ -52,16 +72,16 @@ glabel decompressdata
/* 10338C 7F0CE85C 8CEC0000 */ lw $t4, ($a3)
/* 103390 7F0CE860 8CEC0000 */ lw $t4, ($a3)
.L7F0CE864:
/* 103394 7F0CE864 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C)
/* 103394 7F0CE864 3C018009 */ lui $at, %hi(rz_wp)
/* 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)
/* 1033A0 7F0CE870 AC20D35C */ sw $zero, %lo(rz_wp)($at)
/* 1033A4 7F0CE874 3C018009 */ lui $at, %hi(rz_inptr)
/* 1033A8 7F0CE878 0FC33F35 */ jal loop_to_decompress_entire_file
/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(dword_CODE_bss_8008D358)($at)
/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(rz_inptr)($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)
/* 1033B4 7F0CE884 3C028009 */ lui $v0, %hi(rz_wp)
/* 1033B8 7F0CE888 8C42D35C */ lw $v0, %lo(rz_wp)($v0)
/* 1033BC 7F0CE88C 03E00008 */ jr $ra
/* 1033C0 7F0CE890 27BD0018 */ addiu $sp, $sp, 0x18
)
@@ -71,22 +91,10 @@ glabel decompressdata
#ifdef NONMATCHING
s32 sub_GAME_7F0CE894(void) {
// Node 0
return (dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358);
return (rz_inbuf + rz_inptr);
}
#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
+3 -1
View File
@@ -1,8 +1,10 @@
#ifndef _DECOMPRESS_H_
#define _DECOMPRESS_H_
#include "ultra64.h"
#include "inflate/inflate.h"
u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2);
u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist);
s32 sub_GAME_7F0CE894(void);
#endif
+117 -536
View File
@@ -1,482 +1,137 @@
#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;
#include "token.h"
#include "str.h"
#include "memp.h"
/**
* This file handles memory usage for graphics related tasks.
*
* There are two pools, "gfx" and "vtx", which are used to store different data.
*
* The gfx pool (g_GfxBuffers) is sized based on the stage's -mgfx
* argument. It contains only the master display list's GBI bytecode.
* The master gdl is passed through all rendering functions in the game engine,
* where each appends to the display list.
*
* The vtx pool (g_VtxBuffers) is sized based on the stage's -mvtx argument.
* It is used for auxiliary graphics data such as vertex arrays, matrices and
* colours.
*
* Both the gfx and vtx pools are split into two buffers of equal size.
* Only one buffer is active at a time - the other is being drawn to the screen
* while the active one is being built. Each time a frame is finished the active
* buffer index is swapped to the other one.
*
* Both the gfx and vtx pools have a third element in them, but this is just a
* marker for the end of the second element's allocation.
*/
// data
//D:800482E0
u8 *g_GfxBuffers[3];
u8 *g_VtxBuffers[3];
u8 *g_GfxMemPos;
u8 g_GfxActiveBufferIndex;
s32 g_GfxRequestedDisplayList;
s32 D_800482E0 = 0;
//D:800482E4
s32 D_800482E4[] = {0x10000, 0x18000, 0x20000};
//D:800482F0
s32 D_800482F0[] = {0x28000, 0x10000, 0x18000, 0x20000, 0x28000};
s32 g_GfxSizesByPlayerCount[] = {0x10000, 0x18000, 0x20000, 0x28000};
s32 g_VtxSizesByPlayerCount[] = {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");
debTryAdd(&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[getPlayerCount()] = strtol(check_token(1, "-mgfx"), 0, 0) << 0xa;
void dynInitMemory(void) {
if (tokenFind(1, "-mgfx")) {
g_GfxSizesByPlayerCount[getPlayerCount() - 1] = strtol(tokenFind(1, "-mgfx"), NULL, 0) * 1024;
}
if (tokenFind(1, "-mvtx")) {
g_VtxSizesByPlayerCount[getPlayerCount() - 1] = strtol(tokenFind(1, "-mvtx"), NULL, 0) * 1024;
}
if (check_token(1, "-mvtx") != 0)
{
D_800482F0[getPlayerCount()] = strtol(check_token(1, "-mvtx"), 0, 0) << 0xa;
g_GfxBuffers[0] = mempAllocBytesInBank(g_GfxSizesByPlayerCount[getPlayerCount() - 1] * 2, 4);
g_GfxBuffers[1] = (g_GfxBuffers[0] + g_GfxSizesByPlayerCount[getPlayerCount() - 1]);
g_GfxBuffers[2] = (g_GfxBuffers[1] + g_GfxSizesByPlayerCount[getPlayerCount() - 1]);
g_VtxBuffers[0] = mempAllocBytesInBank(g_VtxSizesByPlayerCount[getPlayerCount() - 1] * 2, 4);
g_VtxBuffers[1] = (g_VtxBuffers[0] + g_VtxSizesByPlayerCount[getPlayerCount() - 1]);
g_VtxBuffers[2] = (g_VtxBuffers[1] + g_VtxSizesByPlayerCount[getPlayerCount() - 1]);
g_GfxActiveBufferIndex = 0;
g_GfxRequestedDisplayList = FALSE;
g_GfxMemPos = g_VtxBuffers[0];
}
Gfx *dynGetMasterDisplayList(void) {
g_GfxRequestedDisplayList = TRUE;
return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex];
}
s32 dynGetFreeGfx2(Gfx *gdl) {
return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl;
}
void/*Vtx?*/ *dynAllocate7F0BD6C4(s32 count) {
void *ptr = g_GfxMemPos;
g_GfxMemPos += count * 0x10/*sizeof(Vtx)?*/;
return ptr;
}
Mtx *dynAllocateMatrix(void)
{
void *ptr = g_GfxMemPos;
g_GfxMemPos += sizeof(Mtx);
return ptr;
}
void/*Light?*/ *dynAllocate7F0BD6F8(s32 count) {
void *ptr = g_GfxMemPos;
g_GfxMemPos += count * 0x10/*sizeof(Light)?*/;
return ptr;
}
void *dynAllocate(s32 size) {
void *ptr = g_GfxMemPos;
size = ALIGN16_a(size);
g_GfxMemPos += size;
return ptr;
}
void dynSwapBuffers(void) {
g_GfxActiveBufferIndex = (g_GfxActiveBufferIndex ^ 1);
g_GfxRequestedDisplayList = FALSE;
g_GfxMemPos = g_VtxBuffers[g_GfxActiveBufferIndex];
}
void dynRemovedFunc(Gfx *gdl) {
}
s32 dynGetFreeGfx(Gfx *gdl) {
return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl;
}
s32 dynGetFreeVtx(void) {
return g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_GfxMemPos;
}
#ifdef NONMATCHING
// $f2 is used for 0.0f instead of $f0
f32 dynCalculateMembarLength(const char* arg0, f32 arg1, f32 arg2) {
strlen(arg0);
arg1 /= arg2;
if (arg1 < 0.0f) {
return 0.0f;
}
mempAllocBytesInBank(dyn_c_debug_notice_list_entry[sVar1] << 1, 4);
ptr_mgfx0_alloc_start.unk4 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D20 + ptr_mgfx0_alloc_start);
ptr_mgfx0_alloc_start.unk8 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D20 + ptr_mgfx0_alloc_start.unk4);
ptr_mvtx0_alloc_start = mempAllocBytesInBank(((0x80050000 + (getPlayerCount() * 4))->unk-7D10 * 2), 4);
ptr_mvtx0_alloc_start.unk4 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D10 + ptr_mvtx0_alloc_start);
temp_ret = getPlayerCount();
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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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 getPlayerCount
/* 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
f32 dynCalculateMembarLength(const char* arg0, f32 arg1, f32 arg2);
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
glabel dynCalculateMembarLength
/* 0F22FC 7F0BD7CC 44856000 */ mtc1 $a1, $f12
/* 0F2300 7F0BD7D0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0F2304 7F0BD7D4 AFBF0014 */ sw $ra, 0x14($sp)
@@ -498,81 +153,7 @@ glabel compute_membar_display_string
)
#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);
void dynDrawMembars(Gfx *gdl) {
dynCalculateMembarLength(membars_string2, ((Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl), ((Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex]));
dynCalculateMembarLength(membars_string2, (g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_GfxMemPos), (g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_VtxBuffers[g_GfxActiveBufferIndex]));
}
#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
+18
View File
@@ -1,7 +1,25 @@
#ifndef _DYN_H_
#define _DYN_H_
#include "ultra64.h"
/*
* Align to 16 bit boundary. Version "a", with preliminary addition.
*/
#define ALIGN16_a(val) (((val) + 0xf | 0xf) ^ 0xf)
void dynInitDebugNoticeList(void);
void dynInitMemory(void);
Gfx *dynGetMasterDisplayList(void);
s32 dynGetFreeGfx2(Gfx *gdl);
void *dynAllocate7F0BD6C4(s32 count);
Mtx *dynAllocateMatrix(void);
void *dynAllocate7F0BD6F8(s32 count);
void *dynAllocate(s32 size);
void dynSwapBuffers(void);
void dynRemovedFunc(Gfx *gdl);
s32 dynGetFreeGfx(Gfx *gdl);
s32 dynGetFreeVtx(void);
void dynDrawMembars(Gfx *gdl);
#endif
+11 -31
View File
@@ -183,34 +183,21 @@ struct fog_element2 fog_tables2[] = {
#ifdef NONMATCHING
void sub_GAME_7F0BA720(void) {
void sub_GAME_7F0BA720(s32 a, s32 b) {
return;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0BA720
/* 0EF250 7F0BA720 AFA40000 */ sw $a0, ($sp)
/* 0EF254 7F0BA724 03E00008 */ jr $ra
/* 0EF258 7F0BA728 AFA50004 */ sw $a1, 4($sp)
)
#endif
s32 get_ptr_currentdata(void){
return ptr_current_data;
return ptr_current_data;
}
f32 get_near_fog_value(void) {
return near_fog_value;
return near_fog_value;
}
f32 square_near_fog_value(void) {
return near_fog_value * near_fog_value;
return near_fog_value * near_fog_value;
}
@@ -229,9 +216,9 @@ glabel copy_table1_env_to_current
/* 0EF28C 7F0BA75C AFBF0014 */ sw $ra, 0x14($sp)
/* 0EF290 7F0BA760 C48E0008 */ lwc1 $f14, 8($a0)
/* 0EF294 7F0BA764 C48C0004 */ lwc1 $f12, 4($a0)
/* 0EF298 7F0BA768 0C001194 */ jal set_page_height
/* 0EF298 7F0BA768 0C001194 */ jal viSetZRange
/* 0EF29C 7F0BA76C AFA40038 */ sw $a0, 0x38($sp)
/* 0EF2A0 7F0BA770 0C0011AB */ jal video_related_27
/* 0EF2A0 7F0BA770 0C0011AB */ jal viGetZRange
/* 0EF2A4 7F0BA774 27A40030 */ addiu $a0, $sp, 0x30
/* 0EF2A8 7F0BA778 0FC2D21E */ jal sub_GAME_7F0B4878
/* 0EF2AC 7F0BA77C 00000000 */ nop
@@ -442,18 +429,11 @@ glabel copy_table2_env_to_current
#ifdef NONMATCHING
void sub_GAME_7F0BAA5C(void) {
void sub_GAME_7F0BAA5C(s32 a) {
return;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0BAA5C
/* 0EF58C 7F0BAA5C 03E00008 */ jr $ra
/* 0EF590 7F0BAA60 AFA40000 */ sw $a0, ($sp)
)
#endif
@@ -595,7 +575,7 @@ glabel load_enviroment
/* 0EF748 7F0BAC18 3C018006 */ lui $at, %hi(D_80058D74)
/* 0EF74C 7F0BAC1C C42E8D74 */ lwc1 $f14, %lo(D_80058D74)($at)
/* 0EF750 7F0BAC20 AFA6001C */ sw $a2, 0x1c($sp)
/* 0EF754 7F0BAC24 0C001194 */ jal set_page_height
/* 0EF754 7F0BAC24 0C001194 */ jal viSetZRange
/* 0EF758 7F0BAC28 AFA70028 */ sw $a3, 0x28($sp)
/* 0EF75C 7F0BAC2C 3C048004 */ lui $a0, %hi(fog_tables2)
/* 0EF760 7F0BAC30 3C018008 */ lui $at, %hi(sky_enabled)
+1 -1
View File
@@ -9,7 +9,7 @@
s32 D_8004EAE0[] = {0, 0, 0, 0};
void gameInitDebugNoticeList(void) {
debCheckAddDebugNoticeListEntry(&D_8004EAE0, "game_c_debug");
debTryAdd(&D_8004EAE0, "game_c_debug");
}
void reset_mem_bank_5(void) {
+2
View File
@@ -3,5 +3,7 @@
#include "ultra64.h"
void gameInitDebugNoticeList(void);
void reset_mem_bank_5(void);
void sub_GAME_7F0D1A7C(void);
#endif
+99
View File
@@ -325,6 +325,105 @@ glabel end_of_mission_briefing
)
#endif
#ifdef VERSION_EU
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
#endif
void sub_GAME_7F01D500(void)
+10 -3
View File
@@ -1,6 +1,9 @@
#ifndef _GAMEFILE_H_
#define _GAMEFILE_H_
#include "ultra64.h"
#include "bondconstants.h"
//i am not "correct", i need proper fields for times again
struct save_data
{
@@ -11,9 +14,9 @@ struct save_data
char music_vol;
char sfx_vol;
short options;
char unlocked_cheats_1;
char unlocked_cheats_2;
char unlocked_cheats_3;
u8 unlocked_cheats_1;
u8 unlocked_cheats_2;
u8 unlocked_cheats_3;
char padding;
u8 time_dam_agent[5];
u8 field_0x17[5];
@@ -36,4 +39,8 @@ struct save_data
extern u32 save_selected_bond[];
void set_selected_folder_num(u32 foldernum);
void set_selected_difficulty(DIFFICULTY difficulty);
void set_solo_and_ptr_briefing(LEVELID stage);
#endif
+42 -154
View File
@@ -1,8 +1,9 @@
#include "ultra64.h"
#include "game/gamefile.h"
#include "bondconstants.h"
s32 sub_GAME_7F01D6C0(void) {
return save_7000C6FC();
return joyGamePakProbe();
}
@@ -73,7 +74,7 @@ glabel sub_GAME_7F01D758
/* 0522AC 7F01D77C 00E03025 */ move $a2, $a3
/* 0522B0 7F01D780 8FA50018 */ lw $a1, 0x18($sp)
/* 0522B4 7F01D784 00002025 */ move $a0, $zero
/* 0522B8 7F01D788 0C003202 */ jal save_7000C808
/* 0522B8 7F01D788 0C003202 */ jal joyGamePakLongWrite
/* 0522BC 7F01D78C 24060020 */ li $a2, 32
.L7F01D790:
/* 0522C0 7F01D790 8FBF0014 */ lw $ra, 0x14($sp)
@@ -127,7 +128,7 @@ glabel sub_GAME_7F01D7A0
/* 05234C 7F01D81C 25240004 */ addiu $a0, $t1, 4
/* 052350 7F01D820 308A00FF */ andi $t2, $a0, 0xff
/* 052354 7F01D824 01402025 */ move $a0, $t2
/* 052358 7F01D828 0C003202 */ jal save_7000C808
/* 052358 7F01D828 0C003202 */ jal joyGamePakLongWrite
/* 05235C 7F01D82C 24060060 */ li $a2, 96
.L7F01D830:
/* 052360 7F01D830 8FBF0014 */ lw $ra, 0x14($sp)
@@ -193,26 +194,11 @@ u32 get_foldernum_of_eeprom(struct save_data *eeprom)
return eeprom->completion_bitflags & 7;
}
#ifdef NONMATCHING
void set_eeprom_to_folder_num(void) {
void set_eeprom_to_folder_num(struct save_data *eeprom, u32 folder) {
eeprom->completion_bitflags = eeprom->completion_bitflags & 0xFFF8;
eeprom->completion_bitflags = eeprom->completion_bitflags | folder & 7;
}
#else
GLOBAL_ASM(
.text
glabel set_eeprom_to_folder_num
/* 052408 7F01D8D8 908E0008 */ lbu $t6, 8($a0)
/* 05240C 7F01D8DC 30B90007 */ andi $t9, $a1, 7
/* 052410 7F01D8E0 31D8FFF8 */ andi $t8, $t6, 0xfff8
/* 052414 7F01D8E4 A0980008 */ sb $t8, 8($a0)
/* 052418 7F01D8E8 03194025 */ or $t0, $t8, $t9
/* 05241C 7F01D8EC 03E00008 */ jr $ra
/* 052420 7F01D8F0 A0880008 */ sb $t0, 8($a0)
)
#endif
u32 set_eeprom_flag_0x18(struct save_data *folder)
@@ -220,29 +206,11 @@ u32 set_eeprom_flag_0x18(struct save_data *folder)
return (folder->completion_bitflags & 0x18) >> 3;
}
void reset_eeprom_flag_0x18(struct save_data *folder, s32 arg1) {
folder->completion_bitflags = folder->completion_bitflags & 0xFFE7;
#ifdef NONMATCHING
void reset_eeprom_flag_0x18(void) {
folder->completion_bitflags = (folder->completion_bitflags | ((arg1 * 8) & 0x18));
}
#else
GLOBAL_ASM(
.text
glabel reset_eeprom_flag_0x18
/* 052434 7F01D904 908E0008 */ lbu $t6, 8($a0)
/* 052438 7F01D908 0005C8C0 */ sll $t9, $a1, 3
/* 05243C 7F01D90C 33280018 */ andi $t0, $t9, 0x18
/* 052440 7F01D910 31D8FFE7 */ andi $t8, $t6, 0xffe7
/* 052444 7F01D914 A0980008 */ sb $t8, 8($a0)
/* 052448 7F01D918 03084825 */ or $t1, $t8, $t0
/* 05244C 7F01D91C 03E00008 */ jr $ra
/* 052450 7F01D920 A0890008 */ sb $t1, 8($a0)
)
#endif
u32 get_selected_bond(struct save_data *folder)
@@ -253,24 +221,12 @@ u32 get_selected_bond(struct save_data *folder)
#ifdef NONMATCHING
void set_selected_bond(void) {
void set_selected_bond(struct save_data *folder, s32 arg1) {
folder->completion_bitflags = folder->completion_bitflags & 0xFF9F;
folder->completion_bitflags = (folder->completion_bitflags | ((arg1 << 5) & 0x60));
}
#else
GLOBAL_ASM(
.text
glabel set_selected_bond
/* 052464 7F01D934 908E0008 */ lbu $t6, 8($a0)
/* 052468 7F01D938 0005C940 */ sll $t9, $a1, 5
/* 05246C 7F01D93C 33280060 */ andi $t0, $t9, 0x60
/* 052470 7F01D940 31D8FF9F */ andi $t8, $t6, 0xff9f
/* 052474 7F01D944 A0980008 */ sb $t8, 8($a0)
/* 052478 7F01D948 03084825 */ or $t1, $t8, $t0
/* 05247C 7F01D94C 03E00008 */ jr $ra
/* 052480 7F01D950 A0890008 */ sb $t1, 8($a0)
)
#endif
@@ -518,88 +474,40 @@ glabel sub_GAME_7F01DAE4
#ifdef NONMATCHING
void get_eeprom_stage_completed_for_difficulty(void) {
s32 get_eeprom_stage_completed_for_difficulty(struct save_data *folder, s32 levelid, DIFFICULTY difficulty) {
if ((levelid >= 0) && (levelid < 0x14) && (difficulty >= DIFFICULTY_AGENT) && (difficulty <= DIFFICULTY_007)) {
return get_eeprom_stage_complete_time_for_difficulty(folder, levelid, difficulty) != 0;
}
return 0;
}
#else
GLOBAL_ASM(
.text
glabel get_eeprom_stage_completed_for_difficulty
/* 052790 7F01DC60 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 052794 7F01DC64 04A0000D */ bltz $a1, .L7F01DC9C
/* 052798 7F01DC68 AFBF0014 */ sw $ra, 0x14($sp)
/* 05279C 7F01DC6C 28A10014 */ slti $at, $a1, 0x14
/* 0527A0 7F01DC70 5020000B */ beql $at, $zero, .L7F01DCA0
/* 0527A4 7F01DC74 00001025 */ move $v0, $zero
/* 0527A8 7F01DC78 04C00008 */ bltz $a2, .L7F01DC9C
/* 0527AC 7F01DC7C 28C10004 */ slti $at, $a2, 4
/* 0527B0 7F01DC80 50200007 */ beql $at, $zero, .L7F01DCA0
/* 0527B4 7F01DC84 00001025 */ move $v0, $zero
/* 0527B8 7F01DC88 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty
/* 0527BC 7F01DC8C 00000000 */ nop
/* 0527C0 7F01DC90 0002702B */ sltu $t6, $zero, $v0
/* 0527C4 7F01DC94 10000002 */ b .L7F01DCA0
/* 0527C8 7F01DC98 01C01025 */ move $v0, $t6
.L7F01DC9C:
/* 0527CC 7F01DC9C 00001025 */ move $v0, $zero
.L7F01DCA0:
/* 0527D0 7F01DCA0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0527D4 7F01DCA4 27BD0018 */ addiu $sp, $sp, 0x18
/* 0527D8 7F01DCA8 03E00008 */ jr $ra
/* 0527DC 7F01DCAC 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F01DCB0(void) {
void sub_GAME_7F01DCB0(struct save_data *folder, s32 levelid, DIFFICULTY difficulty, s32 arg4) {
s32 temp_v0;
if ((levelid >= 0) && (levelid < 0x14) && (difficulty >= DIFFICULTY_AGENT) && (difficulty <= DIFFICULTY_007)) {
temp_v0 = get_eeprom_stage_complete_time_for_difficulty(folder, levelid, difficulty);
if ((temp_v0 == 0) || (arg4 < temp_v0)) {
sub_GAME_7F01DAE4(folder, levelid, difficulty, arg4);
}
}
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F01DCB0
/* 0527E0 7F01DCB0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0527E4 7F01DCB4 AFBF0014 */ sw $ra, 0x14($sp)
/* 0527E8 7F01DCB8 04A00015 */ bltz $a1, .L7F01DD10
/* 0527EC 7F01DCBC AFA40018 */ sw $a0, 0x18($sp)
/* 0527F0 7F01DCC0 28A10014 */ slti $at, $a1, 0x14
/* 0527F4 7F01DCC4 50200013 */ beql $at, $zero, .L7F01DD14
/* 0527F8 7F01DCC8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0527FC 7F01DCCC 04C00010 */ bltz $a2, .L7F01DD10
/* 052800 7F01DCD0 28C10004 */ slti $at, $a2, 4
/* 052804 7F01DCD4 5020000F */ beql $at, $zero, .L7F01DD14
/* 052808 7F01DCD8 8FBF0014 */ lw $ra, 0x14($sp)
/* 05280C 7F01DCDC AFA5001C */ sw $a1, 0x1c($sp)
/* 052810 7F01DCE0 AFA60020 */ sw $a2, 0x20($sp)
/* 052814 7F01DCE4 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty
/* 052818 7F01DCE8 AFA70024 */ sw $a3, 0x24($sp)
/* 05281C 7F01DCEC 8FA5001C */ lw $a1, 0x1c($sp)
/* 052820 7F01DCF0 8FA60020 */ lw $a2, 0x20($sp)
/* 052824 7F01DCF4 10400004 */ beqz $v0, .L7F01DD08
/* 052828 7F01DCF8 8FA70024 */ lw $a3, 0x24($sp)
/* 05282C 7F01DCFC 00E2082A */ slt $at, $a3, $v0
/* 052830 7F01DD00 50200004 */ beql $at, $zero, .L7F01DD14
/* 052834 7F01DD04 8FBF0014 */ lw $ra, 0x14($sp)
.L7F01DD08:
/* 052838 7F01DD08 0FC076B9 */ jal sub_GAME_7F01DAE4
/* 05283C 7F01DD0C 8FA40018 */ lw $a0, 0x18($sp)
.L7F01DD10:
/* 052840 7F01DD10 8FBF0014 */ lw $ra, 0x14($sp)
.L7F01DD14:
/* 052844 7F01DD14 27BD0018 */ addiu $sp, $sp, 0x18
/* 052848 7F01DD18 03E00008 */ jr $ra
/* 05284C 7F01DD1C 00000000 */ nop
)
#endif
#ifdef NONMATCHING
u32 check_if_cheat_unlocked(save_file *folder,s32 cheat) {
s32 check_if_cheat_unlocked(struct save_data *arg0, s32 arg1) {
if ((arg1 >= 0) && (arg1 < 0x14)) {
return ((1 << arg1) & (arg0->unlocked_cheats_1 | (arg0->unlocked_cheats_3 << 0x18) | (arg0->unlocked_cheats_3 << 0x10) | (arg0->unlocked_cheats_2 << 8))) != 0;
}
return 0;
}
#else
GLOBAL_ASM(
@@ -857,7 +765,7 @@ glabel sub_GAME_7F01DF90
/* 052AF8 7F01DFC8 24100001 */ li $s0, 1
/* 052AFC 7F01DFCC 00002025 */ move $a0, $zero
/* 052B00 7F01DFD0 02202825 */ move $a1, $s1
/* 052B04 7F01DFD4 0C0031EF */ jal save_7000C7BC
/* 052B04 7F01DFD4 0C0031EF */ jal joyGamePakLongRead
/* 052B08 7F01DFD8 24060020 */ li $a2, 32
/* 052B0C 7F01DFDC 93AE009C */ lbu $t6, 0x9c($sp)
/* 052B10 7F01DFE0 24010042 */ li $at, 66
@@ -920,7 +828,7 @@ glabel sub_GAME_7F01DF90
/* 052BE4 7F01E0B4 3C058007 */ lui $a1, %hi(save1)
/* 052BE8 7F01E0B8 24A59920 */ addiu $a1, %lo(save1) # addiu $a1, $a1, -0x66e0
/* 052BEC 7F01E0BC 24040004 */ li $a0, 4
/* 052BF0 7F01E0C0 0C0031EF */ jal save_7000C7BC
/* 052BF0 7F01E0C0 0C0031EF */ jal joyGamePakLongRead
/* 052BF4 7F01E0C4 240601E0 */ li $a2, 480
/* 052BF8 7F01E0C8 3C108007 */ lui $s0, %hi(save1)
/* 052BFC 7F01E0CC 3C138007 */ lui $s3, %hi(save1+8)
@@ -1732,30 +1640,10 @@ glabel check_aztec_completed_in_folder_secret_00
)
#endif
#ifdef NONMATCHING
void check_egypt_completed_in_folder_00(void) {
s32 check_egypt_completed_in_folder_00(int foldernum)
{
return isStageUnlockedAtDifficulty(foldernum, SP_LEVEL_AZTEC, DIFFICULTY_00) == 3;
}
#else
GLOBAL_ASM(
.text
glabel check_egypt_completed_in_folder_00
/* 0535D8 7F01EAA8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0535DC 7F01EAAC AFBF0014 */ sw $ra, 0x14($sp)
/* 0535E0 7F01EAB0 24050013 */ li $a1, 19
/* 0535E4 7F01EAB4 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 0535E8 7F01EAB8 24060002 */ li $a2, 2
/* 0535EC 7F01EABC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0535F0 7F01EAC0 384E0003 */ xori $t6, $v0, 3
/* 0535F4 7F01EAC4 2DC20001 */ sltiu $v0, $t6, 1
/* 0535F8 7F01EAC8 03E00008 */ jr $ra
/* 0535FC 7F01EACC 27BD0018 */ addiu $sp, $sp, 0x18
)
#endif
u32 check_cradle_completed_any_folder(void) {
u32 completed;
+1
View File
@@ -3,5 +3,6 @@
#include "ultra64.h"
u8 removed_would_have_returned_bond_for_folder_num(u32 folder);
void sub_GAME_7F01DF90();
#endif
+2 -2
View File
@@ -2772,8 +2772,8 @@ struct image_entry image_entries[] = {
void nullsub_41(void) {
return;
void nullsub_41(s32 arg0) {
if (arg0);
}
+4
View File
@@ -15,5 +15,9 @@ struct image_entry
extern s32 ptr_texture_alloc_start;
extern struct image_entry image_entries[];
extern s32 dword_CODE_bss_8008D090;
extern u32 bytes;
void nullsub_41(s32 arg0);
#endif
+13 -13
View File
@@ -20,7 +20,7 @@ void sub_GAME_7F0D0180(u8 *buffer,u32 size)
int i;
for (i = 4; i != 100000; i + 4){;}
rmon_debug_stub_0();
rmon7000CEC0();
for (i = 4; i != 100000; i + 4){;}
}
#else
@@ -36,7 +36,7 @@ glabel sub_GAME_7F0D0180
.L7F0D0198:
/* 104CC8 7F0D0198 5443FFFF */ bnel $v0, $v1, .L7F0D0198
/* 104CCC 7F0D019C 24420004 */ addiu $v0, $v0, 4
/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon_debug_stub_0
/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon7000CEC0
/* 104CD4 7F0D01A4 00000000 */ nop
/* 104CD8 7F0D01A8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1
/* 104CDC 7F0D01AC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0
@@ -62,7 +62,7 @@ void sub_GAME_7F0D01D0(u8 *buffer,u32 size)
int i;
for (i = 4; i != 100000; i + 4){;}
rmon_debug_stub();
rmon7000CEB8();
for (i = 4; i != 100000; i + 4){;}
}
#else
@@ -78,7 +78,7 @@ glabel sub_GAME_7F0D01D0
.L7F0D01E8:
/* 104D18 7F0D01E8 5443FFFF */ bnel $v0, $v1, .L7F0D01E8
/* 104D1C 7F0D01EC 24420004 */ addiu $v0, $v0, 4
/* 104D20 7F0D01F0 0C0033AE */ jal rmon_debug_stub
/* 104D20 7F0D01F0 0C0033AE */ jal rmon7000CEB8
/* 104D24 7F0D01F4 00000000 */ nop
/* 104D28 7F0D01F8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1
/* 104D2C 7F0D01FC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0
@@ -262,7 +262,7 @@ void post_type3_indyrescmd(s32 rsize,s32 wsize,char *strptr)
cmd.entry.size = 0x114;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
something_with_strings(cmd.strbuffer,strptr,0x100);
strncpy(cmd.strbuffer,strptr,0x100);
cmd.data = 0;
postindyresourcecommand(&cmd.entry,0x114);
}
@@ -285,7 +285,7 @@ glabel post_type3_indyrescmd
/* 104FC0 7F0D0490 AFAF0020 */ sw $t7, 0x20($sp)
/* 104FC4 7F0D0494 AFB80024 */ sw $t8, 0x24($sp)
/* 104FC8 7F0D0498 24060100 */ li $a2, 256
/* 104FCC 7F0D049C 0C0029E8 */ jal something_with_strings
/* 104FCC 7F0D049C 0C0029E8 */ jal strncpy
/* 104FD0 7F0D04A0 27A40030 */ addiu $a0, $sp, 0x30
/* 104FD4 7F0D04A4 A3A0012F */ sb $zero, 0x12f($sp)
/* 104FD8 7F0D04A8 27A4001C */ addiu $a0, $sp, 0x1c
@@ -333,7 +333,7 @@ void post_type5_indyrescmd_printfsend(s32 param_1,s32 param_2,char *param_3)
cmd.size = 0x114;
cmd.readsize = param_1;
cmd.writesize = param_2;
something_with_strings(acStack256,param_3,0x100);
strncpy(acStack256,param_3,0x100);
uStack1 = 0;
postindyresourcecommand(&cmd,0x114);
}
@@ -356,7 +356,7 @@ glabel post_type5_indyrescmd_printfsend
/* 105074 7F0D0544 AFAF0020 */ sw $t7, 0x20($sp)
/* 105078 7F0D0548 AFB80024 */ sw $t8, 0x24($sp)
/* 10507C 7F0D054C 24060100 */ li $a2, 256
/* 105080 7F0D0550 0C0029E8 */ jal something_with_strings
/* 105080 7F0D0550 0C0029E8 */ jal strncpy
/* 105084 7F0D0554 27A40030 */ addiu $a0, $sp, 0x30
/* 105088 7F0D0558 A3A0012F */ sb $zero, 0x12f($sp)
/* 10508C 7F0D055C 27A4001C */ addiu $a0, $sp, 0x1c
@@ -415,7 +415,7 @@ glabel post_type7_indyrescmd_log_send
/* 105138 7F0D0608 AFAF001C */ sw $t7, 0x1c($sp)
/* 10513C 7F0D060C AFB80020 */ sw $t8, 0x20($sp)
/* 105140 7F0D0610 24060100 */ li $a2, 256
/* 105144 7F0D0614 0C0029E8 */ jal something_with_strings
/* 105144 7F0D0614 0C0029E8 */ jal strncpy
/* 105148 7F0D0618 27A4002C */ addiu $a0, $sp, 0x2c
/* 10514C 7F0D061C 8FA9013C */ lw $t1, 0x13c($sp)
/* 105150 7F0D0620 A3A0012B */ sb $zero, 0x12b($sp)
@@ -508,7 +508,7 @@ glabel post_type9_indyrescmd_app_command_ready
/* 105234 7F0D0704 AFAF0020 */ sw $t7, 0x20($sp)
/* 105238 7F0D0708 AFA90024 */ sw $t1, 0x24($sp)
/* 10523C 7F0D070C 24060100 */ li $a2, 256
/* 105240 7F0D0710 0C0029E8 */ jal something_with_strings
/* 105240 7F0D0710 0C0029E8 */ jal strncpy
/* 105244 7F0D0714 27A40030 */ addiu $a0, $sp, 0x30
/* 105248 7F0D0718 A3A0012F */ sb $zero, 0x12f($sp)
/* 10524C 7F0D071C 27A4001C */ addiu $a0, $sp, 0x1c
@@ -568,7 +568,7 @@ glabel post_typeF_indyrescmd_fault_send
/* 1052F8 7F0D07C8 AFAF0020 */ sw $t7, 0x20($sp)
/* 1052FC 7F0D07CC AFB80024 */ sw $t8, 0x24($sp)
/* 105300 7F0D07D0 24060100 */ li $a2, 256
/* 105304 7F0D07D4 0C0029E8 */ jal something_with_strings
/* 105304 7F0D07D4 0C0029E8 */ jal strncpy
/* 105308 7F0D07D8 27A40030 */ addiu $a0, $sp, 0x30
/* 10530C 7F0D07DC 8FA90144 */ lw $t1, 0x144($sp)
/* 105310 7F0D07E0 8FAA0148 */ lw $t2, 0x148($sp)
@@ -653,7 +653,7 @@ glabel post_typeD_indyrescmd_prof_send_filename
/* 1053D4 7F0D08A4 AFAF0020 */ sw $t7, 0x20($sp)
/* 1053D8 7F0D08A8 AFB80024 */ sw $t8, 0x24($sp)
/* 1053DC 7F0D08AC 24060100 */ li $a2, 256
/* 1053E0 7F0D08B0 0C0029E8 */ jal something_with_strings
/* 1053E0 7F0D08B0 0C0029E8 */ jal strncpy
/* 1053E4 7F0D08B4 27A40030 */ addiu $a0, $sp, 0x30
/* 1053E8 7F0D08B8 8FA90144 */ lw $t1, 0x144($sp)
/* 1053EC 7F0D08BC 8FAA0148 */ lw $t2, 0x148($sp)
@@ -715,7 +715,7 @@ glabel post_typeB_indyrescmd_host_prof_req
/* 105498 7F0D0968 AFAF0020 */ sw $t7, 0x20($sp)
/* 10549C 7F0D096C AFB80024 */ sw $t8, 0x24($sp)
/* 1054A0 7F0D0970 24060400 */ li $a2, 1024
/* 1054A4 7F0D0974 0C0029E8 */ jal something_with_strings
/* 1054A4 7F0D0974 0C0029E8 */ jal strncpy
/* 1054A8 7F0D0978 27A40030 */ addiu $a0, $sp, 0x30
/* 1054AC 7F0D097C A3A0042F */ sb $zero, 0x42f($sp)
/* 1054B0 7F0D0980 27A4001C */ addiu $a0, $sp, 0x1c
+57 -224
View File
@@ -15,262 +15,95 @@ void nullsub_48(void) {
}
void init_indy_if_ready(void) {
if (indy_ready != 0)
if (indy_ready)
{
post_indy__res_cmd_initialize_seq();
}
}
#ifdef NONMATCHING
void load_resource_on_indy(s32 arg1) {
? sp18;
? sp1C;
? sp20;
// Node 0
if (indy_ready != 0)
void load_resource_on_indy(u8 *filename, u8 *targetloc)
{
u8 response1 [8];
u8 response2 [4];
u32 size;
if (indy_ready)
{
// Node 1
post_indyrescmd_req_filename_size(0x400000);
response_indyrescmd_1_8_2(&sp20, &sp1C, &sp18, arg1);
post_indyrescmd_req_filename_size(filename,0x400000);
response_indyrescmd_1_8_2(response1,response2,(u32)&size,targetloc);
}
// 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)
void indy_send_capture_data(u8 *filename, u8 *data, u32 size)
{
u8 auStack4 [4];
if (indy_ready)
{
// Node 1
post_indyrescmd_send_capture_data(arg2, arg1);
response_indyrescmd_1_A_2(&sp1C);
post_indyrescmd_send_capture_data(filename, size, (struct indy_resource_entry *)data);
response_indyrescmd_1_A_2(auStack4);
}
// 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)
void indy_load_ramrom_file(u8 *filename, u8 *target, s32 size)
{
u32 uStack4;
u32 uStack8;
u32 uStack12;
if (indy_ready)
{
// Node 1
post_indyrescmd_request_ramrom_file();
response_indyrescmd_1_10_2(&sp24, &sp20, &sp1C);
post_indyrescmd_request_ramrom_file(filename,target,size);
response_indyrescmd_1_10_2(&uStack4,&uStack8,&uStack12);
}
// 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)
void check_file_exported(u8 *filename, s32 size, u8 * data)
{
u8 auStack4 [4];
if (indy_ready)
{
// Node 1
post_indyrescmd_game_prof_sendfile(arg2, arg1);
response_indyrescmd_1_E_2(&sp1C);
post_indyrescmd_game_prof_sendfile(filename,data,size);
response_indyrescmd_1_E_2(auStack4);
}
// 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) {
u8 * check_file_found_on_indy(u8 *name, s32 *size)
{
u8 *response;
if (!indy_ready) {
return NULL;
} else {
post_indyrescmd_game_printf_send(name);
response_indyrescmd_1_6_2(&response,size);
}
return response;
}
#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) {
u8 *send_command_string(u8 *cmdstr)
{
u8 *local_4;
if (!indy_ready) {
return NULL;
}
else {
post_indyrescmd_1_B_2(cmdstr);
response_indyrescmd_1_C_2(&local_4);
}
return local_4;
}
#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)
if (indy_ready)
{
rmon_debug_returns_neg_1();
rmon7000CEB0();
}
return;
}
void send_indy_close_port_cmd(void) {
response_from_command_string("sleep 5; /etc/killall ghost gload");
send_command_string("sleep 5; /etc/killall ghost gload");
}
+6 -2
View File
@@ -4,6 +4,10 @@
s32 init_indy_if_not_ready(void);
void init_indy_if_ready(void);
void load_resource_on_indy(s32 arg1);
void load_resource_on_indy(u8 *filename, u8 *targetloc);
void indy_send_capture_data(u8 *filename, u8 *data, u32 size);
void indy_load_ramrom_file(u8 *filename, u8 *target, s32 size);
void check_file_exported(u8 *filename, s32 size, u8 * data);
u8 * check_file_found_on_indy(u8 *name, s32 *size);
//u8 *send_command_string(u8 *cmdstr);
#endif
+287
View File
@@ -659,5 +659,292 @@ glabel sets_a_bunch_of_BONDdata_values_to_default
)
#endif
#ifdef VERSION_EU
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(currentPlayerToggle5BC) # $a1, 0x7f09
/* 03B2B4 7F006784 24A5DBB0 */ addiu $a1, %lo(currentPlayerToggle5BC) # addiu $a1, $a1, -0x2450
/* 03B2B8 7F006788 0FC1BF8F */ jal sub_GAME_7F06FE3C
/* 03B2BC 7F00678C 24840598 */ addiu $a0, $a0, 0x598
/* 03B2C0 7F006790 0FC236F2 */ jal currentPlayerUpdateIdleHeadRoll
/* 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
#endif
+17 -99
View File
@@ -1,107 +1,28 @@
#include "ultra64.h"
#include "game/initactorpropstuff.h"
#include "game/chr.h"
#include "game/bondwalk.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_bodies = 0;
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
num_male_heads = 0;
while (random_male_heads[num_male_heads] >= 0)
{
num_male_heads += 1;
}
num_female_heads = 0;
while (random_female_heads[num_female_heads] >= 0)
{
num_female_heads += 1;
}
}
#ifdef NONMATCHING
@@ -705,9 +626,6 @@ 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];
File diff suppressed because it is too large Load Diff
+16 -4
View File
@@ -1,5 +1,6 @@
#include "ultra64.h"
#include "game/chr.h"
#include "game/chrobjdata.h"
void init_guards(void) {
animation_rate = 1.0f;
@@ -70,8 +71,19 @@ glabel alloc_init_GUARDdata_entries
#ifdef NONMATCHING
void set_new_rand_head_bodies(void) {
//
void set_new_rand_head_bodies(void)
{
s32 i;
for (i=0; c_item_entries[i].header; i++)
{
c_item_entries[i].header->offset_obj_table = 0;
}
current_random_male_head = randomGetNext() % num_male_heads;
current_random_female_head = randomGetNext() % num_female_heads;
current_random_body = randomGetNext() % num_bodies;
}
#else
GLOBAL_ASM(
@@ -93,7 +105,7 @@ glabel set_new_rand_head_bodies
/* 035AB0 7F000F80 5460FFFD */ bnezl $v1, .L7F000F78
/* 035AB4 7F000F84 AC600000 */ sw $zero, ($v1)
.L7F000F88:
/* 035AB8 7F000F88 0C002914 */ jal get_random_value
/* 035AB8 7F000F88 0C002914 */ jal randomGetNext
/* 035ABC 7F000F8C 00000000 */ nop
/* 035AC0 7F000F90 3C188003 */ lui $t8, %hi(num_male_heads)
/* 035AC4 7F000F94 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8)
@@ -105,7 +117,7 @@ glabel set_new_rand_head_bodies
/* 035ADC 7F000FAC 00000000 */ nop
/* 035AE0 7F000FB0 0007000D */ break 7
.L7F000FB4:
/* 035AE4 7F000FB4 0C002914 */ jal get_random_value
/* 035AE4 7F000FB4 0C002914 */ jal randomGetNext
/* 035AE8 7F000FB8 00000000 */ nop
/* 035AEC 7F000FBC 3C088003 */ lui $t0, %hi(num_female_heads)
/* 035AF0 7F000FC0 8D08CD08 */ lw $t0, %lo(num_female_heads)($t0)
@@ -117,7 +129,7 @@ glabel set_new_rand_head_bodies
/* 035B08 7F000FD8 00000000 */ nop
/* 035B0C 7F000FDC 0007000D */ break 7
.L7F000FE0:
/* 035B10 7F000FE0 0C002914 */ jal get_random_value
/* 035B10 7F000FE0 0C002914 */ jal randomGetNext
/* 035B14 7F000FE4 00000000 */ nop
/* 035B18 7F000FE8 3C0A8003 */ lui $t2, %hi(num_bodies)
/* 035B1C 7F000FEC 8D4ACD00 */ lw $t2, %lo(num_bodies)($t2)
+7 -40
View File
@@ -1,4 +1,5 @@
#include "ultra64.h"
#include "game/unk_093880.h"
#include "game/bondinv.h"
@@ -44,44 +45,10 @@ glabel sub_GAME_7F0061F0
#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();
void alloc_additional_item_slots(s32 additionalentries)
{
pPlayer->equipmaxitems = additionalentries + 0x1e;
pPlayer->p_itemcur = mempAllocBytesInBank((pPlayer->equipmaxitems * 0x14 + 0xfU | 0xf) ^ 0xf,'\x04');
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
+31 -2
View File
@@ -1,9 +1,38 @@
#include "ultra64.h"
#include "game/mainmenu.h"
#ifdef NONMATCHING
void init_menus_or_reset(void) {
u32 mempAllocBytesInBank(u32 bytes,u8 bank);
void init_menus_or_reset(void)
{
current_menu = ~MENU_LEGAL_SCREEN;
maybe_prev_menu = ~MENU_LEGAL_SCREEN;
screen_size = SCREEN_SIZE_320x240;
spectrum_related_flag = TRUE;
is_emulating_spectrum = FALSE;
folder_selection_screen_option_icon = 0;
folder_selected_for_deletion = -1;
folder_selected_for_deletion_choice = 1;
tab_1_highlight = FALSE;
tab_2_highlight = FALSE;
tab_3_highlight = FALSE;
maybe_is_in_menu = TRUE;
if (prev_keypresses) {
menu_update = MENU_FILE_SELECT;
}
if (menu_update < 0) {
menu_update = MENU_FILE_SELECT;
}
ptr_logo_and_walletbond_DL = (Gfx *)mempAllocBytesInBank(0x78000,'\x04');
//incorrect here
ptr_menu_videobuffer = (u8 *)((mempAllocBytesInBank(0x4b040,'\x04') + 0x3f) & 0xffffffc0);
ptr_folder_object_instance = 0x0;
set0_never_used = 0;
set0_never_used_0 = 0;
D_8002A968 = 0;
alloc_intro_matrices();
}
#else
GLOBAL_ASM(
+9 -52
View File
@@ -1,57 +1,14 @@
#include "ultra64.h"
#include "game/image.h"
void set_mt_tex_alloc(void)
{
dword_CODE_bss_8008D090 = 0;
if (tokenFind(1, "-mt"))
{
bytes = strtol(tokenFind(1, "-mt"), 0x0, 0) << 10;
}
#ifdef NONMATCHING
void set_mt_tex_alloc(void) {
sub_GAME_7F0CBAF4(&ptr_texture_alloc_start, mempAllocBytesInBank(bytes, 4), bytes);
}
#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
+12 -27
View File
@@ -1,6 +1,7 @@
#include "ultra64.h"
#include "game/initobjects.h"
#include "game/chrai.h"
#include "game/chrobjhandler.h"
//this file may very well be a few different sub files
struct object_animation_controller ptr_monitorimageobjectanimationcontroller = {&monitor_animation_microcode, 0, 0xFFFF, 0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1.0, 0.0};
@@ -350,8 +351,10 @@ glabel reinit_between_menus
#endif
#ifdef NONMATCHING
void sub_GAME_7F001910(void) {
void sub_GAME_7F001910(struct object_standard *object)
{
object->flags2 = (u32)D_80030B00;
D_80030B00 = object;
}
#else
GLOBAL_ASM(
@@ -525,30 +528,12 @@ glabel write_monitor_ani_control_blocks
)
#endif
#ifdef NONMATCHING
void initialize_temp_mine_table(void) {
void initialize_temp_mine_table(void) {
s32 i;
for (i=0; i<30; i++)
{
temp_mine_table[i] = 0;
}
}
#else
GLOBAL_ASM(
.text
glabel initialize_temp_mine_table
/* 036638 7F001B08 3C018007 */ lui $at, %hi(temp_mine_table)
/* 03663C 7F001B0C AC201E00 */ sw $zero, %lo(temp_mine_table)($at)
/* 036640 7F001B10 3C018007 */ lui $at, %hi(temp_mine_table+0x4)
/* 036644 7F001B14 3C038007 */ lui $v1, %hi(temp_mine_table+0x8)
/* 036648 7F001B18 3C028007 */ lui $v0, %hi(gas_damage_flag)
/* 03664C 7F001B1C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78
/* 036650 7F001B20 24631E08 */ addiu $v1, %lo(temp_mine_table+0x8) # addiu $v1, $v1, 0x1e08
/* 036654 7F001B24 AC201E04 */ sw $zero, %lo(temp_mine_table+0x4)($at)
.L7F001B28:
/* 036658 7F001B28 24630010 */ addiu $v1, $v1, 0x10
/* 03665C 7F001B2C AC60FFF4 */ sw $zero, -0xc($v1)
/* 036660 7F001B30 AC60FFF8 */ sw $zero, -8($v1)
/* 036664 7F001B34 AC60FFFC */ sw $zero, -4($v1)
/* 036668 7F001B38 1462FFFB */ bne $v1, $v0, .L7F001B28
/* 03666C 7F001B3C AC60FFF0 */ sw $zero, -0x10($v1)
/* 036670 7F001B40 03E00008 */ jr $ra
/* 036674 7F001B44 00000000 */ nop
)
#endif
+4 -4
View File
@@ -26,8 +26,8 @@ loop_2:
// Node 3
disable_sounds_attached_to_player_then_something(temp_v0->unk18);
sub_GAME_7F03A538((ptr_guard_data + phi_s0)->unk18);
unset_stateflag_0x04_for_posdata((ptr_guard_data + phi_s0)->unk18);
set_last_obj_pos_data((ptr_guard_data + phi_s0)->unk18);
propHide((ptr_guard_data + phi_s0)->unk18);
propFree((ptr_guard_data + phi_s0)->unk18);
phi_v1 = num_guards;
}
// Node 4
@@ -73,11 +73,11 @@ glabel cleanupGuardData
/* 03BF38 7F007408 8F240018 */ lw $a0, 0x18($t9)
/* 03BF3C 7F00740C 8E280000 */ lw $t0, ($s1)
/* 03BF40 7F007410 01104821 */ addu $t1, $t0, $s0
/* 03BF44 7F007414 0FC0E905 */ jal unset_stateflag_0x04_for_posdata
/* 03BF44 7F007414 0FC0E905 */ jal propHide
/* 03BF48 7F007418 8D240018 */ lw $a0, 0x18($t1)
/* 03BF4C 7F00741C 8E2A0000 */ lw $t2, ($s1)
/* 03BF50 7F007420 01505821 */ addu $t3, $t2, $s0
/* 03BF54 7F007424 0FC0E921 */ jal set_last_obj_pos_data
/* 03BF54 7F007424 0FC0E921 */ jal propFree
/* 03BF58 7F007428 8D640018 */ lw $a0, 0x18($t3)
/* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(num_guards)
/* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(num_guards)($v1)
+316 -1584
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -3,19 +3,19 @@
#include "ultra64.h"
extern s32 dword_CODE_bss_80069550;
extern s32 dword_CODE_bss_80069554;
extern s32 matrix_buffer_rarelogo_0;
extern s32 matrix_buffer_gunbarrel_0;
extern s32 matrix_buffer_rarelogo_1;
extern s32 matrix_buffer_rarelogo_2;
extern s32 matrix_buffer_gunbarrel_1;
extern s32 matrix_buffer_intro_backdrop;
extern s32 matrix_buffer_intro_bond;
extern s32 x;
extern s32 y;
extern s32 dword_CODE_bss_8006957C;
extern s32 dword_CODE_bss_80069580;
extern s32 word_CODE_bss_80069584;
extern Gfx *dword_CODE_bss_80069554;
extern Mtx *matrix_buffer_rarelogo_0;
extern Mtx *matrix_buffer_gunbarrel_0;
extern Mtx *matrix_buffer_rarelogo_1;
extern Mtx *matrix_buffer_rarelogo_2;
extern Mtx *matrix_buffer_gunbarrel_1;
extern Mtx *matrix_buffer_intro_backdrop;
extern Mtx *matrix_buffer_intro_bond;
extern f32 x;
extern f32 y;
extern f32 dword_CODE_bss_8006957C;
extern f32 dword_CODE_bss_80069580;
extern s16 word_CODE_bss_80069584;
extern s32 dword_CODE_bss_80069588;
extern s32 dword_CODE_bss_8006958C;
extern s32 virtualaddress;
+3062 -1290
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -1,6 +1,7 @@
#ifndef _LVL_H_
#define _LVL_H_
#include "ultra64.h"
#include "bondconstants.h"
struct ramrom_struct {
u32 *address;
@@ -21,5 +22,12 @@ extern s32 *address_demo_loaded;
extern s32 dword_CODE_bss_8008C5F8;
void lvInitDebugNoticeList(void);
Gfx * sub_GAME_7F0BE30C(Gfx *);
void set_difficulty(s32 arg0);
void manage_mp_game(void);
void sub_GAME_7F0BF800(void);
void unload_stage_text_data(void);
DIFFICULTY get_current_difficulty(void);
void stage_load(s32 arg0);
#endif
+1 -1
View File
@@ -3,7 +3,7 @@
#include "ultra64.h"
struct stringentry {
char *string[];
char *string;
};
extern s32 j_text_trigger;
+2365 -1867
View File
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -498,10 +498,10 @@ extern s32 screen_size;
extern s32 spectrum_related_flag;
extern s32 is_emulating_spectrum;
extern s32 is_cheat_menu_available;
extern s32 ptr_logo_and_walletbond_DL;
extern s32 ptr_menu_videobuffer;
extern Gfx * ptr_logo_and_walletbond_DL;
extern u8 * ptr_menu_videobuffer;
extern s32 something_legalscreen_constructor;
extern s32 ptr_folder_object_instance;
extern struct object_standard * ptr_folder_object_instance;
extern s32 set0_never_used;
extern s32 set0_never_used_0;
extern s32 D_8002A968;
@@ -780,6 +780,8 @@ extern u32 intro_animation_count;
extern u32 objinstance;
extern u32 ptrobjinstance;
extern u32 full_actor_intro;
void set_menu_to_mode(MENU menu, s32 mode);
s32 get_selected_num_players(void);
#endif
+2
View File
@@ -15,5 +15,7 @@ typedef union {
} Mtxf;
void matrix_4x4_rotate_vector_in_place(Mtxf *matrix, vec3 vector);
void matrix_4x4_7F059694(Mtxf *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9);
#endif
+625 -131
View File
File diff suppressed because it is too large Load Diff
+2555 -974
View File
File diff suppressed because it is too large Load Diff
+18
View File
@@ -0,0 +1,18 @@
#ifndef _MP_WATCH_H_
#define _MP_WATCH_H_
#include "ultra64.h"
typedef enum TEXTCOLORS {
GREEN_NORMAL=0,
GREEN_HIGHLIGHT,
RED_NORMAL,
RED_HIGHLIGHT,
BLUE_NORMAL,
BLUE_HIGHLIGHT
} TEXTCOLORS;
s32 sub_GAME_7F0C2024(int param_1, int param_2, int param_3, int param_4, int param_5);
s32 sub_GAME_7F0C2114(int param_1, int param_2, int param_3, int param_4, int param_5);
#endif
+24 -127
View File
@@ -84,7 +84,7 @@ glabel getmusictrack_or_randomtrack
/* 1072B0 7F0D2780 5720FFFD */ bnezl $t9, .L7F0D2778
/* 1072B4 7F0D2784 84590002 */ lh $t9, 2($v0)
.L7F0D2788:
/* 1072B8 7F0D2788 0C002914 */ jal get_random_value
/* 1072B8 7F0D2788 0C002914 */ jal randomGetNext
/* 1072BC 7F0D278C AFA30020 */ sw $v1, 0x20($sp)
/* 1072C0 7F0D2790 8FA30020 */ lw $v1, 0x20($sp)
/* 1072C4 7F0D2794 3C048005 */ lui $a0, %hi(random_tracks)
@@ -121,7 +121,7 @@ glabel getmusictrack_or_randomtrack
/* 10732C 7F0D27FC 5560FFFD */ bnezl $t3, .L7F0D27F4
/* 107330 7F0D2800 844B0002 */ lh $t3, 2($v0)
.L7F0D2804:
/* 107334 7F0D2804 0C002914 */ jal get_random_value
/* 107334 7F0D2804 0C002914 */ jal randomGetNext
/* 107338 7F0D2808 AFA30018 */ sw $v1, 0x18($sp)
/* 10733C 7F0D280C 8FA30018 */ lw $v1, 0x18($sp)
/* 107340 7F0D2810 3C048005 */ lui $a0, %hi(random_tracks)
@@ -148,132 +148,29 @@ glabel getmusictrack_or_randomtrack
#ifdef NONMATCHING
void sub_GAME_7F0D2848(s32 arg0) {
void *temp_v1;
s32 temp_v0;
s32 phi_v0;
void *phi_v1;
// Node 0
temp_v1 = (0x80050000 + -0x14f0);
if (music_setup_entries != 0)
{
// Node 1
phi_v0 = *temp_v1;
phi_v1 = temp_v1;
// Node 2
if (arg0 == phi_v0)
{
// Node 3
return phi_v1->unk4;
}
// Node 4
temp_v0 = phi_v1->unk8;
phi_v0 = temp_v0;
phi_v1 = (phi_v1 + 8);
if (temp_v0 != 0)
{
goto loop_2;
}
}
// Node 5
return -1;
s32 musicGetBgTrackForStage(s32 stageID)
{
s32 i;
for (i=0; music_setup_entries[i].stage_id!=0; i++)
{
if (stageID == music_setup_entries[i].stage_id)
{
return music_setup_entries[i].bg_sound;
}
}
return -1;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0D2848
/* 107378 7F0D2848 3C0E8005 */ lui $t6, %hi(music_setup_entries)
/* 10737C 7F0D284C 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6)
/* 107380 7F0D2850 3C0F8005 */ lui $t7, %hi(music_setup_entries)
/* 107384 7F0D2854 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries)
/* 107388 7F0D2858 51C0000B */ beql $t6, $zero, .L7F0D2888
/* 10738C 7F0D285C 2402FFFF */ li $v0, -1
/* 107390 7F0D2860 84620000 */ lh $v0, ($v1)
.L7F0D2864:
/* 107394 7F0D2864 54820004 */ bnel $a0, $v0, .L7F0D2878
/* 107398 7F0D2868 84620008 */ lh $v0, 8($v1)
/* 10739C 7F0D286C 03E00008 */ jr $ra
/* 1073A0 7F0D2870 84620004 */ lh $v0, 4($v1)
/* 1073A4 7F0D2874 84620008 */ lh $v0, 8($v1)
.L7F0D2878:
/* 1073A8 7F0D2878 24630008 */ addiu $v1, $v1, 8
/* 1073AC 7F0D287C 1440FFF9 */ bnez $v0, .L7F0D2864
/* 1073B0 7F0D2880 00000000 */ nop
/* 1073B4 7F0D2884 2402FFFF */ li $v0, -1
.L7F0D2888:
/* 1073B8 7F0D2888 03E00008 */ jr $ra
/* 1073BC 7F0D288C 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F0D2890(s32 arg0) {
void *temp_v1;
s32 temp_v0;
s32 phi_v0;
void *phi_v1;
// Node 0
temp_v1 = (0x80050000 + -0x14f0);
if (music_setup_entries != 0)
{
// Node 1
phi_v0 = *temp_v1;
phi_v1 = temp_v1;
// Node 2
if (arg0 == phi_v0)
{
// Node 3
return phi_v1->unk6;
}
// Node 4
temp_v0 = phi_v1->unk8;
phi_v0 = temp_v0;
phi_v1 = (phi_v1 + 8);
if (temp_v0 != 0)
{
goto loop_2;
}
}
// Node 5
return -1;
s32 musicGetXTrackForStage(s32 stageID)
{
s32 i;
for (i=0; music_setup_entries[i].stage_id!=0; i++)
{
if (stageID == music_setup_entries[i].stage_id)
{
return music_setup_entries[i].xtrack;
}
}
return -1;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0D2890
/* 1073C0 7F0D2890 3C0E8005 */ lui $t6, %hi(music_setup_entries)
/* 1073C4 7F0D2894 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6)
/* 1073C8 7F0D2898 3C0F8005 */ lui $t7, %hi(music_setup_entries)
/* 1073CC 7F0D289C 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries)
/* 1073D0 7F0D28A0 51C0000B */ beql $t6, $zero, .L7F0D28D0
/* 1073D4 7F0D28A4 2402FFFF */ li $v0, -1
/* 1073D8 7F0D28A8 84620000 */ lh $v0, ($v1)
.L7F0D28AC:
/* 1073DC 7F0D28AC 54820004 */ bnel $a0, $v0, .L7F0D28C0
/* 1073E0 7F0D28B0 84620008 */ lh $v0, 8($v1)
/* 1073E4 7F0D28B4 03E00008 */ jr $ra
/* 1073E8 7F0D28B8 84620006 */ lh $v0, 6($v1)
/* 1073EC 7F0D28BC 84620008 */ lh $v0, 8($v1)
.L7F0D28C0:
/* 1073F0 7F0D28C0 24630008 */ addiu $v1, $v1, 8
/* 1073F4 7F0D28C4 1440FFF9 */ bnez $v0, .L7F0D28AC
/* 1073F8 7F0D28C8 00000000 */ nop
/* 1073FC 7F0D28CC 2402FFFF */ li $v0, -1
.L7F0D28D0:
/* 107400 7F0D28D0 03E00008 */ jr $ra
/* 107404 7F0D28D4 00000000 */ nop
)
#endif
+8
View File
@@ -0,0 +1,8 @@
#ifndef _MUSIC_0D2720_H_
#define _MUSIC_0D2720_H_
#include "ultra64.h"
s32 musicGetBgTrackForStage(s32 stageID);
s32 musicGetXTrackForStage(s32 stageID);
#endif
+4 -4
View File
@@ -185,7 +185,7 @@ void obInitDebugNoticeList(void)
int file_count;
struct fileentry *filetable_entry;
debCheckAddDebugNoticeListEntry(&ob_c_debug_notice_list_entry,"ob_c_debug");
debTryAdd(&ob_c_debug_notice_list_entry,"ob_c_debug");
filetable_entry = &file_resource_table[0];
file_count = file_entry_max - 1;
if (1 < file_count) {
@@ -216,7 +216,7 @@ glabel obInitDebugNoticeList
/* 0F1760 7F0BCC30 3C048004 */ lui $a0, %hi(ob_c_debug_notice_list_entry)
/* 0F1764 7F0BCC34 3C058006 */ lui $a1, %hi(aOb_c_debug)
/* 0F1768 7F0BCC38 24A5B674 */ addiu $a1, %lo(aOb_c_debug) # addiu $a1, $a1, -0x498c
/* 0F176C 7F0BCC3C 0C001398 */ jal debCheckAddDebugNoticeListEntry
/* 0F176C 7F0BCC3C 0C001398 */ jal debTryAdd
/* 0F1770 7F0BCC40 24846050 */ addiu $a0, %lo(ob_c_debug_notice_list_entry) # addiu $a0, $a0, 0x6050
/* 0F1774 7F0BCC44 3C038005 */ lui $v1, %hi(file_entry_max)
/* 0F1778 7F0BCC48 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1)
@@ -737,7 +737,7 @@ int get_index_num_of_named_resource(u8 *resname)
for (i = 1; i < file_entry_max; i++)
{
if ((file_resource_table[i].filename) && \
(something_with_strings_0(resname,file_resource_table[i].filename) == 0));
(strcmp(resname,file_resource_table[i].filename) == 0));
{
return i;
}
@@ -787,7 +787,7 @@ glabel get_index_num_of_named_resource
.L7F0BD294:
/* 0F1DC4 7F0BD294 50A00008 */ beql $a1, $zero, .L7F0BD2B8
/* 0F1DC8 7F0BD298 8E420000 */ lw $v0, ($s2)
/* 0F1DCC 7F0BD29C 0C002A13 */ jal something_with_strings_0
/* 0F1DCC 7F0BD29C 0C002A13 */ jal strcmp
/* 0F1DD0 7F0BD2A0 02602025 */ move $a0, $s3
/* 0F1DD4 7F0BD2A4 54400004 */ bnezl $v0, .L7F0BD2B8
/* 0F1DD8 7F0BD2A8 8E420000 */ lw $v0, ($s2)
+5 -5
View File
@@ -8746,7 +8746,7 @@ glabel dorottex
/* 0A7894 7F072D64 596000A9 */ blezl $t3, .L7F07300C
/* 0A7898 7F072D68 8FBF003C */ lw $ra, 0x3c($sp)
.L7F072D6C:
/* 0A789C 7F072D6C 0C002914 */ jal get_random_value
/* 0A789C 7F072D6C 0C002914 */ jal randomGetNext
/* 0A78A0 7F072D70 00000000 */ nop
/* 0A78A4 7F072D74 00026280 */ sll $t4, $v0, 0xa
/* 0A78A8 7F072D78 3191FFFF */ andi $s1, $t4, 0xffff
@@ -8763,9 +8763,9 @@ glabel dorottex
/* 0A78D4 7F072DA4 01F60019 */ multu $t7, $s6
/* 0A78D8 7F072DA8 00009812 */ mflo $s3
/* 0A78DC 7F072DAC 0013C483 */ sra $t8, $s3, 0x12
/* 0A78E0 7F072DB0 0C002914 */ jal get_random_value
/* 0A78E0 7F072DB0 0C002914 */ jal randomGetNext
/* 0A78E4 7F072DB4 03009825 */ move $s3, $t8
/* 0A78E8 7F072DB8 0C002914 */ jal get_random_value
/* 0A78E8 7F072DB8 0C002914 */ jal randomGetNext
/* 0A78EC 7F072DBC 00028FC2 */ srl $s1, $v0, 0x1f
/* 0A78F0 7F072DC0 8E410000 */ lw $at, ($s2)
/* 0A78F4 7F072DC4 30593FFF */ andi $t9, $v0, 0x3fff
@@ -9755,7 +9755,7 @@ glabel dogfnegx
/* 0A8600 7F073AD0 E7A000C4 */ swc1 $f0, 0xc4($sp)
/* 0A8604 7F073AD4 0FC15FAB */ jal sinf
/* 0A8608 7F073AD8 C7AC00DC */ lwc1 $f12, 0xdc($sp)
/* 0A860C 7F073ADC 0C002914 */ jal get_random_value
/* 0A860C 7F073ADC 0C002914 */ jal randomGetNext
/* 0A8610 7F073AE0 E7A000C0 */ swc1 $f0, 0xc0($sp)
/* 0A8614 7F073AE4 304C007F */ andi $t4, $v0, 0x7f
/* 0A8618 7F073AE8 448C5000 */ mtc1 $t4, $f10
@@ -9977,7 +9977,7 @@ glabel dogfnegx
/* 0A8970 7F073E40 00002825 */ move $a1, $zero
/* 0A8974 7F073E44 10600037 */ beqz $v1, .L7F073F24
/* 0A8978 7F073E48 00000000 */ nop
/* 0A897C 7F073E4C 0C002914 */ jal get_random_value
/* 0A897C 7F073E4C 0C002914 */ jal randomGetNext
/* 0A8980 7F073E50 00608825 */ move $s1, $v1
/* 0A8984 7F073E54 0002CA80 */ sll $t9, $v0, 0xa
/* 0A8988 7F073E58 A7B90056 */ sh $t9, 0x56($sp)
+63 -2
View File
@@ -1,4 +1,5 @@
#include "ultra64.h"
#include "boss.h"
#ifdef NONMATCHING
@@ -13,7 +14,7 @@ GLOBAL_ASM(
glabel something_with_stage_objectives
/* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp)
/* 0399F8 7F004EC8 0C001A57 */ jal get_stage_num
/* 0399F8 7F004EC8 0C001A57 */ jal bossGetStageNum
/* 0399FC 7F004ECC 00000000 */ nop
/* 039A00 7F004ED0 2401005A */ li $at, 90
/* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C
@@ -73,7 +74,7 @@ GLOBAL_ASM(
glabel something_with_stage_objectives
/* 039A40 7F004ED0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 039A44 7F004ED4 AFBF0014 */ sw $ra, 0x14($sp)
/* 039A48 7F004ED8 0C001A57 */ jal get_stage_num
/* 039A48 7F004ED8 0C001A57 */ jal bossGetStageNum
/* 039A4C 7F004EDC 00000000 */ nop
/* 039A50 7F004EE0 2401005A */ li $at, 90
/* 039A54 7F004EE4 10410011 */ beq $v0, $at, .L7F004F2C
@@ -129,6 +130,66 @@ glabel something_with_stage_objectives
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel something_with_stage_objectives
/* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp)
/* 0399F8 7F004EC8 0C001A57 */ jal bossGetStageNum
/* 0399FC 7F004ECC 00000000 */ nop
/* 039A00 7F004ED0 2401005A */ li $at, 90
/* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C
/* 039A08 7F004ED8 240EFFFF */ li $t6, -1
/* 039A0C 7F004EDC 3C018003 */ lui $at, %hi(num_objective_ptrs)
/* 039A10 7F004EE0 AC2E22F0 */ sw $t6, %lo(num_objective_ptrs)($at)
/* 039A14 7F004EE4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58)
/* 039A18 7F004EE8 AC205D58 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at)
/* 039A1C 7F004EEC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C)
/* 039A20 7F004EF0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60)
/* 039A24 7F004EF4 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16)
/* 039A28 7F004EF8 24635D80 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5d80
/* 039A2C 7F004EFC 24425D60 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5d60
/* 039A30 7F004F00 AC205D5C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at)
.L7F004F04:
/* 039A34 7F004F04 24420010 */ addiu $v0, $v0, 0x10
/* 039A38 7F004F08 AC40FFF4 */ sw $zero, -0xc($v0)
/* 039A3C 7F004F0C AC40FFF8 */ sw $zero, -8($v0)
/* 039A40 7F004F10 AC40FFFC */ sw $zero, -4($v0)
/* 039A44 7F004F14 1443FFFB */ bne $v0, $v1, .L7F004F04
/* 039A48 7F004F18 AC40FFF0 */ sw $zero, -0x10($v0)
.L7F004F1C:
/* 039A4C 7F004F1C 3C018007 */ lui $at, %hi(objective_ptrs)
/* 039A50 7F004F20 AC205D30 */ sw $zero, %lo(objective_ptrs)($at)
/* 039A54 7F004F24 3C018007 */ lui $at, %hi(objective_ptrs+4)
/* 039A58 7F004F28 3C028007 */ lui $v0, %hi(objective_ptrs+8)
/* 039A5C 7F004F2C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58)
/* 039A60 7F004F30 24635D58 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d58
/* 039A64 7F004F34 24425D38 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d38
/* 039A68 7F004F38 AC205D34 */ sw $zero, %lo(objective_ptrs+4)($at)
.L7F004F3C:
/* 039A6C 7F004F3C 24420010 */ addiu $v0, $v0, 0x10
/* 039A70 7F004F40 AC40FFF4 */ sw $zero, -0xc($v0)
/* 039A74 7F004F44 AC40FFF8 */ sw $zero, -8($v0)
/* 039A78 7F004F48 AC40FFFC */ sw $zero, -4($v0)
/* 039A7C 7F004F4C 1443FFFB */ bne $v0, $v1, .L7F004F3C
/* 039A80 7F004F50 AC40FFF0 */ sw $zero, -0x10($v0)
/* 039A84 7F004F54 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16)
/* 039A88 7F004F58 AC205D80 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at)
/* 039A8C 7F004F5C 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23)
/* 039A90 7F004F60 AC205D84 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at)
/* 039A94 7F004F64 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20)
/* 039A98 7F004F68 AC205D88 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at)
/* 039A9C 7F004F6C 8FBF0014 */ lw $ra, 0x14($sp)
/* 039AA0 7F004F70 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21)
/* 039AA4 7F004F74 AC205D8C */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at)
/* 039AA8 7F004F78 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E)
/* 039AAC 7F004F7C AC205D90 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at)
/* 039AB0 7F004F80 03E00008 */ jr $ra
/* 039AB4 7F004F84 27BD0018 */ addiu $sp, $sp, 0x18
)
#endif
#endif
+159 -9
View File
@@ -123,17 +123,17 @@ u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page)
{
if (page == 0)
{
textptr = get_textptr_for_textID(0xb029); //"E R R O R\n"
textptr = get_textptr_for_textID(TEXT(LMISC, 0x29)); //"E R R O R\n"
}
else
{
if (page == 1)
{
textptr = get_textptr_for_textID(0xb02a); //"no briefing for this mission\n"
textptr = get_textptr_for_textID(TEXT(LMISC, 0x2a)); //"no briefing for this mission\n"
}
else
{
textptr = get_textptr_for_textID(0xb02b); //"\n"
textptr = get_textptr_for_textID(TEXT(LMISC, 0x2b)); //"\n"
}
}
}
@@ -588,7 +588,7 @@ glabel display_objective_status_text_on_status_change
/* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID
/* 08C1AC 7F05767C 3404B02D */ li $a0, 45101
/* 08C1B0 7F057680 02602025 */ move $a0, $s3
/* 08C1B4 7F057684 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C1B4 7F057684 0C0029FF */ jal strcat
/* 08C1B8 7F057688 00402825 */ move $a1, $v0
/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4
/* 08C1C0 7F057690 00000000 */ nop
@@ -598,7 +598,7 @@ glabel display_objective_status_text_on_status_change
/* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID
/* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102
/* 08C1D4 7F0576A4 02602025 */ move $a0, $s3
/* 08C1D8 7F0576A8 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C1D8 7F0576A8 0C0029FF */ jal strcat
/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0
/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4
/* 08C1E4 7F0576B4 00000000 */ nop
@@ -608,7 +608,7 @@ glabel display_objective_status_text_on_status_change
/* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID
/* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103
/* 08C1F8 7F0576C8 02602025 */ move $a0, $s3
/* 08C1FC 7F0576CC 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C1FC 7F0576CC 0C0029FF */ jal strcat
/* 08C200 7F0576D0 00402825 */ move $a1, $v0
.L7F0576D4:
/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner
@@ -737,7 +737,7 @@ glabel display_objective_status_text_on_status_change
/* 08C704 7F057B94 0FC30AA2 */ jal get_textptr_for_textID
/* 08C708 7F057B98 3404B02D */ li $a0, 45101
/* 08C70C 7F057B9C 02602025 */ move $a0, $s3
/* 08C710 7F057BA0 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C710 7F057BA0 0C002A03 */ jal strcat
/* 08C714 7F057BA4 00402825 */ move $a1, $v0
/* 08C718 7F057BA8 10000011 */ b .L7F057BF0
/* 08C71C 7F057BAC 00000000 */ nop
@@ -747,7 +747,7 @@ glabel display_objective_status_text_on_status_change
/* 08C728 7F057BB8 0FC30AA2 */ jal get_textptr_for_textID
/* 08C72C 7F057BBC 3404B02E */ li $a0, 45102
/* 08C730 7F057BC0 02602025 */ move $a0, $s3
/* 08C734 7F057BC4 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C734 7F057BC4 0C002A03 */ jal strcat
/* 08C738 7F057BC8 00402825 */ move $a1, $v0
/* 08C73C 7F057BCC 10000008 */ b .L7F057BF0
/* 08C740 7F057BD0 00000000 */ nop
@@ -757,7 +757,7 @@ glabel display_objective_status_text_on_status_change
/* 08C74C 7F057BDC 0FC30AA2 */ jal get_textptr_for_textID
/* 08C750 7F057BE0 3404B02F */ li $a0, 45103
/* 08C754 7F057BE4 02602025 */ move $a0, $s3
/* 08C758 7F057BE8 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C758 7F057BE8 0C002A03 */ jal strcat
/* 08C75C 7F057BEC 00402825 */ move $a1, $v0
.L7F057BF0:
/* 08C760 7F057BF0 0FC22B10 */ jal jp_display_string_in_lower_left_corner
@@ -794,6 +794,156 @@ glabel display_objective_status_text_on_status_change
/* 08C7CC 7F057C5C 27BD0090 */ addiu $sp, $sp, 0x90
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.rdata
/*glabel D_80053610*/
/*.word 0,0,0,0,0,0,0,0,0,0*/
/*glabel D_80053640*/
/*.word 0*/
.text
glabel display_objective_status_text_on_status_change
/* 08C070 7F057540 27BDFF70 */ addiu $sp, $sp, -0x90
/* 08C074 7F057544 AFB60030 */ sw $s6, 0x30($sp)
/* 08C078 7F057548 AFB30024 */ sw $s3, 0x24($sp)
/* 08C07C 7F05754C 3C0E8005 */ lui $t6, %hi(D_80053610)
/* 08C080 7F057550 27B30054 */ addiu $s3, $sp, 0x54
/* 08C084 7F057554 3C168003 */ lui $s6, %hi(num_objective_ptrs)
/* 08C088 7F057558 AFB40028 */ sw $s4, 0x28($sp)
/* 08C08C 7F05755C 25CE3610 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3610
/* 08C090 7F057560 26D622F0 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x22f0
/* 08C094 7F057564 AFBF003C */ sw $ra, 0x3c($sp)
/* 08C098 7F057568 AFBE0038 */ sw $fp, 0x38($sp)
/* 08C09C 7F05756C AFB70034 */ sw $s7, 0x34($sp)
/* 08C0A0 7F057570 AFB5002C */ sw $s5, 0x2c($sp)
/* 08C0A4 7F057574 AFB20020 */ sw $s2, 0x20($sp)
/* 08C0A8 7F057578 AFB1001C */ sw $s1, 0x1c($sp)
/* 08C0AC 7F05757C AFB00018 */ sw $s0, 0x18($sp)
/* 08C0B0 7F057580 0000A025 */ move $s4, $zero
/* 08C0B4 7F057584 25D90030 */ addiu $t9, $t6, 0x30
/* 08C0B8 7F057588 02604025 */ move $t0, $s3
.L7F05758C:
/* 08C0BC 7F05758C 8DC10000 */ lw $at, ($t6)
/* 08C0C0 7F057590 25CE000C */ addiu $t6, $t6, 0xc
/* 08C0C4 7F057594 2508000C */ addiu $t0, $t0, 0xc
/* 08C0C8 7F057598 AD01FFF4 */ sw $at, -0xc($t0)
/* 08C0CC 7F05759C 8DC1FFF8 */ lw $at, -8($t6)
/* 08C0D0 7F0575A0 AD01FFF8 */ sw $at, -8($t0)
/* 08C0D4 7F0575A4 8DC1FFFC */ lw $at, -4($t6)
/* 08C0D8 7F0575A8 15D9FFF8 */ bne $t6, $t9, .L7F05758C
/* 08C0DC 7F0575AC AD01FFFC */ sw $at, -4($t0)
/* 08C0E0 7F0575B0 95C10000 */ lhu $at, ($t6)
/* 08C0E4 7F0575B4 3C158007 */ lui $s5, %hi(dword_CODE_bss_80075D58)
/* 08C0E8 7F0575B8 3C1E8005 */ lui $fp, %hi(aSAC)
/* 08C0EC 7F0575BC A5010000 */ sh $at, ($t0)
/* 08C0F0 7F0575C0 8EC90000 */ lw $t1, ($s6)
/* 08C0F4 7F0575C4 27DE3644 */ addiu $fp, %lo(aSAC) # addiu $fp, $fp, 0x3644
/* 08C0F8 7F0575C8 26B55D58 */ addiu $s5, %lo(dword_CODE_bss_80075D58) # addiu $s5, $s5, 0x5d58
/* 08C0FC 7F0575CC 05200051 */ bltz $t1, .L7F057714
/* 08C100 7F0575D0 00009025 */ move $s2, $zero
/* 08C104 7F0575D4 3C178005 */ lui $s7, %hi(j_text_trigger)
/* 08C108 7F0575D8 26F784D0 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b30
.L7F0575DC:
/* 08C10C 7F0575DC 0FC15C8E */ jal get_status_of_objective
/* 08C110 7F0575E0 02402025 */ move $a0, $s2
/* 08C114 7F0575E4 8EAA0000 */ lw $t2, ($s5)
/* 08C118 7F0575E8 00408825 */ move $s1, $v0
/* 08C11C 7F0575EC 02402025 */ move $a0, $s2
/* 08C120 7F0575F0 104A003A */ beq $v0, $t2, .L7F0576DC
/* 08C124 7F0575F4 00000000 */ nop
/* 08C128 7F0575F8 0FC15C81 */ jal get_difficulty_for_objective
/* 08C12C 7F0575FC AEA20000 */ sw $v0, ($s5)
/* 08C130 7F057600 0FC2FF04 */ jal get_current_difficulty
/* 08C134 7F057604 00408025 */ move $s0, $v0
/* 08C138 7F057608 0050082A */ slt $at, $v0, $s0
/* 08C13C 7F05760C 14200033 */ bnez $at, .L7F0576DC
/* 08C140 7F057610 00000000 */ nop
/* 08C144 7F057614 8EEB0000 */ lw $t3, ($s7)
/* 08C148 7F057618 2690001A */ addiu $s0, $s4, 0x1a
/* 08C14C 7F05761C 3404B02C */ li $a0, 45100
/* 08C150 7F057620 1160000A */ beqz $t3, .L7F05764C
/* 08C154 7F057624 00000000 */ nop
/* 08C158 7F057628 0FC30776 */ jal get_textptr_for_textID
/* 08C15C 7F05762C 3404B02C */ li $a0, 45100
/* 08C160 7F057630 02602025 */ move $a0, $s3
/* 08C164 7F057634 03C02825 */ move $a1, $fp
/* 08C168 7F057638 00403025 */ move $a2, $v0
/* 08C16C 7F05763C 0C002B25 */ jal sprintf
/* 08C170 7F057640 02003825 */ move $a3, $s0
/* 08C174 7F057644 1000000A */ b .L7F057670
/* 08C178 7F057648 24010001 */ li $at, 1
.L7F05764C:
/* 08C17C 7F05764C 0FC30776 */ jal get_textptr_for_textID
/* 08C180 7F057650 26900061 */ addiu $s0, $s4, 0x61
/* 08C184 7F057654 3C058005 */ lui $a1, %hi(aSC)
/* 08C188 7F057658 24A5364C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x364c
/* 08C18C 7F05765C 02602025 */ move $a0, $s3
/* 08C190 7F057660 00403025 */ move $a2, $v0
/* 08C194 7F057664 0C002B25 */ jal sprintf
/* 08C198 7F057668 02003825 */ move $a3, $s0
/* 08C19C 7F05766C 24010001 */ li $at, 1
.L7F057670:
/* 08C1A0 7F057670 16210008 */ bne $s1, $at, .L7F057694
/* 08C1A4 7F057674 00000000 */ nop
/* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID
/* 08C1AC 7F05767C 3404B02D */ li $a0, 45101
/* 08C1B0 7F057680 02602025 */ move $a0, $s3
/* 08C1B4 7F057684 0C0029FF */ jal strcat
/* 08C1B8 7F057688 00402825 */ move $a1, $v0
/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4
/* 08C1C0 7F057690 00000000 */ nop
.L7F057694:
/* 08C1C4 7F057694 16200008 */ bnez $s1, .L7F0576B8
/* 08C1C8 7F057698 24010002 */ li $at, 2
/* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID
/* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102
/* 08C1D4 7F0576A4 02602025 */ move $a0, $s3
/* 08C1D8 7F0576A8 0C0029FF */ jal strcat
/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0
/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4
/* 08C1E4 7F0576B4 00000000 */ nop
.L7F0576B8:
/* 08C1E8 7F0576B8 16210006 */ bne $s1, $at, .L7F0576D4
/* 08C1EC 7F0576BC 00000000 */ nop
/* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID
/* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103
/* 08C1F8 7F0576C8 02602025 */ move $a0, $s3
/* 08C1FC 7F0576CC 0C0029FF */ jal strcat
/* 08C200 7F0576D0 00402825 */ move $a1, $v0
.L7F0576D4:
/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner
/* 08C208 7F0576D8 02602025 */ move $a0, $s3
.L7F0576DC:
/* 08C20C 7F0576DC 0FC15C81 */ jal get_difficulty_for_objective
/* 08C210 7F0576E0 02402025 */ move $a0, $s2
/* 08C214 7F0576E4 0FC2FF04 */ jal get_current_difficulty
/* 08C218 7F0576E8 00408025 */ move $s0, $v0
/* 08C21C 7F0576EC 0050082A */ slt $at, $v0, $s0
/* 08C220 7F0576F0 54200003 */ bnezl $at, .L7F057700
/* 08C224 7F0576F4 8ECC0000 */ lw $t4, ($s6)
/* 08C228 7F0576F8 26940001 */ addiu $s4, $s4, 1
/* 08C22C 7F0576FC 8ECC0000 */ lw $t4, ($s6)
.L7F057700:
/* 08C230 7F057700 26520001 */ addiu $s2, $s2, 1
/* 08C234 7F057704 26B50004 */ addiu $s5, $s5, 4
/* 08C238 7F057708 0192082A */ slt $at, $t4, $s2
/* 08C23C 7F05770C 1020FFB3 */ beqz $at, .L7F0575DC
/* 08C240 7F057710 00000000 */ nop
.L7F057714:
/* 08C244 7F057714 8FBF003C */ lw $ra, 0x3c($sp)
/* 08C248 7F057718 8FB00018 */ lw $s0, 0x18($sp)
/* 08C24C 7F05771C 8FB1001C */ lw $s1, 0x1c($sp)
/* 08C250 7F057720 8FB20020 */ lw $s2, 0x20($sp)
/* 08C254 7F057724 8FB30024 */ lw $s3, 0x24($sp)
/* 08C258 7F057728 8FB40028 */ lw $s4, 0x28($sp)
/* 08C25C 7F05772C 8FB5002C */ lw $s5, 0x2c($sp)
/* 08C260 7F057730 8FB60030 */ lw $s6, 0x30($sp)
/* 08C264 7F057734 8FB70034 */ lw $s7, 0x34($sp)
/* 08C268 7F057738 8FBE0038 */ lw $fp, 0x38($sp)
/* 08C26C 7F05773C 03E00008 */ jr $ra
/* 08C270 7F057740 27BD0090 */ addiu $sp, $sp, 0x90
)
#endif
#endif
+9 -9
View File
@@ -17,9 +17,9 @@ void sub_GAME_7F057AC0(float *param_1)
firstrandfinal = D_80032300;
secondrandfinal = D_80032304;
thirdrandfinal = D_80032308;
firstrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
secondrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
thirdrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
firstrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
secondrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
thirdrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
matrix_4x4_set_rotation_around_xyz(&firstrandfinal,param_1);
return;
}
@@ -51,7 +51,7 @@ glabel sub_GAME_7F057AC0
/* 08C610 7F057AE0 ADC10000 */ sw $at, ($t6)
/* 08C614 7F057AE4 8DE10008 */ lw $at, 8($t7)
/* 08C618 7F057AE8 ADC80004 */ sw $t0, 4($t6)
/* 08C61C 7F057AEC 0C002914 */ jal get_random_value
/* 08C61C 7F057AEC 0C002914 */ jal randomGetNext
/* 08C620 7F057AF0 ADC10008 */ sw $at, 8($t6)
/* 08C624 7F057AF4 44822000 */ mtc1 $v0, $f4
/* 08C628 7F057AF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
@@ -74,7 +74,7 @@ glabel sub_GAME_7F057AC0
/* 08C668 7F057B38 00000000 */ nop
/* 08C66C 7F057B3C 46082182 */ mul.s $f6, $f4, $f8
/* 08C670 7F057B40 460A3401 */ sub.s $f16, $f6, $f10
/* 08C674 7F057B44 0C002914 */ jal get_random_value
/* 08C674 7F057B44 0C002914 */ jal randomGetNext
/* 08C678 7F057B48 E7B0001C */ swc1 $f16, 0x1c($sp)
/* 08C67C 7F057B4C 44829000 */ mtc1 $v0, $f18
/* 08C680 7F057B50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
@@ -97,7 +97,7 @@ glabel sub_GAME_7F057AC0
/* 08C6C0 7F057B90 00000000 */ nop
/* 08C6C4 7F057B94 46089102 */ mul.s $f4, $f18, $f8
/* 08C6C8 7F057B98 46062281 */ sub.s $f10, $f4, $f6
/* 08C6CC 7F057B9C 0C002914 */ jal get_random_value
/* 08C6CC 7F057B9C 0C002914 */ jal randomGetNext
/* 08C6D0 7F057BA0 E7AA0020 */ swc1 $f10, 0x20($sp)
/* 08C6D4 7F057BA4 44828000 */ mtc1 $v0, $f16
/* 08C6D8 7F057BA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
@@ -157,7 +157,7 @@ glabel sub_GAME_7F057C14
/* 08C744 7F057C14 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 08C748 7F057C18 AFBF0014 */ sw $ra, 0x14($sp)
/* 08C74C 7F057C1C AFA40018 */ sw $a0, 0x18($sp)
/* 08C750 7F057C20 0C002914 */ jal get_random_value
/* 08C750 7F057C20 0C002914 */ jal randomGetNext
/* 08C754 7F057C24 AFA5001C */ sw $a1, 0x1c($sp)
/* 08C758 7F057C28 44822000 */ mtc1 $v0, $f4
/* 08C75C 7F057C2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
@@ -181,7 +181,7 @@ glabel sub_GAME_7F057C14
/* 08C7A0 7F057C70 00000000 */ nop
/* 08C7A4 7F057C74 46082182 */ mul.s $f6, $f4, $f8
/* 08C7A8 7F057C78 460A3401 */ sub.s $f16, $f6, $f10
/* 08C7AC 7F057C7C 0C002914 */ jal get_random_value
/* 08C7AC 7F057C7C 0C002914 */ jal randomGetNext
/* 08C7B0 7F057C80 E5D00000 */ swc1 $f16, ($t6)
/* 08C7B4 7F057C84 44829000 */ mtc1 $v0, $f18
/* 08C7B8 7F057C88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
@@ -202,7 +202,7 @@ glabel sub_GAME_7F057C14
/* 08C7F0 7F057CC0 46105482 */ mul.s $f18, $f10, $f16
/* 08C7F4 7F057CC4 00000000 */ nop
/* 08C7F8 7F057CC8 46089102 */ mul.s $f4, $f18, $f8
/* 08C7FC 7F057CCC 0C002914 */ jal get_random_value
/* 08C7FC 7F057CCC 0C002914 */ jal randomGetNext
/* 08C800 7F057CD0 E5E40004 */ swc1 $f4, 4($t7)
/* 08C804 7F057CD4 44823000 */ mtc1 $v0, $f6
/* 08C808 7F057CD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
+1404 -12
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,6 +2,6 @@
#define _PROP_H_
#include "ultra64.h"
extern u32 only_read_by_stageload[]
extern u32 only_read_by_stageload[];
#endif
+102 -270
View File
@@ -251,7 +251,7 @@ glabel load_ramrom_from_devtool
/* 0F494C 7F0BFE1C 3C048006 */ lui $a0, %hi(aReplayDemo_load)
/* 0F4950 7F0BFE20 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890
/* 0F4954 7F0BFE24 3C0500F0 */ lui $a1, 0xf0
/* 0F4958 7F0BFE28 0FC34007 */ jal indy_loadfile
/* 0F4958 7F0BFE28 0FC34007 */ jal indy_load_ramrom_file
/* 0F495C 7F0BFE2C 8FA6001C */ lw $a2, 0x1c($sp)
/* 0F4960 7F0BFE30 3C048009 */ lui $a0, %hi(ramrom_data_target)
/* 0F4964 7F0BFE34 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90
@@ -388,11 +388,11 @@ glabel record_player_input_as_packet
/* 0F4B10 7F0BFFE0 3C0D8005 */ lui $t5, %hi(D_80048498)
/* 0F4B14 7F0BFFE4 8DAD8498 */ lw $t5, %lo(D_80048498)($t5)
/* 0F4B18 7F0BFFE8 8D8E0000 */ lw $t6, ($t4)
/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(randseed + 0x4)
/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(g_randomSeed + 0x4)
/* 0F4B20 7F0BFFF0 3C118009 */ lui $s1, %hi(address_demo_loaded)
/* 0F4B24 7F0BFFF4 A1CD0000 */ sb $t5, ($t6)
/* 0F4B28 7F0BFFF8 8D8D0000 */ lw $t5, ($t4)
/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(randseed + 0x4)($t9)
/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(g_randomSeed + 0x4)($t9)
/* 0F4B30 7F0C0000 2631C5F4 */ addiu $s1, %lo(address_demo_loaded) # addiu $s1, $s1, -0x3a0c
/* 0F4B34 7F0C0004 A1B90002 */ sb $t9, 2($t5)
/* 0F4B38 7F0C0008 8D820000 */ lw $v0, ($t4)
@@ -526,8 +526,8 @@ glabel ramrom_replay_handler
/* 0F4CE4 7F0C01B4 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2)
/* 0F4CE8 7F0C01B8 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0)
.L7F0C01BC:
/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(randseed + 0x4)
/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7)
/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(g_randomSeed + 0x4)
/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(g_randomSeed + 0x4)($t7)
/* 0F4CF4 7F0C01C4 90430002 */ lbu $v1, 2($v0)
/* 0F4CF8 7F0C01C8 31F900FF */ andi $t9, $t7, 0xff
/* 0F4CFC 7F0C01CC 53230008 */ beql $t9, $v1, .L7F0C01F0
@@ -551,10 +551,10 @@ glabel ramrom_replay_handler
/* 0F4D40 7F0C0210 0FC30232 */ jal ensureCameraModeA
/* 0F4D44 7F0C0214 00000000 */ nop
.L7F0C0218:
/* 0F4D48 7F0C0218 0C00324C */ jal controller_7000C930
/* 0F4D48 7F0C0218 0C00324C */ jal joySetContDataIndex
/* 0F4D4C 7F0C021C 00002025 */ move $a0, $zero
/* 0F4D50 7F0C0220 00002025 */ move $a0, $zero
/* 0F4D54 7F0C0224 0C0030EB */ jal get_controller_buttons_pressed
/* 0F4D54 7F0C0224 0C0030EB */ jal joyGetButtonsPressedThisFrame
/* 0F4D58 7F0C0228 3405FFFF */ li $a1, 65535
/* 0F4D5C 7F0C022C 10400006 */ beqz $v0, .L7F0C0248
/* 0F4D60 7F0C0230 00000000 */ nop
@@ -564,7 +564,7 @@ glabel ramrom_replay_handler
/* 0F4D70 7F0C0240 3C018003 */ lui $at, %hi(prev_keypresses)
/* 0F4D74 7F0C0244 AC2DA934 */ sw $t5, %lo(prev_keypresses)($at)
.L7F0C0248:
/* 0F4D78 7F0C0248 0C00324C */ jal controller_7000C930
/* 0F4D78 7F0C0248 0C00324C */ jal joySetContDataIndex
/* 0F4D7C 7F0C024C 24040001 */ li $a0, 1
/* 0F4D80 7F0C0250 8FBF001C */ lw $ra, 0x1c($sp)
/* 0F4D84 7F0C0254 02001025 */ move $v0, $s0
@@ -727,262 +727,94 @@ glabel iterate_ramrom_entries_handle_camera_out
)
#endif
typedef struct {
u64 unk0;
u64 unk8;
s32 unkC[28];
s32 unk80;
s32 unk84;
s32 unk88;
s32 unk8C;
s32 unk90;
s32 unk94;
s32 unk98;
s32 unk9C;
s32 unkA0;
s32 unkA4;
s32 unkA8;
s32 unkAC;
s32 unkB0;
s32 unkB4;
s32 unkB8;
s32 unkBC;
s32 unkC0;
s32 unkC4;
s32 unkC8;
s32 unkCC;
s32 unkD0;
s32 unkD4;
s32 unkD8;
s32 unkDC;
s32 unkE0;
} state;
#ifdef NONMATCHING
void copy_current_ingame_registers_before_ramrom_playback(void *arg0) {
? temp_ret;
// Node 0
arg0->unk4 = (?32) randseed + 0x4;
*arg0 = (?32) randseed;
arg0->unkC = (?32) random_val + 0x4;
arg0->unk8 = (?32) random_val;
arg0->unk84 = (?32) gamemode;
arg0->unk8C = (?32) selected_num_players;
arg0->unk90 = (?32) scenario;
arg0->unk94 = (?32) MP_stage_selected;
arg0->unk98 = (?32) game_length;
arg0->unk9C = getMPWeaponSet();
arg0->unkA0 = (?32) player_1_char;
arg0->unkA4 = (?32) player_1_char.unk4;
arg0->unkA8 = (?32) player_1_char.unk8;
arg0->unkAC = (?32) player_1_char.unkC;
arg0->unkB0 = (?32) handicap_player1;
arg0->unkB4 = (?32) handicap_player1.unk4;
arg0->unkB8 = (?32) handicap_player1.unk8;
arg0->unkBC = (?32) handicap_player1.unkC;
arg0->unkC0 = (?32) controlstyle_player;
arg0->unkC4 = (?32) controlstyle_player.unk4;
arg0->unkC8 = (?32) controlstyle_player.unk8;
arg0->unkCC = (?32) controlstyle_player.unkC;
arg0->unkD0 = (?32) aim_sight_adjustment;
arg0->unkD4 = get_players_team_or_scenario_item_flag(0);
arg0->unkD8 = get_players_team_or_scenario_item_flag(1);
arg0->unkDC = get_players_team_or_scenario_item_flag(2);
arg0->unkE0 = get_players_team_or_scenario_item_flag(3);
extern u64 g_randomSeed;
extern u64 g_chrObjRandomSeed;
void copy_current_ingame_registers_before_ramrom_playback(state *state) {
state->unk0 = g_randomSeed;
state->unk8 = g_chrObjRandomSeed;
state->unk84 = gamemode;
state->unk8C = selected_num_players;
state->unk90 = scenario;
state->unk94 = MP_stage_selected;
state->unk98 = game_length;
state->unk9C = getMPWeaponSet();
state->unkA0 = (&player_1_char)[0];
state->unkA4 = (&player_1_char)[1];
state->unkA8 = (&player_1_char)[2];
state->unkAC = (&player_1_char)[3];
state->unkB0 = (&handicap_player1)[0];
state->unkB4 = (&handicap_player1)[1];
state->unkB8 = (&handicap_player1)[2];
state->unkBC = (&handicap_player1)[3];
state->unkC0 = controlstyle_player[0];
state->unkC4 = controlstyle_player[1];
state->unkC8 = controlstyle_player[2];
state->unkCC = controlstyle_player[3];
state->unkD0 = aim_sight_adjustment;
state->unkD4 = get_players_team_or_scenario_item_flag(0);
state->unkD8 = get_players_team_or_scenario_item_flag(1);
state->unkDC = get_players_team_or_scenario_item_flag(2);
state->unkE0 = get_players_team_or_scenario_item_flag(3);
}
#else
GLOBAL_ASM(
.text
glabel copy_current_ingame_registers_before_ramrom_playback
/* 0F4ED8 7F0C03A8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0F4EDC 7F0C03AC 3C0E8002 */ lui $t6, %hi(randseed)
/* 0F4EE0 7F0C03B0 3C0F8002 */ lui $t7, %hi(randseed + 0x4)
/* 0F4EE4 7F0C03B4 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7)
/* 0F4EE8 7F0C03B8 8DCE4460 */ lw $t6, %lo(randseed)($t6)
/* 0F4EEC 7F0C03BC AFBF001C */ sw $ra, 0x1c($sp)
/* 0F4EF0 7F0C03C0 AFB00018 */ sw $s0, 0x18($sp)
/* 0F4EF4 7F0C03C4 AC8F0004 */ sw $t7, 4($a0)
/* 0F4EF8 7F0C03C8 AC8E0000 */ sw $t6, ($a0)
/* 0F4EFC 7F0C03CC 3C188004 */ lui $t8, %hi(random_val)
/* 0F4F00 7F0C03D0 3C198004 */ lui $t9, %hi(random_val + 0x4)
/* 0F4F04 7F0C03D4 8F390164 */ lw $t9, %lo(random_val + 0x4)($t9)
/* 0F4F08 7F0C03D8 8F180160 */ lw $t8, %lo(random_val)($t8)
/* 0F4F0C 7F0C03DC 3C088003 */ lui $t0, %hi(gamemode)
/* 0F4F10 7F0C03E0 AC99000C */ sw $t9, 0xc($a0)
/* 0F4F14 7F0C03E4 AC980008 */ sw $t8, 8($a0)
/* 0F4F18 7F0C03E8 8D08A8F0 */ lw $t0, %lo(gamemode)($t0)
/* 0F4F1C 7F0C03EC 3C098003 */ lui $t1, %hi(selected_num_players)
/* 0F4F20 7F0C03F0 3C0A8003 */ lui $t2, %hi(scenario)
/* 0F4F24 7F0C03F4 AC880084 */ sw $t0, 0x84($a0)
/* 0F4F28 7F0C03F8 8D29B520 */ lw $t1, %lo(selected_num_players)($t1)
/* 0F4F2C 7F0C03FC 3C0B8003 */ lui $t3, %hi(MP_stage_selected)
/* 0F4F30 7F0C0400 3C0C8003 */ lui $t4, %hi(game_length)
/* 0F4F34 7F0C0404 AC89008C */ sw $t1, 0x8c($a0)
/* 0F4F38 7F0C0408 8D4AB540 */ lw $t2, %lo(scenario)($t2)
/* 0F4F3C 7F0C040C 00808025 */ move $s0, $a0
/* 0F4F40 7F0C0410 AC8A0090 */ sw $t2, 0x90($a0)
/* 0F4F44 7F0C0414 8D6BB534 */ lw $t3, %lo(MP_stage_selected)($t3)
/* 0F4F48 7F0C0418 AC8B0094 */ sw $t3, 0x94($a0)
/* 0F4F4C 7F0C041C 8D8CB538 */ lw $t4, %lo(game_length)($t4)
/* 0F4F50 7F0C0420 0FC3198F */ jal getMPWeaponSet
/* 0F4F54 7F0C0424 AC8C0098 */ sw $t4, 0x98($a0)
/* 0F4F58 7F0C0428 3C038003 */ lui $v1, %hi(player_1_char)
/* 0F4F5C 7F0C042C 2463B524 */ addiu $v1, %lo(player_1_char) # addiu $v1, $v1, -0x4adc
/* 0F4F60 7F0C0430 AE02009C */ sw $v0, 0x9c($s0)
/* 0F4F64 7F0C0434 8C6D0000 */ lw $t5, ($v1)
/* 0F4F68 7F0C0438 3C058007 */ lui $a1, %hi(handicap_player1)
/* 0F4F6C 7F0C043C 24A597A8 */ addiu $a1, %lo(handicap_player1) # addiu $a1, $a1, -0x6858
/* 0F4F70 7F0C0440 AE0D00A0 */ sw $t5, 0xa0($s0)
/* 0F4F74 7F0C0444 8C6E0004 */ lw $t6, 4($v1)
/* 0F4F78 7F0C0448 3C068007 */ lui $a2, %hi(controlstyle_player)
/* 0F4F7C 7F0C044C 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848
/* 0F4F80 7F0C0450 AE0E00A4 */ sw $t6, 0xa4($s0)
/* 0F4F84 7F0C0454 8C6F0008 */ lw $t7, 8($v1)
/* 0F4F88 7F0C0458 00002025 */ move $a0, $zero
/* 0F4F8C 7F0C045C AE0F00A8 */ sw $t7, 0xa8($s0)
/* 0F4F90 7F0C0460 8C78000C */ lw $t8, 0xc($v1)
/* 0F4F94 7F0C0464 3C0F8003 */ lui $t7, %hi(aim_sight_adjustment)
/* 0F4F98 7F0C0468 AE1800AC */ sw $t8, 0xac($s0)
/* 0F4F9C 7F0C046C 8CB90000 */ lw $t9, ($a1)
/* 0F4FA0 7F0C0470 AE1900B0 */ sw $t9, 0xb0($s0)
/* 0F4FA4 7F0C0474 8CA80004 */ lw $t0, 4($a1)
/* 0F4FA8 7F0C0478 AE0800B4 */ sw $t0, 0xb4($s0)
/* 0F4FAC 7F0C047C 8CA90008 */ lw $t1, 8($a1)
/* 0F4FB0 7F0C0480 AE0900B8 */ sw $t1, 0xb8($s0)
/* 0F4FB4 7F0C0484 8CAA000C */ lw $t2, 0xc($a1)
/* 0F4FB8 7F0C0488 AE0A00BC */ sw $t2, 0xbc($s0)
/* 0F4FBC 7F0C048C 8CCB0000 */ lw $t3, ($a2)
/* 0F4FC0 7F0C0490 AE0B00C0 */ sw $t3, 0xc0($s0)
/* 0F4FC4 7F0C0494 8CCC0004 */ lw $t4, 4($a2)
/* 0F4FC8 7F0C0498 AE0C00C4 */ sw $t4, 0xc4($s0)
/* 0F4FCC 7F0C049C 8CCD0008 */ lw $t5, 8($a2)
/* 0F4FD0 7F0C04A0 AE0D00C8 */ sw $t5, 0xc8($s0)
/* 0F4FD4 7F0C04A4 8CCE000C */ lw $t6, 0xc($a2)
/* 0F4FD8 7F0C04A8 AE0E00CC */ sw $t6, 0xcc($s0)
/* 0F4FDC 7F0C04AC 8DEFB53C */ lw $t7, %lo(aim_sight_adjustment)($t7)
/* 0F4FE0 7F0C04B0 0FC05322 */ jal get_players_team_or_scenario_item_flag
/* 0F4FE4 7F0C04B4 AE0F00D0 */ sw $t7, 0xd0($s0)
/* 0F4FE8 7F0C04B8 AE0200D4 */ sw $v0, 0xd4($s0)
/* 0F4FEC 7F0C04BC 0FC05322 */ jal get_players_team_or_scenario_item_flag
/* 0F4FF0 7F0C04C0 24040001 */ li $a0, 1
/* 0F4FF4 7F0C04C4 AE0200D8 */ sw $v0, 0xd8($s0)
/* 0F4FF8 7F0C04C8 0FC05322 */ jal get_players_team_or_scenario_item_flag
/* 0F4FFC 7F0C04CC 24040002 */ li $a0, 2
/* 0F5000 7F0C04D0 AE0200DC */ sw $v0, 0xdc($s0)
/* 0F5004 7F0C04D4 0FC05322 */ jal get_players_team_or_scenario_item_flag
/* 0F5008 7F0C04D8 24040003 */ li $a0, 3
/* 0F500C 7F0C04DC AE0200E0 */ sw $v0, 0xe0($s0)
/* 0F5010 7F0C04E0 8FBF001C */ lw $ra, 0x1c($sp)
/* 0F5014 7F0C04E4 8FB00018 */ lw $s0, 0x18($sp)
/* 0F5018 7F0C04E8 27BD0020 */ addiu $sp, $sp, 0x20
/* 0F501C 7F0C04EC 03E00008 */ jr $ra
/* 0F5020 7F0C04F0 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void copy_recorded_ramrom_registers_to_proper_place_ingame(void *arg0) {
// Node 0
randseed = (?32) *arg0;
randseed + 0x4 = (?32) arg0->unk4;
random_val = (?32) arg0->unk8;
random_val + 0x4 = (?32) arg0->unkC;
gamemode = (?32) arg0->unk84;
selected_num_players = (?32) arg0->unk8C;
scenario = (?32) arg0->unk90;
MP_stage_selected = (?32) arg0->unk94;
game_length = (?32) arg0->unk98;
setMPWeaponSet(arg0->unk9C);
player_1_char = (?32) arg0->unkA0;
player_1_char.unk4 = (?32) arg0->unkA4;
player_1_char.unk8 = (?32) arg0->unkA8;
player_1_char.unkC = (?32) arg0->unkAC;
handicap_player1 = (?32) arg0->unkB0;
handicap_player1.unk4 = (?32) arg0->unkB4;
handicap_player1.unk8 = (?32) arg0->unkB8;
handicap_player1.unkC = (?32) arg0->unkBC;
controlstyle_player = (?32) arg0->unkC0;
controlstyle_player.unk4 = (?32) arg0->unkC4;
controlstyle_player.unk8 = (?32) arg0->unkC8;
controlstyle_player.unkC = (?32) arg0->unkCC;
aim_sight_adjustment = (?32) arg0->unkD0;
set_players_team_or_scenario_item_flag(0, arg0->unkD4, &controlstyle_player);
set_players_team_or_scenario_item_flag(1, arg0->unkD8);
set_players_team_or_scenario_item_flag(2, arg0->unkDC);
return set_players_team_or_scenario_item_flag(3, arg0->unkE0);
void copy_recorded_ramrom_registers_to_proper_place_ingame(state *state) {
g_randomSeed = state->unk0;
g_chrObjRandomSeed = state->unk8;
gamemode = state->unk84;
selected_num_players = state->unk8C;
scenario = state->unk90;
MP_stage_selected = state->unk94;
game_length = state->unk98;
setMPWeaponSet(state->unk9C);
(&player_1_char)[0] = state->unkA0;
(&player_1_char)[1] = state->unkA4;
(&player_1_char)[2] = state->unkA8;
(&player_1_char)[3] = state->unkAC;
(&handicap_player1)[0] = state->unkB0;
(&handicap_player1)[1] = state->unkB4;
(&handicap_player1)[2] = state->unkB8;
(&handicap_player1)[3] = state->unkBC;
controlstyle_player[0] = state->unkC0;
controlstyle_player[1] = state->unkC4;
controlstyle_player[2] = state->unkC8;
controlstyle_player[3] = state->unkCC;
aim_sight_adjustment = state->unkD0;
set_players_team_or_scenario_item_flag(0, state->unkD4);
set_players_team_or_scenario_item_flag(1, state->unkD8);
set_players_team_or_scenario_item_flag(2, state->unkDC);
set_players_team_or_scenario_item_flag(3, state->unkE0);
}
#else
GLOBAL_ASM(
.text
glabel copy_recorded_ramrom_registers_to_proper_place_ingame
/* 0F5024 7F0C04F4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0F5028 7F0C04F8 AFBF001C */ sw $ra, 0x1c($sp)
/* 0F502C 7F0C04FC AFB00018 */ sw $s0, 0x18($sp)
/* 0F5030 7F0C0500 8C8E0000 */ lw $t6, ($a0)
/* 0F5034 7F0C0504 8C8F0004 */ lw $t7, 4($a0)
/* 0F5038 7F0C0508 3C018002 */ lui $at, %hi(randseed)
/* 0F503C 7F0C050C AC2E4460 */ sw $t6, %lo(randseed)($at)
/* 0F5040 7F0C0510 3C018002 */ lui $at, %hi(randseed + 0x4)
/* 0F5044 7F0C0514 AC2F4464 */ sw $t7, %lo(randseed + 0x4)($at)
/* 0F5048 7F0C0518 8C980008 */ lw $t8, 8($a0)
/* 0F504C 7F0C051C 8C99000C */ lw $t9, 0xc($a0)
/* 0F5050 7F0C0520 3C018004 */ lui $at, %hi(random_val)
/* 0F5054 7F0C0524 AC380160 */ sw $t8, %lo(random_val)($at)
/* 0F5058 7F0C0528 3C018004 */ lui $at, %hi(random_val + 0x4)
/* 0F505C 7F0C052C AC390164 */ sw $t9, %lo(random_val + 0x4)($at)
/* 0F5060 7F0C0530 8C880084 */ lw $t0, 0x84($a0)
/* 0F5064 7F0C0534 3C018003 */ lui $at, %hi(gamemode)
/* 0F5068 7F0C0538 00808025 */ move $s0, $a0
/* 0F506C 7F0C053C AC28A8F0 */ sw $t0, %lo(gamemode)($at)
/* 0F5070 7F0C0540 8C89008C */ lw $t1, 0x8c($a0)
/* 0F5074 7F0C0544 3C018003 */ lui $at, %hi(selected_num_players)
/* 0F5078 7F0C0548 AC29B520 */ sw $t1, %lo(selected_num_players)($at)
/* 0F507C 7F0C054C 8C8A0090 */ lw $t2, 0x90($a0)
/* 0F5080 7F0C0550 3C018003 */ lui $at, %hi(scenario)
/* 0F5084 7F0C0554 AC2AB540 */ sw $t2, %lo(scenario)($at)
/* 0F5088 7F0C0558 8C8B0094 */ lw $t3, 0x94($a0)
/* 0F508C 7F0C055C 3C018003 */ lui $at, %hi(MP_stage_selected)
/* 0F5090 7F0C0560 AC2BB534 */ sw $t3, %lo(MP_stage_selected)($at)
/* 0F5094 7F0C0564 8C8C0098 */ lw $t4, 0x98($a0)
/* 0F5098 7F0C0568 3C018003 */ lui $at, %hi(game_length)
/* 0F509C 7F0C056C AC2CB538 */ sw $t4, %lo(game_length)($at)
/* 0F50A0 7F0C0570 0FC3198C */ jal setMPWeaponSet
/* 0F50A4 7F0C0574 8C84009C */ lw $a0, 0x9c($a0)
/* 0F50A8 7F0C0578 8E0D00A0 */ lw $t5, 0xa0($s0)
/* 0F50AC 7F0C057C 3C028003 */ lui $v0, %hi(player_1_char)
/* 0F50B0 7F0C0580 2442B524 */ addiu $v0, %lo(player_1_char) # addiu $v0, $v0, -0x4adc
/* 0F50B4 7F0C0584 AC4D0000 */ sw $t5, ($v0)
/* 0F50B8 7F0C0588 8E0E00A4 */ lw $t6, 0xa4($s0)
/* 0F50BC 7F0C058C 3C038007 */ lui $v1, %hi(handicap_player1)
/* 0F50C0 7F0C0590 246397A8 */ addiu $v1, %lo(handicap_player1) # addiu $v1, $v1, -0x6858
/* 0F50C4 7F0C0594 AC4E0004 */ sw $t6, 4($v0)
/* 0F50C8 7F0C0598 8E0F00A8 */ lw $t7, 0xa8($s0)
/* 0F50CC 7F0C059C 3C068007 */ lui $a2, %hi(controlstyle_player)
/* 0F50D0 7F0C05A0 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848
/* 0F50D4 7F0C05A4 AC4F0008 */ sw $t7, 8($v0)
/* 0F50D8 7F0C05A8 8E1800AC */ lw $t8, 0xac($s0)
/* 0F50DC 7F0C05AC 3C018003 */ lui $at, %hi(aim_sight_adjustment)
/* 0F50E0 7F0C05B0 00002025 */ move $a0, $zero
/* 0F50E4 7F0C05B4 AC58000C */ sw $t8, 0xc($v0)
/* 0F50E8 7F0C05B8 8E1900B0 */ lw $t9, 0xb0($s0)
/* 0F50EC 7F0C05BC AC790000 */ sw $t9, ($v1)
/* 0F50F0 7F0C05C0 8E0800B4 */ lw $t0, 0xb4($s0)
/* 0F50F4 7F0C05C4 AC680004 */ sw $t0, 4($v1)
/* 0F50F8 7F0C05C8 8E0900B8 */ lw $t1, 0xb8($s0)
/* 0F50FC 7F0C05CC AC690008 */ sw $t1, 8($v1)
/* 0F5100 7F0C05D0 8E0A00BC */ lw $t2, 0xbc($s0)
/* 0F5104 7F0C05D4 AC6A000C */ sw $t2, 0xc($v1)
/* 0F5108 7F0C05D8 8E0B00C0 */ lw $t3, 0xc0($s0)
/* 0F510C 7F0C05DC ACCB0000 */ sw $t3, ($a2)
/* 0F5110 7F0C05E0 8E0C00C4 */ lw $t4, 0xc4($s0)
/* 0F5114 7F0C05E4 ACCC0004 */ sw $t4, 4($a2)
/* 0F5118 7F0C05E8 8E0D00C8 */ lw $t5, 0xc8($s0)
/* 0F511C 7F0C05EC ACCD0008 */ sw $t5, 8($a2)
/* 0F5120 7F0C05F0 8E0E00CC */ lw $t6, 0xcc($s0)
/* 0F5124 7F0C05F4 ACCE000C */ sw $t6, 0xc($a2)
/* 0F5128 7F0C05F8 8E0F00D0 */ lw $t7, 0xd0($s0)
/* 0F512C 7F0C05FC AC2FB53C */ sw $t7, %lo(aim_sight_adjustment)($at)
/* 0F5130 7F0C0600 0FC05329 */ jal set_players_team_or_scenario_item_flag
/* 0F5134 7F0C0604 8E0500D4 */ lw $a1, 0xd4($s0)
/* 0F5138 7F0C0608 24040001 */ li $a0, 1
/* 0F513C 7F0C060C 0FC05329 */ jal set_players_team_or_scenario_item_flag
/* 0F5140 7F0C0610 8E0500D8 */ lw $a1, 0xd8($s0)
/* 0F5144 7F0C0614 24040002 */ li $a0, 2
/* 0F5148 7F0C0618 0FC05329 */ jal set_players_team_or_scenario_item_flag
/* 0F514C 7F0C061C 8E0500DC */ lw $a1, 0xdc($s0)
/* 0F5150 7F0C0620 24040003 */ li $a0, 3
/* 0F5154 7F0C0624 0FC05329 */ jal set_players_team_or_scenario_item_flag
/* 0F5158 7F0C0628 8E0500E0 */ lw $a1, 0xe0($s0)
/* 0F515C 7F0C062C 8FBF001C */ lw $ra, 0x1c($sp)
/* 0F5160 7F0C0630 8FB00018 */ lw $s0, 0x18($sp)
/* 0F5164 7F0C0634 27BD0020 */ addiu $sp, $sp, 0x20
/* 0F5168 7F0C0638 03E00008 */ jr $ra
/* 0F516C 7F0C063C 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void test_if_recording_demos_this_stage_load(void) {
@@ -1011,7 +843,7 @@ glabel test_if_recording_demos_this_stage_load
/* 0F51B0 7F0C0680 8E090000 */ lw $t1, ($s0)
/* 0F51B4 7F0C0684 AD240010 */ sw $a0, 0x10($t1)
/* 0F51B8 7F0C0688 8E0A0000 */ lw $t2, ($s0)
/* 0F51BC 7F0C068C 0C002E7E */ jal get_attached_controller_count
/* 0F51BC 7F0C068C 0C002E7E */ jal joyGetControllerCount
/* 0F51C0 7F0C0690 AD450014 */ sw $a1, 0x14($t2)
/* 0F51C4 7F0C0694 8E0B0000 */ lw $t3, ($s0)
/* 0F51C8 7F0C0698 3C0C8009 */ lui $t4, %hi(record_slot_num)
@@ -1030,7 +862,7 @@ glabel test_if_recording_demos_this_stage_load
/* 0F51FC 7F0C06CC 3C018005 */ lui $at, %hi(ramrom_demo_related_6)
/* 0F5200 7F0C06D0 3C047F0C */ lui $a0, %hi(record_player_input_as_packet) # $a0, 0x7f0c
/* 0F5204 7F0C06D4 AC228484 */ sw $v0, %lo(ramrom_demo_related_6)($at)
/* 0F5208 7F0C06D8 0C002EEF */ jal set_ptr_tlb_ramrom_record
/* 0F5208 7F0C06D8 0C002EEF */ jal joySetRecordFunc
/* 0F520C 7F0C06DC 2484FE5C */ addiu $a0, %lo(record_player_input_as_packet) # addiu $a0, $a0, -0x1a4
/* 0F5210 7F0C06E0 3C028009 */ lui $v0, %hi(address_demo_loaded)
/* 0F5214 7F0C06E4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c
@@ -1077,9 +909,9 @@ glabel test_if_recording_demos_this_stage_load
/* 0F52B4 7F0C0784 8E0A0000 */ lw $t2, ($s0)
/* 0F52B8 7F0C0788 3C047F0C */ lui $a0, %hi(ramrom_replay_handler) # $a0, 0x7f0c
/* 0F52BC 7F0C078C 24840080 */ addiu $a0, %lo(ramrom_replay_handler) # addiu $a0, $a0, 0x80
/* 0F52C0 7F0C0790 0C002EEA */ jal set_disable_all_rumble_and_something
/* 0F52C0 7F0C0790 0C002EEA */ jal joySetPlaybackFunc
/* 0F52C4 7F0C0794 8D450018 */ lw $a1, 0x18($t2)
/* 0F52C8 7F0C0798 0C00324C */ jal controller_7000C930
/* 0F52C8 7F0C0798 0C00324C */ jal joySetContDataIndex
/* 0F52CC 7F0C079C 24040001 */ li $a0, 1
/* 0F52D0 7F0C07A0 3C018005 */ lui $at, %hi(ramrom_demo_related_4)
/* 0F52D4 7F0C07A4 AC20847C */ sw $zero, %lo(ramrom_demo_related_4)($at)
@@ -1106,7 +938,7 @@ void stop_recording_ramrom(void) {
if (ramrom_demo_related_6 != 0)
{
finalize_ramrom_on_hw();
set_ptr_tlb_ramrom_record(0);
joySetRecordFunc(0);
ramrom_demo_related_6 = 0;
recording_ramrom_flag = 0;
}
@@ -1198,8 +1030,8 @@ void stop_demo_playback(void)
if (ramrom_demo_related_6 == 0) {
if (ramrom_demo_related_3 != 0) {
copy_recorded_ramrom_registers_to_proper_place_ingame(&ramromsettingsbackup);
set_disable_all_rumble_and_something(0,0xffffffff);
controller_7000C930(0);
joySetPlaybackFunc(0,0xffffffff);
joySetContDataIndex(0);
ramrom_demo_related_3 = 0;
is_ramrom_flag = 0;
}
@@ -1230,9 +1062,9 @@ glabel stop_demo_playback
/* 0F5464 7F0C0934 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame
/* 0F5468 7F0C0938 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80
/* 0F546C 7F0C093C 00002025 */ move $a0, $zero
/* 0F5470 7F0C0940 0C002EEA */ jal set_disable_all_rumble_and_something
/* 0F5470 7F0C0940 0C002EEA */ jal joySetPlaybackFunc
/* 0F5474 7F0C0944 2405FFFF */ li $a1, -1
/* 0F5478 7F0C0948 0C00324C */ jal controller_7000C930
/* 0F5478 7F0C0948 0C00324C */ jal joySetContDataIndex
/* 0F547C 7F0C094C 00002025 */ move $a0, $zero
/* 0F5480 7F0C0950 3C018005 */ lui $at, %hi(ramrom_demo_related_3)
/* 0F5484 7F0C0954 AC208478 */ sw $zero, %lo(ramrom_demo_related_3)($at)
@@ -1286,7 +1118,7 @@ glabel select_ramrom_to_play
/* 0F5500 7F0C09D0 5020FFF9 */ beql $at, $zero, .L7F0C09B8
/* 0F5504 7F0C09D4 8C480008 */ lw $t0, 8($v0)
.L7F0C09D8:
/* 0F5508 7F0C09D8 0C002914 */ jal get_random_value
/* 0F5508 7F0C09D8 0C002914 */ jal randomGetNext
/* 0F550C 7F0C09DC AFA3001C */ sw $v1, 0x1c($sp)
/* 0F5510 7F0C09E0 8FA3001C */ lw $v1, 0x1c($sp)
/* 0F5514 7F0C09E4 3C048005 */ lui $a0, %hi(ramrom_table)
+12
View File
@@ -0,0 +1,12 @@
#ifndef _RAMROMREPLAY_H_
#define _RAMROMREPLAY_H_
#include "ultra64.h"
void test_if_recording_demos_this_stage_load(s32 arg0, s32 arg1);
s32 iterate_ramrom_entries_handle_camera_out(void);
void stop_demo_playback(void);
s32 get_is_reamrom_flag(void);
#endif
+3 -3
View File
@@ -23,13 +23,13 @@ u32 fast3d_related_1[] = {
};
//D:8004EAB0
u32 *fast3d_related_array = &fast3d_related_0;
u32 **fast3d_related_array = &fast3d_related_0;
void rspInitDebugNoticeList(void) {
debCheckAddDebugNoticeListEntry(&D_8004E9E0, "rsp_c_debug");
debTryAdd(&D_8004E9E0, "rsp_c_debug");
}
@@ -73,7 +73,7 @@ glabel allocate_init_rsp_buffers
#ifdef NONMATCHING
void *load_rsp_microcode(s32 arg0, s32 arg1, ? arg2, ?32 arg3) {
void *load_rsp_microcode(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
void *temp_v0;
// Node 0
+3
View File
@@ -3,5 +3,8 @@
#include "ultra64.h"
void rspInitDebugNoticeList(void);
void *load_rsp_microcode(Gfx *arg0, Gfx *arg1, s32 arg2, s32 *arg3);
extern u32 **fast3d_related_array;
#endif
+4 -4
View File
@@ -391,20 +391,20 @@ glabel spectrum_p1controller_to_kempston
/* 1077C0 7F0D2C90 AFA00030 */ sw $zero, 0x30($sp)
/* 1077C4 7F0D2C94 AFA0002C */ sw $zero, 0x2c($sp)
/* 1077C8 7F0D2C98 AFA00028 */ sw $zero, 0x28($sp)
/* 1077CC 7F0D2C9C 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set
/* 1077CC 7F0D2C9C 0C002F43 */ jal joyConsumeSamplesWrapper
/* 1077D0 7F0D2CA0 AFA00024 */ sw $zero, 0x24($sp)
/* 1077D4 7F0D2CA4 00002025 */ move $a0, $zero
/* 1077D8 7F0D2CA8 0C0030C3 */ jal get_controller_buttons_held
/* 1077D8 7F0D2CA8 0C0030C3 */ jal joyGetButtons
/* 1077DC 7F0D2CAC 3405FFFF */ li $a1, 65535
/* 1077E0 7F0D2CB0 00002025 */ move $a0, $zero
/* 1077E4 7F0D2CB4 2405FFFD */ li $a1, -3
/* 1077E8 7F0D2CB8 24060003 */ li $a2, 3
/* 1077EC 7F0D2CBC 0C00312D */ jal get_controller_3dstick_L_R
/* 1077EC 7F0D2CBC 0C00312D */ jal joyGetStickXInRange
/* 1077F0 7F0D2CC0 AFA20020 */ sw $v0, 0x20($sp)
/* 1077F4 7F0D2CC4 00002025 */ move $a0, $zero
/* 1077F8 7F0D2CC8 2405FFFD */ li $a1, -3
/* 1077FC 7F0D2CCC 24060003 */ li $a2, 3
/* 107800 7F0D2CD0 0C00314A */ jal get_controller_3dstick_U_D
/* 107800 7F0D2CD0 0C00314A */ jal joyGetStickYInRange
/* 107804 7F0D2CD4 AFA2001C */ sw $v0, 0x1c($sp)
/* 107808 7F0D2CD8 240E00FF */ li $t6, 255
/* 10780C 7F0D2CDC 3C018005 */ lui $at, %hi(D_8004EC34)
+13
View File
@@ -2,6 +2,19 @@
#define _SPECTRUM_H_
#include "ultra64.h"
typedef enum SPECTRUMROMS {
ROM_SABRE,
ROM_ATIC,
ROM_JETPAC,
ROM_JETMAN,
ROM_ALIEN8,
ROM_GUNFRIGHT,
ROM_UNDER,
ROM_KNIGHTLORE,
ROM_PSSST,
ROM_COOKIE
} SPECTRUMROMS;
extern void init_spectrum_game(u32 game);
extern void run_spectrum_game(void);
extern void spectrum_draw_screen(u32);
+5 -5
View File
@@ -234,7 +234,7 @@ u32 stanRemovedAnimationRoutine(s32 arg0) {
}
void stanInitDebugNoticeList(void) {
debCheckAddDebugNoticeListEntry(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug");
debTryAdd(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug");
}
@@ -796,7 +796,7 @@ void stanLoadFile(void *arg0) {
stanLoaded = 1;
stan_prefix.clippingfile = arg0;
standTileStart = (s32) (arg0->unk4 + -0x80);
if (check_token(1, "-stanlinelog") != 0)
if (tokenFind(1, "-stanlinelog") != 0)
{
stanlinelog_flag = 1;
}
@@ -822,7 +822,7 @@ glabel stanLoadFile
/* 0E4114 7F0AF5E4 2719FF80 */ addiu $t9, $t8, -0x80
/* 0E4118 7F0AF5E8 AC390F58 */ sw $t9, %lo(standTileStart)($at)
/* 0E411C 7F0AF5EC 24A585BC */ addiu $a1, %lo(aStanlinelog) # addiu $a1, $a1, -0x7a44
/* 0E4120 7F0AF5F0 0C0029A8 */ jal check_token
/* 0E4120 7F0AF5F0 0C0029A8 */ jal tokenFind
/* 0E4124 7F0AF5F4 24040001 */ li $a0, 1
/* 0E4128 7F0AF5F8 10400003 */ beqz $v0, .L7F0AF608
/* 0E412C 7F0AF5FC 24080001 */ li $t0, 1
@@ -6376,12 +6376,12 @@ GLOBAL_ASM(
glabel sub_GAME_7F0B3044
/* 0E7B74 7F0B3044 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0E7B78 7F0B3048 AFBF0014 */ sw $ra, 0x14($sp)
/* 0E7B7C 7F0B304C 0FC2F5DF */ jal num_microcode_cmds_that_fit
/* 0E7B7C 7F0B304C 0FC2F5DF */ jal dynGetFreeGfx
/* 0E7B80 7F0B3050 AFA0001C */ sw $zero, 0x1c($sp)
/* 0E7B84 7F0B3054 28411000 */ slti $at, $v0, 0x1000
/* 0E7B88 7F0B3058 14200005 */ bnez $at, .L7F0B3070
/* 0E7B8C 7F0B305C 00000000 */ nop
/* 0E7B90 7F0B3060 0FC2F5E9 */ jal sub_GAME_7F0BD7A4
/* 0E7B90 7F0B3060 0FC2F5E9 */ jal dynGetFreeVtx
/* 0E7B94 7F0B3064 00000000 */ nop
/* 0E7B98 7F0B3068 28411000 */ slti $at, $v0, 0x1000
/* 0E7B9C 7F0B306C 10200010 */ beqz $at, .L7F0B30B0
+426 -189
View File
@@ -270,197 +270,39 @@ glabel load_font_tables
)
#endif
#ifdef NONMATCHING
void microcode_constructor(u32 *DL)
Gfx *microcode_constructor(Gfx *gdl)
{
DL[0] = 0xe7000000; //rdp_pipesync
DL[1] = 0;
DL[2] = 0xba001402; //rsp_uc05_setothermode_h
DL[3] = 0;
DL[5] = 0xc0;
DL[4] = 0xba000602; //rsp_uc05_setothermode_h
DL[6] = 0xb900031d; //rsp_uc05_setothermode_l
DL[7] = 0x5041c8;
DL[8] = 0xfcff97ff; //rdp_setcombine
DL[9] = 0xff2dfeff; //rdp_setcolourimage
DL[10] = 0xba001301; //rsp_uc05_setothermode_h
DL[0xb] = 0;
DL[0xc] = 0xb9000002; //rsp_uc05_setothermode_l
DL[0xd] = 0;
DL[0xe] = 0xba001001; //rsp_uc05_setothermode_h
DL[0xf] = 0;
DL[0x11] = 0xc00;
DL[0x10] = 0xba000903; //rsp_uc05_setothermode_h
DL[0x12] = 0xba000e02; //rsp_uc05_setothermode_h
DL[0x13] = 0;
if (text_bilevel_filter != 0) {
DL[0x15] = 0x3000;
DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h
return;
}
DL[0x15] = 0x2000;
DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h
return;
}
#else
GLOBAL_ASM(
.text
glabel microcode_constructor
/* 0E18C8 7F0ACD98 00801025 */ move $v0, $a0
/* 0E18CC 7F0ACD9C 24840008 */ addiu $a0, $a0, 8
/* 0E18D0 7F0ACDA0 3C0EE700 */ lui $t6, 0xe700
/* 0E18D4 7F0ACDA4 AC4E0000 */ sw $t6, ($v0)
/* 0E18D8 7F0ACDA8 AC400004 */ sw $zero, 4($v0)
/* 0E18DC 7F0ACDAC 00801825 */ move $v1, $a0
/* 0E18E0 7F0ACDB0 24840008 */ addiu $a0, $a0, 8
/* 0E18E4 7F0ACDB4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00
/* 0E18E8 7F0ACDB8 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402
/* 0E18EC 7F0ACDBC 00802825 */ move $a1, $a0
/* 0E18F0 7F0ACDC0 AC6F0000 */ sw $t7, ($v1)
/* 0E18F4 7F0ACDC4 AC600004 */ sw $zero, 4($v1)
/* 0E18F8 7F0ACDC8 24840008 */ addiu $a0, $a0, 8
/* 0E18FC 7F0ACDCC 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00
/* 0E1900 7F0ACDD0 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602
/* 0E1904 7F0ACDD4 241900C0 */ li $t9, 192
/* 0E1908 7F0ACDD8 00803025 */ move $a2, $a0
/* 0E190C 7F0ACDDC ACB90004 */ sw $t9, 4($a1)
/* 0E1910 7F0ACDE0 ACB80000 */ sw $t8, ($a1)
/* 0E1914 7F0ACDE4 24840008 */ addiu $a0, $a0, 8
/* 0E1918 7F0ACDE8 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900
/* 0E191C 7F0ACDEC 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50
/* 0E1920 7F0ACDF0 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8
/* 0E1924 7F0ACDF4 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d
/* 0E1928 7F0ACDF8 00803825 */ move $a3, $a0
/* 0E192C 7F0ACDFC ACC80000 */ sw $t0, ($a2)
/* 0E1930 7F0ACE00 ACC90004 */ sw $t1, 4($a2)
/* 0E1934 7F0ACE04 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff
/* 0E1938 7F0ACE08 3C0BFF2D */ lui $t3, (0xFF2DFEFF >> 16) # lui $t3, 0xff2d
/* 0E193C 7F0ACE0C 356BFEFF */ ori $t3, (0xFF2DFEFF & 0xFFFF) # ori $t3, $t3, 0xfeff
/* 0E1940 7F0ACE10 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff
/* 0E1944 7F0ACE14 24840008 */ addiu $a0, $a0, 8
/* 0E1948 7F0ACE18 ACEA0000 */ sw $t2, ($a3)
/* 0E194C 7F0ACE1C ACEB0004 */ sw $t3, 4($a3)
/* 0E1950 7F0ACE20 00801025 */ move $v0, $a0
/* 0E1954 7F0ACE24 24840008 */ addiu $a0, $a0, 8
/* 0E1958 7F0ACE28 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00
/* 0E195C 7F0ACE2C 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301
/* 0E1960 7F0ACE30 00801825 */ move $v1, $a0
/* 0E1964 7F0ACE34 AC4C0000 */ sw $t4, ($v0)
/* 0E1968 7F0ACE38 AC400004 */ sw $zero, 4($v0)
/* 0E196C 7F0ACE3C 24840008 */ addiu $a0, $a0, 8
/* 0E1970 7F0ACE40 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900
/* 0E1974 7F0ACE44 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2
/* 0E1978 7F0ACE48 00802825 */ move $a1, $a0
/* 0E197C 7F0ACE4C AC6D0000 */ sw $t5, ($v1)
/* 0E1980 7F0ACE50 AC600004 */ sw $zero, 4($v1)
/* 0E1984 7F0ACE54 24840008 */ addiu $a0, $a0, 8
/* 0E1988 7F0ACE58 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00
/* 0E198C 7F0ACE5C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001
/* 0E1990 7F0ACE60 00803025 */ move $a2, $a0
/* 0E1994 7F0ACE64 ACAE0000 */ sw $t6, ($a1)
/* 0E1998 7F0ACE68 ACA00004 */ sw $zero, 4($a1)
/* 0E199C 7F0ACE6C 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00
/* 0E19A0 7F0ACE70 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903
/* 0E19A4 7F0ACE74 24840008 */ addiu $a0, $a0, 8
/* 0E19A8 7F0ACE78 24180C00 */ li $t8, 3072
/* 0E19AC 7F0ACE7C ACD80004 */ sw $t8, 4($a2)
/* 0E19B0 7F0ACE80 ACCF0000 */ sw $t7, ($a2)
/* 0E19B4 7F0ACE84 00803825 */ move $a3, $a0
/* 0E19B8 7F0ACE88 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00
/* 0E19BC 7F0ACE8C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02
/* 0E19C0 7F0ACE90 ACF90000 */ sw $t9, ($a3)
/* 0E19C4 7F0ACE94 ACE00004 */ sw $zero, 4($a3)
/* 0E19C8 7F0ACE98 3C088004 */ lui $t0, %hi(text_bilevel_filter)
/* 0E19CC 7F0ACE9C 8D080E94 */ lw $t0, %lo(text_bilevel_filter)($t0)
/* 0E19D0 7F0ACEA0 24840008 */ addiu $a0, $a0, 8
/* 0E19D4 7F0ACEA4 00801025 */ move $v0, $a0
/* 0E19D8 7F0ACEA8 1100000A */ beqz $t0, .L7F0ACED4
/* 0E19DC 7F0ACEAC 3C0BBA00 */ lui $t3, 0xba00
/* 0E19E0 7F0ACEB0 00801025 */ move $v0, $a0
/* 0E19E4 7F0ACEB4 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00
/* 0E19E8 7F0ACEB8 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02
/* 0E19EC 7F0ACEBC 240A3000 */ li $t2, 12288
/* 0E19F0 7F0ACEC0 AC4A0004 */ sw $t2, 4($v0)
/* 0E19F4 7F0ACEC4 AC490000 */ sw $t1, ($v0)
/* 0E19F8 7F0ACEC8 24840008 */ addiu $a0, $a0, 8
/* 0E19FC 7F0ACECC 03E00008 */ jr $ra
/* 0E1A00 7F0ACED0 00801025 */ move $v0, $a0
gDPPipeSync(gdl++);
gDPSetCycleType(gdl++, G_CYC_1CYCLE);
gDPSetColorDither(gdl++, G_CD_DISABLE);
gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
gDPSetCombineLERP(gdl++,
0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0,
0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0);
gDPSetTexturePersp(gdl++, G_TP_NONE);
gDPSetAlphaCompare(gdl++, G_AC_NONE);
gDPSetTextureLOD(gdl++, G_TL_TILE);
gDPSetTextureConvert(gdl++, G_TC_FILT);
gDPSetTextureLUT(gdl++, G_TT_NONE);
.L7F0ACED4:
/* 0E1A04 7F0ACED4 356B0C02 */ ori $t3, $t3, 0xc02
/* 0E1A08 7F0ACED8 240C2000 */ li $t4, 8192
/* 0E1A0C 7F0ACEDC AC4C0004 */ sw $t4, 4($v0)
/* 0E1A10 7F0ACEE0 AC4B0000 */ sw $t3, ($v0)
/* 0E1A14 7F0ACEE4 24840008 */ addiu $a0, $a0, 8
/* 0E1A18 7F0ACEE8 03E00008 */ jr $ra
/* 0E1A1C 7F0ACEEC 00801025 */ move $v0, $a0
)
#endif
if (text_bilevel_filter) {
gDPSetTextureFilter(gdl++, G_TF_AVERAGE);
} else {
gDPSetTextureFilter(gdl++, G_TF_BILERP);
}
#ifdef NONMATCHING
s32 combiner_bayer_lod_perspective(void *arg0) {
void *temp_a1;
void *temp_a2;
void *temp_a3;
// Node 0
temp_a1 = (arg0 + 8);
*arg0 = 0xe7000000;
arg0->unk4 = 0;
temp_a2 = (temp_a1 + 8);
temp_a1->unk4 = 0x40;
*temp_a1 = 0xba000602;
temp_a3 = (temp_a2 + 8);
temp_a2->unk4 = 0x80000;
*temp_a2 = 0xba001301;
temp_a3->unk4 = 0x10000;
*temp_a3 = 0xba001001;
return;
// (possible return value: (temp_a3 + 8))
return gdl;
}
#else
GLOBAL_ASM(
.text
glabel combiner_bayer_lod_perspective
/* 0E1A20 7F0ACEF0 24850008 */ addiu $a1, $a0, 8
/* 0E1A24 7F0ACEF4 3C0EE700 */ lui $t6, 0xe700
/* 0E1A28 7F0ACEF8 AC8E0000 */ sw $t6, ($a0)
/* 0E1A2C 7F0ACEFC AC800004 */ sw $zero, 4($a0)
/* 0E1A30 7F0ACF00 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00
/* 0E1A34 7F0ACF04 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602
/* 0E1A38 7F0ACF08 24A60008 */ addiu $a2, $a1, 8
/* 0E1A3C 7F0ACF0C 24180040 */ li $t8, 64
/* 0E1A40 7F0ACF10 ACB80004 */ sw $t8, 4($a1)
/* 0E1A44 7F0ACF14 ACAF0000 */ sw $t7, ($a1)
/* 0E1A48 7F0ACF18 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00
/* 0E1A4C 7F0ACF1C 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301
/* 0E1A50 7F0ACF20 24C70008 */ addiu $a3, $a2, 8
/* 0E1A54 7F0ACF24 3C080008 */ lui $t0, 8
/* 0E1A58 7F0ACF28 3C09BA00 */ lui $t1, (0xBA001001 >> 16) # lui $t1, 0xba00
/* 0E1A5C 7F0ACF2C ACC80004 */ sw $t0, 4($a2)
/* 0E1A60 7F0ACF30 ACD90000 */ sw $t9, ($a2)
/* 0E1A64 7F0ACF34 35291001 */ ori $t1, (0xBA001001 & 0xFFFF) # ori $t1, $t1, 0x1001
/* 0E1A68 7F0ACF38 3C0A0001 */ lui $t2, 1
/* 0E1A6C 7F0ACF3C ACEA0004 */ sw $t2, 4($a3)
/* 0E1A70 7F0ACF40 ACE90000 */ sw $t1, ($a3)
/* 0E1A74 7F0ACF44 03E00008 */ jr $ra
/* 0E1A78 7F0ACF48 24E20008 */ addiu $v0, $a3, 8
)
#endif
Gfx *combiner_bayer_lod_perspective(Gfx *gdl)
{
gDPPipeSync(gdl++);
gDPSetColorDither(gdl++, G_CD_BAYER);
gDPSetTexturePersp(gdl++, G_TP_PERSP);
gDPSetTextureLOD(gdl++, G_TL_LOD);
return gdl;
}
#ifdef NONMATCHING
s32 draw_blackbox_to_screen(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) {
@@ -691,7 +533,7 @@ glabel sub_GAME_7F0AD0F8
/* 0E1CAC 7F0AD17C 8FA40108 */ lw $a0, 0x108($sp)
/* 0E1CB0 7F0AD180 59A00244 */ blezl $t5, .L7F0ADA94
/* 0E1CB4 7F0AD184 8FAC00F4 */ lw $t4, 0xf4($sp)
/* 0E1CB8 7F0AD188 0C001107 */ jal get_video2_settings_txtClipW
/* 0E1CB8 7F0AD188 0C001107 */ jal viGetX
/* 0E1CBC 7F0AD18C AFA900E0 */ sw $t1, 0xe0($sp)
/* 0E1CC0 7F0AD190 8FAE00F4 */ lw $t6, 0xf4($sp)
/* 0E1CC4 7F0AD194 8FA900E0 */ lw $t1, 0xe0($sp)
@@ -699,7 +541,7 @@ glabel sub_GAME_7F0AD0F8
/* 0E1CCC 7F0AD19C 004F082A */ slt $at, $v0, $t7
/* 0E1CD0 7F0AD1A0 5420023C */ bnezl $at, .L7F0ADA94
/* 0E1CD4 7F0AD1A4 8FAC00F4 */ lw $t4, 0xf4($sp)
/* 0E1CD8 7F0AD1A8 0C00110B */ jal get_video2_settings_txtClipH
/* 0E1CD8 7F0AD1A8 0C00110B */ jal viGetY
/* 0E1CDC 7F0AD1AC AFA900E0 */ sw $t1, 0xe0($sp)
/* 0E1CE0 7F0AD1B0 8FA900E0 */ lw $t1, 0xe0($sp)
/* 0E1CE4 7F0AD1B4 8E2C0004 */ lw $t4, 4($s1)
@@ -1725,6 +1567,215 @@ glabel en_text_write_stuff
/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel en_text_write_stuff
/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8
/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1
/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8)
/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp)
/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp)
/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp)
/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp)
/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp)
/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp)
/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp)
/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp)
/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp)
/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp)
/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp)
/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at)
/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2)
/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1)
/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3
/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1
/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2
/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0
/* 0E2640 7F0ADB10 24150048 */ li $s5, 72
/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30
/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp)
/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp)
/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9)
/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9)
/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1
/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp)
.L7F0ADB30:
/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger)
/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3)
/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp)
/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3
/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54
/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe
/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54
/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14
/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp)
.L7F0ADB54:
/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp)
/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00
/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0)
/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18
/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10
/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff
/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18
/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8
/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff
/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10
/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4
/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8
/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9
/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff
/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3
/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0)
/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0)
/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8
/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp)
/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78
/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp)
/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c
/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32
.L7F0ADBB0:
/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4
/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10
/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1)
/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72
/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1
/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5
/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C
/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1)
/* 0E2700 7F0ADBD0 2401000A */ li $at, 10
.L7F0ADBD4:
/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28
/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80
/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction)
/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0)
/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72
/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp)
/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10
/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1
/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1)
/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14
/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2)
/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2)
/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0
/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C
/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2)
.L7F0ADC10:
/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2)
.L7F0ADC14:
/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2
/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2)
.L7F0ADC1C:
/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C
/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1)
/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80
.L7F0ADC28:
/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0
/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC)
/* 0E2760 7F0ADC30 24030018 */ li $v1, 24
/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1
/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp)
/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp)
/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp)
/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp)
/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3
/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1
/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2
/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp)
/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp)
/* 0E278C 7F0ADC5C 00005812 */ mflo $t3
/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0
/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318
/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1
/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp)
/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp)
/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp)
/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp)
/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4
/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0
/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318
/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8
/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp)
/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0
/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0)
/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C
/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1
.L7F0ADCA0:
/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC)
/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6)
/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0)
/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f
/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6)
/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6)
/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7
/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f
/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6)
/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6)
/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4
/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff
/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6)
/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6)
/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000
/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff
/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6)
/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6)
/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15
/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16
/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6)
/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6)
/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c7
/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C
/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6)
/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp)
/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp)
.L7F0ADD0C:
/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C
/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80
/* 0E2844 7F0ADD14 24040002 */ li $a0, 2
/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80
.L7F0ADD1C:
/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX
/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp)
/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp)
/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp)
/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp)
/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp)
/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3
/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1
/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2
/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6
/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp)
/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp)
/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp)
/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp)
/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp)
/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp)
/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8
/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp)
/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0
/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2
.L7F0ADD6C:
/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0)
/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0
/* 0E28A4 7F0ADD74 24010020 */ li $at, 32
.L7F0ADD78:
/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp)
/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3
/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp)
/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp)
/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp)
/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp)
/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp)
/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp)
/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp)
/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp)
/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp)
/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra
/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8
)
#endif
#endif
@@ -1779,14 +1830,14 @@ glabel sub_GAME_7F0ADDAC
/* 0E2974 7F0ADE44 8CAE0000 */ lw $t6, ($a1)
/* 0E2978 7F0ADE48 59C00173 */ blezl $t6, .L7F0AE418
/* 0E297C 7F0ADE4C 8FA50064 */ lw $a1, 0x64($sp)
/* 0E2980 7F0ADE50 0C001107 */ jal get_video2_settings_txtClipW
/* 0E2980 7F0ADE50 0C001107 */ jal viGetX
/* 0E2984 7F0ADE54 AFA50064 */ sw $a1, 0x64($sp)
/* 0E2988 7F0ADE58 8FAD0064 */ lw $t5, 0x64($sp)
/* 0E298C 7F0ADE5C 8DAF0000 */ lw $t7, ($t5)
/* 0E2990 7F0ADE60 004F082A */ slt $at, $v0, $t7
/* 0E2994 7F0ADE64 5420016C */ bnezl $at, .L7F0AE418
/* 0E2998 7F0ADE68 8FA50064 */ lw $a1, 0x64($sp)
/* 0E299C 7F0ADE6C 0C00110B */ jal get_video2_settings_txtClipH
/* 0E299C 7F0ADE6C 0C00110B */ jal viGetY
/* 0E29A0 7F0ADE70 00000000 */ nop
/* 0E29A4 7F0ADE74 8FB80050 */ lw $t8, 0x50($sp)
/* 0E29A8 7F0ADE78 8FC90004 */ lw $t1, 4($fp)
@@ -2750,6 +2801,192 @@ glabel jp_text_write_stuff
/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.text
glabel jp_text_write_stuff
/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98
/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1
/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8)
/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp)
/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp)
/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp)
/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp)
/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp)
/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp)
/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp)
/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp)
/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp)
/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp)
/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp)
/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at)
/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2)
/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1)
/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3
/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1
/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2
/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0
/* 0E3270 7F0AE740 24140048 */ li $s4, 72
/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760
/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp)
/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp)
/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9)
/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9)
/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1
/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp)
.L7F0AE760:
/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger)
/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3)
/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp)
/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74
/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784
/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe
/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784
/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14
/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp)
.L7F0AE784:
/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0)
/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp)
/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp)
/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958
/* 0E32C4 7F0AE794 24010020 */ li $at, 32
.L7F0AE798:
/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC
/* 0E32CC 7F0AE79C 2401000A */ li $at, 10
/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1)
/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72
/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1
/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5
/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C
/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1)
/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10
.L7F0AE7BC:
/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8
/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80
/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1)
/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3)
/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp)
/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72
/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1
/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9
/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C
/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3)
/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80
.L7F0AE7E8:
/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870
/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14)
/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24
/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1
/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp)
/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp)
/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp)
/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp)
/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp)
/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5
/* 0E3344 7F0AE814 02202825 */ move $a1, $s1
/* 0E3348 7F0AE818 02603025 */ move $a2, $s3
/* 0E334C 7F0AE81C 00004812 */ mflo $t1
/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2
/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318
/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1
/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp)
/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp)
/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp)
/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp)
/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp)
/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp)
/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp)
/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp)
/* 0E337C 7F0AE84C 00005812 */ mflo $t3
/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2
/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318
/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC
/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp)
/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0
/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0)
/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C
/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1
.L7F0AE870:
/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14)
/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6)
/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0)
/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f
/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2)
/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6)
/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7
/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f
/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2)
/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6)
/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4
/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff
/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2)
/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6)
/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000
/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff
/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2)
/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6)
/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15
/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16
/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2)
/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6)
/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c7
/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC
/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2)
/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp)
/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp)
.L7F0AE8DC:
/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC
/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80
/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2
/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80
.L7F0AE8EC:
/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX
/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp)
/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp)
/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp)
/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp)
/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp)
/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp)
/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5
/* 0E3440 7F0AE910 02202825 */ move $a1, $s1
/* 0E3444 7F0AE914 02603025 */ move $a2, $s3
/* 0E3448 7F0AE918 02403825 */ move $a3, $s2
/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp)
/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp)
/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp)
/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp)
/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp)
/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp)
/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp)
/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp)
/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC
/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp)
/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0
/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2
.L7F0AE94C:
/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0)
/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798
/* 0E3484 7F0AE954 24010020 */ li $at, 32
.L7F0AE958:
/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp)
/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5
/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp)
/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp)
/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp)
/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp)
/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp)
/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp)
/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp)
/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp)
/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp)
/* 0E34B4 7F0AE984 03E00008 */ jr $ra
/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98
)
#endif
#endif
+33 -71
View File
@@ -1,79 +1,41 @@
#include "ultra64.h"
#include "game/unk_09C250.h"
#include "video.h"
#ifdef NONMATCHING
void cleanupExplosions(void) {
? temp_ret;
void *temp_t8;
s32 temp_s0;
void *temp_t7;
s32 temp_s0_2;
s32 phi_s0;
s32 phi_s0_2;
? phi_return;
? phi_return_2;
? phi_return_3;
? phi_return_4;
// Node 0
//come back once prop for explosions and smoke is merged from AIListLogic branch
//code should match already
//
void cleanupExplosions(void)
{
s32 i;
D_80040170 = 0;
temp_ret = video_related_9(0);
phi_s0 = 0;
phi_return_3 = temp_ret;
phi_return_4 = temp_ret;
if (ptr_explosion_buf != 0)
{
loop_1:
// Node 1
temp_t8 = (ptr_explosion_buf + phi_s0);
if (*temp_t8 != 0)
viSet800232B4(0.0);
if (ptr_explosion_buf) {
for (i = 0; i<0x1fe0; i++)
{
// Node 2
sub_GAME_7F03A538(*temp_t8);
unset_stateflag_0x04_for_posdata(*(ptr_explosion_buf + phi_s0));
*(ptr_explosion_buf + phi_s0) = 0;
phi_return_4 = set_last_obj_pos_data(*(ptr_explosion_buf + phi_s0));
}
// Node 3
temp_s0 = (phi_s0 + 0x3e0);
phi_s0 = temp_s0;
phi_return_3 = phi_return_4;
phi_return_4 = phi_return_4;
if (temp_s0 != 0x1740)
{
goto loop_1;
if (ptr_explosion_buf) {
sub_GAME_7F03A538(ptr_explosion_buf[i].prop);
propHide(ptr_explosion_buf[i].prop);
propFree(ptr_explosion_buf[i].prop);
ptr_explosion_buf[i].prop = 0;
}
}
}
// Node 4
phi_s0_2 = 0;
phi_return = phi_return_3;
phi_return_2 = phi_return_3;
if (ptr_smoke_buf != 0)
{
loop_5:
// Node 5
temp_t7 = (ptr_smoke_buf + phi_s0_2);
if (*temp_t7 != 0)
if (ptr_smoke_buf) {
for (i = 0; i<0x1fe0; i++)
{
// Node 6
sub_GAME_7F03A538(*temp_t7);
unset_stateflag_0x04_for_posdata(*(ptr_smoke_buf + phi_s0_2));
*(ptr_smoke_buf + phi_s0_2) = 0;
phi_return_2 = set_last_obj_pos_data(*(ptr_smoke_buf + phi_s0_2));
}
// Node 7
temp_s0_2 = (phi_s0_2 + 0x198);
phi_s0_2 = temp_s0_2;
phi_return = phi_return_2;
phi_return_2 = phi_return_2;
if (temp_s0_2 != 0x1fe0)
{
goto loop_5;
if (ptr_smoke_buf) {
sub_GAME_7F03A538(ptr_smoke_buf[i].prop);
propHide(ptr_smoke_buf[i].prop);
propFree(ptr_smoke_buf[i].prop);
ptr_smoke_buf[i].prop = 0;
}
}
}
// Node 8
return phi_return;
}
#else
GLOBAL_ASM(
@@ -86,7 +48,7 @@ glabel cleanupExplosions
/* 03C340 7F007810 AFB20020 */ sw $s2, 0x20($sp)
/* 03C344 7F007814 AFB1001C */ sw $s1, 0x1c($sp)
/* 03C348 7F007818 AFB00018 */ sw $s0, 0x18($sp)
/* 03C34C 7F00781C 0C000EC1 */ jal video_related_9
/* 03C34C 7F00781C 0C000EC1 */ jal viSet800232B4
/* 03C350 7F007820 AC200170 */ sw $zero, %lo(D_80040170)($at)
/* 03C354 7F007824 3C118008 */ lui $s1, %hi(ptr_explosion_buf)
/* 03C358 7F007828 2631A144 */ addiu $s1, %lo(ptr_explosion_buf) # addiu $s1, $s1, -0x5ebc
@@ -105,11 +67,11 @@ glabel cleanupExplosions
/* 03C388 7F007858 00000000 */ nop
/* 03C38C 7F00785C 8E390000 */ lw $t9, ($s1)
/* 03C390 7F007860 03304021 */ addu $t0, $t9, $s0
/* 03C394 7F007864 0FC0E905 */ jal unset_stateflag_0x04_for_posdata
/* 03C394 7F007864 0FC0E905 */ jal propHide
/* 03C398 7F007868 8D040000 */ lw $a0, ($t0)
/* 03C39C 7F00786C 8E290000 */ lw $t1, ($s1)
/* 03C3A0 7F007870 01305021 */ addu $t2, $t1, $s0
/* 03C3A4 7F007874 0FC0E921 */ jal set_last_obj_pos_data
/* 03C3A4 7F007874 0FC0E921 */ jal propFree
/* 03C3A8 7F007878 8D440000 */ lw $a0, ($t2)
/* 03C3AC 7F00787C 8E2B0000 */ lw $t3, ($s1)
/* 03C3B0 7F007880 01706021 */ addu $t4, $t3, $s0
@@ -136,11 +98,11 @@ glabel cleanupExplosions
/* 03C3F8 7F0078C8 00000000 */ nop
/* 03C3FC 7F0078CC 8E380000 */ lw $t8, ($s1)
/* 03C400 7F0078D0 0310C821 */ addu $t9, $t8, $s0
/* 03C404 7F0078D4 0FC0E905 */ jal unset_stateflag_0x04_for_posdata
/* 03C404 7F0078D4 0FC0E905 */ jal propHide
/* 03C408 7F0078D8 8F240000 */ lw $a0, ($t9)
/* 03C40C 7F0078DC 8E280000 */ lw $t0, ($s1)
/* 03C410 7F0078E0 01104821 */ addu $t1, $t0, $s0
/* 03C414 7F0078E4 0FC0E921 */ jal set_last_obj_pos_data
/* 03C414 7F0078E4 0FC0E921 */ jal propFree
/* 03C418 7F0078E8 8D240000 */ lw $a0, ($t1)
/* 03C41C 7F0078EC 8E2A0000 */ lw $t2, ($s1)
/* 03C420 7F0078F0 01505821 */ addu $t3, $t2, $s0
+11 -11
View File
@@ -65,22 +65,22 @@ void currentPlayerToggle5BC() {
pPlayer->field_5BC = !pPlayer->field_5BC;
}
u32 get_random_value();
u32 randomGetNext();
#define U32_MAX 4294967295
void currentPlayerUpdateIdleHeadRoll() {
f32 mult = 1.0f / U32_MAX;
pPlayer->standlook[pPlayer->standcnt][0] = ((f32)get_random_value() * mult - 0.5f) * 0.02f;
pPlayer->standlook[pPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
pPlayer->standlook[pPlayer->standcnt][2] = 1;
pPlayer->standup[pPlayer->standcnt][0] = ((f32)get_random_value() * mult - 0.5f) * 0.02f;
pPlayer->standup[pPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
pPlayer->standup[pPlayer->standcnt][1] = 1;
if (pPlayer->standcnt) {
pPlayer->standlook[pPlayer->standcnt][1] = (f32)get_random_value() * mult * 0.01f;
pPlayer->standup[pPlayer->standcnt][2] = (f32)get_random_value() * mult * -0.01f;
pPlayer->standlook[pPlayer->standcnt][1] = (f32)randomGetNext() * mult * 0.01f;
pPlayer->standup[pPlayer->standcnt][2] = (f32)randomGetNext() * mult * -0.01f;
} else {
pPlayer->standlook[pPlayer->standcnt][1] = (f32)get_random_value() * mult * -0.01f;
pPlayer->standup[pPlayer->standcnt][2] = (f32)get_random_value() * mult * 0.01f;
pPlayer->standlook[pPlayer->standcnt][1] = (f32)randomGetNext() * mult * -0.01f;
pPlayer->standup[pPlayer->standcnt][2] = (f32)randomGetNext() * mult * 0.01f;
}
pPlayer->standcnt = 1 - pPlayer->standcnt;
@@ -1967,7 +1967,7 @@ glabel sub_GAME_7F08F6B0
.L7F08F6E0:
/* 0C4210 7F08F6E0 AFA40020 */ sw $a0, 0x20($sp)
/* 0C4214 7F08F6E4 AFA70024 */ sw $a3, 0x24($sp)
/* 0C4218 7F08F6E8 0C002914 */ jal get_random_value
/* 0C4218 7F08F6E8 0C002914 */ jal randomGetNext
/* 0C421C 7F08F6EC AFA9001C */ sw $t1, 0x1c($sp)
/* 0C4220 7F08F6F0 8FA9001C */ lw $t1, 0x1c($sp)
/* 0C4224 7F08F6F4 8FA70024 */ lw $a3, 0x24($sp)
@@ -2154,7 +2154,7 @@ glabel sub_GAME_7F08F908
/* 0C4468 7F08F938 8C4F0004 */ lw $t7, 4($v0)
.L7F08F93C:
/* 0C446C 7F08F93C AFA40028 */ sw $a0, 0x28($sp)
/* 0C4470 7F08F940 0C002914 */ jal get_random_value
/* 0C4470 7F08F940 0C002914 */ jal randomGetNext
/* 0C4474 7F08F944 AFA90024 */ sw $t1, 0x24($sp)
/* 0C4478 7F08F948 8FA90024 */ lw $t1, 0x24($sp)
/* 0C447C 7F08F94C 8FAC0028 */ lw $t4, 0x28($sp)
@@ -2477,7 +2477,7 @@ glabel sub_GAME_7F08FD1C
/* 0C4888 7F08FD58 8C4F0010 */ lw $t7, 0x10($v0)
/* 0C488C 7F08FD5C AFA300F0 */ sw $v1, 0xf0($sp)
.L7F08FD60:
/* 0C4890 7F08FD60 0C002914 */ jal get_random_value
/* 0C4890 7F08FD60 0C002914 */ jal randomGetNext
/* 0C4894 7F08FD64 AFA800F4 */ sw $t0, 0xf4($sp)
/* 0C4898 7F08FD68 8FA300F0 */ lw $v1, 0xf0($sp)
/* 0C489C 7F08FD6C 8FA800F4 */ lw $t0, 0xf4($sp)
@@ -2489,7 +2489,7 @@ glabel sub_GAME_7F08FD1C
/* 0C48B4 7F08FD84 0007000D */ break 7
.L7F08FD88:
/* 0C48B8 7F08FD88 03284821 */ addu $t1, $t9, $t0
/* 0C48BC 7F08FD8C 0C002914 */ jal get_random_value
/* 0C48BC 7F08FD8C 0C002914 */ jal randomGetNext
/* 0C48C0 7F08FD90 AFA900E8 */ sw $t1, 0xe8($sp)
/* 0C48C4 7F08FD94 8FA300F0 */ lw $v1, 0xf0($sp)
/* 0C48C8 7F08FD98 8FA800F4 */ lw $t0, 0xf4($sp)
+26 -8
View File
@@ -13,19 +13,37 @@ f32 flt_CODE_bss_80079E88;
//Gfx MipMap2C_Something_Setup[]={};
//D:8003FCC0
u64 MipMap2C_Something_Setup[] = {
0xF580080000018060,0xF580080001018060,0xF200200200000000,0xF200200201000000,
0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF,
0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000,
0xB800000000000000
0xF580080000018060, //gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0, 0, 0, G_TX_WRAP, 6, 0, G_TX_WRAP, 4, 0),
0xF580080001018060, //gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0, 1, 0, G_TX_WRAP, 6, 0, G_TX_WRAP, 4, 0),
0xF200200200000000, //gsDPSetTileSize(0, 2, 2, 0, 0),
0xF200200201000000, //gsDPSetTileSize(1, 2, 2, 0, 0),
0xFA00000FFFFFFFFF, //gsDPSetPrimColor(0, 15, 255, 255, 255, 255),
0xBA00110200000000, //gsDPSetTextureDetail(G_TD_CLAMP),
0xBA000C0200002000, //gsDPSetTextureFilter(G_TF_BILERP),
0xFC272C041F1093FF, //gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
0xB900031D0C192078, //gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2),
0xBA00100100000000, //gsDPSetTextureLOD(G_TL_TILE),
0xBA00140200100000, //gsDPSetCycleType(G_CYC_2CYCLE),
0xB700000000002000, //gsDPSetGeometryMode(G_CULL_BACK ),
0xB800000000000000 //gsSPEndDisplayList()
};
//Gfx MipMap2C_Something2_Setup[]={};
//D:8003FD28
u64 MipMap2C_Something2_Setup[] = {
0xF548040000014050,0xF548040001014050,0xF200200200000000,0xF200200201000000,
0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF,
0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000,
0xB800000000000000
0xF548040000014050, //gsDPSetTile(G_IM_FMT_CI, G_IM_SIZ_8b, 2, 0, 0, 0, G_TX_WRAP, 5, 0, G_TX_WRAP, 2, 0),
0xF548040001014050, //gsDPSetTile(G_IM_FMT_CI, G_IM_SIZ_8b, 2, 0, 1, 0, G_TX_WRAP, 5, 0, G_TX_WRAP, 2, 0),
0xF200200200000000, //gsDPSetTileSize(0, 2, 2, 0, 0),
0xF200200201000000, //gsDPSetTileSize(1, 2, 2, 0, 0),
0xFA00000FFFFFFFFF, //gsDPSetPrimColor(0, 15, 255, 255, 255, 255),
0xBA00110200000000, //gsDPSetTextureDetail(G_TD_CLAMP),
0xBA000C0200002000, //gsDPSetTextureFilter(G_TF_BILERP),
0xFC272C041F1093FF, //gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
0xB900031D0C192078, //gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2),
0xBA00100100000000, //gsDPSetTextureLOD(G_TL_TILE),
0xBA00140200100000, //gsDPSetCycleType(G_CYC_2CYCLE),
0xB700000000002000, //gsDPSetGeometryMode(G_CULL_BACK ),
0xB800000000000000 //gsSPEndDisplayList(),
};
//End Dl means this gfx list cannot go any further. perhaps below is a vtx array?
+822 -7
View File
@@ -1191,7 +1191,7 @@ glabel sub_GAME_7F094488
/* 0C9044 7F094514 9207000A */ lbu $a3, 0xa($s0)
/* 0C9048 7F094518 92060009 */ lbu $a2, 9($s0)
/* 0C904C 7F09451C 92050008 */ lbu $a1, 8($s0)
/* 0C9050 7F094520 0C0011B4 */ jal set_setfillcolor
/* 0C9050 7F094520 0C0011B4 */ jal viSetFillColor
/* 0C9054 7F094524 8FA406B0 */ lw $a0, 0x6b0($sp)
/* 0C9058 7F094528 244B0008 */ addiu $t3, $v0, 8
/* 0C905C 7F09452C AFAB06B0 */ sw $t3, 0x6b0($sp)
@@ -1300,7 +1300,7 @@ glabel sub_GAME_7F094488
/* 0C91F4 7F0946C4 92050008 */ lbu $a1, 8($s0)
.L7F0946C8:
/* 0C91F8 7F0946C8 92060009 */ lbu $a2, 9($s0)
/* 0C91FC 7F0946CC 0C0011B4 */ jal set_setfillcolor
/* 0C91FC 7F0946CC 0C0011B4 */ jal viSetFillColor
/* 0C9200 7F0946D0 9207000A */ lbu $a3, 0xa($s0)
/* 0C9204 7F0946D4 44806000 */ mtc1 $zero, $f12
/* 0C9208 7F0946D8 27B106A4 */ addiu $s1, $sp, 0x6a4
@@ -7570,7 +7570,7 @@ void init_player_data_ptrs_construct_viewports(int playercount)
players[2] = NULL;
players[3] = NULL;
random_byte = get_random_value() & 0xff;
random_byte = randomGetNext() & 0xff;
if (playercount < 1) {
initBONDdataforPlayer(0);
set_cur_player(0);
@@ -7600,7 +7600,7 @@ glabel init_player_data_ptrs_construct_viewports
/* 0CEED8 7F09A3A8 AC400000 */ sw $zero, ($v0)
/* 0CEEDC 7F09A3AC AC400004 */ sw $zero, 4($v0)
/* 0CEEE0 7F09A3B0 AC400008 */ sw $zero, 8($v0)
/* 0CEEE4 7F09A3B4 0C002914 */ jal get_random_value
/* 0CEEE4 7F09A3B4 0C002914 */ jal randomGetNext
/* 0CEEE8 7F09A3B8 AC40000C */ sw $zero, 0xc($v0)
/* 0CEEEC 7F09A3BC 304E00FF */ andi $t6, $v0, 0xff
/* 0CEEF0 7F09A3C0 3C018008 */ lui $at, %hi(random_byte)
@@ -9681,12 +9681,827 @@ glabel initBONDdataforPlayer
)
#endif
#ifdef VERSION_EU
GLOBAL_ASM(
.late_rodata
glabel D_80057610
.word 0xc3652ee0 /*-229.18311*/
glabel D_80057614
.word 0x411ffffe /*9.9999981*/
glabel D_80057618
.word 0x3f6e147b /*0.93000001*/
glabel D_8005761C
.word 0x4164924b /*14.285716*/
glabel D_80057620
.word 0x3f666666 /*0.89999998*/
glabel D_80057624
.word 0xc0490fdb /*-3.1415927*/
glabel D_80057628
.word 0x3faaaaab /*1.3333334*/
.text
glabel initBONDdataforPlayer
/* 0CEFEC 7F09A4BC 27BDFC30 */ addiu $sp, $sp, -0x3d0
/* 0CEFF0 7F09A4C0 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC)
/* 0CEFF4 7F09A4C4 25EFFDA0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x260
/* 0CEFF8 7F09A4C8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0CEFFC 7F09A4CC AFA403D0 */ sw $a0, 0x3d0($sp)
/* 0CF000 7F09A4D0 25EB03A8 */ addiu $t3, $t7, 0x3a8
/* 0CF004 7F09A4D4 27AE0024 */ addiu $t6, $sp, 0x24
.L7F09A4D8:
/* 0CF008 7F09A4D8 8DE10000 */ lw $at, ($t7)
/* 0CF00C 7F09A4DC 25EF000C */ addiu $t7, $t7, 0xc
/* 0CF010 7F09A4E0 25CE000C */ addiu $t6, $t6, 0xc
/* 0CF014 7F09A4E4 ADC1FFF4 */ sw $at, -0xc($t6)
/* 0CF018 7F09A4E8 8DE1FFF8 */ lw $at, -8($t7)
/* 0CF01C 7F09A4EC ADC1FFF8 */ sw $at, -8($t6)
/* 0CF020 7F09A4F0 8DE1FFFC */ lw $at, -4($t7)
/* 0CF024 7F09A4F4 15EBFFF8 */ bne $t7, $t3, .L7F09A4D8
/* 0CF028 7F09A4F8 ADC1FFFC */ sw $at, -4($t6)
/* 0CF02C 7F09A4FC 24042A80 */ li $a0, 10880
/* 0CF030 7F09A500 0C0025C8 */ jal mempAllocBytesInBank
/* 0CF034 7F09A504 24050004 */ li $a1, 4
/* 0CF038 7F09A508 8FAC03D0 */ lw $t4, 0x3d0($sp)
/* 0CF03C 7F09A50C 3C198008 */ lui $t9, %hi(players)
/* 0CF040 7F09A510 27399EE0 */ addiu $t9, %lo(players) # addiu $t9, $t9, -0x6120
/* 0CF044 7F09A514 000C6880 */ sll $t5, $t4, 2
/* 0CF048 7F09A518 01B91821 */ addu $v1, $t5, $t9
/* 0CF04C 7F09A51C AC620000 */ sw $v0, ($v1)
/* 0CF050 7F09A520 AC400000 */ sw $zero, ($v0)
/* 0CF054 7F09A524 44800000 */ mtc1 $zero, $f0
/* 0CF058 7F09A528 8C780000 */ lw $t8, ($v1)
/* 0CF05C 7F09A52C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0CF060 7F09A530 44811000 */ mtc1 $at, $f2
/* 0CF064 7F09A534 E7000004 */ swc1 $f0, 4($t8)
/* 0CF068 7F09A538 8C6B0000 */ lw $t3, ($v1)
/* 0CF06C 7F09A53C 24040002 */ li $a0, 2
/* 0CF070 7F09A540 24080001 */ li $t0, 1
/* 0CF074 7F09A544 E5600008 */ swc1 $f0, 8($t3)
/* 0CF078 7F09A548 8C6F0000 */ lw $t7, ($v1)
/* 0CF07C 7F09A54C 2409FFFF */ li $t1, -1
/* 0CF080 7F09A550 3C01C080 */ li $at, 0xC0800000 # -4.000000
/* 0CF084 7F09A554 E5E0000C */ swc1 $f0, 0xc($t7)
/* 0CF088 7F09A558 8C6E0000 */ lw $t6, ($v1)
/* 0CF08C 7F09A55C 44812000 */ mtc1 $at, $f4
/* 0CF090 7F09A560 3C018005 */ lui $at, %hi(D_80057610)
/* 0CF094 7F09A564 E5C00010 */ swc1 $f0, 0x10($t6)
/* 0CF098 7F09A568 8C6C0000 */ lw $t4, ($v1)
/* 0CF09C 7F09A56C 240200FF */ li $v0, 255
/* 0CF0A0 7F09A570 27AA0024 */ addiu $t2, $sp, 0x24
/* 0CF0A4 7F09A574 E5800014 */ swc1 $f0, 0x14($t4)
/* 0CF0A8 7F09A578 8C6D0000 */ lw $t5, ($v1)
/* 0CF0AC 7F09A57C E5A20018 */ swc1 $f2, 0x18($t5)
/* 0CF0B0 7F09A580 8C790000 */ lw $t9, ($v1)
/* 0CF0B4 7F09A584 E720001C */ swc1 $f0, 0x1c($t9)
/* 0CF0B8 7F09A588 8C780000 */ lw $t8, ($v1)
/* 0CF0BC 7F09A58C E7020020 */ swc1 $f2, 0x20($t8)
/* 0CF0C0 7F09A590 8C6B0000 */ lw $t3, ($v1)
/* 0CF0C4 7F09A594 E5600024 */ swc1 $f0, 0x24($t3)
/* 0CF0C8 7F09A598 8C6F0000 */ lw $t7, ($v1)
/* 0CF0CC 7F09A59C E5E00028 */ swc1 $f0, 0x28($t7)
/* 0CF0D0 7F09A5A0 8C6E0000 */ lw $t6, ($v1)
/* 0CF0D4 7F09A5A4 E5C0002C */ swc1 $f0, 0x2c($t6)
/* 0CF0D8 7F09A5A8 8C6C0000 */ lw $t4, ($v1)
/* 0CF0DC 7F09A5AC E5800030 */ swc1 $f0, 0x30($t4)
/* 0CF0E0 7F09A5B0 8C6D0000 */ lw $t5, ($v1)
/* 0CF0E4 7F09A5B4 ADA00034 */ sw $zero, 0x34($t5)
/* 0CF0E8 7F09A5B8 8C790000 */ lw $t9, ($v1)
/* 0CF0EC 7F09A5BC E7200038 */ swc1 $f0, 0x38($t9)
/* 0CF0F0 7F09A5C0 8C780000 */ lw $t8, ($v1)
/* 0CF0F4 7F09A5C4 E700003C */ swc1 $f0, 0x3c($t8)
/* 0CF0F8 7F09A5C8 8C6B0000 */ lw $t3, ($v1)
/* 0CF0FC 7F09A5CC E5600040 */ swc1 $f0, 0x40($t3)
/* 0CF100 7F09A5D0 8C6F0000 */ lw $t7, ($v1)
/* 0CF104 7F09A5D4 E5E00044 */ swc1 $f0, 0x44($t7)
/* 0CF108 7F09A5D8 8C6E0000 */ lw $t6, ($v1)
/* 0CF10C 7F09A5DC E5C00048 */ swc1 $f0, 0x48($t6)
/* 0CF110 7F09A5E0 8C6C0000 */ lw $t4, ($v1)
/* 0CF114 7F09A5E4 E580004C */ swc1 $f0, 0x4c($t4)
/* 0CF118 7F09A5E8 8C6D0000 */ lw $t5, ($v1)
/* 0CF11C 7F09A5EC E5A00050 */ swc1 $f0, 0x50($t5)
/* 0CF120 7F09A5F0 8C790000 */ lw $t9, ($v1)
/* 0CF124 7F09A5F4 E7200054 */ swc1 $f0, 0x54($t9)
/* 0CF128 7F09A5F8 8C780000 */ lw $t8, ($v1)
/* 0CF12C 7F09A5FC E7000058 */ swc1 $f0, 0x58($t8)
/* 0CF130 7F09A600 8C6B0000 */ lw $t3, ($v1)
/* 0CF134 7F09A604 E560006C */ swc1 $f0, 0x6c($t3)
/* 0CF138 7F09A608 8C6F0000 */ lw $t7, ($v1)
/* 0CF13C 7F09A60C E5E00070 */ swc1 $f0, 0x70($t7)
/* 0CF140 7F09A610 8C6E0000 */ lw $t6, ($v1)
/* 0CF144 7F09A614 E5C00074 */ swc1 $f0, 0x74($t6)
/* 0CF148 7F09A618 8C6C0000 */ lw $t4, ($v1)
/* 0CF14C 7F09A61C E5800078 */ swc1 $f0, 0x78($t4)
/* 0CF150 7F09A620 8C6D0000 */ lw $t5, ($v1)
/* 0CF154 7F09A624 E5A0007C */ swc1 $f0, 0x7c($t5)
/* 0CF158 7F09A628 8C790000 */ lw $t9, ($v1)
/* 0CF15C 7F09A62C E7200080 */ swc1 $f0, 0x80($t9)
/* 0CF160 7F09A630 8C780000 */ lw $t8, ($v1)
/* 0CF164 7F09A634 E7000084 */ swc1 $f0, 0x84($t8)
/* 0CF168 7F09A638 8C6B0000 */ lw $t3, ($v1)
/* 0CF16C 7F09A63C E5600088 */ swc1 $f0, 0x88($t3)
/* 0CF170 7F09A640 8C6F0000 */ lw $t7, ($v1)
/* 0CF174 7F09A644 ADE0008C */ sw $zero, 0x8c($t7)
/* 0CF178 7F09A648 8C6E0000 */ lw $t6, ($v1)
/* 0CF17C 7F09A64C E5C00090 */ swc1 $f0, 0x90($t6)
/* 0CF180 7F09A650 8C6C0000 */ lw $t4, ($v1)
/* 0CF184 7F09A654 AD800094 */ sw $zero, 0x94($t4)
/* 0CF188 7F09A658 8C6D0000 */ lw $t5, ($v1)
/* 0CF18C 7F09A65C E5A00098 */ swc1 $f0, 0x98($t5)
/* 0CF190 7F09A660 8C790000 */ lw $t9, ($v1)
/* 0CF194 7F09A664 E7201274 */ swc1 $f0, 0x1274($t9)
/* 0CF198 7F09A668 8C780000 */ lw $t8, ($v1)
/* 0CF19C 7F09A66C E7001278 */ swc1 $f0, 0x1278($t8)
/* 0CF1A0 7F09A670 8C6B0000 */ lw $t3, ($v1)
/* 0CF1A4 7F09A674 E560127C */ swc1 $f0, 0x127c($t3)
/* 0CF1A8 7F09A678 8C6F0000 */ lw $t7, ($v1)
/* 0CF1AC 7F09A67C ADE4009C */ sw $a0, 0x9c($t7)
/* 0CF1B0 7F09A680 8C6E0000 */ lw $t6, ($v1)
/* 0CF1B4 7F09A684 ADC429FC */ sw $a0, 0x29fc($t6)
/* 0CF1B8 7F09A688 8C6C0000 */ lw $t4, ($v1)
/* 0CF1BC 7F09A68C E58000A0 */ swc1 $f0, 0xa0($t4)
/* 0CF1C0 7F09A690 8C6D0000 */ lw $t5, ($v1)
/* 0CF1C4 7F09A694 E5A000A4 */ swc1 $f0, 0xa4($t5)
/* 0CF1C8 7F09A698 8C790000 */ lw $t9, ($v1)
/* 0CF1CC 7F09A69C AF2000A8 */ sw $zero, 0xa8($t9)
/* 0CF1D0 7F09A6A0 8C780000 */ lw $t8, ($v1)
/* 0CF1D4 7F09A6A4 AF0800AC */ sw $t0, 0xac($t8)
/* 0CF1D8 7F09A6A8 8C6B0000 */ lw $t3, ($v1)
/* 0CF1DC 7F09A6AC AD6000D0 */ sw $zero, 0xd0($t3)
/* 0CF1E0 7F09A6B0 8C6F0000 */ lw $t7, ($v1)
/* 0CF1E4 7F09A6B4 ADE000D4 */ sw $zero, 0xd4($t7)
/* 0CF1E8 7F09A6B8 8C6E0000 */ lw $t6, ($v1)
/* 0CF1EC 7F09A6BC ADC000D8 */ sw $zero, 0xd8($t6)
/* 0CF1F0 7F09A6C0 8C6C0000 */ lw $t4, ($v1)
/* 0CF1F4 7F09A6C4 E58200DC */ swc1 $f2, 0xdc($t4)
/* 0CF1F8 7F09A6C8 8C6D0000 */ lw $t5, ($v1)
/* 0CF1FC 7F09A6CC E5A000E0 */ swc1 $f0, 0xe0($t5)
/* 0CF200 7F09A6D0 8C790000 */ lw $t9, ($v1)
/* 0CF204 7F09A6D4 E72200E4 */ swc1 $f2, 0xe4($t9)
/* 0CF208 7F09A6D8 8C780000 */ lw $t8, ($v1)
/* 0CF20C 7F09A6DC E70000E8 */ swc1 $f0, 0xe8($t8)
/* 0CF210 7F09A6E0 8C6B0000 */ lw $t3, ($v1)
/* 0CF214 7F09A6E4 E56200EC */ swc1 $f2, 0xec($t3)
/* 0CF218 7F09A6E8 8C6F0000 */ lw $t7, ($v1)
/* 0CF21C 7F09A6EC E5E000F0 */ swc1 $f0, 0xf0($t7)
/* 0CF220 7F09A6F0 8C6E0000 */ lw $t6, ($v1)
/* 0CF224 7F09A6F4 ADC900F4 */ sw $t1, 0xf4($t6)
/* 0CF228 7F09A6F8 8C6C0000 */ lw $t4, ($v1)
/* 0CF22C 7F09A6FC AD8900F8 */ sw $t1, 0xf8($t4)
/* 0CF230 7F09A700 8C6D0000 */ lw $t5, ($v1)
/* 0CF234 7F09A704 ADA00104 */ sw $zero, 0x104($t5)
/* 0CF238 7F09A708 8C790000 */ lw $t9, ($v1)
/* 0CF23C 7F09A70C AF200108 */ sw $zero, 0x108($t9)
/* 0CF240 7F09A710 8C780000 */ lw $t8, ($v1)
/* 0CF244 7F09A714 AF00010C */ sw $zero, 0x10c($t8)
/* 0CF248 7F09A718 8C6B0000 */ lw $t3, ($v1)
/* 0CF24C 7F09A71C AD600110 */ sw $zero, 0x110($t3)
/* 0CF250 7F09A720 8C6F0000 */ lw $t7, ($v1)
/* 0CF254 7F09A724 ADE80114 */ sw $t0, 0x114($t7)
/* 0CF258 7F09A728 8C6E0000 */ lw $t6, ($v1)
/* 0CF25C 7F09A72C ADC80118 */ sw $t0, 0x118($t6)
/* 0CF260 7F09A730 8C6C0000 */ lw $t4, ($v1)
/* 0CF264 7F09A734 AD80011C */ sw $zero, 0x11c($t4)
/* 0CF268 7F09A738 8C6D0000 */ lw $t5, ($v1)
/* 0CF26C 7F09A73C ADA80120 */ sw $t0, 0x120($t5)
/* 0CF270 7F09A740 8C790000 */ lw $t9, ($v1)
/* 0CF274 7F09A744 AF200124 */ sw $zero, 0x124($t9)
/* 0CF278 7F09A748 8C780000 */ lw $t8, ($v1)
/* 0CF27C 7F09A74C AF080128 */ sw $t0, 0x128($t8)
/* 0CF280 7F09A750 8C6B0000 */ lw $t3, ($v1)
/* 0CF284 7F09A754 E560012C */ swc1 $f0, 0x12c($t3)
/* 0CF288 7F09A758 8C6F0000 */ lw $t7, ($v1)
/* 0CF28C 7F09A75C ADE00130 */ sw $zero, 0x130($t7)
/* 0CF290 7F09A760 8C6E0000 */ lw $t6, ($v1)
/* 0CF294 7F09A764 ADC90134 */ sw $t1, 0x134($t6)
/* 0CF298 7F09A768 8C6C0000 */ lw $t4, ($v1)
/* 0CF29C 7F09A76C AD880138 */ sw $t0, 0x138($t4)
/* 0CF2A0 7F09A770 8C6D0000 */ lw $t5, ($v1)
/* 0CF2A4 7F09A774 E5A0013C */ swc1 $f0, 0x13c($t5)
/* 0CF2A8 7F09A778 8C790000 */ lw $t9, ($v1)
/* 0CF2AC 7F09A77C AF200140 */ sw $zero, 0x140($t9)
/* 0CF2B0 7F09A780 8C780000 */ lw $t8, ($v1)
/* 0CF2B4 7F09A784 AF090144 */ sw $t1, 0x144($t8)
/* 0CF2B8 7F09A788 8C6B0000 */ lw $t3, ($v1)
/* 0CF2BC 7F09A78C E5600148 */ swc1 $f0, 0x148($t3)
/* 0CF2C0 7F09A790 8C6F0000 */ lw $t7, ($v1)
/* 0CF2C4 7F09A794 E5E0014C */ swc1 $f0, 0x14c($t7)
/* 0CF2C8 7F09A798 8C6E0000 */ lw $t6, ($v1)
/* 0CF2CC 7F09A79C E5C20150 */ swc1 $f2, 0x150($t6)
/* 0CF2D0 7F09A7A0 8C6C0000 */ lw $t4, ($v1)
/* 0CF2D4 7F09A7A4 E5800154 */ swc1 $f0, 0x154($t4)
/* 0CF2D8 7F09A7A8 8C6D0000 */ lw $t5, ($v1)
/* 0CF2DC 7F09A7AC E5A40158 */ swc1 $f4, 0x158($t5)
/* 0CF2E0 7F09A7B0 8C790000 */ lw $t9, ($v1)
/* 0CF2E4 7F09A7B4 C4267610 */ lwc1 $f6, %lo(D_80057610)($at)
/* 0CF2E8 7F09A7B8 3C01BF80 */ li $at, 0xBF800000 # -1.000000
/* 0CF2EC 7F09A7BC 44816000 */ mtc1 $at, $f12
/* 0CF2F0 7F09A7C0 E726015C */ swc1 $f6, 0x15c($t9)
/* 0CF2F4 7F09A7C4 8C780000 */ lw $t8, ($v1)
/* 0CF2F8 7F09A7C8 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000
/* 0CF2FC 7F09A7CC 44814000 */ mtc1 $at, $f8
/* 0CF300 7F09A7D0 E7000160 */ swc1 $f0, 0x160($t8)
/* 0CF304 7F09A7D4 8C6B0000 */ lw $t3, ($v1)
/* 0CF308 7F09A7D8 3C018005 */ lui $at, %hi(D_80057614)
/* 0CF30C 7F09A7DC E5620164 */ swc1 $f2, 0x164($t3)
/* 0CF310 7F09A7E0 8C6F0000 */ lw $t7, ($v1)
/* 0CF314 7F09A7E4 E5E00168 */ swc1 $f0, 0x168($t7)
/* 0CF318 7F09A7E8 8C6E0000 */ lw $t6, ($v1)
/* 0CF31C 7F09A7EC E5C0016C */ swc1 $f0, 0x16c($t6)
/* 0CF320 7F09A7F0 8C6C0000 */ lw $t4, ($v1)
/* 0CF324 7F09A7F4 E5800170 */ swc1 $f0, 0x170($t4)
/* 0CF328 7F09A7F8 8C6D0000 */ lw $t5, ($v1)
/* 0CF32C 7F09A7FC E5A00174 */ swc1 $f0, 0x174($t5)
/* 0CF330 7F09A800 8C790000 */ lw $t9, ($v1)
/* 0CF334 7F09A804 E7202A4C */ swc1 $f0, 0x2a4c($t9)
/* 0CF338 7F09A808 8C780000 */ lw $t8, ($v1)
/* 0CF33C 7F09A80C E7020178 */ swc1 $f2, 0x178($t8)
/* 0CF340 7F09A810 8C6B0000 */ lw $t3, ($v1)
/* 0CF344 7F09A814 E5600180 */ swc1 $f0, 0x180($t3)
/* 0CF348 7F09A818 8C6F0000 */ lw $t7, ($v1)
/* 0CF34C 7F09A81C E5E00184 */ swc1 $f0, 0x184($t7)
/* 0CF350 7F09A820 8C6E0000 */ lw $t6, ($v1)
/* 0CF354 7F09A824 E5C00188 */ swc1 $f0, 0x188($t6)
/* 0CF358 7F09A828 8C6C0000 */ lw $t4, ($v1)
/* 0CF35C 7F09A82C E58C018C */ swc1 $f12, 0x18c($t4)
/* 0CF360 7F09A830 8C6D0000 */ lw $t5, ($v1)
/* 0CF364 7F09A834 E5AC0190 */ swc1 $f12, 0x190($t5)
/* 0CF368 7F09A838 8C790000 */ lw $t9, ($v1)
/* 0CF36C 7F09A83C E7200194 */ swc1 $f0, 0x194($t9)
/* 0CF370 7F09A840 8C780000 */ lw $t8, ($v1)
/* 0CF374 7F09A844 E7000198 */ swc1 $f0, 0x198($t8)
/* 0CF378 7F09A848 8C6B0000 */ lw $t3, ($v1)
/* 0CF37C 7F09A84C E560019C */ swc1 $f0, 0x19c($t3)
/* 0CF380 7F09A850 8C6F0000 */ lw $t7, ($v1)
/* 0CF384 7F09A854 ADE001A0 */ sw $zero, 0x1a0($t7)
/* 0CF388 7F09A858 8C6E0000 */ lw $t6, ($v1)
/* 0CF38C 7F09A85C ADC001C0 */ sw $zero, 0x1c0($t6)
/* 0CF390 7F09A860 8C6C0000 */ lw $t4, ($v1)
/* 0CF394 7F09A864 AD8001C4 */ sw $zero, 0x1c4($t4)
/* 0CF398 7F09A868 8C6D0000 */ lw $t5, ($v1)
/* 0CF39C 7F09A86C ADA001C8 */ sw $zero, 0x1c8($t5)
/* 0CF3A0 7F09A870 8C790000 */ lw $t9, ($v1)
/* 0CF3A4 7F09A874 AF2801CC */ sw $t0, 0x1cc($t9)
/* 0CF3A8 7F09A878 8C780000 */ lw $t8, ($v1)
/* 0CF3AC 7F09A87C AF0001D0 */ sw $zero, 0x1d0($t8)
/* 0CF3B0 7F09A880 8C6B0000 */ lw $t3, ($v1)
/* 0CF3B4 7F09A884 E56001D4 */ swc1 $f0, 0x1d4($t3)
/* 0CF3B8 7F09A888 8C6F0000 */ lw $t7, ($v1)
/* 0CF3BC 7F09A88C E5E001D8 */ swc1 $f0, 0x1d8($t7)
/* 0CF3C0 7F09A890 8C6E0000 */ lw $t6, ($v1)
/* 0CF3C4 7F09A894 E5C801DC */ swc1 $f8, 0x1dc($t6)
/* 0CF3C8 7F09A898 8C6C0000 */ lw $t4, ($v1)
/* 0CF3CC 7F09A89C E58001E0 */ swc1 $f0, 0x1e0($t4)
/* 0CF3D0 7F09A8A0 8C6D0000 */ lw $t5, ($v1)
/* 0CF3D4 7F09A8A4 E5A201E4 */ swc1 $f2, 0x1e4($t5)
/* 0CF3D8 7F09A8A8 8C790000 */ lw $t9, ($v1)
/* 0CF3DC 7F09A8AC E72001E8 */ swc1 $f0, 0x1e8($t9)
/* 0CF3E0 7F09A8B0 8C780000 */ lw $t8, ($v1)
/* 0CF3E4 7F09A8B4 E70001EC */ swc1 $f0, 0x1ec($t8)
/* 0CF3E8 7F09A8B8 8C6B0000 */ lw $t3, ($v1)
/* 0CF3EC 7F09A8BC E56001F0 */ swc1 $f0, 0x1f0($t3)
/* 0CF3F0 7F09A8C0 8C6F0000 */ lw $t7, ($v1)
/* 0CF3F4 7F09A8C4 E5E201F4 */ swc1 $f2, 0x1f4($t7)
/* 0CF3F8 7F09A8C8 8C6E0000 */ lw $t6, ($v1)
/* 0CF3FC 7F09A8CC ADC00200 */ sw $zero, 0x200($t6)
/* 0CF400 7F09A8D0 8C6C0000 */ lw $t4, ($v1)
/* 0CF404 7F09A8D4 E5800204 */ swc1 $f0, 0x204($t4)
/* 0CF408 7F09A8D8 8C6D0000 */ lw $t5, ($v1)
/* 0CF40C 7F09A8DC E5A00208 */ swc1 $f0, 0x208($t5)
/* 0CF410 7F09A8E0 8C790000 */ lw $t9, ($v1)
/* 0CF414 7F09A8E4 E720020C */ swc1 $f0, 0x20c($t9)
/* 0CF418 7F09A8E8 8C780000 */ lw $t8, ($v1)
/* 0CF41C 7F09A8EC E7000210 */ swc1 $f0, 0x210($t8)
/* 0CF420 7F09A8F0 8C6B0000 */ lw $t3, ($v1)
/* 0CF424 7F09A8F4 E5600214 */ swc1 $f0, 0x214($t3)
/* 0CF428 7F09A8F8 8C6F0000 */ lw $t7, ($v1)
/* 0CF42C 7F09A8FC ADE00218 */ sw $zero, 0x218($t7)
/* 0CF430 7F09A900 8C6E0000 */ lw $t6, ($v1)
/* 0CF434 7F09A904 ADC8021C */ sw $t0, 0x21c($t6)
/* 0CF438 7F09A908 8C6C0000 */ lw $t4, ($v1)
/* 0CF43C 7F09A90C AD800220 */ sw $zero, 0x220($t4)
/* 0CF440 7F09A910 8C6D0000 */ lw $t5, ($v1)
/* 0CF444 7F09A914 E5A00224 */ swc1 $f0, 0x224($t5)
/* 0CF448 7F09A918 8C790000 */ lw $t9, ($v1)
/* 0CF44C 7F09A91C A72003B4 */ sh $zero, 0x3b4($t9)
/* 0CF450 7F09A920 8C780000 */ lw $t8, ($v1)
/* 0CF454 7F09A924 A70003B6 */ sh $zero, 0x3b6($t8)
/* 0CF458 7F09A928 8C6B0000 */ lw $t3, ($v1)
/* 0CF45C 7F09A92C E56003B8 */ swc1 $f0, 0x3b8($t3)
/* 0CF460 7F09A930 8C6F0000 */ lw $t7, ($v1)
/* 0CF464 7F09A934 E5E003BC */ swc1 $f0, 0x3bc($t7)
/* 0CF468 7F09A938 8C6E0000 */ lw $t6, ($v1)
/* 0CF46C 7F09A93C C42A7614 */ lwc1 $f10, %lo(D_80057614)($at)
/* 0CF470 7F09A940 E5CA03C0 */ swc1 $f10, 0x3c0($t6)
/* 0CF474 7F09A944 8C6C0000 */ lw $t4, ($v1)
/* 0CF478 7F09A948 E58003C4 */ swc1 $f0, 0x3c4($t4)
/* 0CF47C 7F09A94C 8C6D0000 */ lw $t5, ($v1)
/* 0CF480 7F09A950 E5A003C8 */ swc1 $f0, 0x3c8($t5)
/* 0CF484 7F09A954 8C790000 */ lw $t9, ($v1)
/* 0CF488 7F09A958 E72203CC */ swc1 $f2, 0x3cc($t9)
/* 0CF48C 7F09A95C 8C780000 */ lw $t8, ($v1)
/* 0CF490 7F09A960 AF0203D0 */ sw $v0, 0x3d0($t8)
/* 0CF494 7F09A964 8C6B0000 */ lw $t3, ($v1)
/* 0CF498 7F09A968 AD6203D4 */ sw $v0, 0x3d4($t3)
/* 0CF49C 7F09A96C 8C6F0000 */ lw $t7, ($v1)
/* 0CF4A0 7F09A970 3C018005 */ lui $at, %hi(D_80057618)
/* 0CF4A4 7F09A974 24070020 */ li $a3, 32
/* 0CF4A8 7F09A978 ADE203D8 */ sw $v0, 0x3d8($t7)
/* 0CF4AC 7F09A97C 8C6E0000 */ lw $t6, ($v1)
/* 0CF4B0 7F09A980 240601FF */ li $a2, 511
/* 0CF4B4 7F09A984 240501E0 */ li $a1, 480
/* 0CF4B8 7F09A988 E5C003DC */ swc1 $f0, 0x3dc($t6)
/* 0CF4BC 7F09A98C 8C6C0000 */ lw $t4, ($v1)
/* 0CF4C0 7F09A990 E58C03E0 */ swc1 $f12, 0x3e0($t4)
/* 0CF4C4 7F09A994 8C6D0000 */ lw $t5, ($v1)
/* 0CF4C8 7F09A998 E5AC03E4 */ swc1 $f12, 0x3e4($t5)
/* 0CF4CC 7F09A99C 8C790000 */ lw $t9, ($v1)
/* 0CF4D0 7F09A9A0 AF2203E8 */ sw $v0, 0x3e8($t9)
/* 0CF4D4 7F09A9A4 8C780000 */ lw $t8, ($v1)
/* 0CF4D8 7F09A9A8 AF0203EC */ sw $v0, 0x3ec($t8)
/* 0CF4DC 7F09A9AC 8C6B0000 */ lw $t3, ($v1)
/* 0CF4E0 7F09A9B0 AD6203F0 */ sw $v0, 0x3f0($t3)
/* 0CF4E4 7F09A9B4 8C6F0000 */ lw $t7, ($v1)
/* 0CF4E8 7F09A9B8 ADE203F4 */ sw $v0, 0x3f4($t7)
/* 0CF4EC 7F09A9BC 8C6E0000 */ lw $t6, ($v1)
/* 0CF4F0 7F09A9C0 ADC203F8 */ sw $v0, 0x3f8($t6)
/* 0CF4F4 7F09A9C4 8C6C0000 */ lw $t4, ($v1)
/* 0CF4F8 7F09A9C8 AD8203FC */ sw $v0, 0x3fc($t4)
/* 0CF4FC 7F09A9CC 8C6D0000 */ lw $t5, ($v1)
/* 0CF500 7F09A9D0 00001025 */ move $v0, $zero
/* 0CF504 7F09A9D4 E5A00400 */ swc1 $f0, 0x400($t5)
/* 0CF508 7F09A9D8 8C790000 */ lw $t9, ($v1)
/* 0CF50C 7F09A9DC E7200404 */ swc1 $f0, 0x404($t9)
/* 0CF510 7F09A9E0 8C780000 */ lw $t8, ($v1)
/* 0CF514 7F09A9E4 AF00041C */ sw $zero, 0x41c($t8)
/* 0CF518 7F09A9E8 8C6B0000 */ lw $t3, ($v1)
/* 0CF51C 7F09A9EC AD680420 */ sw $t0, 0x420($t3)
/* 0CF520 7F09A9F0 8C6F0000 */ lw $t7, ($v1)
/* 0CF524 7F09A9F4 ADE00424 */ sw $zero, 0x424($t7)
/* 0CF528 7F09A9F8 8C6E0000 */ lw $t6, ($v1)
/* 0CF52C 7F09A9FC ADC00428 */ sw $zero, 0x428($t6)
/* 0CF530 7F09AA00 8C6C0000 */ lw $t4, ($v1)
/* 0CF534 7F09AA04 AD84042C */ sw $a0, 0x42c($t4)
/* 0CF538 7F09AA08 8C6D0000 */ lw $t5, ($v1)
/* 0CF53C 7F09AA0C 24040280 */ li $a0, 640
/* 0CF540 7F09AA10 ADA00430 */ sw $zero, 0x430($t5)
/* 0CF544 7F09AA14 8C790000 */ lw $t9, ($v1)
/* 0CF548 7F09AA18 AF2804DC */ sw $t0, 0x4dc($t9)
/* 0CF54C 7F09AA1C 8C780000 */ lw $t8, ($v1)
/* 0CF550 7F09AA20 AF0804E0 */ sw $t0, 0x4e0($t8)
/* 0CF554 7F09AA24 8C6B0000 */ lw $t3, ($v1)
/* 0CF558 7F09AA28 AD6804E4 */ sw $t0, 0x4e4($t3)
/* 0CF55C 7F09AA2C 8C6F0000 */ lw $t7, ($v1)
/* 0CF560 7F09AA30 ADE004E8 */ sw $zero, 0x4e8($t7)
/* 0CF564 7F09AA34 8C6E0000 */ lw $t6, ($v1)
/* 0CF568 7F09AA38 C4327618 */ lwc1 $f18, %lo(D_80057618)($at)
/* 0CF56C 7F09AA3C 3C018005 */ lui $at, %hi(D_8005761C)
/* 0CF570 7F09AA40 E5D204EC */ swc1 $f18, 0x4ec($t6)
/* 0CF574 7F09AA44 8C6C0000 */ lw $t4, ($v1)
/* 0CF578 7F09AA48 AD8004F0 */ sw $zero, 0x4f0($t4)
/* 0CF57C 7F09AA4C 8C6D0000 */ lw $t5, ($v1)
/* 0CF580 7F09AA50 E5A204F4 */ swc1 $f2, 0x4f4($t5)
/* 0CF584 7F09AA54 8C790000 */ lw $t9, ($v1)
/* 0CF588 7F09AA58 E72204F8 */ swc1 $f2, 0x4f8($t9)
/* 0CF58C 7F09AA5C 8C780000 */ lw $t8, ($v1)
/* 0CF590 7F09AA60 E70004FC */ swc1 $f0, 0x4fc($t8)
/* 0CF594 7F09AA64 8C6B0000 */ lw $t3, ($v1)
/* 0CF598 7F09AA68 E5600500 */ swc1 $f0, 0x500($t3)
/* 0CF59C 7F09AA6C 8C6F0000 */ lw $t7, ($v1)
/* 0CF5A0 7F09AA70 E5E00504 */ swc1 $f0, 0x504($t7)
/* 0CF5A4 7F09AA74 8C6E0000 */ lw $t6, ($v1)
/* 0CF5A8 7F09AA78 C42C761C */ lwc1 $f12, %lo(D_8005761C)($at)
/* 0CF5AC 7F09AA7C E5C00508 */ swc1 $f0, 0x508($t6)
/* 0CF5B0 7F09AA80 8C6C0000 */ lw $t4, ($v1)
/* 0CF5B4 7F09AA84 E580050C */ swc1 $f0, 0x50c($t4)
/* 0CF5B8 7F09AA88 8C6D0000 */ lw $t5, ($v1)
/* 0CF5BC 7F09AA8C E5A20510 */ swc1 $f2, 0x510($t5)
/* 0CF5C0 7F09AA90 8C790000 */ lw $t9, ($v1)
/* 0CF5C4 7F09AA94 E7200514 */ swc1 $f0, 0x514($t9)
/* 0CF5C8 7F09AA98 8C780000 */ lw $t8, ($v1)
/* 0CF5CC 7F09AA9C E7020518 */ swc1 $f2, 0x518($t8)
/* 0CF5D0 7F09AAA0 8C6B0000 */ lw $t3, ($v1)
/* 0CF5D4 7F09AAA4 E560051C */ swc1 $f0, 0x51c($t3)
/* 0CF5D8 7F09AAA8 8C6F0000 */ lw $t7, ($v1)
/* 0CF5DC 7F09AAAC E5E00520 */ swc1 $f0, 0x520($t7)
/* 0CF5E0 7F09AAB0 8C6E0000 */ lw $t6, ($v1)
/* 0CF5E4 7F09AAB4 E5C00524 */ swc1 $f0, 0x524($t6)
/* 0CF5E8 7F09AAB8 8C6C0000 */ lw $t4, ($v1)
/* 0CF5EC 7F09AABC E5800528 */ swc1 $f0, 0x528($t4)
/* 0CF5F0 7F09AAC0 8C6D0000 */ lw $t5, ($v1)
/* 0CF5F4 7F09AAC4 E5A0052C */ swc1 $f0, 0x52c($t5)
/* 0CF5F8 7F09AAC8 8C790000 */ lw $t9, ($v1)
/* 0CF5FC 7F09AACC E7200530 */ swc1 $f0, 0x530($t9)
/* 0CF600 7F09AAD0 8C780000 */ lw $t8, ($v1)
/* 0CF604 7F09AAD4 E70C0534 */ swc1 $f12, 0x534($t8)
/* 0CF608 7F09AAD8 8C6B0000 */ lw $t3, ($v1)
/* 0CF60C 7F09AADC E5600538 */ swc1 $f0, 0x538($t3)
/* 0CF610 7F09AAE0 8C6F0000 */ lw $t7, ($v1)
/* 0CF614 7F09AAE4 E5EC053C */ swc1 $f12, 0x53c($t7)
/* 0CF618 7F09AAE8 8C6E0000 */ lw $t6, ($v1)
/* 0CF61C 7F09AAEC E5C00540 */ swc1 $f0, 0x540($t6)
/* 0CF620 7F09AAF0 8C6C0000 */ lw $t4, ($v1)
/* 0CF624 7F09AAF4 E5800544 */ swc1 $f0, 0x544($t4)
/* 0CF628 7F09AAF8 8C6D0000 */ lw $t5, ($v1)
/* 0CF62C 7F09AAFC E5A00548 */ swc1 $f0, 0x548($t5)
/* 0CF630 7F09AB00 8C790000 */ lw $t9, ($v1)
/* 0CF634 7F09AB04 E720054C */ swc1 $f0, 0x54c($t9)
/* 0CF638 7F09AB08 8C780000 */ lw $t8, ($v1)
/* 0CF63C 7F09AB0C E7000550 */ swc1 $f0, 0x550($t8)
/* 0CF640 7F09AB10 8C6B0000 */ lw $t3, ($v1)
/* 0CF644 7F09AB14 E5600554 */ swc1 $f0, 0x554($t3)
/* 0CF648 7F09AB18 8C6F0000 */ lw $t7, ($v1)
/* 0CF64C 7F09AB1C E5E00558 */ swc1 $f0, 0x558($t7)
/* 0CF650 7F09AB20 8C6E0000 */ lw $t6, ($v1)
/* 0CF654 7F09AB24 E5C0055C */ swc1 $f0, 0x55c($t6)
/* 0CF658 7F09AB28 8C6C0000 */ lw $t4, ($v1)
/* 0CF65C 7F09AB2C E5800560 */ swc1 $f0, 0x560($t4)
/* 0CF660 7F09AB30 8C6D0000 */ lw $t5, ($v1)
/* 0CF664 7F09AB34 E5A00564 */ swc1 $f0, 0x564($t5)
/* 0CF668 7F09AB38 8C790000 */ lw $t9, ($v1)
/* 0CF66C 7F09AB3C E7200568 */ swc1 $f0, 0x568($t9)
/* 0CF670 7F09AB40 8C780000 */ lw $t8, ($v1)
/* 0CF674 7F09AB44 E702056C */ swc1 $f2, 0x56c($t8)
/* 0CF678 7F09AB48 8C6B0000 */ lw $t3, ($v1)
/* 0CF67C 7F09AB4C E5600570 */ swc1 $f0, 0x570($t3)
/* 0CF680 7F09AB50 8C6F0000 */ lw $t7, ($v1)
/* 0CF684 7F09AB54 E5E00574 */ swc1 $f0, 0x574($t7)
/* 0CF688 7F09AB58 8C6E0000 */ lw $t6, ($v1)
/* 0CF68C 7F09AB5C E5C20578 */ swc1 $f2, 0x578($t6)
/* 0CF690 7F09AB60 8C6C0000 */ lw $t4, ($v1)
/* 0CF694 7F09AB64 E580057C */ swc1 $f0, 0x57c($t4)
/* 0CF698 7F09AB68 8C6D0000 */ lw $t5, ($v1)
/* 0CF69C 7F09AB6C E5A20580 */ swc1 $f2, 0x580($t5)
/* 0CF6A0 7F09AB70 8C790000 */ lw $t9, ($v1)
/* 0CF6A4 7F09AB74 E7200584 */ swc1 $f0, 0x584($t9)
/* 0CF6A8 7F09AB78 8C780000 */ lw $t8, ($v1)
/* 0CF6AC 7F09AB7C E7000588 */ swc1 $f0, 0x588($t8)
/* 0CF6B0 7F09AB80 8C6B0000 */ lw $t3, ($v1)
/* 0CF6B4 7F09AB84 E562058C */ swc1 $f2, 0x58c($t3)
/* 0CF6B8 7F09AB88 8C6F0000 */ lw $t7, ($v1)
/* 0CF6BC 7F09AB8C E5E00590 */ swc1 $f0, 0x590($t7)
/* 0CF6C0 7F09AB90 8C6E0000 */ lw $t6, ($v1)
/* 0CF6C4 7F09AB94 ADC00594 */ sw $zero, 0x594($t6)
.L7F09AB98:
/* 0CF6C8 7F09AB98 8C6C0000 */ lw $t4, ($v1)
/* 0CF6CC 7F09AB9C 01826821 */ addu $t5, $t4, $v0
/* 0CF6D0 7F09ABA0 A5A407D0 */ sh $a0, 0x7d0($t5)
/* 0CF6D4 7F09ABA4 8C790000 */ lw $t9, ($v1)
/* 0CF6D8 7F09ABA8 0322C021 */ addu $t8, $t9, $v0
/* 0CF6DC 7F09ABAC A70507D2 */ sh $a1, 0x7d2($t8)
/* 0CF6E0 7F09ABB0 8C6B0000 */ lw $t3, ($v1)
/* 0CF6E4 7F09ABB4 01627821 */ addu $t7, $t3, $v0
/* 0CF6E8 7F09ABB8 A5E607D4 */ sh $a2, 0x7d4($t7)
/* 0CF6EC 7F09ABBC 8C6E0000 */ lw $t6, ($v1)
/* 0CF6F0 7F09ABC0 01C26021 */ addu $t4, $t6, $v0
/* 0CF6F4 7F09ABC4 A58007D6 */ sh $zero, 0x7d6($t4)
/* 0CF6F8 7F09ABC8 8C6D0000 */ lw $t5, ($v1)
/* 0CF6FC 7F09ABCC 01A2C821 */ addu $t9, $t5, $v0
/* 0CF700 7F09ABD0 A72407D8 */ sh $a0, 0x7d8($t9)
/* 0CF704 7F09ABD4 8C780000 */ lw $t8, ($v1)
/* 0CF708 7F09ABD8 03025821 */ addu $t3, $t8, $v0
/* 0CF70C 7F09ABDC A56507DA */ sh $a1, 0x7da($t3)
/* 0CF710 7F09ABE0 8C6F0000 */ lw $t7, ($v1)
/* 0CF714 7F09ABE4 01E27021 */ addu $t6, $t7, $v0
/* 0CF718 7F09ABE8 A5C607DC */ sh $a2, 0x7dc($t6)
/* 0CF71C 7F09ABEC 8C6C0000 */ lw $t4, ($v1)
/* 0CF720 7F09ABF0 01826821 */ addu $t5, $t4, $v0
/* 0CF724 7F09ABF4 24420010 */ addiu $v0, $v0, 0x10
/* 0CF728 7F09ABF8 1447FFE7 */ bne $v0, $a3, .L7F09AB98
/* 0CF72C 7F09ABFC A5A007DE */ sh $zero, 0x7de($t5)
/* 0CF730 7F09AC00 8C790000 */ lw $t9, ($v1)
/* 0CF734 7F09AC04 24020064 */ li $v0, 100
/* 0CF738 7F09AC08 A72207F0 */ sh $v0, 0x7f0($t9)
/* 0CF73C 7F09AC0C 8C780000 */ lw $t8, ($v1)
/* 0CF740 7F09AC10 A70207F2 */ sh $v0, 0x7f2($t8)
/* 0CF744 7F09AC14 8C6B0000 */ lw $t3, ($v1)
/* 0CF748 7F09AC18 A56007F4 */ sh $zero, 0x7f4($t3)
/* 0CF74C 7F09AC1C 8C6F0000 */ lw $t7, ($v1)
/* 0CF750 7F09AC20 A5E007F6 */ sh $zero, 0x7f6($t7)
/* 0CF754 7F09AC24 8C6E0000 */ lw $t6, ($v1)
/* 0CF758 7F09AC28 ADC007F8 */ sw $zero, 0x7f8($t6)
/* 0CF75C 7F09AC2C 8C6C0000 */ lw $t4, ($v1)
/* 0CF760 7F09AC30 AD8007FC */ sw $zero, 0x7fc($t4)
/* 0CF764 7F09AC34 8C6D0000 */ lw $t5, ($v1)
/* 0CF768 7F09AC38 ADA00800 */ sw $zero, 0x800($t5)
/* 0CF76C 7F09AC3C 8C790000 */ lw $t9, ($v1)
/* 0CF770 7F09AC40 AF200804 */ sw $zero, 0x804($t9)
/* 0CF774 7F09AC44 8C780000 */ lw $t8, ($v1)
/* 0CF778 7F09AC48 AF092A44 */ sw $t1, 0x2a44($t8)
/* 0CF77C 7F09AC4C 8C6B0000 */ lw $t3, ($v1)
/* 0CF780 7F09AC50 0140C025 */ move $t8, $t2
/* 0CF784 7F09AC54 AD692A48 */ sw $t1, 0x2a48($t3)
/* 0CF788 7F09AC58 8C6F0000 */ lw $t7, ($v1)
/* 0CF78C 7F09AC5C 254B03A8 */ addiu $t3, $t2, 0x3a8
/* 0CF790 7F09AC60 ADE02A50 */ sw $zero, 0x2a50($t7)
/* 0CF794 7F09AC64 8C6E0000 */ lw $t6, ($v1)
/* 0CF798 7F09AC68 01407825 */ move $t7, $t2
/* 0CF79C 7F09AC6C ADC02A54 */ sw $zero, 0x2a54($t6)
/* 0CF7A0 7F09AC70 8C6C0000 */ lw $t4, ($v1)
/* 0CF7A4 7F09AC74 AD800808 */ sw $zero, 0x808($t4)
/* 0CF7A8 7F09AC78 8C6D0000 */ lw $t5, ($v1)
/* 0CF7AC 7F09AC7C ADA0080C */ sw $zero, 0x80c($t5)
/* 0CF7B0 7F09AC80 8C790000 */ lw $t9, ($v1)
.L7F09AC84:
/* 0CF7B4 7F09AC84 8DE10000 */ lw $at, ($t7)
/* 0CF7B8 7F09AC88 25EF000C */ addiu $t7, $t7, 0xc
/* 0CF7BC 7F09AC8C 2739000C */ addiu $t9, $t9, 0xc
/* 0CF7C0 7F09AC90 AF210864 */ sw $at, 0x864($t9)
/* 0CF7C4 7F09AC94 8DE1FFF8 */ lw $at, -8($t7)
/* 0CF7C8 7F09AC98 AF210868 */ sw $at, 0x868($t9)
/* 0CF7CC 7F09AC9C 8DE1FFFC */ lw $at, -4($t7)
/* 0CF7D0 7F09ACA0 15EBFFF8 */ bne $t7, $t3, .L7F09AC84
/* 0CF7D4 7F09ACA4 AF21086C */ sw $at, 0x86c($t9)
/* 0CF7D8 7F09ACA8 8C6E0000 */ lw $t6, ($v1)
/* 0CF7DC 7F09ACAC 254D03A8 */ addiu $t5, $t2, 0x3a8
.L7F09ACB0:
/* 0CF7E0 7F09ACB0 8F010000 */ lw $at, ($t8)
/* 0CF7E4 7F09ACB4 2718000C */ addiu $t8, $t8, 0xc
/* 0CF7E8 7F09ACB8 25CE000C */ addiu $t6, $t6, 0xc
/* 0CF7EC 7F09ACBC ADC10C0C */ sw $at, 0xc0c($t6)
/* 0CF7F0 7F09ACC0 8F01FFF8 */ lw $at, -8($t8)
/* 0CF7F4 7F09ACC4 ADC10C10 */ sw $at, 0xc10($t6)
/* 0CF7F8 7F09ACC8 8F01FFFC */ lw $at, -4($t8)
/* 0CF7FC 7F09ACCC 170DFFF8 */ bne $t8, $t5, .L7F09ACB0
/* 0CF800 7F09ACD0 ADC10C14 */ sw $at, 0xc14($t6)
/* 0CF804 7F09ACD4 8C6B0000 */ lw $t3, ($v1)
/* 0CF808 7F09ACD8 3C018005 */ lui $at, %hi(D_80057620)
/* 0CF80C 7F09ACDC 240200FF */ li $v0, 255
/* 0CF810 7F09ACE0 E5620FC0 */ swc1 $f2, 0xfc0($t3)
/* 0CF814 7F09ACE4 8C6F0000 */ lw $t7, ($v1)
/* 0CF818 7F09ACE8 24040007 */ li $a0, 7
/* 0CF81C 7F09ACEC E5E20FC4 */ swc1 $f2, 0xfc4($t7)
/* 0CF820 7F09ACF0 8C790000 */ lw $t9, ($v1)
/* 0CF824 7F09ACF4 AF200FC8 */ sw $zero, 0xfc8($t9)
/* 0CF828 7F09ACF8 8C6C0000 */ lw $t4, ($v1)
/* 0CF82C 7F09ACFC AD800FCC */ sw $zero, 0xfcc($t4)
/* 0CF830 7F09AD00 8C6D0000 */ lw $t5, ($v1)
/* 0CF834 7F09AD04 C42C7620 */ lwc1 $f12, %lo(D_80057620)($at)
/* 0CF838 7F09AD08 3C014270 */ li $at, 0x42700000 # 60.000000
/* 0CF83C 7F09AD0C ADA00FD0 */ sw $zero, 0xfd0($t5)
/* 0CF840 7F09AD10 8C780000 */ lw $t8, ($v1)
/* 0CF844 7F09AD14 AF000FD4 */ sw $zero, 0xfd4($t8)
/* 0CF848 7F09AD18 8C6E0000 */ lw $t6, ($v1)
/* 0CF84C 7F09AD1C ADC00FD8 */ sw $zero, 0xfd8($t6)
/* 0CF850 7F09AD20 8C6B0000 */ lw $t3, ($v1)
/* 0CF854 7F09AD24 A1620FDC */ sb $v0, 0xfdc($t3)
/* 0CF858 7F09AD28 8C6F0000 */ lw $t7, ($v1)
/* 0CF85C 7F09AD2C A1E20FDD */ sb $v0, 0xfdd($t7)
/* 0CF860 7F09AD30 8C790000 */ lw $t9, ($v1)
/* 0CF864 7F09AD34 A3220FDE */ sb $v0, 0xfde($t9)
/* 0CF868 7F09AD38 8C6C0000 */ lw $t4, ($v1)
/* 0CF86C 7F09AD3C 3C028008 */ lui $v0, %hi(random_byte)
/* 0CF870 7F09AD40 2442A0BC */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5f44
/* 0CF874 7F09AD44 A1800FDF */ sb $zero, 0xfdf($t4)
/* 0CF878 7F09AD48 8C6D0000 */ lw $t5, ($v1)
/* 0CF87C 7F09AD4C ADA80FE0 */ sw $t0, 0xfe0($t5)
/* 0CF880 7F09AD50 8C780000 */ lw $t8, ($v1)
/* 0CF884 7F09AD54 AF000FE4 */ sw $zero, 0xfe4($t8)
/* 0CF888 7F09AD58 8C6E0000 */ lw $t6, ($v1)
/* 0CF88C 7F09AD5C E5C00FE8 */ swc1 $f0, 0xfe8($t6)
/* 0CF890 7F09AD60 8C6B0000 */ lw $t3, ($v1)
/* 0CF894 7F09AD64 E5600FEC */ swc1 $f0, 0xfec($t3)
/* 0CF898 7F09AD68 8C6F0000 */ lw $t7, ($v1)
/* 0CF89C 7F09AD6C E5E00FF0 */ swc1 $f0, 0xff0($t7)
/* 0CF8A0 7F09AD70 8C790000 */ lw $t9, ($v1)
/* 0CF8A4 7F09AD74 E7200FF4 */ swc1 $f0, 0xff4($t9)
/* 0CF8A8 7F09AD78 8C6C0000 */ lw $t4, ($v1)
/* 0CF8AC 7F09AD7C E58C0FF8 */ swc1 $f12, 0xff8($t4)
/* 0CF8B0 7F09AD80 8C6D0000 */ lw $t5, ($v1)
/* 0CF8B4 7F09AD84 E5A00FFC */ swc1 $f0, 0xffc($t5)
/* 0CF8B8 7F09AD88 8C780000 */ lw $t8, ($v1)
/* 0CF8BC 7F09AD8C E7001000 */ swc1 $f0, 0x1000($t8)
/* 0CF8C0 7F09AD90 8C6E0000 */ lw $t6, ($v1)
/* 0CF8C4 7F09AD94 E5C01004 */ swc1 $f0, 0x1004($t6)
/* 0CF8C8 7F09AD98 8C6B0000 */ lw $t3, ($v1)
/* 0CF8CC 7F09AD9C E5601008 */ swc1 $f0, 0x1008($t3)
/* 0CF8D0 7F09ADA0 8C6F0000 */ lw $t7, ($v1)
/* 0CF8D4 7F09ADA4 E5EC100C */ swc1 $f12, 0x100c($t7)
/* 0CF8D8 7F09ADA8 44816000 */ mtc1 $at, $f12
/* 0CF8DC 7F09ADAC 8C790000 */ lw $t9, ($v1)
/* 0CF8E0 7F09ADB0 3C0143A0 */ li $at, 0x43A00000 # 320.000000
/* 0CF8E4 7F09ADB4 44817000 */ mtc1 $at, $f14
/* 0CF8E8 7F09ADB8 3C014370 */ li $at, 0x43700000 # 240.000000
/* 0CF8EC 7F09ADBC 44818000 */ mtc1 $at, $f16
/* 0CF8F0 7F09ADC0 E7201010 */ swc1 $f0, 0x1010($t9)
/* 0CF8F4 7F09ADC4 3C018005 */ lui $at, %hi(D_80057624)
/* 0CF8F8 7F09ADC8 C4247624 */ lwc1 $f4, %lo(D_80057624)($at)
/* 0CF8FC 7F09ADCC 8C6C0000 */ lw $t4, ($v1)
/* 0CF900 7F09ADD0 3C014120 */ li $at, 0x41200000 # 10.000000
/* 0CF904 7F09ADD4 44813000 */ mtc1 $at, $f6
/* 0CF908 7F09ADD8 E5841014 */ swc1 $f4, 0x1014($t4)
/* 0CF90C 7F09ADDC 8C6D0000 */ lw $t5, ($v1)
/* 0CF910 7F09ADE0 3C014238 */ li $at, 0x42380000 # 46.000000
/* 0CF914 7F09ADE4 44814000 */ mtc1 $at, $f8
/* 0CF918 7F09ADE8 E5A01018 */ swc1 $f0, 0x1018($t5)
/* 0CF91C 7F09ADEC 8C780000 */ lw $t8, ($v1)
/* 0CF920 7F09ADF0 3C014320 */ li $at, 0x43200000 # 160.000000
/* 0CF924 7F09ADF4 44815000 */ mtc1 $at, $f10
/* 0CF928 7F09ADF8 AF00105C */ sw $zero, 0x105c($t8)
/* 0CF92C 7F09ADFC 8C6E0000 */ lw $t6, ($v1)
/* 0CF930 7F09AE00 3C0142F0 */ li $at, 0x42F00000 # 120.000000
/* 0CF934 7F09AE04 44819000 */ mtc1 $at, $f18
/* 0CF938 7F09AE08 ADC01060 */ sw $zero, 0x1060($t6)
/* 0CF93C 7F09AE0C 8C6B0000 */ lw $t3, ($v1)
/* 0CF940 7F09AE10 3C018005 */ lui $at, %hi(D_80057628)
/* 0CF944 7F09AE14 AD601064 */ sw $zero, 0x1064($t3)
/* 0CF948 7F09AE18 8C6F0000 */ lw $t7, ($v1)
/* 0CF94C 7F09AE1C E5E0106C */ swc1 $f0, 0x106c($t7)
/* 0CF950 7F09AE20 8C790000 */ lw $t9, ($v1)
/* 0CF954 7F09AE24 E7201070 */ swc1 $f0, 0x1070($t9)
/* 0CF958 7F09AE28 8C6C0000 */ lw $t4, ($v1)
/* 0CF95C 7F09AE2C E5801074 */ swc1 $f0, 0x1074($t4)
/* 0CF960 7F09AE30 8C6D0000 */ lw $t5, ($v1)
/* 0CF964 7F09AE34 ADA01078 */ sw $zero, 0x1078($t5)
/* 0CF968 7F09AE38 8C780000 */ lw $t8, ($v1)
/* 0CF96C 7F09AE3C E700107C */ swc1 $f0, 0x107c($t8)
/* 0CF970 7F09AE40 8C6E0000 */ lw $t6, ($v1)
/* 0CF974 7F09AE44 E5C01080 */ swc1 $f0, 0x1080($t6)
/* 0CF978 7F09AE48 8C6B0000 */ lw $t3, ($v1)
/* 0CF97C 7F09AE4C E56C1084 */ swc1 $f12, 0x1084($t3)
/* 0CF980 7F09AE50 8C6F0000 */ lw $t7, ($v1)
/* 0CF984 7F09AE54 E5EC1088 */ swc1 $f12, 0x1088($t7)
/* 0CF988 7F09AE58 8C790000 */ lw $t9, ($v1)
/* 0CF98C 7F09AE5C AF29108C */ sw $t1, 0x108c($t9)
/* 0CF990 7F09AE60 8C6C0000 */ lw $t4, ($v1)
/* 0CF994 7F09AE64 E58E1090 */ swc1 $f14, 0x1090($t4)
/* 0CF998 7F09AE68 8C6D0000 */ lw $t5, ($v1)
/* 0CF99C 7F09AE6C E5B01094 */ swc1 $f16, 0x1094($t5)
/* 0CF9A0 7F09AE70 8C780000 */ lw $t8, ($v1)
/* 0CF9A4 7F09AE74 E7001098 */ swc1 $f0, 0x1098($t8)
/* 0CF9A8 7F09AE78 8C6E0000 */ lw $t6, ($v1)
/* 0CF9AC 7F09AE7C E5C0109C */ swc1 $f0, 0x109c($t6)
/* 0CF9B0 7F09AE80 8C6B0000 */ lw $t3, ($v1)
/* 0CF9B4 7F09AE84 E56610A0 */ swc1 $f6, 0x10a0($t3)
/* 0CF9B8 7F09AE88 8C6F0000 */ lw $t7, ($v1)
/* 0CF9BC 7F09AE8C E5E810A4 */ swc1 $f8, 0x10a4($t7)
/* 0CF9C0 7F09AE90 8C790000 */ lw $t9, ($v1)
/* 0CF9C4 7F09AE94 E72210A8 */ swc1 $f2, 0x10a8($t9)
/* 0CF9C8 7F09AE98 8C6C0000 */ lw $t4, ($v1)
/* 0CF9CC 7F09AE9C E58A10AC */ swc1 $f10, 0x10ac($t4)
/* 0CF9D0 7F09AEA0 8C6D0000 */ lw $t5, ($v1)
/* 0CF9D4 7F09AEA4 E5B210B0 */ swc1 $f18, 0x10b0($t5)
/* 0CF9D8 7F09AEA8 8C780000 */ lw $t8, ($v1)
/* 0CF9DC 7F09AEAC E70210B4 */ swc1 $f2, 0x10b4($t8)
/* 0CF9E0 7F09AEB0 8C6E0000 */ lw $t6, ($v1)
/* 0CF9E4 7F09AEB4 E5C210B8 */ swc1 $f2, 0x10b8($t6)
/* 0CF9E8 7F09AEB8 8C6B0000 */ lw $t3, ($v1)
/* 0CF9EC 7F09AEBC E56210BC */ swc1 $f2, 0x10bc($t3)
/* 0CF9F0 7F09AEC0 8C6F0000 */ lw $t7, ($v1)
/* 0CF9F4 7F09AEC4 E5E210C0 */ swc1 $f2, 0x10c0($t7)
/* 0CF9F8 7F09AEC8 8C790000 */ lw $t9, ($v1)
/* 0CF9FC 7F09AECC AF2010C4 */ sw $zero, 0x10c4($t9)
/* 0CFA00 7F09AED0 8C6C0000 */ lw $t4, ($v1)
/* 0CFA04 7F09AED4 AD8010C8 */ sw $zero, 0x10c8($t4)
/* 0CFA08 7F09AED8 8C6D0000 */ lw $t5, ($v1)
/* 0CFA0C 7F09AEDC ADA010CC */ sw $zero, 0x10cc($t5)
/* 0CFA10 7F09AEE0 8C780000 */ lw $t8, ($v1)
/* 0CFA14 7F09AEE4 AF0010D0 */ sw $zero, 0x10d0($t8)
/* 0CFA18 7F09AEE8 8C6E0000 */ lw $t6, ($v1)
/* 0CFA1C 7F09AEEC ADC010D4 */ sw $zero, 0x10d4($t6)
/* 0CFA20 7F09AEF0 8C6B0000 */ lw $t3, ($v1)
/* 0CFA24 7F09AEF4 AD6010D8 */ sw $zero, 0x10d8($t3)
/* 0CFA28 7F09AEF8 8C6F0000 */ lw $t7, ($v1)
/* 0CFA2C 7F09AEFC ADE010DC */ sw $zero, 0x10dc($t7)
/* 0CFA30 7F09AF00 8C790000 */ lw $t9, ($v1)
/* 0CFA34 7F09AF04 AF2010E0 */ sw $zero, 0x10e0($t9)
/* 0CFA38 7F09AF08 8C6C0000 */ lw $t4, ($v1)
/* 0CFA3C 7F09AF0C 3C190001 */ lui $t9, 1
/* 0CFA40 7F09AF10 AD8010E4 */ sw $zero, 0x10e4($t4)
/* 0CFA44 7F09AF14 8C6D0000 */ lw $t5, ($v1)
/* 0CFA48 7F09AF18 ADA010E8 */ sw $zero, 0x10e8($t5)
/* 0CFA4C 7F09AF1C 8C780000 */ lw $t8, ($v1)
/* 0CFA50 7F09AF20 AF0010EC */ sw $zero, 0x10ec($t8)
/* 0CFA54 7F09AF24 8C6E0000 */ lw $t6, ($v1)
/* 0CFA58 7F09AF28 E5C210F0 */ swc1 $f2, 0x10f0($t6)
/* 0CFA5C 7F09AF2C 8C6B0000 */ lw $t3, ($v1)
/* 0CFA60 7F09AF30 E56210F4 */ swc1 $f2, 0x10f4($t3)
/* 0CFA64 7F09AF34 8C6F0000 */ lw $t7, ($v1)
/* 0CFA68 7F09AF38 E5E210F8 */ swc1 $f2, 0x10f8($t7)
/* 0CFA6C 7F09AF3C 8C6C0000 */ lw $t4, ($v1)
/* 0CFA70 7F09AF40 AD9910FC */ sw $t9, 0x10fc($t4)
/* 0CFA74 7F09AF44 8C6D0000 */ lw $t5, ($v1)
/* 0CFA78 7F09AF48 E5A01118 */ swc1 $f0, 0x1118($t5)
/* 0CFA7C 7F09AF4C 8C780000 */ lw $t8, ($v1)
/* 0CFA80 7F09AF50 E700111C */ swc1 $f0, 0x111c($t8)
/* 0CFA84 7F09AF54 8C6E0000 */ lw $t6, ($v1)
/* 0CFA88 7F09AF58 E5CE1120 */ swc1 $f14, 0x1120($t6)
/* 0CFA8C 7F09AF5C 8C6B0000 */ lw $t3, ($v1)
/* 0CFA90 7F09AF60 E5701124 */ swc1 $f16, 0x1124($t3)
/* 0CFA94 7F09AF64 8C6F0000 */ lw $t7, ($v1)
/* 0CFA98 7F09AF68 ADE01128 */ sw $zero, 0x1128($t7)
/* 0CFA9C 7F09AF6C 8C790000 */ lw $t9, ($v1)
/* 0CFAA0 7F09AF70 AF2011B0 */ sw $zero, 0x11b0($t9)
/* 0CFAA4 7F09AF74 8C6C0000 */ lw $t4, ($v1)
/* 0CFAA8 7F09AF78 AD8011B4 */ sw $zero, 0x11b4($t4)
/* 0CFAAC 7F09AF7C 8C6D0000 */ lw $t5, ($v1)
/* 0CFAB0 7F09AF80 ADA011B8 */ sw $zero, 0x11b8($t5)
/* 0CFAB4 7F09AF84 8C780000 */ lw $t8, ($v1)
/* 0CFAB8 7F09AF88 E70011BC */ swc1 $f0, 0x11bc($t8)
/* 0CFABC 7F09AF8C 8C6E0000 */ lw $t6, ($v1)
/* 0CFAC0 7F09AF90 E5C011C0 */ swc1 $f0, 0x11c0($t6)
/* 0CFAC4 7F09AF94 8C6B0000 */ lw $t3, ($v1)
/* 0CFAC8 7F09AF98 E56C11C4 */ swc1 $f12, 0x11c4($t3)
/* 0CFACC 7F09AF9C 8C6F0000 */ lw $t7, ($v1)
/* 0CFAD0 7F09AFA0 E5EC11C8 */ swc1 $f12, 0x11c8($t7)
/* 0CFAD4 7F09AFA4 8C790000 */ lw $t9, ($v1)
/* 0CFAD8 7F09AFA8 E72C11CC */ swc1 $f12, 0x11cc($t9)
/* 0CFADC 7F09AFAC 8C6C0000 */ lw $t4, ($v1)
/* 0CFAE0 7F09AFB0 E58C11D0 */ swc1 $f12, 0x11d0($t4)
/* 0CFAE4 7F09AFB4 8C6D0000 */ lw $t5, ($v1)
/* 0CFAE8 7F09AFB8 C4247628 */ lwc1 $f4, %lo(D_80057628)($at)
/* 0CFAEC 7F09AFBC 3C018003 */ lui $at, %hi(invisible_to_guards_flag)
/* 0CFAF0 7F09AFC0 E5A411D4 */ swc1 $f4, 0x11d4($t5)
/* 0CFAF4 7F09AFC4 8C780000 */ lw $t8, ($v1)
/* 0CFAF8 7F09AFC8 AF0011D8 */ sw $zero, 0x11d8($t8)
/* 0CFAFC 7F09AFCC 8C6E0000 */ lw $t6, ($v1)
/* 0CFB00 7F09AFD0 ADC911DC */ sw $t1, 0x11dc($t6)
/* 0CFB04 7F09AFD4 8C6B0000 */ lw $t3, ($v1)
/* 0CFB08 7F09AFD8 AD6011E0 */ sw $zero, 0x11e0($t3)
/* 0CFB0C 7F09AFDC 8C6F0000 */ lw $t7, ($v1)
/* 0CFB10 7F09AFE0 ADE011E4 */ sw $zero, 0x11e4($t7)
/* 0CFB14 7F09AFE4 8C790000 */ lw $t9, ($v1)
/* 0CFB18 7F09AFE8 AF2011E8 */ sw $zero, 0x11e8($t9)
/* 0CFB1C 7F09AFEC 8C6C0000 */ lw $t4, ($v1)
/* 0CFB20 7F09AFF0 AD8011EC */ sw $zero, 0x11ec($t4)
/* 0CFB24 7F09AFF4 8C6D0000 */ lw $t5, ($v1)
/* 0CFB28 7F09AFF8 ADA011F0 */ sw $zero, 0x11f0($t5)
/* 0CFB2C 7F09AFFC 8C780000 */ lw $t8, ($v1)
/* 0CFB30 7F09B000 AF0011F4 */ sw $zero, 0x11f4($t8)
/* 0CFB34 7F09B004 8C6E0000 */ lw $t6, ($v1)
/* 0CFB38 7F09B008 E5C01280 */ swc1 $f0, 0x1280($t6)
/* 0CFB3C 7F09B00C 8C6B0000 */ lw $t3, ($v1)
/* 0CFB40 7F09B010 AD601284 */ sw $zero, 0x1284($t3)
/* 0CFB44 7F09B014 8C6F0000 */ lw $t7, ($v1)
/* 0CFB48 7F09B018 E5E01288 */ swc1 $f0, 0x1288($t7)
/* 0CFB4C 7F09B01C 8C790000 */ lw $t9, ($v1)
/* 0CFB50 7F09B020 A32012B6 */ sb $zero, 0x12b6($t9)
/* 0CFB54 7F09B024 8C6C0000 */ lw $t4, ($v1)
/* 0CFB58 7F09B028 AD8429B8 */ sw $a0, 0x29b8($t4)
/* 0CFB5C 7F09B02C 8C6D0000 */ lw $t5, ($v1)
/* 0CFB60 7F09B030 E5A229BC */ swc1 $f2, 0x29bc($t5)
/* 0CFB64 7F09B034 8C780000 */ lw $t8, ($v1)
/* 0CFB68 7F09B038 E70029C0 */ swc1 $f0, 0x29c0($t8)
/* 0CFB6C 7F09B03C 8C6E0000 */ lw $t6, ($v1)
/* 0CFB70 7F09B040 ADC029C4 */ sw $zero, 0x29c4($t6)
/* 0CFB74 7F09B044 8C6B0000 */ lw $t3, ($v1)
/* 0CFB78 7F09B048 AD6429D4 */ sw $a0, 0x29d4($t3)
/* 0CFB7C 7F09B04C 8C6F0000 */ lw $t7, ($v1)
/* 0CFB80 7F09B050 ADE029D8 */ sw $zero, 0x29d8($t7)
/* 0CFB84 7F09B054 8C6C0000 */ lw $t4, ($v1)
/* 0CFB88 7F09B058 8C590000 */ lw $t9, ($v0)
/* 0CFB8C 7F09B05C AD9929E0 */ sw $t9, 0x29e0($t4)
/* 0CFB90 7F09B060 8C4D0000 */ lw $t5, ($v0)
/* 0CFB94 7F09B064 8C6E0000 */ lw $t6, ($v1)
/* 0CFB98 7F09B068 25B80001 */ addiu $t8, $t5, 1
/* 0CFB9C 7F09B06C AC580000 */ sw $t8, ($v0)
/* 0CFBA0 7F09B070 ADC929E4 */ sw $t1, 0x29e4($t6)
/* 0CFBA4 7F09B074 8C6B0000 */ lw $t3, ($v1)
/* 0CFBA8 7F09B078 AD6929E8 */ sw $t1, 0x29e8($t3)
/* 0CFBAC 7F09B07C 8C6F0000 */ lw $t7, ($v1)
/* 0CFBB0 7F09B080 ADE929EC */ sw $t1, 0x29ec($t7)
/* 0CFBB4 7F09B084 8C790000 */ lw $t9, ($v1)
/* 0CFBB8 7F09B088 AF2929F0 */ sw $t1, 0x29f0($t9)
/* 0CFBBC 7F09B08C 8C6C0000 */ lw $t4, ($v1)
/* 0CFBC0 7F09B090 AD802A00 */ sw $zero, 0x2a00($t4)
/* 0CFBC4 7F09B094 8C6D0000 */ lw $t5, ($v1)
/* 0CFBC8 7F09B098 ADA02A30 */ sw $zero, 0x2a30($t5)
/* 0CFBCC 7F09B09C 8C780000 */ lw $t8, ($v1)
/* 0CFBD0 7F09B0A0 AF002A34 */ sw $zero, 0x2a34($t8)
/* 0CFBD4 7F09B0A4 8C6E0000 */ lw $t6, ($v1)
/* 0CFBD8 7F09B0A8 ADC82A38 */ sw $t0, 0x2a38($t6)
/* 0CFBDC 7F09B0AC 8C6B0000 */ lw $t3, ($v1)
/* 0CFBE0 7F09B0B0 E5622A3C */ swc1 $f2, 0x2a3c($t3)
/* 0CFBE4 7F09B0B4 8C6F0000 */ lw $t7, ($v1)
/* 0CFBE8 7F09B0B8 E5E22A40 */ swc1 $f2, 0x2a40($t7)
/* 0CFBEC 7F09B0BC 8C790000 */ lw $t9, ($v1)
/* 0CFBF0 7F09B0C0 AF202A58 */ sw $zero, 0x2a58($t9)
/* 0CFBF4 7F09B0C4 8C6C0000 */ lw $t4, ($v1)
/* 0CFBF8 7F09B0C8 AD802A5C */ sw $zero, 0x2a5c($t4)
/* 0CFBFC 7F09B0CC 8C6D0000 */ lw $t5, ($v1)
/* 0CFC00 7F09B0D0 E5A02A60 */ swc1 $f0, 0x2a60($t5)
/* 0CFC04 7F09B0D4 8C780000 */ lw $t8, ($v1)
/* 0CFC08 7F09B0D8 AF002A64 */ sw $zero, 0x2a64($t8)
/* 0CFC0C 7F09B0DC 8C6E0000 */ lw $t6, ($v1)
/* 0CFC10 7F09B0E0 ADC82A68 */ sw $t0, 0x2a68($t6)
/* 0CFC14 7F09B0E4 8C6B0000 */ lw $t3, ($v1)
/* 0CFC18 7F09B0E8 AD602A6C */ sw $zero, 0x2a6c($t3)
/* 0CFC1C 7F09B0EC 8C6F0000 */ lw $t7, ($v1)
/* 0CFC20 7F09B0F0 ADE02A70 */ sw $zero, 0x2a70($t7)
/* 0CFC24 7F09B0F4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0CFC28 7F09B0F8 AC2864C4 */ sw $t0, %lo(invisible_to_guards_flag)($at)
/* 0CFC2C 7F09B0FC 3C018003 */ lui $at, %hi(obj_collision_flag)
/* 0CFC30 7F09B100 AC2864C8 */ sw $t0, %lo(obj_collision_flag)($at)
/* 0CFC34 7F09B104 03E00008 */ jr $ra
/* 0CFC38 7F09B108 27BD03D0 */ addiu $sp, $sp, 0x3d0
)
#endif
#endif
#ifdef NONMATCHING
void set_cur_player(PLAYER_ID playernum)
void set_cur_player(s32 playernum)
{
pPlayer = players[playernum];
pPlayersPerm = player1_playerdata[playernum];
@@ -10180,7 +10995,7 @@ glabel sub_GAME_7F09B41C
/* 0CFF98 7F09B468 24140003 */ li $s4, 3
/* 0CFF9C 7F09B46C 24130004 */ li $s3, 4
.L7F09B470:
/* 0CFFA0 7F09B470 0C002914 */ jal get_random_value
/* 0CFFA0 7F09B470 0C002914 */ jal randomGetNext
/* 0CFFA4 7F09B474 00000000 */ nop
/* 0CFFA8 7F09B478 02707823 */ subu $t7, $s3, $s0
/* 0CFFAC 7F09B47C 004F001B */ divu $zero, $v0, $t7
@@ -10287,7 +11102,7 @@ glabel sub_GAME_7F09B4D8
#ifdef NONMATCHING
int proc_7F09B528(int param_1)
s32 sub_GAME_7F09B528(s32 param_1)
{
if (players[dword_CODE_bss_8007A0C0] != NULL) {
if (param_1 == 0) {
+8
View File
@@ -46,4 +46,12 @@ extern struct player_data player4_player_data;
extern struct player *pPlayer;
extern struct player_data *pPlayersPerm;
void reset_play_data_ptrs(void);
void init_player_data_ptrs_construct_viewports(int playercount);
void sub_GAME_7F09B41C(void);
s32 sub_GAME_7F09B528(s32 param_1);
void set_cur_player(s32 playernum);
s32 getPlayerCount(void);
#endif
+2 -2
View File
@@ -51,7 +51,7 @@ glabel sub_GAME_7F09B600
/* 0D01B8 7F09B688 01CC7021 */ addu $t6, $t6, $t4
/* 0D01BC 7F09B68C AFAE0048 */ sw $t6, 0x48($sp)
/* 0D01C0 7F09B690 AFAF004C */ sw $t7, 0x4c($sp)
/* 0D01C4 7F09B694 0C00292B */ jal lotsa_shifting_randomizer_related
/* 0D01C4 7F09B694 0C00292B */ jal randomGetNextFrom
/* 0D01C8 7F09B698 02402025 */ move $a0, $s2
/* 0D01CC 7F09B69C 26100001 */ addiu $s0, $s0, 1
/* 0D01D0 7F09B6A0 26310007 */ addiu $s1, $s1, 7
@@ -77,7 +77,7 @@ glabel sub_GAME_7F09B600
/* 0D0218 7F09B6E8 018A6021 */ addu $t4, $t4, $t2
/* 0D021C 7F09B6EC AFAC0048 */ sw $t4, 0x48($sp)
/* 0D0220 7F09B6F0 AFAD004C */ sw $t5, 0x4c($sp)
/* 0D0224 7F09B6F4 0C00292B */ jal lotsa_shifting_randomizer_related
/* 0D0224 7F09B6F4 0C00292B */ jal randomGetNextFrom
/* 0D0228 7F09B6F8 02402025 */ move $a0, $s2
/* 0D022C 7F09B6FC 2610FFFF */ addiu $s0, $s0, -1
/* 0D0230 7F09B700 26310003 */ addiu $s1, $s1, 3
-60
View File
@@ -1,60 +0,0 @@
#include "ultra64.h"
// data
//D:80040160
u64 random_val = 0xAB8D9F7781280783;
#ifdef NONMATCHING
void sub_GAME_7F09B740(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F09B740
/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(random_val)
/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(random_val)($a0)
/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(random_val)
/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f
/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f
/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f
/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0
/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc
/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1
/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0
/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0
/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14
/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff
/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2
/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0
/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(random_val)($at)
/* 0D02B0 7F09B780 03E00008 */ jr $ra
/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F09B788(u64 param_1)
{
random_val = param_1 + 1;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F09B788
/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1
/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(random_val)
/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(random_val)($at)
/* 0D02C4 7F09B794 03E00008 */ jr $ra
/* 0D02C8 7F09B798 24040000 */ li $a0, 0
)
#endif
+605 -75
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -2,6 +2,10 @@
#define _UNK_09C250_H_
#include "ultra64.h"
extern struct prop *ptr_smoke_buf;
extern struct prop *ptr_explosion_buf;
extern s32 D_80040170;
extern char dword_CODE_bss_8007A100[];
#endif

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