refresh priv to pub

This commit is contained in:
KholdFuzion
2020-02-19 21:28:20 -06:00
parent 499d6a5b2f
commit 3a796978db
200 changed files with 202305 additions and 198732 deletions
+72 -54
View File
@@ -66,7 +66,7 @@
//=============================================================================
// commands with a vehicle/aircraft prefix can only be executed by vehicle/aircraft
// objects. these types of objects do not use a chr struct. most non-vehicle
// commands will crash if they try to access caller's chr struct
// commands will crash if they try to access caller's chr struct
//=============================================================================
// ai commands with label argument
//=============================================================================
@@ -192,9 +192,9 @@
// command D7 - hud flags
#define HUD_HIDE_ALL 0x00 // hide all
#define HUD_SHOW_TEXT_TOP 0x01 // hide all but top text
#define HUD_SHOW_TEXT_BOTTOM 0x02 // hide all but bottom text
#define HUD_SHOW_HUD_COUNTDOWN 0x04 // hide all but hud countdown
#define HUD_SHOW_TEXT_TOP 0x01 // don't hide top text
#define HUD_SHOW_TEXT_BOTTOM 0x02 // don't hide bottom text
#define HUD_SHOW_HUD_COUNTDOWN 0x04 // don't hide hud countdown
// command 94/95/96/97/98/99 chr->BITFIELD - used for ai list GLIST_FIRE_RAND_ANIM_SUBROUTINE
#define BITFIELD_DONT_POINT_AT_BOND 0x01 // if set, don't point at bond
@@ -259,7 +259,13 @@
#define if_local_timer_seconds_greater_than(seconds, label) \
if_local_timer_greater_than((SECS_TO_TIMER60(seconds)), label)
#define camera_wait_for_loading \
#define camera_transition_from_bond \
bond_hide_weapons \
ai_sleep \
ai_sleep \
ai_sleep
#define camera_transition_to_bond \
ai_sleep \
ai_sleep \
ai_sleep
@@ -326,7 +332,7 @@
// info: used for ai list parser to check when list ends
//=============================================================================
// note: not recommended to execute this command - to finish a list create an
// infinite loop (goto_loop_infinite) or jump to glist end routine when list has
// infinite loop (goto_loop_infinite) or jump to GLIST_END_ROUTINE when list has
// finished tasks
//===========================================================================*/
#define ai_list_end_ID 0x04
@@ -565,7 +571,7 @@
// command id: 16
// info: update guard's aim/fire target, goto label if successful
//=============================================================================
// note: this command only works if guard is currently aiming at a target
// note: this command only works if guard is currently aiming at a target.
// bitfield argument is used to set the target type (pad/bond/chr).
// use TARGET_# flags for bitfield argument
//===========================================================================*/
@@ -582,7 +588,7 @@
// command id: 17
// info: make guard continuously face target, goto label if successful
//=============================================================================
// note: if guard was shot while facing target, guard will snap out of facing state
// note: if guard was shot while facing target, guard will snap out of facing state.
// bitfield argument is used to set the target type (pad/bond/chr).
// use TARGET_# flags for bitfield argument. command can't use TARGET_AIM_ONLY flag
//===========================================================================*/
@@ -705,7 +711,8 @@
// command id: 20
// info: makes guard walk a predefined path within setup
//=============================================================================
// note: usually paired with goto glist 0005/0007
// note: usually paired with goto GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM
// or GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM
//===========================================================================*/
#define guard_start_patrol_ID 0x20
#define guard_start_patrol_LENGTH 0x02
@@ -1605,17 +1612,17 @@
object_tag,
/*=============================================================================
// name: object_detach_from_chr
// name: object_drop_from_chr
// command id: 60
// info: detach tagged object from chr and drop to ground
// info: drop tagged object held/attached to chr
//=============================================================================
// note: item must be attached to a chr. embedded objects will not drop, only
// works with attached objects. props can be damaged on drop
// note: item must be held/attached to a chr. embedded objects will not drop,
// only works with attached objects. props can be damaged on drop
//===========================================================================*/
#define object_detach_from_chr_ID 0x60
#define object_detach_from_chr_LENGTH 0x02
#define object_detach_from_chr(object_tag) \
object_detach_from_chr_ID, \
#define object_drop_from_chr_ID 0x60
#define object_drop_from_chr_LENGTH 0x02
#define object_drop_from_chr(object_tag) \
object_drop_from_chr_ID, \
object_tag,
/*=============================================================================
@@ -2312,7 +2319,7 @@
// name: guard_set_health_total
// command id: 8F
// info: set guard's total health - the higher the value, the more shots needed
// to kill guard.
// to kill guard.
//=============================================================================
// note: sets to chr->maxdamage. default health is 4.0f (0x0028/40 dec for argument).
// argument is converted to float and divided by 10 before setting to maxdamage.
@@ -2353,8 +2360,8 @@
//=============================================================================
// note: sets to chr->speedrating. default speed is 0 - argument is signed.
// negative values will make guard animate slower - this affects firing animations.
// command does not use 007 reaction speed modifier. do not use values above 0x60
// or it may crash
// command does not use 007 reaction speed modifier. do not use values above/below
// 100 or it may crash
//===========================================================================*/
#define guard_set_speed_rating_ID 0x91
#define guard_set_speed_rating_LENGTH 0x02
@@ -2490,9 +2497,11 @@
// command id: 9A
// info: set bits in objective bitfield on
//=============================================================================
// note: can be used to store a mission unique objective flag, which can be set
// note: can be used to store a mission unique objective flag, which can be linked
// to mission objectives. it can also be used to store miscellaneous flags used
// by other ai lists
// by other ai lists. if a mission objective is changed while in third person,
// it will not be updated on the briefing page - all mission objectives status
// are locked while in third person
//===========================================================================*/
#define objective_bitfield_set_on_ID 0x9A
#define objective_bitfield_set_on_LENGTH 0x05
@@ -2505,9 +2514,11 @@
// command id: 9B
// info: set bits in objective bitfield off
//=============================================================================
// note: can be used to store a mission unique objective flag, which can be set
// note: can be used to store a mission unique objective flag, which can be linked
// to mission objectives. it can also be used to store miscellaneous flags used
// by other ai lists
// by other ai lists. if a mission objective is changed while in third person,
// it will not be updated on the briefing page - all mission objectives status
// are locked while in third person
//===========================================================================*/
#define objective_bitfield_set_off_ID 0x9B
#define objective_bitfield_set_off_LENGTH 0x05
@@ -3290,7 +3301,7 @@
// command id: D2
// info: exits the level
//=============================================================================
// note: recommend not to use this command, instead goto glist exit level for
// note: recommend not to use this command, instead goto GLIST_EXIT_LEVEL for
// exit cutscene list. retail game has a glitch with hires mode that needs to
// execute this command in a loop, check cuba's 1000 list
//===========================================================================*/
@@ -3307,8 +3318,8 @@
// note: unused command, never used in retail game. tagged items within inventory
// will become invalid after command - only weapons are safe. command must have
// 3 ai_sleep commands before executing this command or else engine will crash
// on console (use macro camera_wait_for_loading). if camera mode is already in
// third person then you don't need to do the above
// on console (use camera_transition_to_bond). mission time is resumed on return
// to first person view
//===========================================================================*/
#define camera_return_to_bond_ID 0xD3
#define camera_return_to_bond_LENGTH 0x01
@@ -3320,9 +3331,10 @@
// command id: D4
// info: change view to pad and look at bond
//=============================================================================
// note: command must have 3 ai_sleep commands before executing this command or
// else engine will crash on console (use macro camera_wait_for_loading).
// note: command must have a bond_hide_weapons command and 3 ai_sleep commands
// before executing this command or else engine will crash (use camera_transition_from_bond).
// if camera mode is already in third person then you don't need to do the above.
// mission time is paused while in third person
//===========================================================================*/
#define camera_look_at_bond_from_pad_ID 0xD4
#define camera_look_at_bond_from_pad_LENGTH 0x03
@@ -3335,11 +3347,12 @@
// command id: D5
// info: change view to tagged camera's position and rotation
//=============================================================================
// note: command must have 3 ai_sleep commands before executing this command or
// else engine will crash on console (use macro camera_wait_for_loading).
// note: command must have a bond_hide_weapons command and 3 ai_sleep commands
// before executing this command or else engine will crash (use camera_transition_from_bond).
// if camera mode is already in third person then you don't need to do the above.
// only look at bond if flag is set. unused flag may have separated look at bond
// as x/y flags instead of a single flag - for retail unused flag does nothing
// as x/y flags instead of a single flag - for retail unused flag does nothing.
// mission time is paused while in third person
//===========================================================================*/
#define camera_switch_ID 0xD5
#define camera_switch_LENGTH 0x06
@@ -3366,34 +3379,35 @@
label,
/*=============================================================================
// name: hud_hide_and_lock_controls
// name: hud_hide_and_lock_controls_and_pause_mission_time
// command id: D7
// info: hide hud elements and lock player controls
// info: hide hud elements, lock player control and stop mission time.
// command is commonly used for exit mission lists
//=============================================================================
// note: argument flag will not hide element on command execution. this is
// needed for dialog or countdown while in cinema mode. flags can be combined
// needed for dialog/hud countdown while in cinema mode. flags can be combined
// together to show multiple elements. sequential executions of D7 can be used
// to hide more elements, but once an element has been hidden it cannot be shown
// again until command D8 is executed. bond can take damage while in locked state.
// use HUD_# flags for bitfield argument
//===========================================================================*/
#define hud_hide_and_lock_controls_ID 0xD7
#define hud_hide_and_lock_controls_LENGTH 0x02
#define hud_hide_and_lock_controls(bitfield) \
hud_hide_and_lock_controls_ID, \
#define hud_hide_and_lock_controls_and_pause_mission_time_ID 0xD7
#define hud_hide_and_lock_controls_and_pause_mission_time_LENGTH 0x02
#define hud_hide_and_lock_controls_and_pause_mission_time(bitfield) \
hud_hide_and_lock_controls_and_pause_mission_time_ID, \
bitfield,
/*=============================================================================
// name: hud_show_all
// name: hud_show_all_and_unlock_controls_and_resume_mission_time
// command id: D8
// info: show all hud elements that have been disabled by D7
// info: show all hud elements, unlock player control and resume mission time
//=============================================================================
// note: should only be executed after D7 command
//===========================================================================*/
#define hud_show_all_ID 0xD8
#define hud_show_all_LENGTH 0x01
#define hud_show_all \
hud_show_all_ID,
#define hud_show_all_and_unlock_controls_and_resume_mission_time_ID 0xD8
#define hud_show_all_and_unlock_controls_and_resume_mission_time_LENGTH 0x01
#define hud_show_all_and_unlock_controls_and_resume_mission_time \
hud_show_all_and_unlock_controls_and_resume_mission_time_ID,
/*=============================================================================
// name: chr_try_teleporting_to_pad
@@ -3618,14 +3632,17 @@
gas_leak_and_switch_fog_ID,
/*=============================================================================
// name: mission_time_stop_and_exit_level_on_button_input
// name: trigger_fade_and_exit_level_on_button_press
// command id: EA
// info: stop the mission time and exit level if player 1 pressed any buttons
// info: if player pressed any button, fade to black and exit level
//=============================================================================
// note: this command activates a state where game will fade to black when button
// input is detected from controller 1. command does not pause mission time
//===========================================================================*/
#define mission_time_stop_and_exit_level_on_button_input_ID 0xEA
#define mission_time_stop_and_exit_level_on_button_input_LENGTH 0x01
#define mission_time_stop_and_exit_level_on_button_input \
mission_time_stop_and_exit_level_on_button_input_ID,
#define trigger_fade_and_exit_level_on_button_press_ID 0xEA
#define trigger_fade_and_exit_level_on_button_press_LENGTH 0x01
#define trigger_fade_and_exit_level_on_button_press \
trigger_fade_and_exit_level_on_button_press_ID,
/*=============================================================================
// name: if_bond_is_dead
@@ -3666,9 +3683,9 @@
// command id: EE
// info: change view to orbit a pad with set speed
//=============================================================================
// note: command must have 3 ai_sleep commands before executing this command or
// else engine will crash on console (use macro camera_wait_for_loading). if camera
// mode is already in third person then you don't need to do the above.
// note: command must have a bond_hide_weapons command and 3 ai_sleep commands
// before executing this command or else engine will crash (use camera_transition_from_bond).
// if camera mode is already in third person then you don't need to do the above.
// arguments:
// lat_distance: camera distance from pad, 100 units per meter. argument is unsigned
// vert_distance: camera distance from pad, 100 units per meter. argument is signed
@@ -3679,6 +3696,7 @@
// y_pos_offset: offset the relative y position for pad (boom/jib), argument is signed
// initial_rotation: uses compass direction like target commands (14-17)
// but inverted - hex N: 0000 E: C000 S: 8000: W: 4000
// mission time is paused while in third person
//===========================================================================*/
#define camera_orbit_pad_ID 0xEE
#define camera_orbit_pad_LENGTH 0x0D
+27 -7
View File
@@ -18,7 +18,7 @@
#define CHR_OBJECTIVE -2 /* objective ai list chr ID */
#define CHR_FREE -1 /* chr IDs when free'd (killed or removed from level) */
#define CHR_SPAWN_NUM_START 5000 /* default chr num for spawned guards with ai command BD/BE */
#define CHR_CLONED_NUM_START 9000 /* default chr num for cloed guards with ai command C1 */
#define CHR_CLONED_NUM_START 10000 /* default chr num for cloed guards with ai command C1 */
#define PAD_PRESET 9000 /* stored as chr->padpreset1 */
@@ -1023,6 +1023,26 @@ typedef enum CAMERAMODE {
UNK10_CAM
} CAMERAMODE;
typedef enum IMAGE_FORMAT {
F_RGBA,
F_YUV,
F_CI,
F_IA,
F_I
} IMAGE_FORMAT;
typedef enum IMAGE_BITDEPTH {
D_4BIT,
D_8BIT,
D_16BIT,
D_32BIT
} IMAGE_BITDEPTH;
typedef enum CM_FLAGS {
CLAMP = 1,
MIRROR =2
} CM_FLAGS;
/* motion capture actor: duncan botwood */
/* motion capture assistance: b jones */
/* recorded using 'flock of birds' system by ascension technology corporation, in a freezing metal barn in the depths of winter */
@@ -1117,7 +1137,7 @@ typedef enum ANIMATIONS {
ANIM_aim_running_right_one_handed_weapon = 86,
ANIM_aim_running_left_one_handed_weapon = 87,
ANIM_aim_sprinting_one_handed_weapon = 88,
ANIM_jogging_one_handed_weapon = 89,
ANIM_running_one_handed_weapon = 89,
ANIM_sprinting_one_handed_weapon = 90,
ANIM_null91 = 91, /* invalid slot */
ANIM_null92 = 92, /* invalid slot */
@@ -1132,7 +1152,7 @@ typedef enum ANIMATIONS {
ANIM_holster_one_handed_weapon_and_cross_arms = 101,
ANIM_cock_one_handed_weapon_turn_around_and_stand_up = 102,
ANIM_draw_one_handed_weapon_and_turn_around = 103,
ANIM_step_foward_and_hold_one_handed_weapon = 104,
ANIM_step_forward_and_hold_one_handed_weapon = 104,
ANIM_holster_one_handed_weapon_and_adjust_suit = 105,
ANIM_idle_unarmed = 106,
ANIM_walking_unarmed = 107,
@@ -1253,9 +1273,9 @@ typedef enum ACT_TYPE {
} ACT_TYPE;
// character flags
#define CHRFLAG_00000001 0x00000001 // unknown
#define CHRFLAG_SUNGLASSES 0x00000002 // sunglasses
#define CHRFLAG_00000004 0x00000004 // unknown
#define CHRFLAG_INIT 0x00000001 // initialize chr
#define CHRFLAG_CLONE 0x00000002 // clone on heard gunfire (used by GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE)
#define CHRFLAG_NEAR_MISS 0x00000004 // chr was just nearly shot (sometimes set on direct hit)
#define CHRFLAG_HAS_BEEN_ON_SCREEN 0x00000008 // chr has been on screen before
#define CHRFLAG_INVINCIBLE 0x00000010 // invincible
#define CHRFLAG_00000020 0x00000020 // unknown
@@ -1276,7 +1296,7 @@ typedef enum ACT_TYPE {
#define CHRFLAG_COUNT_DEATH_AS_CIVILIAN 0x00100000 // count death as civilian killed
#define CHRFLAG_WAS_HIT 0x00200000 // chr has been hit (even if invincible)
#define CHRFLAG_00400000 0x00400000 // unknown
#define CHRFLAG_00800000 0x00800000 // unknown
#define CHRFLAG_CULL_USING_HITBOX 0x00800000 // cull chr using hitbox instead of tile/clipping (useful with lock y pos flag)
#define CHRFLAG_01000000 0x01000000 // unknown
#define CHRFLAG_02000000 0x02000000 // unknown
#define CHRFLAG_04000000 0x04000000 // unknown
+2 -2
View File
@@ -2,8 +2,8 @@
#define _BOND_H_
#include "ultra64.h"
extern u16 cfb_16_a[];
extern u16 cfb_16_b[];
extern u8 cfb_16_a[];
extern u8 cfb_16_b[];
extern u32 *_codeSegmentStart;
extern u32 *_codeSegmentEnd;
+128 -1
View File
@@ -1,7 +1,7 @@
#ifndef _BONDTYPES_H_
#define _BONDTYPES_H_
#include "ultra64.h"
#include "bondconstants.h"
struct rgba_val{
u8 r;
u8 g;
@@ -192,4 +192,131 @@ struct CHRdata {
int * handle_positiondata_hat;
};
struct object_standard {
u16 extrascale:2;
u8 hidden2:1;
u8 type:1;
u16 obj;
u16 pad;
u32 flags;
u32 flags2;
void * runtime_ptr_obj_posdata;
void * runtime_ptr_obj_instance_controller;
void * runtime_MATRIX0;
void * runtime_MATRIX1;
void * runtime_MATRIX2;
void * runtime_MATRIX3;
void * runtime_MATRIX4;
void * runtime_MATRIX5;
void * runtime_MATRIX6;
void * runtime_MATRIX7;
void * runtime_MATRIX8;
void * runtime_MATRIX9;
void * runtime_MATRIXA;
void * runtime_MATRIXB;
void * runtime_MATRIXC;
void * runtime_MATRIXD;
void * runtime_MATRIXE;
void * runtime_MATRIXF;
f32 runtime_x_pos;
f32 runtime_y_pos;
f32 runtime_z_pos;
int runtime_bitflags;
int ptr_allocated_collisiondata_block;
int field_6C;
float field_70;
short damage;
short maxdamage;
char field_78;
char field_79;
char field_7A;
char field_7B;
char field_7C;
char field_7D;
char field_7E;
char field_7F;
};
struct watchMenuObjectiveText {
u32 id;
enum WATCH_BRIEFING_PAGE menu;
u16 reserved;
u16 text;
struct watchMenuObjectiveText * nextentry;
};
//!FIXME all but text field cannot be trusted
struct objective_entry {
u32 id;
enum WATCH_BRIEFING_PAGE menu;
u16 reserved;
u16 text;
struct watchMenuObjectiveText * nextentry;
};
typedef struct sImageTableEntry {
u32 index;
u8 width;
u8 height;
u8 level;
u8 format;
u8 depth;
u8 flagsS;
u8 flagsT;
u8 pad;
} sImageTableEntry;
typedef struct sGlobalImageTable {
u32 globalDL_0x000[30];
u32 globalDL_0x078[42];
u32 globalDL_0x120[42];
u32 globalDL_0x1c8[42];
u32 globalDL_0x270[42];
u32 globalDL_0x318[42];
u32 globalDL_0x3c0[42];
u32 globalDL_0x468[42];
u32 globalDL_0x510[42];
u32 globalDL_0x5b8[42];
u32 globalDL_0x660[42];
u32 globalDL_0x708[42];
u32 globalDL_0x7b0[42];
u32 globalDL_0x858[42];
u32 globalDL_0x900[42];
u32 globalDL_0x9a8[42];
u32 globalDL_0xa50[30];
struct sImageTableEntry s_genericimage[1];
struct sImageTableEntry s_impactimages[20];
struct sImageTableEntry s_explosion_smokeimages[6];
struct sImageTableEntry s_scattered_explosions[5];
struct sImageTableEntry s_flareimage1[1];
struct sImageTableEntry s_flareimage2[1];
struct sImageTableEntry s_flareimage3[1];
struct sImageTableEntry s_flareimage4[1];
struct sImageTableEntry s_flareimage5[1];
struct sImageTableEntry s_ammo9mmimage[1];
struct sImageTableEntry s_rifleammoimage[1];
struct sImageTableEntry s_shotgunammoimage[1];
struct sImageTableEntry s_knifeammoimage[1];
struct sImageTableEntry s_glammoimage[1];
struct sImageTableEntry s_rocketammoimage[1];
struct sImageTableEntry s_genericmineammoimage[1];
struct sImageTableEntry s_grenadeammoimage[1];
struct sImageTableEntry s_magnumammoimage[1];
struct sImageTableEntry s_goldengunammoimage[1];
struct sImageTableEntry s_remotemineammoimage[1];
struct sImageTableEntry s_timedmineammoimage[1];
struct sImageTableEntry s_proxmineammoimage[1];
struct sImageTableEntry s_tankammoimage[1];
struct sImageTableEntry s_crosshairimage[1];
struct sImageTableEntry s_betacrosshairimage[1];
struct sImageTableEntry s_glassoverlayimage[2];
struct sImageTableEntry s_monitorimages[50];
struct sImageTableEntry s_skywaterimages[3];
struct sImageTableEntry s_mainfolderimages[6];
struct sImageTableEntry s_mpradarimages[1];
struct sImageTableEntry s_mpcharselimages[64];
struct sImageTableEntry s_mpstageselimages[17];
} sGlobalImageTable;
#endif
+19 -19
View File
@@ -157,12 +157,12 @@ void init_mainthread_data(void)
current_m_malloc_value = (s32) (strtol(check_token(1, "-m"), 0, 0) << 0xa);
}
temp_s0 = (osVirtualToPhysical(&room_model_buffer) | 0x80000000);
check_memflag_tokens(temp_s0, (return_ptr_TLBallocatedblock() - temp_s0));
reset_mem_bank_a0(6);
mempCheckMemflagTokens(temp_s0, (return_ptr_TLBallocatedblock() - temp_s0));
mempResetBank(6);
init_LnameX();
something_with_lvl_c_debug();
something_with_boss_c_debug();
null_init_main();
null_init_main_7f0acb70();
null_init_main_0();
default_player_perspective_and_height();
store_osgetcount();
@@ -287,9 +287,9 @@ void mainloop(void)
sp1DC = 0;
reset_mem_bank_5();
if (check_token(1, &aLevel__0) != 0)
if (check_token(1, "-level_") != 0)
{
temp_ret = check_token(1, &aLevel__1);
temp_ret = check_token(1, "-level_");
current_stage_num = (s32) ((temp_ret->unk1 + (temp_ret->unk0 * 0xa)) + -0x210);
}
if (current_stage_num != 0x5a)
@@ -298,10 +298,10 @@ void mainloop(void)
set_selected_folder_num(0);
set_selected_difficulty(0);
set_solo_and_ptr_briefing(current_stage_num);
if (check_token(1, &aHard) != 0)
if (check_token(1, "-hard") != 0)
{
set_selected_difficulty(*check_token(1, &aHard_1) + -0x30);
set_difficulty(*check_token(1, &aHard_2) + -0x30);
set_selected_difficulty(*check_token(1, "-hard") + -0x30);
set_difficulty(*check_token(1, "-hard") + -0x30);
}
}
increment_random_num(osGetCount());
@@ -384,13 +384,13 @@ loop_18:
}
strtok((&memallocstringtable + (phi_s0_3 * 8))->unk4, &memallocstringtable);
}
reset_mem_bank_a0(4);
mempResetBank(4);
something_mem_bank_a0(4);
if (check_token(1, &aMa) != 0)
{
current_ma_malloc_value = (s32) (strtol(check_token(1, &aMa_0), 0, 0) << 0xa);
}
reset_memtable_base_allocation(allocate_bytes_in_bank(current_ma_malloc_value, 4), current_ma_malloc_value);
mempInitMallocTable(mempAllocBytesInBank(current_ma_malloc_value, 4), current_ma_malloc_value);
reset_play_data_ptrs();
phi_s1 = 0;
if (current_stage_num != 0x5a)
@@ -566,8 +566,8 @@ loop_44:
temp_s3_3 = temp_s3_3 + 8;
if (show_mem_use_flag != 0)
{
nulled_list_all8_mem_alloc_banks_sizes();
generate_lists_before_after_mem_merge();
nulled_mempLoopAllMemBanks();
memaGenerateListsBeforeAfterMerge();
removed_debug_routine(temp_s3_3);
nullsub_41(0);
show_mem_use_flag = 0;
@@ -619,7 +619,7 @@ loop_58:
}
unload_stage_text_data();
stop_demo_playback();
memp_related_6(4);
mempNullNextEntryInBank(4);
something_mem_bank_a0(4);
current_stage_num = (?32) loadedstage;
loadedstage = -1;
@@ -826,7 +826,7 @@ glabel mainloop
/* 006EE4 700062E4 0C002963 */ jal strtok
/* 006EE8 700062E8 8DC40004 */ lw $a0, 4($t6)
.L700062EC:
/* 006EEC 700062EC 0C002667 */ jal reset_mem_bank_a0
/* 006EEC 700062EC 0C002667 */ jal mempResetBank
/* 006EF0 700062F0 24040004 */ li $a0, 4
/* 006EF4 700062F4 0FC2F46F */ jal something_mem_bank_a0
/* 006EF8 700062F8 24040004 */ li $a0, 4
@@ -849,11 +849,11 @@ glabel mainloop
.L7000633C:
/* 006F3C 7000633C 3C048002 */ lui $a0, %hi(current_ma_malloc_value)
/* 006F40 70006340 8C8441B0 */ lw $a0, %lo(current_ma_malloc_value)($a0)
/* 006F44 70006344 0C0025C8 */ jal allocate_bytes_in_bank
/* 006F44 70006344 0C0025C8 */ jal mempAllocBytesInBank
/* 006F48 70006348 24050004 */ li $a1, 4
/* 006F4C 7000634C 3C058002 */ lui $a1, %hi(current_ma_malloc_value)
/* 006F50 70006350 8CA541B0 */ lw $a1, %lo(current_ma_malloc_value)($a1)
/* 006F54 70006354 0C002766 */ jal reset_memtable_base_allocation
/* 006F54 70006354 0C002766 */ jal mempInitMallocTable
/* 006F58 70006358 00402025 */ move $a0, $v0
/* 006F5C 7000635C 0FC268CB */ jal reset_play_data_ptrs
/* 006F60 70006360 00000000 */ nop
@@ -1134,9 +1134,9 @@ glabel mainloop
/* 007374 70006774 26730008 */ addiu $s3, $s3, 8
/* 007378 70006778 1100000B */ beqz $t0, .L700067A8
/* 00737C 7000677C 00000000 */ nop
/* 007380 70006780 0C00263C */ jal nulled_list_all8_mem_alloc_banks_sizes
/* 007380 70006780 0C00263C */ jal nulled_mempLoopAllMemBanks
/* 007384 70006784 00000000 */ nop
/* 007388 70006788 0C0028A7 */ jal generate_lists_before_after_mem_merge
/* 007388 70006788 0C0028A7 */ jal memaGenerateListsBeforeAfterMerge
/* 00738C 7000678C 00000000 */ nop
/* 007390 70006790 0FC2F5DD */ jal removed_debug_routine
/* 007394 70006794 02602025 */ move $a0, $s3
@@ -1224,7 +1224,7 @@ glabel mainloop
/* 0074B8 700068B8 00000000 */ nop
/* 0074BC 700068BC 0FC3023F */ jal stop_demo_playback
/* 0074C0 700068C0 00000000 */ nop
/* 0074C4 700068C4 0C002671 */ jal memp_related_6
/* 0074C4 700068C4 0C002671 */ jal mempNullNextEntryInBank
/* 0074C8 700068C8 24040004 */ li $a0, 4
/* 0074CC 700068CC 0FC2F46F */ jal something_mem_bank_a0
/* 0074D0 700068D0 24040004 */ li $a0, 4
+2 -2
View File
@@ -1,5 +1,5 @@
#include "ultra64.h"
#include "bondgame.h"
u16 cfb_16_a[320*240];
u16 cfb_16_b[320*240];
u8 cfb_16_a[320*240*2];
u8 cfb_16_b[320*240*2];
+3 -3
View File
@@ -11,7 +11,7 @@
*/
/* bss */
char dword_CODE_bss_80060890[0x400];
extern char dword_CODE_bss_80060890[0x400];
@@ -104,7 +104,7 @@ u32 get_entry_of_size_in_debug_notice_list(s32 arg0)
return debug_notice_list_data;
}
debug_notice_list_data = (u32) (temp_v0 - arg0);
return allocate_bytes_in_bank(6);
return mempAllocBytesInBank(6);
}
#else
GLOBAL_ASM(
@@ -123,7 +123,7 @@ glabel get_entry_of_size_in_debug_notice_list
/* 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 allocate_bytes_in_bank
/* 0059B4 70004DB4 0C0025C8 */ jal mempAllocBytesInBank
/* 0059B8 70004DB8 24050006 */ li $a1, 6
/* 0059BC 70004DBC 10000005 */ b .L70004DD4
/* 0059C0 70004DC0 8FBF0014 */ lw $ra, 0x14($sp)
+1 -1
View File
@@ -83,7 +83,7 @@ glabel thread5_translate_7F_address
/* 005BCC 70004FCC 24060001 */ li $a2, 1
/* 005BD0 70004FD0 0C00374C */ jal osSetIntMask
/* 005BD4 70004FD4 24040001 */ li $a0, 1
/* 005BD8 70004FD8 0C004060 */ jal ultra_70010180
/* 005BD8 70004FD8 0C004060 */ jal __osGetCurrFaultedThread
/* 005BDC 70004FDC 00408025 */ move $s0, $v0
/* 005BE0 70004FE0 3C018006 */ lui $at, %hi(ptr_tlbthread_maybe)
/* 005BE4 70004FE4 1040FFF6 */ beqz $v0, .L70004FC0
+4 -3
View File
@@ -1722,13 +1722,14 @@ glabel sub_GAME_7F0B40D4
#ifdef NONMATCHING
void sub_GAME_7F0B4124(void) {
void load_bg_file(STAGENUM stagenum)
{
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0B4124
glabel load_bg_file
/* 0E8C54 7F0B4124 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 0E8C58 7F0B4128 AFB20020 */ sw $s2, 0x20($sp)
/* 0E8C5C 7F0B412C 3C128004 */ lui $s2, %hi(D_80041400)
@@ -1801,7 +1802,7 @@ glabel sub_GAME_7F0B4124
/* 0E8D5C 7F0B422C 360F000F */ ori $t7, $s0, 0xf
/* 0E8D60 7F0B4230 25F00001 */ addiu $s0, $t7, 1
/* 0E8D64 7F0B4234 02002025 */ move $a0, $s0
/* 0E8D68 7F0B4238 0C0025C8 */ jal allocate_bytes_in_bank
/* 0E8D68 7F0B4238 0C0025C8 */ jal mempAllocBytesInBank
/* 0E8D6C 7F0B423C 24050004 */ li $a1, 4
/* 0E8D70 7F0B4240 8E580000 */ lw $t8, ($s2)
/* 0E8D74 7F0B4244 AEE20000 */ sw $v0, ($s7)
+428 -476
View File
File diff suppressed because it is too large Load Diff
+8 -7
View File
@@ -1,7 +1,9 @@
#ifndef _BOND_H_
#define _BOND_H_
#include "ultra64.h"
#include "game/chr.h"
struct xyzpoint
{
f32 x;
@@ -9,7 +11,7 @@ struct xyzpoint
f32 z;
};
struct Player
typedef struct Player
{
s32 unknown;
s32 xpos;
@@ -526,8 +528,7 @@ struct Player
s16 viewtop;
s32 right_invisible;
s32 left_invisible;
s32 item_right;
s32 item_left;
s32 handitem[2];
s32 ptr_right_weapon_buffer;
s32 ptr_left_weapon_buffer;
s32 copy_of_body_obj_header[8];
@@ -2684,7 +2685,7 @@ struct Player
s32 deathcount;
s32 num_suicides;
s32 field_29E0;
s32 field_29E4;
s32 last_kill_time;
s32 field_29E8;
s32 field_29EC;
s32 field_29F0;
@@ -2705,7 +2706,7 @@ struct Player
s32 field_2A2C;
s32 field_2A30;
s32 field_2A34;
s32 field_2A38;
s32 cur_item_weapon_getname;
s32 actual_health;
s32 actual_armor;
s32 field_2A44;
@@ -2717,13 +2718,13 @@ struct Player
s32 cur_player_control_type_1;
f32 cur_player_control_type_2;
s32 neg_vspacing_for_control_type_entry;
s32 has_set_control_type_data;
u32 has_set_control_type_data;
s32 field_2A6C;
s32 field_2A70;
s32 field_2A74;
s32 field_2A78;
s32 field_2A7C;
};
} Player;
struct firing_anim_struct {
struct weapon_firing_animation_table * pointer;
+2 -2
View File
@@ -2104,13 +2104,13 @@ glabel sub_GAME_7F08CF80
#ifdef NONMATCHING
void sub_GAME_7F08CFC0(void) {
void checkforgoldengun(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F08CFC0
glabel checkforgoldengun
/* 0C1AF0 7F08CFC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0C1AF4 7F08CFC4 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C1AF8 7F08CFC8 0FC230C5 */ jal is_weapon_in_inv
+170 -167
View File
@@ -1,7 +1,10 @@
#include "ultra64.h"
#include "game/bondwalk.h"
#include "game/chrobjdata.h"
#include "bondgame.h"
#include "game/bond.h"
#include "game/unk_093880.h"
// bss
s32 dword_CODE_bss_80075DB0;
@@ -36,9 +39,7 @@ u32 D_80032454 = 0;
u32 D_80032458 = 0;
//D:8003245C
u32 size_right_item_buffer = 0x14820;
//D:80032460
u32 size_left_item_buffer = 0x14820;
u32 size_item_buffer[] = {0x14820, 0x14820};
//D:80032464
u32 D_80032464[] ={0x7530, 0x7530};
@@ -64,6 +65,17 @@ struct ejected_cart ejected_cartridge[] = {
#define SCALEVAL_RUGER 0.80000001
#define SCALEVAL_LAUNCHER 0.80000001
#endif
#ifdef VERSION_EU
//!FIXME temp copy of us data
#define SCALEVAL1 0.80000001
#define SCALEVAL_KNIFE 0.80000001
#define SCALEVAL_SKORPIAN 0.80000001
#define SCALEVAL_AK47 0.80000001
#define SCALEVAL_UZI 0.80000001
#define SCALEVAL_P90 0.80000001
#define SCALEVAL_RUGER 0.80000001
#define SCALEVAL_LAUNCHER 0.80000001
#endif
#ifdef VERSION_JP
#define SCALEVAL1 0.8812
#define SCALEVAL_KNIFE 0.8228
@@ -75,7 +87,7 @@ struct ejected_cart ejected_cartridge[] = {
#define SCALEVAL_LAUNCHER 0.9048
#endif
//D:80032494
struct weapon_stats stru_D_80032494 = {
struct weapon_stats default_weaponstats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0, 0x110
};
//D:80032504
@@ -1198,7 +1210,7 @@ struct weapon_stats *get_ptr_item_statistics(int item) {
if (gitem_structs[item].has_no_model == 0) { /* weapon has model, return stats struct */
return gitem_structs[item].item_weapon_stats;
}
return &stru_D_80032494; /* no model, return defaults */
return &default_weaponstats; /* no model, return defaults */
}
@@ -1673,12 +1685,13 @@ glabel sub_GAME_7F05CEBC
#ifdef NONMATCHING
void get_itemtype_in_hand(void) {
s32 get_itemtype_in_hand(int hand)
{
return pPlayer->handitem[hand];
}
#else
GLOBAL_ASM(
.text
@@ -1718,13 +1731,13 @@ glabel get_ptr_itemheader_in_hand
#ifdef NONMATCHING
void sub_GAME_7F05CF30(void) {
void getPlayerWeaponBufferForHand(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F05CF30
glabel getPlayerWeaponBufferForHand
/* 091A60 7F05CF30 3C0E8008 */ lui $t6, %hi(pPlayer)
/* 091A64 7F05CF34 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6)
/* 091A68 7F05CF38 00047880 */ sll $t7, $a0, 2
@@ -1736,25 +1749,10 @@ glabel sub_GAME_7F05CF30
#ifdef NONMATCHING
void sub_GAME_7F05CF48(void) {
u32 getSizeBufferWeaponInHand(int hand)
{
return size_item_buffer[hand];
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F05CF48
/* 091A78 7F05CF48 00047080 */ sll $t6, $a0, 2
/* 091A7C 7F05CF4C 3C028003 */ lui $v0, %hi(size_right_item_buffer)
/* 091A80 7F05CF50 004E1021 */ addu $v0, $v0, $t6
/* 091A84 7F05CF54 03E00008 */ jr $ra
/* 091A88 7F05CF58 8C42245C */ lw $v0, %lo(size_right_item_buffer)($v0)
)
#endif
@@ -1896,13 +1894,14 @@ glabel get_ptr_weapon_model_header_line
#ifdef NONMATCHING
void sub_GAME_7F05D078(void) {
int getCurrentWeaponOrItem(void)
{
return pPlayer->cur_item_weapon_getname;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F05D078
glabel getCurrentWeaponOrItem
/* 091BA8 7F05D078 3C0E8008 */ lui $t6, %hi(pPlayer)
/* 091BAC 7F05D07C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6)
/* 091BB0 7F05D080 03E00008 */ jr $ra
@@ -1958,10 +1957,10 @@ glabel used_to_load_1st_person_model_on_demand
/* 091C38 7F05D108 8FA20038 */ lw $v0, 0x38($sp)
/* 091C3C 7F05D10C 50400076 */ beql $v0, $zero, .L7F05D2E8
/* 091C40 7F05D110 8FA20038 */ lw $v0, 0x38($sp)
/* 091C44 7F05D114 0FC173CC */ jal sub_GAME_7F05CF30
/* 091C44 7F05D114 0FC173CC */ jal getPlayerWeaponBufferForHand
/* 091C48 7F05D118 8FA40050 */ lw $a0, 0x50($sp)
/* 091C4C 7F05D11C AFA20040 */ sw $v0, 0x40($sp)
/* 091C50 7F05D120 0FC173D2 */ jal sub_GAME_7F05CF48
/* 091C50 7F05D120 0FC173D2 */ jal getSizeBufferWeaponInHand
/* 091C54 7F05D124 8FA40050 */ lw $a0, 0x50($sp)
/* 091C58 7F05D128 8FAE0044 */ lw $t6, 0x44($sp)
/* 091C5C 7F05D12C 8FAA0050 */ lw $t2, 0x50($sp)
@@ -2420,8 +2419,11 @@ glabel sub_GAME_7F05D650
#ifdef NONMATCHING
void sub_GAME_7F05D690(void) {
void proc_7F05D690(void)
{
draw_item_in_hand_has_more_ammo(0,pPlayer->previous_right_weapon);
draw_item_in_hand_has_more_ammo(1,pPlayer->left_weapon_previous);
return;
}
#else
GLOBAL_ASM(
@@ -2451,8 +2453,24 @@ glabel sub_GAME_7F05D690
#ifdef NONMATCHING
void advance_through_inventory(void) {
void advance_through_inventory(void)
{
ITEM_IDS nextleft;
ITEM_IDS nextright;
nextright = get_next_weapon_in_cycle_for_hand(0,1);
nextleft = get_next_weapon_in_cycle_for_hand(1,1);
if (((int)nextright < 0x21) && ((int)nextleft < 0x21)) {
proc_7F08C86C((int *)&nextright,(int *)&nextleft,0);
}
else {
nextright = pPlayer->previous_right_weapon;
nextleft = pPlayer->left_weapon_previous;
}
likely_change_weapon_in_hand(0,nextright,1);
likely_change_weapon_in_hand(1,nextleft,1);
return;
}
#else
GLOBAL_ASM(
@@ -3591,7 +3609,7 @@ glabel sub_GAME_7F05E0E4
/* 092D04 7F05E1D4 4481A000 */ mtc1 $at, $f20
/* 092D08 7F05E1D8 E7000FC0 */ swc1 $f0, 0xfc0($t8)
.L7F05E1DC:
/* 092D0C 7F05E1DC 0FC227B5 */ jal get_BONDdata_field19C
/* 092D0C 7F05E1DC 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 092D10 7F05E1E0 E7B00050 */ swc1 $f16, 0x50($sp)
/* 092D14 7F05E1E4 3C018005 */ lui $at, %hi(D_80053C54)
/* 092D18 7F05E1E8 C4283C54 */ lwc1 $f8, %lo(D_80053C54)($at)
@@ -3603,7 +3621,7 @@ glabel sub_GAME_7F05E0E4
/* 092D30 7F05E200 00000000 */ nop
/* 092D34 7F05E204 4502000C */ bc1fl .L7F05E238
/* 092D38 7F05E208 3C013F00 */ lui $at, 0x3f00
/* 092D3C 7F05E20C 0FC227B5 */ jal get_BONDdata_field19C
/* 092D3C 7F05E20C 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 092D40 7F05E210 E7B00050 */ swc1 $f16, 0x50($sp)
/* 092D44 7F05E214 3C018005 */ lui $at, %hi(D_80053C58)
/* 092D48 7F05E218 C4323C58 */ lwc1 $f18, %lo(D_80053C58)($at)
@@ -4675,7 +4693,7 @@ glabel sub_GAME_7F05EE24
/* 093A80 7F05EF50 C44A0B0C */ lwc1 $f10, 0xb0c($v0)
/* 093A84 7F05EF54 E7AA00E4 */ swc1 $f10, 0xe4($sp)
/* 093A88 7F05EF58 C4520B10 */ lwc1 $f18, 0xb10($v0)
/* 093A8C 7F05EF5C 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 093A8C 7F05EF5C 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 093A90 7F05EF60 E7B200E8 */ swc1 $f18, 0xe8($sp)
/* 093A94 7F05EF64 3C198008 */ lui $t9, %hi(pPlayer)
/* 093A98 7F05EF68 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9)
@@ -5149,7 +5167,7 @@ glabel generate_player_thrown_object
/* 093FDC 7F05F4AC E7B200E4 */ swc1 $f18, 0xe4($sp)
/* 093FE0 7F05F4B0 C4460B10 */ lwc1 $f6, 0xb10($v0)
/* 093FE4 7F05F4B4 AFAF002C */ sw $t7, 0x2c($sp)
/* 093FE8 7F05F4B8 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 093FE8 7F05F4B8 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 093FEC 7F05F4BC E7A600E8 */ swc1 $f6, 0xe8($sp)
/* 093FF0 7F05F4C0 3C198008 */ lui $t9, %hi(pPlayer)
/* 093FF4 7F05F4C4 8FA3002C */ lw $v1, 0x2c($sp)
@@ -5378,7 +5396,7 @@ glabel sub_GAME_7F05F73C
/* 0942B0 7F05F780 0FC2280B */ jal get_BONDdata_field408
/* 0942B4 7F05F784 AFA20034 */ sw $v0, 0x34($sp)
/* 0942B8 7F05F788 AFA20030 */ sw $v0, 0x30($sp)
/* 0942BC 7F05F78C 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0942BC 7F05F78C 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 0942C0 7F05F790 27A400A0 */ addiu $a0, $sp, 0xa0
/* 0942C4 7F05F794 27A40044 */ addiu $a0, $sp, 0x44
/* 0942C8 7F05F798 27A50038 */ addiu $a1, $sp, 0x38
@@ -5719,7 +5737,7 @@ glabel sub_GAME_7F05FB64
/* 0946E4 7F05FBB4 0FC17674 */ jal get_item_in_hand
/* 0946E8 7F05FBB8 8FA40108 */ lw $a0, 0x108($sp)
/* 0946EC 7F05FBBC AFA20040 */ sw $v0, 0x40($sp)
/* 0946F0 7F05FBC0 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0946F0 7F05FBC0 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 0946F4 7F05FBC4 27A400C0 */ addiu $a0, $sp, 0xc0
/* 0946F8 7F05FBC8 8FA80040 */ lw $t0, 0x40($sp)
/* 0946FC 7F05FBCC 24010020 */ li $at, 32
@@ -6712,7 +6730,7 @@ glabel handles_firing_or_throwing_weapon_in_hand
.L7F060950:
/* 095480 7F060950 0FC17185 */ jal sub_GAME_7F05C614
/* 095484 7F060954 00000000 */ nop
/* 095488 7F060958 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 095488 7F060958 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 09548C 7F06095C 27A40154 */ addiu $a0, $sp, 0x154
/* 095490 7F060960 8FA200FC */ lw $v0, 0xfc($sp)
/* 095494 7F060964 2401001E */ li $at, 30
@@ -6954,7 +6972,7 @@ glabel handles_firing_or_throwing_weapon_in_hand
/* 095818 7F060CE8 00402025 */ move $a0, $v0
/* 09581C 7F060CEC AFA30100 */ sw $v1, 0x100($sp)
.L7F060CF0:
/* 095820 7F060CF0 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 095820 7F060CF0 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 095824 7F060CF4 AFA40044 */ sw $a0, 0x44($sp)
/* 095828 7F060CF8 8FAE01A0 */ lw $t6, 0x1a0($sp)
/* 09582C 7F060CFC 8FA30100 */ lw $v1, 0x100($sp)
@@ -8496,7 +8514,7 @@ glabel handles_firing_or_throwing_weapon_in_hand
.Ljp7F060E70:
/* 0959E0 7F060E70 0FC172CD */ jal sub_GAME_7F05C614
/* 0959E4 7F060E74 00000000 */ nop
/* 0959E8 7F060E78 0FC1613C */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0959E8 7F060E78 0FC1613C */ jal reset_array_of_0x10_floats
/* 0959EC 7F060E7C 27A40154 */ addiu $a0, $sp, 0x154
/* 0959F0 7F060E80 8FA200FC */ lw $v0, 0xfc($sp)
/* 0959F4 7F060E84 2401001E */ li $at, 30
@@ -8738,7 +8756,7 @@ glabel handles_firing_or_throwing_weapon_in_hand
/* 095D78 7F061208 00402025 */ move $a0, $v0
/* 095D7C 7F06120C AFA30100 */ sw $v1, 0x100($sp)
.Ljp7F061210:
/* 095D80 7F061210 0FC1613C */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 095D80 7F061210 0FC1613C */ jal reset_array_of_0x10_floats
/* 095D84 7F061214 AFA40044 */ sw $a0, 0x44($sp)
/* 095D88 7F061218 8FAE01A0 */ lw $t6, 0x1a0($sp)
/* 095D8C 7F06121C 8FA30100 */ lw $v1, 0x100($sp)
@@ -10945,8 +10963,8 @@ glabel sub_GAME_7F062B00
/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7)
/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3
/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44
/* 097654 7F062B24 3C018005 */ lui $at, %hi(D_jpunk)
/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(D_jpunk)($at)
/* 097654 7F062B24 3C018005 */ lui $at, %hi(jp_global_timer_delta)
/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at)
/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0)
/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0)
/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6
@@ -11376,7 +11394,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu
/* 097C24 7F0630F4 19400009 */ blez $t2, .L7F06311C
/* 097C28 7F0630F8 00115980 */ sll $t3, $s1, 6
.L7F0630FC:
/* 097C2C 7F0630FC 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 097C2C 7F0630FC 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 097C30 7F063100 01702021 */ addu $a0, $t3, $s0
/* 097C34 7F063104 864C000E */ lh $t4, 0xe($s2)
/* 097C38 7F063108 26310001 */ addiu $s1, $s1, 1
@@ -12047,9 +12065,9 @@ glabel sub_GAME_7F06359C
/* 098484 7F063954 E7A20018 */ swc1 $f2, 0x18($sp)
/* 098488 7F063958 0FC165A5 */ jal sub_GAME_7F059694
/* 09848C 7F06395C E7B20024 */ swc1 $f18, 0x24($sp)
/* 098490 7F063960 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 098490 7F063960 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 098494 7F063964 02602025 */ move $a0, $s3
/* 098498 7F063968 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 098498 7F063968 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 09849C 7F06396C 02C02025 */ move $a0, $s6
/* 0984A0 7F063970 02C02025 */ move $a0, $s6
/* 0984A4 7F063974 0FC16008 */ jal sub_GAME_7F058020
@@ -12499,7 +12517,7 @@ glabel sub_GAME_7F06359C
/* 098B50 7F064020 8FC80068 */ lw $t0, 0x68($fp)
/* 098B54 7F064024 AF080004 */ sw $t0, 4($t8)
/* 098B58 7F064028 8FC1006C */ lw $at, 0x6c($fp)
/* 098B5C 7F06402C 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 098B5C 7F06402C 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 098B60 7F064030 AF010008 */ sw $at, 8($t8)
/* 098B64 7F064034 82840000 */ lb $a0, ($s4)
/* 098B68 7F064038 0C0030C3 */ jal get_controller_buttons_held
@@ -19574,7 +19592,7 @@ glabel sub_GAME_7F066E64
/* 09B9A8 7F066E78 00000000 */ nop
/* 09B9AC 7F066E7C 0FC30776 */ jal get_textptr_for_textID
/* 09B9B0 7F066E80 340498D8 */ li $a0, 39128
/* 09B9B4 7F066E84 0FC228F2 */ jal jp_FUN_7f08ac40
/* 09B9B4 7F066E84 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 09B9B8 7F066E88 00402025 */ move $a0, $v0
/* 09B9BC 7F066E8C 3C0F8008 */ lui $t7, %hi(pPlayer)
/* 09B9C0 7F066E90 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7)
@@ -19596,7 +19614,7 @@ glabel sub_GAME_7F066E64
.L7F066ED0:
/* 09BA00 7F066ED0 0FC30776 */ jal get_textptr_for_textID
/* 09BA04 7F066ED4 340498D9 */ li $a0, 39129
/* 09BA08 7F066ED8 0FC228F2 */ jal jp_FUN_7f08ac40
/* 09BA08 7F066ED8 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 09BA0C 7F066EDC 00402025 */ move $a0, $v0
/* 09BA10 7F066EE0 0FC175A4 */ jal sub_GAME_7F05D690
/* 09BA14 7F066EE4 00000000 */ nop
@@ -25253,7 +25271,7 @@ void inc_curplayer_hitcount_with_weapon(s32 arg1) {
if (temp_ret != 0)
{
// Node 1
temp_v0 = (cur_player_stat_ptr + (arg1 * 4));
temp_v0 = (pPlayersPerm + (arg1 * 4));
*temp_v0 = (s32) (*temp_v0 + 1);
}
// Node 2
@@ -25269,9 +25287,9 @@ glabel inc_curplayer_hitcount_with_weapon
/* 09F234 7F06A704 0FC1782D */ jal check_special_attributes
/* 09F238 7F06A708 3C050001 */ lui $a1, 1
/* 09F23C 7F06A70C 10400008 */ beqz $v0, .L7F06A730
/* 09F240 7F06A710 3C0E8008 */ lui $t6, %hi(cur_player_stat_ptr)
/* 09F240 7F06A710 3C0E8008 */ lui $t6, %hi(pPlayersPerm)
/* 09F244 7F06A714 8FAF001C */ lw $t7, 0x1c($sp)
/* 09F248 7F06A718 8DCEA0B4 */ lw $t6, %lo(cur_player_stat_ptr)($t6)
/* 09F248 7F06A718 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6)
/* 09F24C 7F06A71C 000FC080 */ sll $t8, $t7, 2
/* 09F250 7F06A720 01D81021 */ addu $v0, $t6, $t8
/* 09F254 7F06A724 8C590000 */ lw $t9, ($v0)
@@ -25292,14 +25310,14 @@ glabel inc_curplayer_hitcount_with_weapon
#ifdef NONMATCHING
void get_curplayer_shot_register(s32 arg0) {
// Node 0
return *(cur_player_stat_ptr + (arg0 * 4));
return *(pPlayersPerm + (arg0 * 4));
}
#else
GLOBAL_ASM(
.text
glabel get_curplayer_shot_register
/* 09F270 7F06A740 3C0E8008 */ lui $t6, %hi(cur_player_stat_ptr)
/* 09F274 7F06A744 8DCEA0B4 */ lw $t6, %lo(cur_player_stat_ptr)($t6)
/* 09F270 7F06A740 3C0E8008 */ lui $t6, %hi(pPlayersPerm)
/* 09F274 7F06A744 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6)
/* 09F278 7F06A748 00047880 */ sll $t7, $a0, 2
/* 09F27C 7F06A74C 01CFC021 */ addu $t8, $t6, $t7
/* 09F280 7F06A750 03E00008 */ jr $ra
@@ -25312,18 +25330,17 @@ glabel get_curplayer_shot_register
#ifdef NONMATCHING
void *inc_cur_civilian_casualties(void) {
// Node 0
cur_player_stat_ptr->unk6C = (s32) (cur_player_stat_ptr->unk6C + 1);
return cur_player_stat_ptr;
}
void inc_cur_civilian_casualties(void)
{
pPlayersPerm->killed_civilians++
}
#else
GLOBAL_ASM(
.text
glabel inc_cur_civilian_casualties
/* 09F288 7F06A758 3C028008 */ lui $v0, %hi(cur_player_stat_ptr)
/* 09F28C 7F06A75C 8C42A0B4 */ lw $v0, %lo(cur_player_stat_ptr)($v0)
/* 09F288 7F06A758 3C028008 */ lui $v0, %hi(pPlayersPerm)
/* 09F28C 7F06A75C 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0)
/* 09F290 7F06A760 8C4E006C */ lw $t6, 0x6c($v0)
/* 09F294 7F06A764 25CF0001 */ addiu $t7, $t6, 1
/* 09F298 7F06A768 03E00008 */ jr $ra
@@ -25336,16 +25353,16 @@ glabel inc_cur_civilian_casualties
#ifdef NONMATCHING
void get_civilian_casualties(void) {
// Node 0
return cur_player_stat_ptr->unk6C;
int get_civilian_casualties(void)
{
return pPlayersPerm->killed_civilians;
}
#else
GLOBAL_ASM(
.text
glabel get_civilian_casualties
/* 09F2A0 7F06A770 3C0E8008 */ lui $t6, %hi(cur_player_stat_ptr)
/* 09F2A4 7F06A774 8DCEA0B4 */ lw $t6, %lo(cur_player_stat_ptr)($t6)
/* 09F2A0 7F06A770 3C0E8008 */ lui $t6, %hi(pPlayersPerm)
/* 09F2A4 7F06A774 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6)
/* 09F2A8 7F06A778 03E00008 */ jr $ra
/* 09F2AC 7F06A77C 8DC2006C */ lw $v0, 0x6c($t6)
)
@@ -25366,43 +25383,43 @@ void *increment_num_kills_display_text_in_MP(void) {
void *phi_return_reg;
// Node 0
cur_player_stat_ptr->unk1C = (s32) (cur_player_stat_ptr->unk1C + 1);
pPlayer->unk29F8 = (s32) (pPlayer->unk29F8 + 1);
pPlayersPerm->killcount = (s32) (pPlayersPerm->killcount + 1);
pPlayer->field_29F8 = (s32) (pPlayer->field_29F8 + 1);
temp_ret = get_num_players();
phi_return_reg = temp_ret;
if (temp_ret >= 2)
{
// Node 1
sp34 = sub_GAME_7F08BFB8();
sprintf(&sp40, &aSD, get_textptr_for_textID(0x98da), cur_player_stat_ptr->unk1C);
sprintf(&sp40, &aSD, get_textptr_for_textID(0x98da), pPlayersPerm->killcount);
display_string_in_lower_left_corner(&sp40);
if (cur_player_stat_ptr->unk1C >= 2)
if (pPlayersPerm->killcount >= 2)
{
// Node 2
temp_v0 = (sp34 - pPlayer->unk29E4);
if (cur_player_stat_ptr->unk48 < temp_v0)
temp_v0 = (sp34 - pPlayer->last_kill_time);
if (pPlayersPerm->slowest2kills < temp_v0)
{
// Node 3
cur_player_stat_ptr->unk48 = temp_v0;
pPlayersPerm->slowest2kills = temp_v0;
}
// Node 4
if (temp_v0 < cur_player_stat_ptr->unk44)
if (temp_v0 < pPlayersPerm->fastest2kills)
{
// Node 5
cur_player_stat_ptr->unk44 = temp_v0;
pPlayersPerm->fastest2kills = temp_v0;
}
}
// Node 6
pPlayer->unk29F0 = (s32) pPlayer->unk29EC;
pPlayer->unk29EC = (s32) pPlayer->unk29E8;
pPlayer->unk29E8 = (s32) pPlayer->unk29E4;
pPlayer->unk29E4 = sp34;
pPlayer->unk29E8 = (s32) pPlayer->last_kill_time;
pPlayer->last_kill_time = sp34;
phi_a0 = 1;
if (-1 != pPlayer->unk29E8)
{
// Node 7
phi_a0 = 1;
if ((pPlayer->unk29E4 - pPlayer->unk29E8) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78)
{
// Node 8
phi_a0 = 2;
@@ -25410,7 +25427,7 @@ void *increment_num_kills_display_text_in_MP(void) {
{
// Node 9
phi_a0 = 2;
if ((pPlayer->unk29E4 - pPlayer->unk29EC) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78)
{
// Node 10
temp_a0 = (2 + 1);
@@ -25419,7 +25436,7 @@ void *increment_num_kills_display_text_in_MP(void) {
{
// Node 11
phi_a0 = temp_a0;
if ((pPlayer->unk29E4 - pPlayer->unk29F0) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78)
{
// Node 12
phi_a0 = (temp_a0 + 1);
@@ -25431,10 +25448,10 @@ void *increment_num_kills_display_text_in_MP(void) {
}
// Node 13
phi_return_reg = pPlayer;
if (cur_player_stat_ptr->unk58 < phi_a0)
if (pPlayersPerm->most_killed_one_time < phi_a0)
{
// Node 14
cur_player_stat_ptr->unk58 = (s32) phi_a0;
pPlayersPerm->most_killed_one_time = (s32) phi_a0;
phi_return_reg = pPlayer;
}
}
@@ -25446,8 +25463,8 @@ void *increment_num_kills_display_text_in_MP(void) {
GLOBAL_ASM(
.text
glabel increment_num_kills_display_text_in_MP
/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140
/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp)
/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp)
@@ -25469,8 +25486,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp)
/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID
/* 09F308 7F06A7D8 340498DA */ li $a0, 39130
/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(cur_player_stat_ptr)
/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(cur_player_stat_ptr)($t0)
/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm)
/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0)
/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD)
/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8
/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40
@@ -25479,8 +25496,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0)
/* 09F32C 7F06A7FC 0FC228F2 */ jal display_string_in_lower_left_corner
/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40
/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1)
/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2
/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860
@@ -25494,8 +25511,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C
/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1)
/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1)
/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1)
.L7F06A84C:
/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6
@@ -25542,8 +25559,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F41C 7F06A8EC 00000000 */ nop
/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1
.L7F06A8F4:
/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1)
/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0
/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914
@@ -25561,8 +25578,8 @@ glabel increment_num_kills_display_text_in_MP
GLOBAL_ASM(
.text
glabel increment_num_kills_display_text_in_MP
/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140
/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp)
/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp)
@@ -25584,18 +25601,18 @@ glabel increment_num_kills_display_text_in_MP
/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp)
/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID
/* 09F308 7F06A7D8 340498DA */ li $a0, 39130
/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(cur_player_stat_ptr)
/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(cur_player_stat_ptr)($t0)
/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm)
/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0)
/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD)
/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8
/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40
/* 09F320 7F06A7F0 00403025 */ move $a2, $v0
/* 09F324 7F06A7F4 0C002B25 */ jal sprintf
/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0)
/* 09F32C 7F06A7FC 0FC228F2 */ jal jp_FUN_7f08ac40
/* 09F32C 7F06A7FC 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40
/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1)
/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2
/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860
@@ -25609,8 +25626,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C
/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1)
/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1)
/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1)
.L7F06A84C:
/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6
@@ -25657,8 +25674,8 @@ glabel increment_num_kills_display_text_in_MP
/* 09F41C 7F06A8EC 00000000 */ nop
/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1
.L7F06A8F4:
/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(cur_player_stat_ptr)($v1)
/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1)
/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1)
/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0
/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914
@@ -25680,15 +25697,15 @@ glabel increment_num_kills_display_text_in_MP
#ifdef NONMATCHING
void get_curplay_killcount(void) {
// Node 0
return cur_player_stat_ptr->unk1C;
return pPlayersPerm->killcount;
}
#else
GLOBAL_ASM(
.text
glabel get_curplay_killcount
/* 09F454 7F06A924 3C0E8008 */ lui $t6, %hi(cur_player_stat_ptr)
/* 09F458 7F06A928 8DCEA0B4 */ lw $t6, %lo(cur_player_stat_ptr)($t6)
/* 09F454 7F06A924 3C0E8008 */ lui $t6, %hi(pPlayersPerm)
/* 09F458 7F06A928 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6)
/* 09F45C 7F06A92C 03E00008 */ jr $ra
/* 09F460 7F06A930 8DC2001C */ lw $v0, 0x1c($t6)
)
@@ -25699,17 +25716,16 @@ glabel get_curplay_killcount
#ifdef NONMATCHING
void *increment_num_times_killed_MwtGC(void) {
// Node 0
cur_player_stat_ptr->unk20 = (s32) (cur_player_stat_ptr->unk20 + 1);
return cur_player_stat_ptr;
void increment_num_times_killed_MwtGC(void)
{
pPlayersPerm->ggkillcount++;
}
#else
GLOBAL_ASM(
.text
glabel increment_num_times_killed_MwtGC
/* 09F464 7F06A934 3C028008 */ lui $v0, %hi(cur_player_stat_ptr)
/* 09F468 7F06A938 8C42A0B4 */ lw $v0, %lo(cur_player_stat_ptr)($v0)
/* 09F464 7F06A934 3C028008 */ lui $v0, %hi(pPlayersPerm)
/* 09F468 7F06A938 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0)
/* 09F46C 7F06A93C 8C4E0020 */ lw $t6, 0x20($v0)
/* 09F470 7F06A940 25CF0001 */ addiu $t7, $t6, 1
/* 09F474 7F06A944 03E00008 */ jr $ra
@@ -25724,14 +25740,14 @@ glabel increment_num_times_killed_MwtGC
#ifdef NONMATCHING
void get_times_killed_mwtgx(void) {
// Node 0
return cur_player_stat_ptr->unk20;
return pPlayersPerm->ggkillcount;
}
#else
GLOBAL_ASM(
.text
glabel get_times_killed_mwtgx
/* 09F47C 7F06A94C 3C0E8008 */ lui $t6, %hi(cur_player_stat_ptr)
/* 09F480 7F06A950 8DCEA0B4 */ lw $t6, %lo(cur_player_stat_ptr)($t6)
/* 09F47C 7F06A94C 3C0E8008 */ lui $t6, %hi(pPlayersPerm)
/* 09F480 7F06A950 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6)
/* 09F484 7F06A954 03E00008 */ jr $ra
/* 09F488 7F06A958 8DC20020 */ lw $v0, 0x20($t6)
)
@@ -25742,35 +25758,22 @@ glabel get_times_killed_mwtgx
#ifdef NONMATCHING
void increment_num_deaths(void) {
s32 sp28;
? sp30;
? temp_ret;
? phi_return_reg;
// Node 0
pPlayer->unk29D8 = (s32) (pPlayer->unk29D8 + 1);
temp_ret = get_num_players();
phi_return_reg = temp_ret;
if (temp_ret >= 2)
void increment_num_deaths(void)
{
char acStack256 [256]
pPlayer->deathcount = (s32) (pPlayer->deathcount + 1);
if (get_num_players() >= 2)
{
// Node 1
if (pPlayer->unk29D8 == 1)
if (pPlayer->deathcount == 1)
{
// Node 2
sprintf(&sp30, get_textptr_for_textID(0x98db));
sprintf(acStack256, get_textptr_for_textID(0x98db));
}
else
{
// Node 3
sp28 = get_textptr_for_textID(0x98dc);
sprintf(&sp30, &aSDS, sp28, pPlayer->unk29D8, get_textptr_for_textID(0x98dd));
sprintf(acStack256, &aSDS, get_textptr_for_textID(0x98dc), pPlayer->deathcount, get_textptr_for_textID(0x98dd));
}
// Node 4
phi_return_reg = display_string_in_lower_left_corner(&sp30);
display_string_in_lower_left_corner(acStack256);
}
// Node 5
return phi_return_reg;
}
#else
#ifdef VERSION_US
@@ -25868,7 +25871,7 @@ glabel increment_num_deaths
/* 09F518 7F06A9E8 0C002B25 */ jal sprintf
/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp)
.L7F06A9F0:
/* 09F520 7F06A9F0 0FC228F2 */ jal jp_FUN_7f08ac40
/* 09F520 7F06A9F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30
.L7F06A9F8:
/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp)
@@ -25885,7 +25888,7 @@ glabel increment_num_deaths
#ifdef NONMATCHING
void get_curplayer_numdeaths(void) {
// Node 0
return pPlayer->unk29D8;
return pPlayer->deathcount;
}
#else
@@ -25914,42 +25917,42 @@ void *increment_num_suicides_display_MP(void) {
void *phi_return_reg;
// Node 0
pPlayer->unk29DC = (s32) (pPlayer->unk29DC + 1);
pPlayer->num_suicides = (s32) (pPlayer->num_suicides + 1);
temp_ret = get_num_players();
phi_return_reg = temp_ret;
if (temp_ret >= 2)
{
// Node 1
sp34 = sub_GAME_7F08BFB8();
sprintf(&sp40, &aSD_0, get_textptr_for_textID(0x98de), pPlayer->unk29DC);
sprintf(&sp40, &aSD_0, get_textptr_for_textID(0x98de), pPlayer->num_suicides);
display_string_in_lower_left_corner(&sp40);
if (cur_player_stat_ptr->unk1C >= 2)
if (pPlayersPerm->killcount >= 2)
{
// Node 2
temp_v1 = (sp34 - pPlayer->unk29E4);
if (cur_player_stat_ptr->unk48 < temp_v1)
temp_v1 = (sp34 - pPlayer->last_kill_time);
if (pPlayersPerm->slowest2kills < temp_v1)
{
// Node 3
cur_player_stat_ptr->unk48 = temp_v1;
pPlayersPerm->slowest2kills = temp_v1;
}
// Node 4
if (temp_v1 < cur_player_stat_ptr->unk44)
if (temp_v1 < pPlayersPerm->fastest2kills)
{
// Node 5
cur_player_stat_ptr->unk44 = temp_v1;
pPlayersPerm->fastest2kills = temp_v1;
}
}
// Node 6
pPlayer->unk29F0 = (s32) pPlayer->unk29EC;
pPlayer->unk29EC = (s32) pPlayer->unk29E8;
pPlayer->unk29E8 = (s32) pPlayer->unk29E4;
pPlayer->unk29E4 = sp34;
pPlayer->unk29E8 = (s32) pPlayer->last_kill_time;
pPlayer->last_kill_time = sp34;
phi_v1 = 1;
if (-1 != pPlayer->unk29E8)
{
// Node 7
phi_v1 = 1;
if ((pPlayer->unk29E4 - pPlayer->unk29E8) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78)
{
// Node 8
phi_v1 = 2;
@@ -25957,7 +25960,7 @@ void *increment_num_suicides_display_MP(void) {
{
// Node 9
phi_v1 = 2;
if ((pPlayer->unk29E4 - pPlayer->unk29EC) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78)
{
// Node 10
temp_v1_2 = (2 + 1);
@@ -25966,7 +25969,7 @@ void *increment_num_suicides_display_MP(void) {
{
// Node 11
phi_v1 = temp_v1_2;
if ((pPlayer->unk29E4 - pPlayer->unk29F0) < 0x78)
if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78)
{
// Node 12
phi_v1 = (temp_v1_2 + 1);
@@ -25977,12 +25980,12 @@ void *increment_num_suicides_display_MP(void) {
}
}
// Node 13
phi_return_reg = cur_player_stat_ptr;
if (cur_player_stat_ptr->unk58 < phi_v1)
phi_return_reg = pPlayersPerm;
if (pPlayersPerm->most_killed_one_time < phi_v1)
{
// Node 14
cur_player_stat_ptr->unk58 = (s32) phi_v1;
phi_return_reg = cur_player_stat_ptr;
pPlayersPerm->most_killed_one_time = (s32) phi_v1;
phi_return_reg = pPlayersPerm;
}
}
// Node 15
@@ -26021,8 +26024,8 @@ glabel increment_num_suicides_display_MP
/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8)
/* 09F5AC 7F06AA7C 0FC228F2 */ jal display_string_in_lower_left_corner
/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40
/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(cur_player_stat_ptr)
/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(cur_player_stat_ptr) # addiu $a3, $a3, -0x5f4c
/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm)
/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c
/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3)
/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0)
/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2
@@ -26128,10 +26131,10 @@ glabel increment_num_suicides_display_MP
/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0
/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf
/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8)
/* 09F5AC 7F06AA7C 0FC228F2 */ jal jp_FUN_7f08ac40
/* 09F5AC 7F06AA7C 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40
/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(cur_player_stat_ptr)
/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(cur_player_stat_ptr) # addiu $a3, $a3, -0x5f4c
/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm)
/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c
/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3)
/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0)
/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2
+125 -100
View File
@@ -205,13 +205,13 @@ struct struct_15 D_8003F80C[] = {
#ifdef NONMATCHING
void sub_GAME_7F091740(void) {
void cheatButton_7F091740(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F091740
glabel cheatButton_7F091740
/* 0C6270 7F091740 AFA40000 */ sw $a0, ($sp)
/* 0C6274 7F091744 308EFFFF */ andi $t6, $a0, 0xffff
/* 0C6278 7F091748 01C02025 */ move $a0, $t6
@@ -238,13 +238,13 @@ glabel sub_GAME_7F091740
#ifdef NONMATCHING
void sub_GAME_7F09177C(void) {
void cheatButton_7F09177C(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F09177C
glabel cheatButton_7F09177C
/* 0C62AC 7F09177C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0C62B0 7F091780 AFB1001C */ sw $s1, 0x1c($sp)
/* 0C62B4 7F091784 AFBF002C */ sw $ra, 0x2c($sp)
@@ -338,7 +338,7 @@ glabel sub_GAME_7F09177C
/* 0C63F0 7F0918C0 54850011 */ bnel $a0, $a1, .L7F091908
/* 0C63F4 7F0918C4 92280010 */ lbu $t0, 0x10($s1)
/* 0C63F8 7F0918C8 A0C012B5 */ sb $zero, 0x12b5($a2)
/* 0C63FC 7F0918CC 0FC249EF */ jal sub_GAME_7F0927BC
/* 0C63FC 7F0918CC 0FC249EF */ jal cheatCheckIfOn
/* 0C6400 7F0918D0 92240000 */ lbu $a0, ($s1)
/* 0C6404 7F0918D4 10400005 */ beqz $v0, .L7F0918EC
/* 0C6408 7F0918D8 00000000 */ nop
@@ -347,12 +347,12 @@ glabel sub_GAME_7F09177C
/* 0C6414 7F0918E4 13200005 */ beqz $t9, .L7F0918FC
/* 0C6418 7F0918E8 00000000 */ nop
.L7F0918EC:
/* 0C641C 7F0918EC 0FC246D9 */ jal sub_GAME_7F091B64
/* 0C641C 7F0918EC 0FC246D9 */ jal handle_cheats_turned_on
/* 0C6420 7F0918F0 92240000 */ lbu $a0, ($s1)
/* 0C6424 7F0918F4 10000004 */ b .L7F091908
/* 0C6428 7F0918F8 92280010 */ lbu $t0, 0x10($s1)
.L7F0918FC:
/* 0C642C 7F0918FC 0FC2490E */ jal sub_GAME_7F092438
/* 0C642C 7F0918FC 0FC2490E */ jal cheatDisplayMessageActivateCheat
/* 0C6430 7F091900 92240000 */ lbu $a0, ($s1)
/* 0C6434 7F091904 92280010 */ lbu $t0, 0x10($s1)
.L7F091908:
@@ -379,13 +379,13 @@ glabel sub_GAME_7F09177C
#ifdef NONMATCHING
void sub_GAME_7F09193C(void) {
void cheat_buttons_mp_related(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F09193C
glabel cheat_buttons_mp_related
/* 0C646C 7F09193C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0C6470 7F091940 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C6474 7F091944 0FC26C54 */ jal get_cur_playernum
@@ -414,13 +414,13 @@ glabel sub_GAME_7F09193C
/* 0C64D0 7F0919A0 11400028 */ beqz $t2, .L7F091A44
/* 0C64D4 7F0919A4 A7A50024 */ sh $a1, 0x24($sp)
/* 0C64D8 7F0919A8 30A4FFFF */ andi $a0, $a1, 0xffff
/* 0C64DC 7F0919AC 0FC245D0 */ jal sub_GAME_7F091740
/* 0C64DC 7F0919AC 0FC245D0 */ jal cheatButton_7F091740
/* 0C64E0 7F0919B0 AFA60018 */ sw $a2, 0x18($sp)
/* 0C64E4 7F0919B4 24010001 */ li $at, 1
/* 0C64E8 7F0919B8 1441001E */ bne $v0, $at, .L7F091A34
/* 0C64EC 7F0919BC 8FA70018 */ lw $a3, 0x18($sp)
/* 0C64F0 7F0919C0 97A40026 */ lhu $a0, 0x26($sp)
/* 0C64F4 7F0919C4 0FC245D0 */ jal sub_GAME_7F091740
/* 0C64F4 7F0919C4 0FC245D0 */ jal cheatButton_7F091740
/* 0C64F8 7F0919C8 AFA70018 */ sw $a3, 0x18($sp)
/* 0C64FC 7F0919CC 24010001 */ li $at, 1
/* 0C6500 7F0919D0 14410018 */ bne $v0, $at, .L7F091A34
@@ -454,7 +454,7 @@ glabel sub_GAME_7F09193C
/* 0C656C 7F091A3C 8C8A0000 */ lw $t2, ($a0)
/* 0C6570 7F091A40 A14012B5 */ sb $zero, 0x12b5($t2)
.L7F091A44:
/* 0C6574 7F091A44 0FC245DF */ jal sub_GAME_7F09177C
/* 0C6574 7F091A44 0FC245DF */ jal cheatButton_7F09177C
/* 0C6578 7F091A48 00000000 */ nop
/* 0C657C 7F091A4C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C6580 7F091A50 27BD0028 */ addiu $sp, $sp, 0x28
@@ -467,38 +467,28 @@ glabel sub_GAME_7F09193C
#ifdef NONMATCHING
void sub_GAME_7F091A5C(void) {
u32 is_cheat_index_equal_to_1C(u32 cheatindex)
{
if (cheatindex == 0x1c) {
return 1;
}
return 0;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F091A5C
/* 0C658C 7F091A5C 2401001C */ li $at, 28
/* 0C6590 7F091A60 14810003 */ bne $a0, $at, .L7F091A70
/* 0C6594 7F091A64 00001025 */ move $v0, $zero
/* 0C6598 7F091A68 03E00008 */ jr $ra
/* 0C659C 7F091A6C 24020001 */ li $v0, 1
.L7F091A70:
/* 0C65A0 7F091A70 03E00008 */ jr $ra
/* 0C65A4 7F091A74 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F091A78(void) {
void cheatCheckIfMPCheat(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F091A78
glabel cheatCheckIfMPCheat
/* 0C65A8 7F091A78 00047100 */ sll $t6, $a0, 4
/* 0C65AC 7F091A7C 3C0F8004 */ lui $t7, %hi(D_8003F808)
/* 0C65B0 7F091A80 01EE7821 */ addu $t7, $t7, $t6
@@ -522,13 +512,48 @@ glabel sub_GAME_7F091A78
#ifdef NONMATCHING
void sub_GAME_7F091AAC(void) {
void turn_on_cheat_for_players(u32 cheatindex)
{
u32 uVar1;
u32 playernum;
u32 numplayers;
u32 i;
uVar1 = *(&D_8003F808 + cheatindex * 0x10);
playernum = get_cur_playernum();
numplayers = get_num_players();
if (numplayers == 1) {
handle_cheats_turned_on(cheatindex);
}
else {
if ((uVar1 & 4) != 0)
{
if ((uVar1 & 0x20) == 0)
{
i = 0;
if (0 < (int)numplayers)
{
while (i != numplayers)
{
set_cur_player(i);
handle_cheats_turned_on(cheatindex);
i = i + 1;
};
}
set_cur_player(playernum);
}
else
{
handle_cheats_turned_on(cheatindex);
}
}
}
return;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F091AAC
glabel turn_on_cheat_for_players
/* 0C65DC 7F091AAC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0C65E0 7F091AB0 AFB00018 */ sw $s0, 0x18($sp)
/* 0C65E4 7F091AB4 3C108004 */ lui $s0, %hi(D_8003F808)
@@ -545,7 +570,7 @@ glabel sub_GAME_7F091AAC
/* 0C6610 7F091AE0 24010001 */ li $at, 1
/* 0C6614 7F091AE4 14410005 */ bne $v0, $at, .L7F091AFC
/* 0C6618 7F091AE8 00408825 */ move $s1, $v0
/* 0C661C 7F091AEC 0FC246D9 */ jal sub_GAME_7F091B64
/* 0C661C 7F091AEC 0FC246D9 */ jal handle_cheats_turned_on
/* 0C6620 7F091AF0 02402025 */ move $a0, $s2
/* 0C6624 7F091AF4 10000016 */ b .L7F091B50
/* 0C6628 7F091AF8 8FBF0024 */ lw $ra, 0x24($sp)
@@ -555,7 +580,7 @@ glabel sub_GAME_7F091AAC
/* 0C6634 7F091B04 32180020 */ andi $t8, $s0, 0x20
/* 0C6638 7F091B08 13000005 */ beqz $t8, .L7F091B20
/* 0C663C 7F091B0C 00000000 */ nop
/* 0C6640 7F091B10 0FC246D9 */ jal sub_GAME_7F091B64
/* 0C6640 7F091B10 0FC246D9 */ jal handle_cheats_turned_on
/* 0C6644 7F091B14 02402025 */ move $a0, $s2
/* 0C6648 7F091B18 1000000D */ b .L7F091B50
/* 0C664C 7F091B1C 8FBF0024 */ lw $ra, 0x24($sp)
@@ -565,7 +590,7 @@ glabel sub_GAME_7F091AAC
.L7F091B28:
/* 0C6658 7F091B28 0FC26C43 */ jal set_cur_player
/* 0C665C 7F091B2C 02002025 */ move $a0, $s0
/* 0C6660 7F091B30 0FC246D9 */ jal sub_GAME_7F091B64
/* 0C6660 7F091B30 0FC246D9 */ jal handle_cheats_turned_on
/* 0C6664 7F091B34 02402025 */ move $a0, $s2
/* 0C6668 7F091B38 26100001 */ addiu $s0, $s0, 1
/* 0C666C 7F091B3C 1611FFFA */ bne $s0, $s1, .L7F091B28
@@ -589,7 +614,7 @@ glabel sub_GAME_7F091AAC
#ifdef NONMATCHING
void sub_GAME_7F091B64(void) {
void handle_cheats_turned_on(void) {
}
#else
@@ -677,7 +702,7 @@ glabel jpt_cheats_cheat
glabel finalamount
.word 0x3d4ccccd /*0.050000001*/
.text
glabel sub_GAME_7F091B64
glabel handle_cheats_turned_on
/* 0C6694 7F091B64 00047100 */ sll $t6, $a0, 4
/* 0C6698 7F091B68 3C0F8004 */ lui $t7, %hi(D_8003F808)
/* 0C669C 7F091B6C 01EE7821 */ addu $t7, $t7, $t6
@@ -896,7 +921,7 @@ cheats_cheat_dk_mode:
/* 0C69A8 7F091E78 3404B017 */ li $a0, 45079
/* 0C69AC 7F091E7C 0FC228F2 */ jal display_string_in_lower_left_corner
/* 0C69B0 7F091E80 00402025 */ move $a0, $v0
/* 0C69B4 7F091E84 0FC249FD */ jal sub_GAME_7F0927F4
/* 0C69B4 7F091E84 0FC249FD */ jal set_DKMode
/* 0C69B8 7F091E88 24040001 */ li $a0, 1
/* 0C69BC 7F091E8C 10000167 */ b .L7F09242C
/* 0C69C0 7F091E90 8FBF0014 */ lw $ra, 0x14($sp)
@@ -954,8 +979,8 @@ cheats_cheat_extra_weapons:
cheats_cheat_tiny_bond:
/* 0C6A8C 7F091F5C 24010001 */ li $at, 1
/* 0C6A90 7F091F60 14410131 */ bne $v0, $at, .L7F092428
/* 0C6A94 7F091F64 3C0B8008 */ lui $t3, %hi(cur_player_stat_ptr)
/* 0C6A98 7F091F68 8D6BA0B4 */ lw $t3, %lo(cur_player_stat_ptr)($t3)
/* 0C6A94 7F091F64 3C0B8008 */ lui $t3, %hi(pPlayersPerm)
/* 0C6A98 7F091F68 8D6BA0B4 */ lw $t3, %lo(pPlayersPerm)($t3)
/* 0C6A9C 7F091F6C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C6AA0 7F091F70 44818000 */ mtc1 $at, $f16
/* 0C6AA4 7F091F74 C5720064 */ lwc1 $f18, 0x64($t3)
@@ -968,9 +993,9 @@ cheats_cheat_tiny_bond:
/* 0C6AC0 7F091F90 0FC228F2 */ jal display_string_in_lower_left_corner
/* 0C6AC4 7F091F94 00402025 */ move $a0, $v0
/* 0C6AC8 7F091F98 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0C6ACC 7F091F9C 3C0A8008 */ lui $t2, %hi(cur_player_stat_ptr)
/* 0C6ACC 7F091F9C 3C0A8008 */ lui $t2, %hi(pPlayersPerm)
/* 0C6AD0 7F091FA0 44810000 */ mtc1 $at, $f0
/* 0C6AD4 7F091FA4 8D4AA0B4 */ lw $t2, %lo(cur_player_stat_ptr)($t2)
/* 0C6AD4 7F091FA4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2)
/* 0C6AD8 7F091FA8 3C0C8008 */ lui $t4, %hi(pPlayer)
/* 0C6ADC 7F091FAC E5400064 */ swc1 $f0, 0x64($t2)
/* 0C6AE0 7F091FB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4)
@@ -1255,7 +1280,7 @@ cheats_debug_unlocklevel:
/* 0C6EE4 7F0923B4 00003025 */ move $a2, $zero
/* 0C6EE8 7F0923B8 AFA30018 */ sw $v1, 0x18($sp)
/* 0C6EEC 7F0923BC AFA5001C */ sw $a1, 0x1c($sp)
/* 0C6EF0 7F0923C0 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 0C6EF0 7F0923C0 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 0C6EF4 7F0923C4 AFA80020 */ sw $t0, 0x20($sp)
/* 0C6EF8 7F0923C8 24010003 */ li $at, 3
/* 0C6EFC 7F0923CC 8FA30018 */ lw $v1, 0x18($sp)
@@ -1378,7 +1403,7 @@ glabel finalamount
.word 0x3d4ccccd /*0.050000001*/
.text
glabel sub_GAME_7F091B64
glabel handle_cheats_turned_on
/* 0C71B4 7F092644 00047100 */ sll $t6, $a0, 4
/* 0C71B8 7F092648 3C0F8004 */ lui $t7, %hi(D_8003F808)
/* 0C71BC 7F09264C 01EE7821 */ addu $t7, $t7, $t6
@@ -1436,7 +1461,7 @@ cheats_cheat_invincibility:
/* 0C727C 7F09270C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7280 7F092710 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7284 7F092714 3404B00F */ li $a0, 45071
/* 0C7288 7F092718 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7288 7F092718 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C728C 7F09271C 00402025 */ move $a0, $v0
/* 0C7290 7F092720 0FC229A0 */ jal set_bondata_invincible_flag
/* 0C7294 7F092724 24040001 */ li $a0, 1
@@ -1449,7 +1474,7 @@ cheats_cheat_allguns:
/* 0C72AC 7F09273C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C72B0 7F092740 0FC30AA2 */ jal get_textptr_for_textID
/* 0C72B4 7F092744 3404B010 */ li $a0, 45072
/* 0C72B8 7F092748 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C72B8 7F092748 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C72BC 7F09274C 00402025 */ move $a0, $v0
/* 0C72C0 7F092750 0FC232CB */ jal set_BONDdata_allguns_flag
/* 0C72C4 7F092754 24040001 */ li $a0, 1
@@ -1458,7 +1483,7 @@ cheats_cheat_allguns:
cheats_cheat_max_ammo:
/* 0C72D0 7F092760 0FC30AA2 */ jal get_textptr_for_textID
/* 0C72D4 7F092764 3404B011 */ li $a0, 45073
/* 0C72D8 7F092768 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C72D8 7F092768 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C72DC 7F09276C 00402025 */ move $a0, $v0
/* 0C72E0 7F092770 0FC1A637 */ jal set_max_ammo_for_cur_player
/* 0C72E4 7F092774 00000000 */ nop
@@ -1528,7 +1553,7 @@ cheats_cheat_2x_health:
.Ljp7F09285C:
/* 0C73CC 7F09285C 0FC30AA2 */ jal get_textptr_for_textID
/* 0C73D0 7F092860 3404B012 */ li $a0, 45074
/* 0C73D4 7F092864 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C73D4 7F092864 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C73D8 7F092868 00402025 */ move $a0, $v0
/* 0C73DC 7F09286C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C73E0 7F092870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008
@@ -1559,7 +1584,7 @@ cheats_cheat_2x_armor:
.Ljp7F0928D0:
/* 0C7440 7F0928D0 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7444 7F0928D4 3404B013 */ li $a0, 45075
/* 0C7448 7F0928D8 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7448 7F0928D8 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C744C 7F0928DC 00402025 */ move $a0, $v0
/* 0C7450 7F0928E0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008
/* 0C7454 7F0928E4 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0
@@ -1579,7 +1604,7 @@ cheats_cheat_invisibility:
/* 0C7488 7F092918 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C748C 7F09291C 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7490 7F092920 3404B014 */ li $a0, 45076
/* 0C7494 7F092924 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7494 7F092924 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C7498 7F092928 00402025 */ move $a0, $v0
/* 0C749C 7F09292C 0FC229A8 */ jal set_invisible_to_guards_flag
/* 0C74A0 7F092930 00002025 */ move $a0, $zero
@@ -1588,16 +1613,16 @@ cheats_cheat_invisibility:
cheats_cheat_infinite_ammo:
/* 0C74AC 7F09293C 0FC30AA2 */ jal get_textptr_for_textID
/* 0C74B0 7F092940 3404B016 */ li $a0, 45078
/* 0C74B4 7F092944 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C74B4 7F092944 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C74B8 7F092948 00402025 */ move $a0, $v0
/* 0C74BC 7F09294C 10000197 */ b .Ljp7F092FAC
/* 0C74C0 7F092950 8FBF0014 */ lw $ra, 0x14($sp)
cheats_cheat_dk_mode:
/* 0C74C4 7F092954 0FC30AA2 */ jal get_textptr_for_textID
/* 0C74C8 7F092958 3404B017 */ li $a0, 45079
/* 0C74CC 7F09295C 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C74CC 7F09295C 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C74D0 7F092960 00402025 */ move $a0, $v0
/* 0C74D4 7F092964 0FC24CDD */ jal sub_GAME_7F0927F4
/* 0C74D4 7F092964 0FC24CDD */ jal set_DKMode
/* 0C74D8 7F092968 24040001 */ li $a0, 1
/* 0C74DC 7F09296C 1000018F */ b .Ljp7F092FAC
/* 0C74E0 7F092970 8FBF0014 */ lw $ra, 0x14($sp)
@@ -1648,15 +1673,15 @@ cheats_cheat_extra_weapons:
/* 0C7590 7F092A20 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7594 7F092A24 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7598 7F092A28 3404B018 */ li $a0, 45080
/* 0C759C 7F092A2C 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C759C 7F092A2C 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C75A0 7F092A30 00402025 */ move $a0, $v0
/* 0C75A4 7F092A34 1000015D */ b .Ljp7F092FAC
/* 0C75A8 7F092A38 8FBF0014 */ lw $ra, 0x14($sp)
cheats_cheat_tiny_bond:
/* 0C75AC 7F092A3C 24010001 */ li $at, 1
/* 0C75B0 7F092A40 14410159 */ bne $v0, $at, .Ljp7F092FA8
/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(cur_player_stat_ptr) # $t3, 0x8008
/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(cur_player_stat_ptr)($t3)
/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(pPlayersPerm) # $t3, 0x8008
/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(pPlayersPerm)($t3)
/* 0C75BC 7F092A4C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C75C0 7F092A50 44818000 */ mtc1 $at, $f16
/* 0C75C4 7F092A54 C5720064 */ lwc1 $f18, 0x64($t3)
@@ -1666,12 +1691,12 @@ cheats_cheat_tiny_bond:
/* 0C75D4 7F092A64 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C75D8 7F092A68 0FC30AA2 */ jal get_textptr_for_textID
/* 0C75DC 7F092A6C 3404B019 */ li $a0, 45081
/* 0C75E0 7F092A70 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C75E0 7F092A70 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C75E4 7F092A74 00402025 */ move $a0, $v0
/* 0C75E8 7F092A78 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(cur_player_stat_ptr) # $t2, 0x8008
/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) # $t2, 0x8008
/* 0C75F0 7F092A80 44810000 */ mtc1 $at, $f0
/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(cur_player_stat_ptr)($t2)
/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(pPlayersPerm)($t2)
/* 0C75F8 7F092A88 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008
/* 0C75FC 7F092A8C E5400064 */ swc1 $f0, 0x64($t2)
/* 0C7600 7F092A90 8D8CA120 */ lw $t4, %lo(pPlayer)($t4)
@@ -1688,7 +1713,7 @@ cheats_cheat_tiny_bond:
cheats_cheat_paintball:
/* 0C762C 7F092ABC 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7630 7F092AC0 3404B01A */ li $a0, 45082
/* 0C7634 7F092AC4 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7634 7F092AC4 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C7638 7F092AC8 00402025 */ move $a0, $v0
/* 0C763C 7F092ACC 10000137 */ b .Ljp7F092FAC
/* 0C7640 7F092AD0 8FBF0014 */ lw $ra, 0x14($sp)
@@ -1710,7 +1735,7 @@ cheats_cheat_10x_health:
.Ljp7F092B0C:
/* 0C767C 7F092B0C 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7680 7F092B10 3404B01B */ li $a0, 45083
/* 0C7684 7F092B14 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7684 7F092B14 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C7688 7F092B18 00402025 */ move $a0, $v0
/* 0C768C 7F092B1C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008
/* 0C7690 7F092B20 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0
@@ -1798,7 +1823,7 @@ cheats_cheat_fast:
/* 0C77BC 7F092C4C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C77C0 7F092C50 0FC30AA2 */ jal get_textptr_for_textID
/* 0C77C4 7F092C54 3404B01D */ li $a0, 45085
/* 0C77C8 7F092C58 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C77C8 7F092C58 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C77CC 7F092C5C 00402025 */ move $a0, $v0
/* 0C77D0 7F092C60 0FC246C1 */ jal set_debug_fast_bond_flag
/* 0C77D4 7F092C64 24040001 */ li $a0, 1
@@ -1825,7 +1850,7 @@ cheats_debug_fast_ani:
/* 0C7820 7F092CB0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7824 7F092CB4 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7828 7F092CB8 3404B034 */ li $a0, 45108
/* 0C782C 7F092CBC 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C782C 7F092CBC 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C7830 7F092CC0 00402025 */ move $a0, $v0
/* 0C7834 7F092CC4 3C014080 */ li $at, 0x40800000 # 4.000000
/* 0C7838 7F092CC8 44816000 */ mtc1 $at, $f12
@@ -1845,7 +1870,7 @@ cheats_debug_slow_ani:
/* 0C786C 7F092CFC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7870 7F092D00 0FC30AA2 */ jal get_textptr_for_textID
/* 0C7874 7F092D04 3404B032 */ li $a0, 45106
/* 0C7878 7F092D08 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0C7878 7F092D08 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0C787C 7F092D0C 00402025 */ move $a0, $v0
/* 0C7880 7F092D10 3C013E80 */ li $at, 0x3E800000 # 0.250000
/* 0C7884 7F092D14 44816000 */ mtc1 $at, $f12
@@ -1997,7 +2022,7 @@ cheats_debug_unlocklevel:
/* 0C7AA4 7F092F34 00003025 */ move $a2, $zero
/* 0C7AA8 7F092F38 AFA30018 */ sw $v1, 0x18($sp)
/* 0C7AAC 7F092F3C AFA5001C */ sw $a1, 0x1c($sp)
/* 0C7AB0 7F092F40 0FC0791C */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 0C7AB0 7F092F40 0FC0791C */ jal isStageUnlockedAtDifficulty
/* 0C7AB4 7F092F44 AFA80020 */ sw $t0, 0x20($sp)
/* 0C7AB8 7F092F48 24010003 */ li $at, 3
/* 0C7ABC 7F092F4C 8FA30018 */ lw $v1, 0x18($sp)
@@ -2040,7 +2065,7 @@ cheats_debug_return_saved_ra:
#ifdef NONMATCHING
void sub_GAME_7F092438(void) {
void cheatDisplayMessageActivateCheat(void) {
}
#else
@@ -2125,7 +2150,7 @@ glabel jpt_800573DC
/*.word cheat_button_default*/
.text
glabel sub_GAME_7F092438
glabel cheatDisplayMessageActivateCheat
/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4
/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808)
/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6
@@ -2224,15 +2249,15 @@ cheat_button_dkmode:
/* 0C70C4 7F092594 3404B023 */ li $a0, 45091
/* 0C70C8 7F092598 0FC228F2 */ jal display_string_in_lower_left_corner
/* 0C70CC 7F09259C 00402025 */ move $a0, $v0
/* 0C70D0 7F0925A0 0FC249FD */ jal sub_GAME_7F0927F4
/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode
/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero
/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4
/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp)
cheat_button_unknown_0:
/* 0C70E0 7F0925B0 24010001 */ li $at, 1
/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0
/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(cur_player_stat_ptr)
/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(cur_player_stat_ptr)($t8)
/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm)
/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8)
/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4
/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8)
@@ -2245,8 +2270,8 @@ cheat_button_unknown_0:
/* 0C7114 7F0925E4 0FC228F2 */ jal display_string_in_lower_left_corner
/* 0C7118 7F0925E8 00402025 */ move $a0, $v0
/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(cur_player_stat_ptr)
/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(cur_player_stat_ptr)($t9)
/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm)
/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9)
/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8
/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer)
/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9)
@@ -2387,7 +2412,7 @@ glabel jpt_800573DC
/*.word cheat_button_default*/
.text
glabel sub_GAME_7F092438
glabel cheatDisplayMessageActivateCheat
/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4
/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808)
/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6
@@ -2437,7 +2462,7 @@ cheat_button_invincibility:
/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID
/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086
/* 0C7020 7F0924F0 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C7020 7F0924F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C7024 7F0924F4 00402025 */ move $a0, $v0
/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag
/* 0C702C 7F0924FC 00002025 */ move $a0, $zero
@@ -2450,7 +2475,7 @@ cheat_button_all_guns:
/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID
/* 0C704C 7F09251C 3404B01F */ li $a0, 45087
/* 0C7050 7F092520 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C7050 7F092520 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C7054 7F092524 00402025 */ move $a0, $v0
/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag
/* 0C705C 7F09252C 00002025 */ move $a0, $zero
@@ -2468,7 +2493,7 @@ cheat_button_unknown:
/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID
/* 0C708C 7F09255C 3404B020 */ li $a0, 45088
/* 0C7090 7F092560 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C7090 7F092560 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C7094 7F092564 00402025 */ move $a0, $v0
/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag
/* 0C709C 7F09256C 24040001 */ li $a0, 1
@@ -2477,24 +2502,24 @@ cheat_button_unknown:
cheat_button_infinite_ammo:
/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID
/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090
/* 0C70B0 7F092580 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C70B0 7F092580 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C70B4 7F092584 00402025 */ move $a0, $v0
/* 0C70B8 7F092588 1000004A */ b .L7F0926B4
/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp)
cheat_button_dkmode:
/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID
/* 0C70C4 7F092594 3404B023 */ li $a0, 45091
/* 0C70C8 7F092598 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C70C8 7F092598 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C70CC 7F09259C 00402025 */ move $a0, $v0
/* 0C70D0 7F0925A0 0FC249FD */ jal sub_GAME_7F0927F4
/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode
/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero
/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4
/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp)
cheat_button_unknown_0:
/* 0C70E0 7F0925B0 24010001 */ li $at, 1
/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0
/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(cur_player_stat_ptr)
/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(cur_player_stat_ptr)($t8)
/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm)
/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8)
/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4
/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8)
@@ -2504,11 +2529,11 @@ cheat_button_unknown_0:
/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID
/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092
/* 0C7114 7F0925E4 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C7114 7F0925E4 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C7118 7F0925E8 00402025 */ move $a0, $v0
/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(cur_player_stat_ptr)
/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(cur_player_stat_ptr)($t9)
/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm)
/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9)
/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8
/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer)
/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9)
@@ -2526,7 +2551,7 @@ cheat_button_unknown_0:
cheat_button_paintball:
/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID
/* 0C7164 7F092634 3404B025 */ li $a0, 45093
/* 0C7168 7F092638 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C7168 7F092638 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C716C 7F09263C 00402025 */ move $a0, $v0
/* 0C7170 7F092640 1000001C */ b .L7F0926B4
/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp)
@@ -2546,7 +2571,7 @@ cheat_button_fast_mode:
/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID
/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095
/* 0C71B0 7F092680 0FC228F2 */ jal jp_FUN_7f08ac40
/* 0C71B0 7F092680 0FC228F2 */ jal jp_display_string_in_lower_left_corner
/* 0C71B4 7F092684 00402025 */ move $a0, $v0
/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag
/* 0C71BC 7F09268C 00002025 */ move $a0, $zero
@@ -2575,7 +2600,7 @@ cheat_button_default:
#ifdef NONMATCHING
void sub_GAME_7F0926C0(void) {
void cheatDisableAllCheats(void) {
s32 sp30;
s32 temp_s4;
s32 temp_s0;
@@ -2601,10 +2626,10 @@ loop_3:
if ((phi_s1->unk-4 & 0x40) != 0)
{
// Node 4
if (sub_GAME_7F0927BC(phi_s0) != 0)
if (cheatCheckIfOn(phi_s0) != 0)
{
// Node 5
sub_GAME_7F092438(phi_s0);
cheatDisplayMessageActivateCheat(phi_s0);
}
}
// Node 6
@@ -2652,7 +2677,7 @@ GLOBAL_ASM(
/*.word cheat_button_default*/
/*.word cheat_button_default*/
.text
glabel sub_GAME_7F0926C0
glabel cheatDisableAllCheats
/* 0C71F0 7F0926C0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0C71F4 7F0926C4 AFBF002C */ sw $ra, 0x2c($sp)
/* 0C71F8 7F0926C8 AFB40028 */ sw $s4, 0x28($sp)
@@ -2678,11 +2703,11 @@ glabel sub_GAME_7F0926C0
/* 0C7240 7F092710 31CF0040 */ andi $t7, $t6, 0x40
/* 0C7244 7F092714 51E00008 */ beql $t7, $zero, .L7F092738
/* 0C7248 7F092718 26100001 */ addiu $s0, $s0, 1
/* 0C724C 7F09271C 0FC249EF */ jal sub_GAME_7F0927BC
/* 0C724C 7F09271C 0FC249EF */ jal cheatCheckIfOn
/* 0C7250 7F092720 02002025 */ move $a0, $s0
/* 0C7254 7F092724 50400004 */ beql $v0, $zero, .L7F092738
/* 0C7258 7F092728 26100001 */ addiu $s0, $s0, 1
/* 0C725C 7F09272C 0FC2490E */ jal sub_GAME_7F092438
/* 0C725C 7F09272C 0FC2490E */ jal cheatDisplayMessageActivateCheat
/* 0C7260 7F092730 02002025 */ move $a0, $s0
/* 0C7264 7F092734 26100001 */ addiu $s0, $s0, 1
.L7F092738:
@@ -2710,7 +2735,7 @@ glabel sub_GAME_7F0926C0
#ifdef NONMATCHING
void sub_GAME_7F092774(void) {
void cheatGetMenuTextPointer(void) {
}
#else
@@ -2726,7 +2751,7 @@ GLOBAL_ASM(
/*.word cheat_button_default*/
/*.word cheat_button_default*/
.text
glabel sub_GAME_7F092774
glabel cheatGetMenuTextPointer
/* 0C72A4 7F092774 00047100 */ sll $t6, $a0, 4
/* 0C72A8 7F092778 3C028004 */ lui $v0, %hi(D_8003F804)
/* 0C72AC 7F09277C 004E1021 */ addu $v0, $v0, $t6
@@ -2755,7 +2780,7 @@ glabel sub_GAME_7F092774
#ifdef NONMATCHING
void sub_GAME_7F0927BC(void) {
void cheatCheckIfOn(void) {
}
#else
@@ -2767,7 +2792,7 @@ GLOBAL_ASM(
.word cheat_button_default
.text
glabel sub_GAME_7F0927BC
glabel cheatCheckIfOn
/* 0C72EC 7F0927BC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0C72F0 7F0927C0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C72F4 7F0927C4 0FC26C54 */ jal get_cur_playernum
@@ -2790,7 +2815,7 @@ glabel sub_GAME_7F0927BC
#ifdef NONMATCHING
void sub_GAME_7F0927F4(void) {
void set_DKMode(void) {
}
#else
@@ -2800,7 +2825,7 @@ GLOBAL_ASM(
glabel D_80057504
.word 0x3f4ccccd /*0.80000001*/
.text
glabel sub_GAME_7F0927F4
glabel set_DKMode
/* 0C7324 7F0927F4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0C7328 7F0927F8 AFB10024 */ sw $s1, 0x24($sp)
/* 0C732C 7F0927FC AFBF002C */ sw $ra, 0x2c($sp)
@@ -2853,7 +2878,7 @@ GLOBAL_ASM(
glabel D_80057504
.word 0x3f4ccccd /*0.80000001*/
.text
glabel sub_GAME_7F0927F4
glabel set_DKMode
/* 0C7EE4 7F093374 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0C7EE8 7F093378 AFB00020 */ sw $s0, 0x20($sp)
/* 0C7EEC 7F09337C AFBF002C */ sw $ra, 0x2c($sp)
+10 -10
View File
@@ -1970,8 +1970,8 @@ glabel sub_GAME_7F01FC10
/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10
/* 054790 7F01FC60 00000000 */ nop
/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0)
/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(D_jpunk)
/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(D_jpunk) # addiu $v0, $v0, -0x7c88
/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(jp_global_timer_delta)
/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88
/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2
/* 0547A4 7F01FC74 00000000 */ nop
/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10
@@ -2819,8 +2819,8 @@ glabel sub_GAME_7F0205F0
/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 055138 7F020608 44811000 */ mtc1 $at, $f2
/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6
/* 055140 7F020610 3C018005 */ lui $at, %hi(D_jpunk)
/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(D_jpunk)($at)
/* 055140 7F020610 3C018005 */ lui $at, %hi(jp_global_timer_delta)
/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(jp_global_timer_delta)($at)
/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8
/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0
/* 055150 7F020620 00000000 */ nop
@@ -3081,7 +3081,7 @@ glabel sub_GAME_7F02083C
/* 055380 7F020850 AFA5009C */ sw $a1, 0x9c($sp)
/* 055384 7F020854 AFA60098 */ sw $a2, 0x98($sp)
/* 055388 7F020858 2404000C */ li $a0, 12
/* 05538C 7F02085C 0FC249EF */ jal sub_GAME_7F0927BC
/* 05538C 7F02085C 0FC249EF */ jal cheatCheckIfOn
/* 055390 7F020860 E7A40094 */ swc1 $f4, 0x94($sp)
/* 055394 7F020864 1040000E */ beqz $v0, .L7F0208A0
/* 055398 7F020868 8FA60098 */ lw $a2, 0x98($sp)
@@ -3463,7 +3463,7 @@ glabel sub_GAME_7F02083C
/* 055630 7F020AC0 AFA5009C */ sw $a1, 0x9c($sp)
/* 055634 7F020AC4 AFA70098 */ sw $a3, 0x98($sp)
/* 055638 7F020AC8 2404000C */ li $a0, 12
/* 05563C 7F020ACC 0FC24CCF */ jal sub_GAME_7F0927BC
/* 05563C 7F020ACC 0FC24CCF */ jal cheatCheckIfOn
/* 055640 7F020AD0 E7A40094 */ swc1 $f4, 0x94($sp)
/* 055644 7F020AD4 1040001C */ beqz $v0, .L7F020B48
/* 055648 7F020AD8 8FA70098 */ lw $a3, 0x98($sp)
@@ -4355,7 +4355,7 @@ glabel sub_GAME_7F020EF0
/* 055F78 7F021448 A04F0001 */ sb $t7, 1($v0)
/* 055F7C 7F02144C 8E0E0014 */ lw $t6, 0x14($s0)
/* 055F80 7F021450 35C90008 */ ori $t1, $t6, 8
/* 055F84 7F021454 0FC249EF */ jal sub_GAME_7F0927BC
/* 055F84 7F021454 0FC249EF */ jal cheatCheckIfOn
/* 055F88 7F021458 AE090014 */ sw $t1, 0x14($s0)
/* 055F8C 7F02145C 10400004 */ beqz $v0, .L7F021470
/* 055F90 7F021460 3C013EA0 */ li $at, 0x3EA00000 # 0.312500
@@ -5207,7 +5207,7 @@ glabel sub_GAME_7F020EF0
/* 056250 7F0216E0 A04F0001 */ sb $t7, 1($v0)
/* 056254 7F0216E4 8E0E0014 */ lw $t6, 0x14($s0)
/* 056258 7F0216E8 35C90008 */ ori $t1, $t6, 8
/* 05625C 7F0216EC 0FC24CCF */ jal sub_GAME_7F0927BC
/* 05625C 7F0216EC 0FC24CCF */ jal cheatCheckIfOn
/* 056260 7F0216F0 AE090014 */ sw $t1, 0x14($s0)
/* 056264 7F0216F4 10400018 */ beqz $v0, .Ljp7F021758
/* 056268 7F0216F8 00000000 */ nop
@@ -6003,8 +6003,8 @@ glabel sub_GAME_7F021BFC
/* 056A04 7F021ED4 AFA300A4 */ sw $v1, 0xa4($sp)
/* 056A08 7F021ED8 AFB800A0 */ sw $t8, 0xa0($sp)
.L7F021EDC:
/* 056A0C 7F021EDC 3C028008 */ lui $v0, %hi(cur_player_stat_ptr)
/* 056A10 7F021EE0 8C42A0B4 */ lw $v0, %lo(cur_player_stat_ptr)($v0)
/* 056A0C 7F021EDC 3C028008 */ lui $v0, %hi(pPlayersPerm)
/* 056A10 7F021EE0 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0)
/* 056A14 7F021EE4 27A40070 */ addiu $a0, $sp, 0x70
/* 056A18 7F021EE8 8C590034 */ lw $t9, 0x34($v0)
/* 056A1C 7F021EEC 272D0001 */ addiu $t5, $t9, 1
+8 -8
View File
@@ -81,7 +81,7 @@ glabel maybe_load_models_for_guards
/* 057E68 7F023338 AFA0002C */ sw $zero, 0x2c($sp)
/* 057E6C 7F02333C 2404000C */ li $a0, 12
/* 057E70 7F023340 AFA20024 */ sw $v0, 0x24($sp)
/* 057E74 7F023344 0FC249EF */ jal sub_GAME_7F0927BC
/* 057E74 7F023344 0FC249EF */ jal cheatCheckIfOn
/* 057E78 7F023348 E7AA0030 */ swc1 $f10, 0x30($sp)
/* 057E7C 7F02334C 10400005 */ beqz $v0, .L7F023364
/* 057E80 7F023350 C7B00034 */ lwc1 $f16, 0x34($sp)
@@ -217,7 +217,7 @@ glabel maybe_load_models_for_guards
/* 058198 7F023628 AFA0002C */ sw $zero, 0x2c($sp)
/* 05819C 7F02362C 2404000C */ li $a0, 12
/* 0581A0 7F023630 AFA20024 */ sw $v0, 0x24($sp)
/* 0581A4 7F023634 0FC24CCF */ jal sub_GAME_7F0927BC
/* 0581A4 7F023634 0FC24CCF */ jal cheatCheckIfOn
/* 0581A8 7F023638 E7AA0030 */ swc1 $f10, 0x30($sp)
/* 0581AC 7F02363C 10400009 */ beqz $v0, .Ljp7F023664
/* 0581B0 7F023640 8FA40038 */ lw $a0, 0x38($sp)
@@ -11938,8 +11938,8 @@ glabel sub_GAME_7F02C2B0
/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0)
/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at)
/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp)
/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(D_jpunk)
/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(D_jpunk)($at)
/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(jp_global_timer_delta)
/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(jp_global_timer_delta)($at)
/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6
/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp)
/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp)
@@ -13572,9 +13572,9 @@ glabel sub_GAME_7F02D2E4
/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12
/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58)
/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at)
/* 061F54 7F02D424 3C018005 */ lui $at, %hi(D_jpunk)
/* 061F54 7F02D424 3C018005 */ lui $at, %hi(jp_global_timer_delta)
/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0
/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(D_jpunk)($at)
/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at)
/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp)
/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6
/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450
@@ -14198,7 +14198,7 @@ glabel sub_GAME_7F02D734
/* 062794 7F02DC64 24050056 */ li $a1, 86
/* 062798 7F02DC68 1040016E */ beqz $v0, .L7F02E224
/* 06279C 7F02DC6C AFA20208 */ sw $v0, 0x208($sp)
/* 0627A0 7F02DC70 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0627A0 7F02DC70 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 0627A4 7F02DC74 27A401C8 */ addiu $a0, $sp, 0x1c8
/* 0627A8 7F02DC78 C7AC024C */ lwc1 $f12, 0x24c($sp)
/* 0627AC 7F02DC7C 0FC1615C */ jal sub_GAME_7F058570
@@ -14313,7 +14313,7 @@ glabel sub_GAME_7F02D734
/* 062954 7F02DE24 24050057 */ li $a1, 87
/* 062958 7F02DE28 104000FE */ beqz $v0, .L7F02E224
/* 06295C 7F02DE2C AFA20128 */ sw $v0, 0x128($sp)
/* 062960 7F02DE30 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 062960 7F02DE30 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 062964 7F02DE34 27A400E8 */ addiu $a0, $sp, 0xe8
/* 062968 7F02DE38 3C018005 */ lui $at, %hi(D_80051F6C)
/* 06296C 7F02DE3C C4201F6C */ lwc1 $f0, %lo(D_80051F6C)($at)
+15 -37361
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -103,9 +103,11 @@ extern struct struct_20 D_80031D58;
extern u32 monitor_animation_microcode[];
extern u32 dword_D_80031F00[];
extern u32 dword_D_80031F44[];
extern f32 gas_damage_flag;
extern u32 gas_cutoff_flag;
extern struct object_standard * ptr_setup_objects;
void stop_alarm(void);
void sub_GAME_7F055EF8(void);
void check_deactivate_gas_sound(void);
#endif
+2
View File
@@ -131,6 +131,8 @@ struct headHat
float zsize;
};
extern struct p_itementry PitemZ_entries[];
extern struct item_related prop_cctv_related;
extern struct item_related prop_console_one_screen_related;
extern struct item_related prop_console_four_screen_related;
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -5,7 +5,7 @@
void cleanupAlarms(void) {
stop_alarm();
sub_GAME_7F055EF8();
check_deactivate_gas_sound();
}
+1 -1
View File
@@ -111,7 +111,7 @@ glabel alloc_false_GUARDdata_to_exec_global_action
/* 035C1C 7F0010EC 2484000F */ addiu $a0, $a0, 0xf
/* 035C20 7F0010F0 348F000F */ ori $t7, $a0, 0xf
/* 035C24 7F0010F4 39E4000F */ xori $a0, $t7, 0xf
/* 035C28 7F0010F8 0C0025C8 */ jal allocate_bytes_in_bank
/* 035C28 7F0010F8 0C0025C8 */ jal mempAllocBytesInBank
/* 035C2C 7F0010FC AFA70200 */ sw $a3, 0x200($sp)
/* 035C30 7F001100 3C0D8007 */ lui $t5, %hi(ptr_setup_path_tbl)
/* 035C34 7F001104 25AD5D00 */ addiu $t5, %lo(ptr_setup_path_tbl) # addiu $t5, $t5, 0x5d00
+11 -11
View File
@@ -252,11 +252,11 @@ s32 grab_rgb_screenshot_flag = 0;
//D:80037000
s32 grab_jpeg_screenshot_flag = 0;
//D:80037004
s32 D_80037004 = 0;
s32 player_pos_x = 0;
//D:80037008
s32 D_80037008 = 0;
s32 player_pos_y = 0;
//D:8003700C
s32 D_8003700C = 0;
s32 player_pos_z = 0;
@@ -412,11 +412,11 @@ glabel sub_GAME_7F09054C
void unknown_libname_68(void) {
void removed_do_debug_profile_flag_false(void) {
return;
}
void nullsub_35(void) {
void removed_do_debug_profile_flag_true(void) {
return;
}
@@ -1040,8 +1040,8 @@ debug_worldpos:
/* 0C57CC 7F090C9C 00000000 */ nop
/* 0C57D0 7F090CA0 10400074 */ beqz $v0, .L7F090E74
/* 0C57D4 7F090CA4 00401825 */ move $v1, $v0
/* 0C57D8 7F090CA8 3C028003 */ lui $v0, %hi(D_80037004)
/* 0C57DC 7F090CAC 24427004 */ addiu $v0, %lo(D_80037004) # addiu $v0, $v0, 0x7004
/* 0C57D8 7F090CA8 3C028003 */ lui $v0, %hi(player_pos_x)
/* 0C57DC 7F090CAC 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004
/* 0C57E0 7F090CB0 C4460000 */ lwc1 $f6, ($v0)
/* 0C57E4 7F090CB4 C4640008 */ lwc1 $f4, 8($v1)
/* 0C57E8 7F090CB8 C44A0004 */ lwc1 $f10, 4($v0)
@@ -1059,8 +1059,8 @@ debug_worldpos:
/* 0C5818 7F090CE8 0C007DF8 */ jal sqrtf
/* 0C581C 7F090CEC 460A4300 */ add.s $f12, $f8, $f10
/* 0C5820 7F090CF0 8FA30050 */ lw $v1, 0x50($sp)
/* 0C5824 7F090CF4 3C028003 */ lui $v0, %hi(D_80037004)
/* 0C5828 7F090CF8 24427004 */ addiu $v0, %lo(D_80037004) # addiu $v0, $v0, 0x7004
/* 0C5824 7F090CF4 3C028003 */ lui $v0, %hi(player_pos_x)
/* 0C5828 7F090CF8 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004
/* 0C582C 7F090CFC C4700008 */ lwc1 $f16, 8($v1)
/* 0C5830 7F090D00 E4500000 */ swc1 $f16, ($v0)
/* 0C5834 7F090D04 C472000C */ lwc1 $f18, 0xc($v1)
@@ -1147,12 +1147,12 @@ debug_profile:
/* 0C5948 7F090E18 39AE0001 */ xori $t6, $t5, 1
/* 0C594C 7F090E1C 11C00005 */ beqz $t6, .L7F090E34
/* 0C5950 7F090E20 AC4E0000 */ sw $t6, ($v0)
/* 0C5954 7F090E24 0FC24164 */ jal unknown_libname_68
/* 0C5954 7F090E24 0FC24164 */ jal removed_do_debug_profile_flag_false
/* 0C5958 7F090E28 00000000 */ nop
/* 0C595C 7F090E2C 10000012 */ b .L7F090E78
/* 0C5960 7F090E30 8FB80018 */ lw $t8, 0x18($sp)
.L7F090E34:
/* 0C5964 7F090E34 0FC24166 */ jal nullsub_35
/* 0C5964 7F090E34 0FC24166 */ jal removed_do_debug_profile_flag_true
/* 0C5968 7F090E38 00000000 */ nop
/* 0C596C 7F090E3C 1000000E */ b .L7F090E78
/* 0C5970 7F090E40 8FB80018 */ lw $t8, 0x18($sp)
+8 -13
View File
@@ -50,25 +50,20 @@ void set_vtx_gfx_mem_alloc(void) {
s32 sp18;
? temp_ret;
// Node 0
if (check_token(1, "-mgfx") != 0)
{
// Node 1
sp18 = get_num_players();
(0x80050000 + (sp18 * 4))->unk-7D20 = (s32) (strtol(check_token(1, "-mgfx"), 0, 0) << 0xa);
dyn_c_debug_notice_list_entry[get_num_players()] = strtol(check_token(1, "-mgfx"), 0, 0) << 0xa;
}
// Node 2
if (check_token(1, "-mvtx") != 0)
{
// Node 3
sp18 = get_num_players();
(0x80050000 + (sp18 * 4))->unk-7D10 = (s32) (strtol(check_token(1, "-mvtx"), 0, 0) << 0xa);
D_800482F0[get_num_players()] = strtol(check_token(1, "-mvtx"), 0, 0) << 0xa;
}
// Node 4
ptr_mgfx0_alloc_start = allocate_bytes_in_bank(((0x80050000 + (get_num_players() * 4))->unk-7D20 * 2), 4);
mempAllocBytesInBank(dyn_c_debug_notice_list_entry[sVar1] << 1, 4);
ptr_mgfx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start);
ptr_mgfx0_alloc_start.unk8 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start.unk4);
ptr_mvtx0_alloc_start = allocate_bytes_in_bank(((0x80050000 + (get_num_players() * 4))->unk-7D10 * 2), 4);
ptr_mvtx0_alloc_start = mempAllocBytesInBank(((0x80050000 + (get_num_players() * 4))->unk-7D10 * 2), 4);
ptr_mvtx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D10 + ptr_mvtx0_alloc_start);
temp_ret = get_num_players();
ptr_mvtx0_alloc_start.unk8 = (s32) ((0x80050000 + (temp_ret * 4))->unk-7D10 + ptr_mvtx0_alloc_start.unk4);
@@ -160,7 +155,7 @@ glabel set_vtx_gfx_mem_alloc
/* 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 allocate_bytes_in_bank
/* 0F209C 7F0BD56C 0C0025C8 */ jal mempAllocBytesInBank
/* 0F20A0 7F0BD570 01602025 */ move $a0, $t3
/* 0F20A4 7F0BD574 3C018009 */ lui $at, %hi(ptr_mgfx0_alloc_start)
/* 0F20A8 7F0BD578 0FC26919 */ jal get_num_players
@@ -191,7 +186,7 @@ glabel set_vtx_gfx_mem_alloc
/* 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 allocate_bytes_in_bank
/* 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
+2 -2
View File
@@ -14,12 +14,12 @@ void something_game_c_debug_related(void) {
void reset_mem_bank_5(void) {
sub_GAME_7F0BD234();
reset_mem_bank_a0(5);
mempResetBank(5);
something_mem_bank_a0(5);
}
void sub_GAME_7F0D1A7C(void) {
memp_related_6(5);
mempNullNextEntryInBank(5);
something_mem_bank_a0(5);
}
+3 -24
View File
@@ -421,33 +421,13 @@ glabel set_selected_difficulty
#ifdef NONMATCHING
void set_solo_and_ptr_briefing(LEVELID stage)
{
gamemode = GAMEMODE_SOLO;
selected_stage = stage;
briefingpage = pull_and_display_text_for_folder_a0((undefined *)stage);
briefingpage = pull_and_display_text_for_folder_a0(stage);
}
#else
GLOBAL_ASM(
.text
glabel set_solo_and_ptr_briefing
/* 05211C 7F01D5EC 3C018003 */ lui $at, %hi(gamemode)
/* 052120 7F01D5F0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 052124 7F01D5F4 AC20A8F0 */ sw $zero, %lo(gamemode)($at)
/* 052128 7F01D5F8 AFBF0014 */ sw $ra, 0x14($sp)
/* 05212C 7F01D5FC 3C018003 */ lui $at, %hi(selected_stage)
/* 052130 7F01D600 0FC03730 */ jal pull_and_display_text_for_folder_a0
/* 052134 7F01D604 AC24A8F4 */ sw $a0, %lo(selected_stage)($at)
/* 052138 7F01D608 8FBF0014 */ lw $ra, 0x14($sp)
/* 05213C 7F01D60C 3C018003 */ lui $at, %hi(briefingpage)
/* 052140 7F01D610 AC22A8F8 */ sw $v0, %lo(briefingpage)($at)
/* 052144 7F01D614 03E00008 */ jr $ra
/* 052148 7F01D618 27BD0018 */ addiu $sp, $sp, 0x18
)
#endif
void sub_GAME_7F01D61C(struct save_file *savefile)
{
@@ -457,8 +437,7 @@ void sub_GAME_7F01D61C(struct save_file *savefile)
#ifdef NONMATCHING
void sub_GAME_7F01D644(save_file *eeprom)
void sub_GAME_7F01D644(struct save_file *eeprom)
{
selected_folder_num_copy = selected_folder_num;
selected_folder_num = 100;
+10 -10
View File
@@ -1136,13 +1136,13 @@ glabel check_if_valid_folder_num
#ifdef NONMATCHING
void doesFolderHaveStageUnlockedAtDifficulty(void) {
s32 isStageUnlockedAtDifficulty(int foldernum,STAGENUM stageid,DIFFICULTY difficulty) {
}
#else
GLOBAL_ASM(
.text
glabel doesFolderHaveStageUnlockedAtDifficulty
glabel isStageUnlockedAtDifficulty
/* 052DF0 7F01E2C0 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 052DF4 7F01E2C4 AFBF002C */ sw $ra, 0x2c($sp)
/* 052DF8 7F01E2C8 AFB50028 */ sw $s5, 0x28($sp)
@@ -1680,7 +1680,7 @@ glabel check_egypt_completed_in_folder
/* 053474 7F01E944 02402025 */ move $a0, $s2
.L7F01E948:
/* 053478 7F01E948 02202825 */ move $a1, $s1
/* 05347C 7F01E94C 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 05347C 7F01E94C 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 053480 7F01E950 02003025 */ move $a2, $s0
/* 053484 7F01E954 10400003 */ beqz $v0, .L7F01E964
/* 053488 7F01E958 26100001 */ addiu $s0, $s0, 1
@@ -1739,21 +1739,21 @@ glabel check_cradle_completed_in_folder
/* 053528 7F01E9F8 AFBF0014 */ sw $ra, 0x14($sp)
/* 05352C 7F01E9FC AFA40018 */ sw $a0, 0x18($sp)
/* 053530 7F01EA00 24050011 */ li $a1, 17
/* 053534 7F01EA04 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 053534 7F01EA04 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 053538 7F01EA08 00003025 */ move $a2, $zero
/* 05353C 7F01EA0C 384E0003 */ xori $t6, $v0, 3
/* 053540 7F01EA10 2DC20001 */ sltiu $v0, $t6, 1
/* 053544 7F01EA14 1440000D */ bnez $v0, .L7F01EA4C
/* 053548 7F01EA18 8FA40018 */ lw $a0, 0x18($sp)
/* 05354C 7F01EA1C 24050011 */ li $a1, 17
/* 053550 7F01EA20 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 053550 7F01EA20 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 053554 7F01EA24 24060001 */ li $a2, 1
/* 053558 7F01EA28 384F0003 */ xori $t7, $v0, 3
/* 05355C 7F01EA2C 2DE20001 */ sltiu $v0, $t7, 1
/* 053560 7F01EA30 14400006 */ bnez $v0, .L7F01EA4C
/* 053564 7F01EA34 8FA40018 */ lw $a0, 0x18($sp)
/* 053568 7F01EA38 24050011 */ li $a1, 17
/* 05356C 7F01EA3C 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 05356C 7F01EA3C 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 053570 7F01EA40 24060002 */ li $a2, 2
/* 053574 7F01EA44 38580003 */ xori $t8, $v0, 3
/* 053578 7F01EA48 2F020001 */ sltiu $v0, $t8, 1
@@ -1779,14 +1779,14 @@ glabel check_aztec_completed_in_folder_secret_00
/* 053590 7F01EA60 AFBF0014 */ sw $ra, 0x14($sp)
/* 053594 7F01EA64 AFA40018 */ sw $a0, 0x18($sp)
/* 053598 7F01EA68 24050012 */ li $a1, 18
/* 05359C 7F01EA6C 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 05359C 7F01EA6C 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 0535A0 7F01EA70 24060001 */ li $a2, 1
/* 0535A4 7F01EA74 384E0003 */ xori $t6, $v0, 3
/* 0535A8 7F01EA78 2DC20001 */ sltiu $v0, $t6, 1
/* 0535AC 7F01EA7C 14400006 */ bnez $v0, .L7F01EA98
/* 0535B0 7F01EA80 8FA40018 */ lw $a0, 0x18($sp)
/* 0535B4 7F01EA84 24050012 */ li $a1, 18
/* 0535B8 7F01EA88 0FC078B0 */ jal doesFolderHaveStageUnlockedAtDifficulty
/* 0535B8 7F01EA88 0FC078B0 */ jal isStageUnlockedAtDifficulty
/* 0535BC 7F01EA8C 24060002 */ li $a2, 2
/* 0535C0 7F01EA90 384F0003 */ xori $t7, $v0, 3
/* 0535C4 7F01EA94 2DE20001 */ sltiu $v0, $t7, 1
@@ -1811,7 +1811,7 @@ 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 doesFolderHaveStageUnlockedAtDifficulty
/* 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
@@ -2178,7 +2178,7 @@ glabel update_eeprom_to_current_solo_watch_settings
/* 053A54 7F01EF24 00008025 */ move $s0, $zero
/* 053A58 7F01EF28 8FAF0020 */ lw $t7, 0x20($sp)
/* 053A5C 7F01EF2C 000271C3 */ sra $t6, $v0, 7
/* 053A60 7F01EF30 0FC2A460 */ jal sub_GAME_7F0A9180
/* 053A60 7F01EF30 0FC2A460 */ jal call_sfx_c_700091C8
/* 053A64 7F01EF34 A1EE000A */ sb $t6, 0xa($t7)
/* 053A68 7F01EF38 8FB90020 */ lw $t9, 0x20($sp)
/* 053A6C 7F01EF3C 0002C1C3 */ sra $t8, $v0, 7
+4 -3
View File
@@ -9534,13 +9534,14 @@ glabel sub_GAME_7F0CBE50
#ifdef NONMATCHING
void sub_GAME_7F0CBEE8(void) {
void calls_load_image_to_buffer(uint *image,uint *buffer)
{
load_image_to_buffer(&image,buffer);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0CBEE8
glabel calls_load_image_to_buffer
/* 100A18 7F0CBEE8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 100A1C 7F0CBEEC AFBF0014 */ sw $ra, 0x14($sp)
/* 100A20 7F0CBEF0 AFA4001C */ sw $a0, 0x1c($sp)
+39 -39
View File
@@ -13,71 +13,71 @@ s32 dword_CODE_bss_8008D0AC;
//8008D0B0;
s32 globalbank_rdram_offset;
//8008D0B4;
s32 *ptr_explosionDL;
s32 *pGlobalimagetable;
//8008D0B8;
s32 *genericimage;
struct sImageTableEntry *genericimage;
//8008D0BC
s32 *impactimages;
struct sImageTableEntry *impactimages;
//8008D0C0
s32 *explosion_smokeimages;
struct sImageTableEntry *explosion_smokeimages;
//8008D0C4
s32 *scattered_explosions;
struct sImageTableEntry *scattered_explosions;
//8008D0C8
s32 flareimage1;
struct sImageTableEntry *flareimage1;
//8008D0CC
s32 flareimage2;
struct sImageTableEntry *flareimage2;
//8008D0D0
s32 flareimage3;
struct sImageTableEntry *flareimage3;
//8008D0D4
s32 flareimage4;
struct sImageTableEntry *flareimage4;
//8008D0D8
s32 flareimage5;
struct sImageTableEntry *flareimage5;
//8008D0DC
s32 ammo9mmimage;
struct sImageTableEntry *ammo9mmimage;
//8008D0E0
s32 rifleammoimage;
struct sImageTableEntry *rifleammoimage;
//8008D0E4
s32 shotgunammoimage;
struct sImageTableEntry *shotgunammoimage;
//8008D0E8
s32 knifeammoimage;
struct sImageTableEntry *knifeammoimage;
//8008D0EC
s32 glaunchammoimage;
struct sImageTableEntry *glaunchammoimage;
//8008D0F0
s32 rocketammoimage;
struct sImageTableEntry *rocketammoimage;
//8008D0F4
s32 genericmineammoimage;
struct sImageTableEntry *genericmineammoimage;
//8008D0F8
s32 grenadeammoimage;
struct sImageTableEntry *grenadeammoimage;
//8008D0FC
s32 magnumammoimage;
struct sImageTableEntry *magnumammoimage;
//8008D100
s32 goldengunammoimage;
struct sImageTableEntry *goldengunammoimage;
//8008D104
s32 remotemineammoimage;
struct sImageTableEntry *remotemineammoimage;
//8008D108
s32 timedmineammoimage;
struct sImageTableEntry *timedmineammoimage;
//8008D10C
s32 proxmineammoimage;
struct sImageTableEntry *proxmineammoimage;
//8008D110
s32 tankammoimage;
struct sImageTableEntry *tankammoimage;
//8008D114;
s32 *crosshairimage;
struct sImageTableEntry *crosshairimage;
//8008D118
s32 betacrosshairimage;
struct sImageTableEntry *betacrosshairimage;
//8008D11C
s32 glassoverlayimage;
struct sImageTableEntry *glassoverlayimage;
//8008D120
s32 monitorimages;
struct sImageTableEntry *monitorimages;
//8008D124
s32 skywaterimages;
struct sImageTableEntry *skywaterimages;
//8008D128
s32 mainfolderimages;
struct sImageTableEntry *mainfolderimages;
//8008D12C
s32 mpradarimages;
struct sImageTableEntry *mpradarimages;
//8008D130
s32 mpcharselimages;
struct sImageTableEntry *mpcharselimages;
//8008D134
s32 mpstageselimages;
struct sImageTableEntry *mpstageselimages;
extern u8* _GlobalimagetableSegmentRomStart;
@@ -161,9 +161,9 @@ void load_prepare_global_image_bank(void) {
s32 i;
size = (0x2001400 - 0x2000000);
ptr_explosionDL = ((allocate_bytes_in_bank((size + 0x1000), 4) + 0xfff) & -0x1000);
romCopy(ptr_explosionDL, _GlobalimagetableSegmentRomStart, size);
globalbank_rdram_offset = (ptr_explosionDL + 0xfe000000);
pGlobalimagetable = ((mempAllocBytesInBank((size + 0x1000), 4) + 0xfff) & -0x1000);
romCopy(pGlobalimagetable, _GlobalimagetableSegmentRomStart, size);
globalbank_rdram_offset = (pGlobalimagetable + 0xfe000000);
genericimage = (s32) (globalbank_rdram_offset + 0x2000ac8);
impactimages = (s32) (globalbank_rdram_offset + 0x2000ad4);
explosion_smokeimages = (s32) (globalbank_rdram_offset + 0x2000bc4);
@@ -240,10 +240,10 @@ glabel load_prepare_global_image_bank
/* 100B04 7F0CBFD4 AFB2001C */ sw $s2, 0x1c($sp)
/* 100B08 7F0CBFD8 AFB10018 */ sw $s1, 0x18($sp)
/* 100B0C 7F0CBFDC 26041000 */ addiu $a0, $s0, 0x1000
/* 100B10 7F0CBFE0 0C0025C8 */ jal allocate_bytes_in_bank
/* 100B10 7F0CBFE0 0C0025C8 */ jal mempAllocBytesInBank
/* 100B14 7F0CBFE4 24050004 */ li $a1, 4
/* 100B18 7F0CBFE8 3C118009 */ lui $s1, %hi(ptr_explosionDL)
/* 100B1C 7F0CBFEC 2631D0B4 */ addiu $s1, %lo(ptr_explosionDL) # addiu $s1, $s1, -0x2f4c
/* 100B18 7F0CBFE8 3C118009 */ lui $s1, %hi(pGlobalimagetable)
/* 100B1C 7F0CBFEC 2631D0B4 */ addiu $s1, %lo(pGlobalimagetable) # addiu $s1, $s1, -0x2f4c
/* 100B20 7F0CBFF0 24590FFF */ addiu $t9, $v0, 0xfff
/* 100B24 7F0CBFF4 2401F000 */ li $at, -4096
/* 100B28 7F0CBFF8 AE220000 */ sw $v0, ($s1)
+8 -8
View File
@@ -51,9 +51,9 @@ glabel init_player_BONDdata_stats
/* 039C34 7F005104 8DE1FFFC */ lw $at, -4($t7)
/* 039C38 7F005108 15E8FFF8 */ bne $t7, $t0, .L7F0050EC
/* 039C3C 7F00510C ADC1FFFC */ sw $at, -4($t6)
/* 039C40 7F005110 3C048003 */ lui $a0, %hi(size_right_item_buffer)
/* 039C44 7F005114 8C84245C */ lw $a0, %lo(size_right_item_buffer)($a0)
/* 039C48 7F005118 0C0025C8 */ jal allocate_bytes_in_bank
/* 039C40 7F005110 3C048003 */ lui $a0, %hi(size_item_buffer)
/* 039C44 7F005114 8C84245C */ lw $a0, %lo(size_item_buffer)($a0)
/* 039C48 7F005118 0C0025C8 */ jal mempAllocBytesInBank
/* 039C4C 7F00511C 24050004 */ li $a1, 4
/* 039C50 7F005120 3C108008 */ lui $s0, %hi(pPlayer)
/* 039C54 7F005124 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50
@@ -62,9 +62,9 @@ glabel init_player_BONDdata_stats
/* 039C60 7F005130 AD220808 */ sw $v0, 0x808($t1)
/* 039C64 7F005134 24010001 */ li $at, 1
/* 039C68 7F005138 14410006 */ bne $v0, $at, .L7F005154
/* 039C6C 7F00513C 3C048003 */ lui $a0, %hi(size_left_item_buffer)
/* 039C70 7F005140 8C842460 */ lw $a0, %lo(size_left_item_buffer)($a0)
/* 039C74 7F005144 0C0025C8 */ jal allocate_bytes_in_bank
/* 039C6C 7F00513C 3C048003 */ lui $a0, %hi(size_item_buffer+0x4)
/* 039C70 7F005140 8C842460 */ lw $a0, %lo(size_item_buffer+0x4)($a0)
/* 039C74 7F005144 0C0025C8 */ jal mempAllocBytesInBank
/* 039C78 7F005148 24050004 */ li $a1, 4
/* 039C7C 7F00514C 8E0A0000 */ lw $t2, ($s0)
/* 039C80 7F005150 AD42080C */ sw $v0, 0x80c($t2)
@@ -89,10 +89,10 @@ glabel init_player_BONDdata_stats
/* 039CC8 7F005198 AD052A48 */ sw $a1, 0x2a48($t0)
/* 039CCC 7F00519C 8E0F0000 */ lw $t7, ($s0)
/* 039CD0 7F0051A0 00604025 */ move $t0, $v1
/* 039CD4 7F0051A4 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 039CD4 7F0051A4 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 039CD8 7F0051A8 ADE02A50 */ sw $zero, 0x2a50($t7)
/* 039CDC 7F0051AC 8E0E0000 */ lw $t6, ($s0)
/* 039CE0 7F0051B0 2463A0B4 */ addiu $v1, %lo(cur_player_stat_ptr) # addiu $v1, $v1, -0x5f4c
/* 039CE0 7F0051B0 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c
/* 039CE4 7F0051B4 ADC02A54 */ sw $zero, 0x2a54($t6)
/* 039CE8 7F0051B8 8E090000 */ lw $t1, ($s0)
.L7F0051BC:
+2 -2
View File
@@ -288,7 +288,7 @@ glabel sets_a_bunch_of_BONDdata_values_to_default
/* 03B1B8 7F006688 0FC1B5AC */ jal subcalcpos
/* 03B1BC 7F00668C 24840598 */ addiu $a0, $a0, 0x598
/* 03B1C0 7F006690 27B30050 */ addiu $s3, $sp, 0x50
/* 03B1C4 7F006694 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 03B1C4 7F006694 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 03B1C8 7F006698 02602025 */ move $a0, $s3
/* 03B1CC 7F00669C 8E300000 */ lw $s0, ($s1)
/* 03B1D0 7F0066A0 AFB30090 */ sw $s3, 0x90($sp)
@@ -581,7 +581,7 @@ glabel sets_a_bunch_of_BONDdata_values_to_default
/* 03B214 7F0066A4 0FC1B728 */ jal subcalcpos
/* 03B218 7F0066A8 24840598 */ addiu $a0, $a0, 0x598
/* 03B21C 7F0066AC 27B30050 */ addiu $s3, $sp, 0x50
/* 03B220 7F0066B0 0FC1613C */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 03B220 7F0066B0 0FC1613C */ jal reset_array_of_0x10_floats
/* 03B224 7F0066B4 02602025 */ move $a0, $s3
/* 03B228 7F0066B8 8E300000 */ lw $s0, ($s1)
/* 03B22C 7F0066BC AFB30090 */ sw $s3, 0x90($sp)
+2 -2
View File
@@ -107,7 +107,7 @@ void alloc_load_expand_ani_table(void) {
osCreateMesgQueue(&animMsgQ, &animMesg, 8);
sub_GAME_7F0009E0(&D_80029D60, &animMsgQ, &dword_CODE_bss_80069458);
temp_a2 = (&0x0000E7E0 - 0);
temp_ret = allocate_bytes_in_bank(temp_a2, 6, temp_a2);
temp_ret = mempAllocBytesInBank(temp_a2, 6, temp_a2);
ptr_animation_table = temp_ret;
romCopy(temp_ret, &_animation_dataSegmentRomStart, sp18);
expand_ani_table_entries(&animation_table_ptrs1);
@@ -139,7 +139,7 @@ glabel alloc_load_expand_ani_table
/* 035628 7F000AF8 01CF3023 */ subu $a2, $t6, $t7
/* 03562C 7F000AFC 00C02025 */ move $a0, $a2
/* 035630 7F000B00 AFA60018 */ sw $a2, 0x18($sp)
/* 035634 7F000B04 0C0025C8 */ jal allocate_bytes_in_bank
/* 035634 7F000B04 0C0025C8 */ jal mempAllocBytesInBank
/* 035638 7F000B08 24050006 */ li $a1, 6
/* 03563C 7F000B0C 3C038007 */ lui $v1, %hi(ptr_animation_table)
/* 035640 7F000B10 24639538 */ addiu $v1, %lo(ptr_animation_table) # addiu $v1, $v1, -0x6ac8
+2 -2
View File
@@ -214,7 +214,7 @@ glabel load_camera_intro_type_values
/* 03A388 7F005858 1441000B */ bne $v0, $at, .L7F005888
/* 03A38C 7F00585C 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4
/* 03A390 7F005860 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0
/* 03A394 7F005864 0C0025C8 */ jal allocate_bytes_in_bank
/* 03A394 7F005864 0C0025C8 */ jal mempAllocBytesInBank
/* 03A398 7F005868 24050004 */ li $a1, 4
/* 03A39C 7F00586C 244A003F */ addiu $t2, $v0, 0x3f
/* 03A3A0 7F005870 2401FFC0 */ li $at, -64
@@ -986,7 +986,7 @@ glabel load_camera_intro_type_values
/* 03A3EC 7F00587C 1441000B */ bne $v0, $at, .L7F0058AC
/* 03A3F0 7F005880 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4
/* 03A3F4 7F005884 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0
/* 03A3F8 7F005888 0C0025CC */ jal allocate_bytes_in_bank
/* 03A3F8 7F005888 0C0025CC */ jal mempAllocBytesInBank
/* 03A3FC 7F00588C 24050004 */ li $a1, 4
/* 03A400 7F005890 244A003F */ addiu $t2, $v0, 0x3f
/* 03A404 7F005894 2401FFC0 */ li $at, -64
+5 -5
View File
@@ -27,7 +27,7 @@ glabel alloc_explosion_smoke_casing_scorch_impact_buffers
/* 03B8F8 7F006DC8 3C018004 */ lui $at, %hi(D_80040178)
/* 03B8FC 7F006DCC 24041740 */ li $a0, 5952
/* 03B900 7F006DD0 24050004 */ li $a1, 4
/* 03B904 7F006DD4 0C0025C8 */ jal allocate_bytes_in_bank
/* 03B904 7F006DD4 0C0025C8 */ jal mempAllocBytesInBank
/* 03B908 7F006DD8 E4240178 */ swc1 $f4, %lo(D_80040178)($at)
/* 03B90C 7F006DDC 3C038008 */ lui $v1, %hi(ptr_explosion_buf)
/* 03B910 7F006DE0 2463A144 */ addiu $v1, %lo(ptr_explosion_buf) # addiu $v1, $v1, -0x5ebc
@@ -76,7 +76,7 @@ glabel alloc_explosion_smoke_casing_scorch_impact_buffers
/* 03B9B4 7F006E84 1420FFDB */ bnez $at, .L7F006DF4
/* 03B9B8 7F006E88 24C603E0 */ addiu $a2, $a2, 0x3e0
/* 03B9BC 7F006E8C 24041FE0 */ li $a0, 8160
/* 03B9C0 7F006E90 0C0025C8 */ jal allocate_bytes_in_bank
/* 03B9C0 7F006E90 0C0025C8 */ jal mempAllocBytesInBank
/* 03B9C4 7F006E94 24050004 */ li $a1, 4
/* 03B9C8 7F006E98 3C038008 */ lui $v1, %hi(ptr_smoke_buf)
/* 03B9CC 7F006E9C 2463A140 */ addiu $v1, %lo(ptr_smoke_buf) # addiu $v1, $v1, -0x5ec0
@@ -166,7 +166,7 @@ glabel alloc_explosion_smoke_casing_scorch_impact_buffers
/* 03BB14 7F006FE4 24010001 */ li $at, 1
/* 03BB18 7F006FE8 14410017 */ bne $v0, $at, .L7F007048
/* 03BB1C 7F006FEC 240406E0 */ li $a0, 1760
/* 03BB20 7F006FF0 0C0025C8 */ jal allocate_bytes_in_bank
/* 03BB20 7F006FF0 0C0025C8 */ jal mempAllocBytesInBank
/* 03BB24 7F006FF4 24050004 */ li $a1, 4
/* 03BB28 7F006FF8 3C058008 */ lui $a1, %hi(ptr_scorch_buf)
/* 03BB2C 7F006FFC 24A5A150 */ addiu $a1, %lo(ptr_scorch_buf) # addiu $a1, $a1, -0x5eb0
@@ -191,7 +191,7 @@ glabel alloc_explosion_smoke_casing_scorch_impact_buffers
/* 03BB74 7F007044 A5A60108 */ sh $a2, 0x108($t5)
.L7F007048:
/* 03BB78 7F007048 24041F40 */ li $a0, 8000
/* 03BB7C 7F00704C 0C0025C8 */ jal allocate_bytes_in_bank
/* 03BB7C 7F00704C 0C0025C8 */ jal mempAllocBytesInBank
/* 03BB80 7F007050 24050004 */ li $a1, 4
/* 03BB84 7F007054 3C058008 */ lui $a1, %hi(ptr_bullet_impact_buf)
/* 03BB88 7F007058 24A5A154 */ addiu $a1, %lo(ptr_bullet_impact_buf) # addiu $a1, $a1, -0x5eac
@@ -249,7 +249,7 @@ glabel alloc_explosion_smoke_casing_scorch_impact_buffers
/* 03BC44 7F007114 000A50C0 */ sll $t2, $t2, 3
/* 03BC48 7F007118 2544000F */ addiu $a0, $t2, 0xf
/* 03BC4C 7F00711C 00815824 */ and $t3, $a0, $at
/* 03BC50 7F007120 0C0025C8 */ jal allocate_bytes_in_bank
/* 03BC50 7F007120 0C0025C8 */ jal mempAllocBytesInBank
/* 03BC54 7F007124 01602025 */ move $a0, $t3
/* 03BC58 7F007128 3C068008 */ lui $a2, %hi(max_casings)
/* 03BC5C 7F00712C 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8
+1 -1
View File
@@ -39,7 +39,7 @@ glabel alloc_init_GUARDdata_entries
/* 035A14 7F000EE4 3498000F */ ori $t8, $a0, 0xf
/* 035A18 7F000EE8 ACCE0000 */ sw $t6, ($a2)
/* 035A1C 7F000EEC 3B04000F */ xori $a0, $t8, 0xf
/* 035A20 7F000EF0 0C0025C8 */ jal allocate_bytes_in_bank
/* 035A20 7F000EF0 0C0025C8 */ jal mempAllocBytesInBank
/* 035A24 7F000EF4 24050004 */ li $a1, 4
/* 035A28 7F000EF8 3C068003 */ lui $a2, %hi(num_guards)
/* 035A2C 7F000EFC 24C6CC68 */ addiu $a2, %lo(num_guards) # addiu $a2, $a2, -0x3398
+7 -7
View File
@@ -3,13 +3,13 @@
void alloc_intro_matrices(void) {
D_8002A7D0 = 0;
matrix_buffer_rarelogo_0 = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_gunbarrel_0 = allocate_bytes_in_bank(0x40, 4);
matrix_buffer_rarelogo_1 = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_rarelogo_2 = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_gunbarrel_1 = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_intro_backdrop = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_intro_bond = allocate_bytes_in_bank(0x80, 4);
matrix_buffer_rarelogo_0 = mempAllocBytesInBank(0x80, 4);
matrix_buffer_gunbarrel_0 = mempAllocBytesInBank(0x40, 4);
matrix_buffer_rarelogo_1 = mempAllocBytesInBank(0x80, 4);
matrix_buffer_rarelogo_2 = mempAllocBytesInBank(0x80, 4);
matrix_buffer_gunbarrel_1 = mempAllocBytesInBank(0x80, 4);
matrix_buffer_intro_backdrop = mempAllocBytesInBank(0x80, 4);
matrix_buffer_intro_bond = mempAllocBytesInBank(0x80, 4);
}
+2 -2
View File
@@ -48,7 +48,7 @@ glabel sub_GAME_7F0061F0
void alloc_additional_item_slots(s32 arg0) {
// Node 0
pPlayer->unk11E8 = (s32) (arg0 + 0x1e);
pPlayer->unk11E4 = allocate_bytes_in_bank(((((pPlayer->unk11E8 * 0x14) + 0xf) | 0xf) ^ 0xf), 4);
pPlayer->unk11E4 = mempAllocBytesInBank(((((pPlayer->unk11E8 * 0x14) + 0xf) | 0xf) ^ 0xf), 4);
reinit_BONDdata_inventory();
}
@@ -71,7 +71,7 @@ glabel alloc_additional_item_slots
/* 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 allocate_bytes_in_bank
/* 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)
+2 -2
View File
@@ -54,13 +54,13 @@ glabel init_menus_or_reset
/* 0358F4 7F000DC4 34848000 */ ori $a0, (0x00078000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0358F8 7F000DC8 AC590000 */ sw $t9, ($v0)
.L7F000DCC:
/* 0358FC 7F000DCC 0C0025C8 */ jal allocate_bytes_in_bank
/* 0358FC 7F000DCC 0C0025C8 */ jal mempAllocBytesInBank
/* 035900 7F000DD0 24050004 */ li $a1, 4
/* 035904 7F000DD4 3C018003 */ lui $at, %hi(ptr_logo_and_walletbond_DL)
/* 035908 7F000DD8 3C040004 */ lui $a0, (0x0004B040 >> 16) # lui $a0, 4
/* 03590C 7F000DDC AC22A950 */ sw $v0, %lo(ptr_logo_and_walletbond_DL)($at)
/* 035910 7F000DE0 3484B040 */ ori $a0, (0x0004B040 & 0xFFFF) # ori $a0, $a0, 0xb040
/* 035914 7F000DE4 0C0025C8 */ jal allocate_bytes_in_bank
/* 035914 7F000DE4 0C0025C8 */ jal mempAllocBytesInBank
/* 035918 7F000DE8 24050004 */ li $a1, 4
/* 03591C 7F000DEC 3C038003 */ lui $v1, %hi(ptr_menu_videobuffer)
/* 035920 7F000DF0 2449003F */ addiu $t1, $v0, 0x3f
+1 -1
View File
@@ -38,7 +38,7 @@ glabel set_mt_tex_alloc
.L7F007370:
/* 03BEA0 7F007370 3C048005 */ lui $a0, %hi(bytes)
/* 03BEA4 7F007374 8C849170 */ lw $a0, %lo(bytes)($a0)
/* 03BEA8 7F007378 0C0025C8 */ jal allocate_bytes_in_bank
/* 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)
+14 -14
View File
@@ -119,7 +119,7 @@ glabel alloc_lookup_buffers
/* 036100 7F0015D0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 036104 7F0015D4 AFBF0014 */ sw $ra, 0x14($sp)
/* 036108 7F0015D8 24040400 */ li $a0, 1024
/* 03610C 7F0015DC 0C0025C8 */ jal allocate_bytes_in_bank
/* 03610C 7F0015DC 0C0025C8 */ jal mempAllocBytesInBank
/* 036110 7F0015E0 24050004 */ li $a1, 4
/* 036114 7F0015E4 3C068004 */ lui $a2, %hi(MaxNumRooms)
/* 036118 7F0015E8 3C018007 */ lui $at, %hi(ptr_list_object_lookup_indices)
@@ -130,13 +130,13 @@ glabel alloc_lookup_buffers
/* 03612C 7F0015FC 00047080 */ sll $t6, $a0, 2
/* 036130 7F001600 25C4000F */ addiu $a0, $t6, 0xf
/* 036134 7F001604 348F000F */ ori $t7, $a0, 0xf
/* 036138 7F001608 0C0025C8 */ jal allocate_bytes_in_bank
/* 036138 7F001608 0C0025C8 */ jal mempAllocBytesInBank
/* 03613C 7F00160C 39E4000F */ xori $a0, $t7, 0xf
/* 036140 7F001610 3C078007 */ lui $a3, %hi(ptr_room_lookup_buffer_maybe)
/* 036144 7F001614 24E71618 */ addiu $a3, %lo(ptr_room_lookup_buffer_maybe) # addiu $a3, $a3, 0x1618
/* 036148 7F001618 ACE20000 */ sw $v0, ($a3)
/* 03614C 7F00161C 24042000 */ li $a0, 8192
/* 036150 7F001620 0C0025C8 */ jal allocate_bytes_in_bank
/* 036150 7F001620 0C0025C8 */ jal mempAllocBytesInBank
/* 036154 7F001624 24050004 */ li $a1, 4
/* 036158 7F001628 3C048007 */ lui $a0, %hi(dword_CODE_bss_8007161C)
/* 03615C 7F00162C 2484161C */ addiu $a0, %lo(dword_CODE_bss_8007161C) # addiu $a0, $a0, 0x161c
@@ -233,7 +233,7 @@ glabel reinit_between_menus
/* 036284 7F001754 AFBF0014 */ sw $ra, 0x14($sp)
/* 036288 7F001758 0FC00656 */ jal write_monitor_ani_control_blocks
/* 03628C 7F00175C 00000000 */ nop
/* 036290 7F001760 0FC006C2 */ jal initialize_80071E00_to_80071E78
/* 036290 7F001760 0FC006C2 */ jal initialize_temp_mine_table
/* 036294 7F001764 00000000 */ nop
/* 036298 7F001768 3C018003 */ lui $at, %hi(alarm_timer)
/* 03629C 7F00176C AC200AC0 */ sw $zero, %lo(alarm_timer)($at)
@@ -253,8 +253,8 @@ glabel reinit_between_menus
/* 0362D4 7F0017A4 AC200ADC */ sw $zero, %lo(D_80030ADC)($at)
/* 0362D8 7F0017A8 3C018003 */ lui $at, %hi(D_80030AE0)
/* 0362DC 7F0017AC E4200AE0 */ swc1 $f0, %lo(D_80030AE0)($at)
/* 0362E0 7F0017B0 3C018003 */ lui $at, %hi(D_80030AE4)
/* 0362E4 7F0017B4 AC200AE4 */ sw $zero, %lo(D_80030AE4)($at)
/* 0362E0 7F0017B0 3C018003 */ lui $at, %hi(ptr_gas_sound)
/* 0362E4 7F0017B4 AC200AE4 */ sw $zero, %lo(ptr_gas_sound)($at)
/* 0362E8 7F0017B8 24050001 */ li $a1, 1
/* 0362EC 7F0017BC 3C018003 */ lui $at, %hi(clock_drawn_flag)
/* 0362F0 7F0017C0 AC250AE8 */ sw $a1, %lo(clock_drawn_flag)($at)
@@ -526,21 +526,21 @@ glabel write_monitor_ani_control_blocks
#endif
#ifdef NONMATCHING
void initialize_80071E00_to_80071E78(void) {
void initialize_temp_mine_table(void) {
}
#else
GLOBAL_ASM(
.text
glabel initialize_80071E00_to_80071E78
/* 036638 7F001B08 3C018007 */ lui $at, %hi(dword_CODE_bss_80071E00)
/* 03663C 7F001B0C AC201E00 */ sw $zero, %lo(dword_CODE_bss_80071E00)($at)
/* 036640 7F001B10 3C018007 */ lui $at, %hi(dword_CODE_bss_80071E04)
/* 036644 7F001B14 3C038007 */ lui $v1, %hi(dword_CODE_bss_80071E08)
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(dword_CODE_bss_80071E08) # addiu $v1, $v1, 0x1e08
/* 036654 7F001B24 AC201E04 */ sw $zero, %lo(dword_CODE_bss_80071E04)($at)
/* 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)
+4 -4
View File
@@ -40,7 +40,7 @@ glabel sub_GAME_7F005540
/* 03A09C 7F00556C AFB00014 */ sw $s0, 0x14($sp)
/* 03A0A0 7F005570 AE8E0000 */ sw $t6, ($s4)
/* 03A0A4 7F005574 000E2140 */ sll $a0, $t6, 5
/* 03A0A8 7F005578 0C0025C8 */ jal allocate_bytes_in_bank
/* 03A0A8 7F005578 0C0025C8 */ jal mempAllocBytesInBank
/* 03A0AC 7F00557C 24050004 */ li $a1, 4
/* 03A0B0 7F005580 8E980000 */ lw $t8, ($s4)
/* 03A0B4 7F005584 3C128008 */ lui $s2, %hi(ptr_allocation_1)
@@ -62,7 +62,7 @@ glabel sub_GAME_7F005540
/* 03A0F0 7F0055C0 10000009 */ b .L7F0055E8
/* 03A0F4 7F0055C4 AD400010 */ sw $zero, 0x10($t2)
.L7F0055C8:
/* 03A0F8 7F0055C8 0C0025C8 */ jal allocate_bytes_in_bank
/* 03A0F8 7F0055C8 0C0025C8 */ jal mempAllocBytesInBank
/* 03A0FC 7F0055CC 24050004 */ li $a1, 4
/* 03A100 7F0055D0 8E4B0000 */ lw $t3, ($s2)
/* 03A104 7F0055D4 01706021 */ addu $t4, $t3, $s0
@@ -115,7 +115,7 @@ glabel sub_GAME_7F005624
/* 03A188 7F005658 AFB00014 */ sw $s0, 0x14($sp)
/* 03A18C 7F00565C AE8E0000 */ sw $t6, ($s4)
/* 03A190 7F005660 000F2180 */ sll $a0, $t7, 6
/* 03A194 7F005664 0C0025C8 */ jal allocate_bytes_in_bank
/* 03A194 7F005664 0C0025C8 */ jal mempAllocBytesInBank
/* 03A198 7F005668 24050004 */ li $a1, 4
/* 03A19C 7F00566C 8E980000 */ lw $t8, ($s4)
/* 03A1A0 7F005670 3C128008 */ lui $s2, %hi(ptr_allocation_0)
@@ -137,7 +137,7 @@ glabel sub_GAME_7F005624
/* 03A1DC 7F0056AC 10000009 */ b .L7F0056D4
/* 03A1E0 7F0056B0 AD400010 */ sw $zero, 0x10($t2)
.L7F0056B4:
/* 03A1E4 7F0056B4 0C0025C8 */ jal allocate_bytes_in_bank
/* 03A1E4 7F0056B4 0C0025C8 */ jal mempAllocBytesInBank
/* 03A1E8 7F0056B8 24050004 */ li $a1, 4
/* 03A1EC 7F0056BC 8E4B0000 */ lw $t3, ($s2)
/* 03A1F0 7F0056C0 01706021 */ addu $t4, $t3, $s0
+1 -1
View File
@@ -54,7 +54,7 @@ glabel sub_GAME_7F007180
/* 03BD44 7F007214 000840C0 */ sll $t0, $t0, 3
/* 03BD48 7F007218 2504000F */ addiu $a0, $t0, 0xf
/* 03BD4C 7F00721C 00814824 */ and $t1, $a0, $at
/* 03BD50 7F007220 0C0025C8 */ jal allocate_bytes_in_bank
/* 03BD50 7F007220 0C0025C8 */ jal mempAllocBytesInBank
/* 03BD54 7F007224 01202025 */ move $a0, $t1
/* 03BD58 7F007228 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A160)
/* 03BD5C 7F00722C 24C6A160 */ addiu $a2, %lo(dword_CODE_bss_8007A160) # addiu $a2, $a2, -0x5ea0
+3 -3
View File
@@ -1713,7 +1713,7 @@ glabel sub_GAME_7F008E80
/* 03DB40 7F009010 8E040064 */ lw $a0, 0x64($s0)
/* 03DB44 7F009014 0FC1D929 */ jal load_object_fill_header
/* 03DB48 7F009018 8E050068 */ lw $a1, 0x68($s0)
/* 03DB4C 7F00901C 0FC2F462 */ jal sub_GAME_7F0BD188
/* 03DB4C 7F00901C 0FC2F462 */ jal get_pc_buffer_remaining_value
/* 03DB50 7F009020 8E040068 */ lw $a0, 0x68($s0)
/* 03DB54 7F009024 2443003F */ addiu $v1, $v0, 0x3f
/* 03DB58 7F009028 8FA60060 */ lw $a2, 0x60($sp)
@@ -1729,7 +1729,7 @@ glabel sub_GAME_7F008E80
/* 03DB80 7F009050 8E040618 */ lw $a0, 0x618($s0)
/* 03DB84 7F009054 0FC1D929 */ jal load_object_fill_header
/* 03DB88 7F009058 8E05061C */ lw $a1, 0x61c($s0)
/* 03DB8C 7F00905C 0FC2F462 */ jal sub_GAME_7F0BD188
/* 03DB8C 7F00905C 0FC2F462 */ jal get_pc_buffer_remaining_value
/* 03DB90 7F009060 8E04061C */ lw $a0, 0x61c($s0)
/* 03DB94 7F009064 2443003F */ addiu $v1, $v0, 0x3f
/* 03DB98 7F009068 8FAC0064 */ lw $t4, 0x64($sp)
@@ -1801,7 +1801,7 @@ glabel sub_GAME_7F008E80
/* 03DC98 7F009168 8FA60060 */ lw $a2, 0x60($sp)
/* 03DC9C 7F00916C 0FC1D929 */ jal load_object_fill_header
/* 03DCA0 7F009170 8FA70064 */ lw $a3, 0x64($sp)
/* 03DCA4 7F009174 0FC2F462 */ jal sub_GAME_7F0BD188
/* 03DCA4 7F009174 0FC2F462 */ jal get_pc_buffer_remaining_value
/* 03DCA8 7F009178 8E0408F8 */ lw $a0, 0x8f8($s0)
/* 03DCAC 7F00917C 2443003F */ addiu $v1, $v0, 0x3f
/* 03DCB0 7F009180 8FAD0064 */ lw $t5, 0x64($sp)
+127 -281
View File
@@ -1,4 +1,7 @@
#include "ultra64.h"
#include "bondtypes.h"
#include "game/chrai.h"
#include "game/chrobjdata.h"
#ifdef NONMATCHING
void sub_GAME_7F056850(void) {
@@ -6,25 +9,6 @@ void sub_GAME_7F056850(void) {
}
#else
GLOBAL_ASM(
.late_rodata
/*D:80053490*/
glabel jpt_object_setup_size
.word object_size_type_01
.word object_size_type_02
.word object_size_type_03
.word object_size_type_04
.word object_size_type_05
.word object_size_type_06
.word object_size_type_07
.word object_size_type_08
.word object_size_type_09
.word object_size_type_0A
.word object_size_type_0B
.word object_size_type_0C
.word object_size_type_0D
/*.word object_size_type_0E*/
/*.word object_size_type_default*/
/*.word object_size_type_default*/
.text
glabel sub_GAME_7F056850
/* 08B380 7F056850 27BDFFD0 */ addiu $sp, $sp, -0x30
@@ -75,261 +59,103 @@ glabel sub_GAME_7F056850
//
#ifdef NONMATCHING
s16 get_size_of_setup_object_type(void) {
u32 get_size_of_setup_object_type(u8 * object)
{
switch(object[3]) {
case 9:
return 7;
case 1:
return 0x40;
case 2:
return 2;
case 3:
return 0x20;
case 0x2a:
return 0x20;
case 0x2f:
return 0x25;
case 0x2b:
return 0x20;
case 0x24:
return 0x20;
case 4:
return 0x21;
case 5:
return 0x20;
case 6:
return 0x3b;
case 7:
return 0x21;
case 8:
return 0x22;
case 10:
return 0x40;
case 0xb:
return 0x95;
case 0xc:
return 0x20;
case 0xd:
return 0x36;
case 0xe:
return 3;
case 0x11:
return 0x20;
case 0x12:
return 3;
case 0x13:
return 4;
case 0x2c:
return 5;
case 0x14:
return 0x2d;
case 0x15:
return 0x22;
case 0x16:
return 4;
case 0x25:
return 10;
case 0x17:
return 4;
case 0x18:
return 1;
case 0x19:
return 2;
case 0x1a:
return 2;
case 0x1b:
return 2;
case 0x1c:
return 2;
case 0x1d:
return 2;
case 0x1e:
return 4;
case 0x1f:
return 1;
case 0x20:
return 4;
case 0x21:
return 5;
case 0x22:
return 1;
case 0x23:
return 4;
case 0x26:
return 4;
case 0x27:
return 0x2c;
case 0x28:
return 0x2d;
case 0x2d:
return 0x38;
case 0x2e:
return 7;
default:
return 1;
}
}
#else
GLOBAL_ASM(
.late_rodata
/*D:80053490*/
/*glabel jpt_object_setup_size*/
/*.word object_size_type_01*/
/*.word object_size_type_02*/
/*.word object_size_type_03*/
/*.word object_size_type_04*/
/*.word object_size_type_05*/
/*.word object_size_type_06*/
/*.word object_size_type_07*/
/*.word object_size_type_08*/
/*.word object_size_type_09*/
/*.word object_size_type_0A*/
/*.word object_size_type_0B*/
/*.word object_size_type_0C*/
/*.word object_size_type_0D*/
.word object_size_type_0E
.word object_size_type_default
.word object_size_type_default
.word object_size_type_11
.word object_size_type_12
.word object_size_type_13
.word object_size_type_14
.word object_size_type_15
.word object_size_type_16
.word object_size_type_17
.word object_size_type_18
.word object_size_type_19
.word object_size_type_1A
.word object_size_type_1B
.word object_size_type_1C
.word object_size_type_1D
.word object_size_type_1E
.word object_size_type_1F
.word object_size_type_20
.word object_size_type_21
.word object_size_type_22
.word object_size_type_23
.word object_size_type_24
.word object_size_type_25
.word object_size_type_26
.word object_size_type_27
.word object_size_type_28
.word object_size_type_default
.word object_size_type_2A
.word object_size_type_2B
.word object_size_type_2C
.word object_size_type_2D
.word object_size_type_2E
/*.word object_size_type_2F*/
.text
glabel get_size_of_setup_object_type
/* 08B424 7F0568F4 908E0003 */ lbu $t6, 3($a0)
/* 08B428 7F0568F8 25CFFFFF */ addiu $t7, $t6, -1
/* 08B42C 7F0568FC 2DE1002F */ sltiu $at, $t7, 0x2f
/* 08B430 7F056900 1020005E */ beqz $at, .L7F056A7C
/* 08B434 7F056904 000F7880 */ sll $t7, $t7, 2
/* 08B438 7F056908 3C018005 */ lui $at, %hi(jpt_object_setup_size)
/* 08B43C 7F05690C 002F0821 */ addu $at, $at, $t7
/* 08B440 7F056910 8C2F3490 */ lw $t7, %lo(jpt_object_setup_size)($at)
/* 08B444 7F056914 01E00008 */ jr $t7
/* 08B448 7F056918 00000000 */ nop
object_size_type_09:
/* 08B44C 7F05691C 03E00008 */ jr $ra
/* 08B450 7F056920 24020007 */ li $v0, 7
object_size_type_01:
/* 08B454 7F056924 03E00008 */ jr $ra
/* 08B458 7F056928 24020040 */ li $v0, 64
object_size_type_02:
/* 08B45C 7F05692C 03E00008 */ jr $ra
/* 08B460 7F056930 24020002 */ li $v0, 2
object_size_type_03:
/* 08B464 7F056934 03E00008 */ jr $ra
/* 08B468 7F056938 24020020 */ li $v0, 32
object_size_type_2A:
/* 08B46C 7F05693C 03E00008 */ jr $ra
/* 08B470 7F056940 24020020 */ li $v0, 32
object_size_type_2F:
/* 08B474 7F056944 03E00008 */ jr $ra
/* 08B478 7F056948 24020025 */ li $v0, 37
object_size_type_2B:
/* 08B47C 7F05694C 03E00008 */ jr $ra
/* 08B480 7F056950 24020020 */ li $v0, 32
object_size_type_24:
/* 08B484 7F056954 03E00008 */ jr $ra
/* 08B488 7F056958 24020020 */ li $v0, 32
object_size_type_04:
/* 08B48C 7F05695C 03E00008 */ jr $ra
/* 08B490 7F056960 24020021 */ li $v0, 33
object_size_type_05:
/* 08B494 7F056964 03E00008 */ jr $ra
/* 08B498 7F056968 24020020 */ li $v0, 32
object_size_type_06:
/* 08B49C 7F05696C 03E00008 */ jr $ra
/* 08B4A0 7F056970 2402003B */ li $v0, 59
object_size_type_07:
/* 08B4A4 7F056974 03E00008 */ jr $ra
/* 08B4A8 7F056978 24020021 */ li $v0, 33
object_size_type_08:
/* 08B4AC 7F05697C 03E00008 */ jr $ra
/* 08B4B0 7F056980 24020022 */ li $v0, 34
object_size_type_0A:
/* 08B4B4 7F056984 03E00008 */ jr $ra
/* 08B4B8 7F056988 24020040 */ li $v0, 64
object_size_type_0B:
/* 08B4BC 7F05698C 03E00008 */ jr $ra
/* 08B4C0 7F056990 24020095 */ li $v0, 149
object_size_type_0C:
/* 08B4C4 7F056994 03E00008 */ jr $ra
/* 08B4C8 7F056998 24020020 */ li $v0, 32
object_size_type_0D:
/* 08B4CC 7F05699C 03E00008 */ jr $ra
/* 08B4D0 7F0569A0 24020036 */ li $v0, 54
object_size_type_0E:
/* 08B4D4 7F0569A4 03E00008 */ jr $ra
/* 08B4D8 7F0569A8 24020003 */ li $v0, 3
object_size_type_11:
/* 08B4DC 7F0569AC 03E00008 */ jr $ra
/* 08B4E0 7F0569B0 24020020 */ li $v0, 32
object_size_type_12:
/* 08B4E4 7F0569B4 03E00008 */ jr $ra
/* 08B4E8 7F0569B8 24020003 */ li $v0, 3
object_size_type_13:
/* 08B4EC 7F0569BC 03E00008 */ jr $ra
/* 08B4F0 7F0569C0 24020004 */ li $v0, 4
object_size_type_2C:
/* 08B4F4 7F0569C4 03E00008 */ jr $ra
/* 08B4F8 7F0569C8 24020005 */ li $v0, 5
object_size_type_14:
/* 08B4FC 7F0569CC 03E00008 */ jr $ra
/* 08B500 7F0569D0 2402002D */ li $v0, 45
object_size_type_15:
/* 08B504 7F0569D4 03E00008 */ jr $ra
/* 08B508 7F0569D8 24020022 */ li $v0, 34
object_size_type_16:
/* 08B50C 7F0569DC 03E00008 */ jr $ra
/* 08B510 7F0569E0 24020004 */ li $v0, 4
object_size_type_25:
/* 08B514 7F0569E4 03E00008 */ jr $ra
/* 08B518 7F0569E8 2402000A */ li $v0, 10
object_size_type_17:
/* 08B51C 7F0569EC 03E00008 */ jr $ra
/* 08B520 7F0569F0 24020004 */ li $v0, 4
object_size_type_18:
/* 08B524 7F0569F4 03E00008 */ jr $ra
/* 08B528 7F0569F8 24020001 */ li $v0, 1
object_size_type_19:
/* 08B52C 7F0569FC 03E00008 */ jr $ra
/* 08B530 7F056A00 24020002 */ li $v0, 2
object_size_type_1A:
/* 08B534 7F056A04 03E00008 */ jr $ra
/* 08B538 7F056A08 24020002 */ li $v0, 2
object_size_type_1B:
/* 08B53C 7F056A0C 03E00008 */ jr $ra
/* 08B540 7F056A10 24020002 */ li $v0, 2
object_size_type_1C:
/* 08B544 7F056A14 03E00008 */ jr $ra
/* 08B548 7F056A18 24020002 */ li $v0, 2
object_size_type_1D:
/* 08B54C 7F056A1C 03E00008 */ jr $ra
/* 08B550 7F056A20 24020002 */ li $v0, 2
object_size_type_1E:
/* 08B554 7F056A24 03E00008 */ jr $ra
/* 08B558 7F056A28 24020004 */ li $v0, 4
object_size_type_1F:
/* 08B55C 7F056A2C 03E00008 */ jr $ra
/* 08B560 7F056A30 24020001 */ li $v0, 1
object_size_type_20:
/* 08B564 7F056A34 03E00008 */ jr $ra
/* 08B568 7F056A38 24020004 */ li $v0, 4
object_size_type_21:
/* 08B56C 7F056A3C 03E00008 */ jr $ra
/* 08B570 7F056A40 24020005 */ li $v0, 5
object_size_type_22:
/* 08B574 7F056A44 03E00008 */ jr $ra
/* 08B578 7F056A48 24020001 */ li $v0, 1
object_size_type_23:
/* 08B57C 7F056A4C 03E00008 */ jr $ra
/* 08B580 7F056A50 24020004 */ li $v0, 4
object_size_type_26:
/* 08B584 7F056A54 03E00008 */ jr $ra
/* 08B588 7F056A58 24020004 */ li $v0, 4
object_size_type_27:
/* 08B58C 7F056A5C 03E00008 */ jr $ra
/* 08B590 7F056A60 2402002C */ li $v0, 44
object_size_type_28:
/* 08B594 7F056A64 03E00008 */ jr $ra
/* 08B598 7F056A68 2402002D */ li $v0, 45
object_size_type_2D:
/* 08B59C 7F056A6C 03E00008 */ jr $ra
/* 08B5A0 7F056A70 24020038 */ li $v0, 56
object_size_type_2E:
/* 08B5A4 7F056A74 03E00008 */ jr $ra
/* 08B5A8 7F056A78 24020007 */ li $v0, 7
object_size_type_default:
.L7F056A7C:
/* 08B5AC 7F056A7C 24020001 */ li $v0, 1
/* 08B5B0 7F056A80 03E00008 */ jr $ra
/* 08B5B4 7F056A84 00000000 */ nop
)
#endif
@@ -340,10 +166,6 @@ void sub_GAME_7F056A88(void) {
}
#else
GLOBAL_ASM(
.late_rodata
/*hack for above*/
.word object_size_type_2F
.text
glabel sub_GAME_7F056A88
/* 08B5B8 7F056A88 27BDFFD8 */ addiu $sp, $sp, -0x28
@@ -395,13 +217,29 @@ glabel sub_GAME_7F056A88
#ifdef NONMATCHING
void sub_GAME_7F056B1C(void) {
s32 check_if_object_type_has_been_loaded(struct object_standard * arg0)
{
struct object_standard *object;
s32 i;
if (ptr_setup_objects != 0)
{
for (object = ptr_setup_objects, i = 0; 0x30 != object->type; i++)
{
if (object == arg0)
{
return i;
}
object = (get_size_of_setup_object_type((u8 *)object) * 4) + object;
}
}
return -1;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F056B1C
glabel check_if_object_type_has_been_loaded
/* 08B64C 7F056B1C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 08B650 7F056B20 AFB00014 */ sw $s0, 0x14($sp)
/* 08B654 7F056B24 3C108007 */ lui $s0, %hi(ptr_setup_objects)
@@ -504,8 +342,16 @@ glabel sub_GAME_7F056BA8
#ifdef NONMATCHING
void load_model(void) {
u32 load_model(u32 modelid)
{
struct p_itementry fileentry = PitemZ_entries[modelid];
if (fileentry.header == 0)
{
load_object_into_memory(PitemZ_entries[modelid].header, PitemZ_entries[modelid].filename);
set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries[modelid].header);
return 1;
}
return 0;
}
#else
GLOBAL_ASM(
+84 -110
View File
@@ -29,14 +29,14 @@ s32 current_stage_to_load = 0;
//D:80048368
f32 D_80048368 = 1.0;
//D:8004836C
s32 D_8004836C = 0;
s32 musictrack1_playing = 0;
//D:80048370
s32 controls_locked_flag = 0;
//D:80048374
s32 clock_timer = 0;
#ifdef VERSION_US
//D:80048378
s32 global_timer_delta = 0;
f32 global_timer_delta = 0;
//D:8004837C
s32 global_timer = 0;
//D:80048380
@@ -44,12 +44,12 @@ s32 D_80048380 = 0;
//D:80048384
#endif
#ifdef VERSION_JP
u32 D_jpunk = 0;
u32 jp_global_timer_delta = 0;
//D:8004837C
s32 global_timer = 0;
//D:80048380
s32 D_80048380 = 0;
s32 global_timer_delta = 0;
f32 global_timer_delta = 0;
#endif
//D:80048384
@@ -154,19 +154,13 @@ void sub_GAME_7F0BD8FC(s32 arg0) {
#ifdef NONMATCHING
void something_with_lvl_c_debug(void) {
s32 temp_a2;
? temp_ret;
// Node 0
get_ptr_debug_notice_list_entry(&lvl_c_debug_notice_list, &aLv_c_debug);
temp_a2 = (&_jfontdlSegmentEnd - &_jfontdlSegmentStart);
void something_with_lvl_c_debug(void)
{
get_ptr_debug_notice_list_entry(&lvl_c_debug_notice_list, "lv_c_debug");
lvl_c_debug_notice_list = 1;
temp_ret = allocate_bytes_in_bank(temp_a2, 6, temp_a2);
ptr_jfont_DL = temp_ret;
romCopy(temp_ret, &_jfontdlSegmentStart, sp18);
ptr_jfont_DL = mempAllocBytesInBank(0xc0,'\x06');
romCopy(ptr_jfont_DL, _jfontdlSegmentStart, 0xc0);
}
#else
GLOBAL_ASM(
.text
@@ -188,7 +182,7 @@ glabel something_with_lvl_c_debug
/* 0F2470 7F0BD940 AC2E8360 */ sw $t6, %lo(lvl_c_debug_notice_list)($at)
/* 0F2474 7F0BD944 00C02025 */ move $a0, $a2
/* 0F2478 7F0BD948 AFA60018 */ sw $a2, 0x18($sp)
/* 0F247C 7F0BD94C 0C0025C8 */ jal allocate_bytes_in_bank
/* 0F247C 7F0BD94C 0C0025C8 */ jal mempAllocBytesInBank
/* 0F2480 7F0BD950 24050006 */ li $a1, 6
/* 0F2484 7F0BD954 3C038009 */ lui $v1, %hi(ptr_jfont_DL)
/* 0F2488 7F0BD958 2463C260 */ addiu $v1, %lo(ptr_jfont_DL) # addiu $v1, $v1, -0x3da0
@@ -210,13 +204,10 @@ glabel something_with_lvl_c_debug
#ifdef NONMATCHING
void sub_GAME_7F0BD984(void) {
s32 temp_a0;
// Node 0
temp_a0 = ((get_random_value() % 0x3dU) + 2);
D_8004836C = temp_a0;
return musicTrack1Play(temp_a0);
void playrandommusictrack1(void)
{
musictrack1_playing = get_random_value() % 0x3d + M_INTRO;
musicTrack1Play(musictrack1_playing);
}
#else
GLOBAL_ASM(
@@ -229,8 +220,8 @@ glabel sub_GAME_7F0BD984
/* 0F24C4 7F0BD994 2401003D */ li $at, 61
/* 0F24C8 7F0BD998 0041001B */ divu $zero, $v0, $at
/* 0F24CC 7F0BD99C 00007010 */ mfhi $t6
/* 0F24D0 7F0BD9A0 3C038005 */ lui $v1, %hi(D_8004836C)
/* 0F24D4 7F0BD9A4 2463836C */ addiu $v1, %lo(D_8004836C) # addiu $v1, $v1, -0x7c94
/* 0F24D0 7F0BD9A0 3C038005 */ lui $v1, %hi(musictrack1_playing)
/* 0F24D4 7F0BD9A4 2463836C */ addiu $v1, %lo(musictrack1_playing) # addiu $v1, $v1, -0x7c94
/* 0F24D8 7F0BD9A8 25C40002 */ addiu $a0, $t6, 2
/* 0F24DC 7F0BD9AC 0C001B9F */ jal musicTrack1Play
/* 0F24E0 7F0BD9B0 AC640000 */ sw $a0, ($v1)
@@ -246,18 +237,18 @@ glabel sub_GAME_7F0BD984
#ifdef NONMATCHING
void sub_GAME_7F0BD9C4(s32 arg0) {
// Node 0
D_8004836C = arg0;
return musicTrack1Play();
void playmusictrack1(MUSIC_TRACKS track)
{
musictrack1_playing = track;
musicTrack1Play(track);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0BD9C4
glabel playmusictrack1
/* 0F24F4 7F0BD9C4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0F24F8 7F0BD9C8 3C028005 */ lui $v0, %hi(D_8004836C)
/* 0F24FC 7F0BD9CC 2442836C */ addiu $v0, %lo(D_8004836C) # addiu $v0, $v0, -0x7c94
/* 0F24F8 7F0BD9C8 3C028005 */ lui $v0, %hi(musictrack1_playing)
/* 0F24FC 7F0BD9CC 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94
/* 0F2500 7F0BD9D0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0F2504 7F0BD9D4 0C001B9F */ jal musicTrack1Play
/* 0F2508 7F0BD9D8 AC440000 */ sw $a0, ($v0)
@@ -273,29 +264,21 @@ glabel sub_GAME_7F0BD9C4
#ifdef NONMATCHING
void sub_GAME_7F0BD9EC(void) {
s32 temp_hi;
s32 phi_a0;
void music_append_play_solo_death_short(void)
// Node 0
temp_hi = ((s32) (D_8004836C + 1) % 0x3f);
D_8004836C = temp_hi;
phi_a0 = temp_hi;
if (temp_hi == 0)
{
// Node 1
D_8004836C = 1;
phi_a0 = 1;
{
musictrack1_playing = (musictrack1_playing + M_SHORT_SOLO_DEATH) % 0x3f;
if (musictrack1_playing == M_NONE) {
musictrack1_playing = M_SHORT_SOLO_DEATH;
}
// Node 2
return musicTrack1Play(phi_a0);
musicTrack1Play(musictrack1_playing);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0BD9EC
/* 0F251C 7F0BD9EC 3C028005 */ lui $v0, %hi(D_8004836C)
/* 0F2520 7F0BD9F0 2442836C */ addiu $v0, %lo(D_8004836C) # addiu $v0, $v0, -0x7c94
glabel music_append_play_solo_death_short
/* 0F251C 7F0BD9EC 3C028005 */ lui $v0, %hi(musictrack1_playing)
/* 0F2520 7F0BD9F0 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94
/* 0F2524 7F0BD9F4 8C4E0000 */ lw $t6, ($v0)
/* 0F2528 7F0BD9F8 2401003F */ li $at, 63
/* 0F252C 7F0BD9FC 27BDFFE8 */ addiu $sp, $sp, -0x18
@@ -322,29 +305,20 @@ glabel sub_GAME_7F0BD9EC
#ifdef NONMATCHING
void sub_GAME_7F0BDA38(void) {
s32 temp_hi;
s32 phi_a0;
// Node 0
temp_hi = ((s32) (D_8004836C + 0x3e) % 0x3f);
D_8004836C = temp_hi;
phi_a0 = temp_hi;
if (temp_hi == 0)
{
// Node 1
D_8004836C = 0x3e;
phi_a0 = 0x3e;
void music_append_play_endtheme(void)
{
musictrack1_playing = (musictrack1_playing + M_END_SOMETHING) % 0x3f;
if (musictrack1_playing == M_NONE) {
musictrack1_playing = M_END_SOMETHING;
}
// Node 2
return musicTrack1Play(phi_a0);
musicTrack1Play(musictrack1_playing);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0BDA38
/* 0F2568 7F0BDA38 3C028005 */ lui $v0, %hi(D_8004836C)
/* 0F256C 7F0BDA3C 2442836C */ addiu $v0, %lo(D_8004836C) # addiu $v0, $v0, -0x7c94
glabel music_append_play_endtheme
/* 0F2568 7F0BDA38 3C028005 */ lui $v0, %hi(musictrack1_playing)
/* 0F256C 7F0BDA3C 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94
/* 0F2570 7F0BDA40 8C4E0000 */ lw $t6, ($v0)
/* 0F2574 7F0BDA44 2401003F */ li $at, 63
/* 0F2578 7F0BDA48 27BDFFE8 */ addiu $sp, $sp, -0x18
@@ -371,7 +345,7 @@ glabel sub_GAME_7F0BDA38
void sub_GAME_7F0BDA84(void) {
sub_GAME_7F0BD9C4(sub_GAME_7F0D2720(current_stage_to_load));
playmusictrack1(getmusictrack_or_randomtrack(current_stage_to_load));
}
@@ -486,11 +460,11 @@ glabel stage_load
/* 0F2750 7F0BDC20 92290000 */ lbu $t1, ($s1)
/* 0F2754 7F0BDC24 51200008 */ beql $t1, $zero, .L7F0BDC48
/* 0F2758 7F0BDC28 26100001 */ addiu $s0, $s0, 1
/* 0F275C 7F0BDC2C 0FC24697 */ jal sub_GAME_7F091A5C
/* 0F275C 7F0BDC2C 0FC24697 */ jal is_cheat_index_equal_to_1C
/* 0F2760 7F0BDC30 02002025 */ move $a0, $s0
/* 0F2764 7F0BDC34 50400004 */ beql $v0, $zero, .L7F0BDC48
/* 0F2768 7F0BDC38 26100001 */ addiu $s0, $s0, 1
/* 0F276C 7F0BDC3C 0FC246AB */ jal sub_GAME_7F091AAC
/* 0F276C 7F0BDC3C 0FC246AB */ jal turn_on_cheat_for_players
/* 0F2770 7F0BDC40 02002025 */ move $a0, $s0
/* 0F2774 7F0BDC44 26100001 */ addiu $s0, $s0, 1
.L7F0BDC48:
@@ -499,10 +473,10 @@ glabel stage_load
/* 0F2780 7F0BDC50 3C048005 */ lui $a0, %hi(current_stage_to_load)
/* 0F2784 7F0BDC54 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0)
.L7F0BDC58:
/* 0F2788 7F0BDC58 0FC2D049 */ jal sub_GAME_7F0B4124
/* 0F2788 7F0BDC58 0FC2D049 */ jal load_bg_file
/* 0F278C 7F0BDC5C 00000000 */ nop
/* 0F2790 7F0BDC60 3C048005 */ lui $a0, %hi(current_stage_to_load)
/* 0F2794 7F0BDC64 0FC2510B */ jal sub_GAME_7F09442C
/* 0F2794 7F0BDC64 0FC2510B */ jal store_stagenum_to_copyof_stagenum
/* 0F2798 7F0BDC68 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0)
/* 0F279C 7F0BDC6C 0FC2921A */ jal init_watch_at_start_of_stage
/* 0F27A0 7F0BDC70 00000000 */ nop
@@ -702,8 +676,8 @@ glabel stage_load
/* 0F31FC 7F0BE68C AC2083A0 */ sw $zero, %lo(controls_locked_flag)($at)
/* 0F3200 7F0BE690 263183A4 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c5c
/* 0F3204 7F0BE694 AE220000 */ sw $v0, ($s1)
/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(D_jpunk) # $at, 0x8005
/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(D_jpunk)($at)
/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005
/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(jp_global_timer_delta)($at)
/* 0F3210 7F0BE6A0 3C018005 */ lui $at, %hi(D_80048380) # $at, 0x8005
/* 0F3214 7F0BE6A4 AC2083B0 */ sw $zero, %lo(D_80048380)($at)
/* 0F3218 7F0BE6A8 3C018005 */ lui $at, %hi(global_timer) # $at, 0x8005
@@ -791,11 +765,11 @@ glabel stage_load
/* 0F3350 7F0BE7E0 92290000 */ lbu $t1, ($s1)
/* 0F3354 7F0BE7E4 51200008 */ beql $t1, $zero, .Ljp7F0BE808
/* 0F3358 7F0BE7E8 26100001 */ addiu $s0, $s0, 1
/* 0F335C 7F0BE7EC 0FC2494F */ jal sub_GAME_7F091A5C
/* 0F335C 7F0BE7EC 0FC2494F */ jal is_cheat_index_equal_to_1C
/* 0F3360 7F0BE7F0 02002025 */ move $a0, $s0
/* 0F3364 7F0BE7F4 50400004 */ beql $v0, $zero, .Ljp7F0BE808
/* 0F3368 7F0BE7F8 26100001 */ addiu $s0, $s0, 1
/* 0F336C 7F0BE7FC 0FC24963 */ jal sub_GAME_7F091AAC
/* 0F336C 7F0BE7FC 0FC24963 */ jal turn_on_cheat_for_players
/* 0F3370 7F0BE800 02002025 */ move $a0, $s0
/* 0F3374 7F0BE804 26100001 */ addiu $s0, $s0, 1
.Ljp7F0BE808:
@@ -804,10 +778,10 @@ glabel stage_load
/* 0F3380 7F0BE810 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005
/* 0F3384 7F0BE814 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0)
.Ljp7F0BE818:
/* 0F3388 7F0BE818 0FC2D335 */ jal sub_GAME_7F0B4124
/* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file
/* 0F338C 7F0BE81C 00000000 */ nop
/* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005
/* 0F3394 7F0BE824 0FC253F3 */ jal sub_GAME_7F09442C
/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum
/* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0)
/* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage
/* 0F33A0 7F0BE830 00000000 */ nop
@@ -1424,7 +1398,7 @@ glabel sub_GAME_7F0BE30C
/* 0F302C 7F0BE4FC 0C00112F */ jal set_video2_ulx_uly
/* 0F3030 7F0BE500 844507F6 */ lh $a1, 0x7f6($v0)
/* 0F3034 7F0BE504 8E0E0000 */ lw $t6, ($s0)
/* 0F3038 7F0BE508 0C001151 */ jal video_related_1F
/* 0F3038 7F0BE508 0C001151 */ jal setvideo_far
/* 0F303C 7F0BE50C C5CC11D0 */ lwc1 $f12, 0x11d0($t6)
/* 0F3040 7F0BE510 8E0F0000 */ lw $t7, ($s0)
/* 0F3044 7F0BE514 0C001164 */ jal video_related_21
@@ -1616,7 +1590,7 @@ glabel sub_GAME_7F0BE30C
/* 0F3300 7F0BE7D0 0FC2800D */ jal sub_GAME_7F0A0034
/* 0F3304 7F0BE7D4 00402025 */ move $a0, $v0
/* 0F3308 7F0BE7D8 AFA20060 */ sw $v0, 0x60($sp)
/* 0F330C 7F0BE7DC 0FC249EF */ jal sub_GAME_7F0927BC
/* 0F330C 7F0BE7DC 0FC249EF */ jal cheatCheckIfOn
/* 0F3310 7F0BE7E0 2404000B */ li $a0, 11
/* 0F3314 7F0BE7E4 10400003 */ beqz $v0, .L7F0BE7F4
/* 0F3318 7F0BE7E8 00000000 */ nop
@@ -1817,7 +1791,7 @@ glabel sub_GAME_7F0BE30C
/* 0F3C2C 7F0BF0BC 0C00112F */ jal set_video2_ulx_uly
/* 0F3C30 7F0BF0C0 844507F6 */ lh $a1, 0x7f6($v0)
/* 0F3C34 7F0BF0C4 8E0E0000 */ lw $t6, ($s0)
/* 0F3C38 7F0BF0C8 0C001151 */ jal video_related_1F
/* 0F3C38 7F0BF0C8 0C001151 */ jal setvideo_far
/* 0F3C3C 7F0BF0CC C5CC11D0 */ lwc1 $f12, 0x11d0($t6)
/* 0F3C40 7F0BF0D0 8E0F0000 */ lw $t7, ($s0)
/* 0F3C44 7F0BF0D4 0C001164 */ jal video_related_21
@@ -2009,7 +1983,7 @@ glabel sub_GAME_7F0BE30C
/* 0F3F00 7F0BF390 0FC282F6 */ jal sub_GAME_7F0A0034
/* 0F3F04 7F0BF394 00402025 */ move $a0, $v0
/* 0F3F08 7F0BF398 AFA20060 */ sw $v0, 0x60($sp)
/* 0F3F0C 7F0BF39C 0FC24CCF */ jal sub_GAME_7F0927BC
/* 0F3F0C 7F0BF39C 0FC24CCF */ jal cheatCheckIfOn
/* 0F3F10 7F0BF3A0 2404000B */ li $a0, 11
/* 0F3F14 7F0BF3A4 1040000C */ beqz $v0, .Ljp7F0BF3D8
/* 0F3F18 7F0BF3A8 00000000 */ nop
@@ -2589,13 +2563,13 @@ glabel manage_mp_game
/* 0F3790 7F0BEC60 51E0000D */ beql $t7, $zero, .L7F0BEC98
/* 0F3794 7F0BEC64 24840001 */ addiu $a0, $a0, 1
/* 0F3798 7F0BEC68 AFA3001C */ sw $v1, 0x1c($sp)
/* 0F379C 7F0BEC6C 0FC24697 */ jal sub_GAME_7F091A5C
/* 0F379C 7F0BEC6C 0FC24697 */ jal is_cheat_index_equal_to_1C
/* 0F37A0 7F0BEC70 AFA40194 */ sw $a0, 0x194($sp)
/* 0F37A4 7F0BEC74 8FA3001C */ lw $v1, 0x1c($sp)
/* 0F37A8 7F0BEC78 14400006 */ bnez $v0, .L7F0BEC94
/* 0F37AC 7F0BEC7C 8FA40194 */ lw $a0, 0x194($sp)
/* 0F37B0 7F0BEC80 AFA3001C */ sw $v1, 0x1c($sp)
/* 0F37B4 7F0BEC84 0FC246AB */ jal sub_GAME_7F091AAC
/* 0F37B4 7F0BEC84 0FC246AB */ jal turn_on_cheat_for_players
/* 0F37B8 7F0BEC88 AFA40194 */ sw $a0, 0x194($sp)
/* 0F37BC 7F0BEC8C 8FA3001C */ lw $v1, 0x1c($sp)
/* 0F37C0 7F0BEC90 8FA40194 */ lw $a0, 0x194($sp)
@@ -3064,7 +3038,7 @@ glabel manage_mp_game
/* 0F3E60 7F0BF330 2401005A */ li $at, 90
/* 0F3E64 7F0BF334 17210009 */ bne $t9, $at, .L7F0BF35C
/* 0F3E68 7F0BF338 00000000 */ nop
/* 0F3E6C 7F0BF33C 0FC2464F */ jal sub_GAME_7F09193C
/* 0F3E6C 7F0BF33C 0FC2464F */ jal cheat_buttons_mp_related
/* 0F3E70 7F0BF340 00000000 */ nop
/* 0F3E74 7F0BF344 0FC06987 */ jal menu_init
/* 0F3E78 7F0BF348 00000000 */ nop
@@ -3106,7 +3080,7 @@ glabel manage_mp_game
/* 0F3F04 7F0BF3D4 24043000 */ li $a0, 12288
/* 0F3F08 7F0BF3D8 17000048 */ bnez $t8, .L7F0BF4FC
/* 0F3F0C 7F0BF3DC 00000000 */ nop
/* 0F3F10 7F0BF3E0 0C0025C8 */ jal allocate_bytes_in_bank
/* 0F3F10 7F0BF3E0 0C0025C8 */ jal mempAllocBytesInBank
/* 0F3F14 7F0BF3E4 24050004 */ li $a1, 4
/* 0F3F18 7F0BF3E8 3C068005 */ lui $a2, %hi(D_800483C8)
/* 0F3F1C 7F0BF3EC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38
@@ -3310,7 +3284,7 @@ glabel manage_mp_game
/* 0F41F8 7F0BF6C8 24050202 */ li $a1, 514
/* 0F41FC 7F0BF6CC 50400004 */ beql $v0, $zero, .L7F0BF6E0
/* 0F4200 7F0BF6D0 00002025 */ move $a0, $zero
/* 0F4204 7F0BF6D4 0FC2F68E */ jal sub_GAME_7F0BDA38
/* 0F4204 7F0BF6D4 0FC2F68E */ jal music_append_play_endtheme
/* 0F4208 7F0BF6D8 00000000 */ nop
/* 0F420C 7F0BF6DC 00002025 */ move $a0, $zero
.L7F0BF6E0:
@@ -3318,7 +3292,7 @@ glabel manage_mp_game
/* 0F4214 7F0BF6E4 24050101 */ li $a1, 257
/* 0F4218 7F0BF6E8 50400004 */ beql $v0, $zero, .L7F0BF6FC
/* 0F421C 7F0BF6EC 00002025 */ move $a0, $zero
/* 0F4220 7F0BF6F0 0FC2F67B */ jal sub_GAME_7F0BD9EC
/* 0F4220 7F0BF6F0 0FC2F67B */ jal music_append_play_solo_death_short
/* 0F4224 7F0BF6F4 00000000 */ nop
/* 0F4228 7F0BF6F8 00002025 */ move $a0, $zero
.L7F0BF6FC:
@@ -3432,8 +3406,8 @@ glabel manage_mp_game
.Ljp7F0BF814:
/* 0F4384 7F0BF814 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005
/* 0F4388 7F0BF818 8C4283A4 */ lw $v0, %lo(clock_timer)($v0)
/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(D_jpunk) # $v1, 0x8005
/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(D_jpunk) # addiu $v1, $v1, -0x7c58
/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(jp_global_timer_delta) # $v1, 0x8005
/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(jp_global_timer_delta) # addiu $v1, $v1, -0x7c58
/* 0F4394 7F0BF824 44822000 */ mtc1 $v0, $f4
/* 0F4398 7F0BF828 3C048005 */ lui $a0, %hi(global_timer) # $a0, 0x8005
/* 0F439C 7F0BF82C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005
@@ -3466,13 +3440,13 @@ glabel manage_mp_game
/* 0F4404 7F0BF894 51E0000D */ beql $t7, $zero, .Ljp7F0BF8CC
/* 0F4408 7F0BF898 24840001 */ addiu $a0, $a0, 1
/* 0F440C 7F0BF89C AFA3001C */ sw $v1, 0x1c($sp)
/* 0F4410 7F0BF8A0 0FC2494F */ jal sub_GAME_7F091A5C
/* 0F4410 7F0BF8A0 0FC2494F */ jal is_cheat_index_equal_to_1C
/* 0F4414 7F0BF8A4 AFA40194 */ sw $a0, 0x194($sp)
/* 0F4418 7F0BF8A8 8FA3001C */ lw $v1, 0x1c($sp)
/* 0F441C 7F0BF8AC 14400006 */ bnez $v0, .Ljp7F0BF8C8
/* 0F4420 7F0BF8B0 8FA40194 */ lw $a0, 0x194($sp)
/* 0F4424 7F0BF8B4 AFA3001C */ sw $v1, 0x1c($sp)
/* 0F4428 7F0BF8B8 0FC24963 */ jal sub_GAME_7F091AAC
/* 0F4428 7F0BF8B8 0FC24963 */ jal turn_on_cheat_for_players
/* 0F442C 7F0BF8BC AFA40194 */ sw $a0, 0x194($sp)
/* 0F4430 7F0BF8C0 8FA3001C */ lw $v1, 0x1c($sp)
/* 0F4434 7F0BF8C4 8FA40194 */ lw $a0, 0x194($sp)
@@ -3567,7 +3541,7 @@ glabel manage_mp_game
/* 0F4578 7F0BFA08 8FA4017C */ lw $a0, 0x17c($sp)
/* 0F457C 7F0BFA0C 0FC30AA2 */ jal get_textptr_for_textID
/* 0F4580 7F0BFA10 3404B044 */ li $a0, 45124
/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_FUN_7f08ac40
/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 0F4588 7F0BFA18 00402025 */ move $a0, $v0
/* 0F458C 7F0BFA1C 8FAF017C */ lw $t7, 0x17c($sp)
/* 0F4590 7F0BFA20 25F80001 */ addiu $t8, $t7, 1
@@ -3942,7 +3916,7 @@ glabel manage_mp_game
/* 0F4AD8 7F0BFF68 2401005A */ li $at, 90
/* 0F4ADC 7F0BFF6C 17210009 */ bne $t9, $at, .Ljp7F0BFF94
/* 0F4AE0 7F0BFF70 00000000 */ nop
/* 0F4AE4 7F0BFF74 0FC24907 */ jal sub_GAME_7F09193C
/* 0F4AE4 7F0BFF74 0FC24907 */ jal cheat_buttons_mp_related
/* 0F4AE8 7F0BFF78 00000000 */ nop
/* 0F4AEC 7F0BFF7C 0FC069F4 */ jal menu_init
/* 0F4AF0 7F0BFF80 00000000 */ nop
@@ -3984,7 +3958,7 @@ glabel manage_mp_game
/* 0F4B7C 7F0C000C 24043000 */ li $a0, 12288
/* 0F4B80 7F0C0010 17000048 */ bnez $t8, .Ljp7F0C0134
/* 0F4B84 7F0C0014 00000000 */ nop
/* 0F4B88 7F0C0018 0C0025CC */ jal allocate_bytes_in_bank
/* 0F4B88 7F0C0018 0C0025CC */ jal mempAllocBytesInBank
/* 0F4B8C 7F0C001C 24050004 */ li $a1, 4
/* 0F4B90 7F0C0020 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005
/* 0F4B94 7F0C0024 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04
@@ -4188,7 +4162,7 @@ glabel manage_mp_game
/* 0F4E70 7F0C0300 24050202 */ li $a1, 514
/* 0F4E74 7F0C0304 50400004 */ beql $v0, $zero, .Ljp7F0C0318
/* 0F4E78 7F0C0308 00002025 */ move $a0, $zero
/* 0F4E7C 7F0C030C 0FC2F97A */ jal sub_GAME_7F0BDA38
/* 0F4E7C 7F0C030C 0FC2F97A */ jal music_append_play_endtheme
/* 0F4E80 7F0C0310 00000000 */ nop
/* 0F4E84 7F0C0314 00002025 */ move $a0, $zero
.Ljp7F0C0318:
@@ -4196,7 +4170,7 @@ glabel manage_mp_game
/* 0F4E8C 7F0C031C 24050101 */ li $a1, 257
/* 0F4E90 7F0C0320 50400004 */ beql $v0, $zero, .Ljp7F0C0334
/* 0F4E94 7F0C0324 00002025 */ move $a0, $zero
/* 0F4E98 7F0C0328 0FC2F967 */ jal sub_GAME_7F0BD9EC
/* 0F4E98 7F0C0328 0FC2F967 */ jal music_append_play_solo_death_short
/* 0F4E9C 7F0C032C 00000000 */ nop
/* 0F4EA0 7F0C0330 00002025 */ move $a0, $zero
.Ljp7F0C0334:
@@ -4290,7 +4264,7 @@ glabel sub_GAME_7F0BF800
/* 0F4334 7F0BF804 AFBF0014 */ sw $ra, 0x14($sp)
/* 0F4338 7F0BF808 0FC26C54 */ jal get_cur_playernum
/* 0F433C 7F0BF80C 00000000 */ nop
/* 0F4340 7F0BF810 0FC2464F */ jal sub_GAME_7F09193C
/* 0F4340 7F0BF810 0FC2464F */ jal cheat_buttons_mp_related
/* 0F4344 7F0BF814 A3A2002F */ sb $v0, 0x2f($sp)
/* 0F4348 7F0BF818 0FC243C2 */ jal get_debug_freeze_processing
/* 0F434C 7F0BF81C 00000000 */ nop
@@ -4431,8 +4405,8 @@ glabel sub_GAME_7F0BF800
/* 0F4544 7F0BFA14 46021482 */ mul.s $f18, $f2, $f2
/* 0F4548 7F0BFA18 0C007DF8 */ jal sqrtf
/* 0F454C 7F0BFA1C 46128300 */ add.s $f12, $f16, $f18
/* 0F4550 7F0BFA20 3C028008 */ lui $v0, %hi(cur_player_stat_ptr)
/* 0F4554 7F0BFA24 8C42A0B4 */ lw $v0, %lo(cur_player_stat_ptr)($v0)
/* 0F4550 7F0BFA20 3C028008 */ lui $v0, %hi(pPlayersPerm)
/* 0F4554 7F0BFA24 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0)
/* 0F4558 7F0BFA28 C4440038 */ lwc1 $f4, 0x38($v0)
/* 0F455C 7F0BFA2C 46002180 */ add.s $f6, $f4, $f0
/* 0F4560 7F0BFA30 0FC051D6 */ jal get_scenario
@@ -4460,8 +4434,8 @@ glabel sub_GAME_7F0BF800
/* 0F45B8 7F0BFA88 00000000 */ nop
/* 0F45BC 7F0BFA8C AC490894 */ sw $t1, 0x894($v0)
.L7F0BFA90:
/* 0F45C0 7F0BFA90 3C038008 */ lui $v1, %hi(cur_player_stat_ptr)
/* 0F45C4 7F0BFA94 2463A0B4 */ addiu $v1, %lo(cur_player_stat_ptr) # addiu $v1, $v1, -0x5f4c
/* 0F45C0 7F0BFA90 3C038008 */ lui $v1, %hi(pPlayersPerm)
/* 0F45C4 7F0BFA94 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c
/* 0F45C8 7F0BFA98 8C620000 */ lw $v0, ($v1)
/* 0F45CC 7F0BFA9C 3C0B8005 */ lui $t3, %hi(clock_timer)
/* 0F45D0 7F0BFAA0 8D6B8374 */ lw $t3, %lo(clock_timer)($t3)
@@ -4473,8 +4447,8 @@ glabel sub_GAME_7F0BF800
/* 0F45E8 7F0BFAB8 10000015 */ b .L7F0BFB10
/* 0F45EC 7F0BFABC A1CD0069 */ sb $t5, 0x69($t6)
.L7F0BFAC0:
/* 0F45F0 7F0BFAC0 3C0F8008 */ lui $t7, %hi(cur_player_stat_ptr)
/* 0F45F4 7F0BFAC4 8DEFA0B4 */ lw $t7, %lo(cur_player_stat_ptr)($t7)
/* 0F45F0 7F0BFAC0 3C0F8008 */ lui $t7, %hi(pPlayersPerm)
/* 0F45F4 7F0BFAC4 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7)
/* 0F45F8 7F0BFAC8 10000011 */ b .L7F0BFB10
/* 0F45FC 7F0BFACC A1E00069 */ sb $zero, 0x69($t7)
.L7F0BFAD0:
@@ -4483,17 +4457,17 @@ glabel sub_GAME_7F0BF800
/* 0F4608 7F0BFAD8 24010003 */ li $at, 3
/* 0F460C 7F0BFADC 5441000D */ bnel $v0, $at, .L7F0BFB14
/* 0F4610 7F0BFAE0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0F4614 7F0BFAE4 0FC233F0 */ jal sub_GAME_7F08CFC0
/* 0F4614 7F0BFAE4 0FC233F0 */ jal checkforgoldengun
/* 0F4618 7F0BFAE8 00000000 */ nop
/* 0F461C 7F0BFAEC 10400006 */ beqz $v0, .L7F0BFB08
/* 0F4620 7F0BFAF0 3C088008 */ lui $t0, %hi(cur_player_stat_ptr)
/* 0F4624 7F0BFAF4 3C198008 */ lui $t9, %hi(cur_player_stat_ptr)
/* 0F4628 7F0BFAF8 8F39A0B4 */ lw $t9, %lo(cur_player_stat_ptr)($t9)
/* 0F4620 7F0BFAF0 3C088008 */ lui $t0, %hi(pPlayersPerm)
/* 0F4624 7F0BFAF4 3C198008 */ lui $t9, %hi(pPlayersPerm)
/* 0F4628 7F0BFAF8 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9)
/* 0F462C 7F0BFAFC 24180001 */ li $t8, 1
/* 0F4630 7F0BFB00 10000003 */ b .L7F0BFB10
/* 0F4634 7F0BFB04 A3380069 */ sb $t8, 0x69($t9)
.L7F0BFB08:
/* 0F4638 7F0BFB08 8D08A0B4 */ lw $t0, %lo(cur_player_stat_ptr)($t0)
/* 0F4638 7F0BFB08 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0)
/* 0F463C 7F0BFB0C A1000069 */ sb $zero, 0x69($t0)
.L7F0BFB10:
/* 0F4640 7F0BFB10 8FBF0014 */ lw $ra, 0x14($sp)
@@ -4521,7 +4495,7 @@ void unload_stage_text_data(void) {
blank_text_bank(get_textbank_number_for_stagenum(current_stage_to_load));
sub_GAME_7F007770();
}
sub_GAME_7F0926C0();
cheatDisableAllCheats();
cleanupGuardData();
cleanupObjectSounds();
cleanupExplosions();
+3 -1
View File
@@ -8,7 +8,9 @@ struct ramrom_struct {
};
extern s32 D_800483C4;
extern s32 clock_timer;
extern s32 global_timer;
extern f32 global_timer_delta;
extern u32 *ptr_jfont_DL;
extern s32 dword_CODE_bss_8008C264;
extern s32 dword_CODE_bss_8008C268;
+91 -137
View File
@@ -31,7 +31,7 @@ struct ramrom_struct ramrom_table[] = {
};
//D:80048468
s32 ramrom_blkbuf_1 = 0;
s32 ptr_active_demofile = 0;
//D:8004846C
s32 ramrom_blkbuf_2 = 0;
//D:80048470
@@ -65,7 +65,7 @@ const char aReplayDemo_load[] = "replay/demo.load";
void clear_ramrom_block_buffer_heading_ptrs(void) {
ramrom_blkbuf_1 = 0;
ptr_active_demofile = 0;
ramrom_blkbuf_2 = 0;
ramrom_blkbuf_3 = 0;
}
@@ -97,10 +97,10 @@ void finalize_ramrom_on_hw(void) {
romWrite(temp_a0, address_demo_loaded, 0x10);
address_demo_loaded = (s32) (address_demo_loaded + 4);
temp_ret = romCopyAligned(&ramrom_data_target, 0xf00000, 0xf0);
ramrom_blkbuf_1 = temp_ret;
ptr_active_demofile = temp_ret;
temp_ret->unk7C = (s32) (global_timer - clock_timer);
ramrom_blkbuf_1->unk80 = (s32) (address_demo_loaded - 0xf00000);
return romWrite(ramrom_blkbuf_1, 0xf00000, 0xf0);
ptr_active_demofile->unk80 = (s32) (address_demo_loaded - 0xf00000);
return romWrite(ptr_active_demofile, 0xf00000, 0xf0);
}
#else
GLOBAL_ASM(
@@ -128,8 +128,8 @@ glabel finalize_ramrom_on_hw
/* 0F482C 7F0BFCFC 3C0500F0 */ lui $a1, 0xf0
/* 0F4830 7F0BFD00 0C001711 */ jal romCopyAligned
/* 0F4834 7F0BFD04 240600F0 */ li $a2, 240
/* 0F4838 7F0BFD08 3C038005 */ lui $v1, %hi(ramrom_blkbuf_1)
/* 0F483C 7F0BFD0C 24638468 */ addiu $v1, %lo(ramrom_blkbuf_1) # addiu $v1, $v1, -0x7b98
/* 0F4838 7F0BFD08 3C038005 */ lui $v1, %hi(ptr_active_demofile)
/* 0F483C 7F0BFD0C 24638468 */ addiu $v1, %lo(ptr_active_demofile) # addiu $v1, $v1, -0x7b98
/* 0F4840 7F0BFD10 AC620000 */ sw $v0, ($v1)
/* 0F4844 7F0BFD14 3C088005 */ lui $t0, %hi(global_timer)
/* 0F4848 7F0BFD18 3C098005 */ lui $t1, %hi(clock_timer)
@@ -158,8 +158,18 @@ glabel finalize_ramrom_on_hw
#ifdef NONMATCHING
void save_ramrom_to_devtool(void) {
void save_ramrom_to_devtool(void)
{
int iVar2;
undefined auStack264 [4];
char indyFileName [260];
for (iVar2 = 1; check_file_found_on_indy(indyFileName,(u32)auStack264) != 0; iVar2++)
{
sprintf(indyFileName,"replay/demo.%d",iVar2);
}
sprintf(indyFileName,"replay/demo.%d",iVar2);
check_file_exported(indyFileName,0xf00000,(ptr_active_demofile + 0x80));
}
#else
GLOBAL_ASM(
@@ -194,8 +204,8 @@ glabel save_ramrom_to_devtool
/* 0F48F0 7F0BFDC0 02202025 */ move $a0, $s1
/* 0F48F4 7F0BFDC4 0C002B25 */ jal sprintf
/* 0F48F8 7F0BFDC8 02003025 */ move $a2, $s0
/* 0F48FC 7F0BFDCC 3C0E8005 */ lui $t6, %hi(ramrom_blkbuf_1)
/* 0F4900 7F0BFDD0 8DCE8468 */ lw $t6, %lo(ramrom_blkbuf_1)($t6)
/* 0F48FC 7F0BFDCC 3C0E8005 */ lui $t6, %hi(ptr_active_demofile)
/* 0F4900 7F0BFDD0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6)
/* 0F4904 7F0BFDD4 02202025 */ move $a0, $s1
/* 0F4908 7F0BFDD8 3C0500F0 */ lui $a1, 0xf0
/* 0F490C 7F0BFDDC 0FC34017 */ jal check_file_exported
@@ -215,25 +225,15 @@ glabel save_ramrom_to_devtool
#ifdef NONMATCHING
void load_ramrom_from_devtool(void) {
? sp1C;
? temp_ret;
? temp_ret_2;
? phi_return;
void load_ramrom_from_devtool(void)
{
s32 size;
// Node 0
temp_ret = check_file_found_on_indy("replay/demo.load", &sp1C);
phi_return = temp_ret;
if (temp_ret != 0)
if (check_file_found_on_indy("replay/demo.load", &size) != 0)
{
// Node 1
indy_loadfile("replay/demo.load", 0xf00000, sp1C);
temp_ret_2 = romCopyAligned(&ramrom_data_target, 0xf00000, 0xe8);
ramrom_blkbuf_1 = temp_ret_2;
phi_return = temp_ret_2;
indy_load_ramrom_file("replay/demo.load",(u8 *)0xf00000,size);
ptr_active_demofile = romCopyAligned(&ramrom_data_target,(u8 *)0xf00000,0xe8);
}
// Node 2
return phi_return;
}
#else
GLOBAL_ASM(
@@ -256,8 +256,8 @@ glabel load_ramrom_from_devtool
/* 0F4968 7F0BFE38 3C0500F0 */ lui $a1, 0xf0
/* 0F496C 7F0BFE3C 0C001711 */ jal romCopyAligned
/* 0F4970 7F0BFE40 240600E8 */ li $a2, 232
/* 0F4974 7F0BFE44 3C018005 */ lui $at, %hi(ramrom_blkbuf_1)
/* 0F4978 7F0BFE48 AC228468 */ sw $v0, %lo(ramrom_blkbuf_1)($at)
/* 0F4974 7F0BFE44 3C018005 */ lui $at, %hi(ptr_active_demofile)
/* 0F4978 7F0BFE48 AC228468 */ sw $v0, %lo(ptr_active_demofile)($at)
.L7F0BFE4C:
/* 0F497C 7F0BFE4C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0F4980 7F0BFE50 27BD0020 */ addiu $sp, $sp, 0x20
@@ -279,9 +279,9 @@ GLOBAL_ASM(
.text
glabel record_player_input_as_packet
/* 0F498C 7F0BFE5C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0F4990 7F0BFE60 3C0E8005 */ lui $t6, %hi(ramrom_blkbuf_1)
/* 0F4990 7F0BFE60 3C0E8005 */ lui $t6, %hi(ptr_active_demofile)
/* 0F4994 7F0BFE64 3C0F8009 */ lui $t7, %hi(ramrom_data_target + 0x1F8)
/* 0F4998 7F0BFE68 8DCE8468 */ lw $t6, %lo(ramrom_blkbuf_1)($t6)
/* 0F4998 7F0BFE68 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6)
/* 0F499C 7F0BFE6C 25EFC468 */ addiu $t7, %lo(ramrom_data_target + 0x1F8) # addiu $t7, $t7, -0x3b98
/* 0F49A0 7F0BFE70 25F8000F */ addiu $t8, $t7, 0xf
/* 0F49A4 7F0BFE74 AFBF001C */ sw $ra, 0x1c($sp)
@@ -445,8 +445,8 @@ glabel ramrom_replay_handler
/* 0F4BC0 7F0C0090 AFB10018 */ sw $s1, 0x18($sp)
/* 0F4BC4 7F0C0094 AFB00014 */ sw $s0, 0x14($sp)
/* 0F4BC8 7F0C0098 904A0001 */ lbu $t2, 1($v0)
/* 0F4BCC 7F0C009C 3C0E8005 */ lui $t6, %hi(ramrom_blkbuf_1)
/* 0F4BD0 7F0C00A0 8DCE8468 */ lw $t6, %lo(ramrom_blkbuf_1)($t6)
/* 0F4BCC 7F0C009C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile)
/* 0F4BD0 7F0C00A0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6)
/* 0F4BD4 7F0C00A4 00A08025 */ move $s0, $a1
/* 0F4BD8 7F0C00A8 00808825 */ move $s1, $a0
/* 0F4BDC 7F0C00AC 00004025 */ move $t0, $zero
@@ -598,7 +598,7 @@ s32 iterate_ramrom_entries_handle_camera_out(void) {
if (temp_a3 > 0)
{
// Node 1
ramrom_blkbuf_3 = romCopyAligned(&ramrom_data_target + 0x21E, (address_demo_loaded + 4), ((ramrom_blkbuf_1->unk18 * 4) * temp_a3), temp_a3);
ramrom_blkbuf_3 = romCopyAligned(&ramrom_data_target + 0x21E, (address_demo_loaded + 4), ((ptr_active_demofile->unk18 * 4) * temp_a3), temp_a3);
phi_a0 = ramrom_blkbuf_2->unk1;
phi_v1 = (void *) ramrom_blkbuf_2;
phi_a3 = ramrom_blkbuf_2->unk1;
@@ -613,12 +613,12 @@ s32 iterate_ramrom_entries_handle_camera_out(void) {
else
{
// Node 5
address_demo_loaded = (s32) (address_demo_loaded + (((((ramrom_blkbuf_1->unk18 * 4) * phi_a3) + 5) | 1) ^ 1));
address_demo_loaded = (s32) (address_demo_loaded + (((((ptr_active_demofile->unk18 * 4) * phi_a3) + 5) | 1) ^ 1));
phi_v1_2 = phi_v1;
}
// Node 6
sub_GAME_7F0C0AA0(*phi_v1_2);
temp_v1 = (ramrom_blkbuf_1->unk7C + -0x3c);
temp_v1 = (ptr_active_demofile->unk7C + -0x3c);
phi_return = global_timer;
if (global_timer >= temp_v1)
{
@@ -651,10 +651,10 @@ glabel iterate_ramrom_entries_handle_camera_out
/* 0F4DC0 7F0C0290 ACA20000 */ sw $v0, ($a1)
/* 0F4DC4 7F0C0294 90470001 */ lbu $a3, 1($v0)
/* 0F4DC8 7F0C0298 00401825 */ move $v1, $v0
/* 0F4DCC 7F0C029C 3C0E8005 */ lui $t6, %hi(ramrom_blkbuf_1)
/* 0F4DCC 7F0C029C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile)
/* 0F4DD0 7F0C02A0 18E00013 */ blez $a3, .L7F0C02F0
/* 0F4DD4 7F0C02A4 00E02025 */ move $a0, $a3
/* 0F4DD8 7F0C02A8 8DCE8468 */ lw $t6, %lo(ramrom_blkbuf_1)($t6)
/* 0F4DD8 7F0C02A8 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6)
/* 0F4DDC 7F0C02AC 3C058009 */ lui $a1, %hi(address_demo_loaded)
/* 0F4DE0 7F0C02B0 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1)
/* 0F4DE4 7F0C02B4 8DCF0018 */ lw $t7, 0x18($t6)
@@ -674,7 +674,7 @@ glabel iterate_ramrom_entries_handle_camera_out
/* 0F4E1C 7F0C02EC 00E02025 */ move $a0, $a3
.L7F0C02F0:
/* 0F4E20 7F0C02F0 14800009 */ bnez $a0, .L7F0C0318
/* 0F4E24 7F0C02F4 3C098005 */ lui $t1, %hi(ramrom_blkbuf_1)
/* 0F4E24 7F0C02F4 3C098005 */ lui $t1, %hi(ptr_active_demofile)
/* 0F4E28 7F0C02F8 90790000 */ lbu $t9, ($v1)
/* 0F4E2C 7F0C02FC 17200006 */ bnez $t9, .L7F0C0318
/* 0F4E30 7F0C0300 00000000 */ nop
@@ -684,7 +684,7 @@ glabel iterate_ramrom_entries_handle_camera_out
/* 0F4E40 7F0C0310 1000000E */ b .L7F0C034C
/* 0F4E44 7F0C0314 8C63846C */ lw $v1, %lo(ramrom_blkbuf_2)($v1)
.L7F0C0318:
/* 0F4E48 7F0C0318 8D298468 */ lw $t1, %lo(ramrom_blkbuf_1)($t1)
/* 0F4E48 7F0C0318 8D298468 */ lw $t1, %lo(ptr_active_demofile)($t1)
/* 0F4E4C 7F0C031C 3C088009 */ lui $t0, %hi(address_demo_loaded)
/* 0F4E50 7F0C0320 8D08C5F4 */ lw $t0, %lo(address_demo_loaded)($t0)
/* 0F4E54 7F0C0324 8D2A0018 */ lw $t2, 0x18($t1)
@@ -700,8 +700,8 @@ glabel iterate_ramrom_entries_handle_camera_out
.L7F0C034C:
/* 0F4E7C 7F0C034C 0FC302A8 */ jal sub_GAME_7F0C0AA0
/* 0F4E80 7F0C0350 90640000 */ lbu $a0, ($v1)
/* 0F4E84 7F0C0354 3C198005 */ lui $t9, %hi(ramrom_blkbuf_1)
/* 0F4E88 7F0C0358 8F398468 */ lw $t9, %lo(ramrom_blkbuf_1)($t9)
/* 0F4E84 7F0C0354 3C198005 */ lui $t9, %hi(ptr_active_demofile)
/* 0F4E88 7F0C0358 8F398468 */ lw $t9, %lo(ptr_active_demofile)($t9)
/* 0F4E8C 7F0C035C 3C028005 */ lui $v0, %hi(global_timer)
/* 0F4E90 7F0C0360 8C42837C */ lw $v0, %lo(global_timer)($v0)
/* 0F4E94 7F0C0364 8F23007C */ lw $v1, 0x7c($t9)
@@ -757,7 +757,7 @@ void copy_current_ingame_registers_before_ramrom_playback(void *arg0) {
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, &handicap_player1, &controlstyle_player);
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);
@@ -999,9 +999,9 @@ glabel test_if_recording_demos_this_stage_load
/* 0F5188 7F0C0658 3C0F8009 */ lui $t7, %hi(ramrom_data_target)
/* 0F518C 7F0C065C 25EFC270 */ addiu $t7, %lo(ramrom_data_target) # addiu $t7, $t7, -0x3d90
/* 0F5190 7F0C0660 25F8000F */ addiu $t8, $t7, 0xf
/* 0F5194 7F0C0664 3C108005 */ lui $s0, %hi(ramrom_blkbuf_1)
/* 0F5194 7F0C0664 3C108005 */ lui $s0, %hi(ptr_active_demofile)
/* 0F5198 7F0C0668 3719000F */ ori $t9, $t8, 0xf
/* 0F519C 7F0C066C 26108468 */ addiu $s0, %lo(ramrom_blkbuf_1) # addiu $s0, $s0, -0x7b98
/* 0F519C 7F0C066C 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98
/* 0F51A0 7F0C0670 3B28000F */ xori $t0, $t9, 0xf
/* 0F51A4 7F0C0674 AE080000 */ sw $t0, ($s0)
/* 0F51A8 7F0C0678 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8)
@@ -1049,9 +1049,9 @@ glabel test_if_recording_demos_this_stage_load
/* 0F524C 7F0C071C 3C198005 */ lui $t9, %hi(ramrom_demo_related_4)
/* 0F5250 7F0C0720 8F39847C */ lw $t9, %lo(ramrom_demo_related_4)($t9)
/* 0F5254 7F0C0724 13200020 */ beqz $t9, .L7F0C07A8
/* 0F5258 7F0C0728 3C108005 */ lui $s0, %hi(ramrom_blkbuf_1)
/* 0F5258 7F0C0728 3C108005 */ lui $s0, %hi(ptr_active_demofile)
/* 0F525C 7F0C072C 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8)
/* 0F5260 7F0C0730 26108468 */ addiu $s0, %lo(ramrom_blkbuf_1) # addiu $s0, $s0, -0x7b98
/* 0F5260 7F0C0730 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98
/* 0F5264 7F0C0734 AC20C5F8 */ sw $zero, %lo(dword_CODE_bss_8008C5F8)($at)
/* 0F5268 7F0C0738 8E080000 */ lw $t0, ($s0)
/* 0F526C 7F0C073C 0FC07567 */ jal set_selected_difficulty
@@ -1100,64 +1100,30 @@ void setRamRomRecordSlot(s32 arg0) {
record_slot_num = arg0;
}
#ifdef NONMATCHING
void stop_recording_ramrom(void) {
// Node 0
if (ramrom_demo_related_6 != 0)
{
// Node 1
finalize_ramrom_on_hw();
set_ptr_tlb_ramrom_record(0);
ramrom_demo_related_6 = 0;
recording_ramrom_flag = 0;
}
// Node 2
return;
}
#else
GLOBAL_ASM(
.text
glabel stop_recording_ramrom
/* 0F5304 7F0C07D4 3C0E8005 */ lui $t6, %hi(ramrom_demo_related_6)
/* 0F5308 7F0C07D8 8DCE8484 */ lw $t6, %lo(ramrom_demo_related_6)($t6)
/* 0F530C 7F0C07DC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0F5310 7F0C07E0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0F5314 7F0C07E4 51C0000A */ beql $t6, $zero, .L7F0C0810
/* 0F5318 7F0C07E8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0F531C 7F0C07EC 0FC2FF2C */ jal finalize_ramrom_on_hw
/* 0F5320 7F0C07F0 00000000 */ nop
/* 0F5324 7F0C07F4 0C002EEF */ jal set_ptr_tlb_ramrom_record
/* 0F5328 7F0C07F8 00002025 */ move $a0, $zero
/* 0F532C 7F0C07FC 3C018005 */ lui $at, %hi(ramrom_demo_related_6)
/* 0F5330 7F0C0800 AC208484 */ sw $zero, %lo(ramrom_demo_related_6)($at)
/* 0F5334 7F0C0804 3C018005 */ lui $at, %hi(recording_ramrom_flag)
/* 0F5338 7F0C0808 AC208480 */ sw $zero, %lo(recording_ramrom_flag)($at)
/* 0F533C 7F0C080C 8FBF0014 */ lw $ra, 0x14($sp)
.L7F0C0810:
/* 0F5340 7F0C0810 27BD0018 */ addiu $sp, $sp, 0x18
/* 0F5344 7F0C0814 03E00008 */ jr $ra
/* 0F5348 7F0C0818 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void replay_recorded_ramrom_at_address(s32 arg0) {
// Node 0
void replay_recorded_ramrom_at_address(s32 arg0)
{
address_demo_loaded = arg0;
ramrom_blkbuf_1 = romCopyAligned(&ramrom_data_target, address_demo_loaded, 0xe8);
address_demo_loaded = (s32) (address_demo_loaded + 0xe8);
ptr_active_demofile = romCopyAligned(&ramrom_data_target, address_demo_loaded, 0xe8);
address_demo_loaded += 0xe8;
ramrom_demo_related_4 = 1;
set_solo_and_ptr_briefing(ramrom_blkbuf_1->unk10, &ramrom_blkbuf_1);
set_selected_difficulty(ramrom_blkbuf_1->unk14);
set_solo_and_ptr_briefing(ptr_active_demofile->unk10);
set_selected_difficulty(ptr_active_demofile->unk14);
return set_menu_to_mode(0xb, 1);
}
#else
@@ -1177,8 +1143,8 @@ glabel replay_recorded_ramrom_at_address
/* 0F5374 7F0C0844 3C038009 */ lui $v1, %hi(address_demo_loaded)
/* 0F5378 7F0C0848 2463C5F4 */ addiu $v1, %lo(address_demo_loaded) # addiu $v1, $v1, -0x3a0c
/* 0F537C 7F0C084C 8C6E0000 */ lw $t6, ($v1)
/* 0F5380 7F0C0850 3C058005 */ lui $a1, %hi(ramrom_blkbuf_1)
/* 0F5384 7F0C0854 24A58468 */ addiu $a1, %lo(ramrom_blkbuf_1) # addiu $a1, $a1, -0x7b98
/* 0F5380 7F0C0850 3C058005 */ lui $a1, %hi(ptr_active_demofile)
/* 0F5384 7F0C0854 24A58468 */ addiu $a1, %lo(ptr_active_demofile) # addiu $a1, $a1, -0x7b98
/* 0F5388 7F0C0858 25CF00E8 */ addiu $t7, $t6, 0xe8
/* 0F538C 7F0C085C ACA20000 */ sw $v0, ($a1)
/* 0F5390 7F0C0860 AC6F0000 */ sw $t7, ($v1)
@@ -1188,8 +1154,8 @@ glabel replay_recorded_ramrom_at_address
/* 0F53A0 7F0C0870 8CB90000 */ lw $t9, ($a1)
/* 0F53A4 7F0C0874 0FC0757B */ jal set_solo_and_ptr_briefing
/* 0F53A8 7F0C0878 8F240010 */ lw $a0, 0x10($t9)
/* 0F53AC 7F0C087C 3C088005 */ lui $t0, %hi(ramrom_blkbuf_1)
/* 0F53B0 7F0C0880 8D088468 */ lw $t0, %lo(ramrom_blkbuf_1)($t0)
/* 0F53AC 7F0C087C 3C088005 */ lui $t0, %hi(ptr_active_demofile)
/* 0F53B0 7F0C0880 8D088468 */ lw $t0, %lo(ptr_active_demofile)($t0)
/* 0F53B4 7F0C0884 0FC07567 */ jal set_selected_difficulty
/* 0F53B8 7F0C0888 8D040014 */ lw $a0, 0x14($t0)
/* 0F53BC 7F0C088C 2404000B */ li $a0, 11
@@ -1206,59 +1172,39 @@ glabel replay_recorded_ramrom_at_address
void replay_recorded_ramrom_from_indy(void) {
void replay_recorded_ramrom_from_indy(void)
{
replay_recorded_ramrom_at_address(0xf00000);
}
#ifdef NONMATCHING
void ensureCameraModeA(void) {
? temp_ret;
? phi_return;
// Node 0
temp_ret = get_camera_mode();
phi_return = temp_ret;
if (temp_ret != 0xa)
void ensureCameraModeA(void)
{
if (get_camera_mode() != 0xa)
{
// Node 1
phi_return = set_camera_mode(0xa);
set_camera_mode(0xa);
}
// Node 2
return phi_return;
}
#else
GLOBAL_ASM(
.text
glabel ensureCameraModeA
/* 0F53F8 7F0C08C8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0F53FC 7F0C08CC AFBF0014 */ sw $ra, 0x14($sp)
/* 0F5400 7F0C08D0 0FC1E94A */ jal get_camera_mode
/* 0F5404 7F0C08D4 00000000 */ nop
/* 0F5408 7F0C08D8 2401000A */ li $at, 10
/* 0F540C 7F0C08DC 50410004 */ beql $v0, $at, .L7F0C08F0
/* 0F5410 7F0C08E0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0F5414 7F0C08E4 0FC1EA6E */ jal set_camera_mode
/* 0F5418 7F0C08E8 2404000A */ li $a0, 10
/* 0F541C 7F0C08EC 8FBF0014 */ lw $ra, 0x14($sp)
.L7F0C08F0:
/* 0F5420 7F0C08F0 27BD0018 */ addiu $sp, $sp, 0x18
/* 0F5424 7F0C08F4 03E00008 */ jr $ra
/* 0F5428 7F0C08F8 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void stop_demo_playback(void) {
void stop_demo_playback(void)
{
if (ramrom_demo_related_6 == 0) {
if (ramrom_demo_related_3 != 0) {
copy_recorded_ramrom_registers_to_proper_place_ingame(&ramromsettingsbackup);
set_disable_all_rumble_and_something(0,0xffffffff);
controller_7000C930(0);
ramrom_demo_related_3 = 0;
is_ramrom_flag = 0;
}
}
else {
stop_recording_ramrom();
}
}
#else
GLOBAL_ASM(
@@ -1365,8 +1311,16 @@ glabel select_ramrom_to_play
#ifdef NONMATCHING
void check_ramrom_flags(void) {
s32 check_ramrom_flags(void)
{
if ((get_is_ramrom_flag() == 0) && (get_recording_ramrom_flag() == 0))
{
return 0;
}
else
{
return *(undefined4 *)(ptr_active_demofile + 0x88);
}
}
#else
GLOBAL_ASM(
@@ -1382,8 +1336,8 @@ glabel check_ramrom_flags
/* 0F556C 7F0C0A3C 00000000 */ nop
/* 0F5570 7F0C0A40 10400004 */ beqz $v0, .L7F0C0A54
.L7F0C0A44:
/* 0F5574 7F0C0A44 3C0E8005 */ lui $t6, %hi(ramrom_blkbuf_1)
/* 0F5578 7F0C0A48 8DCE8468 */ lw $t6, %lo(ramrom_blkbuf_1)($t6)
/* 0F5574 7F0C0A44 3C0E8005 */ lui $t6, %hi(ptr_active_demofile)
/* 0F5578 7F0C0A48 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6)
/* 0F557C 7F0C0A4C 10000002 */ b .L7F0C0A58
/* 0F5580 7F0C0A50 8DC20088 */ lw $v0, 0x88($t6)
.L7F0C0A54:
+254 -256
View File
@@ -82,265 +82,151 @@ void *LnameX_lookuptable[] = {
"LoptionsE", "LoptionsJ", /* Solo in-game menus */
"LmiscE", "LmiscJ"}; /* Cheat options */
LEVELID get_textbank_number_for_stagenum(LEVELID level)
{
LEVELID return_id;
#ifdef NONMATCHING
LEVELID get_textbank_number_for_stagenum(LEVELID level) {
switch(level)
{
case LEVELID_BUNKER1:
return LSEV;
case LEVELID_SILO:
return LSILO;
case LEVELID_STATUE:
return LSTAT;
case LEVELID_CONTROL:
return LAREC;
case LEVELID_ARCHIVES:
return LARCH;
case LEVELID_TRAIN:
return LTRA;
case LEVELID_FRIGATE:
return LDEST;
case LEVELID_BUNKER2:
return LSEVB;
case LEVELID_AZTEC:
return LAZT;
case LEVELID_STREETS:
return LPETE;
case LEVELID_DEPOT:
return LDEPO;
case LEVELID_COMPLEX:
return LREF;
case LEVELID_EGYPT:
return LCRYP;
case LEVELID_DAM:
return LDAM;
return_id = LDAM;
break;
case LEVELID_FACILITY:
return LARK;
return_id = LARK;
break;
case LEVELID_RUNWAY:
return LRUN;
return_id = LRUN;
break;
case LEVELID_SURFACE:
return LSEVX;
case LEVELID_JUNGLE:
return LJUN;
case LEVELID_TEMPLE:
return LDISH;
case LEVELID_CAVERNS:
return LCAVE;
case LEVELID_CRADLE:
return LCRAD;
return_id = LSEVX;
break;
case LEVELID_BUNKER1:
return_id = LSEV;
break;
case LEVELID_SILO:
return_id = LSILO;
break;
case LEVELID_FRIGATE:
return_id = LDEST;
break;
case LEVELID_SURFACE2:
return LSEVXB;
case LEVELID_BASEMENT:
return LIMP;
case LEVELID_STACK:
return LASH;
return_id = LSEVXB;
break;
case LEVELID_BUNKER2:
return_id = LSEVB;
break;
case LEVELID_STATUE:
return_id = LSTAT;
break;
case LEVELID_ARCHIVES:
return_id = LARCH;
break;
case LEVELID_STREETS:
return_id = LPETE;
break;
case LEVELID_DEPOT:
return_id = LDEPO;
break;
case LEVELID_TRAIN:
return_id = LTRA;
break;
case LEVELID_JUNGLE:
return_id = LJUN;
break;
case LEVELID_CONTROL:
return_id = LAREC;
break;
case LEVELID_CAVERNS:
return_id = LCAVE;
break;
case LEVELID_CRADLE:
return_id = LCRAD;
break;
case LEVELID_AZTEC:
return_id = LAZT;
break;
case LEVELID_EGYPT:
return_id = LCRYP;
break;
case LEVELID_TEMPLE:
return_id = LDISH;
break;
case LEVELID_COMPLEX:
return_id = LREF;
break;
case LEVELID_LIBRARY:
return LAME;
return_id = LAME;
break;
case LEVELID_BASEMENT:
return_id = LIMP;
break;
case LEVELID_STACK:
return_id = LASH;
break;
case LEVELID_CAVES:
return LOAT;
return_id = LOAT;
break;
case LEVELID_CUBA:
return LLEN;
return_id = LLEN;
break;
default:
{
/* infinite loop on invalid text bank */
while(1) {};
}
}
/* infinite loop on invalid text bank */
do {
} while(1);
return 0;
return return_id;
}
#else
GLOBAL_ASM(
.late_rodata
/*D:8005BB60*/
glabel jpt_stage_text
.word .L7F0C1624
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word .L7F0C162C
.word stagetext_loop
.word .L7F0C164C
.word .L7F0C167C
.word .L7F0C1654
.word .L7F0C166C
.word .L7F0C1634
.word .L7F0C1644
.word .L7F0C1694
.word .L7F0C165C
/*.word .L7F0C1664*/
/*.word .L7F0C16AC*/
/*.word .L7F0C169C*/
/*.word .L7F0C1604*/
/*.word .L7F0C160C*/
/*.word .L7F0C1614*/
/*.word .L7F0C161C*/
/*.word .L7F0C1674*/
/*.word .L7F0C16A4*/
/*.word .L7F0C1684*/
/*.word stagetext_loop*/
/*.word .L7F0C168C*/
/*.word stagetext_loop*/
/*.word .L7F0C163C*/
/*.word stagetext_loop*/
/*.word .L7F0C16BC*/
/*.word .L7F0C16C4*/
/*.word stagetext_loop*/
/*.word .L7F0C16B4*/
/*.word stagetext_loop*/
/*.word .L7F0C16CC*/
/*.word stagetext_loop*/
/*.word stagetext_loop*/
/*.word stagetext_loop*/
/*.word .L7F0C16D4*/
.text
glabel get_textbank_number_for_stagenum
/* 0F6110 7F0C15E0 248EFFF7 */ addiu $t6, $a0, -9
/* 0F6114 7F0C15E4 2DC1002E */ sltiu $at, $t6, 0x2e
/* 0F6118 7F0C15E8 1020003C */ beqz $at, .L7F0C16DC
/* 0F611C 7F0C15EC 000E7080 */ sll $t6, $t6, 2
/* 0F6120 7F0C15F0 3C018006 */ lui $at, %hi(jpt_stage_text)
/* 0F6124 7F0C15F4 002E0821 */ addu $at, $at, $t6
/* 0F6128 7F0C15F8 8C2EBB60 */ lw $t6, %lo(jpt_stage_text)($at)
/* 0F612C 7F0C15FC 01C00008 */ jr $t6
/* 0F6130 7F0C1600 00000000 */ nop
.L7F0C1604:
/* 0F6134 7F0C1604 03E00008 */ jr $ra
/* 0F6138 7F0C1608 2402000B */ li $v0, 11
.L7F0C160C:
/* 0F613C 7F0C160C 03E00008 */ jr $ra
/* 0F6140 7F0C1610 24020003 */ li $v0, 3
.L7F0C1614:
/* 0F6144 7F0C1614 03E00008 */ jr $ra
/* 0F6148 7F0C1618 2402001C */ li $v0, 28
.L7F0C161C:
/* 0F614C 7F0C161C 03E00008 */ jr $ra
/* 0F6150 7F0C1620 2402001F */ li $v0, 31
.L7F0C1624:
/* 0F6154 7F0C1624 03E00008 */ jr $ra
/* 0F6158 7F0C1628 2402001E */ li $v0, 30
.L7F0C162C:
/* 0F615C 7F0C162C 03E00008 */ jr $ra
/* 0F6160 7F0C1630 24020022 */ li $v0, 34
.L7F0C1634:
/* 0F6164 7F0C1634 03E00008 */ jr $ra
/* 0F6168 7F0C1638 2402000D */ li $v0, 13
.L7F0C163C:
/* 0F616C 7F0C163C 03E00008 */ jr $ra
/* 0F6170 7F0C1640 24020020 */ li $v0, 32
.L7F0C1644:
/* 0F6174 7F0C1644 03E00008 */ jr $ra
/* 0F6178 7F0C1648 2402001D */ li $v0, 29
.L7F0C164C:
/* 0F617C 7F0C164C 03E00008 */ jr $ra
/* 0F6180 7F0C1650 24020023 */ li $v0, 35
.L7F0C1654:
/* 0F6184 7F0C1654 03E00008 */ jr $ra
/* 0F6188 7F0C1658 24020002 */ li $v0, 2
.L7F0C165C:
/* 0F618C 7F0C165C 03E00008 */ jr $ra
/* 0F6190 7F0C1660 24020019 */ li $v0, 25
.L7F0C1664:
/* 0F6194 7F0C1664 03E00008 */ jr $ra
/* 0F6198 7F0C1668 2402000C */ li $v0, 12
.L7F0C166C:
/* 0F619C 7F0C166C 03E00008 */ jr $ra
/* 0F61A0 7F0C1670 24020024 */ li $v0, 36
.L7F0C1674:
/* 0F61A4 7F0C1674 03E00008 */ jr $ra
/* 0F61A8 7F0C1678 24020012 */ li $v0, 18
.L7F0C167C:
/* 0F61AC 7F0C167C 03E00008 */ jr $ra
/* 0F61B0 7F0C1680 24020008 */ li $v0, 8
.L7F0C1684:
/* 0F61B4 7F0C1684 03E00008 */ jr $ra
/* 0F61B8 7F0C1688 24020007 */ li $v0, 7
.L7F0C168C:
/* 0F61BC 7F0C168C 03E00008 */ jr $ra
/* 0F61C0 7F0C1690 24020009 */ li $v0, 9
.L7F0C1694:
/* 0F61C4 7F0C1694 03E00008 */ jr $ra
/* 0F61C8 7F0C1698 24020005 */ li $v0, 5
.L7F0C169C:
/* 0F61CC 7F0C169C 03E00008 */ jr $ra
/* 0F61D0 7F0C16A0 2402000A */ li $v0, 10
.L7F0C16A4:
/* 0F61D4 7F0C16A4 03E00008 */ jr $ra
/* 0F61D8 7F0C16A8 2402000E */ li $v0, 14
.L7F0C16AC:
/* 0F61DC 7F0C16AC 03E00008 */ jr $ra
/* 0F61E0 7F0C16B0 2402001A */ li $v0, 26
.L7F0C16B4:
/* 0F61E4 7F0C16B4 03E00008 */ jr $ra
/* 0F61E8 7F0C16B8 24020001 */ li $v0, 1
.L7F0C16BC:
/* 0F61EC 7F0C16BC 03E00008 */ jr $ra
/* 0F61F0 7F0C16C0 24020011 */ li $v0, 17
.L7F0C16C4:
/* 0F61F4 7F0C16C4 03E00008 */ jr $ra
/* 0F61F8 7F0C16C8 24020004 */ li $v0, 4
.L7F0C16CC:
/* 0F61FC 7F0C16CC 03E00008 */ jr $ra
/* 0F6200 7F0C16D0 24020017 */ li $v0, 23
.L7F0C16D4:
/* 0F6204 7F0C16D4 03E00008 */ jr $ra
/* 0F6208 7F0C16D8 24020014 */ li $v0, 20
stagetext_loop:
.L7F0C16DC:
/* 0F620C 7F0C16DC 1000FFFF */ b .L7F0C16DC
/* 0F6210 7F0C16E0 00000000 */ nop
/* 0F6214 7F0C16E4 03E00008 */ jr $ra
/* 0F6218 7F0C16E8 00601025 */ move $v0, $v1
)
#endif
#ifdef NONMATCHING
void init_LnameX(void) {
void init_LnameX(void)
{
undefined *puVar1;
u8 **ppuVar2;
int iVar3;
if (j_text_trigger != 0) {
ptr_char_data_buf = mempAllocBytesInBank(0x2e80,'\x06');
ptr_char_registry = mempAllocBytesInBank(0x100,'\x06');
iVar3 = 0;
do {
ptr_char_registry[iVar3] = ptr_char_registry[iVar3] & 0x3f;
*(ushort *)(ptr_char_registry + iVar3) = *(ushort *)(ptr_char_registry + iVar3) | 0x3fff;
(ptr_char_registry + iVar3)[2] = (ptr_char_registry + iVar3)[2] & 0x3f;
*(ushort *)(ptr_char_registry + iVar3 + 2) = *(ushort *)(ptr_char_registry + iVar3 + 2) | 0x3fff;
(ptr_char_registry + iVar3)[4] = (ptr_char_registry + iVar3)[4] & 0x3f;
*(ushort *)(ptr_char_registry + iVar3 + 4) = *(ushort *)(ptr_char_registry + iVar3 + 4) | 0x3fff;
(ptr_char_registry + iVar3)[6] = (ptr_char_registry + iVar3)[6] & 0x3f;
puVar1 = ptr_char_registry + iVar3;
iVar3 += 8;
*(ushort *)(puVar1 + 6) = *(ushort *)(puVar1 + 6) | 0x3fff;
} while (iVar3 != 0xf8);
}
ptr_text = 0;
ppuVar2 = (u8 **)table_text_pointers;
do {
ppuVar2 = ppuVar2 + 4;
ppuVar2[1] = NULL;
ppuVar2[2] = NULL;
ppuVar2[3] = NULL;
*ppuVar2 = NULL;
ppuVar2 = ppuVar2;
} while (ppuVar2 != &ptr_char_data_buf);
table_text_pointers[37] = _load_resource_named_to_membank((&ptr_LgunX)[j_text_trigger],1,0x100,6);
table_text_pointers[38] = _load_resource_named_to_membank((&ptr_LtitleX)[j_text_trigger],1,0x100,6);
table_text_pointers[39] = _load_resource_named_to_membank((&ptr_LmpmenuX)[j_text_trigger],1,0x100,6);
table_text_pointers[40] = _load_resource_named_to_membank((&ptr_LpropobjX)[j_text_trigger],1,0x100,6);
table_text_pointers[41] = _load_resource_named_to_membank((&ptr_LmpweaponsX)[j_text_trigger],1,0x100,6);
table_text_pointers[42] = _load_resource_named_to_membank((&ptr_LoptionsX)[j_text_trigger],1,0x100,6);
table_text_pointers[43] = _load_resource_named_to_membank((&ptr_LmiscX)[j_text_trigger],1,0x100,6);
return;
}
#else
GLOBAL_ASM(
.late_rodata
/*hacks for jtbl*/
.word .L7F0C1664
.word .L7F0C16AC
.word .L7F0C169C
.word .L7F0C1604
.word .L7F0C160C
.word .L7F0C1614
.word .L7F0C161C
.word .L7F0C1674
.word .L7F0C16A4
.word .L7F0C1684
.word stagetext_loop
.word .L7F0C168C
.word stagetext_loop
.word .L7F0C163C
.word stagetext_loop
.word .L7F0C16BC
.word .L7F0C16C4
.word stagetext_loop
.word .L7F0C16B4
.word stagetext_loop
.word .L7F0C16CC
.word stagetext_loop
.word stagetext_loop
.word stagetext_loop
.word .L7F0C16D4
.text
glabel init_LnameX
/* 0F621C 7F0C16EC 27BDFFD8 */ addiu $sp, $sp, -0x28
@@ -353,12 +239,12 @@ glabel init_LnameX
/* 0F6238 7F0C1708 11000039 */ beqz $t0, .L7F0C17F0
/* 0F623C 7F0C170C AFB00018 */ sw $s0, 0x18($sp)
/* 0F6240 7F0C1710 24042E80 */ li $a0, 11904
/* 0F6244 7F0C1714 0C0025C8 */ jal allocate_bytes_in_bank
/* 0F6244 7F0C1714 0C0025C8 */ jal mempAllocBytesInBank
/* 0F6248 7F0C1718 24050006 */ li $a1, 6
/* 0F624C 7F0C171C 3C018009 */ lui $at, %hi(ptr_j_char_data_buf)
/* 0F6250 7F0C1720 AC22C6F4 */ sw $v0, %lo(ptr_j_char_data_buf)($at)
/* 0F6254 7F0C1724 24040100 */ li $a0, 256
/* 0F6258 7F0C1728 0C0025C8 */ jal allocate_bytes_in_bank
/* 0F6258 7F0C1728 0C0025C8 */ jal mempAllocBytesInBank
/* 0F625C 7F0C172C 24050006 */ li $a1, 6
/* 0F6260 7F0C1730 3C048009 */ lui $a0, %hi(ptr_j_char_registry)
/* 0F6264 7F0C1734 2484C6F8 */ addiu $a0, %lo(ptr_j_char_registry) # addiu $a0, $a0, -0x3908
@@ -503,8 +389,50 @@ glabel init_LnameX
#ifdef NONMATCHING
void something_with_LnameJ(void) {
void something_with_LnameJ(void)
{
ushort uVar1;
ushort *puVar2;
int iVar3;
iVar3 = 0;
if (j_text_trigger != 0) {
do {
puVar2 = (ushort *)(ptr_char_registry + iVar3);
if (*puVar2 >> 0xe == 0) {
uVar1 = puVar2[1];
}
else {
*(byte *)puVar2 = ((byte)(*puVar2 >> 0xe) - 1) * '@' | *(byte *)puVar2 & 0x3f;
puVar2 = (ushort *)(ptr_char_registry + iVar3);
uVar1 = puVar2[1];
}
if (uVar1 >> 0xe == 0) {
uVar1 = puVar2[2];
}
else {
*(byte *)(puVar2 + 1) =
((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 1) & 0x3f;
puVar2 = (ushort *)(ptr_char_registry + iVar3);
uVar1 = puVar2[2];
}
if (uVar1 >> 0xe == 0) {
uVar1 = puVar2[3];
}
else {
*(byte *)(puVar2 + 2) =
((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 2) & 0x3f;
puVar2 = (ushort *)(ptr_char_registry + iVar3);
uVar1 = puVar2[3];
}
iVar3 += 8;
if (uVar1 >> 0xe != 0) {
*(byte *)(puVar2 + 3) =
((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 3) & 0x3f;
}
} while (iVar3 != 0xf8);
}
return;
}
#else
GLOBAL_ASM(
@@ -584,8 +512,84 @@ glabel something_with_LnameJ
#ifdef NONMATCHING
void something_with_LnameX(void) {
int something_with_LnameX(uint param_1)
{
bool bVar1;
ushort uVar3;
u8 *puVar2;
int iVar4;
ushort *puVar5;
int iVar6;
int iVar7;
int indexto;
int iVar8;
int iVar9;
int indexfrom;
indexto = -1;
bVar1 = (param_1 & 0x2000) != 0;
iVar7 = 0;
iVar4 = 0;
iVar9 = -1;
puVar5 = (ushort *)ptr_char_registry;
do {
indexfrom = (int)param_1 >> 1;
if ((!bVar1) && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) break;
if ((bVar1) &&
(((iVar4 + 1 < 0x7c && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) &&
((longlong)indexfrom == ((ulonglong)puVar5[1] & 0x3fff))))) break;
uVar3 = *puVar5 >> 0xe;
iVar6 = iVar4 + 1;
if (uVar3 == 0) {
indexto = iVar4;
}
iVar7 += 2;
iVar8 = iVar9;
if (((uVar3 == 0) && (puVar5[1] >> 0xe == 0)) && (iVar8 = iVar4, 0x7b < iVar6)) {
iVar8 = iVar9;
}
puVar5 = puVar5 + 1;
iVar4 = iVar6;
iVar9 = iVar8;
} while (iVar6 != 0x7c);
if (iVar4 < 0x7c) {
if (bVar1) {
*(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80;
(ptr_char_registry + iVar7)[2] = (ptr_char_registry + iVar7)[2] & 0x3f | 0x80;
puVar2 = ptr_char_data_buf + iVar4 * 0x60;
}
else {
*(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80;
puVar2 = ptr_char_data_buf + iVar4 * 0x60;
}
}
else {
if ((bVar1) || (indexto < 0)) {
puVar2 = ptr_char_data_buf;
if ((bVar1) && (iVar4 = iVar9 * 2, -1 < iVar9)) {
ptr_char_registry[iVar4] = ptr_char_registry[iVar4] & 0x3f | 0x80;
(ptr_char_registry + iVar4)[2] = (ptr_char_registry + iVar4)[2] & 0x3f | 0x80;
uVar3 = (ushort)indexfrom & 0x3fff;
*(ushort *)(ptr_char_registry + iVar4) =
uVar3 | *(ushort *)(ptr_char_registry + iVar4) & 0xc000;
*(ushort *)(ptr_char_registry + iVar4 + 2) =
uVar3 | *(ushort *)(ptr_char_registry + iVar4 + 2) & 0xc000;
romCopy((char *)(ptr_char_data_buf + iVar9 * 0x60),
(char *)(_efontcharSegmentStart + ((int)(param_1 & 0x1fff) >> 1) * 0x20),
0x80);
puVar2 = ptr_char_data_buf + iVar9 * 0x60;
}
}
else {
ptr_char_registry[indexto * 2] = ptr_char_registry[indexto * 2] & 0x3f | 0x80;
*(ushort *)(ptr_char_registry + indexto * 2) =
(ushort)indexfrom & 0x3fff | *(ushort *)(ptr_char_registry + indexto * 2) & 0xc000;
romCopy((char *)(ptr_char_data_buf + indexto * 0x60),
(char *)(_jfontcharSegmentStart + indexfrom * 0x18),0x60);
puVar2 = ptr_char_data_buf + indexto * 0x60;
}
}
return (int)puVar2;
}
#else
GLOBAL_ASM(
@@ -797,13 +801,10 @@ glabel something_with_LnameX
#ifdef NONMATCHING
void load_mission_text_bank(s32 arg0, s32 arg6) {
// Node 0
*(&ptr_text + (arg6 * 4)) = _load_resource_named_to_membank(*(&LnameX_lookuptable + ((arg0 * 8) + (j_text_trigger * 4))), 1, 0x100, 4);
return;
// (possible return value: _load_resource_named_to_membank(*(&LnameX_lookuptable + ((arg0 * 8) + (j_text_trigger * 4))), 1, 0x100, 4))
void load_mission_text_bank(u32 param_1)
{
*(u8 **)(&ptr_text + param_1) = _load_resource_named_to_membank((byte *)(&(&LnameX_lookuptable)[param_1].en_file)[j_text_trigger],1,0x100,4);
}
#else
GLOBAL_ASM(
.text
@@ -839,13 +840,10 @@ glabel load_mission_text_bank
#ifdef NONMATCHING
void load_briefing_text_bank(s32 arg0, s32 arg1, ? arg2, s32 arg6) {
// Node 0
*(&ptr_text + (arg6 * 4)) = _load_resource_named_to_buffer(*(&LnameX_lookuptable + ((arg0 * 8) + (j_text_trigger * 4))), 1, arg1, arg2);
return;
// (possible return value: _load_resource_named_to_buffer(*(&LnameX_lookuptable + ((arg0 * 8) + (j_text_trigger * 4))), 1, arg1, arg2))
void load_briefing_text_bank(int lnameID,undefined *target,int size)
{
*(u8 **)(&ptr_text + lnameID) = _load_resource_named_to_buffer((byte *)(&(&LnameX_lookuptable)[lnameID].en_file)[j_text_trigger],1,target, size);
}
#else
GLOBAL_ASM(
.text
+2
View File
@@ -6,4 +6,6 @@ struct stringentry {
char *string[];
};
extern s32 j_text_trigger;
#endif
+890 -1395
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -37,13 +37,13 @@ struct mp_stage_playercount {
};
struct mp_stage_setup {
short folder_text_preset;
short select_screen_text_preset;
int photo;
int stage_id;
int unlock_after;
int min_player;
int max_player;
s16 folder_text_preset;
s16 select_screen_text_preset;
s32 photo;
s32 stage_id;
s32 unlock_after;
s32 min_player;
s32 max_player;
};
struct MP_selectable_chars {
@@ -71,8 +71,8 @@ struct MP_controller_configuration_menu {
struct MP_sight_aim_settings {
char anonymous_0;
char field_1;
char field_2;
char field_3;
char sight;
char autoaim;
};
struct intro_char {
+125 -98
View File
@@ -7,29 +7,29 @@ s32 dword_CODE_bss_8008C600;
//CODE.bss:8008C604
s32 dword_CODE_bss_8008C604;
//CODE.bss:8008C608
s32 dword_CODE_bss_8008C608;
s32 music_slot_active_0;
//CODE.bss:8008C60C
s32 dword_CODE_bss_8008C60C;
s32 music_slot_active_1;
//CODE.bss:8008C610
s32 dword_CODE_bss_8008C610;
s32 music_slot_active_2;
//CODE.bss:8008C614
s32 dword_CODE_bss_8008C614;
s32 music_slot_active_3;
//CODE.bss:8008C618
s32 dword_CODE_bss_8008C618;
s32 music_slot_minutes_0;
//CODE.bss:8008C61C
s32 dword_CODE_bss_8008C61C;
s32 music_slot_minutes_1;
//CODE.bss:8008C620
s32 dword_CODE_bss_8008C620;
s32 music_slot_minutes_2;
//CODE.bss:8008C624
s32 dword_CODE_bss_8008C624;
s32 music_slot_minutes_3;
//CODE.bss:8008C628
s32 dword_CODE_bss_8008C628;
s32 music_slot_seconds_0;
//CODE.bss:8008C62C
s32 dword_CODE_bss_8008C62C;
s32 music_slot_seconds_1;
//CODE.bss:8008C630
s32 dword_CODE_bss_8008C630;
s32 music_slot_seconds_2;
//CODE.bss:8008C634
s32 dword_CODE_bss_8008C634;
s32 music_slot_seconds_3;
// data
@@ -41,7 +41,7 @@ s32 mission_state = 0;
void sub_GAME_7F0C0C10(void) {
sub_GAME_7F0A9180();
call_sfx_c_700091C8();
}
s32 get_mission_state(void) {
@@ -178,7 +178,7 @@ glabel set_missionstate
/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(music1_playing)
/* 0F57D8 7F0C0CA8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600)
/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(music1_playing)($at)
/* 0F57E0 7F0C0CB0 0FC349C8 */ jal sub_GAME_7F0D2720
/* 0F57E0 7F0C0CB0 0FC349C8 */ jal getmusictrack_or_randomtrack
/* 0F57E4 7F0C0CB4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0)
/* 0F57E8 7F0C0CB8 0C001B9F */ jal musicTrack1Play
/* 0F57EC 7F0C0CBC 00402025 */ move $a0, $v0
@@ -192,7 +192,7 @@ glabel set_missionstate
/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(music1_playing)
/* 0F580C 7F0C0CDC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600)
/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(music1_playing)($at)
/* 0F5814 7F0C0CE4 0FC349C8 */ jal sub_GAME_7F0D2720
/* 0F5814 7F0C0CE4 0FC349C8 */ jal getmusictrack_or_randomtrack
/* 0F5818 7F0C0CE8 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0)
/* 0F581C 7F0C0CEC 0C001B9F */ jal musicTrack1Play
/* 0F5820 7F0C0CF0 00402025 */ move $a0, $v0
@@ -680,7 +680,7 @@ glabel set_missionstate
/* 0F64C4 7F0C1954 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002
/* 0F64C8 7F0C1958 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009
/* 0F64CC 7F0C195C AC20438C */ sw $zero, %lo(music1_playing)($at)
/* 0F64D0 7F0C1960 0FC34D00 */ jal sub_GAME_7F0D2720
/* 0F64D0 7F0C1960 0FC34D00 */ jal getmusictrack_or_randomtrack
/* 0F64D4 7F0C1964 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0)
/* 0F64D8 7F0C1968 0C001BA3 */ jal musicTrack1Play
/* 0F64DC 7F0C196C 00402025 */ move $a0, $v0
@@ -694,7 +694,7 @@ glabel set_missionstate
/* 0F64F8 7F0C1988 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002
/* 0F64FC 7F0C198C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009
/* 0F6500 7F0C1990 AC20438C */ sw $zero, %lo(music1_playing)($at)
/* 0F6504 7F0C1994 0FC34D00 */ jal sub_GAME_7F0D2720
/* 0F6504 7F0C1994 0FC34D00 */ jal getmusictrack_or_randomtrack
/* 0F6508 7F0C1998 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0)
/* 0F650C 7F0C199C 0C001BA3 */ jal musicTrack1Play
/* 0F6510 7F0C19A0 00402025 */ move $a0, $v0
@@ -1057,9 +1057,23 @@ glabel set_missionstate
#ifdef NONMATCHING
void sub_GAME_7F0C11FC(void) {
#ifdef NONMATCHING//
void sub_GAME_7F0C11FC(s16 param_1)
{
musicTrack1Stop();
musicTrack2Stop();
musicTrack3Stop();
mission_state = 0;
dword_CODE_bss_8008C600 = (int)param_1;
if (sub_GAME_7F0D2848(param_1) < 0)
{
set_missionstate(1);
}
else
{
set_missionstate(4);
}
}
#else
GLOBAL_ASM(
@@ -1101,52 +1115,60 @@ glabel sub_GAME_7F0C11FC
void sub_GAME_7F0C1268(void) {
void sub_GAME_7F0C1268(void)
{
set_missionstate(0);
}
void sub_GAME_7F0C1288(void) {
if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) {
void sub_GAME_7F0C1288(void)
{
if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0)
{
set_missionstate(2);
}
else {
else
{
set_missionstate(5);
}
return;
}
void sub_GAME_7F0C12CC(void) {
if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) {
void sub_GAME_7F0C12CC(void)
{
if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0)
{
set_missionstate(1);
}
else {
else
{
set_missionstate(4);
}
return;
}
void sub_GAME_7F0C1310(void) {
void sub_GAME_7F0C1310(void)
{
dword_CODE_bss_8008C604 = mission_state;
set_missionstate(3);
}
void sub_GAME_7F0C1340(void) {
void sub_GAME_7F0C1340(void)
{
set_missionstate(dword_CODE_bss_8008C604);
}
void sub_GAME_7F0C1364(void) {
dword_CODE_bss_8008C608 = 0;
dword_CODE_bss_8008C618 = 0;
dword_CODE_bss_8008C628 = 0;
dword_CODE_bss_8008C60C = 0;
dword_CODE_bss_8008C61C = 0;
dword_CODE_bss_8008C62C = 0;
dword_CODE_bss_8008C610 = 0;
dword_CODE_bss_8008C620 = 0;
dword_CODE_bss_8008C630 = 0;
dword_CODE_bss_8008C614 = 0;
dword_CODE_bss_8008C624 = 0;
dword_CODE_bss_8008C634 = 0;
void sub_GAME_7F0C1364(void)
{
music_slot_active_0 = 0;
music_slot_minutes_0 = 0;
music_slot_seconds_0 = 0;
music_slot_active_1 = 0;
music_slot_minutes_1 = 0;
music_slot_seconds_1 = 0;
music_slot_active_2 = 0;
music_slot_minutes_2 = 0;
music_slot_seconds_2 = 0;
music_slot_active_3 = 0;
music_slot_minutes_3 = 0;
music_slot_seconds_3 = 0;
}
@@ -1163,16 +1185,16 @@ GLOBAL_ASM(
.text
glabel reset_all_music_slots
/* 0F5EF8 7F0C13C8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0F5EFC 7F0C13CC 3C078009 */ lui $a3, %hi(dword_CODE_bss_8008C608)
/* 0F5F00 7F0C13D0 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C618)
/* 0F5EFC 7F0C13CC 3C078009 */ lui $a3, %hi(music_slot_active_0)
/* 0F5F00 7F0C13D0 3C048009 */ lui $a0, %hi(music_slot_minutes_0)
/* 0F5F04 7F0C13D4 3C068005 */ lui $a2, %hi(clock_timer)
/* 0F5F08 7F0C13D8 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008C628)
/* 0F5F08 7F0C13D8 3C098009 */ lui $t1, %hi(music_slot_seconds_0)
/* 0F5F0C 7F0C13DC AFBF0014 */ sw $ra, 0x14($sp)
/* 0F5F10 7F0C13E0 00005025 */ move $t2, $zero
/* 0F5F14 7F0C13E4 2529C628 */ addiu $t1, %lo(dword_CODE_bss_8008C628) # addiu $t1, $t1, -0x39d8
/* 0F5F14 7F0C13E4 2529C628 */ addiu $t1, %lo(music_slot_seconds_0) # addiu $t1, $t1, -0x39d8
/* 0F5F18 7F0C13E8 8CC68374 */ lw $a2, %lo(clock_timer)($a2)
/* 0F5F1C 7F0C13EC 2484C618 */ addiu $a0, %lo(dword_CODE_bss_8008C618) # addiu $a0, $a0, -0x39e8
/* 0F5F20 7F0C13F0 24E7C608 */ addiu $a3, %lo(dword_CODE_bss_8008C608) # addiu $a3, $a3, -0x39f8
/* 0F5F1C 7F0C13EC 2484C618 */ addiu $a0, %lo(music_slot_minutes_0) # addiu $a0, $a0, -0x39e8
/* 0F5F20 7F0C13F0 24E7C608 */ addiu $a3, %lo(music_slot_active_0) # addiu $a3, $a3, -0x39f8
/* 0F5F24 7F0C13F4 00004025 */ move $t0, $zero
.L7F0C13F8:
/* 0F5F28 7F0C13F8 8CE50000 */ lw $a1, ($a3)
@@ -1183,8 +1205,8 @@ glabel reset_all_music_slots
/* 0F5F3C 7F0C140C 24840004 */ addiu $a0, $a0, 4
/* 0F5F40 7F0C1410 8C820000 */ lw $v0, ($a0)
.L7F0C1414:
/* 0F5F44 7F0C1414 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008C628)
/* 0F5F48 7F0C1418 25EFC628 */ addiu $t7, %lo(dword_CODE_bss_8008C628) # addiu $t7, $t7, -0x39d8
/* 0F5F44 7F0C1414 3C0F8009 */ lui $t7, %hi(music_slot_seconds_0)
/* 0F5F48 7F0C1418 25EFC628 */ addiu $t7, %lo(music_slot_seconds_0) # addiu $t7, $t7, -0x39d8
/* 0F5F4C 7F0C141C 0046082A */ slt $at, $v0, $a2
/* 0F5F50 7F0C1420 14200004 */ bnez $at, .L7F0C1434
/* 0F5F54 7F0C1424 010F1821 */ addu $v1, $t0, $t7
@@ -1259,15 +1281,20 @@ glabel reset_all_music_slots
#ifdef NONMATCHING
void set_musicslot_time(void) {
void set_musicslot_time(int slot,int min,int sec)
{
if (music_slot_active[slot] == 0) {
music_slot_active[slot] = 1;
music_slot_minutes[slot] = min * 0x3c;
music_slot_seconds[slot] = sec * 0x3c;
}
}
#else
GLOBAL_ASM(
.text
glabel set_musicslot_time
/* 0F602C 7F0C14FC 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008C608)
/* 0F6030 7F0C1500 25CEC608 */ addiu $t6, %lo(dword_CODE_bss_8008C608) # addiu $t6, $t6, -0x39f8
/* 0F602C 7F0C14FC 3C0E8009 */ lui $t6, %hi(music_slot_active_0)
/* 0F6030 7F0C1500 25CEC608 */ addiu $t6, %lo(music_slot_active_0) # addiu $t6, $t6, -0x39f8
/* 0F6034 7F0C1504 00041080 */ sll $v0, $a0, 2
/* 0F6038 7F0C1508 004E1821 */ addu $v1, $v0, $t6
/* 0F603C 7F0C150C 8C6F0000 */ lw $t7, ($v1)
@@ -1276,16 +1303,16 @@ glabel set_musicslot_time
/* 0F6048 7F0C1518 00000000 */ nop
/* 0F604C 7F0C151C 00A40019 */ multu $a1, $a0
/* 0F6050 7F0C1520 24180001 */ li $t8, 1
/* 0F6054 7F0C1524 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C618)
/* 0F6054 7F0C1524 3C018009 */ lui $at, %hi(music_slot_minutes_0)
/* 0F6058 7F0C1528 AC780000 */ sw $t8, ($v1)
/* 0F605C 7F0C152C 00220821 */ addu $at, $at, $v0
/* 0F6060 7F0C1530 0000C812 */ mflo $t9
/* 0F6064 7F0C1534 AC39C618 */ sw $t9, %lo(dword_CODE_bss_8008C618)($at)
/* 0F6068 7F0C1538 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C628)
/* 0F6064 7F0C1534 AC39C618 */ sw $t9, %lo(music_slot_minutes_0)($at)
/* 0F6068 7F0C1538 3C018009 */ lui $at, %hi(music_slot_seconds_0)
/* 0F606C 7F0C153C 00C40019 */ multu $a2, $a0
/* 0F6070 7F0C1540 00220821 */ addu $at, $at, $v0
/* 0F6074 7F0C1544 00004012 */ mflo $t0
/* 0F6078 7F0C1548 AC28C628 */ sw $t0, %lo(dword_CODE_bss_8008C628)($at)
/* 0F6078 7F0C1548 AC28C628 */ sw $t0, %lo(music_slot_seconds_0)($at)
/* 0F607C 7F0C154C 00000000 */ nop
.L7F0C1550:
/* 0F6080 7F0C1550 03E00008 */ jr $ra
@@ -1301,21 +1328,21 @@ glabel set_musicslot_time
void reset_music_in_slot(int lParm1)
{
if (-1 < lParm1) {
(&dword_CODE_bss_8008C608)[(int)lParm1] = 0;
(&music_slot_active_0)[(int)lParm1] = 0;
return;
}
dword_CODE_bss_8008C608 = 0;
dword_CODE_bss_8008C60C = 0;
dword_CODE_bss_8008C610 = 0;
dword_CODE_bss_8008C614 = 0;
dword_CODE_bss_8008C618 = 0;
dword_CODE_bss_8008C61C = 0;
dword_CODE_bss_8008C620 = 0;
dword_CODE_bss_8008C624 = 0;
dword_CODE_bss_8008C628 = 0;
dword_CODE_bss_8008C62C = 0;
dword_CODE_bss_8008C630 = 0;
dword_CODE_bss_8008C634 = 0;
music_slot_active_0 = 0;
music_slot_active_1 = 0;
music_slot_active_2 = 0;
music_slot_active_3 = 0;
music_slot_minutes_0 = 0;
music_slot_minutes_1 = 0;
music_slot_minutes_2 = 0;
music_slot_minutes_3 = 0;
music_slot_seconds_0 = 0;
music_slot_seconds_1 = 0;
music_slot_seconds_2 = 0;
music_slot_seconds_3 = 0;
return;
}
#else
@@ -1323,37 +1350,37 @@ GLOBAL_ASM(
.text
glabel reset_music_in_slot
/* 0F6088 7F0C1558 04800006 */ bltz $a0, .L7F0C1574
/* 0F608C 7F0C155C 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C608)
/* 0F608C 7F0C155C 3C018009 */ lui $at, %hi(music_slot_active_0)
/* 0F6090 7F0C1560 00047080 */ sll $t6, $a0, 2
/* 0F6094 7F0C1564 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C608)
/* 0F6094 7F0C1564 3C018009 */ lui $at, %hi(music_slot_active_0)
/* 0F6098 7F0C1568 002E0821 */ addu $at, $at, $t6
/* 0F609C 7F0C156C 03E00008 */ jr $ra
/* 0F60A0 7F0C1570 AC20C608 */ sw $zero, %lo(dword_CODE_bss_8008C608)($at)
/* 0F60A0 7F0C1570 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at)
.L7F0C1574:
/* 0F60A4 7F0C1574 AC20C608 */ sw $zero, %lo(dword_CODE_bss_8008C608)($at)
/* 0F60A8 7F0C1578 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C618)
/* 0F60AC 7F0C157C AC20C618 */ sw $zero, %lo(dword_CODE_bss_8008C618)($at)
/* 0F60B0 7F0C1580 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C628)
/* 0F60B4 7F0C1584 AC20C628 */ sw $zero, %lo(dword_CODE_bss_8008C628)($at)
/* 0F60B8 7F0C1588 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C60C)
/* 0F60BC 7F0C158C AC20C60C */ sw $zero, %lo(dword_CODE_bss_8008C60C)($at)
/* 0F60C0 7F0C1590 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C61C)
/* 0F60C4 7F0C1594 AC20C61C */ sw $zero, %lo(dword_CODE_bss_8008C61C)($at)
/* 0F60C8 7F0C1598 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C62C)
/* 0F60CC 7F0C159C AC20C62C */ sw $zero, %lo(dword_CODE_bss_8008C62C)($at)
/* 0F60D0 7F0C15A0 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C610)
/* 0F60D4 7F0C15A4 AC20C610 */ sw $zero, %lo(dword_CODE_bss_8008C610)($at)
/* 0F60D8 7F0C15A8 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C620)
/* 0F60DC 7F0C15AC AC20C620 */ sw $zero, %lo(dword_CODE_bss_8008C620)($at)
/* 0F60E0 7F0C15B0 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C630)
/* 0F60E4 7F0C15B4 AC20C630 */ sw $zero, %lo(dword_CODE_bss_8008C630)($at)
/* 0F60E8 7F0C15B8 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C614)
/* 0F60EC 7F0C15BC AC20C614 */ sw $zero, %lo(dword_CODE_bss_8008C614)($at)
/* 0F60F0 7F0C15C0 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C624)
/* 0F60F4 7F0C15C4 AC20C624 */ sw $zero, %lo(dword_CODE_bss_8008C624)($at)
/* 0F60F8 7F0C15C8 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C634)
/* 0F60FC 7F0C15CC AC20C634 */ sw $zero, %lo(dword_CODE_bss_8008C634)($at)
/* 0F60A4 7F0C1574 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at)
/* 0F60A8 7F0C1578 3C018009 */ lui $at, %hi(music_slot_minutes_0)
/* 0F60AC 7F0C157C AC20C618 */ sw $zero, %lo(music_slot_minutes_0)($at)
/* 0F60B0 7F0C1580 3C018009 */ lui $at, %hi(music_slot_seconds_0)
/* 0F60B4 7F0C1584 AC20C628 */ sw $zero, %lo(music_slot_seconds_0)($at)
/* 0F60B8 7F0C1588 3C018009 */ lui $at, %hi(music_slot_active_1)
/* 0F60BC 7F0C158C AC20C60C */ sw $zero, %lo(music_slot_active_1)($at)
/* 0F60C0 7F0C1590 3C018009 */ lui $at, %hi(music_slot_minutes_1)
/* 0F60C4 7F0C1594 AC20C61C */ sw $zero, %lo(music_slot_minutes_1)($at)
/* 0F60C8 7F0C1598 3C018009 */ lui $at, %hi(music_slot_seconds_1)
/* 0F60CC 7F0C159C AC20C62C */ sw $zero, %lo(music_slot_seconds_1)($at)
/* 0F60D0 7F0C15A0 3C018009 */ lui $at, %hi(music_slot_active_2)
/* 0F60D4 7F0C15A4 AC20C610 */ sw $zero, %lo(music_slot_active_2)($at)
/* 0F60D8 7F0C15A8 3C018009 */ lui $at, %hi(music_slot_minutes_2)
/* 0F60DC 7F0C15AC AC20C620 */ sw $zero, %lo(music_slot_minutes_2)($at)
/* 0F60E0 7F0C15B0 3C018009 */ lui $at, %hi(music_slot_seconds_2)
/* 0F60E4 7F0C15B4 AC20C630 */ sw $zero, %lo(music_slot_seconds_2)($at)
/* 0F60E8 7F0C15B8 3C018009 */ lui $at, %hi(music_slot_active_3)
/* 0F60EC 7F0C15BC AC20C614 */ sw $zero, %lo(music_slot_active_3)($at)
/* 0F60F0 7F0C15C0 3C018009 */ lui $at, %hi(music_slot_minutes_3)
/* 0F60F4 7F0C15C4 AC20C624 */ sw $zero, %lo(music_slot_minutes_3)($at)
/* 0F60F8 7F0C15C8 3C018009 */ lui $at, %hi(music_slot_seconds_3)
/* 0F60FC 7F0C15CC AC20C634 */ sw $zero, %lo(music_slot_seconds_3)($at)
/* 0F6100 7F0C15D0 03E00008 */ jr $ra
/* 0F6104 7F0C15D4 00000000 */ nop
)
+13 -12
View File
@@ -342,11 +342,13 @@ glabel check_if_player_is_pressing_anything_left
void play_watch_sfx_beep(void) {
void play_watch_sfx_beep(void)
{
play_sfx_a1(ptr_sfx_buf, 0x9f, 0);
}
void unpause_game(void) {
void unpause_game(void)
{
stop_play_flag = 0;
is_gameover_flag = 0;
is_paused = 0;
@@ -1561,8 +1563,8 @@ glabel sub_GAME_7F0C2E80
/* 0F7B08 7F0C2FD8 2C490001 */ sltiu $t1, $v0, 1
/* 0F7B0C 7F0C2FDC AC890000 */ sw $t1, ($a0)
.L7F0C2FE0:
/* 0F7B10 7F0C2FE0 3C028008 */ lui $v0, %hi(cur_player_stat_ptr)
/* 0F7B14 7F0C2FE4 8C42A0B4 */ lw $v0, %lo(cur_player_stat_ptr)($v0)
/* 0F7B10 7F0C2FE0 3C028008 */ lui $v0, %hi(pPlayersPerm)
/* 0F7B14 7F0C2FE4 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0)
/* 0F7B18 7F0C2FE8 8CEA0000 */ lw $t2, ($a3)
/* 0F7B1C 7F0C2FEC 8C4B0054 */ lw $t3, 0x54($v0)
/* 0F7B20 7F0C2FF0 8D4329F8 */ lw $v1, 0x29f8($t2)
@@ -1576,8 +1578,8 @@ glabel sub_GAME_7F0C2E80
/* 0F7B3C 7F0C300C 3C078008 */ lui $a3, %hi(pPlayer)
/* 0F7B40 7F0C3010 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50
/* 0F7B44 7F0C3014 8CE30000 */ lw $v1, ($a3)
/* 0F7B48 7F0C3018 3C0C8008 */ lui $t4, %hi(cur_player_stat_ptr)
/* 0F7B4C 7F0C301C 8D8CA0B4 */ lw $t4, %lo(cur_player_stat_ptr)($t4)
/* 0F7B48 7F0C3018 3C0C8008 */ lui $t4, %hi(pPlayersPerm)
/* 0F7B4C 7F0C301C 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($t4)
/* 0F7B50 7F0C3020 8C6E29F4 */ lw $t6, 0x29f4($v1)
/* 0F7B54 7F0C3024 8FA80030 */ lw $t0, 0x30($sp)
/* 0F7B58 7F0C3028 8D8D004C */ lw $t5, 0x4c($t4)
@@ -1590,8 +1592,8 @@ glabel sub_GAME_7F0C2E80
/* 0F7B74 7F0C3044 3C078008 */ lui $a3, %hi(pPlayer)
/* 0F7B78 7F0C3048 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50
/* 0F7B7C 7F0C304C 8CF80000 */ lw $t8, ($a3)
/* 0F7B80 7F0C3050 3C0A8008 */ lui $t2, %hi(cur_player_stat_ptr)
/* 0F7B84 7F0C3054 8D4AA0B4 */ lw $t2, %lo(cur_player_stat_ptr)($t2)
/* 0F7B80 7F0C3050 3C0A8008 */ lui $t2, %hi(pPlayersPerm)
/* 0F7B84 7F0C3054 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2)
/* 0F7B88 7F0C3058 8F1929F4 */ lw $t9, 0x29f4($t8)
/* 0F7B8C 7F0C305C 8FA80030 */ lw $t0, 0x30($sp)
/* 0F7B90 7F0C3060 00594823 */ subu $t1, $v0, $t9
@@ -7219,14 +7221,13 @@ def_7F0C40C0:
#ifdef NONMATCHING
s32 sub_GAME_7F0C6048(void) {
// Node 0
s32 sub_GAME_7F0C6048(void)
{
if (is_gameover_flag != 0)
{
// Node 1
return 0;
}
return (pPlayer->unk29C4 | (0 < pPlayer->unk2A00));
return (pPlayer->mpmenuon | (0 < pPlayer->healthdisplaytime));
}
#else
+59 -34
View File
@@ -3,7 +3,7 @@
// data
//D:80048670
struct struct_2 type_0_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_slaps[] = {
{0, 0xCD, 1.0, 1, 0, 1},
{0, 0xCD, 1.0, 1, 0, 1},
{0, 0xCD, 1.0, 1, 0, 1},
@@ -15,7 +15,7 @@ struct struct_2 type_0_stru_800490F0[] = {
};
//D:80048730
struct struct_2 type_1_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_pistols[] = {
{6, 0xCD, 1.0, 1, 0x32, 1},
{6, 0xCD, 1.0, 1, 0x32, 1},
{6, 0xCD, 1.0, 1, 0x32, 1},
@@ -27,7 +27,7 @@ struct struct_2 type_1_stru_800490F0[] = {
};
//D:800487F0
struct struct_2 type_D_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_knife[] = {
{3, 0xD1, 1.0, 0xA, 0xA, 0},
{3, 0xD1, 1.0, 0xA, 0xA, 0},
{3, 0xD1, 1.0, 0xA, 0xA, 0},
@@ -39,7 +39,7 @@ struct struct_2 type_D_stru_800490F0[] = {
};
//D:800488B0
struct struct_2 type_2_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_auto[] = {
{5, 0xCC, 1.0, 1, 0x32, 1},
{5, 0xCC, 1.0, 1, 0x32, 1},
{6, 0xCD, 1.0, 1, 0x32, 1},
@@ -51,7 +51,7 @@ struct struct_2 type_2_stru_800490F0[] = {
};
//D:80048970
struct struct_2 type_3_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_power[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{0x12, 0xBE, 1.0, 0xC, 0x32, 1},
@@ -63,7 +63,7 @@ struct struct_2 type_3_stru_800490F0[] = {
};
//D:80048A30
struct struct_2 type_4_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_sniper[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{0x12, 0xBE, 1.0, 0xC, 0x32, 1},
@@ -75,7 +75,7 @@ struct struct_2 type_4_stru_800490F0[] = {
};
//D:80048AF0
struct struct_2 type_5_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_grenade[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{7, 0xC1, 1.5, 1, 0x64, 1},
@@ -88,7 +88,7 @@ struct struct_2 type_5_stru_800490F0[] = {
//D:80048BB0
#ifdef VERSION_US
struct struct_2 type_6_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_remote_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
@@ -99,8 +99,21 @@ struct struct_2 type_6_stru_800490F0[] = {
{0x1D, 0xC7, 1.5, 7, 5, 0}
};
#endif
#ifdef VERSION_EU
//!FIXME temp copy of us data
struct s_mp_weapon_set mp_weapon_set_remote_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
{0xD, 0xBC, 1.5, 3, 0x64, 1},
{0xD, 0xBC, 1.5, 3, 0x64, 1},
{0x1D, 0xC7, 1.5, 7, 5, 0},
{0x1D, 0xC7, 1.5, 7, 5, 0}
};
#endif
#ifdef VERSION_JP
struct struct_2 type_6_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_remote_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
@@ -113,7 +126,7 @@ struct struct_2 type_6_stru_800490F0[] = {
#endif
//D:80048C70
struct struct_2 type_7_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_glaunch[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{7, 0xC1, 1.5, 1, 0x64, 1},
@@ -126,7 +139,7 @@ struct struct_2 type_7_stru_800490F0[] = {
//D:80048D30
#ifdef VERSION_US
struct struct_2 type_8_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_timed_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
@@ -137,8 +150,21 @@ struct struct_2 type_8_stru_800490F0[] = {
{0x1B, 0xC9, 1.5, 9, 5, 0}
};
#endif
#ifdef VERSION_EU
//!FIXME temp copy of us data
struct s_mp_weapon_set mp_weapon_set_timed_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
{0xD, 0xBC, 1.5, 3, 0x64, 1},
{0xD, 0xBC, 1.5, 3, 0x64, 1},
{0x1B, 0xC9, 1.5, 9, 5, 0},
{0x1B, 0xC9, 1.5, 9, 5, 0}
};
#endif
#ifdef VERSION_JP
struct struct_2 type_8_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_timed_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
@@ -151,7 +177,7 @@ struct struct_2 type_8_stru_800490F0[] = {
#endif
//D:80048DF0
struct struct_2 type_9_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_prox_m[] = {
{4, 0xBF, 3.0, 1, 0x32, 1},
{4, 0xBF, 3.0, 1, 0x32, 1},
{9, 0xC3, 1.5, 1, 0x64, 1},
@@ -163,7 +189,7 @@ struct struct_2 type_9_stru_800490F0[] = {
};
//D:80048EB0
struct struct_2 type_A_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_rockets[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{7, 0xC1, 1.5, 1, 0x64, 1},
@@ -175,7 +201,7 @@ struct struct_2 type_A_stru_800490F0[] = {
};
//D:80048F70
struct struct_2 type_B_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_lasers[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{7, 0xC1, 1.5, 1, 0x64, 1},
@@ -187,7 +213,7 @@ struct struct_2 type_B_stru_800490F0[] = {
};
//D:80049030
struct struct_2 type_C_stru_800490F0[] = {
struct s_mp_weapon_set mp_weapon_set_golden[] = {
{6, 0xCD, 3.0, 1, 0x32, 1},
{6, 0xCD, 3.0, 1, 0x32, 1},
{7, 0xC1, 1.5, 1, 0x64, 1},
@@ -200,20 +226,20 @@ struct struct_2 type_C_stru_800490F0[] = {
//D:800490F0
struct struct_8 mp_weapon_set_text_table[] = {
{0xA8, 0, 0, 0, type_0_stru_800490F0},
{0xA8, 1, 0, 0, type_1_stru_800490F0},
{0xA8, 0xD, 0, 0, type_D_stru_800490F0},
{0xA8, 2, 0, 0, type_2_stru_800490F0},
{0xA8, 3, 0, 0, type_3_stru_800490F0},
{0xA8, 4, 0, 0, type_4_stru_800490F0},
{0xA8, 5, 0, 0, type_5_stru_800490F0},
{0xA8, 6, 0, 0, type_6_stru_800490F0},
{0xA8, 7, 0, 0, type_7_stru_800490F0},
{0xA8, 8, 0, 0, type_8_stru_800490F0},
{0xA8, 9, 0, 0, type_9_stru_800490F0},
{0xA8, 0xA, 0, 0, type_A_stru_800490F0},
{0xA8, 0xB, 0, 0, type_B_stru_800490F0},
{0xA8, 0xC, 0, 0, type_C_stru_800490F0}
{0xA8, 0, 0, 0, mp_weapon_set_slaps},
{0xA8, 1, 0, 0, mp_weapon_set_pistols},
{0xA8, 0xD, 0, 0, mp_weapon_set_knife},
{0xA8, 2, 0, 0, mp_weapon_set_auto},
{0xA8, 3, 0, 0, mp_weapon_set_power},
{0xA8, 4, 0, 0, mp_weapon_set_sniper},
{0xA8, 5, 0, 0, mp_weapon_set_grenade},
{0xA8, 6, 0, 0, mp_weapon_set_remote_m},
{0xA8, 7, 0, 0, mp_weapon_set_glaunch},
{0xA8, 8, 0, 0, mp_weapon_set_timed_m},
{0xA8, 9, 0, 0, mp_weapon_set_prox_m},
{0xA8, 0xA, 0, 0, mp_weapon_set_rockets},
{0xA8, 0xB, 0, 0, mp_weapon_set_lasers},
{0xA8, 0xC, 0, 0, mp_weapon_set_golden}
};
s32 mp_weapon_set = 0xB;
@@ -222,10 +248,9 @@ s32 mp_weapon_set = 0xB;
#ifdef NONMATCHING
void *advance_mp_weapon_set_by_one_save_value(void) {
// Node 0
mp_weapon_set = (s32) ((s32) (mp_weapon_set + 1) % 0xe);
return &mp_weapon_set;
void advance_mp_weapon_set_by_one_save_value(void)
{
mp_weapon_set = (mp_weapon_set + 1) % 0xe;
}
#else
GLOBAL_ASM(
+2 -2
View File
@@ -2,7 +2,7 @@
#define _MP_WEAPON_H_
#include "ultra64.h"
struct struct_2
struct s_mp_weapon_set
{
s32 anonymous_0;
s32 anonymous_1;
@@ -18,7 +18,7 @@ struct struct_8
char field_1;
char field_2;
char field_3;
struct struct_2 * anonymous_1;
struct s_mp_weapon_set * anonymous_1;
};
+2 -2
View File
@@ -48,13 +48,13 @@ s16 random_tracks[] = {
#ifdef NONMATCHING
void sub_GAME_7F0D2720(void) {
void getmusictrack_or_randomtrack(void) {
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0D2720
glabel getmusictrack_or_randomtrack
/* 107250 7F0D2720 3C0E8005 */ lui $t6, %hi(music_setup_entries)
/* 107254 7F0D2724 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6)
/* 107258 7F0D2728 27BDFFD8 */ addiu $sp, $sp, -0x28
+337 -396
View File
File diff suppressed because it is too large Load Diff
+15 -1
View File
@@ -2,13 +2,27 @@
#define _OB_H_
#include "ultra64.h"
struct resource_lookup_data_entry {
u32 rom_size;
u32 pc_remaining;
u32 pc_size;
u32 rom_remaining;
u8 loaded_bank;
u8 unk_11;
u16 reserved;
};
struct fileentry {
s32 index;
char *filename;
void *size;
u8 *hw_address;
};
void something_mem_bank_a0(int);
void sub_GAME_7F0BD234(void);
u8* load_resource_index_to_buffer(s32 index,s32 param_2,u8 *ptrdata,s32 bytes);
u8 * load_rom_resource_index_to_membank(s32 index,s32 type,s32 size,u8 bank);
void resource_load_from_indy(u8 *ptrdata, s32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata);
void load_resource(u8 *ptrdata, s32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata);
#endif
+4 -4
View File
@@ -1828,7 +1828,7 @@ glabel get_obj_instance_controller_for_header
.L7F06C124:
/* 0A0C54 7F06C124 56C00005 */ bnezl $s6, .L7F06C13C
/* 0A0C58 7F06C128 86A20014 */ lh $v0, 0x14($s5)
/* 0A0C5C 7F06C12C 0C0025C8 */ jal allocate_bytes_in_bank
/* 0A0C5C 7F06C12C 0C0025C8 */ jal mempAllocBytesInBank
/* 0A0C60 7F06C130 24040020 */ li $a0, 32
/* 0A0C64 7F06C134 0040B025 */ move $s6, $v0
/* 0A0C68 7F06C138 86A20014 */ lh $v0, 0x14($s5)
@@ -1838,7 +1838,7 @@ glabel get_obj_instance_controller_for_header
/* 0A0C74 7F06C144 00022080 */ sll $a0, $v0, 2
/* 0A0C78 7F06C148 2484000F */ addiu $a0, $a0, 0xf
/* 0A0C7C 7F06C14C 3488000F */ ori $t0, $a0, 0xf
/* 0A0C80 7F06C150 0C0025C8 */ jal allocate_bytes_in_bank
/* 0A0C80 7F06C150 0C0025C8 */ jal mempAllocBytesInBank
/* 0A0C84 7F06C154 3904000F */ xori $a0, $t0, 0xf
/* 0A0C88 7F06C158 AFA20040 */ sw $v0, 0x40($sp)
/* 0A0C8C 7F06C15C 86AA0014 */ lh $t2, 0x14($s5)
@@ -1967,7 +1967,7 @@ glabel get_aircraft_obj_instance_controller
/* 0A0DE0 7F06C2B0 16000006 */ bnez $s0, .L7F06C2CC
/* 0A0DE4 7F06C2B4 240400C0 */ li $a0, 192
/* 0A0DE8 7F06C2B8 24050004 */ li $a1, 4
/* 0A0DEC 7F06C2BC 0C0025C8 */ jal allocate_bytes_in_bank
/* 0A0DEC 7F06C2BC 0C0025C8 */ jal mempAllocBytesInBank
/* 0A0DF0 7F06C2C0 A7A80026 */ sh $t0, 0x26($sp)
/* 0A0DF4 7F06C2C4 87A80026 */ lh $t0, 0x26($sp)
/* 0A0DF8 7F06C2C8 00408025 */ move $s0, $v0
@@ -1979,7 +1979,7 @@ glabel get_aircraft_obj_instance_controller
/* 0A0E0C 7F06C2DC 00062080 */ sll $a0, $a2, 2
/* 0A0E10 7F06C2E0 2484000F */ addiu $a0, $a0, 0xf
/* 0A0E14 7F06C2E4 3499000F */ ori $t9, $a0, 0xf
/* 0A0E18 7F06C2E8 0C0025C8 */ jal allocate_bytes_in_bank
/* 0A0E18 7F06C2E8 0C0025C8 */ jal mempAllocBytesInBank
/* 0A0E1C 7F06C2EC 3B24000F */ xori $a0, $t9, 0xf
/* 0A0E20 7F06C2F0 8FAA0030 */ lw $t2, 0x30($sp)
/* 0A0E24 7F06C2F4 AFA20028 */ sw $v0, 0x28($sp)
+2 -2
View File
@@ -13235,10 +13235,10 @@ glabel sub_GAME_7F0762E0
/* 0AAE50 7F076320 0FC2F495 */ jal get_index_num_of_named_resource
/* 0AAE54 7F076324 AFAE0054 */ sw $t6, 0x54($sp)
/* 0AAE58 7F076328 AFA20050 */ sw $v0, 0x50($sp)
/* 0AAE5C 7F07632C 0FC2F447 */ jal get_remaining_buffer_for_index
/* 0AAE5C 7F07632C 0FC2F447 */ jal get_rom_remaining_buffer_for_index
/* 0AAE60 7F076330 00402025 */ move $a0, $v0
/* 0AAE64 7F076334 00408025 */ move $s0, $v0
/* 0AAE68 7F076338 0FC2F440 */ jal get_temp_remaining_buffer_for_index
/* 0AAE68 7F076338 0FC2F440 */ jal get_pc_remaining_buffer_for_index
/* 0AAE6C 7F07633C 8FA40050 */ lw $a0, 0x50($sp)
/* 0AAE70 7F076340 0040F025 */ move $fp, $v0
/* 0AAE74 7F076344 AFA00074 */ sw $zero, 0x74($sp)
+73 -112
View File
@@ -1,8 +1,10 @@
#include "ultra64.h"
#include "bondconstants.h"
#include "bondtypes.h"
// bss
//CODE.bss:80075D30
char objective_ptrs[0x28];
struct objective_entry * objective_ptrs[10];
u32 dword_CODE_bss_80075D58;
u32 dword_CODE_bss_80075D5C;
char dword_CODE_bss_80075D60[0x20];
@@ -18,15 +20,9 @@ u32 *ptr_last_deposit_in_room_subobject_entry_type21;
u32 *ptr_last_photo_obj_in_room_subobject_entry_type1E;
// data
s32 num_objective_ptrs[] = {0xFFFFFFFF, 0, 0, 0};
//file possibly split at sub_CODE_7F057AC0
s32 num_objective_ptrs[] = {0xFFFFFFFF, 0};
//D:80032300
u32 D_80032300 = 0;
//D:80032304
u32 D_80032304 = 0;
//D:80032308
u32 D_80032308 = 0;
// rodata
const u32 D_80053610[] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
@@ -107,9 +103,41 @@ glabel get_handle_to_tagged_object
#ifdef NONMATCHING
void get_ptr_text_for_watch_breifing_page(void) {
#ifdef NONMATCHING
u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page)
{
struct watchMenuObjectiveText * curentry;
u8 * textptr;
textptr = 0;
for (curentry = ptr_last_briefing_setup_entry_type23; curentry != 0; curentry = curentry->nextentry)
{
if (page == curentry->menu)
{
textptr = get_textptr_for_textID(curentry->text);
}
textptr = 0;
}
if (textptr == 0)
{
if (page == 0)
{
textptr = get_textptr_for_textID(0xb029); //"E R R O R\n"
}
else
{
if (page == 1)
{
textptr = get_textptr_for_textID(0xb02a); //"no briefing for this mission\n"
}
else
{
textptr = get_textptr_for_textID(0xb02b); //"\n"
}
}
}
return textptr;
}
#else
GLOBAL_ASM(
@@ -170,57 +198,23 @@ glabel get_ptr_text_for_watch_breifing_page
#ifdef NONMATCHING
void add_objective(void) {
s32 add_objective(void)
{
return num_objective_ptrs[0]+1;
}
#else
GLOBAL_ASM(
.text
glabel add_objective
/* 08BCD8 7F0571A8 3C028003 */ lui $v0, %hi(num_objective_ptrs)
/* 08BCDC 7F0571AC 8C4222F0 */ lw $v0, %lo(num_objective_ptrs)($v0)
/* 08BCE0 7F0571B0 03E00008 */ jr $ra
/* 08BCE4 7F0571B4 24420001 */ addiu $v0, $v0, 1
)
#endif
#ifdef NONMATCHING
void get_text_for_objective(void) {
u8 * get_text_for_objective(int objective)
{
u8 *textptr;
if ((objective < 10) && (objective_ptrs[objective] != 0)) {
return get_textptr_for_textID(objective_ptrs[objective]->text);
}
return 0;
}
#else
GLOBAL_ASM(
.text
glabel get_text_for_objective
/* 08BCE8 7F0571B8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 08BCEC 7F0571BC 2881000A */ slti $at, $a0, 0xa
/* 08BCF0 7F0571C0 1020000B */ beqz $at, .L7F0571F0
/* 08BCF4 7F0571C4 AFBF0014 */ sw $ra, 0x14($sp)
/* 08BCF8 7F0571C8 00047080 */ sll $t6, $a0, 2
/* 08BCFC 7F0571CC 3C028007 */ lui $v0, %hi(objective_ptrs)
/* 08BD00 7F0571D0 004E1021 */ addu $v0, $v0, $t6
/* 08BD04 7F0571D4 8C425D30 */ lw $v0, %lo(objective_ptrs)($v0)
/* 08BD08 7F0571D8 50400006 */ beql $v0, $zero, .L7F0571F4
/* 08BD0C 7F0571DC 00001025 */ move $v0, $zero
/* 08BD10 7F0571E0 0FC30776 */ jal get_textptr_for_textID
/* 08BD14 7F0571E4 9444000A */ lhu $a0, 0xa($v0)
/* 08BD18 7F0571E8 10000003 */ b .L7F0571F8
/* 08BD1C 7F0571EC 8FBF0014 */ lw $ra, 0x14($sp)
.L7F0571F0:
/* 08BD20 7F0571F0 00001025 */ move $v0, $zero
.L7F0571F4:
/* 08BD24 7F0571F4 8FBF0014 */ lw $ra, 0x14($sp)
.L7F0571F8:
/* 08BD28 7F0571F8 27BD0018 */ addiu $sp, $sp, 0x18
/* 08BD2C 7F0571FC 03E00008 */ jr $ra
/* 08BD30 7F057200 00000000 */ nop
)
#endif
@@ -468,56 +462,23 @@ objective_microcode_type_17_18_1F_default:
#ifdef NONMATCHING
void check_objectives_complete(void) {
u32 check_objectives_complete(void)
{
DIFFICULTY objdiff;
DIFFICULTY curdiff;
int objective;
for (objective = 0; objective < add_objective(); objective++)
{
objdiff = get_difficulty_for_objective(objective);
curdiff = get_current_difficulty();
if ((objdiff <= curdiff) && (get_status_of_objective(objective) != 1)) {
return 0;
}
}
return 1;
}
#else
GLOBAL_ASM(
.text
glabel check_objectives_complete
/* 08BFE8 7F0574B8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 08BFEC 7F0574BC AFBF0024 */ sw $ra, 0x24($sp)
/* 08BFF0 7F0574C0 AFB00018 */ sw $s0, 0x18($sp)
/* 08BFF4 7F0574C4 AFB20020 */ sw $s2, 0x20($sp)
/* 08BFF8 7F0574C8 AFB1001C */ sw $s1, 0x1c($sp)
/* 08BFFC 7F0574CC 0FC15C6A */ jal add_objective
/* 08C000 7F0574D0 00008025 */ move $s0, $zero
/* 08C004 7F0574D4 18400013 */ blez $v0, .L7F057524
/* 08C008 7F0574D8 24120001 */ li $s2, 1
.L7F0574DC:
/* 08C00C 7F0574DC 0FC15C81 */ jal get_difficulty_for_objective
/* 08C010 7F0574E0 02002025 */ move $a0, $s0
/* 08C014 7F0574E4 0FC2FF04 */ jal get_current_difficulty
/* 08C018 7F0574E8 00408825 */ move $s1, $v0
/* 08C01C 7F0574EC 0051082A */ slt $at, $v0, $s1
/* 08C020 7F0574F0 14200007 */ bnez $at, .L7F057510
/* 08C024 7F0574F4 00000000 */ nop
/* 08C028 7F0574F8 0FC15C8E */ jal get_status_of_objective
/* 08C02C 7F0574FC 02002025 */ move $a0, $s0
/* 08C030 7F057500 10520003 */ beq $v0, $s2, .L7F057510
/* 08C034 7F057504 00000000 */ nop
/* 08C038 7F057508 10000007 */ b .L7F057528
/* 08C03C 7F05750C 00001025 */ move $v0, $zero
.L7F057510:
/* 08C040 7F057510 0FC15C6A */ jal add_objective
/* 08C044 7F057514 26100001 */ addiu $s0, $s0, 1
/* 08C048 7F057518 0202082A */ slt $at, $s0, $v0
/* 08C04C 7F05751C 1420FFEF */ bnez $at, .L7F0574DC
/* 08C050 7F057520 00000000 */ nop
.L7F057524:
/* 08C054 7F057524 24020001 */ li $v0, 1
.L7F057528:
/* 08C058 7F057528 8FBF0024 */ lw $ra, 0x24($sp)
/* 08C05C 7F05752C 8FB00018 */ lw $s0, 0x18($sp)
/* 08C060 7F057530 8FB1001C */ lw $s1, 0x1c($sp)
/* 08C064 7F057534 8FB20020 */ lw $s2, 0x20($sp)
/* 08C068 7F057538 03E00008 */ jr $ra
/* 08C06C 7F05753C 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
#ifdef VERSION_JP
void FUN_7f057a40(void)
@@ -627,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_load_parse_something
/* 08C1B4 7F057684 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C1B8 7F057688 00402825 */ move $a1, $v0
/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4
/* 08C1C0 7F057690 00000000 */ nop
@@ -637,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_load_parse_something
/* 08C1D8 7F0576A8 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0
/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4
/* 08C1E4 7F0576B4 00000000 */ nop
@@ -647,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_load_parse_something
/* 08C1FC 7F0576CC 0C0029FF */ jal string_append_from_obseg_textbank
/* 08C200 7F0576D0 00402825 */ move $a1, $v0
.L7F0576D4:
/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner
@@ -776,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_load_parse_something
/* 08C710 7F057BA0 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C714 7F057BA4 00402825 */ move $a1, $v0
/* 08C718 7F057BA8 10000011 */ b .L7F057BF0
/* 08C71C 7F057BAC 00000000 */ nop
@@ -786,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_load_parse_something
/* 08C734 7F057BC4 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C738 7F057BC8 00402825 */ move $a1, $v0
/* 08C73C 7F057BCC 10000008 */ b .L7F057BF0
/* 08C740 7F057BD0 00000000 */ nop
@@ -796,10 +757,10 @@ 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_load_parse_something
/* 08C758 7F057BE8 0C002A03 */ jal string_append_from_obseg_textbank
/* 08C75C 7F057BEC 00402825 */ move $a1, $v0
.L7F057BF0:
/* 08C760 7F057BF0 0FC22B10 */ jal jp_FUN_7f08ac40
/* 08C760 7F057BF0 0FC22B10 */ jal jp_display_string_in_lower_left_corner
/* 08C764 7F057BF4 02602025 */ move $a0, $s3
.L7F057BF8:
/* 08C768 7F057BF8 0FC15DC1 */ jal get_difficulty_for_objective
+29 -4
View File
@@ -1,8 +1,27 @@
#include "ultra64.h"
#ifdef NONMATCHING
void sub_GAME_7F057AC0(void) {
//D:80032300
u32 D_80032300 = 0;
//D:80032304
u32 D_80032304 = 0;
//D:80032308
u32 D_80032308 = 0;
#ifdef NONMATCHING
void sub_GAME_7F057AC0(float *param_1)
{
float firstrandfinal;
float secondrandfinal;
float thirdrandfinal;
firstrandfinal = D_80032300;
secondrandfinal = D_80032304;
thirdrandfinal = D_80032308;
firstrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
secondrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
thirdrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477;
sub_GAME_7F058714(&firstrandfinal,param_1);
return;
}
#else
GLOBAL_ASM(
@@ -300,8 +319,14 @@ glabel sub_GAME_7F057D88
#ifdef NONMATCHING
void sub_GAME_7F057DF8(void) {
void sub_GAME_7F057DF8(float *param_1,float *param_2,int param_3)
{
int i;
for (i = 0; 0 < param_3; i++)
{
sub_GAME_7F058098(param_2,param_1);
}
}
#else
GLOBAL_ASM(
+6 -6
View File
@@ -992,7 +992,7 @@ glabel expand_08_obj_set_guard_MP_weapons
/* 0372B4 7F002784 2404001C */ li $a0, 28
/* 0372B8 7F002788 53200084 */ beql $t9, $zero, .L7F00299C
/* 0372BC 7F00278C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0372C0 7F002790 0FC249EF */ jal sub_GAME_7F0927BC
/* 0372C0 7F002790 0FC249EF */ jal cheatCheckIfOn
/* 0372C4 7F002794 AFA7002C */ sw $a3, 0x2c($sp)
/* 0372C8 7F002798 10400011 */ beqz $v0, .L7F0027E0
/* 0372CC 7F00279C 8FA7002C */ lw $a3, 0x2c($sp)
@@ -1450,7 +1450,7 @@ glabel expand_type_0D_object_autoturret
/* 03784C 7F002D1C 460C4282 */ mul.s $f10, $f8, $f12
/* 037850 7F002D20 46025403 */ div.s $f16, $f10, $f2
/* 037854 7F002D24 E6040088 */ swc1 $f4, 0x88($s0)
/* 037858 7F002D28 0C0025C8 */ jal allocate_bytes_in_bank
/* 037858 7F002D28 0C0025C8 */ jal mempAllocBytesInBank
/* 03785C 7F002D2C E610008C */ swc1 $f16, 0x8c($s0)
/* 037860 7F002D30 2403FFFF */ li $v1, -1
/* 037864 7F002D34 AE0200CC */ sw $v0, 0xcc($s0)
@@ -2693,12 +2693,12 @@ glabel proplvreset2
/* 038864 7F003D34 14200004 */ bnez $at, .L7F003D48
/* 038868 7F003D38 3C058005 */ lui $a1, %hi(aMp_)
/* 03886C 7F003D3C 24A5EEB0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1150
/* 038870 7F003D40 0C0029FF */ jal string_load_parse_something
/* 038870 7F003D40 0C0029FF */ jal string_append_from_obseg_textbank
/* 038874 7F003D44 02202025 */ move $a0, $s1
.L7F003D48:
/* 038878 7F003D48 8E050000 */ lw $a1, ($s0)
/* 03887C 7F003D4C 02202025 */ move $a0, $s1
/* 038880 7F003D50 0C0029FF */ jal string_load_parse_something
/* 038880 7F003D50 0C0029FF */ jal string_append_from_obseg_textbank
/* 038884 7F003D54 24A50001 */ addiu $a1, $a1, 1
/* 038888 7F003D58 02202025 */ move $a0, $s1
/* 03888C 7F003D5C 24050001 */ li $a1, 1
@@ -4086,12 +4086,12 @@ glabel jpt_8004F02C
/* 0388A4 7F003D34 14200004 */ bnez $at, .L7F003D48
/* 0388A8 7F003D38 3C058005 */ lui $a1, %hi(aMp_) # $a1, 0x8005
/* 0388AC 7F003D3C 24A5EEE0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1120
/* 0388B0 7F003D40 0C002A03 */ jal string_load_parse_something
/* 0388B0 7F003D40 0C002A03 */ jal string_append_from_obseg_textbank
/* 0388B4 7F003D44 02202025 */ move $a0, $s1
.L7F003D48:
/* 0388B8 7F003D48 8E050000 */ lw $a1, ($s0)
/* 0388BC 7F003D4C 02202025 */ move $a0, $s1
/* 0388C0 7F003D50 0C002A03 */ jal string_load_parse_something
/* 0388C0 7F003D50 0C002A03 */ jal string_append_from_obseg_textbank
/* 0388C4 7F003D54 24A50001 */ addiu $a1, $a1, 1
/* 0388C8 7F003D58 02202025 */ move $a0, $s1
/* 0388CC 7F003D5C 24050001 */ li $a1, 1
+1 -1
View File
@@ -58,7 +58,7 @@ glabel display_red_blue_on_radar
/* 0FAC50 7F0C6120 10000119 */ b .L7F0C6588
/* 0FAC54 7F0C6124 8FA20088 */ lw $v0, 0x88($sp)
.L7F0C6128:
/* 0FAC58 7F0C6128 0FC249EF */ jal sub_GAME_7F0927BC
/* 0FAC58 7F0C6128 0FC249EF */ jal cheatCheckIfOn
/* 0FAC5C 7F0C612C 24040017 */ li $a0, 23
/* 0FAC60 7F0C6130 10400003 */ beqz $v0, .L7F0C6140
/* 0FAC64 7F0C6134 00000000 */ nop
+5 -8
View File
@@ -38,15 +38,12 @@ void something_with_rsp_c_debug(void) {
#ifdef NONMATCHING
void allocate_init_rsp_buffers(void) {
? temp_ret;
void allocate_init_rsp_buffers(void)
// Node 0
temp_ret = allocate_bytes_in_bank(0xa000, 6);
D_8004E9E8 = temp_ret;
D_8004E9E4 = (s32) (temp_ret + 0xa000);
{
ptr_rsp_buffer_start = mempAllocBytesInBank(0xa000,'\x06');
ptr_rspbuffer_end = ptr_rsp_buffer_start + 0xa000;
return;
// (possible return value: temp_ret)
}
#else
@@ -56,7 +53,7 @@ glabel allocate_init_rsp_buffers
/* 10490C 7F0CFDDC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 104910 7F0CFDE0 AFBF0014 */ sw $ra, 0x14($sp)
/* 104914 7F0CFDE4 3404A000 */ li $a0, 40960
/* 104918 7F0CFDE8 0C0025C8 */ jal allocate_bytes_in_bank
/* 104918 7F0CFDE8 0C0025C8 */ jal mempAllocBytesInBank
/* 10491C 7F0CFDEC 24050006 */ li $a1, 6
/* 104920 7F0CFDF0 8FBF0014 */ lw $ra, 0x14($sp)
/* 104924 7F0CFDF4 3C038005 */ lui $v1, %hi(D_8004E9E8)
+2 -1
View File
@@ -1,7 +1,8 @@
#include "ultra64.h"
//these are actaully clever shared asm
//!FIXME move to asm file
+4 -4
View File
@@ -647,7 +647,7 @@ glabel init_spectrum_game
/* 107AF8 7F0D2FC8 AFBF0014 */ sw $ra, 0x14($sp)
/* 107AFC 7F0D2FCC AFA40018 */ sw $a0, 0x18($sp)
/* 107B00 7F0D2FD0 24040100 */ li $a0, 256
/* 107B04 7F0D2FD4 0C0025C8 */ jal allocate_bytes_in_bank
/* 107B04 7F0D2FD4 0C0025C8 */ jal mempAllocBytesInBank
/* 107B08 7F0D2FD8 24050004 */ li $a1, 4
/* 107B0C 7F0D2FDC 3C068009 */ lui $a2, %hi(ptr_pc_keyboard_table_alloc)
/* 107B10 7F0D2FE0 24C6E334 */ addiu $a2, %lo(ptr_pc_keyboard_table_alloc) # addiu $a2, $a2, -0x1ccc
@@ -684,12 +684,12 @@ glabel init_spectrum_game
/* 107B78 7F0D3048 5420FFEB */ bnezl $at, .L7F0D2FF8
/* 107B7C 7F0D304C 00001825 */ move $v1, $zero
/* 107B80 7F0D3050 24046000 */ li $a0, 24576
/* 107B84 7F0D3054 0C0025C8 */ jal allocate_bytes_in_bank
/* 107B84 7F0D3054 0C0025C8 */ jal mempAllocBytesInBank
/* 107B88 7F0D3058 24050004 */ li $a1, 4
/* 107B8C 7F0D305C 3C018009 */ lui $at, %hi(ptr_6000alloc)
/* 107B90 7F0D3060 AC22E330 */ sw $v0, %lo(ptr_6000alloc)($at)
/* 107B94 7F0D3064 24040300 */ li $a0, 768
/* 107B98 7F0D3068 0C0025C8 */ jal allocate_bytes_in_bank
/* 107B98 7F0D3068 0C0025C8 */ jal mempAllocBytesInBank
/* 107B9C 7F0D306C 24050004 */ li $a1, 4
/* 107BA0 7F0D3070 3C038009 */ lui $v1, %hi(ptr_300alloc)
/* 107BA4 7F0D3074 2463E32C */ addiu $v1, %lo(ptr_300alloc) # addiu $v1, $v1, -0x1cd4
@@ -704,7 +704,7 @@ glabel init_spectrum_game
/* 107BC4 7F0D3094 1420FFFB */ bnez $at, .L7F0D3084
/* 107BC8 7F0D3098 A1A20000 */ sb $v0, ($t5)
/* 107BCC 7F0D309C 3C040001 */ lui $a0, 1
/* 107BD0 7F0D30A0 0C0025C8 */ jal allocate_bytes_in_bank
/* 107BD0 7F0D30A0 0C0025C8 */ jal mempAllocBytesInBank
/* 107BD4 7F0D30A4 24050004 */ li $a1, 4
/* 107BD8 7F0D30A8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms)
/* 107BDC 7F0D30AC 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8
+69 -46
View File
@@ -49,24 +49,24 @@ s32 D_80040F28 = 0;
void null_init_main(void) {
void null_init_main_7f0acb70(void) {
}
void sub_GAME_7F0ACB78(s32 arg0) {
text_spacing = (s32) -arg0;
void setTextSpacingInverted(s32 spacing) {
text_spacing = -spacing;
}
void sub_GAME_7F0ACB88(s32 arg0) {
text_orientation = arg0;
void setTextOrientation(s32 orientation) {
text_orientation = orientation;
}
void sub_GAME_7F0ACB94(s32 arg0) {
text_wordwrap = arg0;
void setTextWordWrap(s32 flag) {
text_wordwrap = flag;
}
void sub_GAME_7F0ACBA0(s32 arg0) {
overlap_correction = arg0;
void setTextOverlapCorrection(s32 flag) {
overlap_correction = flag;
}
@@ -75,22 +75,23 @@ void sub_GAME_7F0ACBA0(s32 arg0) {
#ifdef NONMATCHING
void *load_font_tables(void) {
s32 temp_a2;
? temp_ret;
void load_font_tables(void)
{
s32 sp1C;
s32 MACROSIZE;
s32 MACROSIZE;
s32 temp_ret;
s32 temp_ret_2;
s32 i_next;
s32 temp_v1_2;
void *temp_v0;
s32 temp_v1;
s32 temp_a2_2;
? temp_ret_2;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
s32 temp_v1_2;
s32 phi_v1;
s32 i;
s32 phi_v1_2;
// Node 0
text_spacing = 0;
text_orientation = 0;
text_wordwrap = 0;
@@ -99,50 +100,43 @@ void *load_font_tables(void) {
text_x = 0;
text_y = 0;
text_s = 0;
temp_a2 = (&0x000024B0 - 0);
MACROSIZE = 0x24b0 - 0;
text_t = 0;
temp_ret = allocate_bytes_in_bank(temp_a2, 4, temp_a2);
ptrFirstFontTableSmall = temp_ret;
ptrSecondFontTableSmall = (s32) (temp_ret + 0x2a4);
romCopy(temp_ret, &_fonttablectlsmall1SegmentRomStart, sp1C, &ptrFirstFontTableSmall);
phi_v1 = 0;
ptrFirstFontTableSmall = mempAllocBytesInBank(MACROSIZE, 4);
ptrSecondFontTableSmall = (s32) (ptrFirstFontTableSmall + 0x2a4);
romCopy(&ptrFirstFontTableSmall, &_fonttablectlsmall1SegmentRomStart, MACROSIZE);
i = 0;
loop_1:
// Node 1
temp_v0 = (ptrSecondFontTableSmall + phi_v1);
temp_v1 = (phi_v1 + 0x18);
temp_v0 = ptrSecondFontTableSmall + i;
i_next = i + 0x18;
temp_v0->unk14 = (s32) (temp_v0->unk14 + ptrFirstFontTableSmall);
phi_v1 = temp_v1;
if (temp_v1 < 0x8d0)
i = i_next;
if (i_next < 0x8d0)
{
goto loop_1;
}
// Node 2
temp_a2_2 = (&0x00003540 - 0);
temp_ret_2 = allocate_bytes_in_bank(temp_a2_2, 4, temp_a2_2, &ptrFirstFontTableSmall);
ptrFirstFontTableLarge = temp_ret_2;
ptrSecondFontTableLarge = (void *) (temp_ret_2 + 0x2a4);
romCopy(temp_ret_2, &_fonttablectllarge1SegmentRomStart, sp1C, &ptrFirstFontTableLarge);
MACROSIZE = 0x3540 - 0;
ptrFirstFontTableLarge = mempAllocBytesInBank(MACROSIZE, 4);
ptrSecondFontTableLarge = (s32) (ptrFirstFontTableLarge + 0x2a4);
romCopy(&ptrFirstFontTableLarge, &_fonttablectllarge1SegmentRomStart, MACROSIZE);
ptrSecondFontTableLarge->unk14 = (s32) (ptrSecondFontTableLarge->unk14 + ptrFirstFontTableLarge);
ptrSecondFontTableLarge->unk2C = (s32) (ptrSecondFontTableLarge->unk2C + ptrFirstFontTableLarge);
phi_v1_2 = 0x30;
loop_3:
// Node 3
temp_v0_2 = (ptrSecondFontTableLarge + phi_v1_2);
temp_v0_2 = ptrSecondFontTableLarge + phi_v1_2;
temp_v0_2->unk14 = (s32) (temp_v0_2->unk14 + ptrFirstFontTableLarge);
temp_v0_3 = (ptrSecondFontTableLarge + phi_v1_2);
temp_v0_3 = ptrSecondFontTableLarge + phi_v1_2;
temp_v0_3->unk2C = (s32) (temp_v0_3->unk2C + ptrFirstFontTableLarge);
temp_v0_4 = (ptrSecondFontTableLarge + phi_v1_2);
temp_v0_4 = ptrSecondFontTableLarge + phi_v1_2;
temp_v0_4->unk44 = (s32) (temp_v0_4->unk44 + ptrFirstFontTableLarge);
temp_v0_5 = (ptrSecondFontTableLarge + phi_v1_2);
temp_v1_2 = (phi_v1_2 + 0x60);
temp_v0_5 = ptrSecondFontTableLarge + phi_v1_2;
temp_v1_2 = phi_v1_2 + 0x60;
temp_v0_5->unk5C = (s32) (temp_v0_5->unk5C + ptrFirstFontTableLarge);
phi_v1_2 = temp_v1_2;
if (temp_v1_2 != 0x8d0)
{
goto loop_3;
}
// Node 4
return temp_v0_5;
}
#else
GLOBAL_ASM(
@@ -176,7 +170,7 @@ glabel load_font_tables
/* 0E1740 7F0ACC10 AC200EA4 */ sw $zero, %lo(text_t)($at)
/* 0E1744 7F0ACC14 00C02025 */ move $a0, $a2
/* 0E1748 7F0ACC18 AFA6001C */ sw $a2, 0x1c($sp)
/* 0E174C 7F0ACC1C 0C0025C8 */ jal allocate_bytes_in_bank
/* 0E174C 7F0ACC1C 0C0025C8 */ jal mempAllocBytesInBank
/* 0E1750 7F0ACC20 24050004 */ li $a1, 4
/* 0E1754 7F0ACC24 3C078004 */ lui $a3, %hi(ptrFirstFontTableSmall)
/* 0E1758 7F0ACC28 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall)
@@ -212,7 +206,7 @@ glabel load_font_tables
/* 0E17CC 7F0ACC9C 01AE3023 */ subu $a2, $t5, $t6
/* 0E17D0 7F0ACCA0 00C02025 */ move $a0, $a2
/* 0E17D4 7F0ACCA4 AFA6001C */ sw $a2, 0x1c($sp)
/* 0E17D8 7F0ACCA8 0C0025C8 */ jal allocate_bytes_in_bank
/* 0E17D8 7F0ACCA8 0C0025C8 */ jal mempAllocBytesInBank
/* 0E17DC 7F0ACCAC 24050004 */ li $a1, 4
/* 0E17E0 7F0ACCB0 3C078004 */ lui $a3, %hi(ptrFirstFontTableLarge)
/* 0E17E4 7F0ACCB4 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge)
@@ -281,8 +275,37 @@ glabel load_font_tables
#ifdef NONMATCHING
void microcode_constructor(void) {
void microcode_constructor(u32 *DL)
{
DL[0] = 0xe7000000; //rdp_pipesync
DL[1] = 0;
DL[2] = 0xba001402; //rsp_uc05_setothermode_h
DL[3] = 0;
DL[5] = 0xc0;
DL[4] = 0xba000602; //rsp_uc05_setothermode_h
DL[6] = 0xb900031d; //rsp_uc05_setothermode_l
DL[7] = 0x5041c8;
DL[8] = 0xfcff97ff; //rdp_setcombine
DL[9] = 0xff2dfeff; //rdp_setcolourimage
DL[10] = 0xba001301; //rsp_uc05_setothermode_h
DL[0xb] = 0;
DL[0xc] = 0xb9000002; //rsp_uc05_setothermode_l
DL[0xd] = 0;
DL[0xe] = 0xba001001; //rsp_uc05_setothermode_h
DL[0xf] = 0;
DL[0x11] = 0xc00;
DL[0x10] = 0xba000903; //rsp_uc05_setothermode_h
DL[0x12] = 0xba000e02; //rsp_uc05_setothermode_h
DL[0x13] = 0;
if (text_bilevel_filter != 0) {
DL[0x15] = 0x3000;
DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h
return;
}
DL[0x15] = 0x2000;
DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h
return;
}
#else
GLOBAL_ASM(
+4 -4
View File
@@ -20,13 +20,13 @@ f32 D_80032314 = 65536.0;
#ifdef NONMATCHING
void init_0x40_bytes_data_at_address_last_word_1_0(void) {
void reset_array_of_0x10_floats(void) {
}
#else
GLOBAL_ASM(
.text
glabel init_0x40_bytes_data_at_address_last_word_1_0
glabel reset_array_of_0x10_floats
/* 08CB00 7F057FD0 44801000 */ mtc1 $zero, $f2
/* 08CB04 7F057FD4 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 08CB08 7F057FD8 44810000 */ mtc1 $at, $f0
@@ -966,7 +966,7 @@ glabel init_something_copy_posdata_to_it
/* 08D498 7F058968 AFBF0014 */ sw $ra, 0x14($sp)
/* 08D49C 7F05896C AFA40018 */ sw $a0, 0x18($sp)
/* 08D4A0 7F058970 AFA5001C */ sw $a1, 0x1c($sp)
/* 08D4A4 7F058974 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 08D4A4 7F058974 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 08D4A8 7F058978 00A02025 */ move $a0, $a1
/* 08D4AC 7F05897C 8FA40018 */ lw $a0, 0x18($sp)
/* 08D4B0 7F058980 0FC16266 */ jal copies_first_3_floats_from_a0_to_a1_plus_0x30
@@ -2583,7 +2583,7 @@ glabel sub_GAME_7F059B58
/* 08E7F4 7F059CC4 10000003 */ b .L7F059CD4
/* 08E7F8 7F059CC8 E606003C */ swc1 $f6, 0x3c($s0)
.L7F059CCC:
/* 08E7FC 7F059CCC 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 08E7FC 7F059CCC 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 08E800 7F059CD0 02002025 */ move $a0, $s0
.L7F059CD4:
/* 08E804 7F059CD4 8FBF0024 */ lw $ra, 0x24($sp)
+7 -7
View File
@@ -767,7 +767,7 @@ glabel sub_GAME_7F08E240
/* 0C2F7C 7F08E44C 8E040000 */ lw $a0, ($s0)
/* 0C2F80 7F08E450 0FC1B5AC */ jal subcalcpos
/* 0C2F84 7F08E454 24840598 */ addiu $a0, $a0, 0x598
/* 0C2F88 7F08E458 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0C2F88 7F08E458 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 0C2F8C 7F08E45C 27A40040 */ addiu $a0, $sp, 0x40
/* 0C2F90 7F08E460 8E020000 */ lw $v0, ($s0)
/* 0C2F94 7F08E464 27AC0040 */ addiu $t4, $sp, 0x40
@@ -941,7 +941,7 @@ glabel sub_GAME_7F08E240
/* 0C3224 7F08E6F4 AC4004F0 */ sw $zero, 0x4f0($v0)
/* 0C3228 7F08E6F8 0FC23859 */ jal sub_GAME_7F08E164
/* 0C322C 7F08E6FC C42C532C */ lwc1 $f12, %lo(D_8005532C)($at)
/* 0C3230 7F08E700 0FC227B5 */ jal get_BONDdata_field19C
/* 0C3230 7F08E700 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C3234 7F08E704 00000000 */ nop
/* 0C3238 7F08E708 3C018005 */ lui $at, %hi(D_80055330)
/* 0C323C 7F08E70C C4285330 */ lwc1 $f8, %lo(D_80055330)($at)
@@ -988,7 +988,7 @@ glabel sub_GAME_7F08E240
/* 0C32DC 7F08E7AC 24840564 */ addiu $a0, $a0, 0x564
/* 0C32E0 7F08E7B0 0FC16B80 */ jal sub_GAME_7F05AE00
/* 0C32E4 7F08E7B4 24A50570 */ addiu $a1, $a1, 0x570
/* 0C32E8 7F08E7B8 0FC227B5 */ jal get_BONDdata_field19C
/* 0C32E8 7F08E7B8 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C32EC 7F08E7BC 00000000 */ nop
/* 0C32F0 7F08E7C0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C32F4 7F08E7C4 44813000 */ mtc1 $at, $f6
@@ -998,7 +998,7 @@ glabel sub_GAME_7F08E240
/* 0C3304 7F08E7D4 46004402 */ mul.s $f16, $f8, $f0
/* 0C3308 7F08E7D8 46103480 */ add.s $f18, $f6, $f16
/* 0C330C 7F08E7DC 46122282 */ mul.s $f10, $f4, $f18
/* 0C3310 7F08E7E0 0FC227B5 */ jal get_BONDdata_field19C
/* 0C3310 7F08E7E0 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C3314 7F08E7E4 E7AA00D0 */ swc1 $f10, 0xd0($sp)
/* 0C3318 7F08E7E8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C331C 7F08E7EC 44814000 */ mtc1 $at, $f8
@@ -1022,7 +1022,7 @@ glabel sub_GAME_7F08E240
/* 0C3364 7F08E834 2484057C */ addiu $a0, $a0, 0x57c
/* 0C3368 7F08E838 0FC16B80 */ jal sub_GAME_7F05AE00
/* 0C336C 7F08E83C 24A50588 */ addiu $a1, $a1, 0x588
/* 0C3370 7F08E840 0FC227B5 */ jal get_BONDdata_field19C
/* 0C3370 7F08E840 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C3374 7F08E844 00000000 */ nop
/* 0C3378 7F08E848 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C337C 7F08E84C 44813000 */ mtc1 $at, $f6
@@ -1032,7 +1032,7 @@ glabel sub_GAME_7F08E240
/* 0C338C 7F08E85C 46004402 */ mul.s $f16, $f8, $f0
/* 0C3390 7F08E860 46103480 */ add.s $f18, $f6, $f16
/* 0C3394 7F08E864 46122282 */ mul.s $f10, $f4, $f18
/* 0C3398 7F08E868 0FC227B5 */ jal get_BONDdata_field19C
/* 0C3398 7F08E868 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C339C 7F08E86C E7AA00C4 */ swc1 $f10, 0xc4($sp)
/* 0C33A0 7F08E870 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C33A4 7F08E874 44814000 */ mtc1 $at, $f8
@@ -1274,7 +1274,7 @@ glabel sub_GAME_7F08EAF8
/* 0C3638 7F08EB08 8DCF04E8 */ lw $t7, 0x4e8($t6)
/* 0C363C 7F08EB0C 05E2002B */ bltzl $t7, .L7F08EBBC
/* 0C3640 7F08EB10 44800000 */ mtc1 $zero, $f0
/* 0C3644 7F08EB14 0FC227B5 */ jal get_BONDdata_field19C
/* 0C3644 7F08EB14 0FC227B5 */ jal get_BONDdata_bondfadefracnew
/* 0C3648 7F08EB18 00000000 */ nop
/* 0C364C 7F08EB1C 3C018005 */ lui $at, %hi(D_80055338)
/* 0C3650 7F08EB20 C4245338 */ lwc1 $f4, %lo(D_80055338)($at)
+1 -1
View File
@@ -393,7 +393,7 @@ glabel sub_GAME_7F091080
/* 0C6044 7F091514 A4387054 */ sh $t8, %lo(D_80037054)($at)
/* 0C6048 7F091518 3C014270 */ li $at, 0x42700000 # 60.000000
/* 0C604C 7F09151C 44816000 */ mtc1 $at, $f12
/* 0C6050 7F091520 0FC26C85 */ jal sub_GAME_7F09B214
/* 0C6050 7F091520 0FC26C85 */ jal set_cur_player_fovy
/* 0C6054 7F091524 00000000 */ nop
/* 0C6058 7F091528 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079E20)
/* 0C605C 7F09152C 24429E20 */ addiu $v0, %lo(dword_CODE_bss_80079E20) # addiu $v0, $v0, -0x61e0
+4 -2
View File
@@ -1,5 +1,5 @@
#include "ultra64.h"
#include "game/unk_092E50.h"
// bss
//CODE.bss:80079E80
f32 flt_CODE_bss_80079E80;
@@ -31,7 +31,9 @@ u64 MipMap2C_Something2_Setup[] = {
//End Dl means this gfx list cannot go any further. perhaps below is a vtx array?
u32 D_8003FD90 = 0;
u32 D_8003FD94[] = {0, 0, 0, 0, 0xFFFFFFFF};
f32 D_8003FD94[] = {0, 0, 0};
u32 D_8003FDA0 = 0;
u32 D_8003FDA4 = 0xFFFFFFFF;
//D:D_8003FDA8
u64 D_8003FDA8[] = {
0x100, 0, 0, 0,
+9
View File
@@ -0,0 +1,9 @@
#ifndef _UNK_092E50_H_
#define _UNK_092E50_H_
#include "ultra64.h"
extern f32 D_8003FD94[];
#endif
+512 -118
View File
@@ -1,6 +1,8 @@
#include "ultra64.h"
#include "game/unk_093880.h"
#include "game/unk_092E50.h"
#include "game/bond.h"
#include "game/lvl.h"
// bss
s32 copyof_stagenum;
@@ -17,7 +19,7 @@ struct player_data player3_player_data;
struct player_data player4_player_data;
struct Player *pPlayer;
struct player_data *cur_player_stat_ptr;
struct player_data *pPlayersPerm;
s32 player_num;
s32 random_byte;
s32 dword_CODE_bss_8007A0C0;
@@ -528,7 +530,7 @@ glabel sub_GAME_7F093C48
f32 sub_GAME_7F093C88(f32 arg0) {
f32 addpoint5tofloat(f32 arg0) {
return (f32) (s32) (arg0 + 0.5f);
}
@@ -1102,53 +1104,18 @@ glabel sub_GAME_7F094298
void sub_GAME_7F09442C(s32 stagenum) {
void store_stagenum_to_copyof_stagenum(s32 stagenum) {
copyof_stagenum = stagenum;
}
#ifdef NONMATCHING
f32 sub_GAME_7F094438(void) {
// Node 0
D_8003FD94 = (f32) (D_8003FD94 + (f32) clock_timer);
if (D_8003FD94 > 4096.0f)
void sub_GAME_7F094438(void)
{
D_8003FD94[0] = (clock_timer + D_8003FD94[0]);
if ( D_8003FD94[0] > 4096.0f)
{
// Node 1
D_8003FD94 = (f32) (D_8003FD94 - 4096.0f);
D_8003FD94[0] -= 4096.0f;
}
// Node 2
return D_8003FD94;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F094438
/* 0C8F68 7F094438 3C0E8005 */ lui $t6, %hi(clock_timer)
/* 0C8F6C 7F09443C 8DCE8374 */ lw $t6, %lo(clock_timer)($t6)
/* 0C8F70 7F094440 3C028004 */ lui $v0, %hi(D_8003FD94)
/* 0C8F74 7F094444 2442FD94 */ addiu $v0, %lo(D_8003FD94) # addiu $v0, $v0, -0x26c
/* 0C8F78 7F094448 448E3000 */ mtc1 $t6, $f6
/* 0C8F7C 7F09444C C4440000 */ lwc1 $f4, ($v0)
/* 0C8F80 7F094450 3C014580 */ li $at, 0x45800000 # 4096.000000
/* 0C8F84 7F094454 46803220 */ cvt.s.w $f8, $f6
/* 0C8F88 7F094458 44811000 */ mtc1 $at, $f2
/* 0C8F8C 7F09445C 46082280 */ add.s $f10, $f4, $f8
/* 0C8F90 7F094460 E44A0000 */ swc1 $f10, ($v0)
/* 0C8F94 7F094464 C4400000 */ lwc1 $f0, ($v0)
/* 0C8F98 7F094468 4600103C */ c.lt.s $f2, $f0
/* 0C8F9C 7F09446C 00000000 */ nop
/* 0C8FA0 7F094470 45000003 */ bc1f .L7F094480
/* 0C8FA4 7F094474 00000000 */ nop
/* 0C8FA8 7F094478 46020401 */ sub.s $f16, $f0, $f2
/* 0C8FAC 7F09447C E4500000 */ swc1 $f16, ($v0)
.L7F094480:
/* 0C8FB0 7F094480 03E00008 */ jr $ra
/* 0C8FB4 7F094484 00000000 */ nop
)
#endif
@@ -4925,7 +4892,7 @@ glabel sub_GAME_7F097818
/* 0CC744 7F097C14 00000000 */ nop
/* 0CC748 7F097C18 46044302 */ mul.s $f12, $f8, $f4
/* 0CC74C 7F097C1C 460A1181 */ sub.s $f6, $f2, $f10
/* 0CC750 7F097C20 0FC24F22 */ jal sub_GAME_7F093C88
/* 0CC750 7F097C20 0FC24F22 */ jal addpoint5tofloat
/* 0CC754 7F097C24 E7A6037C */ swc1 $f6, 0x37c($sp)
/* 0CC758 7F097C28 3C013900 */ li $at, 0x39000000 # 0.000122
/* 0CC75C 7F097C2C 44815000 */ mtc1 $at, $f10
@@ -4939,7 +4906,7 @@ glabel sub_GAME_7F097818
/* 0CC77C 7F097C4C 44815000 */ mtc1 $at, $f10
/* 0CC780 7F097C50 00000000 */ nop
/* 0CC784 7F097C54 460A4302 */ mul.s $f12, $f8, $f10
/* 0CC788 7F097C58 0FC24F22 */ jal sub_GAME_7F093C88
/* 0CC788 7F097C58 0FC24F22 */ jal addpoint5tofloat
/* 0CC78C 7F097C5C E7A60408 */ swc1 $f6, 0x408($sp)
/* 0CC790 7F097C60 3C013900 */ li $at, 0x39000000 # 0.000122
/* 0CC794 7F097C64 44812000 */ mtc1 $at, $f4
@@ -7536,8 +7503,16 @@ glabel sub_GAME_7F098A2C
#ifdef NONMATCHING
void default_player_perspective_and_height(void) {
void default_player_perspective_and_height(void)
{
player1_playerdata[0].handicap = 1.00000000;
player1_playerdata[0].player_perspective_height = 1.00000000;
player1_playerdata[1].handicap = 1.00000000;
player1_playerdata[1].player_perspective_height = 1.00000000;
player1_playerdata[2].handicap = 1.00000000;
player1_playerdata[2].player_perspective_height = 1.00000000;
player1_playerdata[3].handicap = 1.00000000;
player1_playerdata[3].player_perspective_height = 1.00000000;
}
#else
GLOBAL_ASM(
@@ -7570,8 +7545,20 @@ glabel default_player_perspective_and_height
#ifdef NONMATCHING
void reset_play_data_ptrs(void) {
void reset_play_data_ptrs(void)
{
ptr_BONDdata_p1[0] = NULL;
ptr_BONDdata_p1[1] = NULL;
ptr_BONDdata_p1[2] = NULL;
ptr_BONDdata_p1[3] = NULL;
pPlayer = NULL;
pPlayersPerm = NULL;
player_num = 0;
random_byte = 0;
DAT_8007a0c0 = 0;
DAT_8007a0c4 = 1;
DAT_8007a0c8 = 2;
DAT_8007a0cc = 3;
}
#else
GLOBAL_ASM(
@@ -7585,8 +7572,8 @@ glabel reset_play_data_ptrs
/* 0CEE70 7F09A340 AC40000C */ sw $zero, 0xc($v0)
/* 0CEE74 7F09A344 3C018008 */ lui $at, %hi(pPlayer)
/* 0CEE78 7F09A348 AC20A0B0 */ sw $zero, %lo(pPlayer)($at)
/* 0CEE7C 7F09A34C 3C018008 */ lui $at, %hi(cur_player_stat_ptr)
/* 0CEE80 7F09A350 AC20A0B4 */ sw $zero, %lo(cur_player_stat_ptr)($at)
/* 0CEE7C 7F09A34C 3C018008 */ lui $at, %hi(pPlayersPerm)
/* 0CEE80 7F09A350 AC20A0B4 */ sw $zero, %lo(pPlayersPerm)($at)
/* 0CEE84 7F09A354 3C018008 */ lui $at, %hi(player_num)
/* 0CEE88 7F09A358 AC20A0B8 */ sw $zero, %lo(player_num)($at)
/* 0CEE8C 7F09A35C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C0)
@@ -7607,10 +7594,31 @@ glabel reset_play_data_ptrs
#ifdef NONMATCHING
void init_player_data_ptrs_construct_viewports(void) {
void init_player_data_ptrs_construct_viewports(int playercount)
{
int player;
ptr_BONDdata_p1[0] = NULL;
ptr_BONDdata_p1[1] = NULL;
ptr_BONDdata_p1[2] = NULL;
ptr_BONDdata_p1[3] = NULL;
random_byte = get_random_value() & 0xff;
if (playercount < 1) {
initBONDdataforPlayer(0);
set_cur_player(0);
set_cur_player_screen_size( get_video2_settings_width(), get_video2_settings_height() );
set_cur_player_viewport_size( get_video2_settings_ulx(), get_video2_settings_uly() );
}
else {
for (player = 0; player != playercount; player++)
{
initBONDdataforPlayer(player);
}
set_cur_player(0);
}
return;
}
#else
GLOBAL_ASM(
@@ -7682,8 +7690,21 @@ glabel init_player_data_ptrs_construct_viewports
#ifdef NONMATCHING
void get_num_players(void) {
u32 get_num_players(void)
{
u32 uVar1;
uVar1 = (u32)(ptr_BONDdata_p1[0] != NULL);
if (ptr_BONDdata_p1[1] != NULL) {
uVar1 = (uint)(ptr_BONDdata_p1[0] != NULL) + 1;
}
if (ptr_BONDdata_p1[2] != NULL) {
uVar1 = uVar1 + 1;
}
if (ptr_BONDdata_p1[3] != NULL) {
uVar1 = uVar1 + 1;
}
return uVar1;
}
#else
GLOBAL_ASM(
@@ -7723,8 +7744,393 @@ glabel get_num_players
#ifdef NONMATCHING
void initBONDdataforPlayer(void) {
void initBONDdataforPlayer(PLAYER_ID player)
{
int iVar1;
int iVar2;
Player **ppPVar3;
int *dest;
int *src;
int *src_next;
Player *pPVar4;
int array234undefined4 [234];
int iStack4;
f32 temp_3f36e15f8e;
src = init_BONDdata_related_8003fda0;
dest = array234undefined4;
do {
src_next = src + 3;
*dest = *src;
dest[1] = src[1];
dest[2] = src[2];
src = src_next;
dest = dest + 3;
} while (src_next != (int *)0x80040148);
pPVar4 = (Player *)mempAllocBytesInBank(0x2a80,4);
ppPVar3 = ptr_BONDdata_p1 + player;
*ppPVar3 = pPVar4;
pPVar4->unknown = 0;
(*ppPVar3)->xpos = 0.00000000;
(*ppPVar3)->ypos = 0.00000000;
(*ppPVar3)->zpos = 0.00000000;
(*ppPVar3)->xpos2 = 0.00000000;
(*ppPVar3)->ypos2 = 0.00000000;
(*ppPVar3)->zpos2 = 1.00000000;
(*ppPVar3)->xoffset = 0.00000000;
(*ppPVar3)->yoffset = 1.00000000;
(*ppPVar3)->zoffset = 0.00000000;
(*ppPVar3)->xpos3 = 0.00000000;
(*ppPVar3)->ypos3 = 0.00000000;
(*ppPVar3)->zpos3 = 0.00000000;
(*ppPVar3)->room_pointer = 0;
(*ppPVar3)->current_model_xpos = 0.00000000;
(*ppPVar3)->current_model_ypos = 0.00000000;
(*ppPVar3)->current_model_zpos = 0.00000000;
(*ppPVar3)->previous_model_xpos = 0.00000000;
(*ppPVar3)->previous_model_ypos = 0.00000000;
(*ppPVar3)->previous_model_zpos = 0.00000000;
(*ppPVar3)->current_room_xpos = 0.00000000;
(*ppPVar3)->current_room_ypos = 0.00000000;
(*ppPVar3)->current_room_zpos = 0.00000000;
(*ppPVar3)->field_6C = 0.00000000;
(*ppPVar3)->field_70 = 0.00000000;
(*ppPVar3)->clipping_height = 0.00000000;
(*ppPVar3)->field_78 = 0.00000000;
(*ppPVar3)->field_7C = 0.00000000;
(*ppPVar3)->field_80 = 0.00000000;
(*ppPVar3)->field_84 = 0.00000000;
(*ppPVar3)->field_88 = 0.00000000;
(*ppPVar3)->field_8C = 0;
(*ppPVar3)->field_90 = 0.00000000;
(*ppPVar3)->field_94 = 0;
(*ppPVar3)->field_98 = 0.00000000;
(*ppPVar3)->field_1274 = 0.00000000;
(*ppPVar3)->field_1278 = 0.00000000;
(*ppPVar3)->field_127C = 0.00000000;
(*ppPVar3)->crouchposition = 2;
(*ppPVar3)->field_29FC = 2;
(*ppPVar3)->ducking_height_offset = 0.00000000;
(*ppPVar3)->field_A4 = 0.00000000;
(*ppPVar3)->position_data_pointer = 0;
(*ppPVar3)->field_AC = 1;
(*ppPVar3)->field_D0 = 0;
(*ppPVar3)->ptr_char_objectinstance = 0;
(*ppPVar3)->bonddead = 0;
(*ppPVar3)->bondhealth = 1.00000000;
(*ppPVar3)->bondarmour = 0.00000000;
(*ppPVar3)->oldhealth = 1.00000000;
(*ppPVar3)->oldarmour = 0.00000000;
(*ppPVar3)->apparenthealth = 1.00000000;
(*ppPVar3)->apparentarmour = 0.00000000;
(*ppPVar3)->damageshowtime = -1;
(*ppPVar3)->healthshowtime = -1;
(*ppPVar3)->field_104 = 0;
(*ppPVar3)->field_108 = 0;
(*ppPVar3)->field_10C = 0;
(*ppPVar3)->movecentrerelease = 0;
(*ppPVar3)->lookaheadcentreenabled = 1;
(*ppPVar3)->automovecentreenabled = 1;
(*ppPVar3)->fastmovecentreenabled = 0;
(*ppPVar3)->automovecentre = 1;
(*ppPVar3)->insightaimmode = 0;
(*ppPVar3)->autoyaimenabled = 1;
(*ppPVar3)->autoaimy = 0.00000000;
(*ppPVar3)->autoyaimtime = 0;
(*ppPVar3)->autoyaimtime60 = -1;
(*ppPVar3)->autoxaimenabled = 1;
(*ppPVar3)->autoaimx = 0.00000000;
(*ppPVar3)->autoxaimtime = 0;
(*ppPVar3)->autoxaimtime60 = -1;
(*ppPVar3)->vv_theta = 0.00000000;
(*ppPVar3)->speedtheta = 0.00000000;
(*ppPVar3)->vv_costheta = 1.00000000;
(*ppPVar3)->vv_sintheta = 0.00000000;
(*ppPVar3)->vv_verta = -4.00000000;
(*ppPVar3)->vv_verta360 = -229.18310547;
(*ppPVar3)->speedverta = 0.00000000;
(*ppPVar3)->vv_cosverta = 1.00000000;
(*ppPVar3)->vv_sinverta = 0.00000000;
(*ppPVar3)->speedsideways = 0.00000000;
(*ppPVar3)->speedstrafe = 0.00000000;
(*ppPVar3)->speedforwards = 0.00000000;
(*ppPVar3)->field_2A4C = 0.00000000;
(*ppPVar3)->speedboost = 1.00000000;
(*ppPVar3)->boost_factor_x = 0.00000000;
(*ppPVar3)->boost_factor_y = 0.00000000;
(*ppPVar3)->boost_factor_z = 0.00000000;
(*ppPVar3)->viewport_alpha = -1.00000000;
(*ppPVar3)->bondfadetime60 = -1.00000000;
(*ppPVar3)->bondfadetimemax = 0.00000000;
(*ppPVar3)->bondfadefracold = 0.00000000;
(*ppPVar3)->bondfadefracnew = 0.00000000;
(*ppPVar3)->field_1A0 = 0;
(*ppPVar3)->field_1C0 = 0;
(*ppPVar3)->field_1C4 = 0;
(*ppPVar3)->pause_animation_state = 0;
(*ppPVar3)->paused_flag = 1;
(*ppPVar3)->open_close_solo_watch_menu = 0;
(*ppPVar3)->field_1D4 = 0.00000000;
(*ppPVar3)->field_1D8 = 0.00000000;
(*ppPVar3)->pause_watch_position = -25.00000000;
(*ppPVar3)->field_1E0 = 0.00000000;
(*ppPVar3)->field_1E4 = 1.00000000;
(*ppPVar3)->field_1E8 = 0.00000000;
(*ppPVar3)->field_1EC = 0.00000000;
(*ppPVar3)->field_1F0 = 0.00000000;
(*ppPVar3)->field_1F4 = 1.00000000;
(*ppPVar3)->pausing_flag = 0;
(*ppPVar3)->pause_starting_angle = 0.00000000;
(*ppPVar3)->field_208 = 0.00000000;
(*ppPVar3)->pause_target_angle = 0.00000000;
(*ppPVar3)->field_210 = 0.00000000;
(*ppPVar3)->field_214 = 0.00000000;
(*ppPVar3)->field_218 = 0;
(*ppPVar3)->field_21C = 1;
(*ppPVar3)->step_in_view_watch_animation = 0;
(*ppPVar3)->pause_animation_counter = 0.00000000;
(*ppPVar3)->field_3B4 = 0;
(*ppPVar3)->field_3B6 = 0;
(*ppPVar3)->field_3B8 = 0.00000000;
(*ppPVar3)->field_3BC = 0.00000000;
*(float *)&(*ppPVar3)->field_3C0 = 9.99999809;
(*ppPVar3)->field_3C4 = 0.00000000;
(*ppPVar3)->field_3C8 = 0.00000000;
(*ppPVar3)->field_3CC = 1.00000000;
(*ppPVar3)->tint_red = 0xff;
(*ppPVar3)->tint_green = 0xff;
(*ppPVar3)->tint_blue = 0xff;
(*ppPVar3)->tint_alpha = 0.00000000;
(*ppPVar3)->field_3E0 = -1.00000000;
(*ppPVar3)->timer_for_fade = -1.00000000;
(*ppPVar3)->field_3E8 = 0xff;
(*ppPVar3)->field_3EC = 0xff;
(*ppPVar3)->field_3F0 = 0xff;
(*ppPVar3)->field_3F4 = 0xff;
(*ppPVar3)->field_3F8 = 0xff;
(*ppPVar3)->field_3FC = 0xff;
(*ppPVar3)->field_400 = 0.00000000;
(*ppPVar3)->field_404 = 0.00000000;
(*ppPVar3)->cuff_value = CUFF_BLUE;
(*ppPVar3)->field_420 = 1;
(*ppPVar3)->field_424 = 0;
(*ppPVar3)->field_428 = 0;
(*ppPVar3)->field_42C = 2;
(*ppPVar3)->controlstyle = 0;
(*ppPVar3)->field_4DC = 1;
(*ppPVar3)->field_4E0 = 1;
(*ppPVar3)->field_4E4 = 1;
(*ppPVar3)->field_4E8 = 0;
(*ppPVar3)->field_4EC = 0.93000001;
(*ppPVar3)->field_4F0 = 0;
(*ppPVar3)->field_4F4 = 1.00000000;
(*ppPVar3)->field_4F8 = 1.00000000;
(*ppPVar3)->scaled_velocity = 0.00000000;
(*ppPVar3)->field_500 = 0.00000000;
(*ppPVar3)->field_504 = 0.00000000;
(*ppPVar3)->field_508 = 0.00000000;
(*ppPVar3)->field_50C = 0.00000000;
(*ppPVar3)->field_510 = 1.00000000;
(*ppPVar3)->field_514 = 0.00000000;
(*ppPVar3)->field_518 = 1.00000000;
(*ppPVar3)->field_51C = 0.00000000;
(*ppPVar3)->velocity = 0.00000000;
(*ppPVar3)->field_524 = 0.00000000;
(*ppPVar3)->field_528 = 0.00000000;
(*ppPVar3)->field_52C = 0.00000000;
(*ppPVar3)->field_530 = 0.00000000;
*(f32 *)&(*ppPVar3)->field_534 = 14.28571606;
(*ppPVar3)->field_538 = 0;
(*ppPVar3)->field_53C = 14.28571606;
(*ppPVar3)->field_540 = 0.00000000;
(*ppPVar3)->field_544 = 0.00000000;
(*ppPVar3)->field_548 = 0.00000000;
(*ppPVar3)->field_54C = 0.00000000;
(*ppPVar3)->stationary_ground_offset = 0.00000000;
(*ppPVar3)->field_554 = 0.00000000;
(*ppPVar3)->field_558 = 0.00000000;
(*ppPVar3)->field_55C = 0.00000000;
(*ppPVar3)->field_560 = 0.00000000;
(*ppPVar3)->field_564 = 0.00000000;
(*ppPVar3)->field_568 = 0.00000000;
(*ppPVar3)->field_56C = 1.00000000;
(*ppPVar3)->field_570 = 0.00000000;
(*ppPVar3)->field_574 = 0.00000000;
(*ppPVar3)->field_578 = 1.00000000;
(*ppPVar3)->field_57C = 0.00000000;
(*ppPVar3)->field_580 = 1.00000000;
(*ppPVar3)->field_584 = 0.00000000;
(*ppPVar3)->field_588 = 0.00000000;
(*ppPVar3)->field_58C = 1.00000000;
(*ppPVar3)->field_590 = 0.00000000;
(*ppPVar3)->field_594 = 0;
iVar1 = 0;
do {
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D0 + iVar1) = 0x280;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D2 + iVar1) = 0x1e0;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D4 + iVar1) = 0x1ff;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D6 + iVar1) = 0;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D8 + iVar1) = 0x280;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DA + iVar1) = 0x1e0;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DC + iVar1) = 0x1ff;
iVar2 = iVar1 + 0x10;
*(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DE + iVar1) = 0;
iVar1 = iVar2;
} while (iVar2 != 0x20);
(*ppPVar3)->viewx = 100;
(*ppPVar3)->viewy = 100;
(*ppPVar3)->viewleft = 0;
(*ppPVar3)->viewtop = 0;
(*ppPVar3)->hand_invisible[0] = 0;
(*ppPVar3)->hand_invisible[1] = 0;
(*ppPVar3)->hand_item[0] = ITEM_UNARMED;
(*ppPVar3)->hand_item[1] = ITEM_UNARMED;
(*ppPVar3)->field_2A44[0] = -1;
(*ppPVar3)->field_2A44[1] = -1;
(*ppPVar3)->lock_hand_model[0] = 0;
(*ppPVar3)->lock_hand_model[1] = 0;
(*ppPVar3)->ptr_hand_weapon_buffer[0] = NULL;
(*ppPVar3)->ptr_hand_weapon_buffer[1] = NULL;
pPVar4 = *ppPVar3;
src = array234undefined4;
do {
dest = src + 3;
pPVar4->right_weapon = *src;
pPVar4->right_weapon_attack = src[1];
pPVar4->previous_right_weapon = src[2];
pPVar4 = (Player *)&pPVar4->zpos;
src = dest;
} while (dest != &iStack4);
src = array234undefined4;
pPVar4 = *ppPVar3;
do {
dest = src + 3;
pPVar4->left_weapon = *src;
pPVar4->left_weapon_attack = src[1];
pPVar4->left_weapon_previous = src[2];
src = dest;
pPVar4 = (Player *)&pPVar4->zpos;
} while (dest != &iStack4);
(*ppPVar3)->field_FC0 = 1.00000000;
(*ppPVar3)->field_FC4 = 1.00000000;
(*ppPVar3)->field_FC8 = 0;
(*ppPVar3)->field_FCC = 0;
(*ppPVar3)->field_FD0 = 0;
(*ppPVar3)->field_FD4 = 0;
(*ppPVar3)->field_FD8 = 0;
(*ppPVar3)->field_FDC = -1;
(*ppPVar3)->field_FDD = -1;
(*ppPVar3)->field_FDE = -1;
(*ppPVar3)->field_FDF = '\0';
(*ppPVar3)->field_FE0 = 1;
(*ppPVar3)->field_FE4 = 0;
(*ppPVar3)->field_FE8 = 0.00000000;
(*ppPVar3)->field_FEC = 0.00000000;
(*ppPVar3)->field_FF0 = 0.00000000;
(*ppPVar3)->field_FF4 = 0.00000000;
(*ppPVar3)->field_FF8 = 0.89999998;
(*ppPVar3)->field_FFC = 0.00000000;
(*ppPVar3)->field_1000 = 0.00000000;
(*ppPVar3)->field_1004 = 0.00000000;
(*ppPVar3)->field_1008 = 0.00000000;
(*ppPVar3)->field_100C = 0.89999998;
(*ppPVar3)->field_1010 = 0.00000000;
(*ppPVar3)->holds_neg_pi = -3.14159274;
(*ppPVar3)->field_1018 = 0.00000000;
(*ppPVar3)->field_105C = 0;
(*ppPVar3)->copiedgoldeneye = 0;
(*ppPVar3)->somekinda_flags = 0;
(*ppPVar3)->field_106C = 0.00000000;
(*ppPVar3)->field_1070 = 0.00000000;
(*ppPVar3)->field_1074 = 0.00000000;
(*ppPVar3)->field_1078 = 0;
(*ppPVar3)->field_107C = 0.00000000;
(*ppPVar3)->field_1080 = 0.00000000;
(*ppPVar3)->sniper_zoom = 60.00000000;
(*ppPVar3)->camera_zoom = 60.00000000;
(*ppPVar3)->field_108C = -1;
(*ppPVar3)->c_screenwidth = 320.00000000;
(*ppPVar3)->c_screenheight = 240.00000000;
(*ppPVar3)->c_screenleft = 0.00000000;
(*ppPVar3)->c_screentop = 0.00000000;
(*ppPVar3)->c_perspnear = 10.00000000;
(*ppPVar3)->c_perspfovy = 46.00000000;
(*ppPVar3)->c_perspaspect = 1.00000000;
(*ppPVar3)->c_halfwidth = 160.00000000;
(*ppPVar3)->c_halfheight = 120.00000000;
(*ppPVar3)->c_scalex = 1.00000000;
(*ppPVar3)->c_scaley = 1.00000000;
(*ppPVar3)->c_recipscalex = 1.00000000;
(*ppPVar3)->c_recipscaley = 1.00000000;
(*ppPVar3)->field_10C4 = 0;
(*ppPVar3)->field_10C8 = 0;
(*ppPVar3)->field_10CC = 0;
(*ppPVar3)->field_10D0 = 0;
(*ppPVar3)->field_10D4 = 0;
(*ppPVar3)->field_10D8 = 0;
(*ppPVar3)->field_10DC = 0;
(*ppPVar3)->field_10E0 = 0;
(*ppPVar3)->field_10E4 = 0;
(*ppPVar3)->field_10E8 = 0;
(*ppPVar3)->field_10EC = 0;
(*ppPVar3)->c_scalelod60 = 1.00000000;
(*ppPVar3)->c_scalelod = 1.00000000;
(*ppPVar3)->c_lodscalez = 1.00000000;
(*ppPVar3)->c_lodscalezu32 = 0x10000;
(*ppPVar3)->screenxminf = 0.00000000;
(*ppPVar3)->screenyminf = 0.00000000;
(*ppPVar3)->screenxmaxf = 320.00000000;
(*ppPVar3)->screenymaxf = 240.00000000;
(*ppPVar3)->somekinda_bitflags = 0;
(*ppPVar3)->field_11B0 = 0;
(*ppPVar3)->field_11B4 = 0;
(*ppPVar3)->field_11B8 = 0;
(*ppPVar3)->zoomintime = 0.00000000;
(*ppPVar3)->zoomintimemax = 0.00000000;
(*ppPVar3)->zoominfovy = 60.00000000;
(*ppPVar3)->zoominfovyold = 60.00000000;
(*ppPVar3)->zoominfovynew = 60.00000000;
(*ppPVar3)->fovy = 60.00000000;
(*ppPVar3)->aspect = 1.33333337;
(*ppPVar3)->hudmessoff = 0;
(*ppPVar3)->bondmesscnt = -1;
(*ppPVar3)->ptr_inventory_first_in_cycle = 0;
(*ppPVar3)->p_itemcur = 0;
(*ppPVar3)->equipmaxitems = 0;
(*ppPVar3)->equipallguns = 0;
(*ppPVar3)->field_11F0 = 0;
(*ppPVar3)->field_11F4 = 0;
(*ppPVar3)->field_1280 = 0;
(*ppPVar3)->players_cur_animation = 0;
(*ppPVar3)->field_1288 = 0.00000000;
(*ppPVar3)->bondinvincible = '\0';
(*ppPVar3)->field_29B8 = 7;
(*ppPVar3)->field_29BC = 1.00000000;
(*ppPVar3)->field_29C0 = 0.00000000;
(*ppPVar3)->mpmenuon = 0;
(*ppPVar3)->damagetype = 7;
(*ppPVar3)->deathcount = 0;
(*ppPVar3)->field_29E0 = random_byte;
random_byte = random_byte + 1;
(*ppPVar3)->field_29E4 = -1;
(*ppPVar3)->field_29E8 = -1;
(*ppPVar3)->field_29EC = -1;
(*ppPVar3)->field_29F0 = -1;
(*ppPVar3)->healthdisplaytime = 0;
(*ppPVar3)->field_2A30 = 0;
(*ppPVar3)->field_2A34 = 0;
(*ppPVar3)->cur_item_weapon_getname = 1;
(*ppPVar3)->actual_health = 1.00000000;
(*ppPVar3)->actual_armor = 1.00000000;
(*ppPVar3)->cur_player_control_type_0 = 0;
(*ppPVar3)->cur_player_control_type_1 = 0;
(*ppPVar3)->cur_player_control_type_2 = 0.00000000;
(*ppPVar3)->neg_vspacing_for_control_type_entry = 0;
(*ppPVar3)->has_set_control_type_data = 1;
(*ppPVar3)->field_2A6C = 0;
(*ppPVar3)->field_2A70 = 0;
visible_to_guards_flag = TRUE;
obj_collision_flag = TRUE;
}
#else
#ifdef VERSION_US
@@ -7764,7 +8170,7 @@ glabel initBONDdataforPlayer
/* 0CF024 7F09A4F4 15EBFFF8 */ bne $t7, $t3, .L7F09A4D8
/* 0CF028 7F09A4F8 ADC1FFFC */ sw $at, -4($t6)
/* 0CF02C 7F09A4FC 24042A80 */ li $a0, 10880
/* 0CF030 7F09A500 0C0025C8 */ jal allocate_bytes_in_bank
/* 0CF030 7F09A500 0C0025C8 */ jal mempAllocBytesInBank
/* 0CF034 7F09A504 24050004 */ li $a1, 4
/* 0CF038 7F09A508 8FAC03D0 */ lw $t4, 0x3d0($sp)
/* 0CF03C 7F09A50C 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1)
@@ -8578,7 +8984,7 @@ glabel initBONDdataforPlayer
/* 0CFC04 7F09B094 15EBFFF8 */ bne $t7, $t3, .L7F09B078
/* 0CFC08 7F09B098 ADC1FFFC */ sw $at, -4($t6)
/* 0CFC0C 7F09B09C 24042A80 */ li $a0, 10880
/* 0CFC10 7F09B0A0 0C0025CC */ jal allocate_bytes_in_bank
/* 0CFC10 7F09B0A0 0C0025CC */ jal mempAllocBytesInBank
/* 0CFC14 7F09B0A4 24050004 */ li $a1, 4
/* 0CFC18 7F09B0A8 8FAC03D0 */ lw $t4, 0x3d0($sp)
/* 0CFC1C 7F09B0AC 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1) # $t9, 0x8008
@@ -9360,11 +9766,11 @@ glabel initBONDdataforPlayer
#ifdef NONMATCHING
void set_cur_player(s32 arg0) {
// Node 0
player_num = arg0;
pPlayer = (u32) *(&ptr_BONDdata_p1 + (arg0 * 4));
cur_player_stat_ptr = (s32) ((arg0 * 0x70) + &player1_player_data);
void set_cur_player(PLAYER_ID playernum)
{
pPlayer = ptr_BONDdata_p1[playernum];
pPlayersPerm = player1_playerdata[playernum];
player_num = playernum;
return;
}
#else
@@ -9384,10 +9790,10 @@ glabel set_cur_player
/* 0CFC64 7F09B134 27399EF0 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x6110
/* 0CFC68 7F09B138 0018C100 */ sll $t8, $t8, 4
/* 0CFC6C 7F09B13C AC2FA0B0 */ sw $t7, %lo(pPlayer)($at)
/* 0CFC70 7F09B140 3C018008 */ lui $at, %hi(cur_player_stat_ptr)
/* 0CFC70 7F09B140 3C018008 */ lui $at, %hi(pPlayersPerm)
/* 0CFC74 7F09B144 03194021 */ addu $t0, $t8, $t9
/* 0CFC78 7F09B148 03E00008 */ jr $ra
/* 0CFC7C 7F09B14C AC28A0B4 */ sw $t0, %lo(cur_player_stat_ptr)($at)
/* 0CFC7C 7F09B14C AC28A0B4 */ sw $t0, %lo(pPlayersPerm)($at)
)
#endif
@@ -9404,8 +9810,28 @@ s32 get_cur_playernum(void) {
#ifdef NONMATCHING
void sub_GAME_7F09B15C(void) {
void proc_7F09B15C(int position_data_pointer)
{
Player *pPVar1;
s32 numplayers;
Player **ppPVar2;
int i;
i = 0;
numplayers = get_num_players();
if (0 < numplayers) {
ppPVar2 = ptr_BONDdata_p1;
pPVar1 = ptr_BONDdata_p1[0];
while (ppPVar2 = ppPVar2 + 1, position_data_pointer != pPVar1->position_data_pointer) {
i = i + 1;
numplayers = get_num_players();
if (numplayers <= i) {
return;
}
pPVar1 = *ppPVar2;
}
}
return;
}
#else
GLOBAL_ASM(
@@ -9464,15 +9890,15 @@ void set_cur_player_viewport_size(u32 ulx, u32 uly) {
pPlayer->viewtop = uly;
}
void sub_GAME_7F09B214(f32 arg0) {
pPlayer->fovy = arg0;
void set_cur_player_fovy(f32 fovy) {
pPlayer->fovy = fovy;
}
void sub_GAME_7F09B224(f32 arg0) {
pPlayer->aspect = arg0;
void set_cur_player_aspect(f32 aspect) {
pPlayer->aspect = aspect;
}
f32 sub_GAME_7F09B234(void) {
f32 get_cur_player_fovy(void) {
return pPlayer->fovy;
}
@@ -9941,61 +10367,29 @@ glabel sub_GAME_7F09B4D8
#ifdef NONMATCHING
s32 sub_GAME_7F09B528(s32 arg0) {
s32 phi_a0;
s32 phi_a0_2;
s32 phi_a0_3;
// Node 0
phi_a0 = arg0;
if (*(&ptr_BONDdata_p1 + (dword_CODE_bss_8007A0C0 * 4)) != 0)
{
// Node 1
if (arg0 == 0)
{
// Node 2
int proc_7F09B528(int param_1)
{
if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C0] != NULL) {
if (param_1 == 0) {
return dword_CODE_bss_8007A0C0;
}
// Node 3
phi_a0 = (arg0 + -1);
param_1--;
}
// Node 4
phi_a0_2 = phi_a0;
if (*(&ptr_BONDdata_p1 + (dword_CODE_bss_8007A0C4 * 4)) != 0)
{
// Node 5
if (phi_a0 == 0)
{
// Node 6
if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C4] != NULL) {
if (param_1 == 0) {
return dword_CODE_bss_8007A0C4;
}
// Node 7
phi_a0_2 = (phi_a0 + -1);
param_1--;
}
// Node 8
phi_a0_3 = phi_a0_2;
if (*(&ptr_BONDdata_p1 + (dword_CODE_bss_8007A0C8 * 4)) != 0)
{
// Node 9
if (phi_a0_2 == 0)
{
// Node 10
if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C8] != NULL) {
if (param_1 == 0) {
return dword_CODE_bss_8007A0C8;
}
// Node 11
phi_a0_3 = (phi_a0_2 + -1);
param_1--;
}
// Node 12
if (*(&ptr_BONDdata_p1 + (dword_CODE_bss_8007A0CC * 4)) != 0)
{
// Node 13
if (phi_a0_3 == 0)
{
// Node 14
return dword_CODE_bss_8007A0CC;
}
if ((ptr_BONDdata_p1[dword_CODE_bss_8007A0CC] != NULL) && (param_1 == 0)) {
return dword_CODE_bss_8007A0CC;
}
// Node 15
return 0;
}
#else
+2 -2
View File
@@ -42,6 +42,6 @@ extern struct player_data player2_player_data;
extern struct player_data player3_player_data;
extern struct player_data player4_player_data;
extern struct Player *pPlayer;
extern struct player_data *cur_player_stat_ptr;
extern struct Player * pPlayer;
extern struct player_data *pPlayersPerm;
#endif
+4 -4
View File
@@ -164,7 +164,7 @@ glabel sub_GAME_7F09B820
/* 0D042C 7F09B8FC 24050004 */ li $a1, 4
/* 0D0430 7F09B900 00045880 */ sll $t3, $a0, 2
/* 0D0434 7F09B904 01645821 */ addu $t3, $t3, $a0
/* 0D0438 7F09B908 0C0025C8 */ jal allocate_bytes_in_bank
/* 0D0438 7F09B908 0C0025C8 */ jal mempAllocBytesInBank
/* 0D043C 7F09B90C 000B2080 */ sll $a0, $t3, 2
/* 0D0440 7F09B910 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0E8)
/* 0D0444 7F09B914 24C6A0E8 */ addiu $a2, %lo(dword_CODE_bss_8007A0E8) # addiu $a2, $a2, -0x5f18
@@ -173,7 +173,7 @@ glabel sub_GAME_7F09B820
/* 0D0450 7F09B920 8C84A0D0 */ lw $a0, %lo(dword_CODE_bss_8007A0D0)($a0)
/* 0D0454 7F09B924 24050004 */ li $a1, 4
/* 0D0458 7F09B928 00046100 */ sll $t4, $a0, 4
/* 0D045C 7F09B92C 0C0025C8 */ jal allocate_bytes_in_bank
/* 0D045C 7F09B92C 0C0025C8 */ jal mempAllocBytesInBank
/* 0D0460 7F09B930 01802025 */ move $a0, $t4
/* 0D0464 7F09B934 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC)
/* 0D0468 7F09B938 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0E0)
@@ -183,7 +183,7 @@ glabel sub_GAME_7F09B820
/* 0D0478 7F09B948 24050004 */ li $a1, 4
/* 0D047C 7F09B94C 00046880 */ sll $t5, $a0, 2
/* 0D0480 7F09B950 01A46821 */ addu $t5, $t5, $a0
/* 0D0484 7F09B954 0C0025C8 */ jal allocate_bytes_in_bank
/* 0D0484 7F09B954 0C0025C8 */ jal mempAllocBytesInBank
/* 0D0488 7F09B958 000D2080 */ sll $a0, $t5, 2
/* 0D048C 7F09B95C 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC)
/* 0D0490 7F09B960 24E7A0EC */ addiu $a3, %lo(dword_CODE_bss_8007A0EC) # addiu $a3, $a3, -0x5f14
@@ -192,7 +192,7 @@ glabel sub_GAME_7F09B820
/* 0D049C 7F09B96C 8C84A0D8 */ lw $a0, %lo(dword_CODE_bss_8007A0D8)($a0)
/* 0D04A0 7F09B970 24050004 */ li $a1, 4
/* 0D04A4 7F09B974 00047100 */ sll $t6, $a0, 4
/* 0D04A8 7F09B978 0C0025C8 */ jal allocate_bytes_in_bank
/* 0D04A8 7F09B978 0C0025C8 */ jal mempAllocBytesInBank
/* 0D04AC 7F09B97C 01C02025 */ move $a0, $t6
/* 0D04B0 7F09B980 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_8007A0D0)
/* 0D04B4 7F09B984 254AA0D0 */ addiu $t2, %lo(dword_CODE_bss_8007A0D0) # addiu $t2, $t2, -0x5f30
+10 -24
View File
@@ -2189,8 +2189,8 @@ glabel sub_GAME_7F09D5A0
/* 0D21B4 7F09D684 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00
/* 0D21B8 7F09D688 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806
/* 0D21BC 7F09D68C AC590000 */ sw $t9, ($v0)
/* 0D21C0 7F09D690 3C048009 */ lui $a0, %hi(ptr_explosionDL)
/* 0D21C4 7F09D694 8C84D0B4 */ lw $a0, %lo(ptr_explosionDL)($a0)
/* 0D21C0 7F09D690 3C048009 */ lui $a0, %hi(pGlobalimagetable)
/* 0D21C4 7F09D694 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0)
/* 0D21C8 7F09D698 00408025 */ move $s0, $v0
/* 0D21CC 7F09D69C 0C003A2C */ jal osVirtualToPhysical
/* 0D21D0 7F09D6A0 24540008 */ addiu $s4, $v0, 8
@@ -4088,8 +4088,8 @@ glabel sub_GAME_7F09F03C
/* 0D3C74 7F09F144 35080806 */ ori $t0, (0xBC000806 & 0xFFFF) # ori $t0, $t0, 0x806
/* 0D3C78 7F09F148 02409825 */ move $s3, $s2
/* 0D3C7C 7F09F14C AE680000 */ sw $t0, ($s3)
/* 0D3C80 7F09F150 3C048009 */ lui $a0, %hi(ptr_explosionDL)
/* 0D3C84 7F09F154 8C84D0B4 */ lw $a0, %lo(ptr_explosionDL)($a0)
/* 0D3C80 7F09F150 3C048009 */ lui $a0, %hi(pGlobalimagetable)
/* 0D3C84 7F09F154 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0)
/* 0D3C88 7F09F158 0C003A2C */ jal osVirtualToPhysical
/* 0D3C8C 7F09F15C 26520008 */ addiu $s2, $s2, 8
/* 0D3C90 7F09F160 AE620004 */ sw $v0, 4($s3)
@@ -5166,8 +5166,8 @@ glabel sub_GAME_7F0A0034
/* 0D4BB0 7F0A0080 37180806 */ ori $t8, (0xBC000806 & 0xFFFF) # ori $t8, $t8, 0x806
/* 0D4BB4 7F0A0084 02008825 */ move $s1, $s0
/* 0D4BB8 7F0A0088 AE380000 */ sw $t8, ($s1)
/* 0D4BBC 7F0A008C 3C048009 */ lui $a0, %hi(ptr_explosionDL)
/* 0D4BC0 7F0A0090 8C84D0B4 */ lw $a0, %lo(ptr_explosionDL)($a0)
/* 0D4BBC 7F0A008C 3C048009 */ lui $a0, %hi(pGlobalimagetable)
/* 0D4BC0 7F0A0090 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0)
/* 0D4BC4 7F0A0094 0C003A2C */ jal osVirtualToPhysical
/* 0D4BC8 7F0A0098 26100008 */ addiu $s0, $s0, 8
/* 0D4BCC 7F0A009C 02001825 */ move $v1, $s0
@@ -6359,7 +6359,7 @@ glabel sub_GAME_7F0A108C
/* 0D5C10 7F0A10E0 8DC10008 */ lw $at, 8($t6)
/* 0D5C14 7F0A10E4 AEA10008 */ sw $at, 8($s5)
/* 0D5C18 7F0A10E8 8DD9000C */ lw $t9, 0xc($t6)
/* 0D5C1C 7F0A10EC 0FC249EF */ jal sub_GAME_7F0927BC
/* 0D5C1C 7F0A10EC 0FC249EF */ jal cheatCheckIfOn
/* 0D5C20 7F0A10F0 AEB9000C */ sw $t9, 0xc($s5)
/* 0D5C24 7F0A10F4 10400003 */ beqz $v0, .L7F0A1104
/* 0D5C28 7F0A10F8 3C0A8004 */ lui $t2, %hi(D_8004080C)
@@ -7212,24 +7212,10 @@ glabel sub_GAME_7F0A1A94
#ifdef NONMATCHING
void sub_GAME_7F0A1D78(void) {
void sub_GAME_7F0A1D78(u32 *param_1)
{
sub_GAME_7F0A1A94(param_1,0,0);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F0A1D78
/* 0D68A8 7F0A1D78 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0D68AC 7F0A1D7C AFBF0014 */ sw $ra, 0x14($sp)
/* 0D68B0 7F0A1D80 00002825 */ move $a1, $zero
/* 0D68B4 7F0A1D84 0FC286A5 */ jal sub_GAME_7F0A1A94
/* 0D68B8 7F0A1D88 00003025 */ move $a2, $zero
/* 0D68BC 7F0A1D8C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0D68C0 7F0A1D90 27BD0018 */ addiu $sp, $sp, 0x18
/* 0D68C4 7F0A1D94 03E00008 */ jr $ra
/* 0D68C8 7F0A1D98 00000000 */ nop
)
#endif
+1 -1
View File
@@ -385,7 +385,7 @@ glabel sub_GAME_7F0BC85C
/* 0F143C 7F0BC90C 8D4B108C */ lw $t3, 0x108c($t2)
/* 0F1440 7F0BC910 002C0821 */ addu $at, $at, $t4
/* 0F1444 7F0BC914 27A4002C */ addiu $a0, $sp, 0x2c
/* 0F1448 7F0BC918 0FC15FF4 */ jal init_0x40_bytes_data_at_address_last_word_1_0
/* 0F1448 7F0BC918 0FC15FF4 */ jal reset_array_of_0x10_floats
/* 0F144C 7F0BC91C AC2B3900 */ sw $t3, %lo(dword_CODE_bss_80083900)($at)
/* 0F1450 7F0BC920 8FAE0070 */ lw $t6, 0x70($sp)
/* 0F1454 7F0BC924 3C018004 */ lui $at, %hi(room_data_float2)
+4 -27
View File
@@ -19,36 +19,13 @@ s32 D_800484B4 = 1;
#ifdef NONMATCHING
void store_osgetcount(void) {
u32 temp_ret;
temp_ret = osGetCount();
copy_of_osgetcount_value_1 = temp_ret;
copy_of_osgetcount_value_0 = temp_ret;
void store_osgetcount(void)
{
copy_of_osgetcount_value_1 = osGetCount();
copy_of_osgetcount_value_0 = copy_of_osgetcount_value_1;
}
#else
GLOBAL_ASM(
.text
glabel store_osgetcount
/* 0F55A0 7F0C0A70 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0F55A4 7F0C0A74 AFBF0014 */ sw $ra, 0x14($sp)
/* 0F55A8 7F0C0A78 0C003638 */ jal osGetCount
/* 0F55AC 7F0C0A7C 00000000 */ nop
/* 0F55B0 7F0C0A80 8FBF0014 */ lw $ra, 0x14($sp)
/* 0F55B4 7F0C0A84 3C038005 */ lui $v1, %hi(copy_of_osgetcount_value_1)
/* 0F55B8 7F0C0A88 246384B0 */ addiu $v1, %lo(copy_of_osgetcount_value_1) # addiu $v1, $v1, -0x7b50
/* 0F55BC 7F0C0A8C AC620000 */ sw $v0, ($v1)
/* 0F55C0 7F0C0A90 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0)
/* 0F55C4 7F0C0A94 AC2284AC */ sw $v0, %lo(copy_of_osgetcount_value_0)($at)
/* 0F55C8 7F0C0A98 03E00008 */ jr $ra
/* 0F55CC 7F0C0A9C 27BD0018 */ addiu $sp, $sp, 0x18
)
#endif
#ifdef NONMATCHING
+2 -2
View File
@@ -2764,7 +2764,7 @@ glabel process_microcode_sort_display_modes_expand_image_calls
.L7F0CE258:
/* 102D88 7F0CE258 0000A025 */ move $s4, $zero
.L7F0CE25C:
/* 102D8C 7F0CE25C 0FC32FBA */ jal sub_GAME_7F0CBEE8
/* 102D8C 7F0CE25C 0FC32FBA */ jal calls_load_image_to_buffer
/* 102D90 7F0CE260 02602025 */ move $a0, $s3
/* 102D94 7F0CE264 02602025 */ move $a0, $s3
/* 102D98 7F0CE268 0FC32EC3 */ jal sub_GAME_7F0CBB0C
@@ -2887,7 +2887,7 @@ glabel process_microcode_sort_display_modes_expand_image_calls
/* 102F5C 7F0CE42C 02C02825 */ move $a1, $s6
/* 102F60 7F0CE430 00047B02 */ srl $t7, $a0, 0xc
/* 102F64 7F0CE434 31E40FFF */ andi $a0, $t7, 0xfff
/* 102F68 7F0CE438 0FC32FBA */ jal sub_GAME_7F0CBEE8
/* 102F68 7F0CE438 0FC32FBA */ jal calls_load_image_to_buffer
/* 102F6C 7F0CE43C AFA40080 */ sw $a0, 0x80($sp)
/* 102F70 7F0CE440 8FA40080 */ lw $a0, 0x80($sp)
/* 102F74 7F0CE444 0FC32EC3 */ jal sub_GAME_7F0CBB0C
+1 -1
View File
@@ -61,7 +61,7 @@ glabel allocate_viewport_buffer
/* 106F3C 7F0D240C 014B0019 */ multu $t2, $t3
/* 106F40 7F0D2410 00002012 */ mflo $a0
/* 106F44 7F0D2414 00046040 */ sll $t4, $a0, 1
/* 106F48 7F0D2418 0C0025C8 */ jal allocate_bytes_in_bank
/* 106F48 7F0D2418 0C0025C8 */ jal mempAllocBytesInBank
/* 106F4C 7F0D241C 25840040 */ addiu $a0, $t4, 0x40
/* 106F50 7F0D2420 8FBF0014 */ lw $ra, 0x14($sp)
/* 106F54 7F0D2424 3C038005 */ lui $v1, %hi(viewport_img)
+751 -467
View File
File diff suppressed because it is too large Load Diff
+13 -60
View File
@@ -52,7 +52,7 @@ void init(void)
jump_decompressfile((_rarezipSegmentVaddrStart - cdata_rom_size), cdata_vaddr_start, 0x80300000);
if (0xfff00050 == 0)
if ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) >= 0xfffb1)
{
osPiRawStartDma(0, 0x101000, 0x70100400, ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) + 0xfff00050));
while ((osPiGetStatus() & 1) != 0) {}
@@ -279,69 +279,21 @@ void start_rmon_thread(void)
/**
* 13EC 700007EC
*/
#ifdef NONMATCHING
void init_scheduler(void) {
void init_scheduler(void)
{
osCreateMesgQueue(&gfxFrameMsgQ, &gfxFrameMsgBuf, 32);
if (osTvType = OS_TV_MPAL) {
if (osTvType == 2) //OS_TV_MPAL
{
osCreateScheduler(&sc, &shedThread, OS_VI_MPAL_LAN1, NUM_FIELDS);
} else {
osCreateScheduler(&sc, &shedThread, OS_VI_NTSC_LAN1, NUM_FIELDS);
}
else
{
osCreateScheduler(&sc, &shedThread, OS_VI_NTSC_LAN1, NUM_FIELDS);
}
osScAddClient(&sc, &gfxClient, &gfxFrameMsgQ);
osScAddClient(&sc, &gfxClient, &gfxFrameMsgQ, 0);
sched_cmdQ = osScGetCmdQ(&sc);
}
#else
GLOBAL_ASM(
.section .text
glabel init_scheduler
/* 0013EC 700007EC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0013F0 700007F0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0013F4 700007F4 3C048006 */ lui $a0, %hi(gfxFrameMsgQ)
/* 0013F8 700007F8 3C058006 */ lui $a1, %hi(gfxFrameMsgBuf)
/* 0013FC 700007FC 24A5D9B8 */ addiu $a1, $a1, %lo(gfxFrameMsgBuf)
/* 001400 70000800 2484D9A0 */ addiu $a0, $a0, %lo(gfxFrameMsgQ)
/* 001404 70000804 0C0035B4 */ jal osCreateMesgQueue
/* 001408 70000808 24060020 */ addiu $a2, $zero, 0x20
/* 00140C 7000080C 3C0E8000 */ lui $t6, %hi(osTvType)
/* 001410 70000810 8DCE0300 */ lw $t6, %lo(osTvType)($t6)
/* 001414 70000814 24010002 */ addiu $at, $zero, 2
/* 001418 70000818 3C048006 */ lui $a0, %hi(sc)
/* 00141C 7000081C 15C1000A */ bne $t6, $at, .Linit_scheduler_5C
/* 001420 70000820 2484DA40 */ addiu $a0, $a0, %lo(sc)
/* 001424 70000824 3C048006 */ lui $a0, %hi(sc)
/* 001428 70000828 3C058006 */ lui $a1, %hi(shedThread)
/* 00142C 7000082C 24A5D7F0 */ addiu $a1, $a1, %lo(shedThread)
/* 001430 70000830 2484DA40 */ addiu $a0, $a0, %lo(sc)
/* 001434 70000834 2406001E */ addiu $a2, $zero, 0x1e
/* 001438 70000838 0C0002AB */ jal osCreateScheduler
/* 00143C 7000083C 24070001 */ addiu $a3, $zero, 1
/* 001440 70000840 10000006 */ b .Linit_scheduler_70
/* 001444 70000844 00000000 */ nop
.Linit_scheduler_5C:
/* 001448 70000848 3C058006 */ lui $a1, %hi(shedThread)
/* 00144C 7000084C 24A5D7F0 */ addiu $a1, $a1, %lo(shedThread)
/* 001450 70000850 24060002 */ addiu $a2, $zero, 2
/* 001454 70000854 0C0002AB */ jal osCreateScheduler
/* 001458 70000858 24070001 */ addiu $a3, $zero, 1
.Linit_scheduler_70:
/* 00145C 7000085C 3C048006 */ lui $a0, %hi(sc)
/* 001460 70000860 3C058006 */ lui $a1, %hi(gfxClient)
/* 001464 70000864 3C068006 */ lui $a2, %hi(gfxFrameMsgQ)
/* 001468 70000868 24C6D9A0 */ addiu $a2, $a2, %lo(gfxFrameMsgQ)
/* 00146C 7000086C 24A5DB18 */ addiu $a1, $a1, %lo(gfxClient)
/* 001470 70000870 2484DA40 */ addiu $a0, $a0, %lo(sc)
/* 001474 70000874 0C000305 */ jal osScAddClient
/* 001478 70000878 00003825 */ or $a3, $zero, $zero
/* 00147C 7000087C 3C048006 */ lui $a0, %hi(sc)
/* 001480 70000880 0C00033E */ jal osScGetCmdQ
/* 001484 70000884 2484DA40 */ addiu $a0, $a0, %lo(sc)
/* 001488 70000888 8FBF0014 */ lw $ra, 0x14($sp)
/* 00148C 7000088C 3C018006 */ lui $at, %hi(sched_cmdQ)
/* 001490 70000890 AC22DA38 */ sw $v0, %lo(sched_cmdQ)($at) # $v0, -0x25c8($at)
/* 001494 70000894 03E00008 */ jr $ra
/* 001498 70000898 27BD0018 */ addiu $sp, $sp, 0x18
)
#endif
/**
* 149C 7000089C start main game setup and loop
@@ -349,7 +301,8 @@ glabel init_scheduler
* called by 70000510, using 7000D430: A0=8005D640, A1=3, A2=7000089C, A3=0, SP+10=[803B3948], SP+14=0xA
* never returns; 7000601C is an infinite loop
*/
void thread3_main(void *args) {
void thread3_main(void *args)
{
start_idle_thread();
start_nulled_entry();
start_pi_manager();
+13 -68
View File
@@ -73,7 +73,7 @@ s32 controller_1_rumble_pulse = 0;
s32 controller_2_rumble_pulse = 0;
s32 controller_3_rumble_pulse = 0;
s32 controller_4_rumble_pulse = 0;
s32 D_80026918 = 0;
s32 enableControllers = 0;
s32 D_8002691C = 0;
s32 D_80026920 = 0;
s32 disable_all_rumble = 0;
@@ -117,7 +117,7 @@ void *something_with_joy_c_debug(void) {
osCreateMesgQueue(&cont4MesgMQ, &cont4Mesg, 1);
osCreateMesgQueue(&contdemoMesgMQ, &contdemoMesg, 0xa);
osSetEventMesg(5, &contdemoMesgMQ, 0);
D_80026918 = 1;
enableControllers = 1;
disable_all_rumble = 0;
temp_v0 = (0x80060000 + 0x4f30);
ptr_to_tlb_ramrom_record = 0;
@@ -197,8 +197,8 @@ glabel something_with_joy_c_debug
/* 00C200 7000B600 0C003714 */ jal osSetEventMesg
/* 00C204 7000B604 00003025 */ move $a2, $zero
/* 00C208 7000B608 240E0001 */ li $t6, 1
/* 00C20C 7000B60C 3C018002 */ lui $at, %hi(D_80026918)
/* 00C210 7000B610 AC2E6918 */ sw $t6, %lo(D_80026918)($at)
/* 00C20C 7000B60C 3C018002 */ lui $at, %hi(enableControllers)
/* 00C210 7000B610 AC2E6918 */ sw $t6, %lo(enableControllers)($at)
/* 00C214 7000B614 3C018002 */ lui $at, %hi(disable_all_rumble)
/* 00C218 7000B618 AC206924 */ sw $zero, %lo(disable_all_rumble)($at)
/* 00C21C 7000B61C 3C0F8006 */ lui $t7, %hi(controller_input_index)
@@ -243,81 +243,26 @@ glabel something_with_joy_c_debug
#ifdef NONMATCHING
void test_controller_presence(void) {
? sp1C;
// Node 0
if (D_80026918 != 0)
void test_controller_presence(void)
{
OSMesg sp1C;
if (enableControllers != 0)
{
// Node 1
osSendMesg(&cont1MesgMQ, &sp1C, 0);
osRecvMesg(&cont2MesgMQ, &sp1C, 1);
controller_check_for_rumble_maybe();
osSendMesg(&cont3MesgMQ, &sp1C, 0);
osRecvMesg(&cont4MesgMQ, &sp1C, 1);
return;
// (possible return value: osRecvMesg(&cont4MesgMQ, &sp1C, 1))
}
// (function likely void)
}
#else
GLOBAL_ASM(
.text
glabel test_controller_presence
/* 00C2AC 7000B6AC 3C0E8002 */ lui $t6, %hi(D_80026918)
/* 00C2B0 7000B6B0 8DCE6918 */ lw $t6, %lo(D_80026918)($t6)
/* 00C2B4 7000B6B4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 00C2B8 7000B6B8 AFBF0014 */ sw $ra, 0x14($sp)
/* 00C2BC 7000B6BC 11C00016 */ beqz $t6, .L7000B718
/* 00C2C0 7000B6C0 3C048006 */ lui $a0, %hi(cont1MesgMQ)
/* 00C2C4 7000B6C4 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370
/* 00C2C8 7000B6C8 27A5001C */ addiu $a1, $sp, 0x1c
/* 00C2CC 7000B6CC 0C0037C4 */ jal osSendMesg
/* 00C2D0 7000B6D0 00003025 */ move $a2, $zero
/* 00C2D4 7000B6D4 3C048006 */ lui $a0, %hi(cont2MesgMQ)
/* 00C2D8 7000B6D8 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390
/* 00C2DC 7000B6DC 27A5001C */ addiu $a1, $sp, 0x1c
/* 00C2E0 7000B6E0 0C003774 */ jal osRecvMesg
/* 00C2E4 7000B6E4 24060001 */ li $a2, 1
/* 00C2E8 7000B6E8 0C002E04 */ jal controller_check_for_rumble_maybe
/* 00C2EC 7000B6EC 00000000 */ nop
/* 00C2F0 7000B6F0 3C048006 */ lui $a0, %hi(cont3MesgMQ)
/* 00C2F4 7000B6F4 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0
/* 00C2F8 7000B6F8 27A5001C */ addiu $a1, $sp, 0x1c
/* 00C2FC 7000B6FC 0C0037C4 */ jal osSendMesg
/* 00C300 7000B700 00003025 */ move $a2, $zero
/* 00C304 7000B704 3C048006 */ lui $a0, %hi(cont4MesgMQ)
/* 00C308 7000B708 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0
/* 00C30C 7000B70C 27A5001C */ addiu $a1, $sp, 0x1c
/* 00C310 7000B710 0C003774 */ jal osRecvMesg
/* 00C314 7000B714 24060001 */ li $a2, 1
.L7000B718:
/* 00C318 7000B718 8FBF0014 */ lw $ra, 0x14($sp)
/* 00C31C 7000B71C 27BD0020 */ addiu $sp, $sp, 0x20
/* 00C320 7000B720 03E00008 */ jr $ra
/* 00C324 7000B724 00000000 */ nop
)
#endif
#ifdef NONMATCHING
s32 osPfsChecker(s32 *arg0) {
return;
// (possible return value: 3)
s32 osPfsChecker(u32 *param_1) //OSPfs *param_1
{
return 3;
}
#else
GLOBAL_ASM(
.text
glabel osPfsChecker
/* 00C328 7000B728 AFA40000 */ sw $a0, ($sp)
/* 00C32C 7000B72C 03E00008 */ jr $ra
/* 00C330 7000B730 24020003 */ li $v0, 3
)
#endif
+187
View File
@@ -0,0 +1,187 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel guMtxF2L
/* 010B10 7000FF10 3C014780 */ li $at, 0x47800000 # 65536.000000
/* 010B14 7000FF14 44810000 */ mtc1 $at, $f0
/* 010B18 7000FF18 00A01025 */ move $v0, $a1
/* 010B1C 7000FF1C 24A30020 */ addiu $v1, $a1, 0x20
/* 010B20 7000FF20 00003025 */ move $a2, $zero
/* 010B24 7000FF24 00803825 */ move $a3, $a0
/* 010B28 7000FF28 240C0004 */ li $t4, 4
/* 010B2C 7000FF2C 240B0002 */ li $t3, 2
/* 010B30 7000FF30 3C0AFFFF */ lui $t2, 0xffff
.L7000FF34:
/* 010B34 7000FF34 00002025 */ move $a0, $zero
/* 010B38 7000FF38 00E04025 */ move $t0, $a3
/* 010B3C 7000FF3C C50E0004 */ lwc1 $f14, 4($t0)
/* 010B40 7000FF40 24840001 */ addiu $a0, $a0, 1
/* 010B44 7000FF44 C5120000 */ lwc1 $f18, ($t0)
/* 010B48 7000FF48 46007402 */ mul.s $f16, $f14, $f0
/* 010B4C 7000FF4C 108B0019 */ beq $a0, $t3, .L7000FFB4
/* 010B50 7000FF50 00000000 */ nop
.L7000FF54:
/* 010B54 7000FF54 46009382 */ mul.s $f14, $f18, $f0
/* 010B58 7000FF58 24840001 */ addiu $a0, $a0, 1
/* 010B5C 7000FF5C 24420004 */ addiu $v0, $v0, 4
/* 010B60 7000FF60 24630004 */ addiu $v1, $v1, 4
/* 010B64 7000FF64 25080008 */ addiu $t0, $t0, 8
/* 010B68 7000FF68 4600830D */ trunc.w.s $f12, $f16
/* 010B6C 7000FF6C 4600738D */ trunc.w.s $f14, $f14
/* 010B70 7000FF70 44096000 */ mfc1 $t1, $f12
/* 010B74 7000FF74 44057000 */ mfc1 $a1, $f14
/* 010B78 7000FF78 0009CC03 */ sra $t9, $t1, 0x10
/* 010B7C 7000FF7C 332DFFFF */ andi $t5, $t9, 0xffff
/* 010B80 7000FF80 00AAC024 */ and $t8, $a1, $t2
/* 010B84 7000FF84 030D7025 */ or $t6, $t8, $t5
/* 010B88 7000FF88 00057C00 */ sll $t7, $a1, 0x10
/* 010B8C 7000FF8C 01EAC824 */ and $t9, $t7, $t2
/* 010B90 7000FF90 AC4EFFFC */ sw $t6, -4($v0)
/* 010B94 7000FF94 3138FFFF */ andi $t8, $t1, 0xffff
/* 010B98 7000FF98 03386825 */ or $t5, $t9, $t8
/* 010B9C 7000FF9C AC6DFFFC */ sw $t5, -4($v1)
/* 010BA0 7000FFA0 C50E0004 */ lwc1 $f14, 4($t0)
/* 010BA4 7000FFA4 C5120000 */ lwc1 $f18, ($t0)
/* 010BA8 7000FFA8 46007402 */ mul.s $f16, $f14, $f0
/* 010BAC 7000FFAC 148BFFE9 */ bne $a0, $t3, .L7000FF54
/* 010BB0 7000FFB0 00000000 */ nop
.L7000FFB4:
/* 010BB4 7000FFB4 46009382 */ mul.s $f14, $f18, $f0
/* 010BB8 7000FFB8 25080008 */ addiu $t0, $t0, 8
/* 010BBC 7000FFBC 24420004 */ addiu $v0, $v0, 4
/* 010BC0 7000FFC0 24630004 */ addiu $v1, $v1, 4
/* 010BC4 7000FFC4 4600830D */ trunc.w.s $f12, $f16
/* 010BC8 7000FFC8 4600738D */ trunc.w.s $f14, $f14
/* 010BCC 7000FFCC 44096000 */ mfc1 $t1, $f12
/* 010BD0 7000FFD0 44057000 */ mfc1 $a1, $f14
/* 010BD4 7000FFD4 0009CC03 */ sra $t9, $t1, 0x10
/* 010BD8 7000FFD8 332DFFFF */ andi $t5, $t9, 0xffff
/* 010BDC 7000FFDC 00AAC024 */ and $t8, $a1, $t2
/* 010BE0 7000FFE0 030D7025 */ or $t6, $t8, $t5
/* 010BE4 7000FFE4 00057C00 */ sll $t7, $a1, 0x10
/* 010BE8 7000FFE8 01EAC824 */ and $t9, $t7, $t2
/* 010BEC 7000FFEC 3138FFFF */ andi $t8, $t1, 0xffff
/* 010BF0 7000FFF0 AC4EFFFC */ sw $t6, -4($v0)
/* 010BF4 7000FFF4 03386825 */ or $t5, $t9, $t8
/* 010BF8 7000FFF8 AC6DFFFC */ sw $t5, -4($v1)
/* 010BFC 7000FFFC 24C60001 */ addiu $a2, $a2, 1
/* 010C00 70010000 14CCFFCC */ bne $a2, $t4, .L7000FF34
/* 010C04 70010004 24E70010 */ addiu $a3, $a3, 0x10
/* 010C08 70010008 03E00008 */ jr $ra
/* 010C0C 7001000C 00000000 */ nop
.section .rodata
glabel F64_80029430
.word 0x3f91df46, 0x9d353918 #0.017453292222222222
.word 0,0
.section .text
glabel guMtxIdentF
/* 010C10 70010010 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 010C14 70010014 00801825 */ move $v1, $a0
/* 010C18 70010018 44810000 */ mtc1 $at, $f0
/* 010C1C 7001001C 44801000 */ mtc1 $zero, $f2
/* 010C20 70010020 24040001 */ li $a0, 1
/* 010C24 70010024 00001025 */ move $v0, $zero
/* 010C28 70010028 24070004 */ li $a3, 4
/* 010C2C 7001002C 24060003 */ li $a2, 3
/* 010C30 70010030 24050002 */ li $a1, 2
.L70010034:
/* 010C34 70010034 54400004 */ bnezl $v0, .L70010048
/* 010C38 70010038 E4620000 */ swc1 $f2, ($v1)
/* 010C3C 7001003C 10000002 */ b .L70010048
/* 010C40 70010040 E4600000 */ swc1 $f0, ($v1)
/* 010C44 70010044 E4620000 */ swc1 $f2, ($v1)
.L70010048:
/* 010C48 70010048 54440004 */ bnel $v0, $a0, .L7001005C
/* 010C4C 7001004C E4620004 */ swc1 $f2, 4($v1)
/* 010C50 70010050 10000002 */ b .L7001005C
/* 010C54 70010054 E4600004 */ swc1 $f0, 4($v1)
/* 010C58 70010058 E4620004 */ swc1 $f2, 4($v1)
.L7001005C:
/* 010C5C 7001005C 54450004 */ bnel $v0, $a1, .L70010070
/* 010C60 70010060 E4620008 */ swc1 $f2, 8($v1)
/* 010C64 70010064 10000002 */ b .L70010070
/* 010C68 70010068 E4600008 */ swc1 $f0, 8($v1)
/* 010C6C 7001006C E4620008 */ swc1 $f2, 8($v1)
.L70010070:
/* 010C70 70010070 54460004 */ bnel $v0, $a2, .L70010084
/* 010C74 70010074 E462000C */ swc1 $f2, 0xc($v1)
/* 010C78 70010078 10000002 */ b .L70010084
/* 010C7C 7001007C E460000C */ swc1 $f0, 0xc($v1)
/* 010C80 70010080 E462000C */ swc1 $f2, 0xc($v1)
.L70010084:
/* 010C84 70010084 24420001 */ addiu $v0, $v0, 1
/* 010C88 70010088 1447FFEA */ bne $v0, $a3, .L70010034
/* 010C8C 7001008C 24630010 */ addiu $v1, $v1, 0x10
/* 010C90 70010090 03E00008 */ jr $ra
/* 010C94 70010094 00000000 */ nop
glabel guMtxIdent
/* 010C98 70010098 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 010C9C 7001009C AFBF0014 */ sw $ra, 0x14($sp)
/* 010CA0 700100A0 AFA40058 */ sw $a0, 0x58($sp)
/* 010CA4 700100A4 0C004004 */ jal guMtxIdentF
/* 010CA8 700100A8 27A40018 */ addiu $a0, $sp, 0x18
/* 010CAC 700100AC 27A40018 */ addiu $a0, $sp, 0x18
/* 010CB0 700100B0 0C003FC4 */ jal guMtxF2L
/* 010CB4 700100B4 8FA50058 */ lw $a1, 0x58($sp)
/* 010CB8 700100B8 8FBF0014 */ lw $ra, 0x14($sp)
/* 010CBC 700100BC 27BD0058 */ addiu $sp, $sp, 0x58
/* 010CC0 700100C0 03E00008 */ jr $ra
/* 010CC4 700100C4 00000000 */ nop
glabel guMtxL2F
/* 010CC8 700100C8 3C014780 */ li $at, 0x47800000 # 65536.000000
/* 010CCC 700100CC 44810000 */ mtc1 $at, $f0
/* 010CD0 700100D0 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 010CD4 700100D4 00A01025 */ move $v0, $a1
/* 010CD8 700100D8 24A30020 */ addiu $v1, $a1, 0x20
/* 010CDC 700100DC 00003025 */ move $a2, $zero
/* 010CE0 700100E0 00804025 */ move $t0, $a0
/* 010CE4 700100E4 240C0004 */ li $t4, 4
/* 010CE8 700100E8 240B0002 */ li $t3, 2
/* 010CEC 700100EC 3C0AFFFF */ lui $t2, 0xffff
.L700100F0:
/* 010CF0 700100F0 00002025 */ move $a0, $zero
/* 010CF4 700100F4 01004825 */ move $t1, $t0
.L700100F8:
/* 010CF8 700100F8 8C6E0000 */ lw $t6, ($v1)
/* 010CFC 700100FC 8C590000 */ lw $t9, ($v0)
/* 010D00 70010100 24840001 */ addiu $a0, $a0, 1
/* 010D04 70010104 000E7C02 */ srl $t7, $t6, 0x10
/* 010D08 70010108 31F8FFFF */ andi $t8, $t7, 0xffff
/* 010D0C 7001010C 032A6824 */ and $t5, $t9, $t2
/* 010D10 70010110 030D7025 */ or $t6, $t8, $t5
/* 010D14 70010114 AFAE0004 */ sw $t6, 4($sp)
/* 010D18 70010118 8C6F0000 */ lw $t7, ($v1)
/* 010D1C 7001011C 8C580000 */ lw $t8, ($v0)
/* 010D20 70010120 8FA50004 */ lw $a1, 4($sp)
/* 010D24 70010124 31F9FFFF */ andi $t9, $t7, 0xffff
/* 010D28 70010128 00186C00 */ sll $t5, $t8, 0x10
/* 010D2C 7001012C 44859000 */ mtc1 $a1, $f18
/* 010D30 70010130 01AA7024 */ and $t6, $t5, $t2
/* 010D34 70010134 032E3825 */ or $a3, $t9, $t6
/* 010D38 70010138 468094A0 */ cvt.s.w $f18, $f18
/* 010D3C 7001013C 44878000 */ mtc1 $a3, $f16
/* 010D40 70010140 AFA70000 */ sw $a3, ($sp)
/* 010D44 70010144 24420004 */ addiu $v0, $v0, 4
/* 010D48 70010148 24630004 */ addiu $v1, $v1, 4
/* 010D4C 7001014C 46808420 */ cvt.s.w $f16, $f16
/* 010D50 70010150 25290008 */ addiu $t1, $t1, 8
/* 010D54 70010154 46009483 */ div.s $f18, $f18, $f0
/* 010D58 70010158 46008403 */ div.s $f16, $f16, $f0
/* 010D5C 7001015C E532FFF8 */ swc1 $f18, -8($t1)
/* 010D60 70010160 148BFFE5 */ bne $a0, $t3, .L700100F8
/* 010D64 70010164 E530FFFC */ swc1 $f16, -4($t1)
/* 010D68 70010168 24C60001 */ addiu $a2, $a2, 1
/* 010D6C 7001016C 14CCFFE0 */ bne $a2, $t4, .L700100F0
/* 010D70 70010170 25080010 */ addiu $t0, $t0, 0x10
/* 010D74 70010174 03E00008 */ jr $ra
/* 010D78 70010178 27BD0010 */ addiu $sp, $sp, 0x10
+966
View File
@@ -0,0 +1,966 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel _Putfld
/* 0144F0 700138F0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0144F4 700138F4 AFA50020 */ sw $a1, 0x20($sp)
/* 0144F8 700138F8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0144FC 700138FC 30AE00FF */ andi $t6, $a1, 0xff
/* 014500 70013900 29C10026 */ slti $at, $t6, 0x26
/* 014504 70013904 01C02825 */ move $a1, $t6
/* 014508 70013908 AE00000C */ sw $zero, 0xc($s0)
/* 01450C 7001390C AE000010 */ sw $zero, 0x10($s0)
/* 014510 70013910 AE000014 */ sw $zero, 0x14($s0)
/* 014514 70013914 AE000018 */ sw $zero, 0x18($s0)
/* 014518 70013918 AE00001C */ sw $zero, 0x1c($s0)
/* 01451C 7001391C AE000020 */ sw $zero, 0x20($s0)
/* 014520 70013920 1420000A */ bnez $at, .L7001394C
/* 014524 70013924 01C01825 */ move $v1, $t6
/* 014528 70013928 25CFFFBB */ addiu $t7, $t6, -0x45
/* 01452C 7001392C 2DE10034 */ sltiu $at, $t7, 0x34
/* 014530 70013930 10200181 */ beqz $at, .L70013F38
/* 014534 70013934 000F7880 */ sll $t7, $t7, 2
/* 014538 70013938 3C018003 */ lui $at, %hi(jpt_80029714)
/* 01453C 7001393C 002F0821 */ addu $at, $at, $t7
/* 014540 70013940 8C2F9714 */ lw $t7, %lo(jpt_80029714)($at)
/* 014544 70013944 01E00008 */ jr $t7
/* 014548 70013948 00000000 */ nop
.L7001394C:
/* 01454C 7001394C 24010025 */ li $at, 37
/* 014550 70013950 50610172 */ beql $v1, $at, .L70013F1C
/* 014554 70013954 8E18000C */ lw $t8, 0xc($s0)
/* 014558 70013958 10000178 */ b .L70013F3C
/* 01455C 7001395C 8E0E000C */ lw $t6, 0xc($s0)
.L70013960:
/* 014560 70013960 8CD80000 */ lw $t8, ($a2)
/* 014564 70013964 2401FFFC */ li $at, -4
/* 014568 70013968 27190003 */ addiu $t9, $t8, 3
/* 01456C 7001396C 03217024 */ and $t6, $t9, $at
/* 014570 70013970 25CF0004 */ addiu $t7, $t6, 4
/* 014574 70013974 ACCF0000 */ sw $t7, ($a2)
/* 014578 70013978 8E0E000C */ lw $t6, 0xc($s0)
/* 01457C 7001397C 8DF9FFFC */ lw $t9, -4($t7)
/* 014580 70013980 00EE7821 */ addu $t7, $a3, $t6
/* 014584 70013984 A1F90000 */ sb $t9, ($t7)
/* 014588 70013988 8E18000C */ lw $t8, 0xc($s0)
/* 01458C 7001398C 270E0001 */ addiu $t6, $t8, 1
/* 014590 70013990 1000016F */ b .L70013F50
/* 014594 70013994 AE0E000C */ sw $t6, 0xc($s0)
.L70013998:
/* 014598 70013998 92020034 */ lbu $v0, 0x34($s0)
/* 01459C 7001399C 2401006C */ li $at, 108
/* 0145A0 700139A0 5441000D */ bnel $v0, $at, .L700139D8
/* 0145A4 700139A4 2401004C */ li $at, 76
/* 0145A8 700139A8 8CD90000 */ lw $t9, ($a2)
/* 0145AC 700139AC 2401FFFC */ li $at, -4
/* 0145B0 700139B0 272F0003 */ addiu $t7, $t9, 3
/* 0145B4 700139B4 01E1C024 */ and $t8, $t7, $at
/* 0145B8 700139B8 270E0004 */ addiu $t6, $t8, 4
/* 0145BC 700139BC ACCE0000 */ sw $t6, ($a2)
/* 0145C0 700139C0 8DCFFFFC */ lw $t7, -4($t6)
/* 0145C4 700139C4 000FC7C3 */ sra $t8, $t7, 0x1f
/* 0145C8 700139C8 AE180000 */ sw $t8, ($s0)
/* 0145CC 700139CC 10000019 */ b .L70013A34
/* 0145D0 700139D0 AE0F0004 */ sw $t7, 4($s0)
/* 0145D4 700139D4 2401004C */ li $at, 76
.L700139D8:
/* 0145D8 700139D8 5441000D */ bnel $v0, $at, .L70013A10
/* 0145DC 700139DC 8CCF0000 */ lw $t7, ($a2)
/* 0145E0 700139E0 8CCE0000 */ lw $t6, ($a2)
/* 0145E4 700139E4 2401FFF8 */ li $at, -8
/* 0145E8 700139E8 25CF0007 */ addiu $t7, $t6, 7
/* 0145EC 700139EC 01E1C024 */ and $t8, $t7, $at
/* 0145F0 700139F0 27190008 */ addiu $t9, $t8, 8
/* 0145F4 700139F4 ACD90000 */ sw $t9, ($a2)
/* 0145F8 700139F8 8F38FFF8 */ lw $t8, -8($t9)
/* 0145FC 700139FC 8F39FFFC */ lw $t9, -4($t9)
/* 014600 70013A00 AE180000 */ sw $t8, ($s0)
/* 014604 70013A04 1000000B */ b .L70013A34
/* 014608 70013A08 AE190004 */ sw $t9, 4($s0)
/* 01460C 70013A0C 8CCF0000 */ lw $t7, ($a2)
.L70013A10:
/* 014610 70013A10 2401FFFC */ li $at, -4
/* 014614 70013A14 25EE0003 */ addiu $t6, $t7, 3
/* 014618 70013A18 01C1C024 */ and $t8, $t6, $at
/* 01461C 70013A1C 27190004 */ addiu $t9, $t8, 4
/* 014620 70013A20 ACD90000 */ sw $t9, ($a2)
/* 014624 70013A24 8F2EFFFC */ lw $t6, -4($t9)
/* 014628 70013A28 000EC7C3 */ sra $t8, $t6, 0x1f
/* 01462C 70013A2C AE180000 */ sw $t8, ($s0)
/* 014630 70013A30 AE0E0004 */ sw $t6, 4($s0)
.L70013A34:
/* 014634 70013A34 920F0034 */ lbu $t7, 0x34($s0)
/* 014638 70013A38 24010068 */ li $at, 104
/* 01463C 70013A3C 55E10008 */ bnel $t7, $at, .L70013A60
/* 014640 70013A40 8E0E0000 */ lw $t6, ($s0)
/* 014644 70013A44 8E0F0004 */ lw $t7, 4($s0)
/* 014648 70013A48 000FCC00 */ sll $t9, $t7, 0x10
/* 01464C 70013A4C 00197403 */ sra $t6, $t9, 0x10
/* 014650 70013A50 000EC7C3 */ sra $t8, $t6, 0x1f
/* 014654 70013A54 AE180000 */ sw $t8, ($s0)
/* 014658 70013A58 AE0E0004 */ sw $t6, 4($s0)
/* 01465C 70013A5C 8E0E0000 */ lw $t6, ($s0)
.L70013A60:
/* 014660 70013A60 5DC0000E */ bgtzl $t6, .L70013A9C
/* 014664 70013A64 8E020030 */ lw $v0, 0x30($s0)
/* 014668 70013A68 05C20004 */ bltzl $t6, .L70013A7C
/* 01466C 70013A6C 8E19000C */ lw $t9, 0xc($s0)
/* 014670 70013A70 1000000A */ b .L70013A9C
/* 014674 70013A74 8E020030 */ lw $v0, 0x30($s0)
/* 014678 70013A78 8E19000C */ lw $t9, 0xc($s0)
.L70013A7C:
/* 01467C 70013A7C 2418002D */ li $t8, 45
/* 014680 70013A80 00F97021 */ addu $t6, $a3, $t9
/* 014684 70013A84 A1D80000 */ sb $t8, ($t6)
/* 014688 70013A88 8E0F000C */ lw $t7, 0xc($s0)
/* 01468C 70013A8C 25F90001 */ addiu $t9, $t7, 1
/* 014690 70013A90 10000016 */ b .L70013AEC
/* 014694 70013A94 AE19000C */ sw $t9, 0xc($s0)
/* 014698 70013A98 8E020030 */ lw $v0, 0x30($s0)
.L70013A9C:
/* 01469C 70013A9C 30580002 */ andi $t8, $v0, 2
/* 0146A0 70013AA0 13000009 */ beqz $t8, .L70013AC8
/* 0146A4 70013AA4 304E0001 */ andi $t6, $v0, 1
/* 0146A8 70013AA8 8E0F000C */ lw $t7, 0xc($s0)
/* 0146AC 70013AAC 240E002B */ li $t6, 43
/* 0146B0 70013AB0 00EFC821 */ addu $t9, $a3, $t7
/* 0146B4 70013AB4 A32E0000 */ sb $t6, ($t9)
/* 0146B8 70013AB8 8E18000C */ lw $t8, 0xc($s0)
/* 0146BC 70013ABC 270F0001 */ addiu $t7, $t8, 1
/* 0146C0 70013AC0 1000000A */ b .L70013AEC
/* 0146C4 70013AC4 AE0F000C */ sw $t7, 0xc($s0)
.L70013AC8:
/* 0146C8 70013AC8 51C00009 */ beql $t6, $zero, .L70013AF0
/* 0146CC 70013ACC 8E19000C */ lw $t9, 0xc($s0)
/* 0146D0 70013AD0 8E18000C */ lw $t8, 0xc($s0)
/* 0146D4 70013AD4 24190020 */ li $t9, 32
/* 0146D8 70013AD8 00F87821 */ addu $t7, $a3, $t8
/* 0146DC 70013ADC A1F90000 */ sb $t9, ($t7)
/* 0146E0 70013AE0 8E0E000C */ lw $t6, 0xc($s0)
/* 0146E4 70013AE4 25D80001 */ addiu $t8, $t6, 1
/* 0146E8 70013AE8 AE18000C */ sw $t8, 0xc($s0)
.L70013AEC:
/* 0146EC 70013AEC 8E19000C */ lw $t9, 0xc($s0)
.L70013AF0:
/* 0146F0 70013AF0 02002025 */ move $a0, $s0
/* 0146F4 70013AF4 03277821 */ addu $t7, $t9, $a3
/* 0146F8 70013AF8 0C0075F4 */ jal _Litob
/* 0146FC 70013AFC AE0F0008 */ sw $t7, 8($s0)
/* 014700 70013B00 10000114 */ b .L70013F54
/* 014704 70013B04 8FBF0014 */ lw $ra, 0x14($sp)
.L70013B08:
/* 014708 70013B08 92020034 */ lbu $v0, 0x34($s0)
/* 01470C 70013B0C 2401006C */ li $at, 108
/* 014710 70013B10 5441000D */ bnel $v0, $at, .L70013B48
/* 014714 70013B14 2401004C */ li $at, 76
/* 014718 70013B18 8CCE0000 */ lw $t6, ($a2)
/* 01471C 70013B1C 2401FFFC */ li $at, -4
/* 014720 70013B20 25D80003 */ addiu $t8, $t6, 3
/* 014724 70013B24 0301C824 */ and $t9, $t8, $at
/* 014728 70013B28 272F0004 */ addiu $t7, $t9, 4
/* 01472C 70013B2C ACCF0000 */ sw $t7, ($a2)
/* 014730 70013B30 8DF8FFFC */ lw $t8, -4($t7)
/* 014734 70013B34 001877C3 */ sra $t6, $t8, 0x1f
/* 014738 70013B38 AE0E0000 */ sw $t6, ($s0)
/* 01473C 70013B3C 10000019 */ b .L70013BA4
/* 014740 70013B40 AE180004 */ sw $t8, 4($s0)
/* 014744 70013B44 2401004C */ li $at, 76
.L70013B48:
/* 014748 70013B48 5441000D */ bnel $v0, $at, .L70013B80
/* 01474C 70013B4C 8CCE0000 */ lw $t6, ($a2)
/* 014750 70013B50 8CD90000 */ lw $t9, ($a2)
/* 014754 70013B54 2401FFF8 */ li $at, -8
/* 014758 70013B58 27380007 */ addiu $t8, $t9, 7
/* 01475C 70013B5C 03017024 */ and $t6, $t8, $at
/* 014760 70013B60 25CF0008 */ addiu $t7, $t6, 8
/* 014764 70013B64 ACCF0000 */ sw $t7, ($a2)
/* 014768 70013B68 8DF9FFFC */ lw $t9, -4($t7)
/* 01476C 70013B6C 8DF8FFF8 */ lw $t8, -8($t7)
/* 014770 70013B70 AE190004 */ sw $t9, 4($s0)
/* 014774 70013B74 1000000B */ b .L70013BA4
/* 014778 70013B78 AE180000 */ sw $t8, ($s0)
/* 01477C 70013B7C 8CCE0000 */ lw $t6, ($a2)
.L70013B80:
/* 014780 70013B80 2401FFFC */ li $at, -4
/* 014784 70013B84 25CF0003 */ addiu $t7, $t6, 3
/* 014788 70013B88 01E1C024 */ and $t8, $t7, $at
/* 01478C 70013B8C 27190004 */ addiu $t9, $t8, 4
/* 014790 70013B90 ACD90000 */ sw $t9, ($a2)
/* 014794 70013B94 8F2FFFFC */ lw $t7, -4($t9)
/* 014798 70013B98 000FC7C3 */ sra $t8, $t7, 0x1f
/* 01479C 70013B9C AE180000 */ sw $t8, ($s0)
/* 0147A0 70013BA0 AE0F0004 */ sw $t7, 4($s0)
.L70013BA4:
/* 0147A4 70013BA4 92020034 */ lbu $v0, 0x34($s0)
/* 0147A8 70013BA8 24010068 */ li $at, 104
/* 0147AC 70013BAC 14410007 */ bne $v0, $at, .L70013BCC
/* 0147B0 70013BB0 00000000 */ nop
/* 0147B4 70013BB4 8E0F0004 */ lw $t7, 4($s0)
/* 0147B8 70013BB8 240E0000 */ li $t6, 0
/* 0147BC 70013BBC AE0E0000 */ sw $t6, ($s0)
/* 0147C0 70013BC0 31F9FFFF */ andi $t9, $t7, 0xffff
/* 0147C4 70013BC4 10000007 */ b .L70013BE4
/* 0147C8 70013BC8 AE190004 */ sw $t9, 4($s0)
.L70013BCC:
/* 0147CC 70013BCC 54400006 */ bnezl $v0, .L70013BE8
/* 0147D0 70013BD0 8E0F0030 */ lw $t7, 0x30($s0)
/* 0147D4 70013BD4 8E190004 */ lw $t9, 4($s0)
/* 0147D8 70013BD8 24180000 */ li $t8, 0
/* 0147DC 70013BDC AE180000 */ sw $t8, ($s0)
/* 0147E0 70013BE0 AE190004 */ sw $t9, 4($s0)
.L70013BE4:
/* 0147E4 70013BE4 8E0F0030 */ lw $t7, 0x30($s0)
.L70013BE8:
/* 0147E8 70013BE8 31EE0008 */ andi $t6, $t7, 8
/* 0147EC 70013BEC 51C00014 */ beql $t6, $zero, .L70013C40
/* 0147F0 70013BF0 8E18000C */ lw $t8, 0xc($s0)
/* 0147F4 70013BF4 8E19000C */ lw $t9, 0xc($s0)
/* 0147F8 70013BF8 24180030 */ li $t8, 48
/* 0147FC 70013BFC 24010078 */ li $at, 120
/* 014800 70013C00 00F97821 */ addu $t7, $a3, $t9
/* 014804 70013C04 A1F80000 */ sb $t8, ($t7)
/* 014808 70013C08 8E0E000C */ lw $t6, 0xc($s0)
/* 01480C 70013C0C 25D90001 */ addiu $t9, $t6, 1
/* 014810 70013C10 10610004 */ beq $v1, $at, .L70013C24
/* 014814 70013C14 AE19000C */ sw $t9, 0xc($s0)
/* 014818 70013C18 24010058 */ li $at, 88
/* 01481C 70013C1C 54610008 */ bnel $v1, $at, .L70013C40
/* 014820 70013C20 8E18000C */ lw $t8, 0xc($s0)
.L70013C24:
/* 014824 70013C24 8E18000C */ lw $t8, 0xc($s0)
/* 014828 70013C28 00F87821 */ addu $t7, $a3, $t8
/* 01482C 70013C2C A1E50000 */ sb $a1, ($t7)
/* 014830 70013C30 8E0E000C */ lw $t6, 0xc($s0)
/* 014834 70013C34 25D90001 */ addiu $t9, $t6, 1
/* 014838 70013C38 AE19000C */ sw $t9, 0xc($s0)
/* 01483C 70013C3C 8E18000C */ lw $t8, 0xc($s0)
.L70013C40:
/* 014840 70013C40 02002025 */ move $a0, $s0
/* 014844 70013C44 03077821 */ addu $t7, $t8, $a3
/* 014848 70013C48 0C0075F4 */ jal _Litob
/* 01484C 70013C4C AE0F0008 */ sw $t7, 8($s0)
/* 014850 70013C50 100000C0 */ b .L70013F54
/* 014854 70013C54 8FBF0014 */ lw $ra, 0x14($sp)
.L70013C58:
/* 014858 70013C58 920E0034 */ lbu $t6, 0x34($s0)
/* 01485C 70013C5C 2401004C */ li $at, 76
/* 014860 70013C60 55C10019 */ bnel $t6, $at, .L70013CC8
/* 014864 70013C64 8CC20000 */ lw $v0, ($a2)
/* 014868 70013C68 8CC20000 */ lw $v0, ($a2)
/* 01486C 70013C6C 30590001 */ andi $t9, $v0, 1
/* 014870 70013C70 13200005 */ beqz $t9, .L70013C88
/* 014874 70013C74 00401825 */ move $v1, $v0
/* 014878 70013C78 24780007 */ addiu $t8, $v1, 7
/* 01487C 70013C7C ACD80000 */ sw $t8, ($a2)
/* 014880 70013C80 1000000D */ b .L70013CB8
/* 014884 70013C84 2702FFEA */ addiu $v0, $t8, -0x16
.L70013C88:
/* 014888 70013C88 306F0002 */ andi $t7, $v1, 2
/* 01488C 70013C8C 11E00005 */ beqz $t7, .L70013CA4
/* 014890 70013C90 24590007 */ addiu $t9, $v0, 7
/* 014894 70013C94 246E000A */ addiu $t6, $v1, 0xa
/* 014898 70013C98 ACCE0000 */ sw $t6, ($a2)
/* 01489C 70013C9C 10000005 */ b .L70013CB4
/* 0148A0 70013CA0 25C4FFD8 */ addiu $a0, $t6, -0x28
.L70013CA4:
/* 0148A4 70013CA4 2401FFF8 */ li $at, -8
/* 0148A8 70013CA8 0321C024 */ and $t8, $t9, $at
/* 0148AC 70013CAC 27040008 */ addiu $a0, $t8, 8
/* 0148B0 70013CB0 ACC40000 */ sw $a0, ($a2)
.L70013CB4:
/* 0148B4 70013CB4 00801025 */ move $v0, $a0
.L70013CB8:
/* 0148B8 70013CB8 D444FFF8 */ ldc1 $f4, -8($v0)
/* 0148BC 70013CBC 10000017 */ b .L70013D1C
/* 0148C0 70013CC0 F6040000 */ sdc1 $f4, ($s0)
/* 0148C4 70013CC4 8CC20000 */ lw $v0, ($a2)
.L70013CC8:
/* 0148C8 70013CC8 304E0001 */ andi $t6, $v0, 1
/* 0148CC 70013CCC 11C00005 */ beqz $t6, .L70013CE4
/* 0148D0 70013CD0 00401825 */ move $v1, $v0
/* 0148D4 70013CD4 24790007 */ addiu $t9, $v1, 7
/* 0148D8 70013CD8 ACD90000 */ sw $t9, ($a2)
/* 0148DC 70013CDC 1000000D */ b .L70013D14
/* 0148E0 70013CE0 2722FFEA */ addiu $v0, $t9, -0x16
.L70013CE4:
/* 0148E4 70013CE4 30780002 */ andi $t8, $v1, 2
/* 0148E8 70013CE8 13000005 */ beqz $t8, .L70013D00
/* 0148EC 70013CEC 244E0007 */ addiu $t6, $v0, 7
/* 0148F0 70013CF0 246F000A */ addiu $t7, $v1, 0xa
/* 0148F4 70013CF4 ACCF0000 */ sw $t7, ($a2)
/* 0148F8 70013CF8 10000005 */ b .L70013D10
/* 0148FC 70013CFC 25E4FFD8 */ addiu $a0, $t7, -0x28
.L70013D00:
/* 014900 70013D00 2401FFF8 */ li $at, -8
/* 014904 70013D04 01C1C824 */ and $t9, $t6, $at
/* 014908 70013D08 27240008 */ addiu $a0, $t9, 8
/* 01490C 70013D0C ACC40000 */ sw $a0, ($a2)
.L70013D10:
/* 014910 70013D10 00801025 */ move $v0, $a0
.L70013D14:
/* 014914 70013D14 D446FFF8 */ ldc1 $f6, -8($v0)
/* 014918 70013D18 F6060000 */ sdc1 $f6, ($s0)
.L70013D1C:
/* 01491C 70013D1C 960F0000 */ lhu $t7, ($s0)
/* 014920 70013D20 31EE8000 */ andi $t6, $t7, 0x8000
/* 014924 70013D24 51C0000A */ beql $t6, $zero, .L70013D50
/* 014928 70013D28 8E020030 */ lw $v0, 0x30($s0)
/* 01492C 70013D2C 8E18000C */ lw $t8, 0xc($s0)
/* 014930 70013D30 2419002D */ li $t9, 45
/* 014934 70013D34 00F87821 */ addu $t7, $a3, $t8
/* 014938 70013D38 A1F90000 */ sb $t9, ($t7)
/* 01493C 70013D3C 8E0E000C */ lw $t6, 0xc($s0)
/* 014940 70013D40 25D80001 */ addiu $t8, $t6, 1
/* 014944 70013D44 10000016 */ b .L70013DA0
/* 014948 70013D48 AE18000C */ sw $t8, 0xc($s0)
/* 01494C 70013D4C 8E020030 */ lw $v0, 0x30($s0)
.L70013D50:
/* 014950 70013D50 30590002 */ andi $t9, $v0, 2
/* 014954 70013D54 13200009 */ beqz $t9, .L70013D7C
/* 014958 70013D58 304F0001 */ andi $t7, $v0, 1
/* 01495C 70013D5C 8E0E000C */ lw $t6, 0xc($s0)
/* 014960 70013D60 240F002B */ li $t7, 43
/* 014964 70013D64 00EEC021 */ addu $t8, $a3, $t6
/* 014968 70013D68 A30F0000 */ sb $t7, ($t8)
/* 01496C 70013D6C 8E19000C */ lw $t9, 0xc($s0)
/* 014970 70013D70 272E0001 */ addiu $t6, $t9, 1
/* 014974 70013D74 1000000A */ b .L70013DA0
/* 014978 70013D78 AE0E000C */ sw $t6, 0xc($s0)
.L70013D7C:
/* 01497C 70013D7C 51E00009 */ beql $t7, $zero, .L70013DA4
/* 014980 70013D80 8E18000C */ lw $t8, 0xc($s0)
/* 014984 70013D84 8E19000C */ lw $t9, 0xc($s0)
/* 014988 70013D88 24180020 */ li $t8, 32
/* 01498C 70013D8C 00F97021 */ addu $t6, $a3, $t9
/* 014990 70013D90 A1D80000 */ sb $t8, ($t6)
/* 014994 70013D94 8E0F000C */ lw $t7, 0xc($s0)
/* 014998 70013D98 25F90001 */ addiu $t9, $t7, 1
/* 01499C 70013D9C AE19000C */ sw $t9, 0xc($s0)
.L70013DA0:
/* 0149A0 70013DA0 8E18000C */ lw $t8, 0xc($s0)
.L70013DA4:
/* 0149A4 70013DA4 02002025 */ move $a0, $s0
/* 0149A8 70013DA8 03077021 */ addu $t6, $t8, $a3
/* 0149AC 70013DAC 0C0077F8 */ jal _Ldtob
/* 0149B0 70013DB0 AE0E0008 */ sw $t6, 8($s0)
/* 0149B4 70013DB4 10000067 */ b .L70013F54
/* 0149B8 70013DB8 8FBF0014 */ lw $ra, 0x14($sp)
.L70013DBC:
/* 0149BC 70013DBC 92020034 */ lbu $v0, 0x34($s0)
/* 0149C0 70013DC0 24010068 */ li $at, 104
/* 0149C4 70013DC4 5441000C */ bnel $v0, $at, .L70013DF8
/* 0149C8 70013DC8 2401006C */ li $at, 108
/* 0149CC 70013DCC 8CCF0000 */ lw $t7, ($a2)
/* 0149D0 70013DD0 2401FFFC */ li $at, -4
/* 0149D4 70013DD4 25F90003 */ addiu $t9, $t7, 3
/* 0149D8 70013DD8 0321C024 */ and $t8, $t9, $at
/* 0149DC 70013DDC 270E0004 */ addiu $t6, $t8, 4
/* 0149E0 70013DE0 ACCE0000 */ sw $t6, ($a2)
/* 0149E4 70013DE4 8DD9FFFC */ lw $t9, -4($t6)
/* 0149E8 70013DE8 8E0F002C */ lw $t7, 0x2c($s0)
/* 0149EC 70013DEC 10000058 */ b .L70013F50
/* 0149F0 70013DF0 A72F0000 */ sh $t7, ($t9)
/* 0149F4 70013DF4 2401006C */ li $at, 108
.L70013DF8:
/* 0149F8 70013DF8 5441000C */ bnel $v0, $at, .L70013E2C
/* 0149FC 70013DFC 2401004C */ li $at, 76
/* 014A00 70013E00 8CD80000 */ lw $t8, ($a2)
/* 014A04 70013E04 2401FFFC */ li $at, -4
/* 014A08 70013E08 270E0003 */ addiu $t6, $t8, 3
/* 014A0C 70013E0C 01C17824 */ and $t7, $t6, $at
/* 014A10 70013E10 25F90004 */ addiu $t9, $t7, 4
/* 014A14 70013E14 ACD90000 */ sw $t9, ($a2)
/* 014A18 70013E18 8F2EFFFC */ lw $t6, -4($t9)
/* 014A1C 70013E1C 8E18002C */ lw $t8, 0x2c($s0)
/* 014A20 70013E20 1000004B */ b .L70013F50
/* 014A24 70013E24 ADD80000 */ sw $t8, ($t6)
/* 014A28 70013E28 2401004C */ li $at, 76
.L70013E2C:
/* 014A2C 70013E2C 5441000E */ bnel $v0, $at, .L70013E68
/* 014A30 70013E30 8CCF0000 */ lw $t7, ($a2)
/* 014A34 70013E34 8CCF0000 */ lw $t7, ($a2)
/* 014A38 70013E38 2401FFFC */ li $at, -4
/* 014A3C 70013E3C 25F90003 */ addiu $t9, $t7, 3
/* 014A40 70013E40 0321C024 */ and $t8, $t9, $at
/* 014A44 70013E44 270E0004 */ addiu $t6, $t8, 4
/* 014A48 70013E48 ACCE0000 */ sw $t6, ($a2)
/* 014A4C 70013E4C 8DCEFFFC */ lw $t6, -4($t6)
/* 014A50 70013E50 8E0F002C */ lw $t7, 0x2c($s0)
/* 014A54 70013E54 24180000 */ li $t8, 0
/* 014A58 70013E58 ADD80000 */ sw $t8, ($t6)
/* 014A5C 70013E5C 1000003C */ b .L70013F50
/* 014A60 70013E60 ADCF0004 */ sw $t7, 4($t6)
/* 014A64 70013E64 8CCF0000 */ lw $t7, ($a2)
.L70013E68:
/* 014A68 70013E68 2401FFFC */ li $at, -4
/* 014A6C 70013E6C 25F80003 */ addiu $t8, $t7, 3
/* 014A70 70013E70 0301C824 */ and $t9, $t8, $at
/* 014A74 70013E74 272E0004 */ addiu $t6, $t9, 4
/* 014A78 70013E78 ACCE0000 */ sw $t6, ($a2)
/* 014A7C 70013E7C 8DD8FFFC */ lw $t8, -4($t6)
/* 014A80 70013E80 8E0F002C */ lw $t7, 0x2c($s0)
/* 014A84 70013E84 10000032 */ b .L70013F50
/* 014A88 70013E88 AF0F0000 */ sw $t7, ($t8)
.L70013E8C:
/* 014A8C 70013E8C 8CD90000 */ lw $t9, ($a2)
/* 014A90 70013E90 2401FFFC */ li $at, -4
/* 014A94 70013E94 02002025 */ move $a0, $s0
/* 014A98 70013E98 272E0003 */ addiu $t6, $t9, 3
/* 014A9C 70013E9C 01C17824 */ and $t7, $t6, $at
/* 014AA0 70013EA0 25F80004 */ addiu $t8, $t7, 4
/* 014AA4 70013EA4 ACD80000 */ sw $t8, ($a2)
/* 014AA8 70013EA8 8F0EFFFC */ lw $t6, -4($t8)
/* 014AAC 70013EAC 8E0F000C */ lw $t7, 0xc($s0)
/* 014AB0 70013EB0 24050078 */ li $a1, 120
/* 014AB4 70013EB4 000EC7C3 */ sra $t8, $t6, 0x1f
/* 014AB8 70013EB8 AE0E0004 */ sw $t6, 4($s0)
/* 014ABC 70013EBC 01E77021 */ addu $t6, $t7, $a3
/* 014AC0 70013EC0 AE180000 */ sw $t8, ($s0)
/* 014AC4 70013EC4 0C0075F4 */ jal _Litob
/* 014AC8 70013EC8 AE0E0008 */ sw $t6, 8($s0)
/* 014ACC 70013ECC 10000021 */ b .L70013F54
/* 014AD0 70013ED0 8FBF0014 */ lw $ra, 0x14($sp)
.L70013ED4:
/* 014AD4 70013ED4 8CD80000 */ lw $t8, ($a2)
/* 014AD8 70013ED8 2401FFFC */ li $at, -4
/* 014ADC 70013EDC 27190003 */ addiu $t9, $t8, 3
/* 014AE0 70013EE0 03217824 */ and $t7, $t9, $at
/* 014AE4 70013EE4 25EE0004 */ addiu $t6, $t7, 4
/* 014AE8 70013EE8 ACCE0000 */ sw $t6, ($a2)
/* 014AEC 70013EEC 8DC4FFFC */ lw $a0, -4($t6)
/* 014AF0 70013EF0 0C004E1F */ jal strlen
/* 014AF4 70013EF4 AE040008 */ sw $a0, 8($s0)
/* 014AF8 70013EF8 8E030024 */ lw $v1, 0x24($s0)
/* 014AFC 70013EFC AE020014 */ sw $v0, 0x14($s0)
/* 014B00 70013F00 04600013 */ bltz $v1, .L70013F50
/* 014B04 70013F04 0062082A */ slt $at, $v1, $v0
/* 014B08 70013F08 50200012 */ beql $at, $zero, .L70013F54
/* 014B0C 70013F0C 8FBF0014 */ lw $ra, 0x14($sp)
/* 014B10 70013F10 1000000F */ b .L70013F50
/* 014B14 70013F14 AE030014 */ sw $v1, 0x14($s0)
/* 014B18 70013F18 8E18000C */ lw $t8, 0xc($s0)
.L70013F1C:
/* 014B1C 70013F1C 240E0025 */ li $t6, 37
/* 014B20 70013F20 00F8C821 */ addu $t9, $a3, $t8
/* 014B24 70013F24 A32E0000 */ sb $t6, ($t9)
/* 014B28 70013F28 8E0F000C */ lw $t7, 0xc($s0)
/* 014B2C 70013F2C 25F80001 */ addiu $t8, $t7, 1
/* 014B30 70013F30 10000007 */ b .L70013F50
/* 014B34 70013F34 AE18000C */ sw $t8, 0xc($s0)
.L70013F38:
/* 014B38 70013F38 8E0E000C */ lw $t6, 0xc($s0)
.L70013F3C:
/* 014B3C 70013F3C 00EEC821 */ addu $t9, $a3, $t6
/* 014B40 70013F40 A3250000 */ sb $a1, ($t9)
/* 014B44 70013F44 8E0F000C */ lw $t7, 0xc($s0)
/* 014B48 70013F48 25F80001 */ addiu $t8, $t7, 1
/* 014B4C 70013F4C AE18000C */ sw $t8, 0xc($s0)
.L70013F50:
/* 014B50 70013F50 8FBF0014 */ lw $ra, 0x14($sp)
.L70013F54:
/* 014B54 70013F54 27BD0018 */ addiu $sp, $sp, 0x18
/* 014B58 70013F58 03E00008 */ jr $ra
/* 014B5C 70013F5C 00000000 */ nop
glabel _Printf
/* 014B60 70013F60 27BDFF20 */ addiu $sp, $sp, -0xe0
/* 014B64 70013F64 AFB70034 */ sw $s7, 0x34($sp)
/* 014B68 70013F68 AFB60030 */ sw $s6, 0x30($sp)
/* 014B6C 70013F6C AFB5002C */ sw $s5, 0x2c($sp)
/* 014B70 70013F70 AFBE0038 */ sw $fp, 0x38($sp)
/* 014B74 70013F74 AFB40028 */ sw $s4, 0x28($sp)
/* 014B78 70013F78 AFB30024 */ sw $s3, 0x24($sp)
/* 014B7C 70013F7C AFA700EC */ sw $a3, 0xec($sp)
/* 014B80 70013F80 3C158002 */ lui $s5, %hi(zeros)
/* 014B84 70013F84 3C168003 */ lui $s6, %hi(printf_symbols)
/* 014B88 70013F88 3C178002 */ lui $s7, %hi(spaces)
/* 014B8C 70013F8C 00C03825 */ move $a3, $a2
/* 014B90 70013F90 00A09825 */ move $s3, $a1
/* 014B94 70013F94 0080A025 */ move $s4, $a0
/* 014B98 70013F98 AFBF003C */ sw $ra, 0x3c($sp)
/* 014B9C 70013F9C AFB20020 */ sw $s2, 0x20($sp)
/* 014BA0 70013FA0 AFB1001C */ sw $s1, 0x1c($sp)
/* 014BA4 70013FA4 AFB00018 */ sw $s0, 0x18($sp)
/* 014BA8 70013FA8 AFA600E8 */ sw $a2, 0xe8($sp)
/* 014BAC 70013FAC AFA000D4 */ sw $zero, 0xd4($sp)
/* 014BB0 70013FB0 26F77740 */ addiu $s7, %lo(spaces) # addiu $s7, $s7, 0x7740
/* 014BB4 70013FB4 26D696F4 */ addiu $s6, %lo(printf_symbols) # addiu $s6, $s6, -0x690c
/* 014BB8 70013FB8 26B57764 */ addiu $s5, %lo(zeros) # addiu $s5, $s5, 0x7764
/* 014BBC 70013FBC 241E000A */ li $fp, 10
.L70013FC0:
/* 014BC0 70013FC0 90F00000 */ lbu $s0, ($a3)
/* 014BC4 70013FC4 24F20001 */ addiu $s2, $a3, 1
/* 014BC8 70013FC8 24030025 */ li $v1, 37
/* 014BCC 70013FCC 1A000009 */ blez $s0, .L70013FF4
/* 014BD0 70013FD0 02602025 */ move $a0, $s3
.L70013FD4:
/* 014BD4 70013FD4 54700004 */ bnel $v1, $s0, .L70013FE8
/* 014BD8 70013FD8 92500000 */ lbu $s0, ($s2)
/* 014BDC 70013FDC 10000005 */ b .L70013FF4
/* 014BE0 70013FE0 2652FFFF */ addiu $s2, $s2, -1
/* 014BE4 70013FE4 92500000 */ lbu $s0, ($s2)
.L70013FE8:
/* 014BE8 70013FE8 26520001 */ addiu $s2, $s2, 1
/* 014BEC 70013FEC 1E00FFF9 */ bgtz $s0, .L70013FD4
/* 014BF0 70013FF0 00000000 */ nop
.L70013FF4:
/* 014BF4 70013FF4 02471023 */ subu $v0, $s2, $a3
/* 014BF8 70013FF8 1840000C */ blez $v0, .L7001402C
/* 014BFC 70013FFC 00E02825 */ move $a1, $a3
/* 014C00 70014000 00408825 */ move $s1, $v0
/* 014C04 70014004 0280F809 */ jalr $s4
/* 014C08 70014008 00403025 */ move $a2, $v0
/* 014C0C 7001400C 10400005 */ beqz $v0, .L70014024
/* 014C10 70014010 00409825 */ move $s3, $v0
/* 014C14 70014014 8FAE00D4 */ lw $t6, 0xd4($sp)
/* 014C18 70014018 01D17821 */ addu $t7, $t6, $s1
/* 014C1C 7001401C 10000003 */ b .L7001402C
/* 014C20 70014020 AFAF00D4 */ sw $t7, 0xd4($sp)
.L70014024:
/* 014C24 70014024 10000153 */ b .L70014574
/* 014C28 70014028 8FA200D4 */ lw $v0, 0xd4($sp)
.L7001402C:
/* 014C2C 7001402C 16000003 */ bnez $s0, .L7001403C
/* 014C30 70014030 26520001 */ addiu $s2, $s2, 1
/* 014C34 70014034 1000014F */ b .L70014574
/* 014C38 70014038 8FA200D4 */ lw $v0, 0xd4($sp)
.L7001403C:
/* 014C3C 7001403C AFA000D8 */ sw $zero, 0xd8($sp)
/* 014C40 70014040 92450000 */ lbu $a1, ($s2)
/* 014C44 70014044 0C004E29 */ jal strchr
/* 014C48 70014048 02C02025 */ move $a0, $s6
/* 014C4C 7001404C 1040000F */ beqz $v0, .L7001408C
/* 014C50 70014050 00408025 */ move $s0, $v0
.L70014054:
/* 014C54 70014054 0216C823 */ subu $t9, $s0, $s6
/* 014C58 70014058 00197080 */ sll $t6, $t9, 2
/* 014C5C 7001405C 3C0F8003 */ lui $t7, %hi(byteshiftleft_lookup)
/* 014C60 70014060 01EE7821 */ addu $t7, $t7, $t6
/* 014C64 70014064 8DEF96FC */ lw $t7, %lo(byteshiftleft_lookup)($t7)
/* 014C68 70014068 8FB800D8 */ lw $t8, 0xd8($sp)
/* 014C6C 7001406C 26520001 */ addiu $s2, $s2, 1
/* 014C70 70014070 02C02025 */ move $a0, $s6
/* 014C74 70014074 030FC825 */ or $t9, $t8, $t7
/* 014C78 70014078 AFB900D8 */ sw $t9, 0xd8($sp)
/* 014C7C 7001407C 0C004E29 */ jal strchr
/* 014C80 70014080 92450000 */ lbu $a1, ($s2)
/* 014C84 70014084 1440FFF3 */ bnez $v0, .L70014054
/* 014C88 70014088 00408025 */ move $s0, $v0
.L7001408C:
/* 014C8C 7001408C 924E0000 */ lbu $t6, ($s2)
/* 014C90 70014090 2402002A */ li $v0, 42
/* 014C94 70014094 8FB800EC */ lw $t8, 0xec($sp)
/* 014C98 70014098 144E0011 */ bne $v0, $t6, .L700140E0
/* 014C9C 7001409C 3C048003 */ lui $a0, %hi(aHll)
/* 014CA0 700140A0 270F0003 */ addiu $t7, $t8, 3
/* 014CA4 700140A4 2401FFFC */ li $at, -4
/* 014CA8 700140A8 01E1C824 */ and $t9, $t7, $at
/* 014CAC 700140AC 272E0004 */ addiu $t6, $t9, 4
/* 014CB0 700140B0 AFAE00EC */ sw $t6, 0xec($sp)
/* 014CB4 700140B4 8F380000 */ lw $t8, ($t9)
/* 014CB8 700140B8 26520001 */ addiu $s2, $s2, 1
/* 014CBC 700140BC 07010006 */ bgez $t8, .L700140D8
/* 014CC0 700140C0 AFB800D0 */ sw $t8, 0xd0($sp)
/* 014CC4 700140C4 8FAE00D8 */ lw $t6, 0xd8($sp)
/* 014CC8 700140C8 00187823 */ negu $t7, $t8
/* 014CCC 700140CC AFAF00D0 */ sw $t7, 0xd0($sp)
/* 014CD0 700140D0 35D90004 */ ori $t9, $t6, 4
/* 014CD4 700140D4 AFB900D8 */ sw $t9, 0xd8($sp)
.L700140D8:
/* 014CD8 700140D8 10000018 */ b .L7001413C
/* 014CDC 700140DC 92450000 */ lbu $a1, ($s2)
.L700140E0:
/* 014CE0 700140E0 AFA000D0 */ sw $zero, 0xd0($sp)
/* 014CE4 700140E4 92450000 */ lbu $a1, ($s2)
/* 014CE8 700140E8 28A10030 */ slti $at, $a1, 0x30
/* 014CEC 700140EC 14200013 */ bnez $at, .L7001413C
/* 014CF0 700140F0 28A1003A */ slti $at, $a1, 0x3a
/* 014CF4 700140F4 50200012 */ beql $at, $zero, .L70014140
/* 014CF8 700140F8 2401002E */ li $at, 46
/* 014CFC 700140FC 8FB800D0 */ lw $t8, 0xd0($sp)
.L70014100:
/* 014D00 70014100 2B0103E7 */ slti $at, $t8, 0x3e7
/* 014D04 70014104 50200007 */ beql $at, $zero, .L70014124
/* 014D08 70014108 92450001 */ lbu $a1, 1($s2)
/* 014D0C 7001410C 031E0019 */ multu $t8, $fp
/* 014D10 70014110 00007812 */ mflo $t7
/* 014D14 70014114 00AF7021 */ addu $t6, $a1, $t7
/* 014D18 70014118 25D9FFD0 */ addiu $t9, $t6, -0x30
/* 014D1C 7001411C AFB900D0 */ sw $t9, 0xd0($sp)
/* 014D20 70014120 92450001 */ lbu $a1, 1($s2)
.L70014124:
/* 014D24 70014124 26520001 */ addiu $s2, $s2, 1
/* 014D28 70014128 28A10030 */ slti $at, $a1, 0x30
/* 014D2C 7001412C 14200003 */ bnez $at, .L7001413C
/* 014D30 70014130 28A1003A */ slti $at, $a1, 0x3a
/* 014D34 70014134 5420FFF2 */ bnezl $at, .L70014100
/* 014D38 70014138 8FB800D0 */ lw $t8, 0xd0($sp)
.L7001413C:
/* 014D3C 7001413C 2401002E */ li $at, 46
.L70014140:
/* 014D40 70014140 10A10004 */ beq $a1, $at, .L70014154
/* 014D44 70014144 2418FFFF */ li $t8, -1
/* 014D48 70014148 AFB800CC */ sw $t8, 0xcc($sp)
/* 014D4C 7001414C 10000026 */ b .L700141E8
/* 014D50 70014150 92450000 */ lbu $a1, ($s2)
.L70014154:
/* 014D54 70014154 924F0001 */ lbu $t7, 1($s2)
/* 014D58 70014158 8FAE00EC */ lw $t6, 0xec($sp)
/* 014D5C 7001415C 26520001 */ addiu $s2, $s2, 1
/* 014D60 70014160 144F000A */ bne $v0, $t7, .L7001418C
/* 014D64 70014164 25D90003 */ addiu $t9, $t6, 3
/* 014D68 70014168 2401FFFC */ li $at, -4
/* 014D6C 7001416C 0321C024 */ and $t8, $t9, $at
/* 014D70 70014170 270F0004 */ addiu $t7, $t8, 4
/* 014D74 70014174 AFAF00EC */ sw $t7, 0xec($sp)
/* 014D78 70014178 8F0E0000 */ lw $t6, ($t8)
/* 014D7C 7001417C 26520001 */ addiu $s2, $s2, 1
/* 014D80 70014180 AFAE00CC */ sw $t6, 0xcc($sp)
/* 014D84 70014184 10000018 */ b .L700141E8
/* 014D88 70014188 92450000 */ lbu $a1, ($s2)
.L7001418C:
/* 014D8C 7001418C AFA000CC */ sw $zero, 0xcc($sp)
/* 014D90 70014190 92450000 */ lbu $a1, ($s2)
/* 014D94 70014194 28A10030 */ slti $at, $a1, 0x30
/* 014D98 70014198 14200013 */ bnez $at, .L700141E8
/* 014D9C 7001419C 28A1003A */ slti $at, $a1, 0x3a
/* 014DA0 700141A0 10200011 */ beqz $at, .L700141E8
/* 014DA4 700141A4 00000000 */ nop
/* 014DA8 700141A8 8FB900CC */ lw $t9, 0xcc($sp)
.L700141AC:
/* 014DAC 700141AC 2B2103E7 */ slti $at, $t9, 0x3e7
/* 014DB0 700141B0 50200007 */ beql $at, $zero, .L700141D0
/* 014DB4 700141B4 92450001 */ lbu $a1, 1($s2)
/* 014DB8 700141B8 033E0019 */ multu $t9, $fp
/* 014DBC 700141BC 00007812 */ mflo $t7
/* 014DC0 700141C0 00AFC021 */ addu $t8, $a1, $t7
/* 014DC4 700141C4 270EFFD0 */ addiu $t6, $t8, -0x30
/* 014DC8 700141C8 AFAE00CC */ sw $t6, 0xcc($sp)
/* 014DCC 700141CC 92450001 */ lbu $a1, 1($s2)
.L700141D0:
/* 014DD0 700141D0 26520001 */ addiu $s2, $s2, 1
/* 014DD4 700141D4 28A10030 */ slti $at, $a1, 0x30
/* 014DD8 700141D8 14200003 */ bnez $at, .L700141E8
/* 014DDC 700141DC 28A1003A */ slti $at, $a1, 0x3a
/* 014DE0 700141E0 5420FFF2 */ bnezl $at, .L700141AC
/* 014DE4 700141E4 8FB900CC */ lw $t9, 0xcc($sp)
.L700141E8:
/* 014DE8 700141E8 0C004E29 */ jal strchr
/* 014DEC 700141EC 248496F0 */ addiu $a0, %lo(aHll) # addiu $a0, $a0, -0x6910
/* 014DF0 700141F0 10400005 */ beqz $v0, .L70014208
/* 014DF4 700141F4 27B000A8 */ addiu $s0, $sp, 0xa8
/* 014DF8 700141F8 92590000 */ lbu $t9, ($s2)
/* 014DFC 700141FC 26520001 */ addiu $s2, $s2, 1
/* 014E00 70014200 10000002 */ b .L7001420C
/* 014E04 70014204 A3B900DC */ sb $t9, 0xdc($sp)
.L70014208:
/* 014E08 70014208 A3A000DC */ sb $zero, 0xdc($sp)
.L7001420C:
/* 014E0C 7001420C 93AF00DC */ lbu $t7, 0xdc($sp)
/* 014E10 70014210 2402006C */ li $v0, 108
/* 014E14 70014214 27A600EC */ addiu $a2, $sp, 0xec
/* 014E18 70014218 144F0007 */ bne $v0, $t7, .L70014238
/* 014E1C 7001421C 27A7007C */ addiu $a3, $sp, 0x7c
/* 014E20 70014220 92580000 */ lbu $t8, ($s2)
/* 014E24 70014224 240E004C */ li $t6, 76
/* 014E28 70014228 14580003 */ bne $v0, $t8, .L70014238
/* 014E2C 7001422C 00000000 */ nop
/* 014E30 70014230 A3AE00DC */ sb $t6, 0xdc($sp)
/* 014E34 70014234 26520001 */ addiu $s2, $s2, 1
.L70014238:
/* 014E38 70014238 0C004E3C */ jal _Putfld
/* 014E3C 7001423C 92450000 */ lbu $a1, ($s2)
/* 014E40 70014240 8FB900D0 */ lw $t9, 0xd0($sp)
/* 014E44 70014244 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 014E48 70014248 8FAE00B8 */ lw $t6, 0xb8($sp)
/* 014E4C 7001424C 032FC023 */ subu $t8, $t9, $t7
/* 014E50 70014250 8FAF00BC */ lw $t7, 0xbc($sp)
/* 014E54 70014254 030EC823 */ subu $t9, $t8, $t6
/* 014E58 70014258 8FAE00C0 */ lw $t6, 0xc0($sp)
/* 014E5C 7001425C 032FC023 */ subu $t8, $t9, $t7
/* 014E60 70014260 8FAF00C4 */ lw $t7, 0xc4($sp)
/* 014E64 70014264 030EC823 */ subu $t9, $t8, $t6
/* 014E68 70014268 8FAE00C8 */ lw $t6, 0xc8($sp)
/* 014E6C 7001426C 032FC023 */ subu $t8, $t9, $t7
/* 014E70 70014270 8FAF00D8 */ lw $t7, 0xd8($sp)
/* 014E74 70014274 030EC823 */ subu $t9, $t8, $t6
/* 014E78 70014278 AFB900D0 */ sw $t9, 0xd0($sp)
/* 014E7C 7001427C 31F80004 */ andi $t8, $t7, 4
/* 014E80 70014280 1700001A */ bnez $t8, .L700142EC
/* 014E84 70014284 0019702A */ slt $t6, $zero, $t9
/* 014E88 70014288 51C00019 */ beql $t6, $zero, .L700142F0
/* 014E8C 7001428C 8FB900B4 */ lw $t9, 0xb4($sp)
/* 014E90 70014290 11C00016 */ beqz $t6, .L700142EC
/* 014E94 70014294 03208825 */ move $s1, $t9
/* 014E98 70014298 2E210021 */ sltiu $at, $s1, 0x21
.L7001429C:
/* 014E9C 7001429C 14200003 */ bnez $at, .L700142AC
/* 014EA0 700142A0 02208025 */ move $s0, $s1
/* 014EA4 700142A4 10000001 */ b .L700142AC
/* 014EA8 700142A8 24100020 */ li $s0, 32
.L700142AC:
/* 014EAC 700142AC 1A00000C */ blez $s0, .L700142E0
/* 014EB0 700142B0 02602025 */ move $a0, $s3
/* 014EB4 700142B4 02E02825 */ move $a1, $s7
/* 014EB8 700142B8 0280F809 */ jalr $s4
/* 014EBC 700142BC 02003025 */ move $a2, $s0
/* 014EC0 700142C0 10400005 */ beqz $v0, .L700142D8
/* 014EC4 700142C4 00409825 */ move $s3, $v0
/* 014EC8 700142C8 8FAF00D4 */ lw $t7, 0xd4($sp)
/* 014ECC 700142CC 01F0C021 */ addu $t8, $t7, $s0
/* 014ED0 700142D0 10000003 */ b .L700142E0
/* 014ED4 700142D4 AFB800D4 */ sw $t8, 0xd4($sp)
.L700142D8:
/* 014ED8 700142D8 100000A6 */ b .L70014574
/* 014EDC 700142DC 8FA200D4 */ lw $v0, 0xd4($sp)
.L700142E0:
/* 014EE0 700142E0 02308823 */ subu $s1, $s1, $s0
/* 014EE4 700142E4 5E20FFED */ bgtzl $s1, .L7001429C
/* 014EE8 700142E8 2E210021 */ sltiu $at, $s1, 0x21
.L700142EC:
/* 014EEC 700142EC 8FB900B4 */ lw $t9, 0xb4($sp)
.L700142F0:
/* 014EF0 700142F0 02602025 */ move $a0, $s3
/* 014EF4 700142F4 27A5007C */ addiu $a1, $sp, 0x7c
/* 014EF8 700142F8 5B20000D */ blezl $t9, .L70014330
/* 014EFC 700142FC 8FB900B8 */ lw $t9, 0xb8($sp)
/* 014F00 70014300 0280F809 */ jalr $s4
/* 014F04 70014304 03203025 */ move $a2, $t9
/* 014F08 70014308 10400006 */ beqz $v0, .L70014324
/* 014F0C 7001430C 00409825 */ move $s3, $v0
/* 014F10 70014310 8FAE00D4 */ lw $t6, 0xd4($sp)
/* 014F14 70014314 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 014F18 70014318 01CFC021 */ addu $t8, $t6, $t7
/* 014F1C 7001431C 10000003 */ b .L7001432C
/* 014F20 70014320 AFB800D4 */ sw $t8, 0xd4($sp)
.L70014324:
/* 014F24 70014324 10000093 */ b .L70014574
/* 014F28 70014328 8FA200D4 */ lw $v0, 0xd4($sp)
.L7001432C:
/* 014F2C 7001432C 8FB900B8 */ lw $t9, 0xb8($sp)
.L70014330:
/* 014F30 70014330 0019702A */ slt $t6, $zero, $t9
/* 014F34 70014334 51C00019 */ beql $t6, $zero, .L7001439C
/* 014F38 70014338 8FB900BC */ lw $t9, 0xbc($sp)
/* 014F3C 7001433C 11C00016 */ beqz $t6, .L70014398
/* 014F40 70014340 03208825 */ move $s1, $t9
/* 014F44 70014344 2E210021 */ sltiu $at, $s1, 0x21
.L70014348:
/* 014F48 70014348 14200003 */ bnez $at, .L70014358
/* 014F4C 7001434C 02208025 */ move $s0, $s1
/* 014F50 70014350 10000001 */ b .L70014358
/* 014F54 70014354 24100020 */ li $s0, 32
.L70014358:
/* 014F58 70014358 1A00000C */ blez $s0, .L7001438C
/* 014F5C 7001435C 02602025 */ move $a0, $s3
/* 014F60 70014360 02A02825 */ move $a1, $s5
/* 014F64 70014364 0280F809 */ jalr $s4
/* 014F68 70014368 02003025 */ move $a2, $s0
/* 014F6C 7001436C 10400005 */ beqz $v0, .L70014384
/* 014F70 70014370 00409825 */ move $s3, $v0
/* 014F74 70014374 8FAF00D4 */ lw $t7, 0xd4($sp)
/* 014F78 70014378 01F0C021 */ addu $t8, $t7, $s0
/* 014F7C 7001437C 10000003 */ b .L7001438C
/* 014F80 70014380 AFB800D4 */ sw $t8, 0xd4($sp)
.L70014384:
/* 014F84 70014384 1000007B */ b .L70014574
/* 014F88 70014388 8FA200D4 */ lw $v0, 0xd4($sp)
.L7001438C:
/* 014F8C 7001438C 02308823 */ subu $s1, $s1, $s0
/* 014F90 70014390 5E20FFED */ bgtzl $s1, .L70014348
/* 014F94 70014394 2E210021 */ sltiu $at, $s1, 0x21
.L70014398:
/* 014F98 70014398 8FB900BC */ lw $t9, 0xbc($sp)
.L7001439C:
/* 014F9C 7001439C 02602025 */ move $a0, $s3
/* 014FA0 700143A0 8FA500B0 */ lw $a1, 0xb0($sp)
/* 014FA4 700143A4 5B20000D */ blezl $t9, .L700143DC
/* 014FA8 700143A8 8FB900C0 */ lw $t9, 0xc0($sp)
/* 014FAC 700143AC 0280F809 */ jalr $s4
/* 014FB0 700143B0 03203025 */ move $a2, $t9
/* 014FB4 700143B4 10400006 */ beqz $v0, .L700143D0
/* 014FB8 700143B8 00409825 */ move $s3, $v0
/* 014FBC 700143BC 8FAE00D4 */ lw $t6, 0xd4($sp)
/* 014FC0 700143C0 8FAF00BC */ lw $t7, 0xbc($sp)
/* 014FC4 700143C4 01CFC021 */ addu $t8, $t6, $t7
/* 014FC8 700143C8 10000003 */ b .L700143D8
/* 014FCC 700143CC AFB800D4 */ sw $t8, 0xd4($sp)
.L700143D0:
/* 014FD0 700143D0 10000068 */ b .L70014574
/* 014FD4 700143D4 8FA200D4 */ lw $v0, 0xd4($sp)
.L700143D8:
/* 014FD8 700143D8 8FB900C0 */ lw $t9, 0xc0($sp)
.L700143DC:
/* 014FDC 700143DC 0019702A */ slt $t6, $zero, $t9
/* 014FE0 700143E0 51C00019 */ beql $t6, $zero, .L70014448
/* 014FE4 700143E4 8FB900C4 */ lw $t9, 0xc4($sp)
/* 014FE8 700143E8 11C00016 */ beqz $t6, .L70014444
/* 014FEC 700143EC 03208825 */ move $s1, $t9
/* 014FF0 700143F0 2E210021 */ sltiu $at, $s1, 0x21
.L700143F4:
/* 014FF4 700143F4 14200003 */ bnez $at, .L70014404
/* 014FF8 700143F8 02208025 */ move $s0, $s1
/* 014FFC 700143FC 10000001 */ b .L70014404
/* 015000 70014400 24100020 */ li $s0, 32
.L70014404:
/* 015004 70014404 1A00000C */ blez $s0, .L70014438
/* 015008 70014408 02602025 */ move $a0, $s3
/* 01500C 7001440C 02A02825 */ move $a1, $s5
/* 015010 70014410 0280F809 */ jalr $s4
/* 015014 70014414 02003025 */ move $a2, $s0
/* 015018 70014418 10400005 */ beqz $v0, .L70014430
/* 01501C 7001441C 00409825 */ move $s3, $v0
/* 015020 70014420 8FAF00D4 */ lw $t7, 0xd4($sp)
/* 015024 70014424 01F0C021 */ addu $t8, $t7, $s0
/* 015028 70014428 10000003 */ b .L70014438
/* 01502C 7001442C AFB800D4 */ sw $t8, 0xd4($sp)
.L70014430:
/* 015030 70014430 10000050 */ b .L70014574
/* 015034 70014434 8FA200D4 */ lw $v0, 0xd4($sp)
.L70014438:
/* 015038 70014438 02308823 */ subu $s1, $s1, $s0
/* 01503C 7001443C 5E20FFED */ bgtzl $s1, .L700143F4
/* 015040 70014440 2E210021 */ sltiu $at, $s1, 0x21
.L70014444:
/* 015044 70014444 8FB900C4 */ lw $t9, 0xc4($sp)
.L70014448:
/* 015048 70014448 02602025 */ move $a0, $s3
/* 01504C 7001444C 8FAE00B0 */ lw $t6, 0xb0($sp)
/* 015050 70014450 1B20000D */ blez $t9, .L70014488
/* 015054 70014454 8FAF00BC */ lw $t7, 0xbc($sp)
/* 015058 70014458 01CF2821 */ addu $a1, $t6, $t7
/* 01505C 7001445C 0280F809 */ jalr $s4
/* 015060 70014460 03203025 */ move $a2, $t9
/* 015064 70014464 10400006 */ beqz $v0, .L70014480
/* 015068 70014468 00409825 */ move $s3, $v0
/* 01506C 7001446C 8FB800D4 */ lw $t8, 0xd4($sp)
/* 015070 70014470 8FAE00C4 */ lw $t6, 0xc4($sp)
/* 015074 70014474 030E7821 */ addu $t7, $t8, $t6
/* 015078 70014478 10000003 */ b .L70014488
/* 01507C 7001447C AFAF00D4 */ sw $t7, 0xd4($sp)
.L70014480:
/* 015080 70014480 1000003C */ b .L70014574
/* 015084 70014484 8FA200D4 */ lw $v0, 0xd4($sp)
.L70014488:
/* 015088 70014488 8FB900C8 */ lw $t9, 0xc8($sp)
/* 01508C 7001448C 0019C02A */ slt $t8, $zero, $t9
/* 015090 70014490 53000019 */ beql $t8, $zero, .L700144F8
/* 015094 70014494 8FB900D8 */ lw $t9, 0xd8($sp)
/* 015098 70014498 13000016 */ beqz $t8, .L700144F4
/* 01509C 7001449C 03208825 */ move $s1, $t9
/* 0150A0 700144A0 2E210021 */ sltiu $at, $s1, 0x21
.L700144A4:
/* 0150A4 700144A4 14200003 */ bnez $at, .L700144B4
/* 0150A8 700144A8 02208025 */ move $s0, $s1
/* 0150AC 700144AC 10000001 */ b .L700144B4
/* 0150B0 700144B0 24100020 */ li $s0, 32
.L700144B4:
/* 0150B4 700144B4 1A00000C */ blez $s0, .L700144E8
/* 0150B8 700144B8 02602025 */ move $a0, $s3
/* 0150BC 700144BC 02A02825 */ move $a1, $s5
/* 0150C0 700144C0 0280F809 */ jalr $s4
/* 0150C4 700144C4 02003025 */ move $a2, $s0
/* 0150C8 700144C8 10400005 */ beqz $v0, .L700144E0
/* 0150CC 700144CC 00409825 */ move $s3, $v0
/* 0150D0 700144D0 8FAE00D4 */ lw $t6, 0xd4($sp)
/* 0150D4 700144D4 01D07821 */ addu $t7, $t6, $s0
/* 0150D8 700144D8 10000003 */ b .L700144E8
/* 0150DC 700144DC AFAF00D4 */ sw $t7, 0xd4($sp)
.L700144E0:
/* 0150E0 700144E0 10000024 */ b .L70014574
/* 0150E4 700144E4 8FA200D4 */ lw $v0, 0xd4($sp)
.L700144E8:
/* 0150E8 700144E8 02308823 */ subu $s1, $s1, $s0
/* 0150EC 700144EC 5E20FFED */ bgtzl $s1, .L700144A4
/* 0150F0 700144F0 2E210021 */ sltiu $at, $s1, 0x21
.L700144F4:
/* 0150F4 700144F4 8FB900D8 */ lw $t9, 0xd8($sp)
.L700144F8:
/* 0150F8 700144F8 8FAE00D0 */ lw $t6, 0xd0($sp)
/* 0150FC 700144FC 33380004 */ andi $t8, $t9, 4
/* 015100 70014500 1300001A */ beqz $t8, .L7001456C
/* 015104 70014504 000E782A */ slt $t7, $zero, $t6
/* 015108 70014508 11E00018 */ beqz $t7, .L7001456C
/* 01510C 7001450C 00000000 */ nop
/* 015110 70014510 11E00016 */ beqz $t7, .L7001456C
/* 015114 70014514 01C08825 */ move $s1, $t6
/* 015118 70014518 2E210021 */ sltiu $at, $s1, 0x21
.L7001451C:
/* 01511C 7001451C 14200003 */ bnez $at, .L7001452C
/* 015120 70014520 02208025 */ move $s0, $s1
/* 015124 70014524 10000001 */ b .L7001452C
/* 015128 70014528 24100020 */ li $s0, 32
.L7001452C:
/* 01512C 7001452C 1A00000C */ blez $s0, .L70014560
/* 015130 70014530 02602025 */ move $a0, $s3
/* 015134 70014534 02E02825 */ move $a1, $s7
/* 015138 70014538 0280F809 */ jalr $s4
/* 01513C 7001453C 02003025 */ move $a2, $s0
/* 015140 70014540 10400005 */ beqz $v0, .L70014558
/* 015144 70014544 00409825 */ move $s3, $v0
/* 015148 70014548 8FB900D4 */ lw $t9, 0xd4($sp)
/* 01514C 7001454C 0330C021 */ addu $t8, $t9, $s0
/* 015150 70014550 10000003 */ b .L70014560
/* 015154 70014554 AFB800D4 */ sw $t8, 0xd4($sp)
.L70014558:
/* 015158 70014558 10000006 */ b .L70014574
/* 01515C 7001455C 8FA200D4 */ lw $v0, 0xd4($sp)
.L70014560:
/* 015160 70014560 02308823 */ subu $s1, $s1, $s0
/* 015164 70014564 5E20FFED */ bgtzl $s1, .L7001451C
/* 015168 70014568 2E210021 */ sltiu $at, $s1, 0x21
.L7001456C:
/* 01516C 7001456C 1000FE94 */ b .L70013FC0
/* 015170 70014570 26470001 */ addiu $a3, $s2, 1
.L70014574:
/* 015174 70014574 8FBF003C */ lw $ra, 0x3c($sp)
/* 015178 70014578 8FB00018 */ lw $s0, 0x18($sp)
/* 01517C 7001457C 8FB1001C */ lw $s1, 0x1c($sp)
/* 015180 70014580 8FB20020 */ lw $s2, 0x20($sp)
/* 015184 70014584 8FB30024 */ lw $s3, 0x24($sp)
/* 015188 70014588 8FB40028 */ lw $s4, 0x28($sp)
/* 01518C 7001458C 8FB5002C */ lw $s5, 0x2c($sp)
/* 015190 70014590 8FB60030 */ lw $s6, 0x30($sp)
/* 015194 70014594 8FB70034 */ lw $s7, 0x34($sp)
/* 015198 70014598 8FBE0038 */ lw $fp, 0x38($sp)
/* 01519C 7001459C 03E00008 */ jr $ra
/* 0151A0 700145A0 27BD00E0 */ addiu $sp, $sp, 0xe0
.section .data
glabel spaces
.asciiz " "
.align 2
glabel zeros
.asciiz "00000000000000000000000000000000"
.align 2
.section .rodata
glabel aHll
.ascii "hlL"<0>
glabel printf_symbols
.ascii " +-#0"<0>
.align 2
glabel byteshiftleft_lookup
.word 1, 2, 4, 8, 0x10, 0
glabel jpt_80029714
.word .L70013C58, .L70013F38, .L70013C58, .L70013F38
.word .L70013F38, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013F38, .L70013F38, .L70013B08
.word .L70013F38, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013F38, .L70013960, .L70013998
.word .L70013C58, .L70013C58, .L70013C58, .L70013F38
.word .L70013998, .L70013F38, .L70013F38, .L70013F38
.word .L70013F38, .L70013DBC, .L70013B08, .L70013E8C
.word .L70013F38, .L70013F38, .L70013ED4, .L70013F38
.word .L70013B08, .L70013F38, .L70013F38, .L70013B08
.align 4
+1359
View File
File diff suppressed because it is too large Load Diff
+41
View File
@@ -0,0 +1,41 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel __osDequeueThread
/* 011690 70010A90 00803025 */ move $a2, $a0
/* 011694 70010A94 8CC70000 */ lw $a3, ($a2)
/* 011698 70010A98 27BDFFF8 */ addiu $sp, $sp, -8
/* 01169C 70010A9C 10E0000A */ beqz $a3, .L70010AC8
/* 0116A0 70010AA0 00000000 */ nop
.L70010AA4:
/* 0116A4 70010AA4 14E50004 */ bne $a3, $a1, .L70010AB8
/* 0116A8 70010AA8 00000000 */ nop
/* 0116AC 70010AAC 8CAE0000 */ lw $t6, ($a1)
/* 0116B0 70010AB0 10000005 */ b .L70010AC8
/* 0116B4 70010AB4 ACCE0000 */ sw $t6, ($a2)
.L70010AB8:
/* 0116B8 70010AB8 00E03025 */ move $a2, $a3
/* 0116BC 70010ABC 8CC70000 */ lw $a3, ($a2)
/* 0116C0 70010AC0 14E0FFF8 */ bnez $a3, .L70010AA4
/* 0116C4 70010AC4 00000000 */ nop
.L70010AC8:
/* 0116C8 70010AC8 03E00008 */ jr $ra
/* 0116CC 70010ACC 27BD0008 */ addiu $sp, $sp, 8
.section .data
glabel __osThreadTail
.word 0, 0xFFFFFFFF
glabel __osRunQueue
.word __osThreadTail
glabel __osActiveQueue
.word __osThreadTail
glabel __osRunningThread
.word 0
glabel __osFaultedThread
.word 0
+14
View File
@@ -0,0 +1,14 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel __osGetCurrFaultedThread
/* 010D80 70010180 3C028002 */ lui $v0, %hi(__osFaultedThread)
/* 010D84 70010184 03E00008 */ jr $ra
/* 010D88 70010188 8C427734 */ lw $v0, %lo(__osFaultedThread)($v0)
+14
View File
@@ -0,0 +1,14 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel __osGetFpcCsr
/* 00E010 7000D410 4442F800 */ cfc1 $v0, $31
/* 00E014 7000D414 03E00008 */ jr $ra
/* 00E018 7000D418 00000000 */ nop
+21
View File
@@ -0,0 +1,21 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel __osGetTLBHi
/* 00F480 7000E880 40840000 */ mtc0 $a0, $0
/* 00F484 7000E884 00000000 */ nop
/* 00F488 7000E888 42000001 */ tlbr
/* 00F48C 7000E88C 00000000 */ nop
/* 00F490 7000E890 00000000 */ nop
/* 00F494 7000E894 00000000 */ nop
/* 00F498 7000E898 40025000 */ mfc0 $v0, $10
/* 00F49C 7000E89C 03E00008 */ jr $ra
/* 00F4A0 7000E8A0 00000000 */ nop
+14
View File
@@ -0,0 +1,14 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel __osSetFpcCsr
/* 00E020 7000D420 4442F800 */ cfc1 $v0, $31
/* 00E024 7000D424 44C4F800 */ ctc1 $a0, $31
/* 00E028 7000D428 03E00008 */ jr $ra
/* 00E02C 7000D42C 00000000 */ nop
+229
View File
@@ -0,0 +1,229 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel _bcopy
/* 010570 7000F970 10C0001A */ beqz $a2, .L7000F9DC
/* 010574 7000F974 00A03825 */ move $a3, $a1
/* 010578 7000F978 10850018 */ beq $a0, $a1, .L7000F9DC
/* 01057C 7000F97C 00A4082A */ slt $at, $a1, $a0
/* 010580 7000F980 54200008 */ bnezl $at, .L7000F9A4
/* 010584 7000F984 28C10010 */ slti $at, $a2, 0x10
/* 010588 7000F988 00861020 */ add $v0, $a0, $a2
/* 01058C 7000F98C 00A2082A */ slt $at, $a1, $v0
/* 010590 7000F990 50200004 */ beql $at, $zero, .L7000F9A4
/* 010594 7000F994 28C10010 */ slti $at, $a2, 0x10
/* 010598 7000F998 1000005B */ b .L7000FB08
/* 01059C 7000F99C 28C10010 */ slti $at, $a2, 0x10
/* 0105A0 7000F9A0 28C10010 */ slti $at, $a2, 0x10
.L7000F9A4:
/* 0105A4 7000F9A4 14200005 */ bnez $at, .L7000F9BC
/* 0105A8 7000F9A8 00000000 */ nop
/* 0105AC 7000F9AC 30820003 */ andi $v0, $a0, 3
/* 0105B0 7000F9B0 30A30003 */ andi $v1, $a1, 3
/* 0105B4 7000F9B4 1043000B */ beq $v0, $v1, .L7000F9E4
/* 0105B8 7000F9B8 00000000 */ nop
.L7000F9BC:
/* 0105BC 7000F9BC 10C00007 */ beqz $a2, .L7000F9DC
/* 0105C0 7000F9C0 00000000 */ nop
/* 0105C4 7000F9C4 00861821 */ addu $v1, $a0, $a2
.L7000F9C8:
/* 0105C8 7000F9C8 80820000 */ lb $v0, ($a0)
/* 0105CC 7000F9CC 24840001 */ addiu $a0, $a0, 1
/* 0105D0 7000F9D0 24A50001 */ addiu $a1, $a1, 1
/* 0105D4 7000F9D4 1483FFFC */ bne $a0, $v1, .L7000F9C8
/* 0105D8 7000F9D8 A0A2FFFF */ sb $v0, -1($a1)
.L7000F9DC:
/* 0105DC 7000F9DC 03E00008 */ jr $ra
/* 0105E0 7000F9E0 00E01025 */ move $v0, $a3
.L7000F9E4:
/* 0105E4 7000F9E4 10400018 */ beqz $v0, .L7000FA48
/* 0105E8 7000F9E8 24010001 */ li $at, 1
/* 0105EC 7000F9EC 1041000F */ beq $v0, $at, .L7000FA2C
/* 0105F0 7000F9F0 24010002 */ li $at, 2
/* 0105F4 7000F9F4 50410008 */ beql $v0, $at, .L7000FA18
/* 0105F8 7000F9F8 84820000 */ lh $v0, ($a0)
/* 0105FC 7000F9FC 80820000 */ lb $v0, ($a0)
/* 010600 7000FA00 24840001 */ addiu $a0, $a0, 1
/* 010604 7000FA04 24A50001 */ addiu $a1, $a1, 1
/* 010608 7000FA08 24C6FFFF */ addiu $a2, $a2, -1
/* 01060C 7000FA0C 1000000E */ b .L7000FA48
/* 010610 7000FA10 A0A2FFFF */ sb $v0, -1($a1)
/* 010614 7000FA14 84820000 */ lh $v0, ($a0)
.L7000FA18:
/* 010618 7000FA18 24840002 */ addiu $a0, $a0, 2
/* 01061C 7000FA1C 24A50002 */ addiu $a1, $a1, 2
/* 010620 7000FA20 24C6FFFE */ addiu $a2, $a2, -2
/* 010624 7000FA24 10000008 */ b .L7000FA48
/* 010628 7000FA28 A4A2FFFE */ sh $v0, -2($a1)
.L7000FA2C:
/* 01062C 7000FA2C 80820000 */ lb $v0, ($a0)
/* 010630 7000FA30 84830001 */ lh $v1, 1($a0)
/* 010634 7000FA34 24840003 */ addiu $a0, $a0, 3
/* 010638 7000FA38 24A50003 */ addiu $a1, $a1, 3
/* 01063C 7000FA3C 24C6FFFD */ addiu $a2, $a2, -3
/* 010640 7000FA40 A0A2FFFD */ sb $v0, -3($a1)
/* 010644 7000FA44 A4A3FFFE */ sh $v1, -2($a1)
.L7000FA48:
/* 010648 7000FA48 28C10020 */ slti $at, $a2, 0x20
/* 01064C 7000FA4C 54200016 */ bnezl $at, .L7000FAA8
/* 010650 7000FA50 28C10010 */ slti $at, $a2, 0x10
/* 010654 7000FA54 8C820000 */ lw $v0, ($a0)
/* 010658 7000FA58 8C830004 */ lw $v1, 4($a0)
/* 01065C 7000FA5C 8C880008 */ lw $t0, 8($a0)
/* 010660 7000FA60 8C89000C */ lw $t1, 0xc($a0)
/* 010664 7000FA64 8C8A0010 */ lw $t2, 0x10($a0)
/* 010668 7000FA68 8C8B0014 */ lw $t3, 0x14($a0)
/* 01066C 7000FA6C 8C8C0018 */ lw $t4, 0x18($a0)
/* 010670 7000FA70 8C8D001C */ lw $t5, 0x1c($a0)
/* 010674 7000FA74 24840020 */ addiu $a0, $a0, 0x20
/* 010678 7000FA78 24A50020 */ addiu $a1, $a1, 0x20
/* 01067C 7000FA7C 24C6FFE0 */ addiu $a2, $a2, -0x20
/* 010680 7000FA80 ACA2FFE0 */ sw $v0, -0x20($a1)
/* 010684 7000FA84 ACA3FFE4 */ sw $v1, -0x1c($a1)
/* 010688 7000FA88 ACA8FFE8 */ sw $t0, -0x18($a1)
/* 01068C 7000FA8C ACA9FFEC */ sw $t1, -0x14($a1)
/* 010690 7000FA90 ACAAFFF0 */ sw $t2, -0x10($a1)
/* 010694 7000FA94 ACABFFF4 */ sw $t3, -0xc($a1)
/* 010698 7000FA98 ACACFFF8 */ sw $t4, -8($a1)
/* 01069C 7000FA9C 1000FFEA */ b .L7000FA48
/* 0106A0 7000FAA0 ACADFFFC */ sw $t5, -4($a1)
.L7000FAA4:
/* 0106A4 7000FAA4 28C10010 */ slti $at, $a2, 0x10
.L7000FAA8:
/* 0106A8 7000FAA8 5420000E */ bnezl $at, .L7000FAE4
/* 0106AC 7000FAAC 28C10004 */ slti $at, $a2, 4
/* 0106B0 7000FAB0 8C820000 */ lw $v0, ($a0)
/* 0106B4 7000FAB4 8C830004 */ lw $v1, 4($a0)
/* 0106B8 7000FAB8 8C880008 */ lw $t0, 8($a0)
/* 0106BC 7000FABC 8C89000C */ lw $t1, 0xc($a0)
/* 0106C0 7000FAC0 24840010 */ addiu $a0, $a0, 0x10
/* 0106C4 7000FAC4 24A50010 */ addiu $a1, $a1, 0x10
/* 0106C8 7000FAC8 24C6FFF0 */ addiu $a2, $a2, -0x10
/* 0106CC 7000FACC ACA2FFF0 */ sw $v0, -0x10($a1)
/* 0106D0 7000FAD0 ACA3FFF4 */ sw $v1, -0xc($a1)
/* 0106D4 7000FAD4 ACA8FFF8 */ sw $t0, -8($a1)
/* 0106D8 7000FAD8 1000FFF2 */ b .L7000FAA4
/* 0106DC 7000FADC ACA9FFFC */ sw $t1, -4($a1)
.L7000FAE0:
/* 0106E0 7000FAE0 28C10004 */ slti $at, $a2, 4
.L7000FAE4:
/* 0106E4 7000FAE4 1420FFB5 */ bnez $at, .L7000F9BC
/* 0106E8 7000FAE8 00000000 */ nop
/* 0106EC 7000FAEC 8C820000 */ lw $v0, ($a0)
/* 0106F0 7000FAF0 24840004 */ addiu $a0, $a0, 4
/* 0106F4 7000FAF4 24A50004 */ addiu $a1, $a1, 4
/* 0106F8 7000FAF8 24C6FFFC */ addiu $a2, $a2, -4
/* 0106FC 7000FAFC 1000FFF8 */ b .L7000FAE0
/* 010700 7000FB00 ACA2FFFC */ sw $v0, -4($a1)
/* 010704 7000FB04 28C10010 */ slti $at, $a2, 0x10
.L7000FB08:
/* 010708 7000FB08 00862020 */ add $a0, $a0, $a2
/* 01070C 7000FB0C 14200005 */ bnez $at, .L7000FB24
/* 010710 7000FB10 00A62820 */ add $a1, $a1, $a2
/* 010714 7000FB14 30820003 */ andi $v0, $a0, 3
/* 010718 7000FB18 30A30003 */ andi $v1, $a1, 3
/* 01071C 7000FB1C 1043000D */ beq $v0, $v1, .L7000FB54
/* 010720 7000FB20 00000000 */ nop
.L7000FB24:
/* 010724 7000FB24 10C0FFAD */ beqz $a2, .L7000F9DC
/* 010728 7000FB28 00000000 */ nop
/* 01072C 7000FB2C 2484FFFF */ addiu $a0, $a0, -1
/* 010730 7000FB30 24A5FFFF */ addiu $a1, $a1, -1
/* 010734 7000FB34 00861823 */ subu $v1, $a0, $a2
.L7000FB38:
/* 010738 7000FB38 80820000 */ lb $v0, ($a0)
/* 01073C 7000FB3C 2484FFFF */ addiu $a0, $a0, -1
/* 010740 7000FB40 24A5FFFF */ addiu $a1, $a1, -1
/* 010744 7000FB44 1483FFFC */ bne $a0, $v1, .L7000FB38
/* 010748 7000FB48 A0A20001 */ sb $v0, 1($a1)
/* 01074C 7000FB4C 03E00008 */ jr $ra
/* 010750 7000FB50 00E01025 */ move $v0, $a3
.L7000FB54:
/* 010754 7000FB54 10400018 */ beqz $v0, .L7000FBB8
/* 010758 7000FB58 24010003 */ li $at, 3
/* 01075C 7000FB5C 1041000F */ beq $v0, $at, .L7000FB9C
/* 010760 7000FB60 24010002 */ li $at, 2
/* 010764 7000FB64 50410008 */ beql $v0, $at, .L7000FB88
/* 010768 7000FB68 8482FFFE */ lh $v0, -2($a0)
/* 01076C 7000FB6C 8082FFFF */ lb $v0, -1($a0)
/* 010770 7000FB70 2484FFFF */ addiu $a0, $a0, -1
/* 010774 7000FB74 24A5FFFF */ addiu $a1, $a1, -1
/* 010778 7000FB78 24C6FFFF */ addiu $a2, $a2, -1
/* 01077C 7000FB7C 1000000E */ b .L7000FBB8
/* 010780 7000FB80 A0A20000 */ sb $v0, ($a1)
/* 010784 7000FB84 8482FFFE */ lh $v0, -2($a0)
.L7000FB88:
/* 010788 7000FB88 2484FFFE */ addiu $a0, $a0, -2
/* 01078C 7000FB8C 24A5FFFE */ addiu $a1, $a1, -2
/* 010790 7000FB90 24C6FFFE */ addiu $a2, $a2, -2
/* 010794 7000FB94 10000008 */ b .L7000FBB8
/* 010798 7000FB98 A4A20000 */ sh $v0, ($a1)
.L7000FB9C:
/* 01079C 7000FB9C 8082FFFF */ lb $v0, -1($a0)
/* 0107A0 7000FBA0 8483FFFD */ lh $v1, -3($a0)
/* 0107A4 7000FBA4 2484FFFD */ addiu $a0, $a0, -3
/* 0107A8 7000FBA8 24A5FFFD */ addiu $a1, $a1, -3
/* 0107AC 7000FBAC 24C6FFFD */ addiu $a2, $a2, -3
/* 0107B0 7000FBB0 A0A20002 */ sb $v0, 2($a1)
/* 0107B4 7000FBB4 A4A30000 */ sh $v1, ($a1)
.L7000FBB8:
/* 0107B8 7000FBB8 28C10020 */ slti $at, $a2, 0x20
/* 0107BC 7000FBBC 54200016 */ bnezl $at, .L7000FC18
/* 0107C0 7000FBC0 28C10010 */ slti $at, $a2, 0x10
/* 0107C4 7000FBC4 8C82FFFC */ lw $v0, -4($a0)
/* 0107C8 7000FBC8 8C83FFF8 */ lw $v1, -8($a0)
/* 0107CC 7000FBCC 8C88FFF4 */ lw $t0, -0xc($a0)
/* 0107D0 7000FBD0 8C89FFF0 */ lw $t1, -0x10($a0)
/* 0107D4 7000FBD4 8C8AFFEC */ lw $t2, -0x14($a0)
/* 0107D8 7000FBD8 8C8BFFE8 */ lw $t3, -0x18($a0)
/* 0107DC 7000FBDC 8C8CFFE4 */ lw $t4, -0x1c($a0)
/* 0107E0 7000FBE0 8C8DFFE0 */ lw $t5, -0x20($a0)
/* 0107E4 7000FBE4 2484FFE0 */ addiu $a0, $a0, -0x20
/* 0107E8 7000FBE8 24A5FFE0 */ addiu $a1, $a1, -0x20
/* 0107EC 7000FBEC 24C6FFE0 */ addiu $a2, $a2, -0x20
/* 0107F0 7000FBF0 ACA2001C */ sw $v0, 0x1c($a1)
/* 0107F4 7000FBF4 ACA30018 */ sw $v1, 0x18($a1)
/* 0107F8 7000FBF8 ACA80014 */ sw $t0, 0x14($a1)
/* 0107FC 7000FBFC ACA90010 */ sw $t1, 0x10($a1)
/* 010800 7000FC00 ACAA000C */ sw $t2, 0xc($a1)
/* 010804 7000FC04 ACAB0008 */ sw $t3, 8($a1)
/* 010808 7000FC08 ACAC0004 */ sw $t4, 4($a1)
/* 01080C 7000FC0C 1000FFEA */ b .L7000FBB8
/* 010810 7000FC10 ACAD0000 */ sw $t5, ($a1)
.L7000FC14:
/* 010814 7000FC14 28C10010 */ slti $at, $a2, 0x10
.L7000FC18:
/* 010818 7000FC18 5420000E */ bnezl $at, .L7000FC54
/* 01081C 7000FC1C 28C10004 */ slti $at, $a2, 4
/* 010820 7000FC20 8C82FFFC */ lw $v0, -4($a0)
/* 010824 7000FC24 8C83FFF8 */ lw $v1, -8($a0)
/* 010828 7000FC28 8C88FFF4 */ lw $t0, -0xc($a0)
/* 01082C 7000FC2C 8C89FFF0 */ lw $t1, -0x10($a0)
/* 010830 7000FC30 2484FFF0 */ addiu $a0, $a0, -0x10
/* 010834 7000FC34 24A5FFF0 */ addiu $a1, $a1, -0x10
/* 010838 7000FC38 24C6FFF0 */ addiu $a2, $a2, -0x10
/* 01083C 7000FC3C ACA2000C */ sw $v0, 0xc($a1)
/* 010840 7000FC40 ACA30008 */ sw $v1, 8($a1)
/* 010844 7000FC44 ACA80004 */ sw $t0, 4($a1)
/* 010848 7000FC48 1000FFF2 */ b .L7000FC14
/* 01084C 7000FC4C ACA90000 */ sw $t1, ($a1)
.L7000FC50:
/* 010850 7000FC50 28C10004 */ slti $at, $a2, 4
.L7000FC54:
/* 010854 7000FC54 1420FFB3 */ bnez $at, .L7000FB24
/* 010858 7000FC58 00000000 */ nop
/* 01085C 7000FC5C 8C82FFFC */ lw $v0, -4($a0)
/* 010860 7000FC60 2484FFFC */ addiu $a0, $a0, -4
/* 010864 7000FC64 24A5FFFC */ addiu $a1, $a1, -4
/* 010868 7000FC68 24C6FFFC */ addiu $a2, $a2, -4
/* 01086C 7000FC6C 1000FFF8 */ b .L7000FC50
/* 010870 7000FC70 ACA20000 */ sw $v0, ($a1)
+177
View File
@@ -0,0 +1,177 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
/* 011970 70010D70 03E00008 */ jr $ra
/* 011974 70010D74 00000000 */ nop
/* 011978 70010D78 03E00008 */ jr $ra
/* 01197C 70010D7C 00000000 */ nop
glabel ultra_70010D80
/* 011980 70010D80 908E0003 */ lbu $t6, 3($a0)
/* 011984 70010D84 15C00037 */ bnez $t6, .L70010E64
/* 011988 70010D88 00000000 */ nop
/* 01198C 70010D8C 848F000E */ lh $t7, 0xe($a0)
/* 011990 70010D90 24090001 */ li $t1, 1
/* 011994 70010D94 A0890003 */ sb $t1, 3($a0)
/* 011998 70010D98 19E00032 */ blez $t7, .L70010E64
/* 01199C 70010D9C 00001025 */ move $v0, $zero
/* 0119A0 70010DA0 00801825 */ move $v1, $a0
/* 0119A4 70010DA4 240A0001 */ li $t2, 1
/* 0119A8 70010DA8 8C780010 */ lw $t8, 0x10($v1)
.L70010DAC:
/* 0119AC 70010DAC 0305C821 */ addu $t9, $t8, $a1
/* 0119B0 70010DB0 AC790010 */ sw $t9, 0x10($v1)
/* 0119B4 70010DB4 932E000E */ lbu $t6, 0xe($t9)
/* 0119B8 70010DB8 03203025 */ move $a2, $t9
/* 0119BC 70010DBC 55C00024 */ bnezl $t6, .L70010E50
/* 0119C0 70010DC0 8498000E */ lh $t8, 0xe($a0)
/* 0119C4 70010DC4 8F2F0000 */ lw $t7, ($t9)
/* 0119C8 70010DC8 A329000E */ sb $t1, 0xe($t9)
/* 0119CC 70010DCC 01E5C021 */ addu $t8, $t7, $a1
/* 0119D0 70010DD0 AF380000 */ sw $t8, ($t9)
/* 0119D4 70010DD4 8F390004 */ lw $t9, 4($t9)
/* 0119D8 70010DD8 8CCF0008 */ lw $t7, 8($a2)
/* 0119DC 70010DDC 03257021 */ addu $t6, $t9, $a1
/* 0119E0 70010DE0 01E5C021 */ addu $t8, $t7, $a1
/* 0119E4 70010DE4 ACCE0004 */ sw $t6, 4($a2)
/* 0119E8 70010DE8 ACD80008 */ sw $t8, 8($a2)
/* 0119EC 70010DEC 93190009 */ lbu $t9, 9($t8)
/* 0119F0 70010DF0 03004025 */ move $t0, $t8
/* 0119F4 70010DF4 57200016 */ bnezl $t9, .L70010E50
/* 0119F8 70010DF8 8498000E */ lh $t8, 0xe($a0)
/* 0119FC 70010DFC 8F0E0000 */ lw $t6, ($t8)
/* 011A00 70010E00 93060008 */ lbu $a2, 8($t8)
/* 011A04 70010E04 A3090009 */ sb $t1, 9($t8)
/* 011A08 70010E08 01C77821 */ addu $t7, $t6, $a3
/* 011A0C 70010E0C 14C00009 */ bnez $a2, .L70010E34
/* 011A10 70010E10 AF0F0000 */ sw $t7, ($t8)
/* 011A14 70010E14 8F180010 */ lw $t8, 0x10($t8)
/* 011A18 70010E18 8D06000C */ lw $a2, 0xc($t0)
/* 011A1C 70010E1C 0305C821 */ addu $t9, $t8, $a1
/* 011A20 70010E20 10C0000A */ beqz $a2, .L70010E4C
/* 011A24 70010E24 AD190010 */ sw $t9, 0x10($t0)
/* 011A28 70010E28 00C57021 */ addu $t6, $a2, $a1
/* 011A2C 70010E2C 10000007 */ b .L70010E4C
/* 011A30 70010E30 AD0E000C */ sw $t6, 0xc($t0)
.L70010E34:
/* 011A34 70010E34 55460006 */ bnel $t2, $a2, .L70010E50
/* 011A38 70010E38 8498000E */ lh $t8, 0xe($a0)
/* 011A3C 70010E3C 8D06000C */ lw $a2, 0xc($t0)
/* 011A40 70010E40 10C00002 */ beqz $a2, .L70010E4C
/* 011A44 70010E44 00C57821 */ addu $t7, $a2, $a1
/* 011A48 70010E48 AD0F000C */ sw $t7, 0xc($t0)
.L70010E4C:
/* 011A4C 70010E4C 8498000E */ lh $t8, 0xe($a0)
.L70010E50:
/* 011A50 70010E50 24420001 */ addiu $v0, $v0, 1
/* 011A54 70010E54 24630004 */ addiu $v1, $v1, 4
/* 011A58 70010E58 0058082A */ slt $at, $v0, $t8
/* 011A5C 70010E5C 5420FFD3 */ bnezl $at, .L70010DAC
/* 011A60 70010E60 8C780010 */ lw $t8, 0x10($v1)
.L70010E64:
/* 011A64 70010E64 03E00008 */ jr $ra
/* 011A68 70010E68 00000000 */ nop
/* 011A6C 70010E6C 03E00008 */ jr $ra
/* 011A70 70010E70 00000000 */ nop
glabel alBnkfNew
/* 011A74 70010E74 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 011A78 70010E78 AFBF002C */ sw $ra, 0x2c($sp)
/* 011A7C 70010E7C AFB40028 */ sw $s4, 0x28($sp)
/* 011A80 70010E80 AFB30024 */ sw $s3, 0x24($sp)
/* 011A84 70010E84 AFB20020 */ sw $s2, 0x20($sp)
/* 011A88 70010E88 AFB1001C */ sw $s1, 0x1c($sp)
/* 011A8C 70010E8C AFB00018 */ sw $s0, 0x18($sp)
/* 011A90 70010E90 848E0000 */ lh $t6, ($a0)
/* 011A94 70010E94 24014231 */ li $at, 16945
/* 011A98 70010E98 00808025 */ move $s0, $a0
/* 011A9C 70010E9C 15C1002E */ bne $t6, $at, .L70010F58
/* 011AA0 70010EA0 00A08825 */ move $s1, $a1
/* 011AA4 70010EA4 848F0002 */ lh $t7, 2($a0)
/* 011AA8 70010EA8 00009825 */ move $s3, $zero
/* 011AAC 70010EAC 00809025 */ move $s2, $a0
/* 011AB0 70010EB0 19E00029 */ blez $t7, .L70010F58
/* 011AB4 70010EB4 24140001 */ li $s4, 1
/* 011AB8 70010EB8 8E580004 */ lw $t8, 4($s2)
.L70010EBC:
/* 011ABC 70010EBC 0310C821 */ addu $t9, $t8, $s0
/* 011AC0 70010EC0 1320001F */ beqz $t9, .L70010F40
/* 011AC4 70010EC4 AE590004 */ sw $t9, 4($s2)
/* 011AC8 70010EC8 932E0002 */ lbu $t6, 2($t9)
/* 011ACC 70010ECC 03206825 */ move $t5, $t9
/* 011AD0 70010ED0 55C0001C */ bnezl $t6, .L70010F44
/* 011AD4 70010ED4 86180002 */ lh $t8, 2($s0)
/* 011AD8 70010ED8 8F220008 */ lw $v0, 8($t9)
/* 011ADC 70010EDC A3340002 */ sb $s4, 2($t9)
/* 011AE0 70010EE0 00006025 */ move $t4, $zero
/* 011AE4 70010EE4 10400005 */ beqz $v0, .L70010EFC
/* 011AE8 70010EE8 00502021 */ addu $a0, $v0, $s0
/* 011AEC 70010EEC AF240008 */ sw $a0, 8($t9)
/* 011AF0 70010EF0 02002825 */ move $a1, $s0
/* 011AF4 70010EF4 0C004360 */ jal ultra_70010D80
/* 011AF8 70010EF8 02203825 */ move $a3, $s1
.L70010EFC:
/* 011AFC 70010EFC 85B80000 */ lh $t8, ($t5)
/* 011B00 70010F00 01A05825 */ move $t3, $t5
/* 011B04 70010F04 5B00000F */ blezl $t8, .L70010F44
/* 011B08 70010F08 86180002 */ lh $t8, 2($s0)
/* 011B0C 70010F0C 8D79000C */ lw $t9, 0xc($t3)
.L70010F10:
/* 011B10 70010F10 02002825 */ move $a1, $s0
/* 011B14 70010F14 03302021 */ addu $a0, $t9, $s0
/* 011B18 70010F18 10800003 */ beqz $a0, .L70010F28
/* 011B1C 70010F1C AD64000C */ sw $a0, 0xc($t3)
/* 011B20 70010F20 0C004360 */ jal ultra_70010D80
/* 011B24 70010F24 02203825 */ move $a3, $s1
.L70010F28:
/* 011B28 70010F28 85AF0000 */ lh $t7, ($t5)
/* 011B2C 70010F2C 258C0001 */ addiu $t4, $t4, 1
/* 011B30 70010F30 256B0004 */ addiu $t3, $t3, 4
/* 011B34 70010F34 018F082A */ slt $at, $t4, $t7
/* 011B38 70010F38 5420FFF5 */ bnezl $at, .L70010F10
/* 011B3C 70010F3C 8D79000C */ lw $t9, 0xc($t3)
.L70010F40:
/* 011B40 70010F40 86180002 */ lh $t8, 2($s0)
.L70010F44:
/* 011B44 70010F44 26730001 */ addiu $s3, $s3, 1
/* 011B48 70010F48 26520004 */ addiu $s2, $s2, 4
/* 011B4C 70010F4C 0278082A */ slt $at, $s3, $t8
/* 011B50 70010F50 5420FFDA */ bnezl $at, .L70010EBC
/* 011B54 70010F54 8E580004 */ lw $t8, 4($s2)
.L70010F58:
/* 011B58 70010F58 8FBF002C */ lw $ra, 0x2c($sp)
/* 011B5C 70010F5C 8FB00018 */ lw $s0, 0x18($sp)
/* 011B60 70010F60 8FB1001C */ lw $s1, 0x1c($sp)
/* 011B64 70010F64 8FB20020 */ lw $s2, 0x20($sp)
/* 011B68 70010F68 8FB30024 */ lw $s3, 0x24($sp)
/* 011B6C 70010F6C 8FB40028 */ lw $s4, 0x28($sp)
/* 011B70 70010F70 03E00008 */ jr $ra
/* 011B74 70010F74 27BD0030 */ addiu $sp, $sp, 0x30
glabel alSeqFileNew
/* 011B78 70010F78 848E0002 */ lh $t6, 2($a0)
/* 011B7C 70010F7C 00001025 */ move $v0, $zero
/* 011B80 70010F80 00801825 */ move $v1, $a0
/* 011B84 70010F84 19C0000A */ blez $t6, .L70010FB0
/* 011B88 70010F88 00000000 */ nop
/* 011B8C 70010F8C 8C6F0004 */ lw $t7, 4($v1)
.L70010F90:
/* 011B90 70010F90 24420001 */ addiu $v0, $v0, 1
/* 011B94 70010F94 24630008 */ addiu $v1, $v1, 8
/* 011B98 70010F98 01E5C021 */ addu $t8, $t7, $a1
/* 011B9C 70010F9C AC78FFFC */ sw $t8, -4($v1)
/* 011BA0 70010FA0 84990002 */ lh $t9, 2($a0)
/* 011BA4 70010FA4 0059082A */ slt $at, $v0, $t9
/* 011BA8 70010FA8 5420FFF9 */ bnezl $at, .L70010F90
/* 011BAC 70010FAC 8C6F0004 */ lw $t7, 4($v1)
.L70010FB0:
/* 011BB0 70010FB0 03E00008 */ jr $ra
/* 011BB4 70010FB4 00000000 */ nop
+12
View File
@@ -0,0 +1,12 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCSPGetState
/* 012E30 70012230 03E00008 */ jr $ra
/* 012E34 70012234 8C82002C */ lw $v0, 0x2c($a0)
+22
View File
@@ -0,0 +1,22 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCSPPlay
/* 013940 70012D40 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 013944 70012D44 AFBF0014 */ sw $ra, 0x14($sp)
/* 013948 70012D48 240E000F */ li $t6, 15
/* 01394C 70012D4C A7AE0018 */ sh $t6, 0x18($sp)
/* 013950 70012D50 27A50018 */ addiu $a1, $sp, 0x18
/* 013954 70012D54 24840048 */ addiu $a0, $a0, 0x48
/* 013958 70012D58 0C004BBF */ jal alEvtqPostEvent
/* 01395C 70012D5C 00003025 */ move $a2, $zero
/* 013960 70012D60 8FBF0014 */ lw $ra, 0x14($sp)
/* 013964 70012D64 27BD0028 */ addiu $sp, $sp, 0x28
/* 013968 70012D68 03E00008 */ jr $ra
/* 01396C 70012D6C 00000000 */ nop
+23
View File
@@ -0,0 +1,23 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCSPSetSeq
/* 013900 70012D00 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 013904 70012D04 AFBF0014 */ sw $ra, 0x14($sp)
/* 013908 70012D08 240E000D */ li $t6, 13
/* 01390C 70012D0C AFA5001C */ sw $a1, 0x1c($sp)
/* 013910 70012D10 A7AE0018 */ sh $t6, 0x18($sp)
/* 013914 70012D14 27A50018 */ addiu $a1, $sp, 0x18
/* 013918 70012D18 24840048 */ addiu $a0, $a0, 0x48
/* 01391C 70012D1C 0C004BBF */ jal alEvtqPostEvent
/* 013920 70012D20 00003025 */ move $a2, $zero
/* 013924 70012D24 8FBF0014 */ lw $ra, 0x14($sp)
/* 013928 70012D28 27BD0028 */ addiu $sp, $sp, 0x28
/* 01392C 70012D2C 03E00008 */ jr $ra
/* 013930 70012D30 00000000 */ nop
+26
View File
@@ -0,0 +1,26 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCSPSetVol
/* 0139A0 70012DA0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0139A4 70012DA4 AFBF0014 */ sw $ra, 0x14($sp)
/* 0139A8 70012DA8 AFA5002C */ sw $a1, 0x2c($sp)
/* 0139AC 70012DAC 00A07025 */ move $t6, $a1
/* 0139B0 70012DB0 240F000A */ li $t7, 10
/* 0139B4 70012DB4 A7AF0018 */ sh $t7, 0x18($sp)
/* 0139B8 70012DB8 A7AE001C */ sh $t6, 0x1c($sp)
/* 0139BC 70012DBC 27A50018 */ addiu $a1, $sp, 0x18
/* 0139C0 70012DC0 24840048 */ addiu $a0, $a0, 0x48
/* 0139C4 70012DC4 0C004BBF */ jal alEvtqPostEvent
/* 0139C8 70012DC8 00003025 */ move $a2, $zero
/* 0139CC 70012DCC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0139D0 70012DD0 27BD0028 */ addiu $sp, $sp, 0x28
/* 0139D4 70012DD4 03E00008 */ jr $ra
/* 0139D8 70012DD8 00000000 */ nop
+23
View File
@@ -0,0 +1,23 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCSPStop
/* 013970 70012D70 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 013974 70012D74 AFBF0014 */ sw $ra, 0x14($sp)
/* 013978 70012D78 240E0011 */ li $t6, 17
/* 01397C 70012D7C A7AE0018 */ sh $t6, 0x18($sp)
/* 013980 70012D80 27A50018 */ addiu $a1, $sp, 0x18
/* 013984 70012D84 24840048 */ addiu $a0, $a0, 0x48
/* 013988 70012D88 0C004BBF */ jal alEvtqPostEvent
/* 01398C 70012D8C 00003025 */ move $a2, $zero
/* 013990 70012D90 8FBF0014 */ lw $ra, 0x14($sp)
/* 013994 70012D94 27BD0028 */ addiu $sp, $sp, 0x28
/* 013998 70012D98 03E00008 */ jr $ra
/* 01399C 70012D9C 00000000 */ nop
+42
View File
@@ -0,0 +1,42 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel alCents2Ratio
/* 0143C0 700137C0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0143C4 700137C4 44811000 */ mtc1 $at, $f2
/* 0143C8 700137C8 04800004 */ bltz $a0, .L700137DC
/* 0143CC 700137CC 3C018003 */ lui $at, %hi(F32_800296E4)
/* 0143D0 700137D0 3C018003 */ lui $at, %hi(F32_800296E0)
/* 0143D4 700137D4 10000003 */ b .L700137E4
/* 0143D8 700137D8 C42096E0 */ lwc1 $f0, %lo(F32_800296E0)($at)
.L700137DC:
/* 0143DC 700137DC C42096E4 */ lwc1 $f0, %lo(F32_800296E4)($at)
/* 0143E0 700137E0 00042023 */ negu $a0, $a0
.L700137E4:
/* 0143E4 700137E4 10800008 */ beqz $a0, .L70013808
.L700137E8:
/* 0143E8 700137E8 308E0001 */ andi $t6, $a0, 1
/* 0143EC 700137EC 11C00003 */ beqz $t6, .L700137FC
/* 0143F0 700137F0 00047843 */ sra $t7, $a0, 1
/* 0143F4 700137F4 46001082 */ mul.s $f2, $f2, $f0
/* 0143F8 700137F8 00000000 */ nop
.L700137FC:
/* 0143FC 700137FC 46000002 */ mul.s $f0, $f0, $f0
/* 014400 70013800 15E0FFF9 */ bnez $t7, .L700137E8
/* 014404 70013804 01E02025 */ move $a0, $t7
.L70013808:
/* 014408 70013808 03E00008 */ jr $ra
/* 01440C 7001380C 46001006 */ mov.s $f0, $f2
.section .rodata
glabel F32_800296E0
.float 1.0005778
glabel F32_800296E4
.float 0.99942255

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