Partially build iQue release (#935)

* Build iQue main segment

* Dump CN assembly

* Clean up offsets

* Add CN version of pause screen

* Disassemble pause_stats_draw_contents

# Conflicts:
#	src/pause/pause_stats.c

* Extract version differences to variables

* Document changes in gv_01

* Include credits changes

* Build filemenu for ique

* Match iQue filemenu_draw_file_name

* Match filemenu_draw_char

* Match ique filemenu_draw_message

* Match remaining iQue filemenu functions

* Clean up ique bss

* Clean up ique libultra splat list

* Add constants for multibyte chars

* Use decimal int representation

* Use MSG_CHAR constants for condition

* Remove defined symbols

* Add ique rom to CI

* avoid x/0

---------

Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
This commit is contained in:
Marijn van der Werf 2023-02-21 15:37:27 +01:00 committed by GitHub
parent 4145cccd86
commit aaeddca8e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
200 changed files with 71535 additions and 69 deletions

10
Jenkinsfile vendored
View File

@ -8,6 +8,7 @@ pipeline {
steps {
sh 'cp /usr/local/etc/roms/papermario.us.z64 ver/us/baserom.z64'
sh 'cp /usr/local/etc/roms/papermario.jp.z64 ver/jp/baserom.z64'
sh 'cp /usr/local/etc/roms/papermario.cn.z64 ver/cn/baserom.z64'
sh 'curl -L "https://github.com/pmret/gcc-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc'
sh 'curl -L "https://github.com/pmret/binutils-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc'
sh 'curl -L "https://github.com/decompals/ido-static-recomp/releases/download/v0.2/ido-5.3-recomp-ubuntu-latest.tar.gz" | tar zx -C tools/build/cc/ido5.3'
@ -33,6 +34,7 @@ pipeline {
if (env.CHANGE_ID) {
def us_progress = sh(returnStdout: true, script: "python3 progress.py us --pr-comment").trim()
def jp_progress = sh(returnStdout: true, script: "python3 progress.py jp --pr-comment").trim()
def cn_progress = sh(returnStdout: true, script: "python3 progress.py cn --pr-comment").trim()
def warnings = sh(returnStdout: true, script: "./tools/warnings_count/check_new_warnings.sh --jenkins").trim()
def comment_id = -1
@ -42,7 +44,7 @@ pipeline {
}
}
def message = "${us_progress}\n${jp_progress}\n${warnings}"
def message = "${us_progress}\n${jp_progress}\n${cn_progress}\n${warnings}"
if (message != "\n\n") {
if (comment_id == -1) {
@ -68,6 +70,9 @@ pipeline {
sh 'python3 progress.py jp --csv >> reports/progress_jp.csv'
sh 'python3 progress.py jp --shield-json > reports/progress_jp_shield.json'
sh 'python3 progress.py cn --csv >> reports/progress_cn.csv'
sh 'python3 progress.py cn --shield-json > reports/progress_cn_shield.json'
sh 'cat build_log.txt | grep warning | sort > tools/warnings_count/warnings.txt'
sh 'cp tools/warnings_count/warnings.txt reports/warnings.txt'
@ -89,6 +94,9 @@ pipeline {
sh 'cat reports/progress_jp.csv >> /var/www/papermar.io/html/reports/progress_jp.csv'
sh 'cat reports/progress_jp_shield.json > /var/www/papermar.io/html/reports/progress_jp_shield.json'
sh 'cat reports/progress_cn.csv >> /var/www/papermar.io/html/reports/progress_cn.csv'
sh 'cat reports/progress_cn_shield.json > /var/www/papermar.io/html/reports/progress_cn_shield.json'
sh 'cat reports/warnings.txt > /var/www/papermar.io/html/reports/warnings.txt'
}
}

View File

@ -2210,6 +2210,8 @@ typedef struct {
#if VERSION_JP
#define DISPLAYCONTEXT_GFX_COUNT 0x2000
#elif VERSION_CN
#define DISPLAYCONTEXT_GFX_COUNT 0x2200
#else
#define DISPLAYCONTEXT_GFX_COUNT 0x2080
#endif

View File

@ -6288,6 +6288,12 @@ enum MsgChars {
MSG_CHAR_SINGLE_QUOTE_CLOSE = 0xA5,
// 0xA6 to 0xEF are unused
#if VERSION_CN
// All US characters are in the rom, but their range is used for multibyte characters
MSG_CHAR_MULTIBYTE_FIRST = 0x5F,
MSG_CHAR_MULTIBYTE_LAST = 0x8F,
#endif
MSG_CHAR_UNK_C3 = 0xC3,
// special character codes used when reading from the source buffer

View File

@ -815,6 +815,7 @@ s32 is_actor_hp_bar_visible(Actor*);
void sin_cos_rad(f32 rad, f32* outSinTheta, f32* outCosTheta);
void load_font(s32 font);
void load_font_data(Addr offset, u16 size, void* dest);
void* load_asset_by_name(const char* assetName, u32* decompressedSize);

View File

@ -124,7 +124,11 @@ def main(args):
matching_ratio = (matching_size / total_size) * 100
old_all_funcs, old_nonmatching_funcs, old_matching_funcs, old_total_size, old_nonmatching_size, old_matching_size = load_latest_progress(args.version)
old_matching_ratio = (old_matching_size / old_total_size) * 100
if old_total_size == 0:
old_matching_ratio = 0.0
else:
old_matching_ratio = (old_matching_size / old_total_size) * 100
ratio_delta = matching_ratio - old_matching_ratio
funcs_delta = len(matching_funcs) - old_matching_funcs

View File

@ -57,8 +57,13 @@ void create_audio_system(void) {
nuAuTasks[i].next = NULL;
nuAuTasks[i].msg = 0;
nuAuTasks[i].list.t.type = M_AUDTASK;
#if VERSION_CN
nuAuTasks[i].list.t.ucode_boot = (u64*) rspbootTextStart;
nuAuTasks[i].list.t.ucode_boot_size = (u32) rspbootTextEnd - (u32) rspbootTextStart;
#else
nuAuTasks[i].list.t.ucode_boot = rspbootUcodeBuffer;
nuAuTasks[i].list.t.ucode_boot_size = 0x100;
#endif
nuAuTasks[i].list.t.ucode = n_aspMain_text_bin;
nuAuTasks[i].list.t.ucode_data = n_aspMain_data_bin;
nuAuTasks[i].list.t.ucode_data_size = SP_UCODE_DATA_SIZE;

View File

@ -8,7 +8,7 @@
#include "sprite.h"
#include "model.h"
#if !VERSION_JP
#if !VERSION_JP && !VERSION_CN
// TODO: remove this conditional when more of the JP rom has been processed
#include "sprite/npc/BattleMerlee.h"
#else

View File

@ -115,7 +115,10 @@ BSS s32 filemenu_cursorHudElemID[1];
BSS s32 filemenu_8024C0A4[3];
BSS s32 filemenu_hudElemIDs[20];
BSS s32 filemenu_createfile_hudElems[4];
BSS u8 filemenu_filename[8];
#if VERSION_CN
BSS u8 filemenu_glyphBuffer[20][0x80];
#endif
void filemenu_draw_rect(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileDescriptor, s32 uls, s32 ult, s32 dsdx, s32 dtdy) {
if (ulx <= -2688 || uly <= -2688 || lrx <= 0 || lry <= 0) {

View File

@ -2,6 +2,14 @@
#include "filemenu.h"
#include "hud_element.h"
#if VERSION_CN
#define CREATE_SUCCESS_NUMBER_X 49
#define NUMBER_OFFSET_Y 1
#else
#define NUMBER_OFFSET_Y 0
#define CREATE_SUCCESS_NUMBER_X 48
#endif
u8 filemenu_info_gridData[] = {
0, 0, 0, 0
};
@ -48,10 +56,19 @@ void filemenu_info_draw_message_contents(
switch (menu->page) {
case 0:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 10, baseY + 4, 255, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + 48, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
draw_number(filemenu_menus[0]->selected + 1, baseX + 48, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_DELETED), baseX + 49, baseY + 4, 255, 0, 0);
break;
case 2:
#if VERSION_CN
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_COPY_FROM), baseX + 10, baseY + 7, 255, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 42, baseY + 7, 255, 0, 0);
draw_number(filemenu_loadedFileIdx + 1, baseX + 84, baseY + 10, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_TO), baseX + 84, baseY + 7, 255, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 100, baseY + 7, 255, 0, 0);
draw_number(filemenu_iterFileIdx + 1, baseX + 140, baseY + 10, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_34), baseX + 140, baseY + 7, 255, 0, 0);
#else
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_COPY_FROM), baseX + 10, baseY + 4, 255, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 84, baseY + 4, 255, 0, 0);
draw_number(filemenu_loadedFileIdx + 1, baseX + 122, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
@ -59,13 +76,14 @@ void filemenu_info_draw_message_contents(
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 30, baseY + 18, 255, 0, 0);
draw_number(filemenu_iterFileIdx + 1, baseX + 68, baseY + 20, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_34), baseX + 65, baseY + 18, 255, 0, 0);
#endif
break;
case 1:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_28), baseX + 10, baseY + 4, 255, 0, 0);
break;
case 3:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 10, baseY + 4, 255, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + 48, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
draw_number(filemenu_menus[0]->selected + 1, baseX + CREATE_SUCCESS_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_CREATED), baseX + 49, baseY + 4, 255, 0, 0);
break;
}

View File

@ -25,6 +25,28 @@ extern HudScript HES_OptionMonoOff;
extern HudScript HES_OptionStereoOn;
extern HudScript HES_OptionStereoOff;
BSS u8 filemenu_filename[8];
#if VERSION_CN
#define OFFSET_WIDTH 5
#define DELETE_OFFSET_X 9
#define CENTER_CANCEL_X 30
#define RIGHT_CANCEL_X 24
#define FILE_X 4
#define FILE_NUMBER_X 36
#define FILE_NAME_X 48
#define NUMBER_OFFSET_Y 1
#else
#define OFFSET_WIDTH 0
#define DELETE_OFFSET_X 8
#define CENTER_CANCEL_X 18
#define RIGHT_CANCEL_X 20
#define FILE_X 5
#define FILE_NUMBER_X 33
#define FILE_NAME_X 46
#define NUMBER_OFFSET_Y 0
#endif
HudScript* filemenu_main_hudElemScripts[] = {
&HES_Spirit1, &HES_Spirit2, &HES_Spirit3, &HES_Spirit4, &HES_Spirit5, &HES_Spirit6, &HES_Spirit7,
&HES_Spirit1Missing, &HES_Spirit2Missing, &HES_Spirit3Missing, &HES_Spirit4Missing, &HES_Spirit5Missing,
@ -143,7 +165,7 @@ MenuWindowBP filemenu_main_windowBPs[] = {
.windowID = WINDOW_ID_FILEMENU_FILE2_TITLE,
.unk_01 = 0,
.pos = { .x = 3, .y = -8 },
.width = 124,
.width = 124 + OFFSET_WIDTH,
.height = 15,
.priority = 0,
.fpDrawContents = &filemenu_draw_contents_file_2_title ,
@ -171,7 +193,7 @@ MenuWindowBP filemenu_main_windowBPs[] = {
.windowID = WINDOW_ID_FILEMENU_FILE3_TITLE,
.unk_01 = 0,
.pos = { .x = 3, .y = -8 },
.width = 124,
.width = 124 + OFFSET_WIDTH,
.height = 15,
.priority = 0,
.fpDrawContents = &filemenu_draw_contents_file_3_title,
@ -185,7 +207,7 @@ MenuWindowBP filemenu_main_windowBPs[] = {
.windowID = WINDOW_ID_FILEMENU_FILE0_INFO,
.unk_01 = 0,
.pos = { .x = 9, .y = 41 },
.width = 130,
.width = 130 + OFFSET_WIDTH,
.height = 54,
.priority = 0,
.fpDrawContents = &filemenu_draw_contents_file_0_info,
@ -199,7 +221,7 @@ MenuWindowBP filemenu_main_windowBPs[] = {
.windowID = WINDOW_ID_FILEMENU_FILE0_TITLE,
.unk_01 = 0,
.pos = { .x = 3, .y = -8 },
.width = 124,
.width = 124 + OFFSET_WIDTH,
.height = 15,
.priority = 0,
.fpDrawContents = &filemenu_draw_contents_file_0_title,
@ -227,7 +249,7 @@ MenuWindowBP filemenu_main_windowBPs[] = {
.windowID = WINDOW_ID_FILEMENU_FILE1_TITLE,
.unk_01 = 0,
.pos = { .x = 3, .y = -8 },
.width = 124,
.width = 124 + OFFSET_WIDTH,
.height = 15,
.priority = 0,
.fpDrawContents = &filemenu_draw_contents_file_1_title,
@ -273,7 +295,7 @@ void filemenu_draw_contents_title(
break;
case 1:
msgIdx = FILE_MESSAGE_SELECT_FILE_TO_DELETE;
xOffset = 8;
xOffset = DELETE_OFFSET_X;
yOffset = 4;
break;
case 3:
@ -337,7 +359,7 @@ void filemenu_draw_contents_option_left(
if (menu->col == 0 && menu->row == 2) {
filemenu_set_cursor_goal_pos(WINDOW_ID_FILEMENU_OPTION_LEFT, baseX, baseY + 8);
}
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE_FILE), baseX + 8, baseY + 2, 255, 0, 1);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE_FILE), baseX + 8 + OFFSET_WIDTH, baseY + 2, 255, 0, 1);
}
}
@ -357,10 +379,10 @@ void filemenu_draw_contents_option_center(
case 3:
case 4:
msgIdx = FILE_MESSAGE_CANCEL;
xOffset = 18;
xOffset = CENTER_CANCEL_X;
yOffset = 0;
if (menu->col == 1 && menu->row == 2) {
filemenu_set_cursor_goal_pos(WINDOW_ID_FILEMENU_OPTION_CENTER, baseX + 8, baseY + 8);
filemenu_set_cursor_goal_pos(WINDOW_ID_FILEMENU_OPTION_CENTER, baseX + CENTER_CANCEL_X - 10, baseY + 8);
}
break;
default:
@ -386,7 +408,7 @@ void filemenu_draw_contents_option_right(
if (menu->col == 2 && menu->row == 2) {
filemenu_set_cursor_goal_pos(WINDOW_ID_FILEMENU_OPTION_RIGHT, baseX + 8, baseY + 8);
}
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_CANCEL), baseX + 20, baseY + 2, 255, 0, 1);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_CANCEL), baseX + RIGHT_CANCEL_X, baseY + 2, 255, 0, 1);
}
}
@ -419,8 +441,8 @@ void filemenu_draw_contents_file_info(s32 fileIdx,
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_LEVEL), baseX + 0x22, baseY + 10, 0xFF, 0xA, 1);
temp_s3_2 = save->level;
temp_s3 = temp_s3_2;
draw_number(temp_s3 / 10, baseX + 79, baseY + 10, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(temp_s3 % 10, baseX + 88, baseY + 10, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(temp_s3 / 10, baseX + 79, baseY + 10 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(temp_s3 % 10, baseX + 88, baseY + 10 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PLAY_TIME), baseX + 11, baseY + 24, 0xFF, 0xA, 1);
temp_s3_2 = save->timePlayed;
@ -428,14 +450,14 @@ void filemenu_draw_contents_file_info(s32 fileIdx,
temp_s3_2 = MAX_DISPLAYED_TIME;
}
draw_number((temp_s3_2 / 2160000) % 10, baseX + 76, baseY + 24, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number((temp_s3_2 / 2160000) % 10, baseX + 76, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
temp_s1_2 = temp_s3_2 / 216000;
draw_number(temp_s1_2 - ((temp_s3_2 / 2160000) * 10), baseX + 85, baseY + 24, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(temp_s1_2 - ((temp_s3_2 / 2160000) * 10), baseX + 85, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_13), baseX + 95, baseY + 23, 0xFF, 0xA, 1);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_13), baseX + 95, baseY + 18, 0xFF, 0xA, 1);
temp_s0_3 = temp_s3_2 / 36000;
draw_number(temp_s0_3 - (temp_s1_2 * 6), baseX + 100, baseY + 24, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number((temp_s3_2 / 3600) - (temp_s0_3 * 10), baseX + 109, baseY + 24, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(temp_s0_3 - (temp_s1_2 * 6), baseX + 100, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number((temp_s3_2 / 3600) - (temp_s0_3 * 10), baseX + 109, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE);
for (i = 0; i < 7; i++) {
if (i < gSaveSlotMetadata[fileIdx].spiritsRescued) {
@ -463,16 +485,16 @@ void filemenu_draw_contents_file_title(
filemenu_set_cursor_goal_pos(fileIdx + 60, baseX - 3, baseY + 8);
}
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 5, baseY + 1, 255, 0, 1);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + FILE_X, baseY + 1, 255, 0, 1);
if (!gSaveSlotHasData[fileIdx]) {
draw_number(fileIdx + 1, baseX + 33, baseY + 1, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(fileIdx + 1, baseX + FILE_NUMBER_X, baseY + 1 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE);
} else {
draw_number(fileIdx + 1, baseX + 33, baseY + 1, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE);
draw_number(fileIdx + 1, baseX + FILE_NUMBER_X, baseY + 1 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE);
filemenu_draw_file_name(
gSaveSlotMetadata[fileIdx].filename,
ARRAY_COUNT(gSaveSlotMetadata[fileIdx].filename),
baseX + 46, baseY + 1, 255, 0, 1, 9);
baseX + FILE_NAME_X, baseY + 1, 255, 0, 1, 9);
}
}

View File

@ -1,14 +1,30 @@
#include "common.h"
#include "filemenu.h"
#include "ld_addrs.h"
#if VERSION_CN
// TODO: remove when charset segment is split for iQue
extern Addr charset_standard_OFFSET;
#endif
extern MessageCharset* gMsgCharsets[5];
extern PAL_BIN D_802F4560[80][8];
extern u8 filemenu_glyphBuffer[20][0x80];
#if VERSION_CN
u8 filemenu_msg_C6[] = { 0xF7, 0xF7, 0x84, 0x05, 0x62, 0x14, 0xFD };
u8 filemenu_msg_C7[] = { 0xFD };
u8 filemenu_msg_C8[] = { 0xFD };
u8 filemenu_msg_C9[] = { 0x6C, 0x2B, 0x8D, 0x04, 0xFD };
u8 filemenu_msg_CA[] = { 0x7C, 0x04, 0x7D, 0x04, 0xFD };
#else
u8 filemenu_msg_C6[] = { 0x33, 0x30, 0x21, 0x23, 0x25, 0xFD }; // SPACE[End]
u8 filemenu_msg_C7[] = { 0xFD }; // [End]
u8 filemenu_msg_C8[] = { 0xFD }; // [End]
u8 filemenu_msg_C9[] = { 0x22, 0x21, 0x23, 0x2B, 0xFD }; // BACK[End]
u8 filemenu_msg_CA[] = { 0x25, 0x2E, 0x24, 0xFD }; // END[End]
#endif
s32 filemenu_specialSymbols[] = { (s32)filemenu_msg_C6, (s32)filemenu_msg_C7, (s32)filemenu_msg_C8, (s32)filemenu_msg_C9, (s32)filemenu_msg_CA };
Gfx filemenu_dl_draw_char_init[] = {
@ -32,6 +48,55 @@ s32 filemenu_charset = 0;
s32 filemenu_charset_raster_id = 0;
s32 filemenu_char_color = -1;
#if VERSION_CN
u32 filemenu_glyphBufferIndex = 0;
#endif
#if VERSION_CN
u8 filemenu_msg_01[] = { 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0x7A, 0x14, 0x7B, 0x14, 0x79, 0x19, 0x7F, 0x06, 0x79, 0x04, 0x7A, 0x04, 0xFD };
u8 filemenu_msg_02[] = { 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0x7A, 0x14, 0x7B, 0x14, 0x79, 0x19, 0x7F, 0x06, 0x8C, 0x30, 0x6C, 0x12, 0xFD };
u8 filemenu_msg_03[] = { 0x7A, 0x14, 0x7B, 0x14, 0x79, 0x19, 0x7F, 0x06, 0x89, 0x0D, 0x71, 0x15, 0xFD };
u8 filemenu_msg_04[] = { 0x82, 0x08, 0x68, 0x12, 0x85, 0x0B, 0x6D, 0x05, 0x79, 0x19, 0x7F, 0x06, 0x74, 0x08, 0xFD };
u8 filemenu_msg_05[] = { 0x82, 0x08, 0x68, 0x12, 0x82, 0x06, 0x85, 0x0B, 0x6D, 0x05, 0x79, 0x19, 0x7F, 0x06, 0x74, 0x08, 0xFD };
u8 filemenu_msg_06[] = { 0x71, 0x05, 0xFD };
u8 filemenu_msg_07[] = { 0x82, 0x07, 0x6C, 0x02, 0xFD };
u8 filemenu_msg_08[] = { 0x7D, 0x0C, 0x85, 0x12, 0x85, 0x05, 0x79, 0x02, 0xFD };
u8 filemenu_msg_09[] = { 0x8C, 0x30, 0x6C, 0x12, 0x79, 0x19, 0x7F, 0x06, 0xFD };
u8 filemenu_msg_10[] = { 0x8F, 0x0F, 0x66, 0x0B, 0xFD };
u8 filemenu_msg_11[] = { 0x82, 0x08, 0x68, 0x12, 0x79, 0x19, 0x7F, 0x06, 0xFD };
u8 filemenu_msg_12[] = { 0x79, 0x04, 0x7A, 0x04, 0x7D, 0x0C, 0x85, 0x12, 0xFD };
u8 filemenu_msg_13[] = { 0x75, 0x05, 0xFD };
u8 filemenu_msg_14[] = { 0x62, 0x06, 0xFD };
u8 filemenu_msg_15[] = { 0x7D, 0x0F, 0xFD };
u8 filemenu_msg_16[] = { 0x8C, 0x30, 0x6C, 0x12, 0xFD };
u8 filemenu_msg_17[] = { 0x89, 0x22, 0x68, 0x03, 0x76, 0x0C, 0x71, 0x05, 0x75, 0x19, 0x76, 0x19, 0xFD };
u8 filemenu_msg_18[] = { 0x8E, 0x0C, 0x74, 0x06, 0x5F, 0x09, 0x74, 0x08, 0xFD };
u8 filemenu_msg_19[] = { 0x79, 0x19, 0x7F, 0x06, 0x72, 0x0A, 0x66, 0x11, 0x62, 0x06, 0xFD };
u8 filemenu_msg_20[] = { 0x75, 0x05, 0xFD };
u8 filemenu_msg_21[] = { 0x8E, 0x0C, 0x74, 0x06, 0x5F, 0x09, 0x74, 0x08, 0xFD };
u8 filemenu_msg_22[] = { 0x79, 0x19, 0x7F, 0x06, 0xFD };
u8 filemenu_msg_23[] = { 0x83, 0x02, 0x84, 0x09, 0x8C, 0x30, 0x6C, 0x12, 0x74, 0x08, 0xFD };
u8 filemenu_msg_24[] = { 0x8E, 0x0C, 0x74, 0x06, 0x82, 0x08, 0x68, 0x12, 0x82, 0x06, 0x6C, 0x05, 0x6D, 0x05, 0x79, 0x19, 0x7F, 0x06, 0x74, 0x08, 0xFD };
u8 filemenu_msg_25[] = { 0x79, 0x04, 0x7A, 0x04, 0x7D, 0x0C, 0x85, 0x12, 0xFD };
u8 filemenu_msg_26[] = { 0x79, 0x19, 0x7F, 0x06, 0xFD };
u8 filemenu_msg_27[] = { 0x8B, 0x08, 0x7D, 0x08, 0x8C, 0x30, 0x6C, 0x12, 0x8C, 0x04, 0x75, 0x05, 0xFD };
u8 filemenu_msg_28[] = { 0xFD };
u8 filemenu_msg_29[] = { 0x82, 0x08, 0x68, 0x12, 0xFD };
u8 filemenu_msg_30[] = { 0x82, 0x06, 0xFD };
u8 filemenu_msg_31[] = { 0x8B, 0x08, 0x7D, 0x08, 0x8A, 0x1C, 0x64, 0x1E, 0x75, 0x05, 0xFD };
u8 filemenu_msg_32[] = { 0x73, 0x1F, 0x7B, 0x11, 0x73, 0x06, 0x6D, 0x05, 0x79, 0x19, 0x7F, 0x06, 0x72, 0x0A, 0x66, 0x11, 0x87, 0x04, 0xFD };
u8 filemenu_createfile_gridData[] = {
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D,
0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x10, 0x0E, 0x0D, 0xF7,
0x00, 0x90, 0x91, 0x20, 0xC6, 0xF7, 0xF7, 0xC9, 0xF7, 0xF7, 0xCA, 0xF7, 0xF7
};
u8 filemenu_msg_33[] = { 0x74, 0x08, 0xFD };
u8 filemenu_msg_34[] = { 0x75, 0x05, 0xFD };
#else
u8 filemenu_msg_01[] = { 0x33, 0x45, 0x4C, 0x45, 0x43, 0x54, 0xF7, 0x46, 0x49, 0x4C, 0x45, 0xF7, 0x54, 0x4F, 0xF7, 0x53,
0x54, 0x41, 0x52, 0x54, 0x1A, 0xFD };
u8 filemenu_msg_02[] = { 0x33, 0x45, 0x4C, 0x45, 0x43, 0x54, 0xF7, 0x46, 0x49, 0x4C, 0x45, 0xF7, 0x54, 0x4F, 0xF7, 0x44,
@ -84,6 +149,7 @@ u8 filemenu_createfile_gridData[] = { 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
};
u8 filemenu_msg_33[] = { 0x1F, 0xFD };
u8 filemenu_msg_34[] = { 0x0E, 0xFD };
#endif
s32 gFileMenuMessages[] = {
0x00000000, (s32)filemenu_msg_01, (s32)filemenu_msg_02, (s32)filemenu_msg_03, (s32)filemenu_msg_04,
@ -154,6 +220,47 @@ s32 filemenu_draw_char(s32 c, s32 x, s32 y, s32 flag1, s32 color, s32 flag2) {
return charWidth;
}
#if VERSION_CN
if (c >= 0x100) {
int offset;
s32 character;
s32* offsetPtr = &filemenu_glyphBufferIndex;
character = c < 0 ? c + 0xFF : c;
offset = (((character >> 8) - 1) * 0x31) + (c & 0xff) + 0x47;
*offsetPtr = offset; // Probably modifying data outside of the filemenu_glyphBuffer array
load_font_data(charset_standard_OFFSET + offset * 0x80, 0x80, &filemenu_glyphBuffer[*offsetPtr][0]);
if (gMasterGfxPos != filemenu_savedGfxPos) {
gSPDisplayList(gMasterGfxPos++, filemenu_dl_draw_char_init);
filemenu_char_color = -1;
}
if (filemenu_char_color != color) {
filemenu_char_color = color;
gDPLoadTLUT_pal16(gMasterGfxPos++, 0, D_802F4560[color]);
}
gDPLoadTextureBlock_4b(gMasterGfxPos++, &filemenu_glyphBuffer[*offsetPtr][0], G_IM_FMT_CI, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
if (flag2) {
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0);
gDPSetRenderMode(gMasterGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
filemenu_draw_rect((x + 2) * 4, (y + 2) * 4, (x + 18) * 4, (y + 18) * 4, 0, 0, 0, 0x400, 0x400);
gDPPipeSync(gMasterGfxPos++);
gDPSetCombineMode(gMasterGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA);
gDPSetRenderMode(gMasterGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2);
}
filemenu_draw_rect(x * 4, y * 4, (x + 16) * 4, (y + 16) * 4, 0, 0, 0, 0x400, 0x400);
filemenu_savedGfxPos = gMasterGfxPos;
*offsetPtr = (*offsetPtr + 1) % 20;
return 16;
}
#endif
if (c == 0xF7) {
return charWidth - 6;
}
@ -199,8 +306,21 @@ void filemenu_draw_message(u8* message, s32 x, s32 y, s32 alpha, s32 color, u32
filemenu_draw_char(0xF3, x, y, flag1, color, flag2);
tmp = message;
while (*tmp != 0xFD) {
#if VERSION_CN
int ord = *tmp;
if (ord >= MSG_CHAR_MULTIBYTE_FIRST && ord <= MSG_CHAR_MULTIBYTE_LAST) {
tmp++;
ord = (*tmp << 8) + ord;
x += filemenu_draw_char(ord, x, y + 1, flag1, color, flag2);
} else {
ord = *tmp;
x += filemenu_draw_char(ord, x, y, flag1, color, flag2);
}
tmp++;
#else
x += filemenu_draw_char(*tmp, x, y, flag1, color, flag2);
tmp++;
#endif
}
}
}
@ -216,7 +336,16 @@ void filemenu_draw_file_name(u8* filename, s32 length, s32 x, s32 y, s32 alpha,
u32 c = filename[i];
if (c != 0xF7) {
#if VERSION_CN
// Numerals get drawn one pixel lower than other characters
if (c >= MSG_CHAR_DIGIT_0 && c <= MSG_CHAR_DIGIT_9) {
filemenu_draw_message((u8*)c, x + (i * charWidth), y + 1, alpha, arg5, arg6);
} else {
filemenu_draw_message((u8*)c, x + (i * charWidth), y, alpha, arg5, arg6);
}
#else
filemenu_draw_message((u8*)c, x + (i * charWidth), y, alpha, arg5, arg6);
#endif
}
}
}

View File

@ -2,6 +2,30 @@
#include "filemenu.h"
#include "fio.h"
#if VERSION_CN
#define DELETE_FILE_DELETE_X 20
#define DELETE_FILE_FILE_X 50
#define DELETE_FILE_NUMBER_X 93
#define DELETE_FILE_QMARK_X 92
#define COPY_FILE_NUMBER_X 49
#define START_GAME_START_WITH_X 37
#define START_GAME_FILE_X 100
#define START_GAME_NUMBER_X 142
#define START_GAME_QMARK_X 140
#define NUMBER_OFFSET_Y 1
#else
#define DELETE_FILE_DELETE_X 10
#define DELETE_FILE_FILE_X 60
#define DELETE_FILE_NUMBER_X 98
#define DELETE_FILE_QMARK_X 99
#define COPY_FILE_NUMBER_X 48
#define START_GAME_START_WITH_X 10
#define START_GAME_FILE_X 127
#define START_GAME_NUMBER_X 165
#define START_GAME_QMARK_X 162
#define NUMBER_OFFSET_Y 0
#endif
u8 filemenu_yesno_gridData[] = {
0, 1,
0, 1,
@ -129,14 +153,13 @@ void filemenu_yesno_draw_prompt_contents(
switch (menu->page) {
case 0:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE), baseX + 10, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + 60, baseY + 4, 0xFF, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + 98, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + 99, baseY + 4, 0xFF, 0, 0);
break;
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE), baseX + DELETE_FILE_DELETE_X, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + DELETE_FILE_FILE_X, baseY + 4, 0xFF, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + DELETE_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + DELETE_FILE_QMARK_X, baseY + 4, 0xFF, 0, 0); break;
case 3:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + 10, baseY + 4, 0xFF, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + 48, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
draw_number(filemenu_menus[0]->selected + 1, baseX + COPY_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_WILL_BE_DELETED), baseX + 49, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OK_TO_COPY_TO_THIS_FILE), baseX + 10, baseY + 18, 0xFF, 0, 0);
break;
@ -160,10 +183,10 @@ void filemenu_yesno_draw_prompt_contents(
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OK), baseX + 70, baseY + 38, 0xFF, 0, 0);
break;
case 4:
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_START_GAME_WITH), baseX + 10, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + 127, baseY + 4, 0xFF, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + 165, baseY + 6, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + 162, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_START_GAME_WITH), baseX + START_GAME_START_WITH_X, baseY + 4, 0xFF, 0, 0);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + START_GAME_FILE_X, baseY + 4, 0xFF, 0, 0);
draw_number(filemenu_menus[0]->selected + 1, baseX + START_GAME_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + START_GAME_QMARK_X, baseY + 4, 0xFF, 0, 0);
break;
}
}

View File

@ -10,6 +10,9 @@ void gfx_task_main(void);
void gfx_draw_frame(void);
void gfx_init_state(void);
void create_audio_system(void);
void load_engine_data(void);
extern s32 D_80073E00;
extern u16* D_80073E04;
extern s16 D_80073E08;
@ -49,13 +52,20 @@ void boot_main(void* data) {
crash_screen_init();
#endif
#if !VERSION_CN
is_debug_init();
#endif
nuGfxInit();
gGameStatusPtr->contBitPattern = nuContInit();
#if VERSION_CN
create_audio_system();
load_engine_data();
#else
load_obfuscation_shims();
shim_create_audio_system_obfuscated();
shim_load_engine_data_obfuscated();
#endif
nuGfxFuncSet((NUGfxFunc) gfxRetrace_Callback);
nuGfxPreNMIFuncSet(gfxPreNMI_Callback);
@ -171,6 +181,10 @@ void gfx_task_main(void) {
gCurrentDisplayContextIndex ^= 1;
}
#if VERSION_CN
NOP_FIX
#endif
void gfxPreNMI_Callback(void) {
D_80073E00 = 1;
nuContRmbForceStop();

View File

@ -357,3 +357,7 @@ void set_time_freeze_mode(s32 mode) {
s32 get_time_freeze_mode(void) {
return timeFreezeMode;
}
#if VERSION_CN
static const f32 rodata_padding[] = {0.0f, 0.0f};
#endif

View File

@ -69,9 +69,14 @@ void nuGfxTaskMgrInit(void) {
nuGfxTask[i].msgQ = &D_800DAC90;
nuGfxTask[i].list.t.type = M_GFXTASK;
nuGfxTask[i].list.t.flags = 0;
#if VERSION_CN
nuGfxTask[i].list.t.ucode_boot = (u64*) rspbootTextStart;
nuGfxTask[i].list.t.ucode_boot_size = (u32) rspbootTextEnd - (u32) rspbootTextStart;
#else
dma_copy((u8* )0xB0000B70, (u8* )0xB0000C70, rspbootUcodeBuffer);
nuGfxTask[i].list.t.ucode_boot = (u64*) rspbootUcodeBuffer;
nuGfxTask[i].list.t.ucode_boot_size = 0x100;
#endif
nuGfxTask[i].list.t.ucode_size = SP_UCODE_SIZE;
nuGfxTask[i].list.t.ucode_data_size = SP_UCODE_DATA_SIZE;
nuGfxTask[i].list.t.dram_stack = (u64*) &D_800DA040;

View File

@ -11,7 +11,7 @@ static void nuSiMgrThread(void* arg);
extern u64 siMgrStack[NU_SI_STACK_SIZE/sizeof(u64)];
#if !VERSION_JP
#if !VERSION_JP && !VERSION_CN
u8 nuSiMgrInit(void) {
u8 pattern;
OSContStatus status[NU_CONT_MAXCONTROLLERS];
@ -114,7 +114,7 @@ void nuSiMgrThread(void* arg) {
}
}
#if VERSION_JP
#if VERSION_JP || VERSION_CN
u8 nuSiMgrInit(void) {
u8 pattern;
OSContStatus status[NU_CONT_MAXCONTROLLERS];

View File

@ -10,7 +10,9 @@ void pause_badges_cleanup(MenuPanel* panel);
static s16 gPauseBadgesItemIds[128];
static s32 gPauseBadgesCurrentPage;
#if !VERSION_CN
static s32 D_80270284;
#endif
static PauseItemPage gPauseBadgesPages[20];
static s32 gPauseBadgesSelectedIndex;
static s32 D_8027037C;
@ -23,7 +25,9 @@ static s32 gPauseBadgesTargetScrollIndex;
static s32 gPauseBadgesLevel;
static s32 gPauseBadgesCurrentTab;
static s32 gPauseBadgesShowNotEnoughBP;
#if !VERSION_CN
static s32 D_802703A4;
#endif
static s32 gPauseBadgesIconIDs[22];
// Fake "badge" for the None entry that appears on the equipped badges page when nothing is equipped
@ -31,6 +35,20 @@ static s32 gPauseBadgesIconIDs[22];
// Invalid badge ID filled in unused slots of gPauseBadgesItemIds
#define BADGE_INVALID 0x7FFF
#if VERSION_CN
#define OFFSET_1_X 47
#define OFFSET_1_Y 82
#define OFFSET_2_X 10
#define OFFSET_3_X 73
#define OFFSET_3_Y 76
#else
#define OFFSET_1_X 43
#define OFFSET_1_Y 81
#define OFFSET_2_X 16
#define OFFSET_3_X 69
#define OFFSET_3_Y 74
#endif
HudScript* gPauseBadgesElements[] = {
&HES_StatBp, &HES_StatBp, &HES_StatBp, &HES_StatBp,
&HES_StatBp, &HES_StatBp, &HES_StatBp, &HES_StatBp,
@ -560,10 +578,10 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
}
}
hud_element_set_render_pos(gPauseBadgesIconIDs[16], baseX + 43, baseY + 81);
hud_element_set_render_pos(gPauseBadgesIconIDs[16], baseX + OFFSET_1_X, baseY + OFFSET_1_Y);
hud_element_draw_without_clipping(gPauseBadgesIconIDs[16]);
draw_msg(pause_get_menu_msg(70), baseX + 16, baseY + 74, 255, MSG_PAL_STANDARD, DRAW_MSG_STYLE_MENU);
draw_number(playerData->maxBP, baseX + 69, baseY + 74, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
draw_msg(pause_get_menu_msg(70), baseX + OFFSET_2_X, baseY + 74, 255, MSG_PAL_STANDARD, DRAW_MSG_STYLE_MENU);
draw_number(playerData->maxBP, baseX + OFFSET_3_X, baseY + OFFSET_3_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
bpAmount = playerData->maxBP - pause_get_total_equipped_bp_cost();
bpAvailOffsetX = 0;
bpAvailOffsetY = (playerData->maxBP - 1) / 10 * 8;

View File

@ -276,6 +276,11 @@ Gfx gPauseDLAvailable[] = {
gsSPEndDisplayList(),
};
#if VERSION_CN
#undef pause_prompt_check_abilities_png_height
#define pause_prompt_check_abilities_png_height 16
#endif
Gfx gPauseDLCheckAbilities[] = {
gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
@ -313,6 +318,43 @@ Gfx gPauseDLSpiritsBg[] = {
gsSPEndDisplayList(),
};
#if VERSION_CN
s8 gPauseMsg_17[] = { 0x8F, 0x0C, 0x75, 0x12, 0xFD };
s8 gPauseMsg_18[] = { 0x7B, 0x0E, 0x7C, 0x0E, 0xFD };
s8 gPauseMsg_19[] = { 0x77, 0x10, 0x74, 0x0D, 0xFD };
s8 gPauseMsg_1A[] = { 0x79, 0x12, 0x67, 0x09, 0xFD };
s8 gPauseMsg_32[] = { 0x64, 0x02, 0x75, 0x11, 0xFD };
s8 gPauseMsg_33[] = { 0x62, 0x05, 0x62, 0x05, 0x87, 0x06, 0x5F, 0x18, 0xFD };
s8 gPauseMsg_34[] = { 0x62, 0x05, 0x73, 0x02, 0x67, 0x11, 0x85, 0x10, 0xFD };
s8 gPauseMsg_35[] = { 0x7D, 0x0C, 0x85, 0x12, 0x85, 0x05, 0x79, 0x02, 0xFD };
s8 gPauseMsg_36[] = { 0x28, 0x30, 0xFD };
s8 gPauseMsg_37[] = { 0x26, 0x30, 0xFD };
s8 gPauseMsg_38[] = { 0x22, 0x30, 0xFD };
s8 gPauseMsg_39[] = { 0x0F, 0xFD };
s8 gPauseMsg_3A[] = { 0x0E, 0xFD };
s8 gPauseMsg_3B[] = { 0x69, 0x08, 0x81, 0x07, 0xFD };
s8 gPauseMsg_3C[] = { 0x7B, 0x25, 0x60, 0x01, 0xFD };
s8 gPauseMsg_3D[] = { 0x6B, 0x02, 0x6C, 0x02, 0x7B, 0x25, 0x60, 0x01, 0xFD };
s8 gPauseMsg_3E[] = { 0x6D, 0x0A, 0x6C, 0x02, 0x7B, 0x25, 0x60, 0x01, 0xFD };
s8 gPauseMsg_3F[] = { 0x69, 0x08, 0x81, 0x07, 0xFD };
s8 gPauseMsg_40[] = { 0x68, 0x04, 0x60, 0x01, 0xFD };
s8 gPauseMsg_41[] = { 0x6B, 0x02, 0x6C, 0x02, 0x68, 0x04, 0x60, 0x01, 0xFD };
s8 gPauseMsg_42[] = { 0x6D, 0x0A, 0x6C, 0x02, 0x68, 0x04, 0x60, 0x01, 0xFD };
s8 gPauseMsg_43[] = { 0x75, 0x04, 0x76, 0x04, 0x81, 0x03, 0xFD };
s8 gPauseMsg_44[] = { 0x82, 0x07, 0x6C, 0x02, 0xFD };
s8 gPauseMsg_46[] = { 0x22, 0x30, 0xFD };
s8 gPauseMsg_47[] = { 0x69, 0x07, 0x81, 0x07, 0x7B, 0x0E, 0x7C, 0x0E, 0xFD };
s8 gPauseMsg_48[] = { 0x81, 0x07, 0x6F, 0x17, 0x7B, 0x0E, 0x7C, 0x0E, 0xFD };
s8 gPauseMsg_49[] = { 0xFD };
s8 gPauseMsg_4A[] = { 0x69, 0x08, 0x81, 0x07, 0x6C, 0x14, 0x78, 0x0D, 0xF7, 0x22, 0x30, 0xFD };
s8 gPauseMsg_4B[] = { 0x76, 0x06, 0x8B, 0x06, 0x85, 0x07, 0x82, 0x12, 0x8C, 0x04, 0x87, 0x04, 0xFD };
s8 gPauseMsg_50[] = { 0x77, 0x10, 0x74, 0x0D, 0xFD };
s8 gPauseMsg_4F[] = { 0x8C, 0x07, 0x80, 0x05, 0x77, 0x10, 0x74, 0x0D, 0xFD };
s8 gPauseMsg_53[] = { 0x28, 0x30, 0xFD };
s8 gPauseMsg_54[] = { 0x26, 0x30, 0xFD };
s8 gPauseMsg_55[] = { 0x6A, 0x11, 0x8B, 0x06, 0xFD };
s8 gPauseMsg_56[] = { 0x74, 0x08, 0x74, 0x08, 0x74, 0x08, 0xFD };
#else
s8 gPauseMsg_17[] = { 0x33, 0x54, 0x41, 0x54, 0x53, 0xFD }; // Stats[End]
s8 gPauseMsg_18[] = { 0x22, 0x41, 0x44, 0x47, 0x45, 0xFD }; // Badge[End]
s8 gPauseMsg_19[] = { 0x29, 0x54, 0x45, 0x4D, 0x53, 0xFD }; // Items[End]
@ -348,6 +390,7 @@ s8 gPauseMsg_53[] = { 0x28, 0x30, 0xFD };
s8 gPauseMsg_54[] = { 0x26, 0x30, 0xFD }; // FP[End]
s8 gPauseMsg_55[] = { 0x21, 0x42, 0x49, 0x4C, 0x49, 0x54, 0x49, 0x45, 0x53, 0xFD }; // Abilities[End]
s8 gPauseMsg_56[] = { 0x1F, 0x1F, 0x1F, 0xFD }; // ???[End]
#endif
s32 gPauseMessages[] = {
0, MSG_MenuTip_BadgeTutorial_01, MSG_MenuTip_002B, MSG_MenuTip_002C,

View File

@ -28,7 +28,9 @@ BSS s8 gPauseMenuCurrentTab;
BSS s8 D_802700D[7]; //padding
static s32 gPauseTutorialFrameCounter;
#if !VERSION_CN
static s32 D_802700E4;
#endif
static s32 gPauseCommonIconIDs[8];
static s32 gPauseShownDescMsg;
static s32 gPauseDescTextMaxPos;

View File

@ -7,6 +7,30 @@ void pause_stats_cleanup(MenuPanel* panel);
static s32 gPauseStatsIconIDs[12];
#if VERSION_CN
#define NUMBER_OFFSET_Y 2
#define ROW_1_Y 48
#define ROW_2_Y 49
#define ROW_3_Y 83
#define ROW_4_Y 116
#define COL_A_X 17
#define COL_B_X 80
#define COL_C_X 110
#define POS_1_X 60
#define POS_2_X 100
#else
#define NUMBER_OFFSET_Y 0
#define ROW_1_Y 51
#define ROW_2_Y 51
#define ROW_3_Y 85
#define ROW_4_Y 119
#define COL_A_X 25
#define COL_B_X 78
#define COL_C_X 105
#define POS_1_X 67
#define POS_2_X 106
#endif
// Probably only used here, but could theoretically be used in the main menu too
typedef struct {
s32 cursorX;
@ -92,6 +116,7 @@ MenuPanel gPausePanelStats = {
.fpCleanup = &pause_stats_cleanup
};
void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
StatsEntryData* statsEntryData;
PlayerData* playerData;
@ -111,39 +136,39 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width,
hud_element_set_render_pos(gPauseStatsIconIDs[3], baseX + 143, baseY + 109);
hud_element_draw_without_clipping(gPauseStatsIconIDs[3]);
draw_msg(pause_get_menu_msg(0x32), baseX + 155, baseY + 101, 255, 0xA, 1);
draw_number(gPlayerData.coins, baseX + 281, baseY + 101, 1, 0xA, 255, 3);
draw_number(gPlayerData.coins, baseX + 281, baseY + 101 + NUMBER_OFFSET_Y, 1, 0xA, 255, 3);
hud_element_set_render_pos(gPauseStatsIconIDs[11], baseX + 248, baseY + 108);
hud_element_draw_without_clipping(gPauseStatsIconIDs[11]);
hud_element_set_render_pos(gPauseStatsIconIDs[4], baseX + 143, baseY + 0x5E);
hud_element_draw_without_clipping(gPauseStatsIconIDs[4]);
draw_msg(pause_get_menu_msg(51), baseX + 155, baseY + 86, 255, 0xA, 1);
draw_number(gPlayerData.starPoints, baseX + 281, baseY + 86, 1, 0xA, 255, 3);
draw_number(gPlayerData.starPoints, baseX + 281, baseY + 86 + NUMBER_OFFSET_Y, 1, 0xA, 255, 3);
hud_element_set_render_pos(gPauseStatsIconIDs[11], baseX + 248, baseY + 93);
hud_element_draw_without_clipping(gPauseStatsIconIDs[11]);
hud_element_set_render_pos(gPauseStatsIconIDs[5], baseX + 143, baseY + 123);
hud_element_draw_without_clipping(gPauseStatsIconIDs[5]);
draw_msg(pause_get_menu_msg(0x34), baseX + 155, baseY + 116, 255, 0xA, 1);
draw_number(gPlayerData.starPieces, baseX + 281, baseY + 116, 1, 0xA, 255, 3);
draw_number(gPlayerData.starPieces, baseX + 281, baseY + 116 + NUMBER_OFFSET_Y, 1, 0xA, 255, 3);
hud_element_set_render_pos(gPauseStatsIconIDs[11], baseX + 248, baseY + 123);
hud_element_draw_without_clipping(gPauseStatsIconIDs[11]);
pause_draw_menu_label(0, baseX + 21, baseY + 35);
hud_element_set_render_pos(gPauseStatsIconIDs[7], baseX + 52, baseY + 57);
hud_element_draw_without_clipping(gPauseStatsIconIDs[7]);
draw_msg(pause_get_menu_msg(0x36), baseX + 25, baseY + 51, 255, 0, 1);
draw_msg(pause_get_menu_msg(0x36), baseX + COL_A_X, baseY + ROW_1_Y, 255, 0, 1);
draw_number(gPlayerData.curHP, baseX + 78, baseY + 51, 1, 0, 255, 3);
draw_msg(pause_get_menu_msg(0x39), baseX + 78, baseY + 51, 255, 0, 1);
draw_number(gPlayerData.curMaxHP, baseX + 105, baseY + 51, 1, 0, 255, 3);
draw_msg(pause_get_menu_msg(0x39), baseX + COL_B_X, baseY + ROW_2_Y, 255, 0, 1);
draw_number(gPlayerData.curMaxHP, baseX + COL_C_X, baseY + ROW_2_Y + NUMBER_OFFSET_Y, 1, 0, 255, 3);
pause_draw_menu_label(1, baseX + 21, baseY + 69);
hud_element_set_render_pos(gPauseStatsIconIDs[8], baseX + 52, baseY + 92);
hud_element_draw_without_clipping(gPauseStatsIconIDs[8]);
draw_msg(pause_get_menu_msg(0x37), baseX + 25, baseY + 85, 255, 0, 1);
draw_msg(pause_get_menu_msg(0x37), baseX + COL_A_X, baseY + ROW_3_Y, 255, 0, 1);
draw_number(gPlayerData.curFP, baseX + 78, baseY + 85, 1, 0, 255, 3);
draw_msg(pause_get_menu_msg(0x39), baseX + 78, baseY + 85, 255, 0, 1);
draw_number(gPlayerData.curMaxFP, baseX + 105, baseY + 85, 1, 0, 255, 3);
draw_msg(pause_get_menu_msg(0x39), baseX + COL_B_X, baseY + ROW_3_Y, 255, 0, 1);
draw_number(gPlayerData.curMaxFP, baseX + COL_C_X, baseY + ROW_3_Y + NUMBER_OFFSET_Y, 1, 0, 255, 3);
pause_draw_menu_label(2, baseX + 21, baseY + 103);
hud_element_set_render_pos(gPauseStatsIconIDs[9], baseX + 52, baseY + 126);
hud_element_draw_without_clipping(gPauseStatsIconIDs[9]);
draw_msg(pause_get_menu_msg(0x38), baseX + 25, baseY + 119, 255, 0, 1);
draw_msg(pause_get_menu_msg(0x38), baseX + COL_A_X, baseY + ROW_4_Y, 255, 0, 1);
draw_number(gPlayerData.maxBP, baseX + 78, baseY + 119, 1, 0, 255, 3);
hud_element_set_render_pos(gPauseStatsIconIDs[6], baseX + 143, baseY + 140);
hud_element_draw_without_clipping(gPauseStatsIconIDs[6]);
@ -153,23 +178,25 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width,
if (frameCounter > 21599999) {
frameCounter = 21599999;
}
draw_number((frameCounter / 2160000) % 10, baseX + 237, baseY + 133, 1, 0xA, 255, 2);
draw_number((frameCounter / 216000) - ((frameCounter / 2160000) * 10), baseX + 246, baseY + 133, 1, 0xA, 255, 2);
draw_number((frameCounter / 2160000) % 10, baseX + 237, baseY + 133 + NUMBER_OFFSET_Y, 1, 0xA, 255, 2);
draw_number((frameCounter / 216000) - ((frameCounter / 2160000) * 10), baseX + 246, baseY + 133 + NUMBER_OFFSET_Y, 1, 0xA, 255, 2);
draw_msg(pause_get_menu_msg(0x3A), baseX + 257, baseY + 132, 255, 0xA, 1);
draw_msg(pause_get_menu_msg(0x3A), baseX + 257, baseY + 127, 255, 0xA, 1);
draw_number((frameCounter / 36000) - ((frameCounter / 216000) * 6), baseX + 264, baseY + 133, 1, 0xA, 255, 2);
draw_number((frameCounter / 3600) - ((frameCounter / 36000) * 10), baseX + 273, baseY + 133, 1, 0xA, 255, 2);
draw_number((frameCounter / 36000) - ((frameCounter / 216000) * 6), baseX + 264, baseY + 133 + NUMBER_OFFSET_Y, 1, 0xA, 255, 2);
draw_number((frameCounter / 3600) - ((frameCounter / 36000) * 10), baseX + 273, baseY + 133 + NUMBER_OFFSET_Y, 1, 0xA, 255, 2);
bootsLevel = gPlayerData.bootsLevel;
hammerLevel = gPlayerData.hammerLevel;
level = gPlayerData.level;
draw_box(4, &gPauseWS_10, baseX + 7, baseY + 12, 0, level >= 10 ? 0x79 : 0x71, 17, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL, SCREEN_WIDTH, SCREEN_HEIGHT, NULL);
#if !VERSION_CN
hud_element_set_render_pos(gPauseStatsIconIDs[0], baseX + 61, baseY + 21);
hud_element_draw_without_clipping(gPauseStatsIconIDs[0]);
#endif
draw_msg(pause_get_menu_msg(0x43), baseX + 16, baseY + 14, 255, 0, 1);
draw_msg(pause_get_menu_msg(0x44), baseX + 67, baseY + 14, 255, 0, 1);
draw_number(level, baseX + 106, baseY + 14, 1, 0, 255, 2);
draw_msg(pause_get_menu_msg(0x44), baseX + POS_1_X, baseY + 14, 255, 0, 1);
draw_number(level, baseX + POS_2_X, baseY + 14 + NUMBER_OFFSET_Y, 1, 0, 255, 2);
bootsLevel++;
if (bootsLevel < 0) {

View File

@ -56,8 +56,14 @@ void state_step_battle(void) {
func_8003B1A8();
gGameStatusPtr->isBattle = TRUE;
backup_map_collision_data();
#if VERSION_CN
battle_heap_create();
#else
load_obfuscation_shims();
shim_battle_heap_create_obfuscated();
#endif
sfx_clear_env_sounds(0);
currentBattleSelection = UNPACK_BTL_AREA(gCurrentBattleID);

View File

@ -144,6 +144,8 @@ DemoSceneData DemoScenes[] = {
char versionString[] = "Prg Ver.00/07/06 22:22";
#elif VERSION_US
char versionString[] = "Prg Ver.00/12/05 16:54";
#elif VERSION_CN
char versionString[] = "Prg Ver.04/05/18 10:52";
#else
char versionString[] = "Prg Ver.??/??/?? ??:??";
#endif

View File

@ -409,6 +409,14 @@ void title_screen_draw_logo(f32 arg0) {
gDPPipeSync(gMasterGfxPos++);
}
#if VERSION_CN
#define VAR_1 20
#define VAR_2 628
#else
#define VAR_1 32
#define VAR_2 676
#endif
void title_screen_draw_press_start(void) {
switch (D_80077A2C) {
case 0:
@ -440,12 +448,15 @@ void title_screen_draw_press_start(void) {
gDPSetCombineMode(gMasterGfxPos++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 248, 240, 152, D_80077A28);
gDPPipeSync(gMasterGfxPos++);
gDPLoadTextureBlock(gMasterGfxPos++, D_800A0980, G_IM_FMT_IA, G_IM_SIZ_8b, 128, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
gDPLoadTextureBlock(gMasterGfxPos++, D_800A0980, G_IM_FMT_IA, G_IM_SIZ_8b, 128, VAR_1, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(gMasterGfxPos++, 384, 548, 896, 676, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400);
gSPTextureRectangle(gMasterGfxPos++, 384, 548, 896, VAR_2, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400);
gDPPipeSync(gMasterGfxPos++);
}
#if VERSION_CN
INCLUDE_ASM(void, "state_title_screen", title_screen_draw_copyright);
#else
void title_screen_draw_copyright(f32 arg0) {
s32 alpha;
s32 i;
@ -485,3 +496,4 @@ void title_screen_draw_copyright(f32 arg0) {
#endif
gDPPipeSync(gMasterGfxPos++);
}
#endif

View File

@ -7,7 +7,9 @@ void dma_load_msg(u32 msgID, void* dest);
BSS CreditsData N(CreditsData);
BSS CreditsData* N(CreditsDataPtr);
#if !VERSION_CN
BSS s32 N(BSS_PAD_1)[2];
#endif
BSS u8 N(CreditsMessageBuffers)[23][256];
BSS Mtx N(CreditsProjMatrices)[2];

View File

@ -103,6 +103,74 @@ CreditsEntry N(Credits_Jobs)[] = {
.perCharDelayIn = 0,
.next = 60,
},
#if VERSION_CN
// *©2000-2004* NINTENDO
// *©2004* IQUE
{
.msgID = MSG_Credits_0007,
.posX = 120,
.posY = 172,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 0,
.flags = CREDITS_FLAG_1,
},
{
.msgID = MSG_Credits_0008,
.posX = 200,
.posY = 172,
.palette = 1,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 0,
.flags = CREDITS_FLAG_1,
},
{
.msgID = MSG_Credits_008A,
.posX = 135,
.posY = 188,
.palette = 0,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 0,
.flags = CREDITS_FLAG_1,
},
{
.msgID = MSG_Credits_0089,
.posX = 185,
.posY = 188,
.palette = 1,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 270,
.flags = CREDITS_FLAG_1,
},
#else
// *©2001* NINTENDO
{
.msgID = MSG_Credits_0007,
.posX = 131,
@ -134,12 +202,67 @@ CreditsEntry N(Credits_Jobs)[] = {
.next = 270,
.flags = CREDITS_FLAG_1,
},
#endif
{
.appearMode = CREDITS_APPEAR_MODE_04,
.appearTime = 0,
.perCharDelayIn = 0,
.next = 30,
},
#if VERSION_CN
// *GAME BY*
// INTELLIGENT SYSTEMS
// IQUE ENGINEERING
{
.msgID = MSG_Credits_0005,
.posX = STANDARD_POS_X,
.posY = 160,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 0,
.flags = CREDITS_FLAG_1,
},
{
.msgID = MSG_Credits_0006,
.posX = STANDARD_POS_X,
.posY = 176,
.palette = 1,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 0,
.flags = CREDITS_FLAG_1,
},
{
.msgID = MSG_Credits_0088,
.posX = 160,
.posY = 192,
.palette = 1,
.appearMode = CREDITS_APPEAR_MODE_00,
.appearTime = 60,
.perCharDelayIn = 0,
.holdMode = CREDITS_HOLD_MODE_00,
.holdTime = 160,
.vanishMode = CREDITS_VANISH_MODE_00,
.vanishTime = 50,
.perCharDelayOut = 0,
.next = 270,
.flags = CREDITS_FLAG_1,
},
#else
// *GAME BY*
// INTELLIGENT SYSTEMS
{
.msgID = MSG_Credits_0005,
.posX = STANDARD_POS_X,
@ -171,6 +294,7 @@ CreditsEntry N(Credits_Jobs)[] = {
.next = 270,
.flags = CREDITS_FLAG_1,
},
#endif
{
.appearMode = CREDITS_APPEAR_MODE_04,
.appearTime = 0,

View File

@ -90,6 +90,21 @@ EvtScript N(EVS_Main) = {
EVT_CALL(TranslateGroup, MODEL_e2, 0, 200, 0)
EVT_CALL(TranslateGroup, MODEL_r, 0, 200, 0)
EVT_THREAD
#if VERSION_CN
EVT_WAIT(6)
EVT_SET(LVar0, MODEL_g)
EVT_EXEC(N(EVS_DropLetter))
EVT_WAIT(6)
EVT_SET(LVar0, MODEL_m)
EVT_EXEC(N(EVS_DropLetter))
EVT_WAIT(6)
EVT_SET(LVar0, MODEL_o)
EVT_EXEC(N(EVS_DropLetter))
EVT_WAIT(6)
EVT_SET(LVar0, MODEL_e2)
EVT_EXEC(N(EVS_DropLetter))
EVT_WAIT(18)
#else
EVT_WAIT(6)
EVT_SET(LVar0, MODEL_g)
EVT_EXEC(N(EVS_DropLetter))
@ -114,6 +129,7 @@ EvtScript N(EVS_Main) = {
EVT_WAIT(18)
EVT_SET(LVar0, MODEL_r)
EVT_EXEC(N(EVS_DropLastLetter))
#endif
EVT_END_THREAD
EVT_THREAD
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 10, 0)

View File

@ -79,8 +79,14 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
gOverrideFlags &= ~GLOBAL_OVERRIDES_ENABLE_FLOOR_REFLECTION;
gGameStatusPtr->playerSpriteSet = PLAYER_SPRITES_MARIO_WORLD;
#if VERSION_CN
general_heap_create();
#else
load_obfuscation_shims();
shim_general_heap_create_obfuscated();
#endif
#if VERSION_JP
reset_max_rumble_duration();
#endif
@ -146,8 +152,13 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
load_map_bg(wMapBgName);
}
#if VERSION_CN
general_heap_create();
#else
load_obfuscation_shims();
shim_general_heap_create_obfuscated();
#endif
sfx_clear_env_sounds(0);
clear_worker_list();
clear_script_list();

View File

@ -8,7 +8,7 @@ import ninja_syntax
from glob import glob
# Configuration:
VERSIONS = ["us", "jp"]
VERSIONS = ["us", "jp", "cn"]
DO_SHA1_CHECK = True
# Paths:
@ -36,9 +36,9 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
non_matching: bool, shift: bool, debug: bool):
# platform-specific
if sys.platform == "darwin":
iconv = "tools/iconv.py UTF-8 SHIFT-JIS"
iconv = "tools/iconv.py UTF-8 $encoding"
elif sys.platform == "linux":
iconv = "iconv --from UTF-8 --to SHIFT-JIS"
iconv = "iconv --from UTF-8 --to $encoding"
else:
raise Exception(f"unsupported platform {sys.platform}")
@ -96,6 +96,11 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
command=f"{cross}objcopy $in $out -O binary {Z64_DEBUG} && {BUILD_TOOLS}/rom/n64crc $out",
)
ninja.rule("z64_ique",
description="rom $out",
command=f"{cross}objcopy $in $out -O binary {Z64_DEBUG}",
)
ninja.rule("sha1sum",
description="check $in",
command="sha1sum -c $in && touch $out" if DO_SHA1_CHECK else "touch $out",
@ -417,6 +422,10 @@ class Configure:
cflags = cflags.replace("gcc_272", "")
encoding = "SHIFT-JIS"
if version == "cn":
encoding = "EUC-JP"
# Dead cod
if isinstance(seg, segtypes.common.c.CommonSegC) and isinstance(seg.rom_start, int) and seg.rom_start >= 0xEA0900:
obj_path = str(entry.object_path)
@ -424,6 +433,7 @@ class Configure:
build(init_obj_path, entry.src_paths, task, variables={
"cflags": cflags,
"cppflags": f"-DVERSION_{self.version.upper()}",
"encoding": encoding,
})
build(
entry.object_path,
@ -437,6 +447,7 @@ class Configure:
build(entry.object_path, entry.src_paths, task, variables={
"cflags": cflags,
"cppflags": f"-DVERSION_{self.version.upper()}",
"encoding": encoding,
})
# images embedded inside data aren't linked, but they do need to be built into .inc.c files
@ -708,13 +719,22 @@ class Configure:
implicit=[str(obj) for obj in built_objects] + additional_objects,
variables={ "version": self.version, "mapfile": str(self.map_path()) },
)
ninja.build(
str(self.rom_path()),
"z64",
str(self.elf_path()),
implicit=[CRC_TOOL],
variables={ "version": self.version },
)
if self.version == "cn":
ninja.build(
str(self.rom_path()),
"z64_ique",
str(self.elf_path()),
variables={ "version": self.version },
)
else:
ninja.build(
str(self.rom_path()),
"z64",
str(self.elf_path()),
implicit=[CRC_TOOL],
variables={ "version": self.version },
)
if not non_matching:
ninja.build(

963
ver/cn/asm/bss.s Normal file
View File

@ -0,0 +1,963 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .bss
dlabel nuScPreNMIFlag
.space 4
dlabel D_8009A5B4
.space 4
dlabel D_8009A5B8
.space 4
dlabel D_8009A5BC
.space 4
dlabel __osFlashVersion
.space 4
dlabel gSoundGlobals
.space 4
dlabel D_8009A5C4
.space 4
dlabel __osBaseCounter
.space 4
dlabel gBGMPlayerC
.space 4
dlabel gEncounterSubState
.space 4
dlabel __osBbRCountWraps
.space 4
dlabel CurrentSefCmdHandler
.space 4
dlabel timeFreezeMode
.space 4
dlabel __osBbLastRCount
.space 4
dlabel nuGfxZBuffer
.space 4
dlabel nuContDataLockKey
.space 4
dlabel __osViIntrCount
.space 4
dlabel BeginSoundUpdateCallback
.space 4
dlabel D_8009A5EC
.space 4
dlabel nuGfxCfbCounter
.space 4
dlabel mdl_currentModelTreeNodeInfo
.space 4
dlabel nuGfxDisplay
.space 4
dlabel gBGMPlayerB
.space 4
dlabel gEncounterState
.space 4
dlabel gNpcCount
.space 2
dlabel __osMaxControllers
.space 2
dlabel __osFlashMsgBuf
.space 4
dlabel __osCurrentTime
.space 8
dlabel nuGfxUcode
.space 4
dlabel nuContNum
.space 4
dlabel __osBbLastVCount
.space 4
dlabel nuGfxTaskSpool
.space 4
dlabel __osContLastCmd
.space 4
dlabel __osEepromTimerMsg
.space 4
dlabel D_8009A624
.space 4
dlabel gAuAmbienceManager
.space 4
dlabel __osTimerCounter
.space 4
dlabel nuIdleFunc
.space 4
dlabel gCurrentCamID
.space 4
dlabel nuPiCartHandle
.space 4
dlabel __osBbVCountWraps
.space 4
dlabel D_8009A63C
.space 4
dlabel gSoundManager
.space 4
dlabel D_8009A644
.space 8
dlabel nuGfxCfb_ptr
.space 4
dlabel gOverrideFlags
.space 4
dlabel D_8009A654
.space 4
dlabel nuGfxCfb
.space 4
dlabel D_8009A65C
.space 4
dlabel __osFinalrom
.space 4
dlabel gBGMPlayerA
.space 4
dlabel gFirstStrikeMessagePos
.space 4
dlabel gMasterGfxPos
.space 4
dlabel D_8009A670
.space 4
dlabel gDisplayContext
.space 4
dlabel D_8009A678
.space 4
dlabel D_8009A67C
.space 4
.space 8
dlabel D_8009A680
.space 4
dlabel D_8009A684
.space 0x0000000c
dlabel D_8009A690
.space 4
dlabel D_8009A694
.space 0x0000000c
dlabel D_8009A6A0
.space 2
dlabel D_8009A6A2
.space 2
dlabel D_8009A6A4
.space 2
dlabel D_8009A6A6
.space 2
dlabel D_8009A6A8
.space 8
dlabel D_8009A6B0
.space 0x00001380
dlabel logicalSaveInfo
.space 0x00000020
dlabel physicalSaveInfo
.space 0x00000030
dlabel nextAvailableSavePage
.space 4
dlabel D_8009BA84
.space 0x0000000c
dlabel gCurtainScale
.space 4
dlabel gCurtainScaleGoal
.space 4
dlabel gCurtainFade
.space 4
dlabel gCurtainFadeGoal
.space 4
dlabel gCurtainDrawCallback
.space 4
dlabel D_8009BAA4
.space 4
dlabel D_8009BAA8
.space 0x00000080
dlabel D_8009BA28
.space 8
dlabel gCrashScreen
.space 0x000009e0
dlabel nuGfxTask_ptr
.space 4
dlabel taskDoneMsg
.space 2
dlabel swapBufMsg
.space 2
dlabel GfxTaskMgrThread
.space 0x000001b0
.align 4
dlabel GfxTaskMgrStack
.space 0x00002000
dlabel D_8009E6D0
.space 0x00000020
dlabel blendedCamSettings
.space 0x0000001c
dlabel D_800A08DC
.space 4
dlabel D_800A08E0
.space 4
dlabel D_800A08E4
.space 4
dlabel D_800A08E8
.space 4
dlabel D_800A08EC
.space 4
dlabel gameMode
.space 4
dlabel D_800A08F4
.space 0x0000000c
dlabel D_800A0900
.space 4
dlabel D_800A0904
.space 4
dlabel D_800A0908
.space 4
dlabel D_800A090C
.space 4
dlabel gLogosImages
.space 4
dlabel gLogosImage3
.space 4
dlabel gLogosImage1
.space 4
dlabel gLogosImage2
.space 4
dlabel D_800A0920
.space 1
dlabel D_800A0921
.space 1
dlabel D_800A0922
.space 2
dlabel SavedReverbMode
.space 4
dlabel D_800A0928
.space 8
dlabel D_800A0930
.space 1
dlabel D_800A0931
.space 1
dlabel D_800A0932
.space 2
dlabel D_800A0934
.space 0x0000000c
dlabel gMapTransitionAlpha
.space 2
dlabel gMapTransitionFadeRate
.space 2
dlabel gMapTransitionState
.space 2
dlabel gMapTransitionStateTime
.space 2
dlabel D_800A0948
.space 4
dlabel D_800A094C
.space 4
dlabel D_800A0950
.space 4
dlabel D_800A0954
.space 2
dlabel D_800A0956
.space 2
dlabel D_800A0958
.space 2
dlabel D_800A095A
.space 1
dlabel D_800A095B
.space 1
dlabel D_800A095C
.space 1
dlabel D_800A095D
.space 1
dlabel D_800A095E
.space 1
dlabel D_800A095F
.space 1
dlabel D_800A0960
.space 0x00000003
dlabel D_800A0963
.space 1
dlabel D_800A0964
.space 4
dlabel D_800A0968
.space 8
dlabel D_800A0970
.space 4
dlabel D_800A0974
.space 4
dlabel D_800A0978
.space 4
dlabel D_800A097C
.space 4
dlabel D_800A0980
.space 4
dlabel D_800A0984
.space 4
dlabel D_800A0988
.space 4
dlabel D_800A098C
.space 4
dlabel gWorldNpcList
.space 0x00000100
dlabel gBattleNpcList
.space 0x00000100
dlabel gCurrentNpcListPtr
.space 4
dlabel D_800A0B94
.space 4
dlabel D_800A0B98
.space 8
dlabel D_800A0BA0
.space 4
dlabel D_800A0BA4
.space 4
dlabel WorldMerleeOrbEffect
.space 4
dlabel WorldMerleeWaveEffect
.space 4
dlabel D_800A0BB0
.space 4
dlabel D_800A0BB4
.space 4
dlabel D_800A0BB8
.space 4
dlabel D_800A0BBC
.space 4
dlabel D_800A0BC0
.space 0x00000380
dlabel D_800A0F40
.space 4
dlabel D_800A0F44
.space 4
dlabel D_800A0F48
.space 8
dlabel AuInitialGlobalVolume
.space 4
dlabel D_800A0F54
.space 4
dlabel nuAuMgrThread
.space 0x000001b0
# TODO: figure out what this extra space is used for
.space 0x00000408
dlabel AuStack
.space 0x00002000
dlabel AlCmdListBuffers
.space 0x0000000c
dlabel D_800A351C
.space 4
dlabel nuAuTasks
.space 0x00000108
dlabel D_800A3628
.space 0x0000000c
dlabel AlFrameSize
.space 4
dlabel AlMinFrameSize
.space 4
dlabel D_800A363C
.space 4
dlabel nuAuDmaMesgQ
.space 4
dlabel D_800A3644
.space 0x00000014
dlabel nuAuDmaMesgBuf
.space 0x000000c8
dlabel nuAuDmaIOMesgBuf
.space 0x000004b0
dlabel nuAuDmaState
.space 4
dlabel D_800A3BD4
.space 4
dlabel D_800A3BD8
.space 8
dlabel nuAuDmaBufList
.space 0x000003e8
dlabel D_800A3FC8
.space 8
dlabel CurrentSeqCmdHandler
.space 4
dlabel D_800A3FD4
.space 0x0000000c
dlabel AuDelayBufferMain
.space 4
dlabel AuDelayBufferAux
.space 4
dlabel AuDelayCounter
.space 4
dlabel AuDelayedVoiceGroup
.space 2
dlabel AuDelayedChannel
.space 2
dlabel AuDelayCount
.space 4
dlabel D_800A3FF4
.space 0x0000000c
dlabel gEffectGraphicsData
.space 0x000001b4
dlabel D_800A41B4
.space 0x0000000c
dlabel D_800A41C0
.space 4
dlabel D_800A41C4
.space 0x0000001c
dlabel gMapConfig
.space 4
dlabel D_800A41E4
.space 4
dlabel gMapSettings
.space 4
dlabel D_800A41EC
.space 0x00000044
dlabel gCollisionRayStartX
.space 4
dlabel gCollisionRayStartY
.space 4
dlabel gCollisionRayStartZ
.space 4
dlabel gCollisionRayDirX
.space 4
dlabel gCollisionRayDirY
.space 4
dlabel gCollisionRayDirZ
.space 4
dlabel gCollisionPointX
.space 4
dlabel gCollisionPointY
.space 4
dlabel gCollisionPointZ
.space 4
dlabel gCollisionRayLength
.space 4
dlabel gCollisionNormalX
.space 4
dlabel gCollisionNormalY
.space 4
dlabel gCollisionNormalZ
.space 4
dlabel gCollisionDataBackup
.space 4
dlabel gCollisionDataZoneBackup
.space 4
dlabel D_800A426C
.space 4
dlabel IdleThread
.space 0x000001b0
dlabel MainThread
.space 0x000001b0
dlabel IdleStack
.space 0x00002000
dlabel nuScStack
.space 0x00002000
dlabel nuScAudioStack
.space 0x00002000
dlabel nuScGraphicsStack
.space 0x00002000
dlabel D_800AC5D0
.space 4
dlabel D_800AC5D4
.space 0x00000014
dlabel D_800AC5E8
.space 0x000000c8
dlabel nuGfxMesgBuf
.space 0x00000020
dlabel GfxStack
.space 0x00002000
dlabel nuSiMesgBuf
.space 0x00000020
dlabel siMgrThread
.space 0x1b0
dlabel siMgrStack
.space 0x2000
dlabel nuContWaitMesgBuf
.space 4
dlabel nuContDataMutexBuf
.space 4
.align 4
dlabel tmp_task
.space 0x00000040
dlabel siAccessBuf
.space 4
dlabel D_800AC6D8
.space 8
.space 4
dlabel retrace
.space 4
.space 4
dlabel viThread
.space 0x1B0
dlabel viThreadStack
.space 0x1000
dlabel viEventQueue
.space 0x18
dlabel viEventBuf
.space 4 * 5
dlabel viRetraceMsg
.space 0x00000018
dlabel viCounterMsg
.space 0x00000018
.align 4
dlabel piThread
.space 0x1B0
dlabel piThreadStack
.space 0x1000
dlabel piEventQueue
.space 0x18
dlabel piEventBuf
.space 4
dlabel D_800AF8AC
.space 4
dlabel piAccessBuf
.space 4
.space 0x24
dlabel wMapTexName
.space 4
dlabel D_800B0CF4
.space 0x00000014
dlabel D_800B0D08
dlabel __osThreadSave
.space 0x1b0
dlabel nuContWaitMesgQ
.space 0x18
.align 4
dlabel __osContPifRam
.space 0x40
dlabel gCurrentEncounter
.space 0x00000bf4
dlabel __Dom2SpeedParam
.space 0x74
dlabel nuContStatus
.space 0x4 * 4
dlabel D_800B1B90
.space 0x000001b0
dlabel nuContRmbCtl
.space 0xA * 4
.space 2
.align 4
dlabel nuContData
.space 6 * 4
.align 4
dlabel gCameras
.space 0x00001560
dlabel D_800B32E0
.space 0x800
dlabel D_800B3AE0
.space 0x800
dlabel gCollisionData
.space 0x10
dlabel nuGfxMesgQ
.space 0x18
dlabel __CartRomHandle
.space 0x74
dlabel __osPiAccessQueue
.space 0x18
.align 3
dlabel gEffectInstances
.space 4*96
dlabel __Dom1SpeedParam
.space 0x74
.align 4
dlabel nuBootStack
.space 0x00002000
dlabel nuMainStack
.space 0x00002000
dlabel nuYieldBuf
.space 0x00000c10
dlabel auSynDriver
.space 0x00000030
dlabel D_800B91D0
.space 0x00020000
dlabel __osFlashHandler
.space 0x00000074
.align 3
dlabel gZoneCollisionData
.space 0x00000010
dlabel wMapHitName
.space 0x00000014
dlabel nuSiMgrMesgQ
.space 0x00000018
.align 3
dlabel __osBaseTimer
.space 0x20
dlabel wMapShapeName
.space 0x00000018
dlabel nuAuHeap
.space 0x00000010
dlabel __osFlashMessageQ
.space 0x18
# TODO: figure out where this space comes from
.space 0x20
dlabel nuGfxTask
.space 0x58*10
dlabel D_800D95E8
.space 0x80
dlabel wMapBgName
.space 0x00000014
dlabel __osPfsInodeCache
.space 0x00000100
dlabel __osEventStateTab
.space 0x00000100
.align 4
dlabel __osPfsPifRam
.space 0x0000003c
.space 4
dlabel D_800DA040
.space 0x00000400
dlabel nusched
.space 0x67e
.align 3
dlabel __osEepromTimerQ
.space 0x00000018
dlabel nuContPfs
.space 0x68 * 4
dlabel nuSiMesgQ
.space 0x00000018
dlabel D_800DAC90
.space 0x00000018
dlabel __osSiAccessQueue
.space 0x00000018
dlabel __osBbFlashBuffer
.space 0x80
dlabel gCurrentSaveFile
.space 0x00001380
dlabel nuContDataMutexQ
.space 0x00000020
dlabel D_800DC060
.space 4
dlabel gCurrentStagePtr
.space 4
dlabel gBattleState
.space 4
dlabel D_800DC06C
.space 4
dlabel gBattleStatus
.space 0x00000460
dlabel gLastDrawBattleState
.space 4
dlabel D_800DC4D4
.space 4
dlabel gDefeatedBattleSubstate
.space 4
dlabel gBattleSubState
.space 4
dlabel D_800DC4E0
.space 4
dlabel gDefeatedBattleState
.space 4
dlabel gCurrentBattleID
.space 4
dlabel gCurrentStageID
.space 4
dlabel D_800DC4F0
.space 4
dlabel gOverrideBattlePtr
.space 4
dlabel D_800DC4F8
.space 4
dlabel gCurrentBattlePtr
.space 4

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,279 @@
.include "macro.inc"
.section .rodata
/* Generated by spimdisasm 1.11.1 */
glabel D_IQUE_80098710
/* 73B10 80098710 3FB999999999999A */ .double 0.100000000000000006
glabel D_IQUE_80098718
/* 73B18 80098718 3FB999999999999A */ .double 0.100000000000000006
glabel D_IQUE_80098720
/* 73B20 80098720 3F91DF469D353918 */ .double 0.017453292222222222
/* 73B28 80098728 00000000 */ .double 0
glabel D_IQUE_80098730
/* 73B30 80098730 */ .asciz " +-#0"
.balign 4
glabel D_IQUE_80098738
/* 73B38 80098738 00000001 */ .word 0x00000001
/* 73B3C 8009873C 00000002 */ .word 0x00000002
/* 73B40 80098740 00000004 */ .word 0x00000004
/* 73B44 80098744 00000008 */ .word 0x00000008
/* 73B48 80098748 00000010 */ .word 0x00000010
/* 73B4C 8009874C 00000000 */ .word 0x00000000
glabel D_IQUE_80098750
/* 73B50 80098750 */ .asciz "hlL"
.balign 4
/* 73B54 80098754 */ .asciz ""
.balign 4
.align 3
glabel jtbl_IQUE_80098758
/* 73B58 80098758 800635F4 */ .word .LIQUE_800635F4
/* 73B5C 8009875C 8006360C */ .word .LIQUE_8006360C
/* 73B60 80098760 8006360C */ .word .LIQUE_8006360C
/* 73B64 80098764 8006360C */ .word .LIQUE_8006360C
/* 73B68 80098768 8006360C */ .word .LIQUE_8006360C
/* 73B6C 8009876C 8006360C */ .word .LIQUE_8006360C
/* 73B70 80098770 8006360C */ .word .LIQUE_8006360C
/* 73B74 80098774 8006360C */ .word .LIQUE_8006360C
/* 73B78 80098778 8006360C */ .word .LIQUE_8006360C
/* 73B7C 8009877C 8006360C */ .word .LIQUE_8006360C
/* 73B80 80098780 8006360C */ .word .LIQUE_8006360C
/* 73B84 80098784 8006360C */ .word .LIQUE_8006360C
/* 73B88 80098788 8006360C */ .word .LIQUE_8006360C
/* 73B8C 8009878C 8006360C */ .word .LIQUE_8006360C
/* 73B90 80098790 8006360C */ .word .LIQUE_8006360C
/* 73B94 80098794 8006360C */ .word .LIQUE_8006360C
/* 73B98 80098798 8006360C */ .word .LIQUE_8006360C
/* 73B9C 8009879C 8006360C */ .word .LIQUE_8006360C
/* 73BA0 800987A0 8006360C */ .word .LIQUE_8006360C
/* 73BA4 800987A4 8006360C */ .word .LIQUE_8006360C
/* 73BA8 800987A8 8006360C */ .word .LIQUE_8006360C
/* 73BAC 800987AC 8006360C */ .word .LIQUE_8006360C
/* 73BB0 800987B0 8006360C */ .word .LIQUE_8006360C
/* 73BB4 800987B4 8006360C */ .word .LIQUE_8006360C
/* 73BB8 800987B8 8006360C */ .word .LIQUE_8006360C
/* 73BBC 800987BC 8006360C */ .word .LIQUE_8006360C
/* 73BC0 800987C0 8006360C */ .word .LIQUE_8006360C
/* 73BC4 800987C4 8006360C */ .word .LIQUE_8006360C
/* 73BC8 800987C8 8006360C */ .word .LIQUE_8006360C
/* 73BCC 800987CC 8006360C */ .word .LIQUE_8006360C
/* 73BD0 800987D0 8006360C */ .word .LIQUE_8006360C
/* 73BD4 800987D4 8006360C */ .word .LIQUE_8006360C
/* 73BD8 800987D8 80063424 */ .word .LIQUE_80063424
/* 73BDC 800987DC 8006360C */ .word .LIQUE_8006360C
/* 73BE0 800987E0 80063424 */ .word .LIQUE_80063424
/* 73BE4 800987E4 8006360C */ .word .LIQUE_8006360C
/* 73BE8 800987E8 8006360C */ .word .LIQUE_8006360C
/* 73BEC 800987EC 8006360C */ .word .LIQUE_8006360C
/* 73BF0 800987F0 8006360C */ .word .LIQUE_8006360C
/* 73BF4 800987F4 8006360C */ .word .LIQUE_8006360C
/* 73BF8 800987F8 8006360C */ .word .LIQUE_8006360C
/* 73BFC 800987FC 8006360C */ .word .LIQUE_8006360C
/* 73C00 80098800 8006360C */ .word .LIQUE_8006360C
/* 73C04 80098804 8006360C */ .word .LIQUE_8006360C
/* 73C08 80098808 8006360C */ .word .LIQUE_8006360C
/* 73C0C 8009880C 8006360C */ .word .LIQUE_8006360C
/* 73C10 80098810 8006360C */ .word .LIQUE_8006360C
/* 73C14 80098814 8006360C */ .word .LIQUE_8006360C
/* 73C18 80098818 8006360C */ .word .LIQUE_8006360C
/* 73C1C 8009881C 8006360C */ .word .LIQUE_8006360C
/* 73C20 80098820 8006360C */ .word .LIQUE_8006360C
/* 73C24 80098824 80063324 */ .word .LIQUE_80063324
/* 73C28 80098828 8006360C */ .word .LIQUE_8006360C
/* 73C2C 8009882C 8006360C */ .word .LIQUE_8006360C
/* 73C30 80098830 8006360C */ .word .LIQUE_8006360C
/* 73C34 80098834 8006360C */ .word .LIQUE_8006360C
/* 73C38 80098838 8006360C */ .word .LIQUE_8006360C
/* 73C3C 8009883C 8006360C */ .word .LIQUE_8006360C
/* 73C40 80098840 8006360C */ .word .LIQUE_8006360C
/* 73C44 80098844 8006360C */ .word .LIQUE_8006360C
/* 73C48 80098848 8006360C */ .word .LIQUE_8006360C
/* 73C4C 8009884C 8006360C */ .word .LIQUE_8006360C
/* 73C50 80098850 800631F0 */ .word .LIQUE_800631F0
/* 73C54 80098854 80063228 */ .word .LIQUE_80063228
/* 73C58 80098858 80063424 */ .word .LIQUE_80063424
/* 73C5C 8009885C 80063424 */ .word .LIQUE_80063424
/* 73C60 80098860 80063424 */ .word .LIQUE_80063424
/* 73C64 80098864 8006360C */ .word .LIQUE_8006360C
/* 73C68 80098868 80063228 */ .word .LIQUE_80063228
/* 73C6C 8009886C 8006360C */ .word .LIQUE_8006360C
/* 73C70 80098870 8006360C */ .word .LIQUE_8006360C
/* 73C74 80098874 8006360C */ .word .LIQUE_8006360C
/* 73C78 80098878 8006360C */ .word .LIQUE_8006360C
/* 73C7C 8009887C 800634BC */ .word .LIQUE_800634BC
/* 73C80 80098880 80063324 */ .word .LIQUE_80063324
/* 73C84 80098884 80063560 */ .word .LIQUE_80063560
/* 73C88 80098888 8006360C */ .word .LIQUE_8006360C
/* 73C8C 8009888C 8006360C */ .word .LIQUE_8006360C
/* 73C90 80098890 800635AC */ .word .LIQUE_800635AC
/* 73C94 80098894 8006360C */ .word .LIQUE_8006360C
/* 73C98 80098898 80063324 */ .word .LIQUE_80063324
/* 73C9C 8009889C 8006360C */ .word .LIQUE_8006360C
/* 73CA0 800988A0 8006360C */ .word .LIQUE_8006360C
/* 73CA4 800988A4 80063324 */ .word .LIQUE_80063324
/* 73CA8 800988A8 00000000 */ .word 0x00000000
/* 73CAC 800988AC 00000000 */ .word 0x00000000
glabel D_IQUE_800988B0
/* 73CB0 800988B0 */ .byte 0x00
/* 73CB1 800988B1 */ .byte 0x14
/* 73CB2 800988B2 */ .byte 0x18
/* 73CB3 800988B3 */ .byte 0x18
/* 73CB4 800988B4 */ .byte 0x1C
/* 73CB5 800988B5 */ .byte 0x1C
/* 73CB6 800988B6 */ .byte 0x1C
/* 73CB7 800988B7 */ .byte 0x1C
/* 73CB8 800988B8 */ .byte 0x20
/* 73CB9 800988B9 */ .byte 0x20
/* 73CBA 800988BA */ .byte 0x20
/* 73CBB 800988BB */ .byte 0x20
/* 73CBC 800988BC */ .byte 0x20
/* 73CBD 800988BD */ .byte 0x20
/* 73CBE 800988BE */ .byte 0x20
/* 73CBF 800988BF */ .byte 0x20
/* 73CC0 800988C0 */ .byte 0x00
/* 73CC1 800988C1 */ .byte 0x04
/* 73CC2 800988C2 */ .byte 0x08
/* 73CC3 800988C3 */ .byte 0x08
/* 73CC4 800988C4 */ .byte 0x0C
/* 73CC5 800988C5 */ .byte 0x0C
/* 73CC6 800988C6 */ .byte 0x0C
/* 73CC7 800988C7 */ .byte 0x0C
/* 73CC8 800988C8 */ .byte 0x10
/* 73CC9 800988C9 */ .byte 0x10
/* 73CCA 800988CA */ .byte 0x10
/* 73CCB 800988CB */ .byte 0x10
/* 73CCC 800988CC */ .byte 0x10
/* 73CCD 800988CD */ .byte 0x10
/* 73CCE 800988CE */ .byte 0x10
/* 73CCF 800988CF */ .byte 0x10
.align 3
glabel jtbl_IQUE_800988D0
/* 73CD0 800988D0 80066894 */ .word .LIQUE_80066894
/* 73CD4 800988D4 80066858 */ .word .LIQUE_80066858
/* 73CD8 800988D8 80066834 */ .word .LIQUE_80066834
/* 73CDC 800988DC 8006664C */ .word .LIQUE_8006664C
/* 73CE0 800988E0 80066508 */ .word .LIQUE_80066508
/* 73CE4 800988E4 800667C0 */ .word .LIQUE_800667C0
/* 73CE8 800988E8 800664CC */ .word .LIQUE_800664CC
/* 73CEC 800988EC 800664D8 */ .word .LIQUE_800664D8
/* 73CF0 800988F0 800664E4 */ .word .LIQUE_800664E4
/* 73CF4 800988F4 00000000 */ .word 0x00000000
/* 73CF8 800988F8 00000000 */ .word 0x00000000
/* 73CFC 800988FC 00000000 */ .word 0x00000000
glabel D_IQUE_80098900
/* 73D00 80098900 */ .short 0x0555
/* 73D02 80098902 */ .short 0x0556
/* 73D04 80098904 */ .short 0x0559
/* 73D06 80098906 */ .short 0x055A
/* 73D08 80098908 */ .short 0x0565
/* 73D0A 8009890A */ .short 0x0566
/* 73D0C 8009890C */ .short 0x0569
/* 73D0E 8009890E */ .short 0x056A
/* 73D10 80098910 */ .short 0x0595
/* 73D12 80098912 */ .short 0x0596
/* 73D14 80098914 */ .short 0x0599
/* 73D16 80098916 */ .short 0x059A
/* 73D18 80098918 */ .short 0x05A5
/* 73D1A 8009891A */ .short 0x05A6
/* 73D1C 8009891C */ .short 0x05A9
/* 73D1E 8009891E */ .short 0x05AA
/* 73D20 80098920 */ .short 0x0655
/* 73D22 80098922 */ .short 0x0656
/* 73D24 80098924 */ .short 0x0659
/* 73D26 80098926 */ .short 0x065A
/* 73D28 80098928 */ .short 0x0665
/* 73D2A 8009892A */ .short 0x0666
/* 73D2C 8009892C */ .short 0x0669
/* 73D2E 8009892E */ .short 0x066A
/* 73D30 80098930 */ .short 0x0695
/* 73D32 80098932 */ .short 0x0696
/* 73D34 80098934 */ .short 0x0699
/* 73D36 80098936 */ .short 0x069A
/* 73D38 80098938 */ .short 0x06A5
/* 73D3A 8009893A */ .short 0x06A6
/* 73D3C 8009893C */ .short 0x06A9
/* 73D3E 8009893E */ .short 0x06AA
/* 73D40 80098940 */ .short 0x0955
/* 73D42 80098942 */ .short 0x0956
/* 73D44 80098944 */ .short 0x0959
/* 73D46 80098946 */ .short 0x095A
/* 73D48 80098948 */ .short 0x0965
/* 73D4A 8009894A */ .short 0x0966
/* 73D4C 8009894C */ .short 0x0969
/* 73D4E 8009894E */ .short 0x096A
/* 73D50 80098950 */ .short 0x0995
/* 73D52 80098952 */ .short 0x0996
/* 73D54 80098954 */ .short 0x0999
/* 73D56 80098956 */ .short 0x099A
/* 73D58 80098958 */ .short 0x09A5
/* 73D5A 8009895A */ .short 0x09A6
/* 73D5C 8009895C */ .short 0x09A9
/* 73D5E 8009895E */ .short 0x09AA
/* 73D60 80098960 */ .short 0x0A55
/* 73D62 80098962 */ .short 0x0A56
/* 73D64 80098964 */ .short 0x0A59
/* 73D66 80098966 */ .short 0x0A5A
/* 73D68 80098968 */ .short 0x0A65
/* 73D6A 8009896A */ .short 0x0A66
/* 73D6C 8009896C */ .short 0x0A69
/* 73D6E 8009896E */ .short 0x0A6A
/* 73D70 80098970 */ .short 0x0A95
/* 73D72 80098972 */ .short 0x0A96
/* 73D74 80098974 */ .short 0x0A99
/* 73D76 80098976 */ .short 0x0A9A
/* 73D78 80098978 */ .short 0x0AA5
/* 73D7A 8009897A */ .short 0x0AA6
/* 73D7C 8009897C */ .short 0x0AA9
/* 73D7E 8009897E */ .short 0x0AAA
.align 3
glabel jtbl_IQUE_80098980
/* 73D80 80098980 80067A7C */ .word .LIQUE_80067A7C
/* 73D84 80098984 8006790C */ .word .LIQUE_8006790C
/* 73D88 80098988 80067984 */ .word .LIQUE_80067984
/* 73D8C 8009898C 80067A88 */ .word .LIQUE_80067A88
/* 73D90 80098990 80067A88 */ .word .LIQUE_80067A88
/* 73D94 80098994 800679B8 */ .word .LIQUE_800679B8
/* 73D98 80098998 80067A40 */ .word .LIQUE_80067A40
/* 73D9C 8009899C 00000000 */ .word 0x00000000
glabel xldtob_pows
/* 73DA0 800989A0 4024000000000000 */ .double 10
/* 73DA8 800989A8 4059000000000000 */ .double 100
/* 73DB0 800989B0 40C3880000000000 */ .double 10000
/* 73DB8 800989B8 4197D78400000000 */ .double 100000000
/* 73DC0 800989C0 4341C37937E08000 */ .double 10000000000000000
/* 73DC8 800989C8 4693B8B5B5056E17 */ .double 1.00000000000000005e+32
/* 73DD0 800989D0 4D384F03E93FF9F5 */ .double 1.00000000000000002e+64
/* 73DD8 800989D8 5A827748F9301D32 */ .double 1.00000000000000008e+128
/* 73DE0 800989E0 75154FDD7F73BF3C */ .double 1.00000000000000003e+256
glabel xldtob_800989e8
/* 73DE8 800989E8 4E614E00 */ .word 0x4E614E00
glabel xldtob_800989ec
/* 73DEC 800989EC 496E6600 */ .word 0x496E6600
glabel xldtob_800989f0
/* 73DF0 800989F0 4197D784 */ .word 0x4197D784
/* 73DF4 800989F4 00000000 */ .word 0x00000000
glabel D_IQUE_800989F8
/* 73DF8 800989F8 */ .byte 0x30
/* 73DF9 800989F9 */ .byte 0x00
/* 73DFA 800989FA */ .byte 0x00
/* 73DFB 800989FB */ .byte 0x00
/* 73DFC 800989FC */ .byte 0x00
/* 73DFD 800989FD */ .byte 0x00
/* 73DFE 800989FE */ .byte 0x00
/* 73DFF 800989FF */ .byte 0x00

File diff suppressed because it is too large Load Diff

38
ver/cn/asm/entry_point.s Normal file
View File

@ -0,0 +1,38 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel func_IQUE_80025C00
/* 1000 80025C00 3C08800A */ lui $t0, %hi(main_BSS_START)
/* 1004 80025C04 25089170 */ addiu $t0, $t0, %lo(main_BSS_START)
/* 1008 80025C08 3C090004 */ lui $t1, %hi(main_BSS_SIZE)
/* 100C 80025C0C 25291770 */ addiu $t1, $t1, %lo(main_BSS_SIZE)
.LIQUE_80025C10:
/* 1010 80025C10 AD000000 */ sw $zero, 0x0($t0)
/* 1014 80025C14 AD000004 */ sw $zero, 0x4($t0)
/* 1018 80025C18 21080008 */ addi $t0, $t0, 0x8 # handwritten instruction
/* 101C 80025C1C 2129FFF8 */ addi $t1, $t1, -0x8 # handwritten instruction
/* 1020 80025C20 1520FFFB */ bnez $t1, .LIQUE_80025C10
/* 1024 80025C24 00000000 */ nop
/* 1028 80025C28 3C1D800B */ lui $sp, %hi(nuBootStack + 0x2000)
/* 102C 80025C2C 27BD4FE0 */ addiu $sp, $sp, %lo(nuBootStack + 0x2000)
/* 1030 80025C30 3C0A8006 */ lui $t2, %hi(nuBoot)
/* 1034 80025C34 254ADF60 */ addiu $t2, $t2, %lo(nuBoot)
/* 1038 80025C38 01400008 */ jr $t2
/* 103C 80025C3C 00000000 */ nop
/* 1040 80025C40 00000000 */ nop
/* 1044 80025C44 00000000 */ nop
/* 1048 80025C48 00000000 */ nop
/* 104C 80025C4C 00000000 */ nop
/* 1050 80025C50 00000000 */ nop
/* 1054 80025C54 00000000 */ nop
/* 1058 80025C58 00000000 */ nop
/* 105C 80025C5C 00000000 */ nop

16
ver/cn/asm/header.s Normal file
View File

@ -0,0 +1,16 @@
.section .data
.word 0x80371240 /* PI BSB Domain 1 register */
.word 0x0000000F /* Clockrate setting */
.word 0x80025C00 /* Entrypoint address */
.word 0x0000144C /* Revision */
.word 0x00000000 /* Checksum 1 */
.word 0x00000000 /* Checksum 2 */
.word 0x00000000 /* Unknown 1 */
.word 0x00000000 /* Unknown 2 */
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" /* Internal name */
.word 0x00000000 /* Unknown 3 */
.word 0x00000000 /* Cartridge */
.ascii "\0\0" /* Cartridge ID */
.ascii "\0" /* Country code */
.byte 0x00 /* Version */

View File

@ -0,0 +1,82 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel memset
/* 434E0 800680E0 10C00006 */ beqz $a2, .LIQUE_800680FC
/* 434E4 800680E4 00003821 */ addu $a3, $zero, $zero
.LIQUE_800680E8:
/* 434E8 800680E8 00871021 */ addu $v0, $a0, $a3
/* 434EC 800680EC 24E70001 */ addiu $a3, $a3, 0x1
/* 434F0 800680F0 00E6182B */ sltu $v1, $a3, $a2
/* 434F4 800680F4 1460FFFC */ bnez $v1, .LIQUE_800680E8
/* 434F8 800680F8 A0450000 */ sb $a1, 0x0($v0)
.LIQUE_800680FC:
/* 434FC 800680FC 03E00008 */ jr $ra
/* 43500 80068100 00801021 */ addu $v0, $a0, $zero
glabel memcmp
/* 43504 80068104 0801A04B */ j .LIQUE_8006812C
/* 43508 80068108 00C01021 */ addu $v0, $a2, $zero
.LIQUE_8006810C:
/* 4350C 8006810C 90A30000 */ lbu $v1, 0x0($a1)
/* 43510 80068110 24A50001 */ addiu $a1, $a1, 0x1
/* 43514 80068114 90820000 */ lbu $v0, 0x0($a0)
/* 43518 80068118 10430003 */ beq $v0, $v1, .LIQUE_80068128
/* 4351C 8006811C 24840001 */ addiu $a0, $a0, 0x1
/* 43520 80068120 03E00008 */ jr $ra
/* 43524 80068124 00431023 */ subu $v0, $v0, $v1
.LIQUE_80068128:
/* 43528 80068128 00C01021 */ addu $v0, $a2, $zero
.LIQUE_8006812C:
/* 4352C 8006812C 1440FFF7 */ bnez $v0, .LIQUE_8006810C
/* 43530 80068130 24C6FFFF */ addiu $a2, $a2, -0x1
/* 43534 80068134 03E00008 */ jr $ra
/* 43538 80068138 00001021 */ addu $v0, $zero, $zero
glabel strncmp
/* 4353C 8006813C 0801A05F */ j .LIQUE_8006817C
/* 43540 80068140 00004021 */ addu $t0, $zero, $zero
.LIQUE_80068144:
/* 43544 80068144 0106102A */ slt $v0, $t0, $a2
/* 43548 80068148 10400011 */ beqz $v0, .LIQUE_80068190
/* 4354C 8006814C 00000000 */ nop
/* 43550 80068150 15400005 */ bnez $t2, .LIQUE_80068168
/* 43554 80068154 00000000 */ nop
/* 43558 80068158 1520000D */ bnez $t1, .LIQUE_80068190
/* 4355C 8006815C 00001021 */ addu $v0, $zero, $zero
/* 43560 80068160 03E00008 */ jr $ra
/* 43564 80068164 00000000 */ nop
.LIQUE_80068168:
/* 43568 80068168 10E00009 */ beqz $a3, .LIQUE_80068190
/* 4356C 8006816C 00000000 */ nop
/* 43570 80068170 24840001 */ addiu $a0, $a0, 0x1
/* 43574 80068174 24A50001 */ addiu $a1, $a1, 0x1
/* 43578 80068178 25080001 */ addiu $t0, $t0, 0x1
.LIQUE_8006817C:
/* 4357C 8006817C 90830000 */ lbu $v1, 0x0($a0)
/* 43580 80068180 90A70000 */ lbu $a3, 0x0($a1)
/* 43584 80068184 00605021 */ addu $t2, $v1, $zero
/* 43588 80068188 1067FFEE */ beq $v1, $a3, .LIQUE_80068144
/* 4358C 8006818C 00E04821 */ addu $t1, $a3, $zero
.LIQUE_80068190:
/* 43590 80068190 11060006 */ beq $t0, $a2, .LIQUE_800681AC
/* 43594 80068194 00031E00 */ sll $v1, $v1, 24
/* 43598 80068198 00031E03 */ sra $v1, $v1, 24
/* 4359C 8006819C 00071600 */ sll $v0, $a3, 24
/* 435A0 800681A0 00021603 */ sra $v0, $v0, 24
/* 435A4 800681A4 03E00008 */ jr $ra
/* 435A8 800681A8 00621023 */ subu $v0, $v1, $v0
.LIQUE_800681AC:
/* 435AC 800681AC 03E00008 */ jr $ra
/* 435B0 800681B0 00001021 */ addu $v0, $zero, $zero
/* 435B4 800681B4 00000000 */ nop
/* 435B8 800681B8 00000000 */ nop
/* 435BC 800681BC 00000000 */ nop

View File

@ -0,0 +1,35 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel strcmp
/* 43490 80068090 0801A02C */ j .LIQUE_800680B0
/* 43494 80068094 90860000 */ lbu $a2, 0x0($a0)
.LIQUE_80068098:
/* 43498 80068098 14E00003 */ bnez $a3, .LIQUE_800680A8
/* 4349C 8006809C 24840001 */ addiu $a0, $a0, 0x1
/* 434A0 800680A0 03E00008 */ jr $ra
/* 434A4 800680A4 00001021 */ addu $v0, $zero, $zero
.LIQUE_800680A8:
/* 434A8 800680A8 24A50001 */ addiu $a1, $a1, 0x1
/* 434AC 800680AC 90860000 */ lbu $a2, 0x0($a0)
.LIQUE_800680B0:
/* 434B0 800680B0 90A80000 */ lbu $t0, 0x0($a1)
/* 434B4 800680B4 80A30000 */ lb $v1, 0x0($a1)
/* 434B8 800680B8 00061600 */ sll $v0, $a2, 24
/* 434BC 800680BC 00021603 */ sra $v0, $v0, 24
/* 434C0 800680C0 1043FFF5 */ beq $v0, $v1, .LIQUE_80068098
/* 434C4 800680C4 00C03821 */ addu $a3, $a2, $zero
/* 434C8 800680C8 00061E00 */ sll $v1, $a2, 24
/* 434CC 800680CC 00031E03 */ sra $v1, $v1, 24
/* 434D0 800680D0 00081600 */ sll $v0, $t0, 24
/* 434D4 800680D4 00021603 */ sra $v0, $v0, 24
/* 434D8 800680D8 03E00008 */ jr $ra
/* 434DC 800680DC 00621023 */ subu $v0, $v1, $v0

View File

@ -0,0 +1,200 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel skGetId
/* 43240 80067E40 24020000 */ addiu $v0, $zero, 0x0
/* 43244 80067E44 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43248 80067E48 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 4324C 80067E4C 8D090000 */ lw $t1, 0x0($t0)
/* 43250 80067E50 00000000 */ nop
/* 43254 80067E54 03E00008 */ jr $ra
/* 43258 80067E58 00000000 */ nop
glabel skLaunchSetup
/* 4325C 80067E5C 24020001 */ addiu $v0, $zero, 0x1
/* 43260 80067E60 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43264 80067E64 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43268 80067E68 8D090000 */ lw $t1, 0x0($t0)
/* 4326C 80067E6C 00000000 */ nop
/* 43270 80067E70 03E00008 */ jr $ra
/* 43274 80067E74 00000000 */ nop
glabel skLaunch
/* 43278 80067E78 24020002 */ addiu $v0, $zero, 0x2
/* 4327C 80067E7C 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43280 80067E80 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43284 80067E84 8D090000 */ lw $t1, 0x0($t0)
/* 43288 80067E88 00000000 */ nop
/* 4328C 80067E8C 03E00008 */ jr $ra
/* 43290 80067E90 00000000 */ nop
glabel skRecryptListValid
/* 43294 80067E94 24020003 */ addiu $v0, $zero, 0x3
/* 43298 80067E98 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 4329C 80067E9C 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 432A0 80067EA0 8D090000 */ lw $t1, 0x0($t0)
/* 432A4 80067EA4 00000000 */ nop
/* 432A8 80067EA8 03E00008 */ jr $ra
/* 432AC 80067EAC 00000000 */ nop
glabel skRecryptBegin
/* 432B0 80067EB0 24020004 */ addiu $v0, $zero, 0x4
/* 432B4 80067EB4 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 432B8 80067EB8 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 432BC 80067EBC 8D090000 */ lw $t1, 0x0($t0)
/* 432C0 80067EC0 00000000 */ nop
/* 432C4 80067EC4 03E00008 */ jr $ra
/* 432C8 80067EC8 00000000 */ nop
glabel skRecryptData
/* 432CC 80067ECC 24020005 */ addiu $v0, $zero, 0x5
/* 432D0 80067ED0 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 432D4 80067ED4 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 432D8 80067ED8 8D090000 */ lw $t1, 0x0($t0)
/* 432DC 80067EDC 00000000 */ nop
/* 432E0 80067EE0 03E00008 */ jr $ra
/* 432E4 80067EE4 00000000 */ nop
glabel skRecryptComputeState
/* 432E8 80067EE8 24020006 */ addiu $v0, $zero, 0x6
/* 432EC 80067EEC 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 432F0 80067EF0 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 432F4 80067EF4 8D090000 */ lw $t1, 0x0($t0)
/* 432F8 80067EF8 00000000 */ nop
/* 432FC 80067EFC 03E00008 */ jr $ra
/* 43300 80067F00 00000000 */ nop
glabel skRecryptEnd
/* 43304 80067F04 24020007 */ addiu $v0, $zero, 0x7
/* 43308 80067F08 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 4330C 80067F0C 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43310 80067F10 8D090000 */ lw $t1, 0x0($t0)
/* 43314 80067F14 00000000 */ nop
/* 43318 80067F18 03E00008 */ jr $ra
/* 4331C 80067F1C 00000000 */ nop
glabel skSignHash
/* 43320 80067F20 24020008 */ addiu $v0, $zero, 0x8
/* 43324 80067F24 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43328 80067F28 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 4332C 80067F2C 8D090000 */ lw $t1, 0x0($t0)
/* 43330 80067F30 00000000 */ nop
/* 43334 80067F34 03E00008 */ jr $ra
/* 43338 80067F38 00000000 */ nop
glabel skVerifyHash
/* 4333C 80067F3C 24020009 */ addiu $v0, $zero, 0x9
/* 43340 80067F40 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43344 80067F44 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43348 80067F48 8D090000 */ lw $t1, 0x0($t0)
/* 4334C 80067F4C 00000000 */ nop
/* 43350 80067F50 03E00008 */ jr $ra
/* 43354 80067F54 00000000 */ nop
glabel skGetConsumption
/* 43358 80067F58 2402000A */ addiu $v0, $zero, 0xA
/* 4335C 80067F5C 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43360 80067F60 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43364 80067F64 8D090000 */ lw $t1, 0x0($t0)
/* 43368 80067F68 00000000 */ nop
/* 4336C 80067F6C 03E00008 */ jr $ra
/* 43370 80067F70 00000000 */ nop
glabel skAdvanceTicketWindow
/* 43374 80067F74 2402000B */ addiu $v0, $zero, 0xB
/* 43378 80067F78 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 4337C 80067F7C 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43380 80067F80 8D090000 */ lw $t1, 0x0($t0)
/* 43384 80067F84 00000000 */ nop
/* 43388 80067F88 03E00008 */ jr $ra
/* 4338C 80067F8C 00000000 */ nop
glabel skSetLimit
/* 43390 80067F90 2402000C */ addiu $v0, $zero, 0xC
/* 43394 80067F94 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43398 80067F98 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 4339C 80067F9C 8D090000 */ lw $t1, 0x0($t0)
/* 433A0 80067FA0 00000000 */ nop
/* 433A4 80067FA4 03E00008 */ jr $ra
/* 433A8 80067FA8 00000000 */ nop
glabel skExit
/* 433AC 80067FAC 2402000D */ addiu $v0, $zero, 0xD
/* 433B0 80067FB0 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 433B4 80067FB4 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 433B8 80067FB8 8D090000 */ lw $t1, 0x0($t0)
/* 433BC 80067FBC 00000000 */ nop
/* 433C0 80067FC0 03E00008 */ jr $ra
/* 433C4 80067FC4 00000000 */ nop
glabel skKeepAlive
/* 433C8 80067FC8 2402000E */ addiu $v0, $zero, 0xE
/* 433CC 80067FCC 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 433D0 80067FD0 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 433D4 80067FD4 8D090000 */ lw $t1, 0x0($t0)
/* 433D8 80067FD8 00000000 */ nop
/* 433DC 80067FDC 03E00008 */ jr $ra
/* 433E0 80067FE0 00000000 */ nop
glabel skGetRandomKeyData
/* 433E4 80067FE4 2402000F */ addiu $v0, $zero, 0xF
/* 433E8 80067FE8 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 433EC 80067FEC 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 433F0 80067FF0 8D090000 */ lw $t1, 0x0($t0)
/* 433F4 80067FF4 00000000 */ nop
/* 433F8 80067FF8 03E00008 */ jr $ra
/* 433FC 80067FFC 00000000 */ nop
glabel skDumpVirage
/* 43400 80068000 24020010 */ addiu $v0, $zero, 0x10
/* 43404 80068004 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43408 80068008 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 4340C 8006800C 8D090000 */ lw $t1, 0x0($t0)
/* 43410 80068010 00000000 */ nop
/* 43414 80068014 03E00008 */ jr $ra
/* 43418 80068018 00000000 */ nop
glabel skTest2
/* 4341C 8006801C 24020011 */ addiu $v0, $zero, 0x11
/* 43420 80068020 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43424 80068024 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43428 80068028 8D090000 */ lw $t1, 0x0($t0)
/* 4342C 8006802C 00000000 */ nop
/* 43430 80068030 03E00008 */ jr $ra
/* 43434 80068034 00000000 */ nop
glabel skTest3
/* 43438 80068038 24020012 */ addiu $v0, $zero, 0x12
/* 4343C 8006803C 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43440 80068040 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43444 80068044 8D090000 */ lw $t1, 0x0($t0)
/* 43448 80068048 00000000 */ nop
/* 4344C 8006804C 03E00008 */ jr $ra
/* 43450 80068050 00000000 */ nop
glabel skResetWindow
/* 43454 80068054 24020013 */ addiu $v0, $zero, 0x13
/* 43458 80068058 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 4345C 8006805C 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 43460 80068060 8D090000 */ lw $t1, 0x0($t0)
/* 43464 80068064 00000000 */ nop
/* 43468 80068068 03E00008 */ jr $ra
/* 4346C 8006806C 00000000 */ nop
glabel skValidateRls
/* 43470 80068070 24020014 */ addiu $v0, $zero, 0x14
/* 43474 80068074 3C08A430 */ lui $t0, (0xA4300014 >> 16)
/* 43478 80068078 35080014 */ ori $t0, $t0, (0xA4300014 & 0xFFFF)
/* 4347C 8006807C 8D090000 */ lw $t1, 0x0($t0)
/* 43480 80068080 00000000 */ nop
/* 43484 80068084 03E00008 */ jr $ra
/* 43488 80068088 00000000 */ nop
/* 4348C 8006808C 00000000 */ nop

View File

@ -0,0 +1,25 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osAiDeviceBus
/* 45B40 8006A740 3C02A450 */ lui $v0, (0xA450000C >> 16)
/* 45B44 8006A744 3442000C */ ori $v0, $v0, (0xA450000C & 0xFFFF)
/* 45B48 8006A748 8C430000 */ lw $v1, 0x0($v0)
/* 45B4C 8006A74C 04610003 */ bgez $v1, .LIQUE_8006A75C
/* 45B50 8006A750 00001021 */ addu $v0, $zero, $zero
/* 45B54 8006A754 03E00008 */ jr $ra
/* 45B58 8006A758 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_8006A75C:
/* 45B5C 8006A75C 03E00008 */ jr $ra
/* 45B60 8006A760 00000000 */ nop
/* 45B64 8006A764 00000000 */ nop
/* 45B68 8006A768 00000000 */ nop
/* 45B6C 8006A76C 00000000 */ nop

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osAiGetLength
/* 3B710 80060310 3C03A450 */ lui $v1, (0xA4500004 >> 16)
/* 3B714 80060314 34630004 */ ori $v1, $v1, (0xA4500004 & 0xFFFF)
/* 3B718 80060318 03E00008 */ jr $ra
/* 3B71C 8006031C 8C620000 */ lw $v0, 0x0($v1)

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osAiGetStatus
/* 3B720 80060320 3C03A450 */ lui $v1, (0xA450000C >> 16)
/* 3B724 80060324 3463000C */ ori $v1, $v1, (0xA450000C & 0xFFFF)
/* 3B728 80060328 03E00008 */ jr $ra
/* 3B72C 8006032C 8C620000 */ lw $v0, 0x0($v1)

View File

@ -0,0 +1,83 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osAiSetFrequency
/* 3B730 80060330 44841000 */ mtc1 $a0, $f2
/* 3B734 80060334 468010A1 */ cvt.d.w $f2, $f2
/* 3B738 80060338 3C018009 */ lui $at, %hi(osViClock)
/* 3B73C 8006033C C42445A8 */ lwc1 $f4, %lo(osViClock)($at)
/* 3B740 80060340 46802120 */ cvt.s.w $f4, $f4
/* 3B744 80060344 04830006 */ bgezl $a0, .LIQUE_80060360
/* 3B748 80060348 46201020 */ cvt.s.d $f0, $f2
/* 3B74C 8006034C 3C0141F0 */ lui $at, (0x41F00000 >> 16)
/* 3B750 80060350 44810800 */ mtc1 $at, $f1
/* 3B754 80060354 44800000 */ mtc1 $zero, $f0
/* 3B758 80060358 46201080 */ add.d $f2, $f2, $f0
/* 3B75C 8006035C 46201020 */ cvt.s.d $f0, $f2
.LIQUE_80060360:
/* 3B760 80060360 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* 3B764 80060364 44811000 */ mtc1 $at, $f2
/* 3B768 80060368 46002003 */ div.s $f0, $f4, $f0
/* 3B76C 8006036C 46020000 */ add.s $f0, $f0, $f2
/* 3B770 80060370 3C014F00 */ lui $at, (0x4F000000 >> 16)
/* 3B774 80060374 44811000 */ mtc1 $at, $f2
/* 3B778 80060378 4600103E */ c.le.s $f2, $f0
/* 3B77C 8006037C 45030005 */ bc1tl .LIQUE_80060394
/* 3B780 80060380 46020001 */ sub.s $f0, $f0, $f2
/* 3B784 80060384 4600018D */ trunc.w.s $f6, $f0
/* 3B788 80060388 44073000 */ mfc1 $a3, $f6
/* 3B78C 8006038C 080180EA */ j .LIQUE_800603A8
/* 3B790 80060390 2CE20084 */ sltiu $v0, $a3, 0x84
.LIQUE_80060394:
/* 3B794 80060394 3C028000 */ lui $v0, 0x8000
/* 3B798 80060398 4600018D */ trunc.w.s $f6, $f0
/* 3B79C 8006039C 44073000 */ mfc1 $a3, $f6
/* 3B7A0 800603A0 00E23825 */ or $a3, $a3, $v0
/* 3B7A4 800603A4 2CE20084 */ sltiu $v0, $a3, 0x84
.LIQUE_800603A8:
/* 3B7A8 800603A8 10400003 */ beqz $v0, .LIQUE_800603B8
/* 3B7AC 800603AC 3C023E0F */ lui $v0, (0x3E0F83E1 >> 16)
/* 3B7B0 800603B0 03E00008 */ jr $ra
/* 3B7B4 800603B4 2402FFFF */ addiu $v0, $zero, -0x1
.LIQUE_800603B8:
/* 3B7B8 800603B8 344283E1 */ ori $v0, $v0, (0x3E0F83E1 & 0xFFFF)
/* 3B7BC 800603BC 00E20019 */ multu $a3, $v0
/* 3B7C0 800603C0 00001010 */ mfhi $v0
/* 3B7C4 800603C4 00021102 */ srl $v0, $v0, 4
/* 3B7C8 800603C8 304400FF */ andi $a0, $v0, 0xFF
/* 3B7CC 800603CC 2C830011 */ sltiu $v1, $a0, 0x11
/* 3B7D0 800603D0 50600001 */ beql $v1, $zero, .LIQUE_800603D8
/* 3B7D4 800603D4 24040010 */ addiu $a0, $zero, 0x10
.LIQUE_800603D8:
/* 3B7D8 800603D8 3C05A450 */ lui $a1, (0xA4500010 >> 16)
/* 3B7DC 800603DC 34A50010 */ ori $a1, $a1, (0xA4500010 & 0xFFFF)
/* 3B7E0 800603E0 3C06A450 */ lui $a2, (0xA4500014 >> 16)
/* 3B7E4 800603E4 34C60014 */ ori $a2, $a2, (0xA4500014 & 0xFFFF)
/* 3B7E8 800603E8 24E3FFFF */ addiu $v1, $a3, -0x1
/* 3B7EC 800603EC ACA30000 */ sw $v1, 0x0($a1)
/* 3B7F0 800603F0 3C028009 */ lui $v0, %hi(osViClock)
/* 3B7F4 800603F4 8C4245A8 */ lw $v0, %lo(osViClock)($v0)
/* 3B7F8 800603F8 2484FFFF */ addiu $a0, $a0, -0x1
/* 3B7FC 800603FC ACC40000 */ sw $a0, 0x0($a2)
/* 3B800 80060400 14E00002 */ bnez $a3, .LIQUE_8006040C
/* 3B804 80060404 0047001A */ div $zero, $v0, $a3
/* 3B808 80060408 0007000D */ break 7
.LIQUE_8006040C:
/* 3B80C 8006040C 2401FFFF */ addiu $at, $zero, -0x1
/* 3B810 80060410 14E10004 */ bne $a3, $at, .LIQUE_80060424
/* 3B814 80060414 3C018000 */ lui $at, (0x80000000 >> 16)
/* 3B818 80060418 14410002 */ bne $v0, $at, .LIQUE_80060424
/* 3B81C 8006041C 00000000 */ nop
/* 3B820 80060420 0006000D */ break 6
.LIQUE_80060424:
/* 3B824 80060424 00001012 */ mflo $v0
/* 3B828 80060428 03E00008 */ jr $ra
/* 3B82C 8006042C 00000000 */ nop

View File

@ -0,0 +1,56 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osAiSetNextBuffer
/* 3B830 80060430 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3B834 80060434 AFB00010 */ sw $s0, 0x10($sp)
/* 3B838 80060438 00808021 */ addu $s0, $a0, $zero
/* 3B83C 8006043C AFB10014 */ sw $s1, 0x14($sp)
/* 3B840 80060440 AFBF0018 */ sw $ra, 0x18($sp)
/* 3B844 80060444 0C01A9D0 */ jal __osAiDeviceBus
/* 3B848 80060448 00A08821 */ addu $s1, $a1, $zero
/* 3B84C 8006044C 14400018 */ bnez $v0, .LIQUE_800604B0
/* 3B850 80060450 2402FFFF */ addiu $v0, $zero, -0x1
/* 3B854 80060454 3C028009 */ lui $v0, %hi(aisetnextbuf_hdwrBugFlag)
/* 3B858 80060458 904229C0 */ lbu $v0, %lo(aisetnextbuf_hdwrBugFlag)($v0)
/* 3B85C 8006045C 10400002 */ beqz $v0, .LIQUE_80060468
/* 3B860 80060460 02002021 */ addu $a0, $s0, $zero
/* 3B864 80060464 2484E000 */ addiu $a0, $a0, -0x2000
.LIQUE_80060468:
/* 3B868 80060468 02111021 */ addu $v0, $s0, $s1
/* 3B86C 8006046C 30421FFF */ andi $v0, $v0, 0x1FFF
/* 3B870 80060470 14400004 */ bnez $v0, .LIQUE_80060484
/* 3B874 80060474 24020001 */ addiu $v0, $zero, 0x1
/* 3B878 80060478 3C018009 */ lui $at, %hi(aisetnextbuf_hdwrBugFlag)
/* 3B87C 8006047C 08018123 */ j .LIQUE_8006048C
/* 3B880 80060480 A02229C0 */ sb $v0, %lo(aisetnextbuf_hdwrBugFlag)($at)
.LIQUE_80060484:
/* 3B884 80060484 3C018009 */ lui $at, %hi(aisetnextbuf_hdwrBugFlag)
/* 3B888 80060488 A02029C0 */ sb $zero, %lo(aisetnextbuf_hdwrBugFlag)($at)
.LIQUE_8006048C:
/* 3B88C 8006048C 0C01836C */ jal osVirtualToPhysical
/* 3B890 80060490 00000000 */ nop
/* 3B894 80060494 3C03A450 */ lui $v1, (0xA4500004 >> 16)
/* 3B898 80060498 34630004 */ ori $v1, $v1, (0xA4500004 & 0xFFFF)
/* 3B89C 8006049C 00402821 */ addu $a1, $v0, $zero
/* 3B8A0 800604A0 00001021 */ addu $v0, $zero, $zero
/* 3B8A4 800604A4 3C04A450 */ lui $a0, %hi(D_A4500000)
/* 3B8A8 800604A8 AC850000 */ sw $a1, %lo(D_A4500000)($a0)
/* 3B8AC 800604AC AC710000 */ sw $s1, 0x0($v1)
.LIQUE_800604B0:
/* 3B8B0 800604B0 8FBF0018 */ lw $ra, 0x18($sp)
/* 3B8B4 800604B4 8FB10014 */ lw $s1, 0x14($sp)
/* 3B8B8 800604B8 8FB00010 */ lw $s0, 0x10($sp)
/* 3B8BC 800604BC 03E00008 */ jr $ra
/* 3B8C0 800604C0 27BD0020 */ addiu $sp, $sp, 0x20
/* 3B8C4 800604C4 00000000 */ nop
/* 3B8C8 800604C8 00000000 */ nop
/* 3B8CC 800604CC 00000000 */ nop

View File

@ -0,0 +1,62 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel osInvalDCache
/* 3B8D0 800604D0 18A00020 */ blez $a1, .LIQUE_80060554
/* 3B8D4 800604D4 00000000 */ nop
/* 3B8D8 800604D8 240B2000 */ addiu $t3, $zero, 0x2000
/* 3B8DC 800604DC 00AB082B */ sltu $at, $a1, $t3
/* 3B8E0 800604E0 1020001E */ beqz $at, .LIQUE_8006055C
/* 3B8E4 800604E4 00000000 */ nop
/* 3B8E8 800604E8 0080402D */ daddu $t0, $a0, $zero
/* 3B8EC 800604EC 00854821 */ addu $t1, $a0, $a1
/* 3B8F0 800604F0 0109082B */ sltu $at, $t0, $t1
/* 3B8F4 800604F4 10200017 */ beqz $at, .LIQUE_80060554
/* 3B8F8 800604F8 00000000 */ nop
/* 3B8FC 800604FC 2529FFF0 */ addiu $t1, $t1, -0x10
/* 3B900 80060500 310A000F */ andi $t2, $t0, 0xF
/* 3B904 80060504 11400007 */ beqz $t2, .LIQUE_80060524
/* 3B908 80060508 00000000 */ nop
/* 3B90C 8006050C 010A4023 */ subu $t0, $t0, $t2
/* 3B910 80060510 BD150000 */ cache 0x15, 0x0($t0) # handwritten instruction
/* 3B914 80060514 0109082B */ sltu $at, $t0, $t1
/* 3B918 80060518 1020000E */ beqz $at, .LIQUE_80060554
/* 3B91C 8006051C 00000000 */ nop
/* 3B920 80060520 25080010 */ addiu $t0, $t0, 0x10
.LIQUE_80060524:
/* 3B924 80060524 312A000F */ andi $t2, $t1, 0xF
/* 3B928 80060528 11400006 */ beqz $t2, .LIQUE_80060544
/* 3B92C 8006052C 00000000 */ nop
/* 3B930 80060530 012A4823 */ subu $t1, $t1, $t2
/* 3B934 80060534 BD350010 */ cache 0x15, 0x10($t1) # handwritten instruction
/* 3B938 80060538 0128082B */ sltu $at, $t1, $t0
/* 3B93C 8006053C 14200005 */ bnez $at, .LIQUE_80060554
/* 3B940 80060540 00000000 */ nop
.LIQUE_80060544:
/* 3B944 80060544 BD110000 */ cache 0x11, 0x0($t0) # handwritten instruction
/* 3B948 80060548 0109082B */ sltu $at, $t0, $t1
/* 3B94C 8006054C 1420FFFD */ bnez $at, .LIQUE_80060544
/* 3B950 80060550 25080010 */ addiu $t0, $t0, 0x10
.LIQUE_80060554:
/* 3B954 80060554 03E00008 */ jr $ra
/* 3B958 80060558 00000000 */ nop
.LIQUE_8006055C:
/* 3B95C 8006055C 3C088000 */ lui $t0, 0x8000
/* 3B960 80060560 010B4821 */ addu $t1, $t0, $t3
/* 3B964 80060564 2529FFF0 */ addiu $t1, $t1, -0x10
.LIQUE_80060568:
/* 3B968 80060568 BD010000 */ cache 0x01, 0x0($t0) # handwritten instruction
/* 3B96C 8006056C 0109082B */ sltu $at, $t0, $t1
/* 3B970 80060570 1420FFFD */ bnez $at, .LIQUE_80060568
/* 3B974 80060574 25080010 */ addiu $t0, $t0, (0x80000010 & 0xFFFF)
/* 3B978 80060578 03E00008 */ jr $ra
/* 3B97C 8006057C 00000000 */ nop

View File

@ -0,0 +1,49 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel osInvalICache
/* 3B980 80060580 18A00011 */ blez $a1, .LIQUE_800605C8
/* 3B984 80060584 00000000 */ nop
/* 3B988 80060588 240B4000 */ addiu $t3, $zero, 0x4000
/* 3B98C 8006058C 00AB082B */ sltu $at, $a1, $t3
/* 3B990 80060590 1020000F */ beqz $at, .LIQUE_800605D0
/* 3B994 80060594 00000000 */ nop
/* 3B998 80060598 0080402D */ daddu $t0, $a0, $zero
/* 3B99C 8006059C 00854821 */ addu $t1, $a0, $a1
/* 3B9A0 800605A0 0109082B */ sltu $at, $t0, $t1
/* 3B9A4 800605A4 10200008 */ beqz $at, .LIQUE_800605C8
/* 3B9A8 800605A8 00000000 */ nop
/* 3B9AC 800605AC 2529FFE0 */ addiu $t1, $t1, -0x20
/* 3B9B0 800605B0 310A001F */ andi $t2, $t0, 0x1F
/* 3B9B4 800605B4 010A4023 */ subu $t0, $t0, $t2
.LIQUE_800605B8:
/* 3B9B8 800605B8 BD100000 */ cache 0x10, 0x0($t0) # handwritten instruction
/* 3B9BC 800605BC 0109082B */ sltu $at, $t0, $t1
/* 3B9C0 800605C0 1420FFFD */ bnez $at, .LIQUE_800605B8
/* 3B9C4 800605C4 25080020 */ addiu $t0, $t0, 0x20
.LIQUE_800605C8:
/* 3B9C8 800605C8 03E00008 */ jr $ra
/* 3B9CC 800605CC 00000000 */ nop
.LIQUE_800605D0:
/* 3B9D0 800605D0 3C088000 */ lui $t0, 0x8000
/* 3B9D4 800605D4 010B4821 */ addu $t1, $t0, $t3
/* 3B9D8 800605D8 2529FFE0 */ addiu $t1, $t1, -0x20
.LIQUE_800605DC:
/* 3B9DC 800605DC BD000000 */ cache 0x00, 0x0($t0) # handwritten instruction
/* 3B9E0 800605E0 0109082B */ sltu $at, $t0, $t1
/* 3B9E4 800605E4 1420FFFD */ bnez $at, .LIQUE_800605DC
/* 3B9E8 800605E8 25080020 */ addiu $t0, $t0, (0x80000020 & 0xFFFF)
/* 3B9EC 800605EC 03E00008 */ jr $ra
/* 3B9F0 800605F0 00000000 */ nop
/* 3B9F4 800605F4 00000000 */ nop
/* 3B9F8 800605F8 00000000 */ nop
/* 3B9FC 800605FC 00000000 */ nop

View File

@ -0,0 +1,49 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel osWritebackDCache
/* 3BA00 80060600 18A00011 */ blez $a1, .LIQUE_80060648
/* 3BA04 80060604 00000000 */ nop
/* 3BA08 80060608 240B2000 */ addiu $t3, $zero, 0x2000
/* 3BA0C 8006060C 00AB082B */ sltu $at, $a1, $t3
/* 3BA10 80060610 1020000F */ beqz $at, .LIQUE_80060650
/* 3BA14 80060614 00000000 */ nop
/* 3BA18 80060618 0080402D */ daddu $t0, $a0, $zero
/* 3BA1C 8006061C 00854821 */ addu $t1, $a0, $a1
/* 3BA20 80060620 0109082B */ sltu $at, $t0, $t1
/* 3BA24 80060624 10200008 */ beqz $at, .LIQUE_80060648
/* 3BA28 80060628 00000000 */ nop
/* 3BA2C 8006062C 2529FFF0 */ addiu $t1, $t1, -0x10
/* 3BA30 80060630 310A000F */ andi $t2, $t0, 0xF
/* 3BA34 80060634 010A4023 */ subu $t0, $t0, $t2
.LIQUE_80060638:
/* 3BA38 80060638 BD190000 */ cache 0x19, 0x0($t0) # handwritten instruction
/* 3BA3C 8006063C 0109082B */ sltu $at, $t0, $t1
/* 3BA40 80060640 1420FFFD */ bnez $at, .LIQUE_80060638
/* 3BA44 80060644 25080010 */ addiu $t0, $t0, 0x10
.LIQUE_80060648:
/* 3BA48 80060648 03E00008 */ jr $ra
/* 3BA4C 8006064C 00000000 */ nop
.LIQUE_80060650:
/* 3BA50 80060650 3C088000 */ lui $t0, 0x8000
/* 3BA54 80060654 010B4821 */ addu $t1, $t0, $t3
/* 3BA58 80060658 2529FFF0 */ addiu $t1, $t1, -0x10
.LIQUE_8006065C:
/* 3BA5C 8006065C BD010000 */ cache 0x01, 0x0($t0) # handwritten instruction
/* 3BA60 80060660 0109082B */ sltu $at, $t0, $t1
/* 3BA64 80060664 1420FFFD */ bnez $at, .LIQUE_8006065C
/* 3BA68 80060668 25080010 */ addiu $t0, $t0, (0x80000010 & 0xFFFF)
/* 3BA6C 8006066C 03E00008 */ jr $ra
/* 3BA70 80060670 00000000 */ nop
/* 3BA74 80060674 00000000 */ nop
/* 3BA78 80060678 00000000 */ nop
/* 3BA7C 8006067C 00000000 */ nop

View File

@ -0,0 +1,26 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel osWritebackDCacheAll
/* 3BA80 80060680 3C088000 */ lui $t0, 0x8000
/* 3BA84 80060684 240A2000 */ addiu $t2, $zero, 0x2000
/* 3BA88 80060688 010A4821 */ addu $t1, $t0, $t2
/* 3BA8C 8006068C 2529FFF0 */ addiu $t1, $t1, -0x10
.LIQUE_80060690:
/* 3BA90 80060690 BD010000 */ cache 0x01, 0x0($t0) # handwritten instruction
/* 3BA94 80060694 0109082B */ sltu $at, $t0, $t1
/* 3BA98 80060698 1420FFFD */ bnez $at, .LIQUE_80060690
/* 3BA9C 8006069C 25080010 */ addiu $t0, $t0, (0x80000010 & 0xFFFF)
/* 3BAA0 800606A0 03E00008 */ jr $ra
/* 3BAA4 800606A4 00000000 */ nop
/* 3BAA8 800606A8 00000000 */ nop
/* 3BAAC 800606AC 00000000 */ nop

View File

@ -0,0 +1,59 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osContStartQuery
/* 3BAB0 800606B0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BAB4 800606B4 AFB00010 */ sw $s0, 0x10($sp)
/* 3BAB8 800606B8 AFBF0014 */ sw $ra, 0x14($sp)
/* 3BABC 800606BC 0C018FE5 */ jal __osSiGetAccess
/* 3BAC0 800606C0 00808021 */ addu $s0, $a0, $zero
/* 3BAC4 800606C4 3C02800A */ lui $v0, %hi(__osContLastCmd)
/* 3BAC8 800606C8 904291F0 */ lbu $v0, %lo(__osContLastCmd)($v0)
/* 3BACC 800606CC 1040000B */ beqz $v0, .LIQUE_800606FC
/* 3BAD0 800606D0 00000000 */ nop
/* 3BAD4 800606D4 0C01833C */ jal __osPackRequestData
/* 3BAD8 800606D8 00002021 */ addu $a0, $zero, $zero
/* 3BADC 800606DC 3C05800B */ lui $a1, %hi(__osContPifRam)
/* 3BAE0 800606E0 24A5F910 */ addiu $a1, $a1, %lo(__osContPifRam)
/* 3BAE4 800606E4 0C018F98 */ jal __osSiRawStartDma
/* 3BAE8 800606E8 24040001 */ addiu $a0, $zero, 0x1
/* 3BAEC 800606EC 02002021 */ addu $a0, $s0, $zero
/* 3BAF0 800606F0 00002821 */ addu $a1, $zero, $zero
/* 3BAF4 800606F4 0C018DCC */ jal osRecvMesg
/* 3BAF8 800606F8 24060001 */ addiu $a2, $zero, 0x1
.LIQUE_800606FC:
/* 3BAFC 800606FC 3C05800B */ lui $a1, %hi(__osContPifRam)
/* 3BB00 80060700 24A5F910 */ addiu $a1, $a1, %lo(__osContPifRam)
/* 3BB04 80060704 0C018F98 */ jal __osSiRawStartDma
/* 3BB08 80060708 00002021 */ addu $a0, $zero, $zero
/* 3BB0C 8006070C 240300FD */ addiu $v1, $zero, 0xFD
/* 3BB10 80060710 3C01800A */ lui $at, %hi(__osContLastCmd)
/* 3BB14 80060714 A02391F0 */ sb $v1, %lo(__osContLastCmd)($at)
/* 3BB18 80060718 0C018FF4 */ jal __osSiRelAccess
/* 3BB1C 8006071C 00408021 */ addu $s0, $v0, $zero
/* 3BB20 80060720 02001021 */ addu $v0, $s0, $zero
/* 3BB24 80060724 8FBF0014 */ lw $ra, 0x14($sp)
/* 3BB28 80060728 8FB00010 */ lw $s0, 0x10($sp)
/* 3BB2C 8006072C 03E00008 */ jr $ra
/* 3BB30 80060730 27BD0018 */ addiu $sp, $sp, 0x18
glabel osContGetQuery
/* 3BB34 80060734 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3BB38 80060738 00802821 */ addu $a1, $a0, $zero
/* 3BB3C 8006073C AFBF0018 */ sw $ra, 0x18($sp)
/* 3BB40 80060740 0C0182E1 */ jal __osContGetInitData
/* 3BB44 80060744 27A40010 */ addiu $a0, $sp, 0x10
/* 3BB48 80060748 8FBF0018 */ lw $ra, 0x18($sp)
/* 3BB4C 8006074C 03E00008 */ jr $ra
/* 3BB50 80060750 27BD0020 */ addiu $sp, $sp, 0x20
/* 3BB54 80060754 00000000 */ nop
/* 3BB58 80060758 00000000 */ nop
/* 3BB5C 8006075C 00000000 */ nop

View File

@ -0,0 +1,184 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osContStartReadData
/* 3BB60 80060760 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BB64 80060764 AFB00010 */ sw $s0, 0x10($sp)
/* 3BB68 80060768 AFBF0014 */ sw $ra, 0x14($sp)
/* 3BB6C 8006076C 0C018FE5 */ jal __osSiGetAccess
/* 3BB70 80060770 00808021 */ addu $s0, $a0, $zero
/* 3BB74 80060774 3C03800A */ lui $v1, %hi(__osContLastCmd)
/* 3BB78 80060778 906391F0 */ lbu $v1, %lo(__osContLastCmd)($v1)
/* 3BB7C 8006077C 24020001 */ addiu $v0, $zero, 0x1
/* 3BB80 80060780 1062000B */ beq $v1, $v0, .LIQUE_800607B0
/* 3BB84 80060784 00000000 */ nop
/* 3BB88 80060788 0C018249 */ jal __osPackReadData
/* 3BB8C 8006078C 00000000 */ nop
/* 3BB90 80060790 3C05800B */ lui $a1, %hi(__osContPifRam)
/* 3BB94 80060794 24A5F910 */ addiu $a1, $a1, %lo(__osContPifRam)
/* 3BB98 80060798 0C018F98 */ jal __osSiRawStartDma
/* 3BB9C 8006079C 24040001 */ addiu $a0, $zero, 0x1
/* 3BBA0 800607A0 02002021 */ addu $a0, $s0, $zero
/* 3BBA4 800607A4 00002821 */ addu $a1, $zero, $zero
/* 3BBA8 800607A8 0C018DCC */ jal osRecvMesg
/* 3BBAC 800607AC 24060001 */ addiu $a2, $zero, 0x1
.LIQUE_800607B0:
/* 3BBB0 800607B0 3C05800B */ lui $a1, %hi(__osContPifRam)
/* 3BBB4 800607B4 24A5F910 */ addiu $a1, $a1, %lo(__osContPifRam)
/* 3BBB8 800607B8 0C018F98 */ jal __osSiRawStartDma
/* 3BBBC 800607BC 00002021 */ addu $a0, $zero, $zero
/* 3BBC0 800607C0 240300FD */ addiu $v1, $zero, 0xFD
/* 3BBC4 800607C4 3C01800A */ lui $at, %hi(__osContLastCmd)
/* 3BBC8 800607C8 A02391F0 */ sb $v1, %lo(__osContLastCmd)($at)
/* 3BBCC 800607CC 0C018FF4 */ jal __osSiRelAccess
/* 3BBD0 800607D0 00408021 */ addu $s0, $v0, $zero
/* 3BBD4 800607D4 02001021 */ addu $v0, $s0, $zero
/* 3BBD8 800607D8 8FBF0014 */ lw $ra, 0x14($sp)
/* 3BBDC 800607DC 8FB00010 */ lw $s0, 0x10($sp)
/* 3BBE0 800607E0 03E00008 */ jr $ra
/* 3BBE4 800607E4 27BD0018 */ addiu $sp, $sp, 0x18
glabel osContGetReadData
/* 3BBE8 800607E8 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 3BBEC 800607EC 00803821 */ addu $a3, $a0, $zero
/* 3BBF0 800607F0 3C0A800B */ lui $t2, %hi(__osContPifRam)
/* 3BBF4 800607F4 254AF910 */ addiu $t2, $t2, %lo(__osContPifRam)
/* 3BBF8 800607F8 3C05800A */ lui $a1, %hi(__osMaxControllers)
/* 3BBFC 800607FC 90A591D2 */ lbu $a1, %lo(__osMaxControllers)($a1)
/* 3BC00 80060800 10A0001F */ beqz $a1, .LIQUE_80060880
/* 3BC04 80060804 00004821 */ addu $t1, $zero, $zero
/* 3BC08 80060808 24880003 */ addiu $t0, $a0, 0x3
/* 3BC0C 8006080C 24860002 */ addiu $a2, $a0, 0x2
.LIQUE_80060810:
/* 3BC10 80060810 894B0000 */ lwl $t3, 0x0($t2)
/* 3BC14 80060814 994B0003 */ lwr $t3, 0x3($t2)
/* 3BC18 80060818 894C0004 */ lwl $t4, 0x4($t2)
/* 3BC1C 8006081C 994C0007 */ lwr $t4, 0x7($t2)
/* 3BC20 80060820 ABAB0000 */ swl $t3, 0x0($sp)
/* 3BC24 80060824 BBAB0003 */ swr $t3, 0x3($sp)
/* 3BC28 80060828 ABAC0004 */ swl $t4, 0x4($sp)
/* 3BC2C 8006082C BBAC0007 */ swr $t4, 0x7($sp)
/* 3BC30 80060830 93A20002 */ lbu $v0, 0x2($sp)
/* 3BC34 80060834 304200C0 */ andi $v0, $v0, 0xC0
/* 3BC38 80060838 00021102 */ srl $v0, $v0, 4
/* 3BC3C 8006083C 14400007 */ bnez $v0, .LIQUE_8006085C
/* 3BC40 80060840 A0C20002 */ sb $v0, 0x2($a2)
/* 3BC44 80060844 97A20004 */ lhu $v0, 0x4($sp)
/* 3BC48 80060848 93A30006 */ lbu $v1, 0x6($sp)
/* 3BC4C 8006084C 93A40007 */ lbu $a0, 0x7($sp)
/* 3BC50 80060850 A4E20000 */ sh $v0, 0x0($a3)
/* 3BC54 80060854 A0C30000 */ sb $v1, 0x0($a2)
/* 3BC58 80060858 A1040000 */ sb $a0, 0x0($t0)
.LIQUE_8006085C:
/* 3BC5C 8006085C 25290001 */ addiu $t1, $t1, 0x1
/* 3BC60 80060860 254A0008 */ addiu $t2, $t2, 0x8
/* 3BC64 80060864 24C60006 */ addiu $a2, $a2, 0x6
/* 3BC68 80060868 25080006 */ addiu $t0, $t0, 0x6
/* 3BC6C 8006086C 3C05800A */ lui $a1, %hi(__osMaxControllers)
/* 3BC70 80060870 90A591D2 */ lbu $a1, %lo(__osMaxControllers)($a1)
/* 3BC74 80060874 0125102A */ slt $v0, $t1, $a1
/* 3BC78 80060878 1440FFE5 */ bnez $v0, .LIQUE_80060810
/* 3BC7C 8006087C 24E70006 */ addiu $a3, $a3, 0x6
.LIQUE_80060880:
/* 3BC80 80060880 3C028000 */ lui $v0, %hi(__osBbIsBb)
/* 3BC84 80060884 8C420388 */ lw $v0, %lo(__osBbIsBb)($v0)
/* 3BC88 80060888 10400024 */ beqz $v0, .LIQUE_8006091C
/* 3BC8C 8006088C 00000000 */ nop
/* 3BC90 80060890 3C048000 */ lui $a0, %hi(__osBbHackFlags)
/* 3BC94 80060894 8C84038C */ lw $a0, %lo(__osBbHackFlags)($a0)
/* 3BC98 80060898 10800020 */ beqz $a0, .LIQUE_8006091C
/* 3BC9C 8006089C 00051840 */ sll $v1, $a1, 1
/* 3BCA0 800608A0 00651821 */ addu $v1, $v1, $a1
/* 3BCA4 800608A4 00031840 */ sll $v1, $v1, 1
/* 3BCA8 800608A8 00E33823 */ subu $a3, $a3, $v1
/* 3BCAC 800608AC 00041040 */ sll $v0, $a0, 1
/* 3BCB0 800608B0 00441021 */ addu $v0, $v0, $a0
/* 3BCB4 800608B4 00021040 */ sll $v0, $v0, 1
/* 3BCB8 800608B8 00471021 */ addu $v0, $v0, $a3
/* 3BCBC 800608BC 88EB0000 */ lwl $t3, 0x0($a3)
/* 3BCC0 800608C0 98EB0003 */ lwr $t3, 0x3($a3)
/* 3BCC4 800608C4 84EC0004 */ lh $t4, 0x4($a3)
/* 3BCC8 800608C8 ABAB0008 */ swl $t3, 0x8($sp)
/* 3BCCC 800608CC BBAB000B */ swr $t3, 0xB($sp)
/* 3BCD0 800608D0 A7AC000C */ sh $t4, 0xC($sp)
/* 3BCD4 800608D4 884B0000 */ lwl $t3, 0x0($v0)
/* 3BCD8 800608D8 984B0003 */ lwr $t3, 0x3($v0)
/* 3BCDC 800608DC 844C0004 */ lh $t4, 0x4($v0)
/* 3BCE0 800608E0 A8EB0000 */ swl $t3, 0x0($a3)
/* 3BCE4 800608E4 B8EB0003 */ swr $t3, 0x3($a3)
/* 3BCE8 800608E8 A4EC0004 */ sh $t4, 0x4($a3)
/* 3BCEC 800608EC 3C048000 */ lui $a0, %hi(__osBbHackFlags)
/* 3BCF0 800608F0 8C84038C */ lw $a0, %lo(__osBbHackFlags)($a0)
/* 3BCF4 800608F4 00041840 */ sll $v1, $a0, 1
/* 3BCF8 800608F8 00641821 */ addu $v1, $v1, $a0
/* 3BCFC 800608FC 00031840 */ sll $v1, $v1, 1
/* 3BD00 80060900 00671821 */ addu $v1, $v1, $a3
/* 3BD04 80060904 8BAB0008 */ lwl $t3, 0x8($sp)
/* 3BD08 80060908 9BAB000B */ lwr $t3, 0xB($sp)
/* 3BD0C 8006090C 87AC000C */ lh $t4, 0xC($sp)
/* 3BD10 80060910 A86B0000 */ swl $t3, 0x0($v1)
/* 3BD14 80060914 B86B0003 */ swr $t3, 0x3($v1)
/* 3BD18 80060918 A46C0004 */ sh $t4, 0x4($v1)
.LIQUE_8006091C:
/* 3BD1C 8006091C 03E00008 */ jr $ra
/* 3BD20 80060920 27BD0010 */ addiu $sp, $sp, 0x10
glabel __osPackReadData
/* 3BD24 80060924 27BDFFF8 */ addiu $sp, $sp, -0x8
/* 3BD28 80060928 3C06800B */ lui $a2, %hi(__osContPifRam)
/* 3BD2C 8006092C 24C6F910 */ addiu $a2, $a2, %lo(__osContPifRam)
/* 3BD30 80060930 00002821 */ addu $a1, $zero, $zero
/* 3BD34 80060934 00C01821 */ addu $v1, $a2, $zero
.LIQUE_80060938:
/* 3BD38 80060938 AC600000 */ sw $zero, 0x0($v1)
/* 3BD3C 8006093C 24A50001 */ addiu $a1, $a1, 0x1
/* 3BD40 80060940 28A2000F */ slti $v0, $a1, 0xF
/* 3BD44 80060944 1440FFFC */ bnez $v0, .LIQUE_80060938
/* 3BD48 80060948 24630004 */ addiu $v1, $v1, 0x4
/* 3BD4C 8006094C 00002821 */ addu $a1, $zero, $zero
/* 3BD50 80060950 24040001 */ addiu $a0, $zero, 0x1
/* 3BD54 80060954 240200FF */ addiu $v0, $zero, 0xFF
/* 3BD58 80060958 3C01800B */ lui $at, %hi(__osContPifRam + 0x3C)
/* 3BD5C 8006095C AC24F94C */ sw $a0, %lo(__osContPifRam + 0x3C)($at)
/* 3BD60 80060960 A3A40001 */ sb $a0, 0x1($sp)
/* 3BD64 80060964 A3A40003 */ sb $a0, 0x3($sp)
/* 3BD68 80060968 3C04800A */ lui $a0, %hi(__osMaxControllers)
/* 3BD6C 8006096C 908491D2 */ lbu $a0, %lo(__osMaxControllers)($a0)
/* 3BD70 80060970 24030004 */ addiu $v1, $zero, 0x4
/* 3BD74 80060974 A3A20000 */ sb $v0, 0x0($sp)
/* 3BD78 80060978 3402FFFF */ ori $v0, $zero, 0xFFFF
/* 3BD7C 8006097C A3A30002 */ sb $v1, 0x2($sp)
/* 3BD80 80060980 2403FFFF */ addiu $v1, $zero, -0x1
/* 3BD84 80060984 A7A20004 */ sh $v0, 0x4($sp)
/* 3BD88 80060988 A3A30006 */ sb $v1, 0x6($sp)
/* 3BD8C 8006098C 1080000F */ beqz $a0, .LIQUE_800609CC
/* 3BD90 80060990 A3A30007 */ sb $v1, 0x7($sp)
.LIQUE_80060994:
/* 3BD94 80060994 8BA70000 */ lwl $a3, 0x0($sp)
/* 3BD98 80060998 9BA70003 */ lwr $a3, 0x3($sp)
/* 3BD9C 8006099C 8BA80004 */ lwl $t0, 0x4($sp)
/* 3BDA0 800609A0 9BA80007 */ lwr $t0, 0x7($sp)
/* 3BDA4 800609A4 A8C70000 */ swl $a3, 0x0($a2)
/* 3BDA8 800609A8 B8C70003 */ swr $a3, 0x3($a2)
/* 3BDAC 800609AC A8C80004 */ swl $t0, 0x4($a2)
/* 3BDB0 800609B0 B8C80007 */ swr $t0, 0x7($a2)
/* 3BDB4 800609B4 3C02800A */ lui $v0, %hi(__osMaxControllers)
/* 3BDB8 800609B8 904291D2 */ lbu $v0, %lo(__osMaxControllers)($v0)
/* 3BDBC 800609BC 24A50001 */ addiu $a1, $a1, 0x1
/* 3BDC0 800609C0 00A2102A */ slt $v0, $a1, $v0
/* 3BDC4 800609C4 1440FFF3 */ bnez $v0, .LIQUE_80060994
/* 3BDC8 800609C8 24C60008 */ addiu $a2, $a2, 0x8
.LIQUE_800609CC:
/* 3BDCC 800609CC 240200FE */ addiu $v0, $zero, 0xFE
/* 3BDD0 800609D0 A0C20000 */ sb $v0, 0x0($a2)
/* 3BDD4 800609D4 03E00008 */ jr $ra
/* 3BDD8 800609D8 27BD0008 */ addiu $sp, $sp, 0x8
/* 3BDDC 800609DC 00000000 */ nop

View File

@ -0,0 +1,271 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osContInit
/* 3BDE0 800609E0 3C028009 */ lui $v0, %hi(__osContinitialized)
/* 3BDE4 800609E4 8C4229D0 */ lw $v0, %lo(__osContinitialized)($v0)
/* 3BDE8 800609E8 27BDFF80 */ addiu $sp, $sp, -0x80
/* 3BDEC 800609EC AFB40070 */ sw $s4, 0x70($sp)
/* 3BDF0 800609F0 0080A021 */ addu $s4, $a0, $zero
/* 3BDF4 800609F4 AFB60078 */ sw $s6, 0x78($sp)
/* 3BDF8 800609F8 00A0B021 */ addu $s6, $a1, $zero
/* 3BDFC 800609FC AFB50074 */ sw $s5, 0x74($sp)
/* 3BE00 80060A00 00C0A821 */ addu $s5, $a2, $zero
/* 3BE04 80060A04 AFBF007C */ sw $ra, 0x7C($sp)
/* 3BE08 80060A08 AFB3006C */ sw $s3, 0x6C($sp)
/* 3BE0C 80060A0C AFB20068 */ sw $s2, 0x68($sp)
/* 3BE10 80060A10 AFB10064 */ sw $s1, 0x64($sp)
/* 3BE14 80060A14 10400003 */ beqz $v0, .LIQUE_80060A24
/* 3BE18 80060A18 AFB00060 */ sw $s0, 0x60($sp)
/* 3BE1C 80060A1C 080182D7 */ j .LIQUE_80060B5C
/* 3BE20 80060A20 00001021 */ addu $v0, $zero, $zero
.LIQUE_80060A24:
/* 3BE24 80060A24 24040001 */ addiu $a0, $zero, 0x1
/* 3BE28 80060A28 3C018009 */ lui $at, %hi(__osContinitialized)
/* 3BE2C 80060A2C 0C019164 */ jal osGetTime
/* 3BE30 80060A30 AC2429D0 */ sw $a0, %lo(__osContinitialized)($at)
/* 3BE34 80060A34 00409021 */ addu $s2, $v0, $zero
/* 3BE38 80060A38 00609821 */ addu $s3, $v1, $zero
/* 3BE3C 80060A3C 16400022 */ bnez $s2, .LIQUE_80060AC8
/* 3BE40 80060A40 24020004 */ addiu $v0, $zero, 0x4
/* 3BE44 80060A44 16400007 */ bnez $s2, .LIQUE_80060A64
/* 3BE48 80060A48 27B10040 */ addiu $s1, $sp, 0x40
/* 3BE4C 80060A4C 3C020165 */ lui $v0, (0x165A0BB >> 16)
/* 3BE50 80060A50 3442A0BB */ ori $v0, $v0, (0x165A0BB & 0xFFFF)
/* 3BE54 80060A54 0053102B */ sltu $v0, $v0, $s3
/* 3BE58 80060A58 1440001B */ bnez $v0, .LIQUE_80060AC8
/* 3BE5C 80060A5C 24020004 */ addiu $v0, $zero, 0x4
/* 3BE60 80060A60 27B10040 */ addiu $s1, $sp, 0x40
.LIQUE_80060A64:
/* 3BE64 80060A64 02202021 */ addu $a0, $s1, $zero
/* 3BE68 80060A68 27B00058 */ addiu $s0, $sp, 0x58
/* 3BE6C 80060A6C 02002821 */ addu $a1, $s0, $zero
/* 3BE70 80060A70 0C018DB0 */ jal osCreateMesgQueue
/* 3BE74 80060A74 24060001 */ addiu $a2, $zero, 0x1
/* 3BE78 80060A78 00004021 */ addu $t0, $zero, $zero
/* 3BE7C 80060A7C 00004821 */ addu $t1, $zero, $zero
/* 3BE80 80060A80 27A40020 */ addiu $a0, $sp, 0x20
/* 3BE84 80060A84 24060000 */ addiu $a2, $zero, 0x0
/* 3BE88 80060A88 3C070165 */ lui $a3, (0x165A0BC >> 16)
/* 3BE8C 80060A8C 34E7A0BC */ ori $a3, $a3, (0x165A0BC & 0xFFFF)
/* 3BE90 80060A90 00F3102B */ sltu $v0, $a3, $s3
/* 3BE94 80060A94 00F33823 */ subu $a3, $a3, $s3
/* 3BE98 80060A98 00D23023 */ subu $a2, $a2, $s2
/* 3BE9C 80060A9C 00C23023 */ subu $a2, $a2, $v0
/* 3BEA0 80060AA0 AFA80010 */ sw $t0, 0x10($sp)
/* 3BEA4 80060AA4 AFA90014 */ sw $t1, 0x14($sp)
/* 3BEA8 80060AA8 AFB10018 */ sw $s1, 0x18($sp)
/* 3BEAC 80060AAC 0C0191A0 */ jal osSetTimer
/* 3BEB0 80060AB0 AFB0001C */ sw $s0, 0x1C($sp)
/* 3BEB4 80060AB4 02202021 */ addu $a0, $s1, $zero
/* 3BEB8 80060AB8 02002821 */ addu $a1, $s0, $zero
/* 3BEBC 80060ABC 0C018DCC */ jal osRecvMesg
/* 3BEC0 80060AC0 24060001 */ addiu $a2, $zero, 0x1
/* 3BEC4 80060AC4 24020004 */ addiu $v0, $zero, 0x4
.LIQUE_80060AC8:
/* 3BEC8 80060AC8 3C01800A */ lui $at, %hi(__osMaxControllers)
/* 3BECC 80060ACC A02291D2 */ sb $v0, %lo(__osMaxControllers)($at)
/* 3BED0 80060AD0 0C01833C */ jal __osPackRequestData
/* 3BED4 80060AD4 00002021 */ addu $a0, $zero, $zero
/* 3BED8 80060AD8 24040001 */ addiu $a0, $zero, 0x1
/* 3BEDC 80060ADC 3C11800B */ lui $s1, %hi(__osContPifRam)
/* 3BEE0 80060AE0 2631F910 */ addiu $s1, $s1, %lo(__osContPifRam)
/* 3BEE4 80060AE4 0C018F98 */ jal __osSiRawStartDma
/* 3BEE8 80060AE8 02202821 */ addu $a1, $s1, $zero
/* 3BEEC 80060AEC 02802021 */ addu $a0, $s4, $zero
/* 3BEF0 80060AF0 27B00058 */ addiu $s0, $sp, 0x58
/* 3BEF4 80060AF4 02002821 */ addu $a1, $s0, $zero
/* 3BEF8 80060AF8 0C018DCC */ jal osRecvMesg
/* 3BEFC 80060AFC 24060001 */ addiu $a2, $zero, 0x1
/* 3BF00 80060B00 00002021 */ addu $a0, $zero, $zero
/* 3BF04 80060B04 0C018F98 */ jal __osSiRawStartDma
/* 3BF08 80060B08 02202821 */ addu $a1, $s1, $zero
/* 3BF0C 80060B0C 02802021 */ addu $a0, $s4, $zero
/* 3BF10 80060B10 02002821 */ addu $a1, $s0, $zero
/* 3BF14 80060B14 24060001 */ addiu $a2, $zero, 0x1
/* 3BF18 80060B18 0C018DCC */ jal osRecvMesg
/* 3BF1C 80060B1C 00408821 */ addu $s1, $v0, $zero
/* 3BF20 80060B20 02C02021 */ addu $a0, $s6, $zero
/* 3BF24 80060B24 0C0182E1 */ jal __osContGetInitData
/* 3BF28 80060B28 02A02821 */ addu $a1, $s5, $zero
/* 3BF2C 80060B2C 240200FD */ addiu $v0, $zero, 0xFD
/* 3BF30 80060B30 3C01800A */ lui $at, %hi(__osContLastCmd)
/* 3BF34 80060B34 A02291F0 */ sb $v0, %lo(__osContLastCmd)($at)
/* 3BF38 80060B38 0C018FD0 */ jal __osSiCreateAccessQueue
/* 3BF3C 80060B3C 00000000 */ nop
/* 3BF40 80060B40 3C04800E */ lui $a0, %hi(__osEepromTimerQ)
/* 3BF44 80060B44 24848E20 */ addiu $a0, $a0, %lo(__osEepromTimerQ)
/* 3BF48 80060B48 3C05800A */ lui $a1, %hi(__osEepromTimerMsg)
/* 3BF4C 80060B4C 24A591F4 */ addiu $a1, $a1, %lo(__osEepromTimerMsg)
/* 3BF50 80060B50 0C018DB0 */ jal osCreateMesgQueue
/* 3BF54 80060B54 24060001 */ addiu $a2, $zero, 0x1
/* 3BF58 80060B58 02201021 */ addu $v0, $s1, $zero
.LIQUE_80060B5C:
/* 3BF5C 80060B5C 8FBF007C */ lw $ra, 0x7C($sp)
/* 3BF60 80060B60 8FB60078 */ lw $s6, 0x78($sp)
/* 3BF64 80060B64 8FB50074 */ lw $s5, 0x74($sp)
/* 3BF68 80060B68 8FB40070 */ lw $s4, 0x70($sp)
/* 3BF6C 80060B6C 8FB3006C */ lw $s3, 0x6C($sp)
/* 3BF70 80060B70 8FB20068 */ lw $s2, 0x68($sp)
/* 3BF74 80060B74 8FB10064 */ lw $s1, 0x64($sp)
/* 3BF78 80060B78 8FB00060 */ lw $s0, 0x60($sp)
/* 3BF7C 80060B7C 03E00008 */ jr $ra
/* 3BF80 80060B80 27BD0080 */ addiu $sp, $sp, 0x80
glabel __osContGetInitData
/* 3BF84 80060B84 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BF88 80060B88 00A03821 */ addu $a3, $a1, $zero
/* 3BF8C 80060B8C 3C0A800B */ lui $t2, %hi(__osContPifRam)
/* 3BF90 80060B90 254AF910 */ addiu $t2, $t2, %lo(__osContPifRam)
/* 3BF94 80060B94 00003021 */ addu $a2, $zero, $zero
/* 3BF98 80060B98 00004021 */ addu $t0, $zero, $zero
/* 3BF9C 80060B9C 3C03800A */ lui $v1, %hi(__osMaxControllers)
/* 3BFA0 80060BA0 906391D2 */ lbu $v1, %lo(__osMaxControllers)($v1)
/* 3BFA4 80060BA4 00806021 */ addu $t4, $a0, $zero
/* 3BFA8 80060BA8 10600026 */ beqz $v1, .LIQUE_80060C44
/* 3BFAC 80060BAC AFB00010 */ sw $s0, 0x10($sp)
/* 3BFB0 80060BB0 240B0001 */ addiu $t3, $zero, 0x1
/* 3BFB4 80060BB4 24A50002 */ addiu $a1, $a1, 0x2
/* 3BFB8 80060BB8 3C098000 */ lui $t1, %hi(__osBbPakAddress)
/* 3BFBC 80060BBC 25290374 */ addiu $t1, $t1, %lo(__osBbPakAddress)
.LIQUE_80060BC0:
/* 3BFC0 80060BC0 894D0000 */ lwl $t5, 0x0($t2)
/* 3BFC4 80060BC4 994D0003 */ lwr $t5, 0x3($t2)
/* 3BFC8 80060BC8 894E0004 */ lwl $t6, 0x4($t2)
/* 3BFCC 80060BCC 994E0007 */ lwr $t6, 0x7($t2)
/* 3BFD0 80060BD0 ABAD0000 */ swl $t5, 0x0($sp)
/* 3BFD4 80060BD4 BBAD0003 */ swr $t5, 0x3($sp)
/* 3BFD8 80060BD8 ABAE0004 */ swl $t6, 0x4($sp)
/* 3BFDC 80060BDC BBAE0007 */ swr $t6, 0x7($sp)
/* 3BFE0 80060BE0 93A20002 */ lbu $v0, 0x2($sp)
/* 3BFE4 80060BE4 304200C0 */ andi $v0, $v0, 0xC0
/* 3BFE8 80060BE8 00021102 */ srl $v0, $v0, 4
/* 3BFEC 80060BEC 1440000C */ bnez $v0, .LIQUE_80060C20
/* 3BFF0 80060BF0 A0A20001 */ sb $v0, 0x1($a1)
/* 3BFF4 80060BF4 00CB2004 */ sllv $a0, $t3, $a2
/* 3BFF8 80060BF8 01042025 */ or $a0, $t0, $a0
/* 3BFFC 80060BFC 93A20005 */ lbu $v0, 0x5($sp)
/* 3C000 80060C00 93A30004 */ lbu $v1, 0x4($sp)
/* 3C004 80060C04 00021200 */ sll $v0, $v0, 8
/* 3C008 80060C08 00621825 */ or $v1, $v1, $v0
/* 3C00C 80060C0C A4E30000 */ sh $v1, 0x0($a3)
/* 3C010 80060C10 8D220000 */ lw $v0, 0x0($t1)
/* 3C014 80060C14 308800FF */ andi $t0, $a0, 0xFF
/* 3C018 80060C18 0002102B */ sltu $v0, $zero, $v0
/* 3C01C 80060C1C A0A20000 */ sb $v0, 0x0($a1)
.LIQUE_80060C20:
/* 3C020 80060C20 25290004 */ addiu $t1, $t1, 0x4
/* 3C024 80060C24 24C60001 */ addiu $a2, $a2, 0x1
/* 3C028 80060C28 254A0008 */ addiu $t2, $t2, 0x8
/* 3C02C 80060C2C 24A50004 */ addiu $a1, $a1, 0x4
/* 3C030 80060C30 3C03800A */ lui $v1, %hi(__osMaxControllers)
/* 3C034 80060C34 906391D2 */ lbu $v1, %lo(__osMaxControllers)($v1)
/* 3C038 80060C38 00C3102A */ slt $v0, $a2, $v1
/* 3C03C 80060C3C 1440FFE0 */ bnez $v0, .LIQUE_80060BC0
/* 3C040 80060C40 24E70004 */ addiu $a3, $a3, 0x4
.LIQUE_80060C44:
/* 3C044 80060C44 3C028000 */ lui $v0, %hi(__osBbIsBb)
/* 3C048 80060C48 8C420388 */ lw $v0, %lo(__osBbIsBb)($v0)
/* 3C04C 80060C4C 10400025 */ beqz $v0, .LIQUE_80060CE4
/* 3C050 80060C50 8FB00010 */ lw $s0, 0x10($sp)
/* 3C054 80060C54 3C058000 */ lui $a1, %hi(__osBbHackFlags)
/* 3C058 80060C58 8CA5038C */ lw $a1, %lo(__osBbHackFlags)($a1)
/* 3C05C 80060C5C 10A00021 */ beqz $a1, .LIQUE_80060CE4
/* 3C060 80060C60 00031880 */ sll $v1, $v1, 2
/* 3C064 80060C64 00E33823 */ subu $a3, $a3, $v1
/* 3C068 80060C68 00051080 */ sll $v0, $a1, 2
/* 3C06C 80060C6C 00471021 */ addu $v0, $v0, $a3
/* 3C070 80060C70 24040001 */ addiu $a0, $zero, 0x1
/* 3C074 80060C74 00A42004 */ sllv $a0, $a0, $a1
/* 3C078 80060C78 34830001 */ ori $v1, $a0, 0x1
/* 3C07C 80060C7C 00031827 */ nor $v1, $zero, $v1
/* 3C080 80060C80 01031824 */ and $v1, $t0, $v1
/* 3C084 80060C84 88ED0000 */ lwl $t5, 0x0($a3)
/* 3C088 80060C88 98ED0003 */ lwr $t5, 0x3($a3)
/* 3C08C 80060C8C ABAD0008 */ swl $t5, 0x8($sp)
/* 3C090 80060C90 BBAD000B */ swr $t5, 0xB($sp)
/* 3C094 80060C94 884D0000 */ lwl $t5, 0x0($v0)
/* 3C098 80060C98 984D0003 */ lwr $t5, 0x3($v0)
/* 3C09C 80060C9C A8ED0000 */ swl $t5, 0x0($a3)
/* 3C0A0 80060CA0 B8ED0003 */ swr $t5, 0x3($a3)
/* 3C0A4 80060CA4 31020001 */ andi $v0, $t0, 0x1
/* 3C0A8 80060CA8 00A21004 */ sllv $v0, $v0, $a1
/* 3C0AC 80060CAC 00621825 */ or $v1, $v1, $v0
/* 3C0B0 80060CB0 01042024 */ and $a0, $t0, $a0
/* 3C0B4 80060CB4 00A42007 */ srav $a0, $a0, $a1
/* 3C0B8 80060CB8 00641825 */ or $v1, $v1, $a0
/* 3C0BC 80060CBC 3C028000 */ lui $v0, %hi(__osBbHackFlags)
/* 3C0C0 80060CC0 8C42038C */ lw $v0, %lo(__osBbHackFlags)($v0)
/* 3C0C4 80060CC4 306800FF */ andi $t0, $v1, 0xFF
/* 3C0C8 80060CC8 00021080 */ sll $v0, $v0, 2
/* 3C0CC 80060CCC 00471021 */ addu $v0, $v0, $a3
/* 3C0D0 80060CD0 8BAD0008 */ lwl $t5, 0x8($sp)
/* 3C0D4 80060CD4 9BAD000B */ lwr $t5, 0xB($sp)
/* 3C0D8 80060CD8 A84D0000 */ swl $t5, 0x0($v0)
/* 3C0DC 80060CDC B84D0003 */ swr $t5, 0x3($v0)
/* 3C0E0 80060CE0 8FB00010 */ lw $s0, 0x10($sp)
.LIQUE_80060CE4:
/* 3C0E4 80060CE4 A1880000 */ sb $t0, 0x0($t4)
/* 3C0E8 80060CE8 03E00008 */ jr $ra
/* 3C0EC 80060CEC 27BD0018 */ addiu $sp, $sp, 0x18
glabel __osPackRequestData
/* 3C0F0 80060CF0 27BDFFF8 */ addiu $sp, $sp, -0x8
/* 3C0F4 80060CF4 308800FF */ andi $t0, $a0, 0xFF
/* 3C0F8 80060CF8 00003021 */ addu $a2, $zero, $zero
/* 3C0FC 80060CFC 3C03800B */ lui $v1, %hi(__osContPifRam)
/* 3C100 80060D00 2463F910 */ addiu $v1, $v1, %lo(__osContPifRam)
.LIQUE_80060D04:
/* 3C104 80060D04 AC600000 */ sw $zero, 0x0($v1)
/* 3C108 80060D08 24C60001 */ addiu $a2, $a2, 0x1
/* 3C10C 80060D0C 28C2000F */ slti $v0, $a2, 0xF
/* 3C110 80060D10 1440FFFC */ bnez $v0, .LIQUE_80060D04
/* 3C114 80060D14 24630004 */ addiu $v1, $v1, 0x4
/* 3C118 80060D18 3C02800B */ lui $v0, %hi(__osContPifRam + 0x3C)
/* 3C11C 80060D1C 2442F94C */ addiu $v0, $v0, %lo(__osContPifRam + 0x3C)
/* 3C120 80060D20 2447FFC4 */ addiu $a3, $v0, -0x3C
/* 3C124 80060D24 00003021 */ addu $a2, $zero, $zero
/* 3C128 80060D28 24040001 */ addiu $a0, $zero, 0x1
/* 3C12C 80060D2C 240300FF */ addiu $v1, $zero, 0xFF
/* 3C130 80060D30 AC440000 */ sw $a0, 0x0($v0)
/* 3C134 80060D34 3C05800A */ lui $a1, %hi(__osMaxControllers)
/* 3C138 80060D38 90A591D2 */ lbu $a1, %lo(__osMaxControllers)($a1)
/* 3C13C 80060D3C 24020003 */ addiu $v0, $zero, 0x3
/* 3C140 80060D40 A3A30000 */ sb $v1, 0x0($sp)
/* 3C144 80060D44 A3A40001 */ sb $a0, 0x1($sp)
/* 3C148 80060D48 A3A20002 */ sb $v0, 0x2($sp)
/* 3C14C 80060D4C A3A80003 */ sb $t0, 0x3($sp)
/* 3C150 80060D50 A3A30004 */ sb $v1, 0x4($sp)
/* 3C154 80060D54 A3A30005 */ sb $v1, 0x5($sp)
/* 3C158 80060D58 A3A30006 */ sb $v1, 0x6($sp)
/* 3C15C 80060D5C 10A0000F */ beqz $a1, .LIQUE_80060D9C
/* 3C160 80060D60 A3A30007 */ sb $v1, 0x7($sp)
.LIQUE_80060D64:
/* 3C164 80060D64 8BA90000 */ lwl $t1, 0x0($sp)
/* 3C168 80060D68 9BA90003 */ lwr $t1, 0x3($sp)
/* 3C16C 80060D6C 8BAA0004 */ lwl $t2, 0x4($sp)
/* 3C170 80060D70 9BAA0007 */ lwr $t2, 0x7($sp)
/* 3C174 80060D74 A8E90000 */ swl $t1, 0x0($a3)
/* 3C178 80060D78 B8E90003 */ swr $t1, 0x3($a3)
/* 3C17C 80060D7C A8EA0004 */ swl $t2, 0x4($a3)
/* 3C180 80060D80 B8EA0007 */ swr $t2, 0x7($a3)
/* 3C184 80060D84 3C02800A */ lui $v0, %hi(__osMaxControllers)
/* 3C188 80060D88 904291D2 */ lbu $v0, %lo(__osMaxControllers)($v0)
/* 3C18C 80060D8C 24C60001 */ addiu $a2, $a2, 0x1
/* 3C190 80060D90 00C2102A */ slt $v0, $a2, $v0
/* 3C194 80060D94 1440FFF3 */ bnez $v0, .LIQUE_80060D64
/* 3C198 80060D98 24E70008 */ addiu $a3, $a3, 0x8
.LIQUE_80060D9C:
/* 3C19C 80060D9C 240200FE */ addiu $v0, $zero, 0xFE
/* 3C1A0 80060DA0 A0E20000 */ sb $v0, 0x0($a3)
/* 3C1A4 80060DA4 03E00008 */ jr $ra
/* 3C1A8 80060DA8 27BD0008 */ addiu $sp, $sp, 0x8
/* 3C1AC 80060DAC 00000000 */ nop

View File

@ -0,0 +1,67 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osVirtualToPhysical
/* 3C1B0 80060DB0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3C1B4 80060DB4 AFBF0014 */ sw $ra, 0x14($sp)
/* 3C1B8 80060DB8 AFBE0010 */ sw $fp, 0x10($sp)
/* 3C1BC 80060DBC 03A0F021 */ addu $fp, $sp, $zero
/* 3C1C0 80060DC0 AFC40018 */ sw $a0, 0x18($fp)
/* 3C1C4 80060DC4 8FC20018 */ lw $v0, 0x18($fp)
/* 3C1C8 80060DC8 0441000F */ bgez $v0, .LIQUE_80060E08
/* 3C1CC 80060DCC 00000000 */ nop
/* 3C1D0 80060DD0 8FC20018 */ lw $v0, 0x18($fp)
/* 3C1D4 80060DD4 3C039FFF */ lui $v1, (0x9FFFFFFF >> 16)
/* 3C1D8 80060DD8 3463FFFF */ ori $v1, $v1, (0x9FFFFFFF & 0xFFFF)
/* 3C1DC 80060DDC 0062102B */ sltu $v0, $v1, $v0
/* 3C1E0 80060DE0 14400009 */ bnez $v0, .LIQUE_80060E08
/* 3C1E4 80060DE4 00000000 */ nop
/* 3C1E8 80060DE8 8FC20018 */ lw $v0, 0x18($fp)
/* 3C1EC 80060DEC 3C041FFF */ lui $a0, (0x1FFFFFFF >> 16)
/* 3C1F0 80060DF0 3484FFFF */ ori $a0, $a0, (0x1FFFFFFF & 0xFFFF)
/* 3C1F4 80060DF4 00441824 */ and $v1, $v0, $a0
/* 3C1F8 80060DF8 0801839B */ j .LIQUE_80060E6C
/* 3C1FC 80060DFC 00601021 */ addu $v0, $v1, $zero
/* 3C200 80060E00 0801839B */ j .LIQUE_80060E6C
/* 3C204 80060E04 00000000 */ nop
.LIQUE_80060E08:
/* 3C208 80060E08 8FC20018 */ lw $v0, 0x18($fp)
/* 3C20C 80060E0C 3C039FFF */ lui $v1, (0x9FFFFFFF >> 16)
/* 3C210 80060E10 3463FFFF */ ori $v1, $v1, (0x9FFFFFFF & 0xFFFF)
/* 3C214 80060E14 0062102B */ sltu $v0, $v1, $v0
/* 3C218 80060E18 1040000F */ beqz $v0, .LIQUE_80060E58
/* 3C21C 80060E1C 00000000 */ nop
/* 3C220 80060E20 8FC20018 */ lw $v0, 0x18($fp)
/* 3C224 80060E24 3C03BFFF */ lui $v1, (0xBFFFFFFF >> 16)
/* 3C228 80060E28 3463FFFF */ ori $v1, $v1, (0xBFFFFFFF & 0xFFFF)
/* 3C22C 80060E2C 0062102B */ sltu $v0, $v1, $v0
/* 3C230 80060E30 14400009 */ bnez $v0, .LIQUE_80060E58
/* 3C234 80060E34 00000000 */ nop
/* 3C238 80060E38 8FC20018 */ lw $v0, 0x18($fp)
/* 3C23C 80060E3C 3C041FFF */ lui $a0, (0x1FFFFFFF >> 16)
/* 3C240 80060E40 3484FFFF */ ori $a0, $a0, (0x1FFFFFFF & 0xFFFF)
/* 3C244 80060E44 00441824 */ and $v1, $v0, $a0
/* 3C248 80060E48 0801839B */ j .LIQUE_80060E6C
/* 3C24C 80060E4C 00601021 */ addu $v0, $v1, $zero
/* 3C250 80060E50 0801839B */ j .LIQUE_80060E6C
/* 3C254 80060E54 00000000 */ nop
.LIQUE_80060E58:
/* 3C258 80060E58 0C019388 */ jal __osProbeTLB
/* 3C25C 80060E5C 8FC40018 */ lw $a0, 0x18($fp)
/* 3C260 80060E60 00401821 */ addu $v1, $v0, $zero
/* 3C264 80060E64 0801839B */ j .LIQUE_80060E6C
/* 3C268 80060E68 00601021 */ addu $v0, $v1, $zero
.LIQUE_80060E6C:
/* 3C26C 80060E6C 03C0E821 */ addu $sp, $fp, $zero
/* 3C270 80060E70 8FBF0014 */ lw $ra, 0x14($sp)
/* 3C274 80060E74 8FBE0010 */ lw $fp, 0x10($sp)
/* 3C278 80060E78 03E00008 */ jr $ra
/* 3C27C 80060E7C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,118 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel coss
/* 3C290 80060E90 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3C294 80060E94 24844000 */ addiu $a0, $a0, 0x4000
/* 3C298 80060E98 AFBF0010 */ sw $ra, 0x10($sp)
/* 3C29C 80060E9C 0C0189F0 */ jal sins
/* 3C2A0 80060EA0 3084FFFF */ andi $a0, $a0, 0xFFFF
/* 3C2A4 80060EA4 8FBF0010 */ lw $ra, 0x10($sp)
/* 3C2A8 80060EA8 03E00008 */ jr $ra
/* 3C2AC 80060EAC 27BD0018 */ addiu $sp, $sp, 0x18
glabel guFrustumF
/* 3C2B0 80060EB0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 3C2B4 80060EB4 F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 3C2B8 80060EB8 4485E000 */ mtc1 $a1, $f28
/* 3C2BC 80060EBC F7B40018 */ sdc1 $f20, 0x18($sp)
/* 3C2C0 80060EC0 4486A000 */ mtc1 $a2, $f20
/* 3C2C4 80060EC4 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 3C2C8 80060EC8 4487F000 */ mtc1 $a3, $f30
/* 3C2CC 80060ECC F7B60020 */ sdc1 $f22, 0x20($sp)
/* 3C2D0 80060ED0 C7B60058 */ lwc1 $f22, 0x58($sp)
/* 3C2D4 80060ED4 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 3C2D8 80060ED8 C7B8005C */ lwc1 $f24, 0x5C($sp)
/* 3C2DC 80060EDC AFB00010 */ sw $s0, 0x10($sp)
/* 3C2E0 80060EE0 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 3C2E4 80060EE4 C7BA0060 */ lwc1 $f26, 0x60($sp)
/* 3C2E8 80060EE8 AFBF0014 */ sw $ra, 0x14($sp)
/* 3C2EC 80060EEC 0C019698 */ jal guMtxIdentF
/* 3C2F0 80060EF0 00808021 */ addu $s0, $a0, $zero
/* 3C2F4 80060EF4 3C01C000 */ lui $at, (0xC0000000 >> 16)
/* 3C2F8 80060EF8 44811000 */ mtc1 $at, $f2
/* 3C2FC 80060EFC 4602D082 */ mul.s $f2, $f26, $f2
/* 3C300 80060F00 4618C100 */ add.s $f4, $f24, $f24
/* 3C304 80060F04 461CA201 */ sub.s $f8, $f20, $f28
/* 3C308 80060F08 461EB281 */ sub.s $f10, $f22, $f30
/* 3C30C 80060F0C 461CA500 */ add.s $f20, $f20, $f28
/* 3C310 80060F10 00003021 */ addu $a2, $zero, $zero
/* 3C314 80060F14 3C01BF80 */ lui $at, (0xBF800000 >> 16)
/* 3C318 80060F18 44813000 */ mtc1 $at, $f6
/* 3C31C 80060F1C 461EB580 */ add.s $f22, $f22, $f30
/* 3C320 80060F20 02002821 */ addu $a1, $s0, $zero
/* 3C324 80060F24 AE00003C */ sw $zero, 0x3C($s0)
/* 3C328 80060F28 46181082 */ mul.s $f2, $f2, $f24
/* 3C32C 80060F2C E606002C */ swc1 $f6, 0x2C($s0)
/* 3C330 80060F30 46082003 */ div.s $f0, $f4, $f8
/* 3C334 80060F34 460A2103 */ div.s $f4, $f4, $f10
/* 3C338 80060F38 E6000000 */ swc1 $f0, 0x0($s0)
/* 3C33C 80060F3C 4618D000 */ add.s $f0, $f26, $f24
/* 3C340 80060F40 4608A503 */ div.s $f20, $f20, $f8
/* 3C344 80060F44 460AB583 */ div.s $f22, $f22, $f10
/* 3C348 80060F48 4618D681 */ sub.s $f26, $f26, $f24
/* 3C34C 80060F4C E6040014 */ swc1 $f4, 0x14($s0)
/* 3C350 80060F50 E6140020 */ swc1 $f20, 0x20($s0)
/* 3C354 80060F54 E6160024 */ swc1 $f22, 0x24($s0)
/* 3C358 80060F58 46000007 */ neg.s $f0, $f0
/* 3C35C 80060F5C 461A0003 */ div.s $f0, $f0, $f26
/* 3C360 80060F60 E6000028 */ swc1 $f0, 0x28($s0)
/* 3C364 80060F64 461A1083 */ div.s $f2, $f2, $f26
/* 3C368 80060F68 E6020038 */ swc1 $f2, 0x38($s0)
.LIQUE_80060F6C:
/* 3C36C 80060F6C 00002021 */ addu $a0, $zero, $zero
/* 3C370 80060F70 00A01821 */ addu $v1, $a1, $zero
.LIQUE_80060F74:
/* 3C374 80060F74 C4600000 */ lwc1 $f0, 0x0($v1)
/* 3C378 80060F78 C7AC0064 */ lwc1 $f12, 0x64($sp)
/* 3C37C 80060F7C 460C0002 */ mul.s $f0, $f0, $f12
/* 3C380 80060F80 24840001 */ addiu $a0, $a0, 0x1
/* 3C384 80060F84 28820004 */ slti $v0, $a0, 0x4
/* 3C388 80060F88 E4600000 */ swc1 $f0, 0x0($v1)
/* 3C38C 80060F8C 1440FFF9 */ bnez $v0, .LIQUE_80060F74
/* 3C390 80060F90 24630004 */ addiu $v1, $v1, 0x4
/* 3C394 80060F94 24C60001 */ addiu $a2, $a2, 0x1
/* 3C398 80060F98 28C20004 */ slti $v0, $a2, 0x4
/* 3C39C 80060F9C 1440FFF3 */ bnez $v0, .LIQUE_80060F6C
/* 3C3A0 80060FA0 24A50010 */ addiu $a1, $a1, 0x10
/* 3C3A4 80060FA4 8FBF0014 */ lw $ra, 0x14($sp)
/* 3C3A8 80060FA8 8FB00010 */ lw $s0, 0x10($sp)
/* 3C3AC 80060FAC D7BE0040 */ ldc1 $f30, 0x40($sp)
/* 3C3B0 80060FB0 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* 3C3B4 80060FB4 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* 3C3B8 80060FB8 D7B80028 */ ldc1 $f24, 0x28($sp)
/* 3C3BC 80060FBC D7B60020 */ ldc1 $f22, 0x20($sp)
/* 3C3C0 80060FC0 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 3C3C4 80060FC4 03E00008 */ jr $ra
/* 3C3C8 80060FC8 27BD0048 */ addiu $sp, $sp, 0x48
glabel guFrustum
/* 3C3CC 80060FCC 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3C3D0 80060FD0 AFB00060 */ sw $s0, 0x60($sp)
/* 3C3D4 80060FD4 00808021 */ addu $s0, $a0, $zero
/* 3C3D8 80060FD8 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 3C3DC 80060FDC C7A2007C */ lwc1 $f2, 0x7C($sp)
/* 3C3E0 80060FE0 C7A40080 */ lwc1 $f4, 0x80($sp)
/* 3C3E4 80060FE4 C7A60084 */ lwc1 $f6, 0x84($sp)
/* 3C3E8 80060FE8 27A40020 */ addiu $a0, $sp, 0x20
/* 3C3EC 80060FEC AFBF0064 */ sw $ra, 0x64($sp)
/* 3C3F0 80060FF0 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3C3F4 80060FF4 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3C3F8 80060FF8 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3C3FC 80060FFC 0C0183AC */ jal guFrustumF
/* 3C400 80061000 E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3C404 80061004 27A40020 */ addiu $a0, $sp, 0x20
/* 3C408 80061008 0C0196B0 */ jal guMtxF2L
/* 3C40C 8006100C 02002821 */ addu $a1, $s0, $zero
/* 3C410 80061010 8FBF0064 */ lw $ra, 0x64($sp)
/* 3C414 80061014 8FB00060 */ lw $s0, 0x60($sp)
/* 3C418 80061018 03E00008 */ jr $ra
/* 3C41C 8006101C 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -0,0 +1,221 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guLookAtF
/* 3C420 80061020 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3C424 80061024 F7BA0040 */ sdc1 $f26, 0x40($sp)
/* 3C428 80061028 C7BA007C */ lwc1 $f26, 0x7C($sp)
/* 3C42C 8006102C F7B40028 */ sdc1 $f20, 0x28($sp)
/* 3C430 80061030 C7B40068 */ lwc1 $f20, 0x68($sp)
/* 3C434 80061034 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 3C438 80061038 C7B6006C */ lwc1 $f22, 0x6C($sp)
/* 3C43C 8006103C AFB00020 */ sw $s0, 0x20($sp)
/* 3C440 80061040 00808021 */ addu $s0, $a0, $zero
/* 3C444 80061044 F7B80038 */ sdc1 $f24, 0x38($sp)
/* 3C448 80061048 C7B80070 */ lwc1 $f24, 0x70($sp)
/* 3C44C 8006104C AFBF0024 */ sw $ra, 0x24($sp)
/* 3C450 80061050 F7BE0050 */ sdc1 $f30, 0x50($sp)
/* 3C454 80061054 F7BC0048 */ sdc1 $f28, 0x48($sp)
/* 3C458 80061058 AFA5005C */ sw $a1, 0x5C($sp)
/* 3C45C 8006105C AFA60060 */ sw $a2, 0x60($sp)
/* 3C460 80061060 0C019698 */ jal guMtxIdentF
/* 3C464 80061064 AFA70064 */ sw $a3, 0x64($sp)
/* 3C468 80061068 C7AE005C */ lwc1 $f14, 0x5C($sp)
/* 3C46C 8006106C 460EA781 */ sub.s $f30, $f20, $f14
/* 3C470 80061070 461EF002 */ mul.s $f0, $f30, $f30
/* 3C474 80061074 C7B20060 */ lwc1 $f18, 0x60($sp)
/* 3C478 80061078 4612B581 */ sub.s $f22, $f22, $f18
/* 3C47C 8006107C 4616B102 */ mul.s $f4, $f22, $f22
/* 3C480 80061080 C7AE0064 */ lwc1 $f14, 0x64($sp)
/* 3C484 80061084 460EC701 */ sub.s $f28, $f24, $f14
/* 3C488 80061088 461CE082 */ mul.s $f2, $f28, $f28
/* 3C48C 8006108C 46040000 */ add.s $f0, $f0, $f4
/* 3C490 80061090 46020300 */ add.s $f12, $f0, $f2
/* 3C494 80061094 46006084 */ sqrt.s $f2, $f12
/* 3C498 80061098 46021032 */ c.eq.s $f2, $f2
/* 3C49C 8006109C 45010004 */ bc1t .LIQUE_800610B0
/* 3C4A0 800610A0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 3C4A4 800610A4 0C0183A0 */ jal sqrtf
/* 3C4A8 800610A8 00000000 */ nop
/* 3C4AC 800610AC 46000086 */ mov.s $f2, $f0
.LIQUE_800610B0:
/* 3C4B0 800610B0 3C01BFF0 */ lui $at, (0xBFF00000 >> 16)
/* 3C4B4 800610B4 44810800 */ mtc1 $at, $f1
/* 3C4B8 800610B8 44800000 */ mtc1 $zero, $f0
/* 3C4BC 800610BC 460010A1 */ cvt.d.s $f2, $f2
/* 3C4C0 800610C0 46220003 */ div.d $f0, $f0, $f2
/* 3C4C4 800610C4 46200020 */ cvt.s.d $f0, $f0
/* 3C4C8 800610C8 4600F782 */ mul.s $f30, $f30, $f0
/* 3C4CC 800610CC 4600E702 */ mul.s $f28, $f28, $f0
/* 3C4D0 800610D0 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C4D4 800610D4 46009482 */ mul.s $f18, $f18, $f0
/* 3C4D8 800610D8 C7AE0078 */ lwc1 $f14, 0x78($sp)
/* 3C4DC 800610DC 461C7102 */ mul.s $f4, $f14, $f28
/* 3C4E0 800610E0 4612D082 */ mul.s $f2, $f26, $f18
/* 3C4E4 800610E4 461ED282 */ mul.s $f10, $f26, $f30
/* 3C4E8 800610E8 E7B20010 */ swc1 $f18, 0x10($sp)
/* 3C4EC 800610EC C7B20074 */ lwc1 $f18, 0x74($sp)
/* 3C4F0 800610F0 461C9182 */ mul.s $f6, $f18, $f28
/* 3C4F4 800610F4 C7AE0010 */ lwc1 $f14, 0x10($sp)
/* 3C4F8 800610F8 460E9302 */ mul.s $f12, $f18, $f14
/* 3C4FC 800610FC C7B20078 */ lwc1 $f18, 0x78($sp)
/* 3C500 80061100 461E9202 */ mul.s $f8, $f18, $f30
/* 3C504 80061104 46022601 */ sub.s $f24, $f4, $f2
/* 3C508 80061108 4618C002 */ mul.s $f0, $f24, $f24
/* 3C50C 8006110C 46065501 */ sub.s $f20, $f10, $f6
/* 3C510 80061110 4614A102 */ mul.s $f4, $f20, $f20
/* 3C514 80061114 46086581 */ sub.s $f22, $f12, $f8
/* 3C518 80061118 4616B082 */ mul.s $f2, $f22, $f22
/* 3C51C 8006111C 46040000 */ add.s $f0, $f0, $f4
/* 3C520 80061120 46020300 */ add.s $f12, $f0, $f2
/* 3C524 80061124 46006004 */ sqrt.s $f0, $f12
/* 3C528 80061128 46000032 */ c.eq.s $f0, $f0
/* 3C52C 8006112C 45010003 */ bc1t .LIQUE_8006113C
/* 3C530 80061130 00000000 */ nop
/* 3C534 80061134 0C0183A0 */ jal sqrtf
/* 3C538 80061138 00000000 */ nop
.LIQUE_8006113C:
/* 3C53C 8006113C 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3C540 80061140 44817800 */ mtc1 $at, $f15
/* 3C544 80061144 44807000 */ mtc1 $zero, $f14
/* 3C548 80061148 46000021 */ cvt.d.s $f0, $f0
/* 3C54C 8006114C 46207003 */ div.d $f0, $f14, $f0
/* 3C550 80061150 46200020 */ cvt.s.d $f0, $f0
/* 3C554 80061154 4600C602 */ mul.s $f24, $f24, $f0
/* 3C558 80061158 4600B582 */ mul.s $f22, $f22, $f0
/* 3C55C 8006115C 4600A502 */ mul.s $f20, $f20, $f0
/* 3C560 80061160 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C564 80061164 46169102 */ mul.s $f4, $f18, $f22
/* 3C568 80061168 4614E082 */ mul.s $f2, $f28, $f20
/* 3C56C 8006116C 4618E282 */ mul.s $f10, $f28, $f24
/* 3C570 80061170 4616F182 */ mul.s $f6, $f30, $f22
/* 3C574 80061174 4614F302 */ mul.s $f12, $f30, $f20
/* 3C578 80061178 46189202 */ mul.s $f8, $f18, $f24
/* 3C57C 8006117C 46022101 */ sub.s $f4, $f4, $f2
/* 3C580 80061180 46042002 */ mul.s $f0, $f4, $f4
/* 3C584 80061184 46065281 */ sub.s $f10, $f10, $f6
/* 3C588 80061188 E7A40074 */ swc1 $f4, 0x74($sp)
/* 3C58C 8006118C 460A5102 */ mul.s $f4, $f10, $f10
/* 3C590 80061190 46086681 */ sub.s $f26, $f12, $f8
/* 3C594 80061194 461AD082 */ mul.s $f2, $f26, $f26
/* 3C598 80061198 46040000 */ add.s $f0, $f0, $f4
/* 3C59C 8006119C 46020300 */ add.s $f12, $f0, $f2
/* 3C5A0 800611A0 46006004 */ sqrt.s $f0, $f12
/* 3C5A4 800611A4 46000032 */ c.eq.s $f0, $f0
/* 3C5A8 800611A8 45010003 */ bc1t .LIQUE_800611B8
/* 3C5AC 800611AC E7AA0078 */ swc1 $f10, 0x78($sp)
/* 3C5B0 800611B0 0C0183A0 */ jal sqrtf
/* 3C5B4 800611B4 00000000 */ nop
.LIQUE_800611B8:
/* 3C5B8 800611B8 46000021 */ cvt.d.s $f0, $f0
/* 3C5BC 800611BC 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3C5C0 800611C0 44817800 */ mtc1 $at, $f15
/* 3C5C4 800611C4 44807000 */ mtc1 $zero, $f14
/* 3C5C8 800611C8 C7B20074 */ lwc1 $f18, 0x74($sp)
/* 3C5CC 800611CC 46207003 */ div.d $f0, $f14, $f0
/* 3C5D0 800611D0 46200020 */ cvt.s.d $f0, $f0
/* 3C5D4 800611D4 46009482 */ mul.s $f18, $f18, $f0
/* 3C5D8 800611D8 4600D682 */ mul.s $f26, $f26, $f0
/* 3C5DC 800611DC C7AE0078 */ lwc1 $f14, 0x78($sp)
/* 3C5E0 800611E0 46007382 */ mul.s $f14, $f14, $f0
/* 3C5E4 800611E4 E7B20074 */ swc1 $f18, 0x74($sp)
/* 3C5E8 800611E8 C7B2005C */ lwc1 $f18, 0x5C($sp)
/* 3C5EC 800611EC 46189102 */ mul.s $f4, $f18, $f24
/* 3C5F0 800611F0 E7AE0078 */ swc1 $f14, 0x78($sp)
/* 3C5F4 800611F4 C7AE0060 */ lwc1 $f14, 0x60($sp)
/* 3C5F8 800611F8 46147002 */ mul.s $f0, $f14, $f20
/* 3C5FC 800611FC C7B20064 */ lwc1 $f18, 0x64($sp)
/* 3C600 80061200 46169202 */ mul.s $f8, $f18, $f22
/* 3C604 80061204 C7AE005C */ lwc1 $f14, 0x5C($sp)
/* 3C608 80061208 C7B20074 */ lwc1 $f18, 0x74($sp)
/* 3C60C 8006120C 46127182 */ mul.s $f6, $f14, $f18
/* 3C610 80061210 C7AE0060 */ lwc1 $f14, 0x60($sp)
/* 3C614 80061214 C7B20078 */ lwc1 $f18, 0x78($sp)
/* 3C618 80061218 46127282 */ mul.s $f10, $f14, $f18
/* 3C61C 8006121C C7AE0064 */ lwc1 $f14, 0x64($sp)
/* 3C620 80061220 461A7302 */ mul.s $f12, $f14, $f26
/* 3C624 80061224 C7B2005C */ lwc1 $f18, 0x5C($sp)
/* 3C628 80061228 461E9082 */ mul.s $f2, $f18, $f30
/* 3C62C 8006122C C7AE0060 */ lwc1 $f14, 0x60($sp)
/* 3C630 80061230 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C634 80061234 46127382 */ mul.s $f14, $f14, $f18
/* 3C638 80061238 46002100 */ add.s $f4, $f4, $f0
/* 3C63C 8006123C 460A3180 */ add.s $f6, $f6, $f10
/* 3C640 80061240 46082100 */ add.s $f4, $f4, $f8
/* 3C644 80061244 460C3180 */ add.s $f6, $f6, $f12
/* 3C648 80061248 E7AE0018 */ swc1 $f14, 0x18($sp)
/* 3C64C 8006124C C7AE0064 */ lwc1 $f14, 0x64($sp)
/* 3C650 80061250 461C7402 */ mul.s $f16, $f14, $f28
/* 3C654 80061254 E6180000 */ swc1 $f24, 0x0($s0)
/* 3C658 80061258 E6140010 */ swc1 $f20, 0x10($s0)
/* 3C65C 8006125C E6160020 */ swc1 $f22, 0x20($s0)
/* 3C660 80061260 E61E0008 */ swc1 $f30, 0x8($s0)
/* 3C664 80061264 E6120018 */ swc1 $f18, 0x18($s0)
/* 3C668 80061268 E61C0028 */ swc1 $f28, 0x28($s0)
/* 3C66C 8006126C AE00000C */ sw $zero, 0xC($s0)
/* 3C670 80061270 AE00001C */ sw $zero, 0x1C($s0)
/* 3C674 80061274 AE00002C */ sw $zero, 0x2C($s0)
/* 3C678 80061278 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3C67C 8006127C 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 3C680 80061280 44810000 */ mtc1 $at, $f0
/* 3C684 80061284 46121080 */ add.s $f2, $f2, $f18
/* 3C688 80061288 E600003C */ swc1 $f0, 0x3C($s0)
/* 3C68C 8006128C C7AE0074 */ lwc1 $f14, 0x74($sp)
/* 3C690 80061290 46002107 */ neg.s $f4, $f4
/* 3C694 80061294 E60E0004 */ swc1 $f14, 0x4($s0)
/* 3C698 80061298 C7B20078 */ lwc1 $f18, 0x78($sp)
/* 3C69C 8006129C 8FBF0024 */ lw $ra, 0x24($sp)
/* 3C6A0 800612A0 D7BE0050 */ ldc1 $f30, 0x50($sp)
/* 3C6A4 800612A4 D7BC0048 */ ldc1 $f28, 0x48($sp)
/* 3C6A8 800612A8 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 3C6AC 800612AC D7B60030 */ ldc1 $f22, 0x30($sp)
/* 3C6B0 800612B0 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3C6B4 800612B4 46003187 */ neg.s $f6, $f6
/* 3C6B8 800612B8 E6120014 */ swc1 $f18, 0x14($s0)
/* 3C6BC 800612BC E61A0024 */ swc1 $f26, 0x24($s0)
/* 3C6C0 800612C0 D7BA0040 */ ldc1 $f26, 0x40($sp)
/* 3C6C4 800612C4 46101080 */ add.s $f2, $f2, $f16
/* 3C6C8 800612C8 E6040030 */ swc1 $f4, 0x30($s0)
/* 3C6CC 800612CC E6060034 */ swc1 $f6, 0x34($s0)
/* 3C6D0 800612D0 46001087 */ neg.s $f2, $f2
/* 3C6D4 800612D4 E6020038 */ swc1 $f2, 0x38($s0)
/* 3C6D8 800612D8 8FB00020 */ lw $s0, 0x20($sp)
/* 3C6DC 800612DC 03E00008 */ jr $ra
/* 3C6E0 800612E0 27BD0058 */ addiu $sp, $sp, 0x58
glabel guLookAt
/* 3C6E4 800612E4 27BDFF90 */ addiu $sp, $sp, -0x70
/* 3C6E8 800612E8 AFB00068 */ sw $s0, 0x68($sp)
/* 3C6EC 800612EC 00808021 */ addu $s0, $a0, $zero
/* 3C6F0 800612F0 C7A00080 */ lwc1 $f0, 0x80($sp)
/* 3C6F4 800612F4 C7A20084 */ lwc1 $f2, 0x84($sp)
/* 3C6F8 800612F8 C7A40088 */ lwc1 $f4, 0x88($sp)
/* 3C6FC 800612FC C7A6008C */ lwc1 $f6, 0x8C($sp)
/* 3C700 80061300 C7A80090 */ lwc1 $f8, 0x90($sp)
/* 3C704 80061304 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 3C708 80061308 27A40028 */ addiu $a0, $sp, 0x28
/* 3C70C 8006130C AFBF006C */ sw $ra, 0x6C($sp)
/* 3C710 80061310 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3C714 80061314 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3C718 80061318 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3C71C 8006131C E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3C720 80061320 E7A80020 */ swc1 $f8, 0x20($sp)
/* 3C724 80061324 0C018408 */ jal guLookAtF
/* 3C728 80061328 E7AA0024 */ swc1 $f10, 0x24($sp)
/* 3C72C 8006132C 27A40028 */ addiu $a0, $sp, 0x28
/* 3C730 80061330 0C0196B0 */ jal guMtxF2L
/* 3C734 80061334 02002821 */ addu $a1, $s0, $zero
/* 3C738 80061338 8FBF006C */ lw $ra, 0x6C($sp)
/* 3C73C 8006133C 8FB00068 */ lw $s0, 0x68($sp)
/* 3C740 80061340 03E00008 */ jr $ra
/* 3C744 80061344 27BD0070 */ addiu $sp, $sp, 0x70
/* 3C748 80061348 00000000 */ nop
/* 3C74C 8006134C 00000000 */ nop

View File

@ -0,0 +1,601 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guLookAtHiliteF
/* 3C750 80061350 27BDFF88 */ addiu $sp, $sp, -0x78
/* 3C754 80061354 F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 3C758 80061358 C7BC00A4 */ lwc1 $f28, 0xA4($sp)
/* 3C75C 8006135C F7B40048 */ sdc1 $f20, 0x48($sp)
/* 3C760 80061360 C7B40090 */ lwc1 $f20, 0x90($sp)
/* 3C764 80061364 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 3C768 80061368 C7B60094 */ lwc1 $f22, 0x94($sp)
/* 3C76C 8006136C F7B80058 */ sdc1 $f24, 0x58($sp)
/* 3C770 80061370 C7B80098 */ lwc1 $f24, 0x98($sp)
/* 3C774 80061374 AFB3003C */ sw $s3, 0x3C($sp)
/* 3C778 80061378 8FB300C0 */ lw $s3, 0xC0($sp)
/* 3C77C 8006137C AFB10034 */ sw $s1, 0x34($sp)
/* 3C780 80061380 00808821 */ addu $s1, $a0, $zero
/* 3C784 80061384 AFB00030 */ sw $s0, 0x30($sp)
/* 3C788 80061388 00A08021 */ addu $s0, $a1, $zero
/* 3C78C 8006138C AFB20038 */ sw $s2, 0x38($sp)
/* 3C790 80061390 00C09021 */ addu $s2, $a2, $zero
/* 3C794 80061394 AFB40040 */ sw $s4, 0x40($sp)
/* 3C798 80061398 8FB400C4 */ lw $s4, 0xC4($sp)
/* 3C79C 8006139C AFBF0044 */ sw $ra, 0x44($sp)
/* 3C7A0 800613A0 F7BE0070 */ sdc1 $f30, 0x70($sp)
/* 3C7A4 800613A4 F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 3C7A8 800613A8 0C019698 */ jal guMtxIdentF
/* 3C7AC 800613AC AFA70084 */ sw $a3, 0x84($sp)
/* 3C7B0 800613B0 C7AE0084 */ lwc1 $f14, 0x84($sp)
/* 3C7B4 800613B4 460EA501 */ sub.s $f20, $f20, $f14
/* 3C7B8 800613B8 4614A002 */ mul.s $f0, $f20, $f20
/* 3C7BC 800613BC C7B20088 */ lwc1 $f18, 0x88($sp)
/* 3C7C0 800613C0 4612B581 */ sub.s $f22, $f22, $f18
/* 3C7C4 800613C4 4616B102 */ mul.s $f4, $f22, $f22
/* 3C7C8 800613C8 C7AE008C */ lwc1 $f14, 0x8C($sp)
/* 3C7CC 800613CC 460EC601 */ sub.s $f24, $f24, $f14
/* 3C7D0 800613D0 4618C082 */ mul.s $f2, $f24, $f24
/* 3C7D4 800613D4 46040000 */ add.s $f0, $f0, $f4
/* 3C7D8 800613D8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 3C7DC 800613DC 46020300 */ add.s $f12, $f0, $f2
/* 3C7E0 800613E0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 3C7E4 800613E4 46006084 */ sqrt.s $f2, $f12
/* 3C7E8 800613E8 46021032 */ c.eq.s $f2, $f2
/* 3C7EC 800613EC 45010004 */ bc1t .LIQUE_80061400
/* 3C7F0 800613F0 E7B80018 */ swc1 $f24, 0x18($sp)
/* 3C7F4 800613F4 0C0183A0 */ jal sqrtf
/* 3C7F8 800613F8 00000000 */ nop
/* 3C7FC 800613FC 46000086 */ mov.s $f2, $f0
.LIQUE_80061400:
/* 3C800 80061400 460010A1 */ cvt.d.s $f2, $f2
/* 3C804 80061404 3C01BFF0 */ lui $at, (0xBFF00000 >> 16)
/* 3C808 80061408 44810800 */ mtc1 $at, $f1
/* 3C80C 8006140C 44800000 */ mtc1 $zero, $f0
/* 3C810 80061410 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C814 80061414 46220003 */ div.d $f0, $f0, $f2
/* 3C818 80061418 46200020 */ cvt.s.d $f0, $f0
/* 3C81C 8006141C 46009482 */ mul.s $f18, $f18, $f0
/* 3C820 80061420 E7B20010 */ swc1 $f18, 0x10($sp)
/* 3C824 80061424 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3C828 80061428 46009482 */ mul.s $f18, $f18, $f0
/* 3C82C 8006142C C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 3C830 80061430 46007382 */ mul.s $f14, $f14, $f0
/* 3C834 80061434 E7B20014 */ swc1 $f18, 0x14($sp)
/* 3C838 80061438 C7B200A0 */ lwc1 $f18, 0xA0($sp)
/* 3C83C 8006143C 460E9102 */ mul.s $f4, $f18, $f14
/* 3C840 80061440 E7AE0018 */ swc1 $f14, 0x18($sp)
/* 3C844 80061444 C7AE0014 */ lwc1 $f14, 0x14($sp)
/* 3C848 80061448 460EE082 */ mul.s $f2, $f28, $f14
/* 3C84C 8006144C C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C850 80061450 4612E282 */ mul.s $f10, $f28, $f18
/* 3C854 80061454 C7AE009C */ lwc1 $f14, 0x9C($sp)
/* 3C858 80061458 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3C85C 8006145C 46127182 */ mul.s $f6, $f14, $f18
/* 3C860 80061460 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3C864 80061464 46127302 */ mul.s $f12, $f14, $f18
/* 3C868 80061468 C7AE00A0 */ lwc1 $f14, 0xA0($sp)
/* 3C86C 8006146C C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C870 80061470 46127202 */ mul.s $f8, $f14, $f18
/* 3C874 80061474 46022101 */ sub.s $f4, $f4, $f2
/* 3C878 80061478 46042002 */ mul.s $f0, $f4, $f4
/* 3C87C 8006147C 46065781 */ sub.s $f30, $f10, $f6
/* 3C880 80061480 E7A4001C */ swc1 $f4, 0x1C($sp)
/* 3C884 80061484 461EF102 */ mul.s $f4, $f30, $f30
/* 3C888 80061488 46086301 */ sub.s $f12, $f12, $f8
/* 3C88C 8006148C 460C6082 */ mul.s $f2, $f12, $f12
/* 3C890 80061490 46040000 */ add.s $f0, $f0, $f4
/* 3C894 80061494 E7AC0020 */ swc1 $f12, 0x20($sp)
/* 3C898 80061498 46020300 */ add.s $f12, $f0, $f2
/* 3C89C 8006149C 46006004 */ sqrt.s $f0, $f12
/* 3C8A0 800614A0 46000032 */ c.eq.s $f0, $f0
/* 3C8A4 800614A4 45030004 */ bc1tl .LIQUE_800614B8
/* 3C8A8 800614A8 46000021 */ cvt.d.s $f0, $f0
/* 3C8AC 800614AC 0C0183A0 */ jal sqrtf
/* 3C8B0 800614B0 00000000 */ nop
/* 3C8B4 800614B4 46000021 */ cvt.d.s $f0, $f0
.LIQUE_800614B8:
/* 3C8B8 800614B8 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3C8BC 800614BC 4481D800 */ mtc1 $at, $f27
/* 3C8C0 800614C0 4480D000 */ mtc1 $zero, $f26
/* 3C8C4 800614C4 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3C8C8 800614C8 4620D003 */ div.d $f0, $f26, $f0
/* 3C8CC 800614CC 46200020 */ cvt.s.d $f0, $f0
/* 3C8D0 800614D0 46007382 */ mul.s $f14, $f14, $f0
/* 3C8D4 800614D4 C7B20020 */ lwc1 $f18, 0x20($sp)
/* 3C8D8 800614D8 46009482 */ mul.s $f18, $f18, $f0
/* 3C8DC 800614DC 4600F782 */ mul.s $f30, $f30, $f0
/* 3C8E0 800614E0 E7AE001C */ swc1 $f14, 0x1C($sp)
/* 3C8E4 800614E4 C7AE0014 */ lwc1 $f14, 0x14($sp)
/* 3C8E8 800614E8 46127102 */ mul.s $f4, $f14, $f18
/* 3C8EC 800614EC E7B20020 */ swc1 $f18, 0x20($sp)
/* 3C8F0 800614F0 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3C8F4 800614F4 461E9082 */ mul.s $f2, $f18, $f30
/* 3C8F8 800614F8 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3C8FC 800614FC 460E9282 */ mul.s $f10, $f18, $f14
/* 3C900 80061500 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3C904 80061504 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 3C908 80061508 460E9182 */ mul.s $f6, $f18, $f14
/* 3C90C 8006150C 461E9302 */ mul.s $f12, $f18, $f30
/* 3C910 80061510 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3C914 80061514 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3C918 80061518 460E9202 */ mul.s $f8, $f18, $f14
/* 3C91C 8006151C 46022101 */ sub.s $f4, $f4, $f2
/* 3C920 80061520 46042002 */ mul.s $f0, $f4, $f4
/* 3C924 80061524 46065281 */ sub.s $f10, $f10, $f6
/* 3C928 80061528 E7A4009C */ swc1 $f4, 0x9C($sp)
/* 3C92C 8006152C 460A5102 */ mul.s $f4, $f10, $f10
/* 3C930 80061530 46086701 */ sub.s $f28, $f12, $f8
/* 3C934 80061534 461CE082 */ mul.s $f2, $f28, $f28
/* 3C938 80061538 46040000 */ add.s $f0, $f0, $f4
/* 3C93C 8006153C 46020300 */ add.s $f12, $f0, $f2
/* 3C940 80061540 46006004 */ sqrt.s $f0, $f12
/* 3C944 80061544 46000032 */ c.eq.s $f0, $f0
/* 3C948 80061548 45010003 */ bc1t .LIQUE_80061558
/* 3C94C 8006154C E7AA00A0 */ swc1 $f10, 0xA0($sp)
/* 3C950 80061550 0C0183A0 */ jal sqrtf
/* 3C954 80061554 00000000 */ nop
.LIQUE_80061558:
/* 3C958 80061558 46000021 */ cvt.d.s $f0, $f0
/* 3C95C 8006155C 4620D003 */ div.d $f0, $f26, $f0
/* 3C960 80061560 46200020 */ cvt.s.d $f0, $f0
/* 3C964 80061564 4600E702 */ mul.s $f28, $f28, $f0
/* 3C968 80061568 C7B2009C */ lwc1 $f18, 0x9C($sp)
/* 3C96C 8006156C 46009482 */ mul.s $f18, $f18, $f0
/* 3C970 80061570 C7AE00A0 */ lwc1 $f14, 0xA0($sp)
/* 3C974 80061574 46007382 */ mul.s $f14, $f14, $f0
/* 3C978 80061578 E7B2009C */ swc1 $f18, 0x9C($sp)
/* 3C97C 8006157C C7B200A8 */ lwc1 $f18, 0xA8($sp)
/* 3C980 80061580 46129002 */ mul.s $f0, $f18, $f18
/* 3C984 80061584 E7AE00A0 */ swc1 $f14, 0xA0($sp)
/* 3C988 80061588 C7AE00AC */ lwc1 $f14, 0xAC($sp)
/* 3C98C 8006158C 460E7082 */ mul.s $f2, $f14, $f14
/* 3C990 80061590 C7B200B0 */ lwc1 $f18, 0xB0($sp)
/* 3C994 80061594 46129102 */ mul.s $f4, $f18, $f18
/* 3C998 80061598 46020000 */ add.s $f0, $f0, $f2
/* 3C99C 8006159C 46040300 */ add.s $f12, $f0, $f4
/* 3C9A0 800615A0 46006004 */ sqrt.s $f0, $f12
/* 3C9A4 800615A4 46000032 */ c.eq.s $f0, $f0
/* 3C9A8 800615A8 45030004 */ bc1tl .LIQUE_800615BC
/* 3C9AC 800615AC 46000021 */ cvt.d.s $f0, $f0
/* 3C9B0 800615B0 0C0183A0 */ jal sqrtf
/* 3C9B4 800615B4 00000000 */ nop
/* 3C9B8 800615B8 46000021 */ cvt.d.s $f0, $f0
.LIQUE_800615BC:
/* 3C9BC 800615BC 4620D003 */ div.d $f0, $f26, $f0
/* 3C9C0 800615C0 C7AE00A8 */ lwc1 $f14, 0xA8($sp)
/* 3C9C4 800615C4 46200020 */ cvt.s.d $f0, $f0
/* 3C9C8 800615C8 46007382 */ mul.s $f14, $f14, $f0
/* 3C9CC 800615CC C7B200AC */ lwc1 $f18, 0xAC($sp)
/* 3C9D0 800615D0 46009482 */ mul.s $f18, $f18, $f0
/* 3C9D4 800615D4 E7AE00A8 */ swc1 $f14, 0xA8($sp)
/* 3C9D8 800615D8 C7AE00B0 */ lwc1 $f14, 0xB0($sp)
/* 3C9DC 800615DC 46007382 */ mul.s $f14, $f14, $f0
/* 3C9E0 800615E0 E7B200AC */ swc1 $f18, 0xAC($sp)
/* 3C9E4 800615E4 C7B200A8 */ lwc1 $f18, 0xA8($sp)
/* 3C9E8 800615E8 E7AE00B0 */ swc1 $f14, 0xB0($sp)
/* 3C9EC 800615EC C7AE0010 */ lwc1 $f14, 0x10($sp)
/* 3C9F0 800615F0 460E9600 */ add.s $f24, $f18, $f14
/* 3C9F4 800615F4 4618C002 */ mul.s $f0, $f24, $f24
/* 3C9F8 800615F8 C7B200AC */ lwc1 $f18, 0xAC($sp)
/* 3C9FC 800615FC C7AE0014 */ lwc1 $f14, 0x14($sp)
/* 3CA00 80061600 460E9580 */ add.s $f22, $f18, $f14
/* 3CA04 80061604 4616B102 */ mul.s $f4, $f22, $f22
/* 3CA08 80061608 C7B200B0 */ lwc1 $f18, 0xB0($sp)
/* 3CA0C 8006160C C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 3CA10 80061610 460E9500 */ add.s $f20, $f18, $f14
/* 3CA14 80061614 4614A082 */ mul.s $f2, $f20, $f20
/* 3CA18 80061618 46040000 */ add.s $f0, $f0, $f4
/* 3CA1C 8006161C 46020300 */ add.s $f12, $f0, $f2
/* 3CA20 80061620 46006084 */ sqrt.s $f2, $f12
/* 3CA24 80061624 46021032 */ c.eq.s $f2, $f2
/* 3CA28 80061628 45010004 */ bc1t .LIQUE_8006163C
/* 3CA2C 8006162C 00000000 */ nop
/* 3CA30 80061630 0C0183A0 */ jal sqrtf
/* 3CA34 80061634 00000000 */ nop
/* 3CA38 80061638 46000086 */ mov.s $f2, $f0
.LIQUE_8006163C:
/* 3CA3C 8006163C 3C01800A */ lui $at, %hi(D_IQUE_80098710)
/* 3CA40 80061640 D4208710 */ ldc1 $f0, %lo(D_IQUE_80098710)($at)
/* 3CA44 80061644 460010A1 */ cvt.d.s $f2, $f2
/* 3CA48 80061648 4622003C */ c.lt.d $f0, $f2
/* 3CA4C 8006164C 45000029 */ bc1f .LIQUE_800616F4
/* 3CA50 80061650 C7B2001C */ lwc1 $f18, 0x1C($sp)
/* 3CA54 80061654 4622D003 */ div.d $f0, $f26, $f2
/* 3CA58 80061658 46200020 */ cvt.s.d $f0, $f0
/* 3CA5C 8006165C 4600C602 */ mul.s $f24, $f24, $f0
/* 3CA60 80061660 4600B582 */ mul.s $f22, $f22, $f0
/* 3CA64 80061664 4600A502 */ mul.s $f20, $f20, $f0
/* 3CA68 80061668 4612C102 */ mul.s $f4, $f24, $f18
/* 3CA6C 8006166C 461EB082 */ mul.s $f2, $f22, $f30
/* 3CA70 80061670 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 3CA74 80061674 460EA182 */ mul.s $f6, $f20, $f14
/* 3CA78 80061678 461CA202 */ mul.s $f8, $f20, $f28
/* 3CA7C 8006167C 46022100 */ add.s $f4, $f4, $f2
/* 3CA80 80061680 C7B2009C */ lwc1 $f18, 0x9C($sp)
/* 3CA84 80061684 4612C082 */ mul.s $f2, $f24, $f18
/* 3CA88 80061688 46062100 */ add.s $f4, $f4, $f6
/* 3CA8C 8006168C C7AE00A0 */ lwc1 $f14, 0xA0($sp)
/* 3CA90 80061690 460EB182 */ mul.s $f6, $f22, $f14
/* 3CA94 80061694 44930000 */ mtc1 $s3, $f0
/* 3CA98 80061698 46800020 */ cvt.s.w $f0, $f0
/* 3CA9C 8006169C 46002102 */ mul.s $f4, $f4, $f0
/* 3CAA0 800616A0 46061080 */ add.s $f2, $f2, $f6
/* 3CAA4 800616A4 46081080 */ add.s $f2, $f2, $f8
/* 3CAA8 800616A8 44940000 */ mtc1 $s4, $f0
/* 3CAAC 800616AC 46800020 */ cvt.s.w $f0, $f0
/* 3CAB0 800616B0 46001082 */ mul.s $f2, $f2, $f0
/* 3CAB4 800616B4 46042100 */ add.s $f4, $f4, $f4
/* 3CAB8 800616B8 00131080 */ sll $v0, $s3, 2
/* 3CABC 800616BC 44823000 */ mtc1 $v0, $f6
/* 3CAC0 800616C0 468031A0 */ cvt.s.w $f6, $f6
/* 3CAC4 800616C4 46043180 */ add.s $f6, $f6, $f4
/* 3CAC8 800616C8 46021080 */ add.s $f2, $f2, $f2
/* 3CACC 800616CC 00141080 */ sll $v0, $s4, 2
/* 3CAD0 800616D0 44820000 */ mtc1 $v0, $f0
/* 3CAD4 800616D4 46800020 */ cvt.s.w $f0, $f0
/* 3CAD8 800616D8 46020000 */ add.s $f0, $f0, $f2
/* 3CADC 800616DC 4600348D */ trunc.w.s $f18, $f6
/* 3CAE0 800616E0 E6520000 */ swc1 $f18, 0x0($s2)
/* 3CAE4 800616E4 4600038D */ trunc.w.s $f14, $f0
/* 3CAE8 800616E8 E64E0004 */ swc1 $f14, 0x4($s2)
/* 3CAEC 800616EC 080185C2 */ j .LIQUE_80061708
/* 3CAF0 800616F0 C7AE00B4 */ lwc1 $f14, 0xB4($sp)
.LIQUE_800616F4:
/* 3CAF4 800616F4 00131040 */ sll $v0, $s3, 1
/* 3CAF8 800616F8 00141840 */ sll $v1, $s4, 1
/* 3CAFC 800616FC AE420000 */ sw $v0, 0x0($s2)
/* 3CB00 80061700 AE430004 */ sw $v1, 0x4($s2)
/* 3CB04 80061704 C7AE00B4 */ lwc1 $f14, 0xB4($sp)
.LIQUE_80061708:
/* 3CB08 80061708 460E7002 */ mul.s $f0, $f14, $f14
/* 3CB0C 8006170C C7B200B8 */ lwc1 $f18, 0xB8($sp)
/* 3CB10 80061710 46129082 */ mul.s $f2, $f18, $f18
/* 3CB14 80061714 C7AE00BC */ lwc1 $f14, 0xBC($sp)
/* 3CB18 80061718 460E7102 */ mul.s $f4, $f14, $f14
/* 3CB1C 8006171C 46020000 */ add.s $f0, $f0, $f2
/* 3CB20 80061720 46040300 */ add.s $f12, $f0, $f4
/* 3CB24 80061724 46006004 */ sqrt.s $f0, $f12
/* 3CB28 80061728 46000032 */ c.eq.s $f0, $f0
/* 3CB2C 8006172C 45030004 */ bc1tl .LIQUE_80061740
/* 3CB30 80061730 46000021 */ cvt.d.s $f0, $f0
/* 3CB34 80061734 0C0183A0 */ jal sqrtf
/* 3CB38 80061738 00000000 */ nop
/* 3CB3C 8006173C 46000021 */ cvt.d.s $f0, $f0
.LIQUE_80061740:
/* 3CB40 80061740 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3CB44 80061744 4481D800 */ mtc1 $at, $f27
/* 3CB48 80061748 4480D000 */ mtc1 $zero, $f26
/* 3CB4C 8006174C C7B200B4 */ lwc1 $f18, 0xB4($sp)
/* 3CB50 80061750 4620D003 */ div.d $f0, $f26, $f0
/* 3CB54 80061754 46200020 */ cvt.s.d $f0, $f0
/* 3CB58 80061758 46009482 */ mul.s $f18, $f18, $f0
/* 3CB5C 8006175C C7AE00B8 */ lwc1 $f14, 0xB8($sp)
/* 3CB60 80061760 46007382 */ mul.s $f14, $f14, $f0
/* 3CB64 80061764 E7B200B4 */ swc1 $f18, 0xB4($sp)
/* 3CB68 80061768 C7B200BC */ lwc1 $f18, 0xBC($sp)
/* 3CB6C 8006176C 46009482 */ mul.s $f18, $f18, $f0
/* 3CB70 80061770 E7AE00B8 */ swc1 $f14, 0xB8($sp)
/* 3CB74 80061774 C7AE00B4 */ lwc1 $f14, 0xB4($sp)
/* 3CB78 80061778 E7B200BC */ swc1 $f18, 0xBC($sp)
/* 3CB7C 8006177C C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3CB80 80061780 46127600 */ add.s $f24, $f14, $f18
/* 3CB84 80061784 4618C002 */ mul.s $f0, $f24, $f24
/* 3CB88 80061788 C7AE00B8 */ lwc1 $f14, 0xB8($sp)
/* 3CB8C 8006178C C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3CB90 80061790 46127580 */ add.s $f22, $f14, $f18
/* 3CB94 80061794 4616B102 */ mul.s $f4, $f22, $f22
/* 3CB98 80061798 C7AE00BC */ lwc1 $f14, 0xBC($sp)
/* 3CB9C 8006179C C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3CBA0 800617A0 46127500 */ add.s $f20, $f14, $f18
/* 3CBA4 800617A4 4614A082 */ mul.s $f2, $f20, $f20
/* 3CBA8 800617A8 46040000 */ add.s $f0, $f0, $f4
/* 3CBAC 800617AC 46020300 */ add.s $f12, $f0, $f2
/* 3CBB0 800617B0 46006084 */ sqrt.s $f2, $f12
/* 3CBB4 800617B4 46021032 */ c.eq.s $f2, $f2
/* 3CBB8 800617B8 45010004 */ bc1t .LIQUE_800617CC
/* 3CBBC 800617BC 00000000 */ nop
/* 3CBC0 800617C0 0C0183A0 */ jal sqrtf
/* 3CBC4 800617C4 00000000 */ nop
/* 3CBC8 800617C8 46000086 */ mov.s $f2, $f0
.LIQUE_800617CC:
/* 3CBCC 800617CC 3C01800A */ lui $at, %hi(D_IQUE_80098718)
/* 3CBD0 800617D0 D4208718 */ ldc1 $f0, %lo(D_IQUE_80098718)($at)
/* 3CBD4 800617D4 460010A1 */ cvt.d.s $f2, $f2
/* 3CBD8 800617D8 4622003C */ c.lt.d $f0, $f2
/* 3CBDC 800617DC 45000028 */ bc1f .LIQUE_80061880
/* 3CBE0 800617E0 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3CBE4 800617E4 4622D003 */ div.d $f0, $f26, $f2
/* 3CBE8 800617E8 46200020 */ cvt.s.d $f0, $f0
/* 3CBEC 800617EC 4600C602 */ mul.s $f24, $f24, $f0
/* 3CBF0 800617F0 4600B582 */ mul.s $f22, $f22, $f0
/* 3CBF4 800617F4 4600A502 */ mul.s $f20, $f20, $f0
/* 3CBF8 800617F8 460EC102 */ mul.s $f4, $f24, $f14
/* 3CBFC 800617FC 461EB082 */ mul.s $f2, $f22, $f30
/* 3CC00 80061800 C7B20020 */ lwc1 $f18, 0x20($sp)
/* 3CC04 80061804 4612A182 */ mul.s $f6, $f20, $f18
/* 3CC08 80061808 461CA202 */ mul.s $f8, $f20, $f28
/* 3CC0C 8006180C 46022100 */ add.s $f4, $f4, $f2
/* 3CC10 80061810 C7AE009C */ lwc1 $f14, 0x9C($sp)
/* 3CC14 80061814 460EC082 */ mul.s $f2, $f24, $f14
/* 3CC18 80061818 46062100 */ add.s $f4, $f4, $f6
/* 3CC1C 8006181C C7B200A0 */ lwc1 $f18, 0xA0($sp)
/* 3CC20 80061820 4612B182 */ mul.s $f6, $f22, $f18
/* 3CC24 80061824 44930000 */ mtc1 $s3, $f0
/* 3CC28 80061828 46800020 */ cvt.s.w $f0, $f0
/* 3CC2C 8006182C 46002102 */ mul.s $f4, $f4, $f0
/* 3CC30 80061830 46061080 */ add.s $f2, $f2, $f6
/* 3CC34 80061834 46081080 */ add.s $f2, $f2, $f8
/* 3CC38 80061838 44940000 */ mtc1 $s4, $f0
/* 3CC3C 8006183C 46800020 */ cvt.s.w $f0, $f0
/* 3CC40 80061840 46001082 */ mul.s $f2, $f2, $f0
/* 3CC44 80061844 46042100 */ add.s $f4, $f4, $f4
/* 3CC48 80061848 00131080 */ sll $v0, $s3, 2
/* 3CC4C 8006184C 44823000 */ mtc1 $v0, $f6
/* 3CC50 80061850 468031A0 */ cvt.s.w $f6, $f6
/* 3CC54 80061854 46043180 */ add.s $f6, $f6, $f4
/* 3CC58 80061858 46021080 */ add.s $f2, $f2, $f2
/* 3CC5C 8006185C 00141080 */ sll $v0, $s4, 2
/* 3CC60 80061860 44820000 */ mtc1 $v0, $f0
/* 3CC64 80061864 46800020 */ cvt.s.w $f0, $f0
/* 3CC68 80061868 46020000 */ add.s $f0, $f0, $f2
/* 3CC6C 8006186C 4600338D */ trunc.w.s $f14, $f6
/* 3CC70 80061870 E64E0008 */ swc1 $f14, 0x8($s2)
/* 3CC74 80061874 4600038D */ trunc.w.s $f14, $f0
/* 3CC78 80061878 08018624 */ j .LIQUE_80061890
/* 3CC7C 8006187C E64E000C */ swc1 $f14, 0xC($s2)
.LIQUE_80061880:
/* 3CC80 80061880 00131040 */ sll $v0, $s3, 1
/* 3CC84 80061884 00141840 */ sll $v1, $s4, 1
/* 3CC88 80061888 AE420008 */ sw $v0, 0x8($s2)
/* 3CC8C 8006188C AE43000C */ sw $v1, 0xC($s2)
.LIQUE_80061890:
/* 3CC90 80061890 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CC94 80061894 44810000 */ mtc1 $at, $f0
/* 3CC98 80061898 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3CC9C 8006189C 46007002 */ mul.s $f0, $f14, $f0
/* 3CCA0 800618A0 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CCA4 800618A4 44811000 */ mtc1 $at, $f2
/* 3CCA8 800618A8 4602003C */ c.lt.s $f0, $f2
/* 3CCAC 800618AC 45000005 */ bc1f .LIQUE_800618C4
/* 3CCB0 800618B0 2402007F */ addiu $v0, $zero, 0x7F
/* 3CCB4 800618B4 4600048D */ trunc.w.s $f18, $f0
/* 3CCB8 800618B8 44029000 */ mfc1 $v0, $f18
/* 3CCBC 800618BC 08018632 */ j .LIQUE_800618C8
/* 3CCC0 800618C0 A2020008 */ sb $v0, 0x8($s0)
.LIQUE_800618C4:
/* 3CCC4 800618C4 A2020008 */ sb $v0, 0x8($s0)
.LIQUE_800618C8:
/* 3CCC8 800618C8 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CCCC 800618CC 44810000 */ mtc1 $at, $f0
/* 3CCD0 800618D0 4600F002 */ mul.s $f0, $f30, $f0
/* 3CCD4 800618D4 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CCD8 800618D8 44811000 */ mtc1 $at, $f2
/* 3CCDC 800618DC 4602003C */ c.lt.s $f0, $f2
/* 3CCE0 800618E0 45000005 */ bc1f .LIQUE_800618F8
/* 3CCE4 800618E4 2402007F */ addiu $v0, $zero, 0x7F
/* 3CCE8 800618E8 4600038D */ trunc.w.s $f14, $f0
/* 3CCEC 800618EC 44027000 */ mfc1 $v0, $f14
/* 3CCF0 800618F0 0801863F */ j .LIQUE_800618FC
/* 3CCF4 800618F4 A2020009 */ sb $v0, 0x9($s0)
.LIQUE_800618F8:
/* 3CCF8 800618F8 A2020009 */ sb $v0, 0x9($s0)
.LIQUE_800618FC:
/* 3CCFC 800618FC 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CD00 80061900 44810000 */ mtc1 $at, $f0
/* 3CD04 80061904 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 3CD08 80061908 46007002 */ mul.s $f0, $f14, $f0
/* 3CD0C 8006190C 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CD10 80061910 44811000 */ mtc1 $at, $f2
/* 3CD14 80061914 4602003C */ c.lt.s $f0, $f2
/* 3CD18 80061918 45000005 */ bc1f .LIQUE_80061930
/* 3CD1C 8006191C 2402007F */ addiu $v0, $zero, 0x7F
/* 3CD20 80061920 4600048D */ trunc.w.s $f18, $f0
/* 3CD24 80061924 44029000 */ mfc1 $v0, $f18
/* 3CD28 80061928 0801864D */ j .LIQUE_80061934
/* 3CD2C 8006192C A202000A */ sb $v0, 0xA($s0)
.LIQUE_80061930:
/* 3CD30 80061930 A202000A */ sb $v0, 0xA($s0)
.LIQUE_80061934:
/* 3CD34 80061934 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CD38 80061938 44810000 */ mtc1 $at, $f0
/* 3CD3C 8006193C C7AE009C */ lwc1 $f14, 0x9C($sp)
/* 3CD40 80061940 46007002 */ mul.s $f0, $f14, $f0
/* 3CD44 80061944 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CD48 80061948 44811000 */ mtc1 $at, $f2
/* 3CD4C 8006194C 4602003C */ c.lt.s $f0, $f2
/* 3CD50 80061950 45000005 */ bc1f .LIQUE_80061968
/* 3CD54 80061954 2402007F */ addiu $v0, $zero, 0x7F
/* 3CD58 80061958 4600048D */ trunc.w.s $f18, $f0
/* 3CD5C 8006195C 44029000 */ mfc1 $v0, $f18
/* 3CD60 80061960 0801865B */ j .LIQUE_8006196C
/* 3CD64 80061964 A2020018 */ sb $v0, 0x18($s0)
.LIQUE_80061968:
/* 3CD68 80061968 A2020018 */ sb $v0, 0x18($s0)
.LIQUE_8006196C:
/* 3CD6C 8006196C 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CD70 80061970 44810000 */ mtc1 $at, $f0
/* 3CD74 80061974 C7AE00A0 */ lwc1 $f14, 0xA0($sp)
/* 3CD78 80061978 46007002 */ mul.s $f0, $f14, $f0
/* 3CD7C 8006197C 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CD80 80061980 44811000 */ mtc1 $at, $f2
/* 3CD84 80061984 4602003C */ c.lt.s $f0, $f2
/* 3CD88 80061988 45000005 */ bc1f .LIQUE_800619A0
/* 3CD8C 8006198C 2402007F */ addiu $v0, $zero, 0x7F
/* 3CD90 80061990 4600048D */ trunc.w.s $f18, $f0
/* 3CD94 80061994 44029000 */ mfc1 $v0, $f18
/* 3CD98 80061998 08018669 */ j .LIQUE_800619A4
/* 3CD9C 8006199C A2020019 */ sb $v0, 0x19($s0)
.LIQUE_800619A0:
/* 3CDA0 800619A0 A2020019 */ sb $v0, 0x19($s0)
.LIQUE_800619A4:
/* 3CDA4 800619A4 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3CDA8 800619A8 44810000 */ mtc1 $at, $f0
/* 3CDAC 800619AC 4600E002 */ mul.s $f0, $f28, $f0
/* 3CDB0 800619B0 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3CDB4 800619B4 44811000 */ mtc1 $at, $f2
/* 3CDB8 800619B8 4602003C */ c.lt.s $f0, $f2
/* 3CDBC 800619BC 45000005 */ bc1f .LIQUE_800619D4
/* 3CDC0 800619C0 2402007F */ addiu $v0, $zero, 0x7F
/* 3CDC4 800619C4 4600038D */ trunc.w.s $f14, $f0
/* 3CDC8 800619C8 44027000 */ mfc1 $v0, $f14
/* 3CDCC 800619CC 08018676 */ j .LIQUE_800619D8
/* 3CDD0 800619D0 A202001A */ sb $v0, 0x1A($s0)
.LIQUE_800619D4:
/* 3CDD4 800619D4 A202001A */ sb $v0, 0x1A($s0)
.LIQUE_800619D8:
/* 3CDD8 800619D8 C7AE0084 */ lwc1 $f14, 0x84($sp)
/* 3CDDC 800619DC C7B2001C */ lwc1 $f18, 0x1C($sp)
/* 3CDE0 800619E0 46127182 */ mul.s $f6, $f14, $f18
/* 3CDE4 800619E4 C7AE0088 */ lwc1 $f14, 0x88($sp)
/* 3CDE8 800619E8 461E7002 */ mul.s $f0, $f14, $f30
/* 3CDEC 800619EC C7B2008C */ lwc1 $f18, 0x8C($sp)
/* 3CDF0 800619F0 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 3CDF4 800619F4 460E9302 */ mul.s $f12, $f18, $f14
/* 3CDF8 800619F8 C7B20084 */ lwc1 $f18, 0x84($sp)
/* 3CDFC 800619FC C7AE009C */ lwc1 $f14, 0x9C($sp)
/* 3CE00 80061A00 460E9102 */ mul.s $f4, $f18, $f14
/* 3CE04 80061A04 C7B20088 */ lwc1 $f18, 0x88($sp)
/* 3CE08 80061A08 C7AE00A0 */ lwc1 $f14, 0xA0($sp)
/* 3CE0C 80061A0C A2000000 */ sb $zero, 0x0($s0)
/* 3CE10 80061A10 460E9402 */ mul.s $f16, $f18, $f14
/* 3CE14 80061A14 A2000001 */ sb $zero, 0x1($s0)
/* 3CE18 80061A18 A2000002 */ sb $zero, 0x2($s0)
/* 3CE1C 80061A1C C7B2008C */ lwc1 $f18, 0x8C($sp)
/* 3CE20 80061A20 461C9482 */ mul.s $f18, $f18, $f28
/* 3CE24 80061A24 46003180 */ add.s $f6, $f6, $f0
/* 3CE28 80061A28 E7B20028 */ swc1 $f18, 0x28($sp)
/* 3CE2C 80061A2C A2000003 */ sb $zero, 0x3($s0)
/* 3CE30 80061A30 A2000004 */ sb $zero, 0x4($s0)
/* 3CE34 80061A34 A2000005 */ sb $zero, 0x5($s0)
/* 3CE38 80061A38 A2000006 */ sb $zero, 0x6($s0)
/* 3CE3C 80061A3C C7AE0084 */ lwc1 $f14, 0x84($sp)
/* 3CE40 80061A40 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3CE44 80061A44 24020080 */ addiu $v0, $zero, 0x80
/* 3CE48 80061A48 46127082 */ mul.s $f2, $f14, $f18
/* 3CE4C 80061A4C A2000007 */ sb $zero, 0x7($s0)
/* 3CE50 80061A50 A2000010 */ sb $zero, 0x10($s0)
/* 3CE54 80061A54 A2020011 */ sb $v0, 0x11($s0)
/* 3CE58 80061A58 C7AE0088 */ lwc1 $f14, 0x88($sp)
/* 3CE5C 80061A5C C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3CE60 80061A60 46127282 */ mul.s $f10, $f14, $f18
/* 3CE64 80061A64 A2000012 */ sb $zero, 0x12($s0)
/* 3CE68 80061A68 A2000013 */ sb $zero, 0x13($s0)
/* 3CE6C 80061A6C A2000014 */ sb $zero, 0x14($s0)
/* 3CE70 80061A70 A2020015 */ sb $v0, 0x15($s0)
/* 3CE74 80061A74 C7AE008C */ lwc1 $f14, 0x8C($sp)
/* 3CE78 80061A78 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3CE7C 80061A7C 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 3CE80 80061A80 44810000 */ mtc1 $at, $f0
/* 3CE84 80061A84 46127202 */ mul.s $f8, $f14, $f18
/* 3CE88 80061A88 A2000016 */ sb $zero, 0x16($s0)
/* 3CE8C 80061A8C A2000017 */ sb $zero, 0x17($s0)
/* 3CE90 80061A90 C7AE001C */ lwc1 $f14, 0x1C($sp)
/* 3CE94 80061A94 8FBF0044 */ lw $ra, 0x44($sp)
/* 3CE98 80061A98 8FB40040 */ lw $s4, 0x40($sp)
/* 3CE9C 80061A9C 8FB3003C */ lw $s3, 0x3C($sp)
/* 3CEA0 80061AA0 8FB20038 */ lw $s2, 0x38($sp)
/* 3CEA4 80061AA4 8FB00030 */ lw $s0, 0x30($sp)
/* 3CEA8 80061AA8 D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 3CEAC 80061AAC D7B80058 */ ldc1 $f24, 0x58($sp)
/* 3CEB0 80061AB0 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 3CEB4 80061AB4 D7B40048 */ ldc1 $f20, 0x48($sp)
/* 3CEB8 80061AB8 E62E0000 */ swc1 $f14, 0x0($s1)
/* 3CEBC 80061ABC E63E0010 */ swc1 $f30, 0x10($s1)
/* 3CEC0 80061AC0 C7B20020 */ lwc1 $f18, 0x20($sp)
/* 3CEC4 80061AC4 460C3180 */ add.s $f6, $f6, $f12
/* 3CEC8 80061AC8 E6320020 */ swc1 $f18, 0x20($s1)
/* 3CECC 80061ACC C7AE009C */ lwc1 $f14, 0x9C($sp)
/* 3CED0 80061AD0 46102100 */ add.s $f4, $f4, $f16
/* 3CED4 80061AD4 E62E0004 */ swc1 $f14, 0x4($s1)
/* 3CED8 80061AD8 C7B200A0 */ lwc1 $f18, 0xA0($sp)
/* 3CEDC 80061ADC 46003187 */ neg.s $f6, $f6
/* 3CEE0 80061AE0 E6320014 */ swc1 $f18, 0x14($s1)
/* 3CEE4 80061AE4 E63C0024 */ swc1 $f28, 0x24($s1)
/* 3CEE8 80061AE8 C7AE0010 */ lwc1 $f14, 0x10($sp)
/* 3CEEC 80061AEC 460A1080 */ add.s $f2, $f2, $f10
/* 3CEF0 80061AF0 E62E0008 */ swc1 $f14, 0x8($s1)
/* 3CEF4 80061AF4 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3CEF8 80061AF8 46081080 */ add.s $f2, $f2, $f8
/* 3CEFC 80061AFC E6320018 */ swc1 $f18, 0x18($s1)
/* 3CF00 80061B00 C7AE0028 */ lwc1 $f14, 0x28($sp)
/* 3CF04 80061B04 D7BE0070 */ ldc1 $f30, 0x70($sp)
/* 3CF08 80061B08 460E2100 */ add.s $f4, $f4, $f14
/* 3CF0C 80061B0C D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 3CF10 80061B10 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3CF14 80061B14 46001087 */ neg.s $f2, $f2
/* 3CF18 80061B18 E6320028 */ swc1 $f18, 0x28($s1)
/* 3CF1C 80061B1C AE20000C */ sw $zero, 0xC($s1)
/* 3CF20 80061B20 AE20001C */ sw $zero, 0x1C($s1)
/* 3CF24 80061B24 AE20002C */ sw $zero, 0x2C($s1)
/* 3CF28 80061B28 E620003C */ swc1 $f0, 0x3C($s1)
/* 3CF2C 80061B2C E6260030 */ swc1 $f6, 0x30($s1)
/* 3CF30 80061B30 E6220038 */ swc1 $f2, 0x38($s1)
/* 3CF34 80061B34 46002107 */ neg.s $f4, $f4
/* 3CF38 80061B38 E6240034 */ swc1 $f4, 0x34($s1)
/* 3CF3C 80061B3C 8FB10034 */ lw $s1, 0x34($sp)
/* 3CF40 80061B40 03E00008 */ jr $ra
/* 3CF44 80061B44 27BD0078 */ addiu $sp, $sp, 0x78
glabel guLookAtHilite
/* 3CF48 80061B48 27BDFF48 */ addiu $sp, $sp, -0xB8
/* 3CF4C 80061B4C C7A000C8 */ lwc1 $f0, 0xC8($sp)
/* 3CF50 80061B50 C7A200CC */ lwc1 $f2, 0xCC($sp)
/* 3CF54 80061B54 C7A400D0 */ lwc1 $f4, 0xD0($sp)
/* 3CF58 80061B58 C7A600D4 */ lwc1 $f6, 0xD4($sp)
/* 3CF5C 80061B5C C7A800D8 */ lwc1 $f8, 0xD8($sp)
/* 3CF60 80061B60 C7AA00DC */ lwc1 $f10, 0xDC($sp)
/* 3CF64 80061B64 C7AC00E0 */ lwc1 $f12, 0xE0($sp)
/* 3CF68 80061B68 C7AE00E4 */ lwc1 $f14, 0xE4($sp)
/* 3CF6C 80061B6C C7B000E8 */ lwc1 $f16, 0xE8($sp)
/* 3CF70 80061B70 C7B200EC */ lwc1 $f18, 0xEC($sp)
/* 3CF74 80061B74 F7B40098 */ sdc1 $f20, 0x98($sp)
/* 3CF78 80061B78 C7B400F0 */ lwc1 $f20, 0xF0($sp)
/* 3CF7C 80061B7C F7B600A0 */ sdc1 $f22, 0xA0($sp)
/* 3CF80 80061B80 C7B600F4 */ lwc1 $f22, 0xF4($sp)
/* 3CF84 80061B84 F7B800A8 */ sdc1 $f24, 0xA8($sp)
/* 3CF88 80061B88 C7B800F8 */ lwc1 $f24, 0xF8($sp)
/* 3CF8C 80061B8C AFB00090 */ sw $s0, 0x90($sp)
/* 3CF90 80061B90 00808021 */ addu $s0, $a0, $zero
/* 3CF94 80061B94 F7BA00B0 */ sdc1 $f26, 0xB0($sp)
/* 3CF98 80061B98 C7BA00FC */ lwc1 $f26, 0xFC($sp)
/* 3CF9C 80061B9C 8FA20100 */ lw $v0, 0x100($sp)
/* 3CFA0 80061BA0 8FA30104 */ lw $v1, 0x104($sp)
/* 3CFA4 80061BA4 27A40050 */ addiu $a0, $sp, 0x50
/* 3CFA8 80061BA8 AFBF0094 */ sw $ra, 0x94($sp)
/* 3CFAC 80061BAC E7A00010 */ swc1 $f0, 0x10($sp)
/* 3CFB0 80061BB0 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3CFB4 80061BB4 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3CFB8 80061BB8 E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3CFBC 80061BBC E7A80020 */ swc1 $f8, 0x20($sp)
/* 3CFC0 80061BC0 E7AA0024 */ swc1 $f10, 0x24($sp)
/* 3CFC4 80061BC4 E7AC0028 */ swc1 $f12, 0x28($sp)
/* 3CFC8 80061BC8 E7AE002C */ swc1 $f14, 0x2C($sp)
/* 3CFCC 80061BCC E7B00030 */ swc1 $f16, 0x30($sp)
/* 3CFD0 80061BD0 E7B20034 */ swc1 $f18, 0x34($sp)
/* 3CFD4 80061BD4 E7B40038 */ swc1 $f20, 0x38($sp)
/* 3CFD8 80061BD8 E7B6003C */ swc1 $f22, 0x3C($sp)
/* 3CFDC 80061BDC E7B80040 */ swc1 $f24, 0x40($sp)
/* 3CFE0 80061BE0 E7BA0044 */ swc1 $f26, 0x44($sp)
/* 3CFE4 80061BE4 AFA20048 */ sw $v0, 0x48($sp)
/* 3CFE8 80061BE8 0C0184D4 */ jal guLookAtHiliteF
/* 3CFEC 80061BEC AFA3004C */ sw $v1, 0x4C($sp)
/* 3CFF0 80061BF0 27A40050 */ addiu $a0, $sp, 0x50
/* 3CFF4 80061BF4 0C0196B0 */ jal guMtxF2L
/* 3CFF8 80061BF8 02002821 */ addu $a1, $s0, $zero
/* 3CFFC 80061BFC 8FBF0094 */ lw $ra, 0x94($sp)
/* 3D000 80061C00 8FB00090 */ lw $s0, 0x90($sp)
/* 3D004 80061C04 D7BA00B0 */ ldc1 $f26, 0xB0($sp)
/* 3D008 80061C08 D7B800A8 */ ldc1 $f24, 0xA8($sp)
/* 3D00C 80061C0C D7B600A0 */ ldc1 $f22, 0xA0($sp)
/* 3D010 80061C10 D7B40098 */ ldc1 $f20, 0x98($sp)
/* 3D014 80061C14 03E00008 */ jr $ra
/* 3D018 80061C18 27BD00B8 */ addiu $sp, $sp, 0xB8
/* 3D01C 80061C1C 00000000 */ nop

View File

@ -0,0 +1,337 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guLookAtReflectF
/* 3D020 80061C20 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3D024 80061C24 F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 3D028 80061C28 C7BC0088 */ lwc1 $f28, 0x88($sp)
/* 3D02C 80061C2C F7BE0060 */ sdc1 $f30, 0x60($sp)
/* 3D030 80061C30 C7BE008C */ lwc1 $f30, 0x8C($sp)
/* 3D034 80061C34 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3D038 80061C38 C7BA0090 */ lwc1 $f26, 0x90($sp)
/* 3D03C 80061C3C F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3D040 80061C40 C7B4007C */ lwc1 $f20, 0x7C($sp)
/* 3D044 80061C44 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3D048 80061C48 C7B60080 */ lwc1 $f22, 0x80($sp)
/* 3D04C 80061C4C AFB1002C */ sw $s1, 0x2C($sp)
/* 3D050 80061C50 00808821 */ addu $s1, $a0, $zero
/* 3D054 80061C54 AFB00028 */ sw $s0, 0x28($sp)
/* 3D058 80061C58 00A08021 */ addu $s0, $a1, $zero
/* 3D05C 80061C5C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3D060 80061C60 C7B80084 */ lwc1 $f24, 0x84($sp)
/* 3D064 80061C64 AFBF0030 */ sw $ra, 0x30($sp)
/* 3D068 80061C68 AFA60070 */ sw $a2, 0x70($sp)
/* 3D06C 80061C6C 0C019698 */ jal guMtxIdentF
/* 3D070 80061C70 AFA70074 */ sw $a3, 0x74($sp)
/* 3D074 80061C74 C7AE0070 */ lwc1 $f14, 0x70($sp)
/* 3D078 80061C78 460EA501 */ sub.s $f20, $f20, $f14
/* 3D07C 80061C7C 4614A002 */ mul.s $f0, $f20, $f20
/* 3D080 80061C80 C7B20074 */ lwc1 $f18, 0x74($sp)
/* 3D084 80061C84 4612B581 */ sub.s $f22, $f22, $f18
/* 3D088 80061C88 4616B102 */ mul.s $f4, $f22, $f22
/* 3D08C 80061C8C C7AE0078 */ lwc1 $f14, 0x78($sp)
/* 3D090 80061C90 460EC601 */ sub.s $f24, $f24, $f14
/* 3D094 80061C94 4618C082 */ mul.s $f2, $f24, $f24
/* 3D098 80061C98 46040000 */ add.s $f0, $f0, $f4
/* 3D09C 80061C9C E7B40010 */ swc1 $f20, 0x10($sp)
/* 3D0A0 80061CA0 46020300 */ add.s $f12, $f0, $f2
/* 3D0A4 80061CA4 E7B60014 */ swc1 $f22, 0x14($sp)
/* 3D0A8 80061CA8 46006084 */ sqrt.s $f2, $f12
/* 3D0AC 80061CAC 46021032 */ c.eq.s $f2, $f2
/* 3D0B0 80061CB0 45010004 */ bc1t .LIQUE_80061CC4
/* 3D0B4 80061CB4 E7B80018 */ swc1 $f24, 0x18($sp)
/* 3D0B8 80061CB8 0C0183A0 */ jal sqrtf
/* 3D0BC 80061CBC 00000000 */ nop
/* 3D0C0 80061CC0 46000086 */ mov.s $f2, $f0
.LIQUE_80061CC4:
/* 3D0C4 80061CC4 460010A1 */ cvt.d.s $f2, $f2
/* 3D0C8 80061CC8 3C01BFF0 */ lui $at, (0xBFF00000 >> 16)
/* 3D0CC 80061CCC 44810800 */ mtc1 $at, $f1
/* 3D0D0 80061CD0 44800000 */ mtc1 $zero, $f0
/* 3D0D4 80061CD4 C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 3D0D8 80061CD8 46220003 */ div.d $f0, $f0, $f2
/* 3D0DC 80061CDC 46200020 */ cvt.s.d $f0, $f0
/* 3D0E0 80061CE0 46007382 */ mul.s $f14, $f14, $f0
/* 3D0E4 80061CE4 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3D0E8 80061CE8 46009482 */ mul.s $f18, $f18, $f0
/* 3D0EC 80061CEC 460EF102 */ mul.s $f4, $f30, $f14
/* 3D0F0 80061CF0 E7B20010 */ swc1 $f18, 0x10($sp)
/* 3D0F4 80061CF4 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3D0F8 80061CF8 46009482 */ mul.s $f18, $f18, $f0
/* 3D0FC 80061CFC E7AE0018 */ swc1 $f14, 0x18($sp)
/* 3D100 80061D00 C7AE0010 */ lwc1 $f14, 0x10($sp)
/* 3D104 80061D04 460ED282 */ mul.s $f10, $f26, $f14
/* 3D108 80061D08 4612D082 */ mul.s $f2, $f26, $f18
/* 3D10C 80061D0C E7B20014 */ swc1 $f18, 0x14($sp)
/* 3D110 80061D10 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3D114 80061D14 4612E182 */ mul.s $f6, $f28, $f18
/* 3D118 80061D18 C7AE0014 */ lwc1 $f14, 0x14($sp)
/* 3D11C 80061D1C 460EE302 */ mul.s $f12, $f28, $f14
/* 3D120 80061D20 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3D124 80061D24 4612F202 */ mul.s $f8, $f30, $f18
/* 3D128 80061D28 46022601 */ sub.s $f24, $f4, $f2
/* 3D12C 80061D2C 4618C002 */ mul.s $f0, $f24, $f24
/* 3D130 80061D30 46065501 */ sub.s $f20, $f10, $f6
/* 3D134 80061D34 4614A102 */ mul.s $f4, $f20, $f20
/* 3D138 80061D38 46086581 */ sub.s $f22, $f12, $f8
/* 3D13C 80061D3C 4616B082 */ mul.s $f2, $f22, $f22
/* 3D140 80061D40 46040000 */ add.s $f0, $f0, $f4
/* 3D144 80061D44 46020300 */ add.s $f12, $f0, $f2
/* 3D148 80061D48 46006004 */ sqrt.s $f0, $f12
/* 3D14C 80061D4C 46000032 */ c.eq.s $f0, $f0
/* 3D150 80061D50 45010003 */ bc1t .LIQUE_80061D60
/* 3D154 80061D54 00000000 */ nop
/* 3D158 80061D58 0C0183A0 */ jal sqrtf
/* 3D15C 80061D5C 00000000 */ nop
.LIQUE_80061D60:
/* 3D160 80061D60 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3D164 80061D64 44817800 */ mtc1 $at, $f15
/* 3D168 80061D68 44807000 */ mtc1 $zero, $f14
/* 3D16C 80061D6C 46000021 */ cvt.d.s $f0, $f0
/* 3D170 80061D70 46207003 */ div.d $f0, $f14, $f0
/* 3D174 80061D74 46200020 */ cvt.s.d $f0, $f0
/* 3D178 80061D78 4600C602 */ mul.s $f24, $f24, $f0
/* 3D17C 80061D7C 4600B582 */ mul.s $f22, $f22, $f0
/* 3D180 80061D80 4600A502 */ mul.s $f20, $f20, $f0
/* 3D184 80061D84 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3D188 80061D88 46169102 */ mul.s $f4, $f18, $f22
/* 3D18C 80061D8C C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 3D190 80061D90 46147082 */ mul.s $f2, $f14, $f20
/* 3D194 80061D94 46187282 */ mul.s $f10, $f14, $f24
/* 3D198 80061D98 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3D19C 80061D9C 46169182 */ mul.s $f6, $f18, $f22
/* 3D1A0 80061DA0 46149302 */ mul.s $f12, $f18, $f20
/* 3D1A4 80061DA4 C7AE0014 */ lwc1 $f14, 0x14($sp)
/* 3D1A8 80061DA8 46187202 */ mul.s $f8, $f14, $f24
/* 3D1AC 80061DAC 46022701 */ sub.s $f28, $f4, $f2
/* 3D1B0 80061DB0 461CE002 */ mul.s $f0, $f28, $f28
/* 3D1B4 80061DB4 46065781 */ sub.s $f30, $f10, $f6
/* 3D1B8 80061DB8 461EF102 */ mul.s $f4, $f30, $f30
/* 3D1BC 80061DBC 46086681 */ sub.s $f26, $f12, $f8
/* 3D1C0 80061DC0 461AD082 */ mul.s $f2, $f26, $f26
/* 3D1C4 80061DC4 46040000 */ add.s $f0, $f0, $f4
/* 3D1C8 80061DC8 46020300 */ add.s $f12, $f0, $f2
/* 3D1CC 80061DCC 46006004 */ sqrt.s $f0, $f12
/* 3D1D0 80061DD0 46000032 */ c.eq.s $f0, $f0
/* 3D1D4 80061DD4 45010003 */ bc1t .LIQUE_80061DE4
/* 3D1D8 80061DD8 00000000 */ nop
/* 3D1DC 80061DDC 0C0183A0 */ jal sqrtf
/* 3D1E0 80061DE0 00000000 */ nop
.LIQUE_80061DE4:
/* 3D1E4 80061DE4 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 3D1E8 80061DE8 44819800 */ mtc1 $at, $f19
/* 3D1EC 80061DEC 44809000 */ mtc1 $zero, $f18
/* 3D1F0 80061DF0 46000021 */ cvt.d.s $f0, $f0
/* 3D1F4 80061DF4 46209003 */ div.d $f0, $f18, $f0
/* 3D1F8 80061DF8 46200020 */ cvt.s.d $f0, $f0
/* 3D1FC 80061DFC 4600E702 */ mul.s $f28, $f28, $f0
/* 3D200 80061E00 4600F782 */ mul.s $f30, $f30, $f0
/* 3D204 80061E04 4600D682 */ mul.s $f26, $f26, $f0
/* 3D208 80061E08 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D20C 80061E0C 44810000 */ mtc1 $at, $f0
/* 3D210 80061E10 4600C002 */ mul.s $f0, $f24, $f0
/* 3D214 80061E14 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D218 80061E18 44811000 */ mtc1 $at, $f2
/* 3D21C 80061E1C 4602003C */ c.lt.s $f0, $f2
/* 3D220 80061E20 45000005 */ bc1f .LIQUE_80061E38
/* 3D224 80061E24 2402007F */ addiu $v0, $zero, 0x7F
/* 3D228 80061E28 4600038D */ trunc.w.s $f14, $f0
/* 3D22C 80061E2C 44027000 */ mfc1 $v0, $f14
/* 3D230 80061E30 0801878F */ j .LIQUE_80061E3C
/* 3D234 80061E34 A2020008 */ sb $v0, 0x8($s0)
.LIQUE_80061E38:
/* 3D238 80061E38 A2020008 */ sb $v0, 0x8($s0)
.LIQUE_80061E3C:
/* 3D23C 80061E3C 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D240 80061E40 44810000 */ mtc1 $at, $f0
/* 3D244 80061E44 4600A002 */ mul.s $f0, $f20, $f0
/* 3D248 80061E48 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D24C 80061E4C 44811000 */ mtc1 $at, $f2
/* 3D250 80061E50 4602003C */ c.lt.s $f0, $f2
/* 3D254 80061E54 45000005 */ bc1f .LIQUE_80061E6C
/* 3D258 80061E58 2402007F */ addiu $v0, $zero, 0x7F
/* 3D25C 80061E5C 4600038D */ trunc.w.s $f14, $f0
/* 3D260 80061E60 44027000 */ mfc1 $v0, $f14
/* 3D264 80061E64 0801879C */ j .LIQUE_80061E70
/* 3D268 80061E68 A2020009 */ sb $v0, 0x9($s0)
.LIQUE_80061E6C:
/* 3D26C 80061E6C A2020009 */ sb $v0, 0x9($s0)
.LIQUE_80061E70:
/* 3D270 80061E70 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D274 80061E74 44810000 */ mtc1 $at, $f0
/* 3D278 80061E78 4600B002 */ mul.s $f0, $f22, $f0
/* 3D27C 80061E7C 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D280 80061E80 44811000 */ mtc1 $at, $f2
/* 3D284 80061E84 4602003C */ c.lt.s $f0, $f2
/* 3D288 80061E88 45000005 */ bc1f .LIQUE_80061EA0
/* 3D28C 80061E8C 2402007F */ addiu $v0, $zero, 0x7F
/* 3D290 80061E90 4600038D */ trunc.w.s $f14, $f0
/* 3D294 80061E94 44027000 */ mfc1 $v0, $f14
/* 3D298 80061E98 080187A9 */ j .LIQUE_80061EA4
/* 3D29C 80061E9C A202000A */ sb $v0, 0xA($s0)
.LIQUE_80061EA0:
/* 3D2A0 80061EA0 A202000A */ sb $v0, 0xA($s0)
.LIQUE_80061EA4:
/* 3D2A4 80061EA4 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D2A8 80061EA8 44810000 */ mtc1 $at, $f0
/* 3D2AC 80061EAC 4600E002 */ mul.s $f0, $f28, $f0
/* 3D2B0 80061EB0 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D2B4 80061EB4 44811000 */ mtc1 $at, $f2
/* 3D2B8 80061EB8 4602003C */ c.lt.s $f0, $f2
/* 3D2BC 80061EBC 45000005 */ bc1f .LIQUE_80061ED4
/* 3D2C0 80061EC0 2402007F */ addiu $v0, $zero, 0x7F
/* 3D2C4 80061EC4 4600038D */ trunc.w.s $f14, $f0
/* 3D2C8 80061EC8 44027000 */ mfc1 $v0, $f14
/* 3D2CC 80061ECC 080187B6 */ j .LIQUE_80061ED8
/* 3D2D0 80061ED0 A2020018 */ sb $v0, 0x18($s0)
.LIQUE_80061ED4:
/* 3D2D4 80061ED4 A2020018 */ sb $v0, 0x18($s0)
.LIQUE_80061ED8:
/* 3D2D8 80061ED8 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D2DC 80061EDC 44810000 */ mtc1 $at, $f0
/* 3D2E0 80061EE0 4600F002 */ mul.s $f0, $f30, $f0
/* 3D2E4 80061EE4 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D2E8 80061EE8 44811000 */ mtc1 $at, $f2
/* 3D2EC 80061EEC 4602003C */ c.lt.s $f0, $f2
/* 3D2F0 80061EF0 45000005 */ bc1f .LIQUE_80061F08
/* 3D2F4 80061EF4 2402007F */ addiu $v0, $zero, 0x7F
/* 3D2F8 80061EF8 4600038D */ trunc.w.s $f14, $f0
/* 3D2FC 80061EFC 44027000 */ mfc1 $v0, $f14
/* 3D300 80061F00 080187C3 */ j .LIQUE_80061F0C
/* 3D304 80061F04 A2020019 */ sb $v0, 0x19($s0)
.LIQUE_80061F08:
/* 3D308 80061F08 A2020019 */ sb $v0, 0x19($s0)
.LIQUE_80061F0C:
/* 3D30C 80061F0C 3C014300 */ lui $at, (0x43000000 >> 16)
/* 3D310 80061F10 44810000 */ mtc1 $at, $f0
/* 3D314 80061F14 4600D002 */ mul.s $f0, $f26, $f0
/* 3D318 80061F18 3C0142FE */ lui $at, (0x42FE0000 >> 16)
/* 3D31C 80061F1C 44811000 */ mtc1 $at, $f2
/* 3D320 80061F20 4602003C */ c.lt.s $f0, $f2
/* 3D324 80061F24 45000005 */ bc1f .LIQUE_80061F3C
/* 3D328 80061F28 2402007F */ addiu $v0, $zero, 0x7F
/* 3D32C 80061F2C 4600038D */ trunc.w.s $f14, $f0
/* 3D330 80061F30 44027000 */ mfc1 $v0, $f14
/* 3D334 80061F34 080187D0 */ j .LIQUE_80061F40
/* 3D338 80061F38 A202001A */ sb $v0, 0x1A($s0)
.LIQUE_80061F3C:
/* 3D33C 80061F3C A202001A */ sb $v0, 0x1A($s0)
.LIQUE_80061F40:
/* 3D340 80061F40 C7AE0070 */ lwc1 $f14, 0x70($sp)
/* 3D344 80061F44 46187182 */ mul.s $f6, $f14, $f24
/* 3D348 80061F48 C7B20074 */ lwc1 $f18, 0x74($sp)
/* 3D34C 80061F4C 46149002 */ mul.s $f0, $f18, $f20
/* 3D350 80061F50 C7AE0078 */ lwc1 $f14, 0x78($sp)
/* 3D354 80061F54 46167302 */ mul.s $f12, $f14, $f22
/* 3D358 80061F58 C7B20070 */ lwc1 $f18, 0x70($sp)
/* 3D35C 80061F5C 461C9102 */ mul.s $f4, $f18, $f28
/* 3D360 80061F60 C7AE0074 */ lwc1 $f14, 0x74($sp)
/* 3D364 80061F64 A2000000 */ sb $zero, 0x0($s0)
/* 3D368 80061F68 461E7402 */ mul.s $f16, $f14, $f30
/* 3D36C 80061F6C A2000001 */ sb $zero, 0x1($s0)
/* 3D370 80061F70 A2000002 */ sb $zero, 0x2($s0)
/* 3D374 80061F74 C7B20078 */ lwc1 $f18, 0x78($sp)
/* 3D378 80061F78 461A9482 */ mul.s $f18, $f18, $f26
/* 3D37C 80061F7C 46003180 */ add.s $f6, $f6, $f0
/* 3D380 80061F80 460C3180 */ add.s $f6, $f6, $f12
/* 3D384 80061F84 E7B20020 */ swc1 $f18, 0x20($sp)
/* 3D388 80061F88 A2000003 */ sb $zero, 0x3($s0)
/* 3D38C 80061F8C A2000004 */ sb $zero, 0x4($s0)
/* 3D390 80061F90 A2000005 */ sb $zero, 0x5($s0)
/* 3D394 80061F94 A2000006 */ sb $zero, 0x6($s0)
/* 3D398 80061F98 C7AE0070 */ lwc1 $f14, 0x70($sp)
/* 3D39C 80061F9C C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3D3A0 80061FA0 24020080 */ addiu $v0, $zero, 0x80
/* 3D3A4 80061FA4 46127082 */ mul.s $f2, $f14, $f18
/* 3D3A8 80061FA8 A2000007 */ sb $zero, 0x7($s0)
/* 3D3AC 80061FAC A2000010 */ sb $zero, 0x10($s0)
/* 3D3B0 80061FB0 A2020011 */ sb $v0, 0x11($s0)
/* 3D3B4 80061FB4 C7AE0074 */ lwc1 $f14, 0x74($sp)
/* 3D3B8 80061FB8 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3D3BC 80061FBC 46127282 */ mul.s $f10, $f14, $f18
/* 3D3C0 80061FC0 A2000012 */ sb $zero, 0x12($s0)
/* 3D3C4 80061FC4 A2000013 */ sb $zero, 0x13($s0)
/* 3D3C8 80061FC8 A2000014 */ sb $zero, 0x14($s0)
/* 3D3CC 80061FCC A2020015 */ sb $v0, 0x15($s0)
/* 3D3D0 80061FD0 C7AE0078 */ lwc1 $f14, 0x78($sp)
/* 3D3D4 80061FD4 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3D3D8 80061FD8 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 3D3DC 80061FDC 44810000 */ mtc1 $at, $f0
/* 3D3E0 80061FE0 46127202 */ mul.s $f8, $f14, $f18
/* 3D3E4 80061FE4 A2000016 */ sb $zero, 0x16($s0)
/* 3D3E8 80061FE8 A2000017 */ sb $zero, 0x17($s0)
/* 3D3EC 80061FEC E6380000 */ swc1 $f24, 0x0($s1)
/* 3D3F0 80061FF0 E6340010 */ swc1 $f20, 0x10($s1)
/* 3D3F4 80061FF4 E6360020 */ swc1 $f22, 0x20($s1)
/* 3D3F8 80061FF8 E63C0004 */ swc1 $f28, 0x4($s1)
/* 3D3FC 80061FFC E63E0014 */ swc1 $f30, 0x14($s1)
/* 3D400 80062000 E63A0024 */ swc1 $f26, 0x24($s1)
/* 3D404 80062004 C7AE0010 */ lwc1 $f14, 0x10($sp)
/* 3D408 80062008 8FBF0030 */ lw $ra, 0x30($sp)
/* 3D40C 8006200C 8FB00028 */ lw $s0, 0x28($sp)
/* 3D410 80062010 D7BE0060 */ ldc1 $f30, 0x60($sp)
/* 3D414 80062014 D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 3D418 80062018 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 3D41C 8006201C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3D420 80062020 46102100 */ add.s $f4, $f4, $f16
/* 3D424 80062024 E62E0008 */ swc1 $f14, 0x8($s1)
/* 3D428 80062028 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3D42C 8006202C 46003187 */ neg.s $f6, $f6
/* 3D430 80062030 E6320018 */ swc1 $f18, 0x18($s1)
/* 3D434 80062034 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 3D438 80062038 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3D43C 8006203C 460E2100 */ add.s $f4, $f4, $f14
/* 3D440 80062040 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3D444 80062044 C7B20018 */ lwc1 $f18, 0x18($sp)
/* 3D448 80062048 460A1080 */ add.s $f2, $f2, $f10
/* 3D44C 8006204C E6320028 */ swc1 $f18, 0x28($s1)
/* 3D450 80062050 AE20000C */ sw $zero, 0xC($s1)
/* 3D454 80062054 AE20001C */ sw $zero, 0x1C($s1)
/* 3D458 80062058 AE20002C */ sw $zero, 0x2C($s1)
/* 3D45C 8006205C 46081080 */ add.s $f2, $f2, $f8
/* 3D460 80062060 E620003C */ swc1 $f0, 0x3C($s1)
/* 3D464 80062064 E6260030 */ swc1 $f6, 0x30($s1)
/* 3D468 80062068 46002107 */ neg.s $f4, $f4
/* 3D46C 8006206C E6240034 */ swc1 $f4, 0x34($s1)
/* 3D470 80062070 46001087 */ neg.s $f2, $f2
/* 3D474 80062074 E6220038 */ swc1 $f2, 0x38($s1)
/* 3D478 80062078 8FB1002C */ lw $s1, 0x2C($sp)
/* 3D47C 8006207C 03E00008 */ jr $ra
/* 3D480 80062080 27BD0068 */ addiu $sp, $sp, 0x68
glabel guLookAtReflect
/* 3D484 80062084 27BDFF88 */ addiu $sp, $sp, -0x78
/* 3D488 80062088 AFB00070 */ sw $s0, 0x70($sp)
/* 3D48C 8006208C 00808021 */ addu $s0, $a0, $zero
/* 3D490 80062090 C7A00088 */ lwc1 $f0, 0x88($sp)
/* 3D494 80062094 C7A2008C */ lwc1 $f2, 0x8C($sp)
/* 3D498 80062098 C7A40090 */ lwc1 $f4, 0x90($sp)
/* 3D49C 8006209C C7A60094 */ lwc1 $f6, 0x94($sp)
/* 3D4A0 800620A0 C7A80098 */ lwc1 $f8, 0x98($sp)
/* 3D4A4 800620A4 C7AA009C */ lwc1 $f10, 0x9C($sp)
/* 3D4A8 800620A8 C7AC00A0 */ lwc1 $f12, 0xA0($sp)
/* 3D4AC 800620AC 27A40030 */ addiu $a0, $sp, 0x30
/* 3D4B0 800620B0 AFBF0074 */ sw $ra, 0x74($sp)
/* 3D4B4 800620B4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3D4B8 800620B8 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3D4BC 800620BC E7A40018 */ swc1 $f4, 0x18($sp)
/* 3D4C0 800620C0 E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3D4C4 800620C4 E7A80020 */ swc1 $f8, 0x20($sp)
/* 3D4C8 800620C8 E7AA0024 */ swc1 $f10, 0x24($sp)
/* 3D4CC 800620CC 0C018708 */ jal guLookAtReflectF
/* 3D4D0 800620D0 E7AC0028 */ swc1 $f12, 0x28($sp)
/* 3D4D4 800620D4 27A40030 */ addiu $a0, $sp, 0x30
/* 3D4D8 800620D8 0C0196B0 */ jal guMtxF2L
/* 3D4DC 800620DC 02002821 */ addu $a1, $s0, $zero
/* 3D4E0 800620E0 8FBF0074 */ lw $ra, 0x74($sp)
/* 3D4E4 800620E4 8FB00070 */ lw $s0, 0x70($sp)
/* 3D4E8 800620E8 03E00008 */ jr $ra
/* 3D4EC 800620EC 27BD0078 */ addiu $sp, $sp, 0x78

View File

@ -0,0 +1,108 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guOrthoF
/* 3D4F0 800620F0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 3D4F4 800620F4 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 3D4F8 800620F8 4485D000 */ mtc1 $a1, $f26
/* 3D4FC 800620FC F7B40018 */ sdc1 $f20, 0x18($sp)
/* 3D500 80062100 4486A000 */ mtc1 $a2, $f20
/* 3D504 80062104 F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 3D508 80062108 4487E000 */ mtc1 $a3, $f28
/* 3D50C 8006210C F7B60020 */ sdc1 $f22, 0x20($sp)
/* 3D510 80062110 C7B60058 */ lwc1 $f22, 0x58($sp)
/* 3D514 80062114 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 3D518 80062118 C7BE005C */ lwc1 $f30, 0x5C($sp)
/* 3D51C 8006211C AFB00010 */ sw $s0, 0x10($sp)
/* 3D520 80062120 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 3D524 80062124 C7B80060 */ lwc1 $f24, 0x60($sp)
/* 3D528 80062128 AFBF0014 */ sw $ra, 0x14($sp)
/* 3D52C 8006212C 0C019698 */ jal guMtxIdentF
/* 3D530 80062130 00808021 */ addu $s0, $a0, $zero
/* 3D534 80062134 461AA101 */ sub.s $f4, $f20, $f26
/* 3D538 80062138 461CB201 */ sub.s $f8, $f22, $f28
/* 3D53C 8006213C 461EC181 */ sub.s $f6, $f24, $f30
/* 3D540 80062140 461AA500 */ add.s $f20, $f20, $f26
/* 3D544 80062144 00003021 */ addu $a2, $zero, $zero
/* 3D548 80062148 02002821 */ addu $a1, $s0, $zero
/* 3D54C 8006214C 461CB580 */ add.s $f22, $f22, $f28
/* 3D550 80062150 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 3D554 80062154 44810000 */ mtc1 $at, $f0
/* 3D558 80062158 3C014000 */ lui $at, (0x40000000 >> 16)
/* 3D55C 8006215C 44811000 */ mtc1 $at, $f2
/* 3D560 80062160 461EC600 */ add.s $f24, $f24, $f30
/* 3D564 80062164 E600003C */ swc1 $f0, 0x3C($s0)
/* 3D568 80062168 46041003 */ div.s $f0, $f2, $f4
/* 3D56C 8006216C 46081083 */ div.s $f2, $f2, $f8
/* 3D570 80062170 4600A507 */ neg.s $f20, $f20
/* 3D574 80062174 4604A503 */ div.s $f20, $f20, $f4
/* 3D578 80062178 4600B587 */ neg.s $f22, $f22
/* 3D57C 8006217C 4608B583 */ div.s $f22, $f22, $f8
/* 3D580 80062180 4600C607 */ neg.s $f24, $f24
/* 3D584 80062184 E6000000 */ swc1 $f0, 0x0($s0)
/* 3D588 80062188 3C01C000 */ lui $at, (0xC0000000 >> 16)
/* 3D58C 8006218C 44810000 */ mtc1 $at, $f0
/* 3D590 80062190 4606C603 */ div.s $f24, $f24, $f6
/* 3D594 80062194 E6020014 */ swc1 $f2, 0x14($s0)
/* 3D598 80062198 E6140030 */ swc1 $f20, 0x30($s0)
/* 3D59C 8006219C E6160034 */ swc1 $f22, 0x34($s0)
/* 3D5A0 800621A0 E6180038 */ swc1 $f24, 0x38($s0)
/* 3D5A4 800621A4 46060003 */ div.s $f0, $f0, $f6
/* 3D5A8 800621A8 E6000028 */ swc1 $f0, 0x28($s0)
.LIQUE_800621AC:
/* 3D5AC 800621AC 00002021 */ addu $a0, $zero, $zero
/* 3D5B0 800621B0 00A01821 */ addu $v1, $a1, $zero
.LIQUE_800621B4:
/* 3D5B4 800621B4 C4600000 */ lwc1 $f0, 0x0($v1)
/* 3D5B8 800621B8 C7AA0064 */ lwc1 $f10, 0x64($sp)
/* 3D5BC 800621BC 460A0002 */ mul.s $f0, $f0, $f10
/* 3D5C0 800621C0 24840001 */ addiu $a0, $a0, 0x1
/* 3D5C4 800621C4 28820004 */ slti $v0, $a0, 0x4
/* 3D5C8 800621C8 E4600000 */ swc1 $f0, 0x0($v1)
/* 3D5CC 800621CC 1440FFF9 */ bnez $v0, .LIQUE_800621B4
/* 3D5D0 800621D0 24630004 */ addiu $v1, $v1, 0x4
/* 3D5D4 800621D4 24C60001 */ addiu $a2, $a2, 0x1
/* 3D5D8 800621D8 28C20004 */ slti $v0, $a2, 0x4
/* 3D5DC 800621DC 1440FFF3 */ bnez $v0, .LIQUE_800621AC
/* 3D5E0 800621E0 24A50010 */ addiu $a1, $a1, 0x10
/* 3D5E4 800621E4 8FBF0014 */ lw $ra, 0x14($sp)
/* 3D5E8 800621E8 8FB00010 */ lw $s0, 0x10($sp)
/* 3D5EC 800621EC D7BE0040 */ ldc1 $f30, 0x40($sp)
/* 3D5F0 800621F0 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* 3D5F4 800621F4 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* 3D5F8 800621F8 D7B80028 */ ldc1 $f24, 0x28($sp)
/* 3D5FC 800621FC D7B60020 */ ldc1 $f22, 0x20($sp)
/* 3D600 80062200 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 3D604 80062204 03E00008 */ jr $ra
/* 3D608 80062208 27BD0048 */ addiu $sp, $sp, 0x48
glabel guOrtho
/* 3D60C 8006220C 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3D610 80062210 AFB00060 */ sw $s0, 0x60($sp)
/* 3D614 80062214 00808021 */ addu $s0, $a0, $zero
/* 3D618 80062218 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 3D61C 8006221C C7A2007C */ lwc1 $f2, 0x7C($sp)
/* 3D620 80062220 C7A40080 */ lwc1 $f4, 0x80($sp)
/* 3D624 80062224 C7A60084 */ lwc1 $f6, 0x84($sp)
/* 3D628 80062228 27A40020 */ addiu $a0, $sp, 0x20
/* 3D62C 8006222C AFBF0064 */ sw $ra, 0x64($sp)
/* 3D630 80062230 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3D634 80062234 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3D638 80062238 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3D63C 8006223C 0C01883C */ jal guOrthoF
/* 3D640 80062240 E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3D644 80062244 27A40020 */ addiu $a0, $sp, 0x20
/* 3D648 80062248 0C0196B0 */ jal guMtxF2L
/* 3D64C 8006224C 02002821 */ addu $a1, $s0, $zero
/* 3D650 80062250 8FBF0064 */ lw $ra, 0x64($sp)
/* 3D654 80062254 8FB00060 */ lw $s0, 0x60($sp)
/* 3D658 80062258 03E00008 */ jr $ra
/* 3D65C 8006225C 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -0,0 +1,148 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guPerspectiveF
/* 3D660 80062260 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3D664 80062264 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 3D668 80062268 4486C000 */ mtc1 $a2, $f24
/* 3D66C 8006226C F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 3D670 80062270 4487D000 */ mtc1 $a3, $f26
/* 3D674 80062274 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 3D678 80062278 C7B60060 */ lwc1 $f22, 0x60($sp)
/* 3D67C 8006227C F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 3D680 80062280 C7BC0064 */ lwc1 $f28, 0x64($sp)
/* 3D684 80062284 AFB00010 */ sw $s0, 0x10($sp)
/* 3D688 80062288 00808021 */ addu $s0, $a0, $zero
/* 3D68C 8006228C AFB10014 */ sw $s1, 0x14($sp)
/* 3D690 80062290 F7BE0048 */ sdc1 $f30, 0x48($sp)
/* 3D694 80062294 C7BE0068 */ lwc1 $f30, 0x68($sp)
/* 3D698 80062298 AFBF0018 */ sw $ra, 0x18($sp)
/* 3D69C 8006229C F7B40020 */ sdc1 $f20, 0x20($sp)
/* 3D6A0 800622A0 0C019698 */ jal guMtxIdentF
/* 3D6A4 800622A4 00A08821 */ addu $s1, $a1, $zero
/* 3D6A8 800622A8 3C01800A */ lui $at, %hi(D_IQUE_80098720)
/* 3D6AC 800622AC D4228720 */ ldc1 $f2, %lo(D_IQUE_80098720)($at)
/* 3D6B0 800622B0 4600C021 */ cvt.d.s $f0, $f24
/* 3D6B4 800622B4 46220002 */ mul.d $f0, $f0, $f2
/* 3D6B8 800622B8 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* 3D6BC 800622BC 4481A000 */ mtc1 $at, $f20
/* 3D6C0 800622C0 46200620 */ cvt.s.d $f24, $f0
/* 3D6C4 800622C4 4614C502 */ mul.s $f20, $f24, $f20
/* 3D6C8 800622C8 0C00A7A8 */ jal cos_rad
/* 3D6CC 800622CC 4600A306 */ mov.s $f12, $f20
/* 3D6D0 800622D0 4600A306 */ mov.s $f12, $f20
/* 3D6D4 800622D4 0C00A78F */ jal sin_rad
/* 3D6D8 800622D8 46000606 */ mov.s $f24, $f0
/* 3D6DC 800622DC 00003021 */ addu $a2, $zero, $zero
/* 3D6E0 800622E0 461CB180 */ add.s $f6, $f22, $f28
/* 3D6E4 800622E4 02002821 */ addu $a1, $s0, $zero
/* 3D6E8 800622E8 4600C603 */ div.s $f24, $f24, $f0
/* 3D6EC 800622EC 461CB101 */ sub.s $f4, $f22, $f28
/* 3D6F0 800622F0 461AC683 */ div.s $f26, $f24, $f26
/* 3D6F4 800622F4 3C01BF80 */ lui $at, (0xBF800000 >> 16)
/* 3D6F8 800622F8 44811000 */ mtc1 $at, $f2
/* 3D6FC 800622FC 4616B580 */ add.s $f22, $f22, $f22
/* 3D700 80062300 E61A0000 */ swc1 $f26, 0x0($s0)
/* 3D704 80062304 E6180014 */ swc1 $f24, 0x14($s0)
/* 3D708 80062308 461CB582 */ mul.s $f22, $f22, $f28
/* 3D70C 8006230C AE00003C */ sw $zero, 0x3C($s0)
/* 3D710 80062310 E602002C */ swc1 $f2, 0x2C($s0)
/* 3D714 80062314 46043003 */ div.s $f0, $f6, $f4
/* 3D718 80062318 E6000028 */ swc1 $f0, 0x28($s0)
/* 3D71C 8006231C 4604B583 */ div.s $f22, $f22, $f4
/* 3D720 80062320 E6160038 */ swc1 $f22, 0x38($s0)
.LIQUE_80062324:
/* 3D724 80062324 00002021 */ addu $a0, $zero, $zero
/* 3D728 80062328 00A01821 */ addu $v1, $a1, $zero
.LIQUE_8006232C:
/* 3D72C 8006232C C4600000 */ lwc1 $f0, 0x0($v1)
/* 3D730 80062330 461E0002 */ mul.s $f0, $f0, $f30
/* 3D734 80062334 24840001 */ addiu $a0, $a0, 0x1
/* 3D738 80062338 28820004 */ slti $v0, $a0, 0x4
/* 3D73C 8006233C E4600000 */ swc1 $f0, 0x0($v1)
/* 3D740 80062340 1440FFFA */ bnez $v0, .LIQUE_8006232C
/* 3D744 80062344 24630004 */ addiu $v1, $v1, 0x4
/* 3D748 80062348 24C60001 */ addiu $a2, $a2, 0x1
/* 3D74C 8006234C 28C20004 */ slti $v0, $a2, 0x4
/* 3D750 80062350 1440FFF4 */ bnez $v0, .LIQUE_80062324
/* 3D754 80062354 24A50010 */ addiu $a1, $a1, 0x10
/* 3D758 80062358 12200021 */ beqz $s1, .LIQUE_800623E0
/* 3D75C 8006235C 8FBF0018 */ lw $ra, 0x18($sp)
/* 3D760 80062360 3C014000 */ lui $at, (0x40000000 >> 16)
/* 3D764 80062364 44810800 */ mtc1 $at, $f1
/* 3D768 80062368 44800000 */ mtc1 $zero, $f0
/* 3D76C 8006236C 460030A1 */ cvt.d.s $f2, $f6
/* 3D770 80062370 4620103E */ c.le.d $f2, $f0
/* 3D774 80062374 45010018 */ bc1t .LIQUE_800623D8
/* 3D778 80062378 3402FFFF */ ori $v0, $zero, 0xFFFF
/* 3D77C 8006237C 3C014100 */ lui $at, (0x41000000 >> 16)
/* 3D780 80062380 44810800 */ mtc1 $at, $f1
/* 3D784 80062384 44800000 */ mtc1 $zero, $f0
/* 3D788 80062388 3C0141E0 */ lui $at, (0x41E00000 >> 16)
/* 3D78C 8006238C 44812800 */ mtc1 $at, $f5
/* 3D790 80062390 44802000 */ mtc1 $zero, $f4
/* 3D794 80062394 46220003 */ div.d $f0, $f0, $f2
/* 3D798 80062398 4620203E */ c.le.d $f4, $f0
/* 3D79C 8006239C 45030005 */ bc1tl .LIQUE_800623B4
/* 3D7A0 800623A0 46240001 */ sub.d $f0, $f0, $f4
/* 3D7A4 800623A4 4620020D */ trunc.w.d $f8, $f0
/* 3D7A8 800623A8 44034000 */ mfc1 $v1, $f8
/* 3D7AC 800623AC 080188F2 */ j .LIQUE_800623C8
/* 3D7B0 800623B0 A6230000 */ sh $v1, 0x0($s1)
.LIQUE_800623B4:
/* 3D7B4 800623B4 3C028000 */ lui $v0, (0x80000000 >> 16)
/* 3D7B8 800623B8 4620020D */ trunc.w.d $f8, $f0
/* 3D7BC 800623BC 44034000 */ mfc1 $v1, $f8
/* 3D7C0 800623C0 00621825 */ or $v1, $v1, $v0
/* 3D7C4 800623C4 A6230000 */ sh $v1, 0x0($s1)
.LIQUE_800623C8:
/* 3D7C8 800623C8 3062FFFF */ andi $v0, $v1, 0xFFFF
/* 3D7CC 800623CC 14400004 */ bnez $v0, .LIQUE_800623E0
/* 3D7D0 800623D0 8FBF0018 */ lw $ra, 0x18($sp)
/* 3D7D4 800623D4 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_800623D8:
/* 3D7D8 800623D8 A6220000 */ sh $v0, 0x0($s1)
/* 3D7DC 800623DC 8FBF0018 */ lw $ra, 0x18($sp)
.LIQUE_800623E0:
/* 3D7E0 800623E0 8FB10014 */ lw $s1, 0x14($sp)
/* 3D7E4 800623E4 8FB00010 */ lw $s0, 0x10($sp)
/* 3D7E8 800623E8 D7BE0048 */ ldc1 $f30, 0x48($sp)
/* 3D7EC 800623EC D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 3D7F0 800623F0 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 3D7F4 800623F4 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 3D7F8 800623F8 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 3D7FC 800623FC D7B40020 */ ldc1 $f20, 0x20($sp)
/* 3D800 80062400 03E00008 */ jr $ra
/* 3D804 80062404 27BD0050 */ addiu $sp, $sp, 0x50
glabel guPerspective
/* 3D808 80062408 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3D80C 8006240C AFB00060 */ sw $s0, 0x60($sp)
/* 3D810 80062410 00808021 */ addu $s0, $a0, $zero
/* 3D814 80062414 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 3D818 80062418 C7A2007C */ lwc1 $f2, 0x7C($sp)
/* 3D81C 8006241C C7A40080 */ lwc1 $f4, 0x80($sp)
/* 3D820 80062420 27A40020 */ addiu $a0, $sp, 0x20
/* 3D824 80062424 AFBF0064 */ sw $ra, 0x64($sp)
/* 3D828 80062428 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3D82C 8006242C E7A20014 */ swc1 $f2, 0x14($sp)
/* 3D830 80062430 0C018898 */ jal guPerspectiveF
/* 3D834 80062434 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3D838 80062438 27A40020 */ addiu $a0, $sp, 0x20
/* 3D83C 8006243C 0C0196B0 */ jal guMtxF2L
/* 3D840 80062440 02002821 */ addu $a1, $s0, $zero
/* 3D844 80062444 8FBF0064 */ lw $ra, 0x64($sp)
/* 3D848 80062448 8FB00060 */ lw $s0, 0x60($sp)
/* 3D84C 8006244C 03E00008 */ jr $ra
/* 3D850 80062450 27BD0068 */ addiu $sp, $sp, 0x68
/* 3D854 80062454 00000000 */ nop
/* 3D858 80062458 00000000 */ nop
/* 3D85C 8006245C 00000000 */ nop

View File

@ -0,0 +1,134 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guPositionF
/* 3D860 80062460 3C018009 */ lui $at, %hi(position_800929e0)
/* 3D864 80062464 C42229E0 */ lwc1 $f2, %lo(position_800929e0)($at)
/* 3D868 80062468 44859000 */ mtc1 $a1, $f18
/* 3D86C 8006246C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3D870 80062470 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 3D874 80062474 C7B80060 */ lwc1 $f24, 0x60($sp)
/* 3D878 80062478 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 3D87C 8006247C 46029502 */ mul.s $f20, $f18, $f2
/* 3D880 80062480 44869000 */ mtc1 $a2, $f18
/* 3D884 80062484 AFB00018 */ sw $s0, 0x18($sp)
/* 3D888 80062488 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 3D88C 8006248C 46029682 */ mul.s $f26, $f18, $f2
/* 3D890 80062490 44879000 */ mtc1 $a3, $f18
/* 3D894 80062494 00808021 */ addu $s0, $a0, $zero
/* 3D898 80062498 AFBF001C */ sw $ra, 0x1C($sp)
/* 3D89C 8006249C F7BE0048 */ sdc1 $f30, 0x48($sp)
/* 3D8A0 800624A0 F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 3D8A4 800624A4 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 3D8A8 800624A8 46029782 */ mul.s $f30, $f18, $f2
/* 3D8AC 800624AC 0C00A78F */ jal sin_rad
/* 3D8B0 800624B0 4600A306 */ mov.s $f12, $f20
/* 3D8B4 800624B4 4600A306 */ mov.s $f12, $f20
/* 3D8B8 800624B8 0C00A7A8 */ jal cos_rad
/* 3D8BC 800624BC E7A00010 */ swc1 $f0, 0x10($sp)
/* 3D8C0 800624C0 46000586 */ mov.s $f22, $f0
/* 3D8C4 800624C4 0C00A78F */ jal sin_rad
/* 3D8C8 800624C8 4600D306 */ mov.s $f12, $f26
/* 3D8CC 800624CC 4600D306 */ mov.s $f12, $f26
/* 3D8D0 800624D0 0C00A7A8 */ jal cos_rad
/* 3D8D4 800624D4 46000506 */ mov.s $f20, $f0
/* 3D8D8 800624D8 46000706 */ mov.s $f28, $f0
/* 3D8DC 800624DC 0C00A78F */ jal sin_rad
/* 3D8E0 800624E0 4600F306 */ mov.s $f12, $f30
/* 3D8E4 800624E4 4600F306 */ mov.s $f12, $f30
/* 3D8E8 800624E8 0C00A7A8 */ jal cos_rad
/* 3D8EC 800624EC 46000686 */ mov.s $f26, $f0
/* 3D8F0 800624F0 4600E382 */ mul.s $f14, $f28, $f0
/* 3D8F4 800624F4 461AE402 */ mul.s $f16, $f28, $f26
/* 3D8F8 800624F8 4600A307 */ neg.s $f12, $f20
/* 3D8FC 800624FC 46186302 */ mul.s $f12, $f12, $f24
/* 3D900 80062500 461AB082 */ mul.s $f2, $f22, $f26
/* 3D904 80062504 4600B182 */ mul.s $f6, $f22, $f0
/* 3D908 80062508 C7B20010 */ lwc1 $f18, 0x10($sp)
/* 3D90C 8006250C 46149102 */ mul.s $f4, $f18, $f20
/* 3D910 80062510 4614B502 */ mul.s $f20, $f22, $f20
/* 3D914 80062514 461C9202 */ mul.s $f8, $f18, $f28
/* 3D918 80062518 461CB582 */ mul.s $f22, $f22, $f28
/* 3D91C 8006251C 46187382 */ mul.s $f14, $f14, $f24
/* 3D920 80062520 46188402 */ mul.s $f16, $f16, $f24
/* 3D924 80062524 46002282 */ mul.s $f10, $f4, $f0
/* 3D928 80062528 461A2102 */ mul.s $f4, $f4, $f26
/* 3D92C 8006252C 46184202 */ mul.s $f8, $f8, $f24
/* 3D930 80062530 4618B582 */ mul.s $f22, $f22, $f24
/* 3D934 80062534 46062100 */ add.s $f4, $f4, $f6
/* 3D938 80062538 4600A182 */ mul.s $f6, $f20, $f0
/* 3D93C 8006253C 46025281 */ sub.s $f10, $f10, $f2
/* 3D940 80062540 461A9082 */ mul.s $f2, $f18, $f26
/* 3D944 80062544 461AA502 */ mul.s $f20, $f20, $f26
/* 3D948 80062548 46009002 */ mul.s $f0, $f18, $f0
/* 3D94C 8006254C 46185282 */ mul.s $f10, $f10, $f24
/* 3D950 80062550 8FBF001C */ lw $ra, 0x1C($sp)
/* 3D954 80062554 D7BE0048 */ ldc1 $f30, 0x48($sp)
/* 3D958 80062558 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 3D95C 8006255C 46182102 */ mul.s $f4, $f4, $f24
/* 3D960 80062560 E7A00014 */ swc1 $f0, 0x14($sp)
/* 3D964 80062564 AE00000C */ sw $zero, 0xC($s0)
/* 3D968 80062568 AE00001C */ sw $zero, 0x1C($s0)
/* 3D96C 8006256C AE00002C */ sw $zero, 0x2C($s0)
/* 3D970 80062570 C7B20064 */ lwc1 $f18, 0x64($sp)
/* 3D974 80062574 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 3D978 80062578 44810000 */ mtc1 $at, $f0
/* 3D97C 8006257C E6120030 */ swc1 $f18, 0x30($s0)
/* 3D980 80062580 C7B20068 */ lwc1 $f18, 0x68($sp)
/* 3D984 80062584 46023180 */ add.s $f6, $f6, $f2
/* 3D988 80062588 E6120034 */ swc1 $f18, 0x34($s0)
/* 3D98C 8006258C C7B2006C */ lwc1 $f18, 0x6C($sp)
/* 3D990 80062590 46183182 */ mul.s $f6, $f6, $f24
/* 3D994 80062594 E6120038 */ swc1 $f18, 0x38($s0)
/* 3D998 80062598 E600003C */ swc1 $f0, 0x3C($s0)
/* 3D99C 8006259C E60C0008 */ swc1 $f12, 0x8($s0)
/* 3D9A0 800625A0 E60E0000 */ swc1 $f14, 0x0($s0)
/* 3D9A4 800625A4 C7B20014 */ lwc1 $f18, 0x14($sp)
/* 3D9A8 800625A8 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 3D9AC 800625AC 4612A501 */ sub.s $f20, $f20, $f18
/* 3D9B0 800625B0 E6160028 */ swc1 $f22, 0x28($s0)
/* 3D9B4 800625B4 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 3D9B8 800625B8 4618A502 */ mul.s $f20, $f20, $f24
/* 3D9BC 800625BC D7B80030 */ ldc1 $f24, 0x30($sp)
/* 3D9C0 800625C0 E6100004 */ swc1 $f16, 0x4($s0)
/* 3D9C4 800625C4 E6080018 */ swc1 $f8, 0x18($s0)
/* 3D9C8 800625C8 E60A0010 */ swc1 $f10, 0x10($s0)
/* 3D9CC 800625CC E6040014 */ swc1 $f4, 0x14($s0)
/* 3D9D0 800625D0 E6060020 */ swc1 $f6, 0x20($s0)
/* 3D9D4 800625D4 E6140024 */ swc1 $f20, 0x24($s0)
/* 3D9D8 800625D8 8FB00018 */ lw $s0, 0x18($sp)
/* 3D9DC 800625DC D7B40020 */ ldc1 $f20, 0x20($sp)
/* 3D9E0 800625E0 03E00008 */ jr $ra
/* 3D9E4 800625E4 27BD0050 */ addiu $sp, $sp, 0x50
glabel guPosition
/* 3D9E8 800625E8 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3D9EC 800625EC AFB00060 */ sw $s0, 0x60($sp)
/* 3D9F0 800625F0 00808021 */ addu $s0, $a0, $zero
/* 3D9F4 800625F4 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 3D9F8 800625F8 C7A2007C */ lwc1 $f2, 0x7C($sp)
/* 3D9FC 800625FC C7A40080 */ lwc1 $f4, 0x80($sp)
/* 3DA00 80062600 C7A60084 */ lwc1 $f6, 0x84($sp)
/* 3DA04 80062604 27A40020 */ addiu $a0, $sp, 0x20
/* 3DA08 80062608 AFBF0064 */ sw $ra, 0x64($sp)
/* 3DA0C 8006260C E7A00010 */ swc1 $f0, 0x10($sp)
/* 3DA10 80062610 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3DA14 80062614 E7A40018 */ swc1 $f4, 0x18($sp)
/* 3DA18 80062618 0C018918 */ jal guPositionF
/* 3DA1C 8006261C E7A6001C */ swc1 $f6, 0x1C($sp)
/* 3DA20 80062620 27A40020 */ addiu $a0, $sp, 0x20
/* 3DA24 80062624 0C0196B0 */ jal guMtxF2L
/* 3DA28 80062628 02002821 */ addu $a1, $s0, $zero
/* 3DA2C 8006262C 8FBF0064 */ lw $ra, 0x64($sp)
/* 3DA30 80062630 8FB00060 */ lw $s0, 0x60($sp)
/* 3DA34 80062634 03E00008 */ jr $ra
/* 3DA38 80062638 27BD0068 */ addiu $sp, $sp, 0x68
/* 3DA3C 8006263C 00000000 */ nop

View File

@ -0,0 +1,110 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guRotateRPYF
/* 3DA40 80062640 3C018009 */ lui $at, %hi(rotaterpy_800929f0)
/* 3DA44 80062644 C42229F0 */ lwc1 $f2, %lo(rotaterpy_800929f0)($at)
/* 3DA48 80062648 44854000 */ mtc1 $a1, $f8
/* 3DA4C 8006264C 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3DA50 80062650 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 3DA54 80062654 46024502 */ mul.s $f20, $f8, $f2
/* 3DA58 80062658 44864000 */ mtc1 $a2, $f8
/* 3DA5C 8006265C AFB00020 */ sw $s0, 0x20($sp)
/* 3DA60 80062660 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 3DA64 80062664 46024582 */ mul.s $f22, $f8, $f2
/* 3DA68 80062668 44874000 */ mtc1 $a3, $f8
/* 3DA6C 8006266C 00808021 */ addu $s0, $a0, $zero
/* 3DA70 80062670 AFBF0024 */ sw $ra, 0x24($sp)
/* 3DA74 80062674 F7BE0050 */ sdc1 $f30, 0x50($sp)
/* 3DA78 80062678 F7BC0048 */ sdc1 $f28, 0x48($sp)
/* 3DA7C 8006267C F7BA0040 */ sdc1 $f26, 0x40($sp)
/* 3DA80 80062680 F7B80038 */ sdc1 $f24, 0x38($sp)
/* 3DA84 80062684 46024782 */ mul.s $f30, $f8, $f2
/* 3DA88 80062688 0C00A78F */ jal sin_rad
/* 3DA8C 8006268C 4600A306 */ mov.s $f12, $f20
/* 3DA90 80062690 4600A306 */ mov.s $f12, $f20
/* 3DA94 80062694 0C00A7A8 */ jal cos_rad
/* 3DA98 80062698 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3DA9C 8006269C 46000706 */ mov.s $f28, $f0
/* 3DAA0 800626A0 0C00A78F */ jal sin_rad
/* 3DAA4 800626A4 4600B306 */ mov.s $f12, $f22
/* 3DAA8 800626A8 4600B306 */ mov.s $f12, $f22
/* 3DAAC 800626AC 0C00A7A8 */ jal cos_rad
/* 3DAB0 800626B0 46000686 */ mov.s $f26, $f0
/* 3DAB4 800626B4 46000606 */ mov.s $f24, $f0
/* 3DAB8 800626B8 0C00A78F */ jal sin_rad
/* 3DABC 800626BC 4600F306 */ mov.s $f12, $f30
/* 3DAC0 800626C0 4600F306 */ mov.s $f12, $f30
/* 3DAC4 800626C4 0C00A7A8 */ jal cos_rad
/* 3DAC8 800626C8 46000586 */ mov.s $f22, $f0
/* 3DACC 800626CC 46000506 */ mov.s $f20, $f0
/* 3DAD0 800626D0 0C019698 */ jal guMtxIdentF
/* 3DAD4 800626D4 02002021 */ addu $a0, $s0, $zero
/* 3DAD8 800626D8 4614C402 */ mul.s $f16, $f24, $f20
/* 3DADC 800626DC 4616C482 */ mul.s $f18, $f24, $f22
/* 3DAE0 800626E0 4614E302 */ mul.s $f12, $f28, $f20
/* 3DAE4 800626E4 461AE002 */ mul.s $f0, $f28, $f26
/* 3DAE8 800626E8 C7A80010 */ lwc1 $f8, 0x10($sp)
/* 3DAEC 800626EC 461A4082 */ mul.s $f2, $f8, $f26
/* 3DAF0 800626F0 4616E202 */ mul.s $f8, $f28, $f22
/* 3DAF4 800626F4 4618E702 */ mul.s $f28, $f28, $f24
/* 3DAF8 800626F8 46140102 */ mul.s $f4, $f0, $f20
/* 3DAFC 800626FC 46160002 */ mul.s $f0, $f0, $f22
/* 3DB00 80062700 46141182 */ mul.s $f6, $f2, $f20
/* 3DB04 80062704 46161082 */ mul.s $f2, $f2, $f22
/* 3DB08 80062708 E7A80018 */ swc1 $f8, 0x18($sp)
/* 3DB0C 8006270C C7A80010 */ lwc1 $f8, 0x10($sp)
/* 3DB10 80062710 46184382 */ mul.s $f14, $f8, $f24
/* 3DB14 80062714 46164282 */ mul.s $f10, $f8, $f22
/* 3DB18 80062718 8FBF0024 */ lw $ra, 0x24($sp)
/* 3DB1C 8006271C 46144502 */ mul.s $f20, $f8, $f20
/* 3DB20 80062720 D7BE0050 */ ldc1 $f30, 0x50($sp)
/* 3DB24 80062724 C7A80018 */ lwc1 $f8, 0x18($sp)
/* 3DB28 80062728 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 3DB2C 8006272C D7B60030 */ ldc1 $f22, 0x30($sp)
/* 3DB30 80062730 46083181 */ sub.s $f6, $f6, $f8
/* 3DB34 80062734 E61C0028 */ swc1 $f28, 0x28($s0)
/* 3DB38 80062738 D7BC0048 */ ldc1 $f28, 0x48($sp)
/* 3DB3C 8006273C 4600D687 */ neg.s $f26, $f26
/* 3DB40 80062740 E61A0008 */ swc1 $f26, 0x8($s0)
/* 3DB44 80062744 D7BA0040 */ ldc1 $f26, 0x40($sp)
/* 3DB48 80062748 46140001 */ sub.s $f0, $f0, $f20
/* 3DB4C 8006274C E6100000 */ swc1 $f16, 0x0($s0)
/* 3DB50 80062750 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3DB54 80062754 460C1080 */ add.s $f2, $f2, $f12
/* 3DB58 80062758 E6120004 */ swc1 $f18, 0x4($s0)
/* 3DB5C 8006275C E60E0018 */ swc1 $f14, 0x18($s0)
/* 3DB60 80062760 460A2100 */ add.s $f4, $f4, $f10
/* 3DB64 80062764 E6060010 */ swc1 $f6, 0x10($s0)
/* 3DB68 80062768 E6020014 */ swc1 $f2, 0x14($s0)
/* 3DB6C 8006276C E6040020 */ swc1 $f4, 0x20($s0)
/* 3DB70 80062770 E6000024 */ swc1 $f0, 0x24($s0)
/* 3DB74 80062774 8FB00020 */ lw $s0, 0x20($sp)
/* 3DB78 80062778 03E00008 */ jr $ra
/* 3DB7C 8006277C 27BD0058 */ addiu $sp, $sp, 0x58
glabel guRotateRPY
/* 3DB80 80062780 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3DB84 80062784 AFB00050 */ sw $s0, 0x50($sp)
/* 3DB88 80062788 00808021 */ addu $s0, $a0, $zero
/* 3DB8C 8006278C AFBF0054 */ sw $ra, 0x54($sp)
/* 3DB90 80062790 0C018990 */ jal guRotateRPYF
/* 3DB94 80062794 27A40010 */ addiu $a0, $sp, 0x10
/* 3DB98 80062798 27A40010 */ addiu $a0, $sp, 0x10
/* 3DB9C 8006279C 0C0196B0 */ jal guMtxF2L
/* 3DBA0 800627A0 02002821 */ addu $a1, $s0, $zero
/* 3DBA4 800627A4 8FBF0054 */ lw $ra, 0x54($sp)
/* 3DBA8 800627A8 8FB00050 */ lw $s0, 0x50($sp)
/* 3DBAC 800627AC 03E00008 */ jr $ra
/* 3DBB0 800627B0 27BD0058 */ addiu $sp, $sp, 0x58
/* 3DBB4 800627B4 00000000 */ nop
/* 3DBB8 800627B8 00000000 */ nop
/* 3DBBC 800627BC 00000000 */ nop

View File

@ -0,0 +1,35 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel sins
/* 3DBC0 800627C0 3084FFFF */ andi $a0, $a0, 0xFFFF
/* 3DBC4 800627C4 00042102 */ srl $a0, $a0, 4
/* 3DBC8 800627C8 30820400 */ andi $v0, $a0, 0x400
/* 3DBCC 800627CC 10400003 */ beqz $v0, .LIQUE_800627DC
/* 3DBD0 800627D0 00041027 */ nor $v0, $zero, $a0
/* 3DBD4 800627D4 080189F8 */ j .LIQUE_800627E0
/* 3DBD8 800627D8 304203FF */ andi $v0, $v0, 0x3FF
.LIQUE_800627DC:
/* 3DBDC 800627DC 308203FF */ andi $v0, $a0, 0x3FF
.LIQUE_800627E0:
/* 3DBE0 800627E0 00021040 */ sll $v0, $v0, 1
/* 3DBE4 800627E4 3C038009 */ lui $v1, %hi(sins_sintable)
/* 3DBE8 800627E8 00621821 */ addu $v1, $v1, $v0
/* 3DBEC 800627EC 84632A00 */ lh $v1, %lo(sins_sintable)($v1)
/* 3DBF0 800627F0 30820800 */ andi $v0, $a0, 0x800
/* 3DBF4 800627F4 14400003 */ bnez $v0, .LIQUE_80062804
/* 3DBF8 800627F8 00031023 */ negu $v0, $v1
/* 3DBFC 800627FC 03E00008 */ jr $ra
/* 3DC00 80062800 00601021 */ addu $v0, $v1, $zero
.LIQUE_80062804:
/* 3DC04 80062804 00021400 */ sll $v0, $v0, 16
/* 3DC08 80062808 03E00008 */ jr $ra
/* 3DC0C 8006280C 00021403 */ sra $v0, $v0, 16

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel sqrtf
/* 3C280 80060E80 03E00008 */ jr $ra
/* 3C284 80060E84 46006004 */ sqrt.s $f0, $f12
/* 3C288 80060E88 00000000 */ nop
/* 3C28C 80060E8C 00000000 */ nop

View File

@ -0,0 +1,90 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel bcmp
/* 45B70 8006A770 00851026 */ xor $v0, $a0, $a1
/* 45B74 8006A774 28C10010 */ slti $at, $a2, 0x10
/* 45B78 8006A778 14200034 */ bnez $at, .LIQUE_8006A84C
/* 45B7C 8006A77C 00000000 */ nop
/* 45B80 8006A780 30420003 */ andi $v0, $v0, 0x3
/* 45B84 8006A784 14400018 */ bnez $v0, .LIQUE_8006A7E8
/* 45B88 8006A788 0004C023 */ negu $t8, $a0
/* 45B8C 8006A78C 33180003 */ andi $t8, $t8, 0x3
/* 45B90 8006A790 13000007 */ beqz $t8, .LIQUE_8006A7B0
/* 45B94 8006A794 00D83023 */ subu $a2, $a2, $t8
/* 45B98 8006A798 00601021 */ addu $v0, $v1, $zero
/* 45B9C 8006A79C 88820000 */ lwl $v0, 0x0($a0)
/* 45BA0 8006A7A0 88A30000 */ lwl $v1, 0x0($a1)
/* 45BA4 8006A7A4 00982021 */ addu $a0, $a0, $t8
/* 45BA8 8006A7A8 14430033 */ bne $v0, $v1, .LIQUE_8006A878
/* 45BAC 8006A7AC 00B82821 */ addu $a1, $a1, $t8
.LIQUE_8006A7B0:
/* 45BB0 8006A7B0 2401FFFC */ addiu $at, $zero, -0x4
/* 45BB4 8006A7B4 00C13824 */ and $a3, $a2, $at
/* 45BB8 8006A7B8 10E00024 */ beqz $a3, .LIQUE_8006A84C
/* 45BBC 8006A7BC 00C73023 */ subu $a2, $a2, $a3
/* 45BC0 8006A7C0 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A7C4:
/* 45BC4 8006A7C4 8C820000 */ lw $v0, 0x0($a0)
/* 45BC8 8006A7C8 8CA30000 */ lw $v1, 0x0($a1)
/* 45BCC 8006A7CC 24840004 */ addiu $a0, $a0, 0x4
/* 45BD0 8006A7D0 14430029 */ bne $v0, $v1, .LIQUE_8006A878
/* 45BD4 8006A7D4 24A50004 */ addiu $a1, $a1, 0x4
/* 45BD8 8006A7D8 1487FFFA */ bne $a0, $a3, .LIQUE_8006A7C4
/* 45BDC 8006A7DC 00000000 */ nop
/* 45BE0 8006A7E0 1000001A */ b .LIQUE_8006A84C
/* 45BE4 8006A7E4 00000000 */ nop
.LIQUE_8006A7E8:
/* 45BE8 8006A7E8 00053823 */ negu $a3, $a1
/* 45BEC 8006A7EC 30E70003 */ andi $a3, $a3, 0x3
/* 45BF0 8006A7F0 10E00009 */ beqz $a3, .LIQUE_8006A818
/* 45BF4 8006A7F4 00C73023 */ subu $a2, $a2, $a3
/* 45BF8 8006A7F8 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A7FC:
/* 45BFC 8006A7FC 90820000 */ lbu $v0, 0x0($a0)
/* 45C00 8006A800 90A30000 */ lbu $v1, 0x0($a1)
/* 45C04 8006A804 24840001 */ addiu $a0, $a0, 0x1
/* 45C08 8006A808 1443001B */ bne $v0, $v1, .LIQUE_8006A878
/* 45C0C 8006A80C 24A50001 */ addiu $a1, $a1, 0x1
/* 45C10 8006A810 1487FFFA */ bne $a0, $a3, .LIQUE_8006A7FC
/* 45C14 8006A814 00000000 */ nop
.LIQUE_8006A818:
/* 45C18 8006A818 2401FFFC */ addiu $at, $zero, -0x4
/* 45C1C 8006A81C 00C13824 */ and $a3, $a2, $at
/* 45C20 8006A820 10E0000A */ beqz $a3, .LIQUE_8006A84C
/* 45C24 8006A824 00C73023 */ subu $a2, $a2, $a3
/* 45C28 8006A828 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A82C:
/* 45C2C 8006A82C 88820000 */ lwl $v0, 0x0($a0)
/* 45C30 8006A830 98820003 */ lwr $v0, 0x3($a0)
/* 45C34 8006A834 8CA30000 */ lw $v1, 0x0($a1)
/* 45C38 8006A838 24840004 */ addiu $a0, $a0, 0x4
/* 45C3C 8006A83C 1443000E */ bne $v0, $v1, .LIQUE_8006A878
/* 45C40 8006A840 24A50004 */ addiu $a1, $a1, 0x4
/* 45C44 8006A844 1487FFF9 */ bne $a0, $a3, .LIQUE_8006A82C
/* 45C48 8006A848 00000000 */ nop
.LIQUE_8006A84C:
/* 45C4C 8006A84C 18C00008 */ blez $a2, .LIQUE_8006A870
/* 45C50 8006A850 00C43821 */ addu $a3, $a2, $a0
.LIQUE_8006A854:
/* 45C54 8006A854 90820000 */ lbu $v0, 0x0($a0)
/* 45C58 8006A858 90A30000 */ lbu $v1, 0x0($a1)
/* 45C5C 8006A85C 24840001 */ addiu $a0, $a0, 0x1
/* 45C60 8006A860 14430005 */ bne $v0, $v1, .LIQUE_8006A878
/* 45C64 8006A864 24A50001 */ addiu $a1, $a1, 0x1
/* 45C68 8006A868 1487FFFA */ bne $a0, $a3, .LIQUE_8006A854
/* 45C6C 8006A86C 00000000 */ nop
.LIQUE_8006A870:
/* 45C70 8006A870 03E00008 */ jr $ra
/* 45C74 8006A874 00001021 */ addu $v0, $zero, $zero
.LIQUE_8006A878:
/* 45C78 8006A878 03E00008 */ jr $ra
/* 45C7C 8006A87C 24020001 */ addiu $v0, $zero, 0x1

View File

@ -0,0 +1,232 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel bcopy
/* 3DC10 80062810 10C0001B */ beqz $a2, .LIQUE_80062880
/* 3DC14 80062814 00A03821 */ addu $a3, $a1, $zero
/* 3DC18 80062818 10850019 */ beq $a0, $a1, .LIQUE_80062880
/* 3DC1C 8006281C 00000000 */ nop
/* 3DC20 80062820 00A4082A */ slt $at, $a1, $a0
/* 3DC24 80062824 14200007 */ bnez $at, .LIQUE_80062844
/* 3DC28 80062828 00000000 */ nop
/* 3DC2C 8006282C 00861020 */ add $v0, $a0, $a2 # handwritten instruction
/* 3DC30 80062830 00A2082A */ slt $at, $a1, $v0
/* 3DC34 80062834 10200003 */ beqz $at, .LIQUE_80062844
/* 3DC38 80062838 00000000 */ nop
/* 3DC3C 8006283C 1000005C */ b .LIQUE_800629B0
/* 3DC40 80062840 00000000 */ nop
.LIQUE_80062844:
/* 3DC44 80062844 28C10010 */ slti $at, $a2, 0x10
/* 3DC48 80062848 14200005 */ bnez $at, .LIQUE_80062860
/* 3DC4C 8006284C 00000000 */ nop
/* 3DC50 80062850 30820003 */ andi $v0, $a0, 0x3
/* 3DC54 80062854 30A30003 */ andi $v1, $a1, 0x3
/* 3DC58 80062858 1043000B */ beq $v0, $v1, .LIQUE_80062888
/* 3DC5C 8006285C 00000000 */ nop
.LIQUE_80062860:
/* 3DC60 80062860 10C00007 */ beqz $a2, .LIQUE_80062880
/* 3DC64 80062864 00000000 */ nop
/* 3DC68 80062868 00861821 */ addu $v1, $a0, $a2
.LIQUE_8006286C:
/* 3DC6C 8006286C 80820000 */ lb $v0, 0x0($a0)
/* 3DC70 80062870 24840001 */ addiu $a0, $a0, 0x1
/* 3DC74 80062874 A0A20000 */ sb $v0, 0x0($a1)
/* 3DC78 80062878 1483FFFC */ bne $a0, $v1, .LIQUE_8006286C
/* 3DC7C 8006287C 24A50001 */ addiu $a1, $a1, 0x1
.LIQUE_80062880:
/* 3DC80 80062880 03E00008 */ jr $ra
/* 3DC84 80062884 00E01021 */ addu $v0, $a3, $zero
.LIQUE_80062888:
/* 3DC88 80062888 1040001A */ beqz $v0, .LIQUE_800628F4
/* 3DC8C 8006288C 00000000 */ nop
/* 3DC90 80062890 24010001 */ addiu $at, $zero, 0x1
/* 3DC94 80062894 10410010 */ beq $v0, $at, .LIQUE_800628D8
/* 3DC98 80062898 00000000 */ nop
/* 3DC9C 8006289C 24010002 */ addiu $at, $zero, 0x2
/* 3DCA0 800628A0 10410007 */ beq $v0, $at, .LIQUE_800628C0
/* 3DCA4 800628A4 00000000 */ nop
/* 3DCA8 800628A8 80820000 */ lb $v0, 0x0($a0)
/* 3DCAC 800628AC 24840001 */ addiu $a0, $a0, 0x1
/* 3DCB0 800628B0 A0A20000 */ sb $v0, 0x0($a1)
/* 3DCB4 800628B4 24A50001 */ addiu $a1, $a1, 0x1
/* 3DCB8 800628B8 1000000E */ b .LIQUE_800628F4
/* 3DCBC 800628BC 24C6FFFF */ addiu $a2, $a2, -0x1
.LIQUE_800628C0:
/* 3DCC0 800628C0 84820000 */ lh $v0, 0x0($a0)
/* 3DCC4 800628C4 24840002 */ addiu $a0, $a0, 0x2
/* 3DCC8 800628C8 A4A20000 */ sh $v0, 0x0($a1)
/* 3DCCC 800628CC 24A50002 */ addiu $a1, $a1, 0x2
/* 3DCD0 800628D0 10000008 */ b .LIQUE_800628F4
/* 3DCD4 800628D4 24C6FFFE */ addiu $a2, $a2, -0x2
.LIQUE_800628D8:
/* 3DCD8 800628D8 80820000 */ lb $v0, 0x0($a0)
/* 3DCDC 800628DC 84830001 */ lh $v1, 0x1($a0)
/* 3DCE0 800628E0 24840003 */ addiu $a0, $a0, 0x3
/* 3DCE4 800628E4 A0A20000 */ sb $v0, 0x0($a1)
/* 3DCE8 800628E8 A4A30001 */ sh $v1, 0x1($a1)
/* 3DCEC 800628EC 24A50003 */ addiu $a1, $a1, 0x3
/* 3DCF0 800628F0 24C6FFFD */ addiu $a2, $a2, -0x3
.LIQUE_800628F4:
/* 3DCF4 800628F4 28C10020 */ slti $at, $a2, 0x20
/* 3DCF8 800628F8 14200015 */ bnez $at, .LIQUE_80062950
/* 3DCFC 800628FC 00000000 */ nop
/* 3DD00 80062900 8C820000 */ lw $v0, 0x0($a0)
/* 3DD04 80062904 8C830004 */ lw $v1, 0x4($a0)
/* 3DD08 80062908 8C880008 */ lw $t0, 0x8($a0)
/* 3DD0C 8006290C 8C89000C */ lw $t1, 0xC($a0)
/* 3DD10 80062910 8C8A0010 */ lw $t2, 0x10($a0)
/* 3DD14 80062914 8C8B0014 */ lw $t3, 0x14($a0)
/* 3DD18 80062918 8C8C0018 */ lw $t4, 0x18($a0)
/* 3DD1C 8006291C 8C8D001C */ lw $t5, 0x1C($a0)
/* 3DD20 80062920 24840020 */ addiu $a0, $a0, 0x20
/* 3DD24 80062924 ACA20000 */ sw $v0, 0x0($a1)
/* 3DD28 80062928 ACA30004 */ sw $v1, 0x4($a1)
/* 3DD2C 8006292C ACA80008 */ sw $t0, 0x8($a1)
/* 3DD30 80062930 ACA9000C */ sw $t1, 0xC($a1)
/* 3DD34 80062934 ACAA0010 */ sw $t2, 0x10($a1)
/* 3DD38 80062938 ACAB0014 */ sw $t3, 0x14($a1)
/* 3DD3C 8006293C ACAC0018 */ sw $t4, 0x18($a1)
/* 3DD40 80062940 ACAD001C */ sw $t5, 0x1C($a1)
/* 3DD44 80062944 24A50020 */ addiu $a1, $a1, 0x20
/* 3DD48 80062948 1000FFEA */ b .LIQUE_800628F4
/* 3DD4C 8006294C 24C6FFE0 */ addiu $a2, $a2, -0x20
.LIQUE_80062950:
/* 3DD50 80062950 28C10010 */ slti $at, $a2, 0x10
/* 3DD54 80062954 1420000D */ bnez $at, .LIQUE_8006298C
/* 3DD58 80062958 00000000 */ nop
/* 3DD5C 8006295C 8C820000 */ lw $v0, 0x0($a0)
/* 3DD60 80062960 8C830004 */ lw $v1, 0x4($a0)
/* 3DD64 80062964 8C880008 */ lw $t0, 0x8($a0)
/* 3DD68 80062968 8C89000C */ lw $t1, 0xC($a0)
/* 3DD6C 8006296C 24840010 */ addiu $a0, $a0, 0x10
/* 3DD70 80062970 ACA20000 */ sw $v0, 0x0($a1)
/* 3DD74 80062974 ACA30004 */ sw $v1, 0x4($a1)
/* 3DD78 80062978 ACA80008 */ sw $t0, 0x8($a1)
/* 3DD7C 8006297C ACA9000C */ sw $t1, 0xC($a1)
/* 3DD80 80062980 24A50010 */ addiu $a1, $a1, 0x10
/* 3DD84 80062984 1000FFF2 */ b .LIQUE_80062950
/* 3DD88 80062988 24C6FFF0 */ addiu $a2, $a2, -0x10
.LIQUE_8006298C:
/* 3DD8C 8006298C 28C10004 */ slti $at, $a2, 0x4
/* 3DD90 80062990 1420FFB3 */ bnez $at, .LIQUE_80062860
/* 3DD94 80062994 00000000 */ nop
/* 3DD98 80062998 8C820000 */ lw $v0, 0x0($a0)
/* 3DD9C 8006299C 24840004 */ addiu $a0, $a0, 0x4
/* 3DDA0 800629A0 ACA20000 */ sw $v0, 0x0($a1)
/* 3DDA4 800629A4 24A50004 */ addiu $a1, $a1, 0x4
/* 3DDA8 800629A8 1000FFF8 */ b .LIQUE_8006298C
/* 3DDAC 800629AC 24C6FFFC */ addiu $a2, $a2, -0x4
.LIQUE_800629B0:
/* 3DDB0 800629B0 00862020 */ add $a0, $a0, $a2 # handwritten instruction
/* 3DDB4 800629B4 00A62820 */ add $a1, $a1, $a2 # handwritten instruction
/* 3DDB8 800629B8 28C10010 */ slti $at, $a2, 0x10
/* 3DDBC 800629BC 14200005 */ bnez $at, .LIQUE_800629D4
/* 3DDC0 800629C0 00000000 */ nop
/* 3DDC4 800629C4 30820003 */ andi $v0, $a0, 0x3
/* 3DDC8 800629C8 30A30003 */ andi $v1, $a1, 0x3
/* 3DDCC 800629CC 1043000D */ beq $v0, $v1, .LIQUE_80062A04
/* 3DDD0 800629D0 00000000 */ nop
.LIQUE_800629D4:
/* 3DDD4 800629D4 10C0FFAA */ beqz $a2, .LIQUE_80062880
/* 3DDD8 800629D8 00000000 */ nop
/* 3DDDC 800629DC 2484FFFF */ addiu $a0, $a0, -0x1
/* 3DDE0 800629E0 24A5FFFF */ addiu $a1, $a1, -0x1
/* 3DDE4 800629E4 00861823 */ subu $v1, $a0, $a2
.LIQUE_800629E8:
/* 3DDE8 800629E8 80820000 */ lb $v0, 0x0($a0)
/* 3DDEC 800629EC 2484FFFF */ addiu $a0, $a0, -0x1
/* 3DDF0 800629F0 A0A20000 */ sb $v0, 0x0($a1)
/* 3DDF4 800629F4 1483FFFC */ bne $a0, $v1, .LIQUE_800629E8
/* 3DDF8 800629F8 24A5FFFF */ addiu $a1, $a1, -0x1
/* 3DDFC 800629FC 03E00008 */ jr $ra
/* 3DE00 80062A00 00E01021 */ addu $v0, $a3, $zero
.LIQUE_80062A04:
/* 3DE04 80062A04 1040001A */ beqz $v0, .LIQUE_80062A70
/* 3DE08 80062A08 00000000 */ nop
/* 3DE0C 80062A0C 24010003 */ addiu $at, $zero, 0x3
/* 3DE10 80062A10 10410010 */ beq $v0, $at, .LIQUE_80062A54
/* 3DE14 80062A14 00000000 */ nop
/* 3DE18 80062A18 24010002 */ addiu $at, $zero, 0x2
/* 3DE1C 80062A1C 10410007 */ beq $v0, $at, .LIQUE_80062A3C
/* 3DE20 80062A20 00000000 */ nop
/* 3DE24 80062A24 8082FFFF */ lb $v0, -0x1($a0)
/* 3DE28 80062A28 2484FFFF */ addiu $a0, $a0, -0x1
/* 3DE2C 80062A2C A0A2FFFF */ sb $v0, -0x1($a1)
/* 3DE30 80062A30 24A5FFFF */ addiu $a1, $a1, -0x1
/* 3DE34 80062A34 1000000E */ b .LIQUE_80062A70
/* 3DE38 80062A38 24C6FFFF */ addiu $a2, $a2, -0x1
.LIQUE_80062A3C:
/* 3DE3C 80062A3C 8482FFFE */ lh $v0, -0x2($a0)
/* 3DE40 80062A40 2484FFFE */ addiu $a0, $a0, -0x2
/* 3DE44 80062A44 A4A2FFFE */ sh $v0, -0x2($a1)
/* 3DE48 80062A48 24A5FFFE */ addiu $a1, $a1, -0x2
/* 3DE4C 80062A4C 10000008 */ b .LIQUE_80062A70
/* 3DE50 80062A50 24C6FFFE */ addiu $a2, $a2, -0x2
.LIQUE_80062A54:
/* 3DE54 80062A54 8082FFFF */ lb $v0, -0x1($a0)
/* 3DE58 80062A58 8483FFFD */ lh $v1, -0x3($a0)
/* 3DE5C 80062A5C 2484FFFD */ addiu $a0, $a0, -0x3
/* 3DE60 80062A60 A0A2FFFF */ sb $v0, -0x1($a1)
/* 3DE64 80062A64 A4A3FFFD */ sh $v1, -0x3($a1)
/* 3DE68 80062A68 24A5FFFD */ addiu $a1, $a1, -0x3
/* 3DE6C 80062A6C 24C6FFFD */ addiu $a2, $a2, -0x3
.LIQUE_80062A70:
/* 3DE70 80062A70 28C10020 */ slti $at, $a2, 0x20
/* 3DE74 80062A74 14200015 */ bnez $at, .LIQUE_80062ACC
/* 3DE78 80062A78 00000000 */ nop
/* 3DE7C 80062A7C 8C82FFFC */ lw $v0, -0x4($a0)
/* 3DE80 80062A80 8C83FFF8 */ lw $v1, -0x8($a0)
/* 3DE84 80062A84 8C88FFF4 */ lw $t0, -0xC($a0)
/* 3DE88 80062A88 8C89FFF0 */ lw $t1, -0x10($a0)
/* 3DE8C 80062A8C 8C8AFFEC */ lw $t2, -0x14($a0)
/* 3DE90 80062A90 8C8BFFE8 */ lw $t3, -0x18($a0)
/* 3DE94 80062A94 8C8CFFE4 */ lw $t4, -0x1C($a0)
/* 3DE98 80062A98 8C8DFFE0 */ lw $t5, -0x20($a0)
/* 3DE9C 80062A9C 2484FFE0 */ addiu $a0, $a0, -0x20
/* 3DEA0 80062AA0 ACA2FFFC */ sw $v0, -0x4($a1)
/* 3DEA4 80062AA4 ACA3FFF8 */ sw $v1, -0x8($a1)
/* 3DEA8 80062AA8 ACA8FFF4 */ sw $t0, -0xC($a1)
/* 3DEAC 80062AAC ACA9FFF0 */ sw $t1, -0x10($a1)
/* 3DEB0 80062AB0 ACAAFFEC */ sw $t2, -0x14($a1)
/* 3DEB4 80062AB4 ACABFFE8 */ sw $t3, -0x18($a1)
/* 3DEB8 80062AB8 ACACFFE4 */ sw $t4, -0x1C($a1)
/* 3DEBC 80062ABC ACADFFE0 */ sw $t5, -0x20($a1)
/* 3DEC0 80062AC0 24A5FFE0 */ addiu $a1, $a1, -0x20
/* 3DEC4 80062AC4 1000FFEA */ b .LIQUE_80062A70
/* 3DEC8 80062AC8 24C6FFE0 */ addiu $a2, $a2, -0x20
.LIQUE_80062ACC:
/* 3DECC 80062ACC 28C10010 */ slti $at, $a2, 0x10
/* 3DED0 80062AD0 1420000D */ bnez $at, .LIQUE_80062B08
/* 3DED4 80062AD4 00000000 */ nop
/* 3DED8 80062AD8 8C82FFFC */ lw $v0, -0x4($a0)
/* 3DEDC 80062ADC 8C83FFF8 */ lw $v1, -0x8($a0)
/* 3DEE0 80062AE0 8C88FFF4 */ lw $t0, -0xC($a0)
/* 3DEE4 80062AE4 8C89FFF0 */ lw $t1, -0x10($a0)
/* 3DEE8 80062AE8 2484FFF0 */ addiu $a0, $a0, -0x10
/* 3DEEC 80062AEC ACA2FFFC */ sw $v0, -0x4($a1)
/* 3DEF0 80062AF0 ACA3FFF8 */ sw $v1, -0x8($a1)
/* 3DEF4 80062AF4 ACA8FFF4 */ sw $t0, -0xC($a1)
/* 3DEF8 80062AF8 ACA9FFF0 */ sw $t1, -0x10($a1)
/* 3DEFC 80062AFC 24A5FFF0 */ addiu $a1, $a1, -0x10
/* 3DF00 80062B00 1000FFF2 */ b .LIQUE_80062ACC
/* 3DF04 80062B04 24C6FFF0 */ addiu $a2, $a2, -0x10
.LIQUE_80062B08:
/* 3DF08 80062B08 28C10004 */ slti $at, $a2, 0x4
/* 3DF0C 80062B0C 1420FFB1 */ bnez $at, .LIQUE_800629D4
/* 3DF10 80062B10 00000000 */ nop
/* 3DF14 80062B14 8C82FFFC */ lw $v0, -0x4($a0)
/* 3DF18 80062B18 2484FFFC */ addiu $a0, $a0, -0x4
/* 3DF1C 80062B1C ACA2FFFC */ sw $v0, -0x4($a1)
/* 3DF20 80062B20 24A5FFFC */ addiu $a1, $a1, -0x4
/* 3DF24 80062B24 1000FFF8 */ b .LIQUE_80062B08
/* 3DF28 80062B28 24C6FFFC */ addiu $a2, $a2, -0x4
/* 3DF2C 80062B2C 00000000 */ nop

View File

@ -0,0 +1,59 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel bzero
/* 3DF30 80062B30 00041823 */ negu $v1, $a0
/* 3DF34 80062B34 28A1000C */ slti $at, $a1, 0xC
/* 3DF38 80062B38 1420001D */ bnez $at, .LIQUE_80062BB0
/* 3DF3C 80062B3C 00000000 */ nop
/* 3DF40 80062B40 30630003 */ andi $v1, $v1, 0x3
/* 3DF44 80062B44 10600003 */ beqz $v1, .LIQUE_80062B54
/* 3DF48 80062B48 00A32823 */ subu $a1, $a1, $v1
/* 3DF4C 80062B4C A8800000 */ swl $zero, 0x0($a0)
/* 3DF50 80062B50 00832021 */ addu $a0, $a0, $v1
.LIQUE_80062B54:
/* 3DF54 80062B54 2401FFE0 */ addiu $at, $zero, -0x20
/* 3DF58 80062B58 00A13824 */ and $a3, $a1, $at
/* 3DF5C 80062B5C 10E0000C */ beqz $a3, .LIQUE_80062B90
/* 3DF60 80062B60 00A72823 */ subu $a1, $a1, $a3
/* 3DF64 80062B64 00E43821 */ addu $a3, $a3, $a0
.LIQUE_80062B68:
/* 3DF68 80062B68 AC800000 */ sw $zero, 0x0($a0)
/* 3DF6C 80062B6C AC800004 */ sw $zero, 0x4($a0)
/* 3DF70 80062B70 AC800008 */ sw $zero, 0x8($a0)
/* 3DF74 80062B74 AC80000C */ sw $zero, 0xC($a0)
/* 3DF78 80062B78 24840020 */ addiu $a0, $a0, 0x20
/* 3DF7C 80062B7C AC80FFF0 */ sw $zero, -0x10($a0)
/* 3DF80 80062B80 AC80FFF4 */ sw $zero, -0xC($a0)
/* 3DF84 80062B84 AC80FFF8 */ sw $zero, -0x8($a0)
/* 3DF88 80062B88 1487FFF7 */ bne $a0, $a3, .LIQUE_80062B68
/* 3DF8C 80062B8C AC80FFFC */ sw $zero, -0x4($a0)
.LIQUE_80062B90:
/* 3DF90 80062B90 2401FFFC */ addiu $at, $zero, -0x4
/* 3DF94 80062B94 00A13824 */ and $a3, $a1, $at
/* 3DF98 80062B98 10E00005 */ beqz $a3, .LIQUE_80062BB0
/* 3DF9C 80062B9C 00A72823 */ subu $a1, $a1, $a3
/* 3DFA0 80062BA0 00E43821 */ addu $a3, $a3, $a0
.LIQUE_80062BA4:
/* 3DFA4 80062BA4 24840004 */ addiu $a0, $a0, 0x4
/* 3DFA8 80062BA8 1487FFFE */ bne $a0, $a3, .LIQUE_80062BA4
/* 3DFAC 80062BAC AC80FFFC */ sw $zero, -0x4($a0)
.LIQUE_80062BB0:
/* 3DFB0 80062BB0 18A00005 */ blez $a1, .LIQUE_80062BC8
/* 3DFB4 80062BB4 00000000 */ nop
/* 3DFB8 80062BB8 00A42821 */ addu $a1, $a1, $a0
.LIQUE_80062BBC:
/* 3DFBC 80062BBC 24840001 */ addiu $a0, $a0, 0x1
/* 3DFC0 80062BC0 1485FFFE */ bne $a0, $a1, .LIQUE_80062BBC
/* 3DFC4 80062BC4 A080FFFF */ sb $zero, -0x1($a0)
.LIQUE_80062BC8:
/* 3DFC8 80062BC8 03E00008 */ jr $ra
/* 3DFCC 80062BCC 00000000 */ nop

View File

@ -0,0 +1,132 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel ldiv
/* 48020 8006CC20 14C00002 */ bnez $a2, .LIQUE_8006CC2C
/* 48024 8006CC24 00A6001A */ div $zero, $a1, $a2
/* 48028 8006CC28 0007000D */ break 7
.LIQUE_8006CC2C:
/* 4802C 8006CC2C 2401FFFF */ addiu $at, $zero, -0x1
/* 48030 8006CC30 14C10004 */ bne $a2, $at, .LIQUE_8006CC44
/* 48034 8006CC34 3C018000 */ lui $at, (0x80000000 >> 16)
/* 48038 8006CC38 14A10002 */ bne $a1, $at, .LIQUE_8006CC44
/* 4803C 8006CC3C 00000000 */ nop
/* 48040 8006CC40 0006000D */ break 6
.LIQUE_8006CC44:
/* 48044 8006CC44 00003812 */ mflo $a3
/* 48048 8006CC48 00000000 */ nop
/* 4804C 8006CC4C 00000000 */ nop
/* 48050 8006CC50 00C70018 */ mult $a2, $a3
/* 48054 8006CC54 27BDFFF8 */ addiu $sp, $sp, -0x8
/* 48058 8006CC58 AFA70000 */ sw $a3, 0x0($sp)
/* 4805C 8006CC5C 00001012 */ mflo $v0
/* 48060 8006CC60 00A21823 */ subu $v1, $a1, $v0
/* 48064 8006CC64 04E10006 */ bgez $a3, .LIQUE_8006CC80
/* 48068 8006CC68 AFA30004 */ sw $v1, 0x4($sp)
/* 4806C 8006CC6C 18600004 */ blez $v1, .LIQUE_8006CC80
/* 48070 8006CC70 24E20001 */ addiu $v0, $a3, 0x1
/* 48074 8006CC74 00661823 */ subu $v1, $v1, $a2
/* 48078 8006CC78 AFA20000 */ sw $v0, 0x0($sp)
/* 4807C 8006CC7C AFA30004 */ sw $v1, 0x4($sp)
.LIQUE_8006CC80:
/* 48080 8006CC80 8FA80000 */ lw $t0, 0x0($sp)
/* 48084 8006CC84 8FA90004 */ lw $t1, 0x4($sp)
/* 48088 8006CC88 AC880000 */ sw $t0, 0x0($a0)
/* 4808C 8006CC8C AC890004 */ sw $t1, 0x4($a0)
/* 48090 8006CC90 00801021 */ addu $v0, $a0, $zero
/* 48094 8006CC94 03E00008 */ jr $ra
/* 48098 8006CC98 27BD0008 */ addiu $sp, $sp, 0x8
glabel lldiv
/* 4809C 8006CC9C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 480A0 8006CCA0 AFB40030 */ sw $s4, 0x30($sp)
/* 480A4 8006CCA4 0080A021 */ addu $s4, $a0, $zero
/* 480A8 8006CCA8 AFB10024 */ sw $s1, 0x24($sp)
/* 480AC 8006CCAC AFB00020 */ sw $s0, 0x20($sp)
/* 480B0 8006CCB0 00C08021 */ addu $s0, $a2, $zero
/* 480B4 8006CCB4 00E08821 */ addu $s1, $a3, $zero
/* 480B8 8006CCB8 AFB3002C */ sw $s3, 0x2C($sp)
/* 480BC 8006CCBC AFB20028 */ sw $s2, 0x28($sp)
/* 480C0 8006CCC0 8FB20048 */ lw $s2, 0x48($sp)
/* 480C4 8006CCC4 8FB3004C */ lw $s3, 0x4C($sp)
/* 480C8 8006CCC8 02002021 */ addu $a0, $s0, $zero
/* 480CC 8006CCCC 02202821 */ addu $a1, $s1, $zero
/* 480D0 8006CCD0 AFBF0034 */ sw $ra, 0x34($sp)
/* 480D4 8006CCD4 02403021 */ addu $a2, $s2, $zero
/* 480D8 8006CCD8 0C01B384 */ jal __divdi3
/* 480DC 8006CCDC 02603821 */ addu $a3, $s3, $zero
/* 480E0 8006CCE0 00404021 */ addu $t0, $v0, $zero
/* 480E4 8006CCE4 00604821 */ addu $t1, $v1, $zero
/* 480E8 8006CCE8 02690019 */ multu $s3, $t1
/* 480EC 8006CCEC 00002010 */ mfhi $a0
/* 480F0 8006CCF0 00002812 */ mflo $a1
/* 480F4 8006CCF4 00000000 */ nop
/* 480F8 8006CCF8 00000000 */ nop
/* 480FC 8006CCFC 02680018 */ mult $s3, $t0
/* 48100 8006CD00 00001012 */ mflo $v0
/* 48104 8006CD04 00000000 */ nop
/* 48108 8006CD08 00000000 */ nop
/* 4810C 8006CD0C 01320018 */ mult $t1, $s2
/* 48110 8006CD10 AFA80010 */ sw $t0, 0x10($sp)
/* 48114 8006CD14 AFA90014 */ sw $t1, 0x14($sp)
/* 48118 8006CD18 8FA60010 */ lw $a2, 0x10($sp)
/* 4811C 8006CD1C 00822021 */ addu $a0, $a0, $v0
/* 48120 8006CD20 00001812 */ mflo $v1
/* 48124 8006CD24 00832021 */ addu $a0, $a0, $v1
/* 48128 8006CD28 0225382B */ sltu $a3, $s1, $a1
/* 4812C 8006CD2C 02252823 */ subu $a1, $s1, $a1
/* 48130 8006CD30 02042023 */ subu $a0, $s0, $a0
/* 48134 8006CD34 00872023 */ subu $a0, $a0, $a3
/* 48138 8006CD38 AFA40018 */ sw $a0, 0x18($sp)
/* 4813C 8006CD3C AFA5001C */ sw $a1, 0x1C($sp)
/* 48140 8006CD40 04C10014 */ bgez $a2, .LIQUE_8006CD94
/* 48144 8006CD44 8FBF0034 */ lw $ra, 0x34($sp)
/* 48148 8006CD48 8FA20018 */ lw $v0, 0x18($sp)
/* 4814C 8006CD4C 5C400006 */ bgtzl $v0, .LIQUE_8006CD68
/* 48150 8006CD50 25230001 */ addiu $v1, $t1, 0x1
/* 48154 8006CD54 14400010 */ bnez $v0, .LIQUE_8006CD98
/* 48158 8006CD58 02801021 */ addu $v0, $s4, $zero
/* 4815C 8006CD5C 8FA2001C */ lw $v0, 0x1C($sp)
/* 48160 8006CD60 1040000C */ beqz $v0, .LIQUE_8006CD94
/* 48164 8006CD64 25230001 */ addiu $v1, $t1, 0x1
.LIQUE_8006CD68:
/* 48168 8006CD68 2C660001 */ sltiu $a2, $v1, 0x1
/* 4816C 8006CD6C 01061021 */ addu $v0, $t0, $a2
/* 48170 8006CD70 00B3382B */ sltu $a3, $a1, $s3
/* 48174 8006CD74 00B32823 */ subu $a1, $a1, $s3
/* 48178 8006CD78 00922023 */ subu $a0, $a0, $s2
/* 4817C 8006CD7C 00872023 */ subu $a0, $a0, $a3
/* 48180 8006CD80 AFA20010 */ sw $v0, 0x10($sp)
/* 48184 8006CD84 AFA30014 */ sw $v1, 0x14($sp)
/* 48188 8006CD88 AFA40018 */ sw $a0, 0x18($sp)
/* 4818C 8006CD8C AFA5001C */ sw $a1, 0x1C($sp)
/* 48190 8006CD90 8FBF0034 */ lw $ra, 0x34($sp)
.LIQUE_8006CD94:
/* 48194 8006CD94 02801021 */ addu $v0, $s4, $zero
.LIQUE_8006CD98:
/* 48198 8006CD98 8FAA0010 */ lw $t2, 0x10($sp)
/* 4819C 8006CD9C 8FAB0014 */ lw $t3, 0x14($sp)
/* 481A0 8006CDA0 8FAC0018 */ lw $t4, 0x18($sp)
/* 481A4 8006CDA4 8FAD001C */ lw $t5, 0x1C($sp)
/* 481A8 8006CDA8 AE8A0000 */ sw $t2, 0x0($s4)
/* 481AC 8006CDAC AE8B0004 */ sw $t3, 0x4($s4)
/* 481B0 8006CDB0 AE8C0008 */ sw $t4, 0x8($s4)
/* 481B4 8006CDB4 AE8D000C */ sw $t5, 0xC($s4)
/* 481B8 8006CDB8 8FB40030 */ lw $s4, 0x30($sp)
/* 481BC 8006CDBC 8FB3002C */ lw $s3, 0x2C($sp)
/* 481C0 8006CDC0 8FB20028 */ lw $s2, 0x28($sp)
/* 481C4 8006CDC4 8FB10024 */ lw $s1, 0x24($sp)
/* 481C8 8006CDC8 8FB00020 */ lw $s0, 0x20($sp)
/* 481CC 8006CDCC 03E00008 */ jr $ra
/* 481D0 8006CDD0 27BD0038 */ addiu $sp, $sp, 0x38
/* 481D4 8006CDD4 00000000 */ nop
/* 481D8 8006CDD8 00000000 */ nop
/* 481DC 8006CDDC 00000000 */ nop

View File

@ -0,0 +1,54 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel strchr
/* 3DFD0 80062BD0 00052E00 */ sll $a1, $a1, 24
/* 3DFD4 80062BD4 08018AFB */ j .LIQUE_80062BEC
/* 3DFD8 80062BD8 00052E03 */ sra $a1, $a1, 24
.LIQUE_80062BDC:
/* 3DFDC 80062BDC 14600003 */ bnez $v1, .LIQUE_80062BEC
/* 3DFE0 80062BE0 24840001 */ addiu $a0, $a0, 0x1
/* 3DFE4 80062BE4 03E00008 */ jr $ra
/* 3DFE8 80062BE8 00001021 */ addu $v0, $zero, $zero
.LIQUE_80062BEC:
/* 3DFEC 80062BEC 80820000 */ lb $v0, 0x0($a0)
/* 3DFF0 80062BF0 1445FFFA */ bne $v0, $a1, .LIQUE_80062BDC
/* 3DFF4 80062BF4 90830000 */ lbu $v1, 0x0($a0)
/* 3DFF8 80062BF8 03E00008 */ jr $ra
/* 3DFFC 80062BFC 00801021 */ addu $v0, $a0, $zero
glabel strlen
/* 3E000 80062C00 80820000 */ lb $v0, 0x0($a0)
/* 3E004 80062C04 10400005 */ beqz $v0, .LIQUE_80062C1C
/* 3E008 80062C08 00801821 */ addu $v1, $a0, $zero
/* 3E00C 80062C0C 24630001 */ addiu $v1, $v1, 0x1
.LIQUE_80062C10:
/* 3E010 80062C10 80620000 */ lb $v0, 0x0($v1)
/* 3E014 80062C14 5440FFFE */ bnel $v0, $zero, .LIQUE_80062C10
/* 3E018 80062C18 24630001 */ addiu $v1, $v1, 0x1
.LIQUE_80062C1C:
/* 3E01C 80062C1C 03E00008 */ jr $ra
/* 3E020 80062C20 00641023 */ subu $v0, $v1, $a0
glabel memcpy
/* 3E024 80062C24 10C00007 */ beqz $a2, .LIQUE_80062C44
/* 3E028 80062C28 00801821 */ addu $v1, $a0, $zero
.LIQUE_80062C2C:
/* 3E02C 80062C2C 90A20000 */ lbu $v0, 0x0($a1)
/* 3E030 80062C30 24A50001 */ addiu $a1, $a1, 0x1
/* 3E034 80062C34 24C6FFFF */ addiu $a2, $a2, -0x1
/* 3E038 80062C38 A0620000 */ sb $v0, 0x0($v1)
/* 3E03C 80062C3C 14C0FFFB */ bnez $a2, .LIQUE_80062C2C
/* 3E040 80062C40 24630001 */ addiu $v1, $v1, 0x1
.LIQUE_80062C44:
/* 3E044 80062C44 03E00008 */ jr $ra
/* 3E048 80062C48 00801021 */ addu $v0, $a0, $zero
/* 3E04C 80062C4C 00000000 */ nop

View File

@ -0,0 +1,733 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel _Ldtob
/* 45EB0 8006AAB0 27BDFF88 */ addiu $sp, $sp, -0x78
/* 45EB4 8006AAB4 AFB1004C */ sw $s1, 0x4C($sp)
/* 45EB8 8006AAB8 27B10018 */ addiu $s1, $sp, 0x18
/* 45EBC 8006AABC AFB40058 */ sw $s4, 0x58($sp)
/* 45EC0 8006AAC0 0080A021 */ addu $s4, $a0, $zero
/* 45EC4 8006AAC4 00052E00 */ sll $a1, $a1, 24
/* 45EC8 8006AAC8 AFB30054 */ sw $s3, 0x54($sp)
/* 45ECC 8006AACC AFBF005C */ sw $ra, 0x5C($sp)
/* 45ED0 8006AAD0 AFB20050 */ sw $s2, 0x50($sp)
/* 45ED4 8006AAD4 AFB00048 */ sw $s0, 0x48($sp)
/* 45ED8 8006AAD8 F7B80070 */ sdc1 $f24, 0x70($sp)
/* 45EDC 8006AADC F7B60068 */ sdc1 $f22, 0x68($sp)
/* 45EE0 8006AAE0 F7B40060 */ sdc1 $f20, 0x60($sp)
/* 45EE4 8006AAE4 8E820024 */ lw $v0, 0x24($s4)
/* 45EE8 8006AAE8 D6940000 */ ldc1 $f20, 0x0($s4)
/* 45EEC 8006AAEC 04410003 */ bgez $v0, .LIQUE_8006AAFC
/* 45EF0 8006AAF0 00059E03 */ sra $s3, $a1, 24
/* 45EF4 8006AAF4 0801AAC7 */ j .LIQUE_8006AB1C
/* 45EF8 8006AAF8 24020006 */ addiu $v0, $zero, 0x6
.LIQUE_8006AAFC:
/* 45EFC 8006AAFC 14400009 */ bnez $v0, .LIQUE_8006AB24
/* 45F00 8006AB00 27A40038 */ addiu $a0, $sp, 0x38
/* 45F04 8006AB04 24020067 */ addiu $v0, $zero, 0x67
/* 45F08 8006AB08 12620003 */ beq $s3, $v0, .LIQUE_8006AB18
/* 45F0C 8006AB0C 24020047 */ addiu $v0, $zero, 0x47
/* 45F10 8006AB10 16620004 */ bne $s3, $v0, .LIQUE_8006AB24
/* 45F14 8006AB14 00000000 */ nop
.LIQUE_8006AB18:
/* 45F18 8006AB18 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_8006AB1C:
/* 45F1C 8006AB1C AE820024 */ sw $v0, 0x24($s4)
/* 45F20 8006AB20 27A40038 */ addiu $a0, $sp, 0x38
.LIQUE_8006AB24:
/* 45F24 8006AB24 0C01ABB7 */ jal _Ldunscale
/* 45F28 8006AB28 02802821 */ addu $a1, $s4, $zero
/* 45F2C 8006AB2C 00401821 */ addu $v1, $v0, $zero
/* 45F30 8006AB30 18600013 */ blez $v1, .LIQUE_8006AB80
/* 45F34 8006AB34 00000000 */ nop
/* 45F38 8006AB38 24020002 */ addiu $v0, $zero, 0x2
/* 45F3C 8006AB3C 14620005 */ bne $v1, $v0, .LIQUE_8006AB54
/* 45F40 8006AB40 8E840008 */ lw $a0, 0x8($s4)
/* 45F44 8006AB44 3C03800A */ lui $v1, %hi(xldtob_800989e8)
/* 45F48 8006AB48 246389E8 */ addiu $v1, $v1, %lo(xldtob_800989e8)
/* 45F4C 8006AB4C 0801AAD8 */ j .LIQUE_8006AB60
/* 45F50 8006AB50 24020003 */ addiu $v0, $zero, 0x3
.LIQUE_8006AB54:
/* 45F54 8006AB54 3C03800A */ lui $v1, %hi(xldtob_800989ec)
/* 45F58 8006AB58 246389EC */ addiu $v1, $v1, %lo(xldtob_800989ec)
/* 45F5C 8006AB5C 24020003 */ addiu $v0, $zero, 0x3
.LIQUE_8006AB60:
/* 45F60 8006AB60 AE820014 */ sw $v0, 0x14($s4)
/* 45F64 8006AB64 806A0000 */ lb $t2, 0x0($v1)
/* 45F68 8006AB68 806B0001 */ lb $t3, 0x1($v1)
/* 45F6C 8006AB6C 806C0002 */ lb $t4, 0x2($v1)
/* 45F70 8006AB70 A08A0000 */ sb $t2, 0x0($a0)
/* 45F74 8006AB74 A08B0001 */ sb $t3, 0x1($a0)
/* 45F78 8006AB78 0801ABAC */ j .LIQUE_8006AEB0
/* 45F7C 8006AB7C A08C0002 */ sb $t4, 0x2($a0)
.LIQUE_8006AB80:
/* 45F80 8006AB80 14400003 */ bnez $v0, .LIQUE_8006AB90
/* 45F84 8006AB84 00003821 */ addu $a3, $zero, $zero
/* 45F88 8006AB88 0801ABA6 */ j .LIQUE_8006AE98
/* 45F8C 8006AB8C A7A00038 */ sh $zero, 0x38($sp)
.LIQUE_8006AB90:
/* 45F90 8006AB90 44800000 */ mtc1 $zero, $f0
/* 45F94 8006AB94 44800800 */ mtc1 $zero, $f1
/* 45F98 8006AB98 4620A03C */ c.lt.d $f20, $f0
/* 45F9C 8006AB9C 45030001 */ bc1tl .LIQUE_8006ABA4
/* 45FA0 8006ABA0 4620A507 */ neg.d $f20, $f20
.LIQUE_8006ABA4:
/* 45FA4 8006ABA4 87A40038 */ lh $a0, 0x38($sp)
/* 45FA8 8006ABA8 24037597 */ addiu $v1, $zero, 0x7597
/* 45FAC 8006ABAC 00830018 */ mult $a0, $v1
/* 45FB0 8006ABB0 00002012 */ mflo $a0
/* 45FB4 8006ABB4 3C0214F8 */ lui $v0, (0x14F8B589 >> 16)
/* 45FB8 8006ABB8 3442B589 */ ori $v0, $v0, (0x14F8B589 & 0xFFFF)
/* 45FBC 8006ABBC 00820018 */ mult $a0, $v0
/* 45FC0 8006ABC0 000427C3 */ sra $a0, $a0, 31
/* 45FC4 8006ABC4 00001010 */ mfhi $v0
/* 45FC8 8006ABC8 00021343 */ sra $v0, $v0, 13
/* 45FCC 8006ABCC 00441023 */ subu $v0, $v0, $a0
/* 45FD0 8006ABD0 2444FFFC */ addiu $a0, $v0, -0x4
/* 45FD4 8006ABD4 00041C00 */ sll $v1, $a0, 16
/* 45FD8 8006ABD8 00031403 */ sra $v0, $v1, 16
/* 45FDC 8006ABDC 04410013 */ bgez $v0, .LIQUE_8006AC2C
/* 45FE0 8006ABE0 A7A40038 */ sh $a0, 0x38($sp)
/* 45FE4 8006ABE4 00021023 */ negu $v0, $v0
/* 45FE8 8006ABE8 24420003 */ addiu $v0, $v0, 0x3
/* 45FEC 8006ABEC 2403FFFC */ addiu $v1, $zero, -0x4
/* 45FF0 8006ABF0 00431824 */ and $v1, $v0, $v1
/* 45FF4 8006ABF4 00032023 */ negu $a0, $v1
/* 45FF8 8006ABF8 18600020 */ blez $v1, .LIQUE_8006AC7C
/* 45FFC 8006ABFC A7A40038 */ sh $a0, 0x38($sp)
/* 46000 8006AC00 3C04800A */ lui $a0, %hi(xldtob_pows)
/* 46004 8006AC04 248489A0 */ addiu $a0, $a0, %lo(xldtob_pows)
.LIQUE_8006AC08:
/* 46008 8006AC08 30620001 */ andi $v0, $v1, 0x1
/* 4600C 8006AC0C 10400003 */ beqz $v0, .LIQUE_8006AC1C
/* 46010 8006AC10 00031843 */ sra $v1, $v1, 1
/* 46014 8006AC14 D4800000 */ ldc1 $f0, 0x0($a0)
/* 46018 8006AC18 4620A502 */ mul.d $f20, $f20, $f0
.LIQUE_8006AC1C:
/* 4601C 8006AC1C 1C60FFFA */ bgtz $v1, .LIQUE_8006AC08
/* 46020 8006AC20 24840008 */ addiu $a0, $a0, 0x8
/* 46024 8006AC24 0801AB20 */ j .LIQUE_8006AC80
/* 46028 8006AC28 8E840024 */ lw $a0, 0x24($s4)
.LIQUE_8006AC2C:
/* 4602C 8006AC2C 18400013 */ blez $v0, .LIQUE_8006AC7C
/* 46030 8006AC30 2402FFFC */ addiu $v0, $zero, -0x4
/* 46034 8006AC34 00821024 */ and $v0, $a0, $v0
/* 46038 8006AC38 00021C00 */ sll $v1, $v0, 16
/* 4603C 8006AC3C 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* 46040 8006AC40 44811800 */ mtc1 $at, $f3
/* 46044 8006AC44 44801000 */ mtc1 $zero, $f2
/* 46048 8006AC48 00031C03 */ sra $v1, $v1, 16
/* 4604C 8006AC4C 1860000A */ blez $v1, .LIQUE_8006AC78
/* 46050 8006AC50 A7A20038 */ sh $v0, 0x38($sp)
/* 46054 8006AC54 3C04800A */ lui $a0, %hi(xldtob_pows)
/* 46058 8006AC58 248489A0 */ addiu $a0, $a0, %lo(xldtob_pows)
.LIQUE_8006AC5C:
/* 4605C 8006AC5C 30620001 */ andi $v0, $v1, 0x1
/* 46060 8006AC60 10400003 */ beqz $v0, .LIQUE_8006AC70
/* 46064 8006AC64 00031843 */ sra $v1, $v1, 1
/* 46068 8006AC68 D4800000 */ ldc1 $f0, 0x0($a0)
/* 4606C 8006AC6C 46201082 */ mul.d $f2, $f2, $f0
.LIQUE_8006AC70:
/* 46070 8006AC70 1C60FFFA */ bgtz $v1, .LIQUE_8006AC5C
/* 46074 8006AC74 24840008 */ addiu $a0, $a0, 0x8
.LIQUE_8006AC78:
/* 46078 8006AC78 4622A503 */ div.d $f20, $f20, $f2
.LIQUE_8006AC7C:
/* 4607C 8006AC7C 8E840024 */ lw $a0, 0x24($s4)
.LIQUE_8006AC80:
/* 46080 8006AC80 24020066 */ addiu $v0, $zero, 0x66
/* 46084 8006AC84 16620004 */ bne $s3, $v0, .LIQUE_8006AC98
/* 46088 8006AC88 24920006 */ addiu $s2, $a0, 0x6
/* 4608C 8006AC8C 87A30038 */ lh $v1, 0x38($sp)
/* 46090 8006AC90 2482000A */ addiu $v0, $a0, 0xA
/* 46094 8006AC94 00439021 */ addu $s2, $v0, $v1
.LIQUE_8006AC98:
/* 46098 8006AC98 2A420014 */ slti $v0, $s2, 0x14
/* 4609C 8006AC9C 50400001 */ beql $v0, $zero, .LIQUE_8006ACA4
/* 460A0 8006ACA0 24120013 */ addiu $s2, $zero, 0x13
.LIQUE_8006ACA4:
/* 460A4 8006ACA4 24020030 */ addiu $v0, $zero, 0x30
/* 460A8 8006ACA8 A2220000 */ sb $v0, 0x0($s1)
/* 460AC 8006ACAC 1A400028 */ blez $s2, .LIQUE_8006AD50
/* 460B0 8006ACB0 26310001 */ addiu $s1, $s1, 0x1
/* 460B4 8006ACB4 4480C000 */ mtc1 $zero, $f24
/* 460B8 8006ACB8 4480C800 */ mtc1 $zero, $f25
/* 460BC 8006ACBC 3C01800A */ lui $at, %hi(xldtob_800989f0)
/* 460C0 8006ACC0 D43689F0 */ ldc1 $f22, %lo(xldtob_800989f0)($at)
.LIQUE_8006ACC4:
/* 460C4 8006ACC4 4634C03C */ c.lt.d $f24, $f20
/* 460C8 8006ACC8 45000021 */ bc1f .LIQUE_8006AD50
/* 460CC 8006ACCC 2652FFF8 */ addiu $s2, $s2, -0x8
/* 460D0 8006ACD0 4620A10D */ trunc.w.d $f4, $f20
/* 460D4 8006ACD4 44052000 */ mfc1 $a1, $f4
/* 460D8 8006ACD8 1A400005 */ blez $s2, .LIQUE_8006ACF0
/* 460DC 8006ACDC 26310008 */ addiu $s1, $s1, 0x8
/* 460E0 8006ACE0 44850000 */ mtc1 $a1, $f0
/* 460E4 8006ACE4 46800021 */ cvt.d.w $f0, $f0
/* 460E8 8006ACE8 4620A001 */ sub.d $f0, $f20, $f0
/* 460EC 8006ACEC 46360502 */ mul.d $f20, $f0, $f22
.LIQUE_8006ACF0:
/* 460F0 8006ACF0 18A0000D */ blez $a1, .LIQUE_8006AD28
/* 460F4 8006ACF4 24100008 */ addiu $s0, $zero, 0x8
/* 460F8 8006ACF8 2610FFFF */ addiu $s0, $s0, -0x1
.LIQUE_8006ACFC:
/* 460FC 8006ACFC 0600000A */ bltz $s0, .LIQUE_8006AD28
/* 46100 8006AD00 27A40040 */ addiu $a0, $sp, 0x40
/* 46104 8006AD04 0C01B308 */ jal ldiv
/* 46108 8006AD08 2406000A */ addiu $a2, $zero, 0xA
/* 4610C 8006AD0C 93A20047 */ lbu $v0, 0x47($sp)
/* 46110 8006AD10 2631FFFF */ addiu $s1, $s1, -0x1
/* 46114 8006AD14 24420030 */ addiu $v0, $v0, 0x30
/* 46118 8006AD18 A2220000 */ sb $v0, 0x0($s1)
/* 4611C 8006AD1C 8FA50040 */ lw $a1, 0x40($sp)
/* 46120 8006AD20 5CA0FFF6 */ bgtzl $a1, .LIQUE_8006ACFC
/* 46124 8006AD24 2610FFFF */ addiu $s0, $s0, -0x1
.LIQUE_8006AD28:
/* 46128 8006AD28 2610FFFF */ addiu $s0, $s0, -0x1
/* 4612C 8006AD2C 06000006 */ bltz $s0, .LIQUE_8006AD48
/* 46130 8006AD30 00000000 */ nop
/* 46134 8006AD34 24020030 */ addiu $v0, $zero, 0x30
.LIQUE_8006AD38:
/* 46138 8006AD38 2631FFFF */ addiu $s1, $s1, -0x1
/* 4613C 8006AD3C 2610FFFF */ addiu $s0, $s0, -0x1
/* 46140 8006AD40 0601FFFD */ bgez $s0, .LIQUE_8006AD38
/* 46144 8006AD44 A2220000 */ sb $v0, 0x0($s1)
.LIQUE_8006AD48:
/* 46148 8006AD48 1E40FFDE */ bgtz $s2, .LIQUE_8006ACC4
/* 4614C 8006AD4C 26310008 */ addiu $s1, $s1, 0x8
.LIQUE_8006AD50:
/* 46150 8006AD50 2624FFFF */ addiu $a0, $s1, -0x1
/* 46154 8006AD54 27A30018 */ addiu $v1, $sp, 0x18
/* 46158 8006AD58 00839023 */ subu $s2, $a0, $v1
/* 4615C 8006AD5C 27B10019 */ addiu $s1, $sp, 0x19
/* 46160 8006AD60 24030030 */ addiu $v1, $zero, 0x30
/* 46164 8006AD64 97A20038 */ lhu $v0, 0x38($sp)
/* 46168 8006AD68 83A40019 */ lb $a0, 0x19($sp)
/* 4616C 8006AD6C 24420007 */ addiu $v0, $v0, 0x7
/* 46170 8006AD70 14830009 */ bne $a0, $v1, .LIQUE_8006AD98
/* 46174 8006AD74 A7A20038 */ sh $v0, 0x38($sp)
/* 46178 8006AD78 24040030 */ addiu $a0, $zero, 0x30
.LIQUE_8006AD7C:
/* 4617C 8006AD7C 97A20038 */ lhu $v0, 0x38($sp)
/* 46180 8006AD80 26310001 */ addiu $s1, $s1, 0x1
/* 46184 8006AD84 2442FFFF */ addiu $v0, $v0, -0x1
/* 46188 8006AD88 A7A20038 */ sh $v0, 0x38($sp)
/* 4618C 8006AD8C 82230000 */ lb $v1, 0x0($s1)
/* 46190 8006AD90 1064FFFA */ beq $v1, $a0, .LIQUE_8006AD7C
/* 46194 8006AD94 2652FFFF */ addiu $s2, $s2, -0x1
.LIQUE_8006AD98:
/* 46198 8006AD98 24020066 */ addiu $v0, $zero, 0x66
/* 4619C 8006AD9C 16620005 */ bne $s3, $v0, .LIQUE_8006ADB4
/* 461A0 8006ADA0 8E840024 */ lw $a0, 0x24($s4)
/* 461A4 8006ADA4 87A30038 */ lh $v1, 0x38($sp)
/* 461A8 8006ADA8 24820001 */ addiu $v0, $a0, 0x1
/* 461AC 8006ADAC 0801AB75 */ j .LIQUE_8006ADD4
/* 461B0 8006ADB0 00431021 */ addu $v0, $v0, $v1
.LIQUE_8006ADB4:
/* 461B4 8006ADB4 24020065 */ addiu $v0, $zero, 0x65
/* 461B8 8006ADB8 12620004 */ beq $s3, $v0, .LIQUE_8006ADCC
/* 461BC 8006ADBC 00001821 */ addu $v1, $zero, $zero
/* 461C0 8006ADC0 24020045 */ addiu $v0, $zero, 0x45
/* 461C4 8006ADC4 16620003 */ bne $s3, $v0, .LIQUE_8006ADD4
/* 461C8 8006ADC8 00641021 */ addu $v0, $v1, $a0
.LIQUE_8006ADCC:
/* 461CC 8006ADCC 24030001 */ addiu $v1, $zero, 0x1
/* 461D0 8006ADD0 00641021 */ addu $v0, $v1, $a0
.LIQUE_8006ADD4:
/* 461D4 8006ADD4 00021400 */ sll $v0, $v0, 16
/* 461D8 8006ADD8 00023C03 */ sra $a3, $v0, 16
/* 461DC 8006ADDC 0247102A */ slt $v0, $s2, $a3
/* 461E0 8006ADE0 10400002 */ beqz $v0, .LIQUE_8006ADEC
/* 461E4 8006ADE4 00121400 */ sll $v0, $s2, 16
/* 461E8 8006ADE8 00023C03 */ sra $a3, $v0, 16
.LIQUE_8006ADEC:
/* 461EC 8006ADEC 18E0002A */ blez $a3, .LIQUE_8006AE98
/* 461F0 8006ADF0 00F2102A */ slt $v0, $a3, $s2
/* 461F4 8006ADF4 10400007 */ beqz $v0, .LIQUE_8006AE14
/* 461F8 8006ADF8 02271821 */ addu $v1, $s1, $a3
/* 461FC 8006ADFC 80620000 */ lb $v0, 0x0($v1)
/* 46200 8006AE00 28420035 */ slti $v0, $v0, 0x35
/* 46204 8006AE04 14400004 */ bnez $v0, .LIQUE_8006AE18
/* 46208 8006AE08 24030030 */ addiu $v1, $zero, 0x30
/* 4620C 8006AE0C 0801AB86 */ j .LIQUE_8006AE18
/* 46210 8006AE10 24030039 */ addiu $v1, $zero, 0x39
.LIQUE_8006AE14:
/* 46214 8006AE14 24030030 */ addiu $v1, $zero, 0x30
.LIQUE_8006AE18:
/* 46218 8006AE18 24E6FFFF */ addiu $a2, $a3, -0x1
/* 4621C 8006AE1C 02262021 */ addu $a0, $s1, $a2
/* 46220 8006AE20 80820000 */ lb $v0, 0x0($a0)
/* 46224 8006AE24 00604021 */ addu $t0, $v1, $zero
/* 46228 8006AE28 1448000D */ bne $v0, $t0, .LIQUE_8006AE60
/* 4622C 8006AE2C 24020039 */ addiu $v0, $zero, 0x39
/* 46230 8006AE30 00071C00 */ sll $v1, $a3, 16
/* 46234 8006AE34 3C02FFFF */ lui $v0, (0xFFFF0000 >> 16)
/* 46238 8006AE38 00622821 */ addu $a1, $v1, $v0
/* 4623C 8006AE3C 3C09FFFF */ lui $t1, (0xFFFF0000 >> 16)
.LIQUE_8006AE40:
/* 46240 8006AE40 00A01821 */ addu $v1, $a1, $zero
/* 46244 8006AE44 00A92821 */ addu $a1, $a1, $t1
/* 46248 8006AE48 24C6FFFF */ addiu $a2, $a2, -0x1
/* 4624C 8006AE4C 02262021 */ addu $a0, $s1, $a2
/* 46250 8006AE50 80820000 */ lb $v0, 0x0($a0)
/* 46254 8006AE54 1048FFFA */ beq $v0, $t0, .LIQUE_8006AE40
/* 46258 8006AE58 00033C03 */ sra $a3, $v1, 16
/* 4625C 8006AE5C 24020039 */ addiu $v0, $zero, 0x39
.LIQUE_8006AE60:
/* 46260 8006AE60 15020004 */ bne $t0, $v0, .LIQUE_8006AE74
/* 46264 8006AE64 00000000 */ nop
/* 46268 8006AE68 90820000 */ lbu $v0, 0x0($a0)
/* 4626C 8006AE6C 24420001 */ addiu $v0, $v0, 0x1
/* 46270 8006AE70 A0820000 */ sb $v0, 0x0($a0)
.LIQUE_8006AE74:
/* 46274 8006AE74 04C10009 */ bgez $a2, .LIQUE_8006AE9C
/* 46278 8006AE78 02802021 */ addu $a0, $s4, $zero
/* 4627C 8006AE7C 2631FFFF */ addiu $s1, $s1, -0x1
/* 46280 8006AE80 24E20001 */ addiu $v0, $a3, 0x1
/* 46284 8006AE84 00021400 */ sll $v0, $v0, 16
/* 46288 8006AE88 97A30038 */ lhu $v1, 0x38($sp)
/* 4628C 8006AE8C 00023C03 */ sra $a3, $v0, 16
/* 46290 8006AE90 24630001 */ addiu $v1, $v1, 0x1
/* 46294 8006AE94 A7A30038 */ sh $v1, 0x38($sp)
.LIQUE_8006AE98:
/* 46298 8006AE98 02802021 */ addu $a0, $s4, $zero
.LIQUE_8006AE9C:
/* 4629C 8006AE9C 02602821 */ addu $a1, $s3, $zero
/* 462A0 8006AEA0 87A20038 */ lh $v0, 0x38($sp)
/* 462A4 8006AEA4 02203021 */ addu $a2, $s1, $zero
/* 462A8 8006AEA8 0C01ABDE */ jal _Genld
/* 462AC 8006AEAC AFA20010 */ sw $v0, 0x10($sp)
.LIQUE_8006AEB0:
/* 462B0 8006AEB0 8FBF005C */ lw $ra, 0x5C($sp)
/* 462B4 8006AEB4 8FB40058 */ lw $s4, 0x58($sp)
/* 462B8 8006AEB8 8FB30054 */ lw $s3, 0x54($sp)
/* 462BC 8006AEBC 8FB20050 */ lw $s2, 0x50($sp)
/* 462C0 8006AEC0 8FB1004C */ lw $s1, 0x4C($sp)
/* 462C4 8006AEC4 8FB00048 */ lw $s0, 0x48($sp)
/* 462C8 8006AEC8 D7B80070 */ ldc1 $f24, 0x70($sp)
/* 462CC 8006AECC D7B60068 */ ldc1 $f22, 0x68($sp)
/* 462D0 8006AED0 D7B40060 */ ldc1 $f20, 0x60($sp)
/* 462D4 8006AED4 03E00008 */ jr $ra
/* 462D8 8006AED8 27BD0078 */ addiu $sp, $sp, 0x78
glabel _Ldunscale
/* 462DC 8006AEDC 94A60000 */ lhu $a2, 0x0($a1)
/* 462E0 8006AEE0 00803821 */ addu $a3, $a0, $zero
/* 462E4 8006AEE4 240307FF */ addiu $v1, $zero, 0x7FF
/* 462E8 8006AEE8 30C27FF0 */ andi $v0, $a2, 0x7FF0
/* 462EC 8006AEEC 00022102 */ srl $a0, $v0, 4
/* 462F0 8006AEF0 14830013 */ bne $a0, $v1, .LIQUE_8006AF40
/* 462F4 8006AEF4 00801021 */ addu $v0, $a0, $zero
/* 462F8 8006AEF8 A4E00000 */ sh $zero, 0x0($a3)
/* 462FC 8006AEFC 94A20000 */ lhu $v0, 0x0($a1)
/* 46300 8006AF00 3042000F */ andi $v0, $v0, 0xF
/* 46304 8006AF04 1440000A */ bnez $v0, .LIQUE_8006AF30
/* 46308 8006AF08 00000000 */ nop
/* 4630C 8006AF0C 94A20002 */ lhu $v0, 0x2($a1)
/* 46310 8006AF10 14400007 */ bnez $v0, .LIQUE_8006AF30
/* 46314 8006AF14 00000000 */ nop
/* 46318 8006AF18 94A20004 */ lhu $v0, 0x4($a1)
/* 4631C 8006AF1C 14400004 */ bnez $v0, .LIQUE_8006AF30
/* 46320 8006AF20 00000000 */ nop
/* 46324 8006AF24 94A20006 */ lhu $v0, 0x6($a1)
/* 46328 8006AF28 10400003 */ beqz $v0, .LIQUE_8006AF38
/* 4632C 8006AF2C 00000000 */ nop
.LIQUE_8006AF30:
/* 46330 8006AF30 03E00008 */ jr $ra
/* 46334 8006AF34 24020002 */ addiu $v0, $zero, 0x2
.LIQUE_8006AF38:
/* 46338 8006AF38 03E00008 */ jr $ra
/* 4633C 8006AF3C 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_8006AF40:
/* 46340 8006AF40 18800007 */ blez $a0, .LIQUE_8006AF60
/* 46344 8006AF44 30C3800F */ andi $v1, $a2, 0x800F
/* 46348 8006AF48 2402FFFF */ addiu $v0, $zero, -0x1
/* 4634C 8006AF4C 34633FF0 */ ori $v1, $v1, 0x3FF0
/* 46350 8006AF50 2484FC02 */ addiu $a0, $a0, -0x3FE
/* 46354 8006AF54 A4A30000 */ sh $v1, 0x0($a1)
/* 46358 8006AF58 03E00008 */ jr $ra
/* 4635C 8006AF5C A4E40000 */ sh $a0, 0x0($a3)
.LIQUE_8006AF60:
/* 46360 8006AF60 04400003 */ bltz $v0, .LIQUE_8006AF70
/* 46364 8006AF64 00001021 */ addu $v0, $zero, $zero
/* 46368 8006AF68 03E00008 */ jr $ra
/* 4636C 8006AF6C A4E00000 */ sh $zero, 0x0($a3)
.LIQUE_8006AF70:
/* 46370 8006AF70 03E00008 */ jr $ra
/* 46374 8006AF74 24020002 */ addiu $v0, $zero, 0x2
glabel _Genld
/* 46378 8006AF78 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 4637C 8006AF7C AFB3001C */ sw $s3, 0x1C($sp)
/* 46380 8006AF80 00C09821 */ addu $s3, $a2, $zero
/* 46384 8006AF84 00052E00 */ sll $a1, $a1, 24
/* 46388 8006AF88 AFB40020 */ sw $s4, 0x20($sp)
/* 4638C 8006AF8C 0005A603 */ sra $s4, $a1, 24
/* 46390 8006AF90 AFB20018 */ sw $s2, 0x18($sp)
/* 46394 8006AF94 87B2003A */ lh $s2, 0x3A($sp)
/* 46398 8006AF98 00073C00 */ sll $a3, $a3, 16
/* 4639C 8006AF9C AFB00010 */ sw $s0, 0x10($sp)
/* 463A0 8006AFA0 00078403 */ sra $s0, $a3, 16
/* 463A4 8006AFA4 AFB10014 */ sw $s1, 0x14($sp)
/* 463A8 8006AFA8 00808821 */ addu $s1, $a0, $zero
/* 463AC 8006AFAC 1E000004 */ bgtz $s0, .LIQUE_8006AFC0
/* 463B0 8006AFB0 AFBF0024 */ sw $ra, 0x24($sp)
/* 463B4 8006AFB4 24100001 */ addiu $s0, $zero, 0x1
/* 463B8 8006AFB8 3C13800A */ lui $s3, %hi(D_IQUE_800989F8)
/* 463BC 8006AFBC 267389F8 */ addiu $s3, $s3, %lo(D_IQUE_800989F8)
.LIQUE_8006AFC0:
/* 463C0 8006AFC0 24020066 */ addiu $v0, $zero, 0x66
/* 463C4 8006AFC4 1282000C */ beq $s4, $v0, .LIQUE_8006AFF8
/* 463C8 8006AFC8 24020067 */ addiu $v0, $zero, 0x67
/* 463CC 8006AFCC 12820003 */ beq $s4, $v0, .LIQUE_8006AFDC
/* 463D0 8006AFD0 24020047 */ addiu $v0, $zero, 0x47
/* 463D4 8006AFD4 1682008E */ bne $s4, $v0, .LIQUE_8006B210
/* 463D8 8006AFD8 24030067 */ addiu $v1, $zero, 0x67
.LIQUE_8006AFDC:
/* 463DC 8006AFDC 2A42FFFC */ slti $v0, $s2, -0x4
/* 463E0 8006AFE0 1440008B */ bnez $v0, .LIQUE_8006B210
/* 463E4 8006AFE4 24030067 */ addiu $v1, $zero, 0x67
/* 463E8 8006AFE8 8E250024 */ lw $a1, 0x24($s1)
/* 463EC 8006AFEC 0245102A */ slt $v0, $s2, $a1
/* 463F0 8006AFF0 10400087 */ beqz $v0, .LIQUE_8006B210
/* 463F4 8006AFF4 00000000 */ nop
.LIQUE_8006AFF8:
/* 463F8 8006AFF8 26420001 */ addiu $v0, $s2, 0x1
/* 463FC 8006AFFC 00021400 */ sll $v0, $v0, 16
/* 46400 8006B000 24030066 */ addiu $v1, $zero, 0x66
/* 46404 8006B004 1283000E */ beq $s4, $v1, .LIQUE_8006B040
/* 46408 8006B008 00029403 */ sra $s2, $v0, 16
/* 4640C 8006B00C 8E220030 */ lw $v0, 0x30($s1)
/* 46410 8006B010 30420008 */ andi $v0, $v0, 0x8
/* 46414 8006B014 14400006 */ bnez $v0, .LIQUE_8006B030
/* 46418 8006B018 8E250024 */ lw $a1, 0x24($s1)
/* 4641C 8006B01C 0205102A */ slt $v0, $s0, $a1
/* 46420 8006B020 10400004 */ beqz $v0, .LIQUE_8006B034
/* 46424 8006B024 00B21023 */ subu $v0, $a1, $s2
/* 46428 8006B028 AE300024 */ sw $s0, 0x24($s1)
/* 4642C 8006B02C 02002821 */ addu $a1, $s0, $zero
.LIQUE_8006B030:
/* 46430 8006B030 00B21023 */ subu $v0, $a1, $s2
.LIQUE_8006B034:
/* 46434 8006B034 04410002 */ bgez $v0, .LIQUE_8006B040
/* 46438 8006B038 AE220024 */ sw $v0, 0x24($s1)
/* 4643C 8006B03C AE200024 */ sw $zero, 0x24($s1)
.LIQUE_8006B040:
/* 46440 8006B040 1E40002F */ bgtz $s2, .LIQUE_8006B100
/* 46444 8006B044 0212102A */ slt $v0, $s0, $s2
/* 46448 8006B048 8E240014 */ lw $a0, 0x14($s1)
/* 4644C 8006B04C 8E220008 */ lw $v0, 0x8($s1)
/* 46450 8006B050 24030030 */ addiu $v1, $zero, 0x30
/* 46454 8006B054 00441021 */ addu $v0, $v0, $a0
/* 46458 8006B058 A0430000 */ sb $v1, 0x0($v0)
/* 4645C 8006B05C 8E250024 */ lw $a1, 0x24($s1)
/* 46460 8006B060 24840001 */ addiu $a0, $a0, 0x1
/* 46464 8006B064 1CA00005 */ bgtz $a1, .LIQUE_8006B07C
/* 46468 8006B068 AE240014 */ sw $a0, 0x14($s1)
/* 4646C 8006B06C 8E220030 */ lw $v0, 0x30($s1)
/* 46470 8006B070 30420008 */ andi $v0, $v0, 0x8
/* 46474 8006B074 10400009 */ beqz $v0, .LIQUE_8006B09C
/* 46478 8006B078 00121823 */ negu $v1, $s2
.LIQUE_8006B07C:
/* 4647C 8006B07C 8E220008 */ lw $v0, 0x8($s1)
/* 46480 8006B080 2403002E */ addiu $v1, $zero, 0x2E
/* 46484 8006B084 00441021 */ addu $v0, $v0, $a0
/* 46488 8006B088 A0430000 */ sb $v1, 0x0($v0)
/* 4648C 8006B08C 8E250024 */ lw $a1, 0x24($s1)
/* 46490 8006B090 24840001 */ addiu $a0, $a0, 0x1
/* 46494 8006B094 AE240014 */ sw $a0, 0x14($s1)
/* 46498 8006B098 00121823 */ negu $v1, $s2
.LIQUE_8006B09C:
/* 4649C 8006B09C 00A3102A */ slt $v0, $a1, $v1
/* 464A0 8006B0A0 10400007 */ beqz $v0, .LIQUE_8006B0C0
/* 464A4 8006B0A4 00B21021 */ addu $v0, $a1, $s2
/* 464A8 8006B0A8 96220026 */ lhu $v0, 0x26($s1)
/* 464AC 8006B0AC 00021023 */ negu $v0, $v0
/* 464B0 8006B0B0 00021400 */ sll $v0, $v0, 16
/* 464B4 8006B0B4 00029403 */ sra $s2, $v0, 16
/* 464B8 8006B0B8 00121823 */ negu $v1, $s2
/* 464BC 8006B0BC 00B21021 */ addu $v0, $a1, $s2
.LIQUE_8006B0C0:
/* 464C0 8006B0C0 AE220024 */ sw $v0, 0x24($s1)
/* 464C4 8006B0C4 0050102A */ slt $v0, $v0, $s0
/* 464C8 8006B0C8 10400002 */ beqz $v0, .LIQUE_8006B0D4
/* 464CC 8006B0CC AE230018 */ sw $v1, 0x18($s1)
/* 464D0 8006B0D0 86300026 */ lh $s0, 0x26($s1)
.LIQUE_8006B0D4:
/* 464D4 8006B0D4 02602821 */ addu $a1, $s3, $zero
/* 464D8 8006B0D8 8E230008 */ lw $v1, 0x8($s1)
/* 464DC 8006B0DC 8E240014 */ lw $a0, 0x14($s1)
/* 464E0 8006B0E0 02003021 */ addu $a2, $s0, $zero
/* 464E4 8006B0E4 AE30001C */ sw $s0, 0x1C($s1)
/* 464E8 8006B0E8 0C018B09 */ jal memcpy
/* 464EC 8006B0EC 00642021 */ addu $a0, $v1, $a0
/* 464F0 8006B0F0 8E220024 */ lw $v0, 0x24($s1)
/* 464F4 8006B0F4 00501023 */ subu $v0, $v0, $s0
/* 464F8 8006B0F8 0801AD10 */ j .LIQUE_8006B440
/* 464FC 8006B0FC AE220020 */ sw $v0, 0x20($s1)
.LIQUE_8006B100:
/* 46500 8006B100 1040001B */ beqz $v0, .LIQUE_8006B170
/* 46504 8006B104 02602821 */ addu $a1, $s3, $zero
/* 46508 8006B108 8E220008 */ lw $v0, 0x8($s1)
/* 4650C 8006B10C 8E240014 */ lw $a0, 0x14($s1)
/* 46510 8006B110 02003021 */ addu $a2, $s0, $zero
/* 46514 8006B114 0C018B09 */ jal memcpy
/* 46518 8006B118 00442021 */ addu $a0, $v0, $a0
/* 4651C 8006B11C 8E250024 */ lw $a1, 0x24($s1)
/* 46520 8006B120 8E230014 */ lw $v1, 0x14($s1)
/* 46524 8006B124 02501023 */ subu $v0, $s2, $s0
/* 46528 8006B128 AE220018 */ sw $v0, 0x18($s1)
/* 4652C 8006B12C 00701821 */ addu $v1, $v1, $s0
/* 46530 8006B130 1CA00005 */ bgtz $a1, .LIQUE_8006B148
/* 46534 8006B134 AE230014 */ sw $v1, 0x14($s1)
/* 46538 8006B138 8E220030 */ lw $v0, 0x30($s1)
/* 4653C 8006B13C 30420008 */ andi $v0, $v0, 0x8
/* 46540 8006B140 504000BF */ beql $v0, $zero, .LIQUE_8006B440
/* 46544 8006B144 AE250020 */ sw $a1, 0x20($s1)
.LIQUE_8006B148:
/* 46548 8006B148 8E220008 */ lw $v0, 0x8($s1)
/* 4654C 8006B14C 2404002E */ addiu $a0, $zero, 0x2E
/* 46550 8006B150 00431021 */ addu $v0, $v0, $v1
/* 46554 8006B154 A0440000 */ sb $a0, 0x0($v0)
/* 46558 8006B158 8E23001C */ lw $v1, 0x1C($s1)
/* 4655C 8006B15C 8E250024 */ lw $a1, 0x24($s1)
/* 46560 8006B160 24630001 */ addiu $v1, $v1, 0x1
/* 46564 8006B164 AE23001C */ sw $v1, 0x1C($s1)
/* 46568 8006B168 0801AD10 */ j .LIQUE_8006B440
/* 4656C 8006B16C AE250020 */ sw $a1, 0x20($s1)
.LIQUE_8006B170:
/* 46570 8006B170 8E230008 */ lw $v1, 0x8($s1)
/* 46574 8006B174 8E240014 */ lw $a0, 0x14($s1)
/* 46578 8006B178 02403021 */ addu $a2, $s2, $zero
/* 4657C 8006B17C 0C018B09 */ jal memcpy
/* 46580 8006B180 00642021 */ addu $a0, $v1, $a0
/* 46584 8006B184 02121023 */ subu $v0, $s0, $s2
/* 46588 8006B188 00021400 */ sll $v0, $v0, 16
/* 4658C 8006B18C 00028403 */ sra $s0, $v0, 16
/* 46590 8006B190 8E230014 */ lw $v1, 0x14($s1)
/* 46594 8006B194 8E250024 */ lw $a1, 0x24($s1)
/* 46598 8006B198 00722021 */ addu $a0, $v1, $s2
/* 4659C 8006B19C 1CA00005 */ bgtz $a1, .LIQUE_8006B1B4
/* 465A0 8006B1A0 AE240014 */ sw $a0, 0x14($s1)
/* 465A4 8006B1A4 8E220030 */ lw $v0, 0x30($s1)
/* 465A8 8006B1A8 30420008 */ andi $v0, $v0, 0x8
/* 465AC 8006B1AC 10400009 */ beqz $v0, .LIQUE_8006B1D4
/* 465B0 8006B1B0 00B0102A */ slt $v0, $a1, $s0
.LIQUE_8006B1B4:
/* 465B4 8006B1B4 8E220008 */ lw $v0, 0x8($s1)
/* 465B8 8006B1B8 2403002E */ addiu $v1, $zero, 0x2E
/* 465BC 8006B1BC 00441021 */ addu $v0, $v0, $a0
/* 465C0 8006B1C0 A0430000 */ sb $v1, 0x0($v0)
/* 465C4 8006B1C4 8E250024 */ lw $a1, 0x24($s1)
/* 465C8 8006B1C8 24840001 */ addiu $a0, $a0, 0x1
/* 465CC 8006B1CC AE240014 */ sw $a0, 0x14($s1)
/* 465D0 8006B1D0 00B0102A */ slt $v0, $a1, $s0
.LIQUE_8006B1D4:
/* 465D4 8006B1D4 54400001 */ bnel $v0, $zero, .LIQUE_8006B1DC
/* 465D8 8006B1D8 86300026 */ lh $s0, 0x26($s1)
.LIQUE_8006B1DC:
/* 465DC 8006B1DC 02722821 */ addu $a1, $s3, $s2
/* 465E0 8006B1E0 8E230008 */ lw $v1, 0x8($s1)
/* 465E4 8006B1E4 8E240014 */ lw $a0, 0x14($s1)
/* 465E8 8006B1E8 02003021 */ addu $a2, $s0, $zero
/* 465EC 8006B1EC 0C018B09 */ jal memcpy
/* 465F0 8006B1F0 00642021 */ addu $a0, $v1, $a0
/* 465F4 8006B1F4 8E220014 */ lw $v0, 0x14($s1)
/* 465F8 8006B1F8 8E230024 */ lw $v1, 0x24($s1)
/* 465FC 8006B1FC 00501021 */ addu $v0, $v0, $s0
/* 46600 8006B200 00701823 */ subu $v1, $v1, $s0
/* 46604 8006B204 AE220014 */ sw $v0, 0x14($s1)
/* 46608 8006B208 0801AD10 */ j .LIQUE_8006B440
/* 4660C 8006B20C AE230018 */ sw $v1, 0x18($s1)
.LIQUE_8006B210:
/* 46610 8006B210 12830003 */ beq $s4, $v1, .LIQUE_8006B220
/* 46614 8006B214 24020047 */ addiu $v0, $zero, 0x47
/* 46618 8006B218 56820010 */ bnel $s4, $v0, .LIQUE_8006B25C
/* 4661C 8006B21C 8E240014 */ lw $a0, 0x14($s1)
.LIQUE_8006B220:
/* 46620 8006B220 8E250024 */ lw $a1, 0x24($s1)
/* 46624 8006B224 0205102A */ slt $v0, $s0, $a1
/* 46628 8006B228 10400004 */ beqz $v0, .LIQUE_8006B23C
/* 4662C 8006B22C 24A2FFFF */ addiu $v0, $a1, -0x1
/* 46630 8006B230 AE300024 */ sw $s0, 0x24($s1)
/* 46634 8006B234 02002821 */ addu $a1, $s0, $zero
/* 46638 8006B238 24A2FFFF */ addiu $v0, $a1, -0x1
.LIQUE_8006B23C:
/* 4663C 8006B23C 04410002 */ bgez $v0, .LIQUE_8006B248
/* 46640 8006B240 AE220024 */ sw $v0, 0x24($s1)
/* 46644 8006B244 AE200024 */ sw $zero, 0x24($s1)
.LIQUE_8006B248:
/* 46648 8006B248 16830002 */ bne $s4, $v1, .LIQUE_8006B254
/* 4664C 8006B24C 24050045 */ addiu $a1, $zero, 0x45
/* 46650 8006B250 24050065 */ addiu $a1, $zero, 0x65
.LIQUE_8006B254:
/* 46654 8006B254 00A0A021 */ addu $s4, $a1, $zero
/* 46658 8006B258 8E240014 */ lw $a0, 0x14($s1)
.LIQUE_8006B25C:
/* 4665C 8006B25C 8E220008 */ lw $v0, 0x8($s1)
/* 46660 8006B260 92630000 */ lbu $v1, 0x0($s3)
/* 46664 8006B264 26730001 */ addiu $s3, $s3, 0x1
/* 46668 8006B268 00441021 */ addu $v0, $v0, $a0
/* 4666C 8006B26C A0430000 */ sb $v1, 0x0($v0)
/* 46670 8006B270 8E250024 */ lw $a1, 0x24($s1)
/* 46674 8006B274 24840001 */ addiu $a0, $a0, 0x1
/* 46678 8006B278 1CA00005 */ bgtz $a1, .LIQUE_8006B290
/* 4667C 8006B27C AE240014 */ sw $a0, 0x14($s1)
/* 46680 8006B280 8E220030 */ lw $v0, 0x30($s1)
/* 46684 8006B284 30420008 */ andi $v0, $v0, 0x8
/* 46688 8006B288 10400008 */ beqz $v0, .LIQUE_8006B2AC
/* 4668C 8006B28C 00000000 */ nop
.LIQUE_8006B290:
/* 46690 8006B290 8E220008 */ lw $v0, 0x8($s1)
/* 46694 8006B294 2403002E */ addiu $v1, $zero, 0x2E
/* 46698 8006B298 00441021 */ addu $v0, $v0, $a0
/* 4669C 8006B29C A0430000 */ sb $v1, 0x0($v0)
/* 466A0 8006B2A0 8E250024 */ lw $a1, 0x24($s1)
/* 466A4 8006B2A4 24840001 */ addiu $a0, $a0, 0x1
/* 466A8 8006B2A8 AE240014 */ sw $a0, 0x14($s1)
.LIQUE_8006B2AC:
/* 466AC 8006B2AC 18A00012 */ blez $a1, .LIQUE_8006B2F8
/* 466B0 8006B2B0 2602FFFF */ addiu $v0, $s0, -0x1
/* 466B4 8006B2B4 00021400 */ sll $v0, $v0, 16
/* 466B8 8006B2B8 00028403 */ sra $s0, $v0, 16
/* 466BC 8006B2BC 00B0182A */ slt $v1, $a1, $s0
/* 466C0 8006B2C0 54600001 */ bnel $v1, $zero, .LIQUE_8006B2C8
/* 466C4 8006B2C4 86300026 */ lh $s0, 0x26($s1)
.LIQUE_8006B2C8:
/* 466C8 8006B2C8 02602821 */ addu $a1, $s3, $zero
/* 466CC 8006B2CC 8E230008 */ lw $v1, 0x8($s1)
/* 466D0 8006B2D0 8E240014 */ lw $a0, 0x14($s1)
/* 466D4 8006B2D4 02003021 */ addu $a2, $s0, $zero
/* 466D8 8006B2D8 0C018B09 */ jal memcpy
/* 466DC 8006B2DC 00642021 */ addu $a0, $v1, $a0
/* 466E0 8006B2E0 8E220014 */ lw $v0, 0x14($s1)
/* 466E4 8006B2E4 8E230024 */ lw $v1, 0x24($s1)
/* 466E8 8006B2E8 00501021 */ addu $v0, $v0, $s0
/* 466EC 8006B2EC 00701823 */ subu $v1, $v1, $s0
/* 466F0 8006B2F0 AE220014 */ sw $v0, 0x14($s1)
/* 466F4 8006B2F4 AE230018 */ sw $v1, 0x18($s1)
.LIQUE_8006B2F8:
/* 466F8 8006B2F8 8E230008 */ lw $v1, 0x8($s1)
/* 466FC 8006B2FC 8E220014 */ lw $v0, 0x14($s1)
/* 46700 8006B300 00629821 */ addu $s3, $v1, $v0
/* 46704 8006B304 A2740000 */ sb $s4, 0x0($s3)
/* 46708 8006B308 06400005 */ bltz $s2, .LIQUE_8006B320
/* 4670C 8006B30C 26730001 */ addiu $s3, $s3, 0x1
/* 46710 8006B310 2402002B */ addiu $v0, $zero, 0x2B
/* 46714 8006B314 A2620000 */ sb $v0, 0x0($s3)
/* 46718 8006B318 0801ACCE */ j .LIQUE_8006B338
/* 4671C 8006B31C 26730001 */ addiu $s3, $s3, 0x1
.LIQUE_8006B320:
/* 46720 8006B320 2403002D */ addiu $v1, $zero, 0x2D
/* 46724 8006B324 A2630000 */ sb $v1, 0x0($s3)
/* 46728 8006B328 26730001 */ addiu $s3, $s3, 0x1
/* 4672C 8006B32C 00121023 */ negu $v0, $s2
/* 46730 8006B330 00021400 */ sll $v0, $v0, 16
/* 46734 8006B334 00029403 */ sra $s2, $v0, 16
.LIQUE_8006B338:
/* 46738 8006B338 2A420064 */ slti $v0, $s2, 0x64
/* 4673C 8006B33C 14400029 */ bnez $v0, .LIQUE_8006B3E4
/* 46740 8006B340 3C036666 */ lui $v1, (0x66666667 >> 16)
/* 46744 8006B344 2A4203E8 */ slti $v0, $s2, 0x3E8
/* 46748 8006B348 14400014 */ bnez $v0, .LIQUE_8006B39C
/* 4674C 8006B34C 3C0351EB */ lui $v1, (0x51EB851F >> 16)
/* 46750 8006B350 3C031062 */ lui $v1, (0x10624DD3 >> 16)
/* 46754 8006B354 34634DD3 */ ori $v1, $v1, (0x10624DD3 & 0xFFFF)
/* 46758 8006B358 02430018 */ mult $s2, $v1
/* 4675C 8006B35C 001217C3 */ sra $v0, $s2, 31
/* 46760 8006B360 00001810 */ mfhi $v1
/* 46764 8006B364 00031983 */ sra $v1, $v1, 6
/* 46768 8006B368 00621823 */ subu $v1, $v1, $v0
/* 4676C 8006B36C 24640030 */ addiu $a0, $v1, 0x30
/* 46770 8006B370 A2640000 */ sb $a0, 0x0($s3)
/* 46774 8006B374 26730001 */ addiu $s3, $s3, 0x1
/* 46778 8006B378 00031140 */ sll $v0, $v1, 5
/* 4677C 8006B37C 00431023 */ subu $v0, $v0, $v1
/* 46780 8006B380 00021080 */ sll $v0, $v0, 2
/* 46784 8006B384 00431021 */ addu $v0, $v0, $v1
/* 46788 8006B388 000210C0 */ sll $v0, $v0, 3
/* 4678C 8006B38C 02421023 */ subu $v0, $s2, $v0
/* 46790 8006B390 00021400 */ sll $v0, $v0, 16
/* 46794 8006B394 00029403 */ sra $s2, $v0, 16
/* 46798 8006B398 3C0351EB */ lui $v1, (0x51EB851F >> 16)
.LIQUE_8006B39C:
/* 4679C 8006B39C 3463851F */ ori $v1, $v1, (0x51EB851F & 0xFFFF)
/* 467A0 8006B3A0 02430018 */ mult $s2, $v1
/* 467A4 8006B3A4 001217C3 */ sra $v0, $s2, 31
/* 467A8 8006B3A8 00001810 */ mfhi $v1
/* 467AC 8006B3AC 00031943 */ sra $v1, $v1, 5
/* 467B0 8006B3B0 00621823 */ subu $v1, $v1, $v0
/* 467B4 8006B3B4 24640030 */ addiu $a0, $v1, 0x30
/* 467B8 8006B3B8 A2640000 */ sb $a0, 0x0($s3)
/* 467BC 8006B3BC 26730001 */ addiu $s3, $s3, 0x1
/* 467C0 8006B3C0 00031040 */ sll $v0, $v1, 1
/* 467C4 8006B3C4 00431021 */ addu $v0, $v0, $v1
/* 467C8 8006B3C8 000210C0 */ sll $v0, $v0, 3
/* 467CC 8006B3CC 00431021 */ addu $v0, $v0, $v1
/* 467D0 8006B3D0 00021080 */ sll $v0, $v0, 2
/* 467D4 8006B3D4 02421023 */ subu $v0, $s2, $v0
/* 467D8 8006B3D8 00021400 */ sll $v0, $v0, 16
/* 467DC 8006B3DC 00029403 */ sra $s2, $v0, 16
/* 467E0 8006B3E0 3C036666 */ lui $v1, (0x66666667 >> 16)
.LIQUE_8006B3E4:
/* 467E4 8006B3E4 34636667 */ ori $v1, $v1, (0x66666667 & 0xFFFF)
/* 467E8 8006B3E8 02430018 */ mult $s2, $v1
/* 467EC 8006B3EC 001217C3 */ sra $v0, $s2, 31
/* 467F0 8006B3F0 00001810 */ mfhi $v1
/* 467F4 8006B3F4 00031883 */ sra $v1, $v1, 2
/* 467F8 8006B3F8 00621823 */ subu $v1, $v1, $v0
/* 467FC 8006B3FC 24640030 */ addiu $a0, $v1, 0x30
/* 46800 8006B400 A2640000 */ sb $a0, 0x0($s3)
/* 46804 8006B404 26730001 */ addiu $s3, $s3, 0x1
/* 46808 8006B408 00031080 */ sll $v0, $v1, 2
/* 4680C 8006B40C 00431021 */ addu $v0, $v0, $v1
/* 46810 8006B410 00021040 */ sll $v0, $v0, 1
/* 46814 8006B414 02421023 */ subu $v0, $s2, $v0
/* 46818 8006B418 00021400 */ sll $v0, $v0, 16
/* 4681C 8006B41C 00029403 */ sra $s2, $v0, 16
/* 46820 8006B420 26430030 */ addiu $v1, $s2, 0x30
/* 46824 8006B424 A2630000 */ sb $v1, 0x0($s3)
/* 46828 8006B428 8E220008 */ lw $v0, 0x8($s1)
/* 4682C 8006B42C 8E240014 */ lw $a0, 0x14($s1)
/* 46830 8006B430 26730001 */ addiu $s3, $s3, 0x1
/* 46834 8006B434 00441021 */ addu $v0, $v0, $a0
/* 46838 8006B438 02621023 */ subu $v0, $s3, $v0
/* 4683C 8006B43C AE22001C */ sw $v0, 0x1C($s1)
.LIQUE_8006B440:
/* 46840 8006B440 8E220030 */ lw $v0, 0x30($s1)
/* 46844 8006B444 24030010 */ addiu $v1, $zero, 0x10
/* 46848 8006B448 30420014 */ andi $v0, $v0, 0x14
/* 4684C 8006B44C 14430010 */ bne $v0, $v1, .LIQUE_8006B490
/* 46850 8006B450 8FBF0024 */ lw $ra, 0x24($sp)
/* 46854 8006B454 8E22000C */ lw $v0, 0xC($s1)
/* 46858 8006B458 8E230014 */ lw $v1, 0x14($s1)
/* 4685C 8006B45C 8E240018 */ lw $a0, 0x18($s1)
/* 46860 8006B460 8E25001C */ lw $a1, 0x1C($s1)
/* 46864 8006B464 8E260020 */ lw $a2, 0x20($s1)
/* 46868 8006B468 00431021 */ addu $v0, $v0, $v1
/* 4686C 8006B46C 00441021 */ addu $v0, $v0, $a0
/* 46870 8006B470 00451021 */ addu $v0, $v0, $a1
/* 46874 8006B474 8E240028 */ lw $a0, 0x28($s1)
/* 46878 8006B478 00461021 */ addu $v0, $v0, $a2
/* 4687C 8006B47C 0044182A */ slt $v1, $v0, $a0
/* 46880 8006B480 10600003 */ beqz $v1, .LIQUE_8006B490
/* 46884 8006B484 00821023 */ subu $v0, $a0, $v0
/* 46888 8006B488 AE220010 */ sw $v0, 0x10($s1)
/* 4688C 8006B48C 8FBF0024 */ lw $ra, 0x24($sp)
.LIQUE_8006B490:
/* 46890 8006B490 8FB40020 */ lw $s4, 0x20($sp)
/* 46894 8006B494 8FB3001C */ lw $s3, 0x1C($sp)
/* 46898 8006B498 8FB20018 */ lw $s2, 0x18($sp)
/* 4689C 8006B49C 8FB10014 */ lw $s1, 0x14($sp)
/* 468A0 8006B4A0 8FB00010 */ lw $s0, 0x10($sp)
/* 468A4 8006B4A4 03E00008 */ jr $ra
/* 468A8 8006B4A8 27BD0028 */ addiu $sp, $sp, 0x28
/* 468AC 8006B4AC 00000000 */ nop

View File

@ -0,0 +1,168 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel _Litob
/* 45C80 8006A880 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 45C84 8006A884 AFB3004C */ sw $s3, 0x4C($sp)
/* 45C88 8006A888 00809821 */ addu $s3, $a0, $zero
/* 45C8C 8006A88C 00052E00 */ sll $a1, $a1, 24
/* 45C90 8006A890 00052E03 */ sra $a1, $a1, 24
/* 45C94 8006A894 24020058 */ addiu $v0, $zero, 0x58
/* 45C98 8006A898 AFBF005C */ sw $ra, 0x5C($sp)
/* 45C9C 8006A89C AFB60058 */ sw $s6, 0x58($sp)
/* 45CA0 8006A8A0 AFB50054 */ sw $s5, 0x54($sp)
/* 45CA4 8006A8A4 AFB40050 */ sw $s4, 0x50($sp)
/* 45CA8 8006A8A8 AFB20048 */ sw $s2, 0x48($sp)
/* 45CAC 8006A8AC AFB10044 */ sw $s1, 0x44($sp)
/* 45CB0 8006A8B0 14A20005 */ bne $a1, $v0, .LIQUE_8006A8C8
/* 45CB4 8006A8B4 AFB00040 */ sw $s0, 0x40($sp)
/* 45CB8 8006A8B8 3C168009 */ lui $s6, %hi(xlitob_udigs)
/* 45CBC 8006A8BC 26D645D4 */ addiu $s6, $s6, %lo(xlitob_udigs)
/* 45CC0 8006A8C0 0801AA35 */ j .LIQUE_8006A8D4
/* 45CC4 8006A8C4 2402006F */ addiu $v0, $zero, 0x6F
.LIQUE_8006A8C8:
/* 45CC8 8006A8C8 3C168009 */ lui $s6, %hi(xlitob_ldigs)
/* 45CCC 8006A8CC 26D645C0 */ addiu $s6, $s6, %lo(xlitob_ldigs)
/* 45CD0 8006A8D0 2402006F */ addiu $v0, $zero, 0x6F
.LIQUE_8006A8D4:
/* 45CD4 8006A8D4 10A20007 */ beq $a1, $v0, .LIQUE_8006A8F4
/* 45CD8 8006A8D8 24020078 */ addiu $v0, $zero, 0x78
/* 45CDC 8006A8DC 10A20003 */ beq $a1, $v0, .LIQUE_8006A8EC
/* 45CE0 8006A8E0 24020058 */ addiu $v0, $zero, 0x58
/* 45CE4 8006A8E4 14A20004 */ bne $a1, $v0, .LIQUE_8006A8F8
/* 45CE8 8006A8E8 2414000A */ addiu $s4, $zero, 0xA
.LIQUE_8006A8EC:
/* 45CEC 8006A8EC 0801AA3E */ j .LIQUE_8006A8F8
/* 45CF0 8006A8F0 24140010 */ addiu $s4, $zero, 0x10
.LIQUE_8006A8F4:
/* 45CF4 8006A8F4 24140008 */ addiu $s4, $zero, 0x8
.LIQUE_8006A8F8:
/* 45CF8 8006A8F8 8E700000 */ lw $s0, 0x0($s3)
/* 45CFC 8006A8FC 8E710004 */ lw $s1, 0x4($s3)
/* 45D00 8006A900 24020064 */ addiu $v0, $zero, 0x64
/* 45D04 8006A904 10A20004 */ beq $a1, $v0, .LIQUE_8006A918
/* 45D08 8006A908 24120018 */ addiu $s2, $zero, 0x18
/* 45D0C 8006A90C 24020069 */ addiu $v0, $zero, 0x69
/* 45D10 8006A910 14A20009 */ bne $a1, $v0, .LIQUE_8006A938
/* 45D14 8006A914 02301025 */ or $v0, $s1, $s0
.LIQUE_8006A918:
/* 45D18 8006A918 8E620000 */ lw $v0, 0x0($s3)
/* 45D1C 8006A91C 04410006 */ bgez $v0, .LIQUE_8006A938
/* 45D20 8006A920 02301025 */ or $v0, $s1, $s0
/* 45D24 8006A924 00118823 */ negu $s1, $s1
/* 45D28 8006A928 00108023 */ negu $s0, $s0
/* 45D2C 8006A92C 0011102B */ sltu $v0, $zero, $s1
/* 45D30 8006A930 02028023 */ subu $s0, $s0, $v0
/* 45D34 8006A934 02301025 */ or $v0, $s1, $s0
.LIQUE_8006A938:
/* 45D38 8006A938 14400004 */ bnez $v0, .LIQUE_8006A94C
/* 45D3C 8006A93C 02803821 */ addu $a3, $s4, $zero
/* 45D40 8006A940 8E620024 */ lw $v0, 0x24($s3)
/* 45D44 8006A944 1040000B */ beqz $v0, .LIQUE_8006A974
/* 45D48 8006A948 0014AFC3 */ sra $s5, $s4, 31
.LIQUE_8006A94C:
/* 45D4C 8006A94C 00003021 */ addu $a2, $zero, $zero
/* 45D50 8006A950 02002021 */ addu $a0, $s0, $zero
/* 45D54 8006A954 0C01B7A0 */ jal __umoddi3
/* 45D58 8006A958 02202821 */ addu $a1, $s1, $zero
/* 45D5C 8006A95C 02C32021 */ addu $a0, $s6, $v1
/* 45D60 8006A960 90850000 */ lbu $a1, 0x0($a0)
/* 45D64 8006A964 24120017 */ addiu $s2, $zero, 0x17
/* 45D68 8006A968 A3A5002F */ sb $a1, 0x2F($sp)
/* 45D6C 8006A96C 02803821 */ addu $a3, $s4, $zero
/* 45D70 8006A970 0014AFC3 */ sra $s5, $s4, 31
.LIQUE_8006A974:
/* 45D74 8006A974 02A03021 */ addu $a2, $s5, $zero
/* 45D78 8006A978 02002021 */ addu $a0, $s0, $zero
/* 45D7C 8006A97C 0C01B648 */ jal __udivdi3
/* 45D80 8006A980 02202821 */ addu $a1, $s1, $zero
/* 45D84 8006A984 AE620000 */ sw $v0, 0x0($s3)
/* 45D88 8006A988 AE630004 */ sw $v1, 0x4($s3)
/* 45D8C 8006A98C 8E620000 */ lw $v0, 0x0($s3)
/* 45D90 8006A990 1C400006 */ bgtz $v0, .LIQUE_8006A9AC
/* 45D94 8006A994 00000000 */ nop
/* 45D98 8006A998 5440001C */ bnel $v0, $zero, .LIQUE_8006AA0C
/* 45D9C 8006A99C 27A50018 */ addiu $a1, $sp, 0x18
/* 45DA0 8006A9A0 8E620004 */ lw $v0, 0x4($s3)
.LIQUE_8006A9A4:
/* 45DA4 8006A9A4 10400019 */ beqz $v0, .LIQUE_8006AA0C
/* 45DA8 8006A9A8 27A50018 */ addiu $a1, $sp, 0x18
.LIQUE_8006A9AC:
/* 45DAC 8006A9AC 1A400016 */ blez $s2, .LIQUE_8006AA08
/* 45DB0 8006A9B0 02801821 */ addu $v1, $s4, $zero
/* 45DB4 8006A9B4 02A01021 */ addu $v0, $s5, $zero
/* 45DB8 8006A9B8 8E660000 */ lw $a2, 0x0($s3)
/* 45DBC 8006A9BC 8E670004 */ lw $a3, 0x4($s3)
/* 45DC0 8006A9C0 AFA20010 */ sw $v0, 0x10($sp)
/* 45DC4 8006A9C4 AFA30014 */ sw $v1, 0x14($sp)
/* 45DC8 8006A9C8 0C01B327 */ jal lldiv
/* 45DCC 8006A9CC 27A40030 */ addiu $a0, $sp, 0x30
/* 45DD0 8006A9D0 2652FFFF */ addiu $s2, $s2, -0x1
/* 45DD4 8006A9D4 8FA3003C */ lw $v1, 0x3C($sp)
/* 45DD8 8006A9D8 8FA80030 */ lw $t0, 0x30($sp)
/* 45DDC 8006A9DC 8FA90034 */ lw $t1, 0x34($sp)
/* 45DE0 8006A9E0 02C31821 */ addu $v1, $s6, $v1
/* 45DE4 8006A9E4 AE680000 */ sw $t0, 0x0($s3)
/* 45DE8 8006A9E8 AE690004 */ sw $t1, 0x4($s3)
/* 45DEC 8006A9EC 90640000 */ lbu $a0, 0x0($v1)
/* 45DF0 8006A9F0 8E630000 */ lw $v1, 0x0($s3)
/* 45DF4 8006A9F4 03B21021 */ addu $v0, $sp, $s2
/* 45DF8 8006A9F8 1C60FFEC */ bgtz $v1, .LIQUE_8006A9AC
/* 45DFC 8006A9FC A0440018 */ sb $a0, 0x18($v0)
/* 45E00 8006AA00 5060FFE8 */ beql $v1, $zero, .LIQUE_8006A9A4
/* 45E04 8006AA04 8E620004 */ lw $v0, 0x4($s3)
.LIQUE_8006AA08:
/* 45E08 8006AA08 27A50018 */ addiu $a1, $sp, 0x18
.LIQUE_8006AA0C:
/* 45E0C 8006AA0C 00B22821 */ addu $a1, $a1, $s2
/* 45E10 8006AA10 24020018 */ addiu $v0, $zero, 0x18
/* 45E14 8006AA14 00521023 */ subu $v0, $v0, $s2
/* 45E18 8006AA18 8E640008 */ lw $a0, 0x8($s3)
/* 45E1C 8006AA1C 00403021 */ addu $a2, $v0, $zero
/* 45E20 8006AA20 0C018B09 */ jal memcpy
/* 45E24 8006AA24 AE620014 */ sw $v0, 0x14($s3)
/* 45E28 8006AA28 8E640014 */ lw $a0, 0x14($s3)
/* 45E2C 8006AA2C 8E630024 */ lw $v1, 0x24($s3)
/* 45E30 8006AA30 0083102A */ slt $v0, $a0, $v1
/* 45E34 8006AA34 10400002 */ beqz $v0, .LIQUE_8006AA40
/* 45E38 8006AA38 00641023 */ subu $v0, $v1, $a0
/* 45E3C 8006AA3C AE620010 */ sw $v0, 0x10($s3)
.LIQUE_8006AA40:
/* 45E40 8006AA40 04610011 */ bgez $v1, .LIQUE_8006AA88
/* 45E44 8006AA44 8FBF005C */ lw $ra, 0x5C($sp)
/* 45E48 8006AA48 8E620030 */ lw $v0, 0x30($s3)
/* 45E4C 8006AA4C 24030010 */ addiu $v1, $zero, 0x10
/* 45E50 8006AA50 30420014 */ andi $v0, $v0, 0x14
/* 45E54 8006AA54 1443000D */ bne $v0, $v1, .LIQUE_8006AA8C
/* 45E58 8006AA58 8FB60058 */ lw $s6, 0x58($sp)
/* 45E5C 8006AA5C 8E620028 */ lw $v0, 0x28($s3)
/* 45E60 8006AA60 8E63000C */ lw $v1, 0xC($s3)
/* 45E64 8006AA64 00431023 */ subu $v0, $v0, $v1
/* 45E68 8006AA68 8E630010 */ lw $v1, 0x10($s3)
/* 45E6C 8006AA6C 8E640014 */ lw $a0, 0x14($s3)
/* 45E70 8006AA70 00431023 */ subu $v0, $v0, $v1
/* 45E74 8006AA74 00449023 */ subu $s2, $v0, $a0
/* 45E78 8006AA78 1A400004 */ blez $s2, .LIQUE_8006AA8C
/* 45E7C 8006AA7C 00721021 */ addu $v0, $v1, $s2
/* 45E80 8006AA80 AE620010 */ sw $v0, 0x10($s3)
/* 45E84 8006AA84 8FBF005C */ lw $ra, 0x5C($sp)
.LIQUE_8006AA88:
/* 45E88 8006AA88 8FB60058 */ lw $s6, 0x58($sp)
.LIQUE_8006AA8C:
/* 45E8C 8006AA8C 8FB50054 */ lw $s5, 0x54($sp)
/* 45E90 8006AA90 8FB40050 */ lw $s4, 0x50($sp)
/* 45E94 8006AA94 8FB3004C */ lw $s3, 0x4C($sp)
/* 45E98 8006AA98 8FB20048 */ lw $s2, 0x48($sp)
/* 45E9C 8006AA9C 8FB10044 */ lw $s1, 0x44($sp)
/* 45EA0 8006AAA0 8FB00040 */ lw $s0, 0x40($sp)
/* 45EA4 8006AAA4 03E00008 */ jr $ra
/* 45EA8 8006AAA8 27BD0060 */ addiu $sp, $sp, 0x60
/* 45EAC 8006AAAC 00000000 */ nop

View File

@ -0,0 +1,766 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel _Printf
/* 3E050 80062C50 27BDFF80 */ addiu $sp, $sp, -0x80
/* 3E054 80062C54 AFB40078 */ sw $s4, 0x78($sp)
/* 3E058 80062C58 0080A021 */ addu $s4, $a0, $zero
/* 3E05C 80062C5C AFB30074 */ sw $s3, 0x74($sp)
/* 3E060 80062C60 00A09821 */ addu $s3, $a1, $zero
/* 3E064 80062C64 00C02821 */ addu $a1, $a2, $zero
/* 3E068 80062C68 AFBF007C */ sw $ra, 0x7C($sp)
/* 3E06C 80062C6C AFB20070 */ sw $s2, 0x70($sp)
/* 3E070 80062C70 AFB1006C */ sw $s1, 0x6C($sp)
/* 3E074 80062C74 AFB00068 */ sw $s0, 0x68($sp)
/* 3E078 80062C78 AFA7008C */ sw $a3, 0x8C($sp)
/* 3E07C 80062C7C AFA0003C */ sw $zero, 0x3C($sp)
.LIQUE_80062C80:
/* 3E080 80062C80 80B10000 */ lb $s1, 0x0($a1)
/* 3E084 80062C84 12200008 */ beqz $s1, .LIQUE_80062CA8
/* 3E088 80062C88 00A09021 */ addu $s2, $a1, $zero
/* 3E08C 80062C8C 24020025 */ addiu $v0, $zero, 0x25
.LIQUE_80062C90:
/* 3E090 80062C90 12220006 */ beq $s1, $v0, .LIQUE_80062CAC
/* 3E094 80062C94 02458023 */ subu $s0, $s2, $a1
/* 3E098 80062C98 26520001 */ addiu $s2, $s2, 0x1
/* 3E09C 80062C9C 82510000 */ lb $s1, 0x0($s2)
/* 3E0A0 80062CA0 1620FFFB */ bnez $s1, .LIQUE_80062C90
/* 3E0A4 80062CA4 00000000 */ nop
.LIQUE_80062CA8:
/* 3E0A8 80062CA8 02458023 */ subu $s0, $s2, $a1
.LIQUE_80062CAC:
/* 3E0AC 80062CAC 1A000008 */ blez $s0, .LIQUE_80062CD0
/* 3E0B0 80062CB0 02602021 */ addu $a0, $s3, $zero
/* 3E0B4 80062CB4 0280F809 */ jalr $s4
/* 3E0B8 80062CB8 02003021 */ addu $a2, $s0, $zero
/* 3E0BC 80062CBC 00409821 */ addu $s3, $v0, $zero
/* 3E0C0 80062CC0 12600129 */ beqz $s3, .LIQUE_80063168
/* 3E0C4 80062CC4 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E0C8 80062CC8 00501021 */ addu $v0, $v0, $s0
/* 3E0CC 80062CCC AFA2003C */ sw $v0, 0x3C($sp)
.LIQUE_80062CD0:
/* 3E0D0 80062CD0 12200125 */ beqz $s1, .LIQUE_80063168
/* 3E0D4 80062CD4 26520001 */ addiu $s2, $s2, 0x1
/* 3E0D8 80062CD8 3C10800A */ lui $s0, %hi(D_IQUE_80098730)
/* 3E0DC 80062CDC 26108730 */ addiu $s0, $s0, %lo(D_IQUE_80098730)
/* 3E0E0 80062CE0 3C11800A */ lui $s1, %hi(D_IQUE_80098750)
/* 3E0E4 80062CE4 26318750 */ addiu $s1, $s1, %lo(D_IQUE_80098750)
/* 3E0E8 80062CE8 08018B44 */ j .LIQUE_80062D10
/* 3E0EC 80062CEC AFA00040 */ sw $zero, 0x40($sp)
.LIQUE_80062CF0:
/* 3E0F0 80062CF0 00021080 */ sll $v0, $v0, 2
/* 3E0F4 80062CF4 8FA30040 */ lw $v1, 0x40($sp)
/* 3E0F8 80062CF8 3C04800A */ lui $a0, %hi(D_IQUE_80098738)
/* 3E0FC 80062CFC 00822021 */ addu $a0, $a0, $v0
/* 3E100 80062D00 8C848738 */ lw $a0, %lo(D_IQUE_80098738)($a0)
/* 3E104 80062D04 26520001 */ addiu $s2, $s2, 0x1
/* 3E108 80062D08 00641825 */ or $v1, $v1, $a0
/* 3E10C 80062D0C AFA30040 */ sw $v1, 0x40($sp)
.LIQUE_80062D10:
/* 3E110 80062D10 82450000 */ lb $a1, 0x0($s2)
/* 3E114 80062D14 0C018AF4 */ jal strchr
/* 3E118 80062D18 02002021 */ addu $a0, $s0, $zero
/* 3E11C 80062D1C 1440FFF4 */ bnez $v0, .LIQUE_80062CF0
/* 3E120 80062D20 00501023 */ subu $v0, $v0, $s0
/* 3E124 80062D24 82430000 */ lb $v1, 0x0($s2)
/* 3E128 80062D28 2402002A */ addiu $v0, $zero, 0x2A
/* 3E12C 80062D2C 5462001E */ bnel $v1, $v0, .LIQUE_80062DA8
/* 3E130 80062D30 AFA00038 */ sw $zero, 0x38($sp)
/* 3E134 80062D34 8FA2008C */ lw $v0, 0x8C($sp)
/* 3E138 80062D38 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E13C 80062D3C 24420003 */ addiu $v0, $v0, 0x3
/* 3E140 80062D40 00431024 */ and $v0, $v0, $v1
/* 3E144 80062D44 24420004 */ addiu $v0, $v0, 0x4
/* 3E148 80062D48 AFA2008C */ sw $v0, 0x8C($sp)
/* 3E14C 80062D4C 8C42FFFC */ lw $v0, -0x4($v0)
/* 3E150 80062D50 04410006 */ bgez $v0, .LIQUE_80062D6C
/* 3E154 80062D54 AFA20038 */ sw $v0, 0x38($sp)
/* 3E158 80062D58 8FA30040 */ lw $v1, 0x40($sp)
/* 3E15C 80062D5C 00021023 */ negu $v0, $v0
/* 3E160 80062D60 AFA20038 */ sw $v0, 0x38($sp)
/* 3E164 80062D64 34630004 */ ori $v1, $v1, 0x4
/* 3E168 80062D68 AFA30040 */ sw $v1, 0x40($sp)
.LIQUE_80062D6C:
/* 3E16C 80062D6C 26520001 */ addiu $s2, $s2, 0x1
/* 3E170 80062D70 08018B6F */ j .LIQUE_80062DBC
/* 3E174 80062D74 92450000 */ lbu $a1, 0x0($s2)
.LIQUE_80062D78:
/* 3E178 80062D78 8FA40038 */ lw $a0, 0x38($sp)
/* 3E17C 80062D7C 288203E7 */ slti $v0, $a0, 0x3E7
/* 3E180 80062D80 10400009 */ beqz $v0, .LIQUE_80062DA8
/* 3E184 80062D84 26520001 */ addiu $s2, $s2, 0x1
/* 3E188 80062D88 00041880 */ sll $v1, $a0, 2
/* 3E18C 80062D8C 00641821 */ addu $v1, $v1, $a0
/* 3E190 80062D90 00031840 */ sll $v1, $v1, 1
/* 3E194 80062D94 00061600 */ sll $v0, $a2, 24
/* 3E198 80062D98 00021603 */ sra $v0, $v0, 24
/* 3E19C 80062D9C 00621821 */ addu $v1, $v1, $v0
/* 3E1A0 80062DA0 2463FFD0 */ addiu $v1, $v1, -0x30
/* 3E1A4 80062DA4 AFA30038 */ sw $v1, 0x38($sp)
.LIQUE_80062DA8:
/* 3E1A8 80062DA8 92450000 */ lbu $a1, 0x0($s2)
/* 3E1AC 80062DAC 24A2FFD0 */ addiu $v0, $a1, -0x30
/* 3E1B0 80062DB0 2C42000A */ sltiu $v0, $v0, 0xA
/* 3E1B4 80062DB4 1440FFF0 */ bnez $v0, .LIQUE_80062D78
/* 3E1B8 80062DB8 00A03021 */ addu $a2, $a1, $zero
.LIQUE_80062DBC:
/* 3E1BC 80062DBC 00051600 */ sll $v0, $a1, 24
/* 3E1C0 80062DC0 00021603 */ sra $v0, $v0, 24
/* 3E1C4 80062DC4 2403002E */ addiu $v1, $zero, 0x2E
/* 3E1C8 80062DC8 10430004 */ beq $v0, $v1, .LIQUE_80062DDC
/* 3E1CC 80062DCC 2402FFFF */ addiu $v0, $zero, -0x1
/* 3E1D0 80062DD0 AFA20034 */ sw $v0, 0x34($sp)
/* 3E1D4 80062DD4 08018B98 */ j .LIQUE_80062E60
/* 3E1D8 80062DD8 92450000 */ lbu $a1, 0x0($s2)
.LIQUE_80062DDC:
/* 3E1DC 80062DDC 26520001 */ addiu $s2, $s2, 0x1
/* 3E1E0 80062DE0 82430000 */ lb $v1, 0x0($s2)
/* 3E1E4 80062DE4 2402002A */ addiu $v0, $zero, 0x2A
/* 3E1E8 80062DE8 54620018 */ bnel $v1, $v0, .LIQUE_80062E4C
/* 3E1EC 80062DEC AFA00034 */ sw $zero, 0x34($sp)
/* 3E1F0 80062DF0 8FA2008C */ lw $v0, 0x8C($sp)
/* 3E1F4 80062DF4 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E1F8 80062DF8 24420003 */ addiu $v0, $v0, 0x3
/* 3E1FC 80062DFC 00431024 */ and $v0, $v0, $v1
/* 3E200 80062E00 24420004 */ addiu $v0, $v0, 0x4
/* 3E204 80062E04 AFA2008C */ sw $v0, 0x8C($sp)
/* 3E208 80062E08 8C43FFFC */ lw $v1, -0x4($v0)
/* 3E20C 80062E0C 26520001 */ addiu $s2, $s2, 0x1
/* 3E210 80062E10 AFA30034 */ sw $v1, 0x34($sp)
/* 3E214 80062E14 08018B98 */ j .LIQUE_80062E60
/* 3E218 80062E18 92450000 */ lbu $a1, 0x0($s2)
.LIQUE_80062E1C:
/* 3E21C 80062E1C 8FA40034 */ lw $a0, 0x34($sp)
/* 3E220 80062E20 288203E7 */ slti $v0, $a0, 0x3E7
/* 3E224 80062E24 10400009 */ beqz $v0, .LIQUE_80062E4C
/* 3E228 80062E28 26520001 */ addiu $s2, $s2, 0x1
/* 3E22C 80062E2C 00041880 */ sll $v1, $a0, 2
/* 3E230 80062E30 00641821 */ addu $v1, $v1, $a0
/* 3E234 80062E34 00031840 */ sll $v1, $v1, 1
/* 3E238 80062E38 00061600 */ sll $v0, $a2, 24
/* 3E23C 80062E3C 00021603 */ sra $v0, $v0, 24
/* 3E240 80062E40 00621821 */ addu $v1, $v1, $v0
/* 3E244 80062E44 2463FFD0 */ addiu $v1, $v1, -0x30
/* 3E248 80062E48 AFA30034 */ sw $v1, 0x34($sp)
.LIQUE_80062E4C:
/* 3E24C 80062E4C 92450000 */ lbu $a1, 0x0($s2)
/* 3E250 80062E50 24A2FFD0 */ addiu $v0, $a1, -0x30
/* 3E254 80062E54 2C42000A */ sltiu $v0, $v0, 0xA
/* 3E258 80062E58 1440FFF0 */ bnez $v0, .LIQUE_80062E1C
/* 3E25C 80062E5C 00A03021 */ addu $a2, $a1, $zero
.LIQUE_80062E60:
/* 3E260 80062E60 02202021 */ addu $a0, $s1, $zero
/* 3E264 80062E64 00052E00 */ sll $a1, $a1, 24
/* 3E268 80062E68 0C018AF4 */ jal strchr
/* 3E26C 80062E6C 00052E03 */ sra $a1, $a1, 24
/* 3E270 80062E70 10400003 */ beqz $v0, .LIQUE_80062E80
/* 3E274 80062E74 00001021 */ addu $v0, $zero, $zero
/* 3E278 80062E78 92420000 */ lbu $v0, 0x0($s2)
/* 3E27C 80062E7C 26520001 */ addiu $s2, $s2, 0x1
.LIQUE_80062E80:
/* 3E280 80062E80 A3A20044 */ sb $v0, 0x44($sp)
/* 3E284 80062E84 00021600 */ sll $v0, $v0, 24
/* 3E288 80062E88 00022603 */ sra $a0, $v0, 24
/* 3E28C 80062E8C 2403006C */ addiu $v1, $zero, 0x6C
/* 3E290 80062E90 54830007 */ bnel $a0, $v1, .LIQUE_80062EB0
/* 3E294 80062E94 27A40010 */ addiu $a0, $sp, 0x10
/* 3E298 80062E98 82420000 */ lb $v0, 0x0($s2)
/* 3E29C 80062E9C 14440004 */ bne $v0, $a0, .LIQUE_80062EB0
/* 3E2A0 80062EA0 27A40010 */ addiu $a0, $sp, 0x10
/* 3E2A4 80062EA4 2402004C */ addiu $v0, $zero, 0x4C
/* 3E2A8 80062EA8 A3A20044 */ sb $v0, 0x44($sp)
/* 3E2AC 80062EAC 26520001 */ addiu $s2, $s2, 0x1
.LIQUE_80062EB0:
/* 3E2B0 80062EB0 27A5008C */ addiu $a1, $sp, 0x8C
/* 3E2B4 80062EB4 82460000 */ lb $a2, 0x0($s2)
/* 3E2B8 80062EB8 0C018C63 */ jal _Putfld
/* 3E2BC 80062EBC 27A70048 */ addiu $a3, $sp, 0x48
/* 3E2C0 80062EC0 8FA3001C */ lw $v1, 0x1C($sp)
/* 3E2C4 80062EC4 8FA20020 */ lw $v0, 0x20($sp)
/* 3E2C8 80062EC8 8FA40024 */ lw $a0, 0x24($sp)
/* 3E2CC 80062ECC 8FA50028 */ lw $a1, 0x28($sp)
/* 3E2D0 80062ED0 00621821 */ addu $v1, $v1, $v0
/* 3E2D4 80062ED4 00641821 */ addu $v1, $v1, $a0
/* 3E2D8 80062ED8 00651821 */ addu $v1, $v1, $a1
/* 3E2DC 80062EDC 8FA2002C */ lw $v0, 0x2C($sp)
/* 3E2E0 80062EE0 8FA40030 */ lw $a0, 0x30($sp)
/* 3E2E4 80062EE4 8FA50038 */ lw $a1, 0x38($sp)
/* 3E2E8 80062EE8 00621821 */ addu $v1, $v1, $v0
/* 3E2EC 80062EEC 00641821 */ addu $v1, $v1, $a0
/* 3E2F0 80062EF0 8FA20040 */ lw $v0, 0x40($sp)
/* 3E2F4 80062EF4 00A32823 */ subu $a1, $a1, $v1
/* 3E2F8 80062EF8 30420004 */ andi $v0, $v0, 0x4
/* 3E2FC 80062EFC 14400017 */ bnez $v0, .LIQUE_80062F5C
/* 3E300 80062F00 AFA50038 */ sw $a1, 0x38($sp)
/* 3E304 80062F04 18A00016 */ blez $a1, .LIQUE_80062F60
/* 3E308 80062F08 8FA6001C */ lw $a2, 0x1C($sp)
/* 3E30C 80062F0C 00A08821 */ addu $s1, $a1, $zero
/* 3E310 80062F10 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80062F14:
/* 3E314 80062F14 14400002 */ bnez $v0, .LIQUE_80062F20
/* 3E318 80062F18 02208021 */ addu $s0, $s1, $zero
/* 3E31C 80062F1C 24100020 */ addiu $s0, $zero, 0x20
.LIQUE_80062F20:
/* 3E320 80062F20 5A00000C */ blezl $s0, .LIQUE_80062F54
/* 3E324 80062F24 02308823 */ subu $s1, $s1, $s0
/* 3E328 80062F28 02602021 */ addu $a0, $s3, $zero
/* 3E32C 80062F2C 3C058009 */ lui $a1, %hi(D_IQUE_80093200)
/* 3E330 80062F30 24A53200 */ addiu $a1, $a1, %lo(D_IQUE_80093200)
/* 3E334 80062F34 0280F809 */ jalr $s4
/* 3E338 80062F38 02003021 */ addu $a2, $s0, $zero
/* 3E33C 80062F3C 00409821 */ addu $s3, $v0, $zero
/* 3E340 80062F40 12600089 */ beqz $s3, .LIQUE_80063168
/* 3E344 80062F44 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E348 80062F48 00501021 */ addu $v0, $v0, $s0
/* 3E34C 80062F4C AFA2003C */ sw $v0, 0x3C($sp)
/* 3E350 80062F50 02308823 */ subu $s1, $s1, $s0
.LIQUE_80062F54:
/* 3E354 80062F54 1E20FFEF */ bgtz $s1, .LIQUE_80062F14
/* 3E358 80062F58 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80062F5C:
/* 3E35C 80062F5C 8FA6001C */ lw $a2, 0x1C($sp)
.LIQUE_80062F60:
/* 3E360 80062F60 18C00009 */ blez $a2, .LIQUE_80062F88
/* 3E364 80062F64 02602021 */ addu $a0, $s3, $zero
/* 3E368 80062F68 0280F809 */ jalr $s4
/* 3E36C 80062F6C 27A50048 */ addiu $a1, $sp, 0x48
/* 3E370 80062F70 00409821 */ addu $s3, $v0, $zero
/* 3E374 80062F74 1260007C */ beqz $s3, .LIQUE_80063168
/* 3E378 80062F78 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E37C 80062F7C 8FA3001C */ lw $v1, 0x1C($sp)
/* 3E380 80062F80 00431021 */ addu $v0, $v0, $v1
/* 3E384 80062F84 AFA2003C */ sw $v0, 0x3C($sp)
.LIQUE_80062F88:
/* 3E388 80062F88 8FA20020 */ lw $v0, 0x20($sp)
/* 3E38C 80062F8C 18400016 */ blez $v0, .LIQUE_80062FE8
/* 3E390 80062F90 8FA60024 */ lw $a2, 0x24($sp)
/* 3E394 80062F94 00408821 */ addu $s1, $v0, $zero
/* 3E398 80062F98 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80062F9C:
/* 3E39C 80062F9C 14400002 */ bnez $v0, .LIQUE_80062FA8
/* 3E3A0 80062FA0 02208021 */ addu $s0, $s1, $zero
/* 3E3A4 80062FA4 24100020 */ addiu $s0, $zero, 0x20
.LIQUE_80062FA8:
/* 3E3A8 80062FA8 5A00000C */ blezl $s0, .LIQUE_80062FDC
/* 3E3AC 80062FAC 02308823 */ subu $s1, $s1, $s0
/* 3E3B0 80062FB0 02602021 */ addu $a0, $s3, $zero
/* 3E3B4 80062FB4 3C058009 */ lui $a1, %hi(D_IQUE_80093224)
/* 3E3B8 80062FB8 24A53224 */ addiu $a1, $a1, %lo(D_IQUE_80093224)
/* 3E3BC 80062FBC 0280F809 */ jalr $s4
/* 3E3C0 80062FC0 02003021 */ addu $a2, $s0, $zero
/* 3E3C4 80062FC4 00409821 */ addu $s3, $v0, $zero
/* 3E3C8 80062FC8 12600067 */ beqz $s3, .LIQUE_80063168
/* 3E3CC 80062FCC 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E3D0 80062FD0 00501021 */ addu $v0, $v0, $s0
/* 3E3D4 80062FD4 AFA2003C */ sw $v0, 0x3C($sp)
/* 3E3D8 80062FD8 02308823 */ subu $s1, $s1, $s0
.LIQUE_80062FDC:
/* 3E3DC 80062FDC 1E20FFEF */ bgtz $s1, .LIQUE_80062F9C
/* 3E3E0 80062FE0 2E220021 */ sltiu $v0, $s1, 0x21
/* 3E3E4 80062FE4 8FA60024 */ lw $a2, 0x24($sp)
.LIQUE_80062FE8:
/* 3E3E8 80062FE8 18C00009 */ blez $a2, .LIQUE_80063010
/* 3E3EC 80062FEC 8FA50018 */ lw $a1, 0x18($sp)
/* 3E3F0 80062FF0 0280F809 */ jalr $s4
/* 3E3F4 80062FF4 02602021 */ addu $a0, $s3, $zero
/* 3E3F8 80062FF8 00409821 */ addu $s3, $v0, $zero
/* 3E3FC 80062FFC 1260005A */ beqz $s3, .LIQUE_80063168
/* 3E400 80063000 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E404 80063004 8FA30024 */ lw $v1, 0x24($sp)
/* 3E408 80063008 00431021 */ addu $v0, $v0, $v1
/* 3E40C 8006300C AFA2003C */ sw $v0, 0x3C($sp)
.LIQUE_80063010:
/* 3E410 80063010 8FA20028 */ lw $v0, 0x28($sp)
/* 3E414 80063014 18400016 */ blez $v0, .LIQUE_80063070
/* 3E418 80063018 8FA6002C */ lw $a2, 0x2C($sp)
/* 3E41C 8006301C 00408821 */ addu $s1, $v0, $zero
/* 3E420 80063020 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80063024:
/* 3E424 80063024 14400002 */ bnez $v0, .LIQUE_80063030
/* 3E428 80063028 02208021 */ addu $s0, $s1, $zero
/* 3E42C 8006302C 24100020 */ addiu $s0, $zero, 0x20
.LIQUE_80063030:
/* 3E430 80063030 5A00000C */ blezl $s0, .LIQUE_80063064
/* 3E434 80063034 02308823 */ subu $s1, $s1, $s0
/* 3E438 80063038 02602021 */ addu $a0, $s3, $zero
/* 3E43C 8006303C 3C058009 */ lui $a1, %hi(D_IQUE_80093224)
/* 3E440 80063040 24A53224 */ addiu $a1, $a1, %lo(D_IQUE_80093224)
/* 3E444 80063044 0280F809 */ jalr $s4
/* 3E448 80063048 02003021 */ addu $a2, $s0, $zero
/* 3E44C 8006304C 00409821 */ addu $s3, $v0, $zero
/* 3E450 80063050 12600045 */ beqz $s3, .LIQUE_80063168
/* 3E454 80063054 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E458 80063058 00501021 */ addu $v0, $v0, $s0
/* 3E45C 8006305C AFA2003C */ sw $v0, 0x3C($sp)
/* 3E460 80063060 02308823 */ subu $s1, $s1, $s0
.LIQUE_80063064:
/* 3E464 80063064 1E20FFEF */ bgtz $s1, .LIQUE_80063024
/* 3E468 80063068 2E220021 */ sltiu $v0, $s1, 0x21
/* 3E46C 8006306C 8FA6002C */ lw $a2, 0x2C($sp)
.LIQUE_80063070:
/* 3E470 80063070 18C0000B */ blez $a2, .LIQUE_800630A0
/* 3E474 80063074 8FA30018 */ lw $v1, 0x18($sp)
/* 3E478 80063078 8FA50024 */ lw $a1, 0x24($sp)
/* 3E47C 8006307C 02602021 */ addu $a0, $s3, $zero
/* 3E480 80063080 0280F809 */ jalr $s4
/* 3E484 80063084 00652821 */ addu $a1, $v1, $a1
/* 3E488 80063088 00409821 */ addu $s3, $v0, $zero
/* 3E48C 8006308C 12600036 */ beqz $s3, .LIQUE_80063168
/* 3E490 80063090 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E494 80063094 8FA3002C */ lw $v1, 0x2C($sp)
/* 3E498 80063098 00431021 */ addu $v0, $v0, $v1
/* 3E49C 8006309C AFA2003C */ sw $v0, 0x3C($sp)
.LIQUE_800630A0:
/* 3E4A0 800630A0 8FA20030 */ lw $v0, 0x30($sp)
/* 3E4A4 800630A4 58400016 */ blezl $v0, .LIQUE_80063100
/* 3E4A8 800630A8 8FA20040 */ lw $v0, 0x40($sp)
/* 3E4AC 800630AC 00408821 */ addu $s1, $v0, $zero
/* 3E4B0 800630B0 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_800630B4:
/* 3E4B4 800630B4 14400002 */ bnez $v0, .LIQUE_800630C0
/* 3E4B8 800630B8 02208021 */ addu $s0, $s1, $zero
/* 3E4BC 800630BC 24100020 */ addiu $s0, $zero, 0x20
.LIQUE_800630C0:
/* 3E4C0 800630C0 5A00000C */ blezl $s0, .LIQUE_800630F4
/* 3E4C4 800630C4 02308823 */ subu $s1, $s1, $s0
/* 3E4C8 800630C8 02602021 */ addu $a0, $s3, $zero
/* 3E4CC 800630CC 3C058009 */ lui $a1, %hi(D_IQUE_80093224)
/* 3E4D0 800630D0 24A53224 */ addiu $a1, $a1, %lo(D_IQUE_80093224)
/* 3E4D4 800630D4 0280F809 */ jalr $s4
/* 3E4D8 800630D8 02003021 */ addu $a2, $s0, $zero
/* 3E4DC 800630DC 00409821 */ addu $s3, $v0, $zero
/* 3E4E0 800630E0 12600021 */ beqz $s3, .LIQUE_80063168
/* 3E4E4 800630E4 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E4E8 800630E8 00501021 */ addu $v0, $v0, $s0
/* 3E4EC 800630EC AFA2003C */ sw $v0, 0x3C($sp)
/* 3E4F0 800630F0 02308823 */ subu $s1, $s1, $s0
.LIQUE_800630F4:
/* 3E4F4 800630F4 1E20FFEF */ bgtz $s1, .LIQUE_800630B4
/* 3E4F8 800630F8 2E220021 */ sltiu $v0, $s1, 0x21
/* 3E4FC 800630FC 8FA20040 */ lw $v0, 0x40($sp)
.LIQUE_80063100:
/* 3E500 80063100 30420004 */ andi $v0, $v0, 0x4
/* 3E504 80063104 10400016 */ beqz $v0, .LIQUE_80063160
/* 3E508 80063108 8FA20038 */ lw $v0, 0x38($sp)
/* 3E50C 8006310C 18400014 */ blez $v0, .LIQUE_80063160
/* 3E510 80063110 00408821 */ addu $s1, $v0, $zero
/* 3E514 80063114 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80063118:
/* 3E518 80063118 14400002 */ bnez $v0, .LIQUE_80063124
/* 3E51C 8006311C 02208021 */ addu $s0, $s1, $zero
/* 3E520 80063120 24100020 */ addiu $s0, $zero, 0x20
.LIQUE_80063124:
/* 3E524 80063124 5A00000C */ blezl $s0, .LIQUE_80063158
/* 3E528 80063128 02308823 */ subu $s1, $s1, $s0
/* 3E52C 8006312C 02602021 */ addu $a0, $s3, $zero
/* 3E530 80063130 3C058009 */ lui $a1, %hi(D_IQUE_80093200)
/* 3E534 80063134 24A53200 */ addiu $a1, $a1, %lo(D_IQUE_80093200)
/* 3E538 80063138 0280F809 */ jalr $s4
/* 3E53C 8006313C 02003021 */ addu $a2, $s0, $zero
/* 3E540 80063140 00409821 */ addu $s3, $v0, $zero
/* 3E544 80063144 12600008 */ beqz $s3, .LIQUE_80063168
/* 3E548 80063148 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E54C 8006314C 00501021 */ addu $v0, $v0, $s0
/* 3E550 80063150 AFA2003C */ sw $v0, 0x3C($sp)
/* 3E554 80063154 02308823 */ subu $s1, $s1, $s0
.LIQUE_80063158:
/* 3E558 80063158 1E20FFEF */ bgtz $s1, .LIQUE_80063118
/* 3E55C 8006315C 2E220021 */ sltiu $v0, $s1, 0x21
.LIQUE_80063160:
/* 3E560 80063160 08018B20 */ j .LIQUE_80062C80
/* 3E564 80063164 26450001 */ addiu $a1, $s2, 0x1
.LIQUE_80063168:
/* 3E568 80063168 8FA2003C */ lw $v0, 0x3C($sp)
/* 3E56C 8006316C 8FBF007C */ lw $ra, 0x7C($sp)
/* 3E570 80063170 8FB40078 */ lw $s4, 0x78($sp)
/* 3E574 80063174 8FB30074 */ lw $s3, 0x74($sp)
/* 3E578 80063178 8FB20070 */ lw $s2, 0x70($sp)
/* 3E57C 8006317C 8FB1006C */ lw $s1, 0x6C($sp)
/* 3E580 80063180 8FB00068 */ lw $s0, 0x68($sp)
/* 3E584 80063184 03E00008 */ jr $ra
/* 3E588 80063188 27BD0080 */ addiu $sp, $sp, 0x80
glabel _Putfld
/* 3E58C 8006318C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3E590 80063190 AFB00010 */ sw $s0, 0x10($sp)
/* 3E594 80063194 00808021 */ addu $s0, $a0, $zero
/* 3E598 80063198 00A04021 */ addu $t0, $a1, $zero
/* 3E59C 8006319C 00E04821 */ addu $t1, $a3, $zero
/* 3E5A0 800631A0 00063600 */ sll $a2, $a2, 24
/* 3E5A4 800631A4 00063603 */ sra $a2, $a2, 24
/* 3E5A8 800631A8 24C2FFDB */ addiu $v0, $a2, -0x25
/* 3E5AC 800631AC 00021600 */ sll $v0, $v0, 24
/* 3E5B0 800631B0 00021603 */ sra $v0, $v0, 24
/* 3E5B4 800631B4 2C430054 */ sltiu $v1, $v0, 0x54
/* 3E5B8 800631B8 AFBF0014 */ sw $ra, 0x14($sp)
/* 3E5BC 800631BC AE000020 */ sw $zero, 0x20($s0)
/* 3E5C0 800631C0 AE00001C */ sw $zero, 0x1C($s0)
/* 3E5C4 800631C4 AE000018 */ sw $zero, 0x18($s0)
/* 3E5C8 800631C8 AE000014 */ sw $zero, 0x14($s0)
/* 3E5CC 800631CC AE000010 */ sw $zero, 0x10($s0)
/* 3E5D0 800631D0 1060010E */ beqz $v1, .LIQUE_8006360C
/* 3E5D4 800631D4 AE00000C */ sw $zero, 0xC($s0)
/* 3E5D8 800631D8 00021080 */ sll $v0, $v0, 2
/* 3E5DC 800631DC 3C03800A */ lui $v1, %hi(jtbl_IQUE_80098758)
/* 3E5E0 800631E0 00621821 */ addu $v1, $v1, $v0
/* 3E5E4 800631E4 8C638758 */ lw $v1, %lo(jtbl_IQUE_80098758)($v1)
/* 3E5E8 800631E8 00600008 */ jr $v1
/* 3E5EC 800631EC 00000000 */ nop
glabel .LIQUE_800631F0
/* 3E5F0 800631F0 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E5F4 800631F4 8E04000C */ lw $a0, 0xC($s0)
/* 3E5F8 800631F8 8D020000 */ lw $v0, 0x0($t0)
/* 3E5FC 800631FC 01242821 */ addu $a1, $t1, $a0
/* 3E600 80063200 24840001 */ addiu $a0, $a0, 0x1
/* 3E604 80063204 24420003 */ addiu $v0, $v0, 0x3
/* 3E608 80063208 00431024 */ and $v0, $v0, $v1
/* 3E60C 8006320C 24420004 */ addiu $v0, $v0, 0x4
/* 3E610 80063210 AD020000 */ sw $v0, 0x0($t0)
/* 3E614 80063214 AE04000C */ sw $a0, 0xC($s0)
/* 3E618 80063218 8D030000 */ lw $v1, 0x0($t0)
/* 3E61C 8006321C 9062FFFF */ lbu $v0, -0x1($v1)
/* 3E620 80063220 08018D88 */ j .LIQUE_80063620
/* 3E624 80063224 A0A20000 */ sb $v0, 0x0($a1)
glabel .LIQUE_80063228
/* 3E628 80063228 82030034 */ lb $v1, 0x34($s0)
/* 3E62C 8006322C 2402006C */ addiu $v0, $zero, 0x6C
/* 3E630 80063230 1062000F */ beq $v1, $v0, .LIQUE_80063270
/* 3E634 80063234 2402004C */ addiu $v0, $zero, 0x4C
/* 3E638 80063238 5462000E */ bnel $v1, $v0, .LIQUE_80063274
/* 3E63C 8006323C 8D040000 */ lw $a0, 0x0($t0)
/* 3E640 80063240 8D020000 */ lw $v0, 0x0($t0)
/* 3E644 80063244 2403FFF8 */ addiu $v1, $zero, -0x8
/* 3E648 80063248 24420007 */ addiu $v0, $v0, 0x7
/* 3E64C 8006324C 00431024 */ and $v0, $v0, $v1
/* 3E650 80063250 24420008 */ addiu $v0, $v0, 0x8
/* 3E654 80063254 AD020000 */ sw $v0, 0x0($t0)
/* 3E658 80063258 8C44FFF8 */ lw $a0, -0x8($v0)
/* 3E65C 8006325C 8C45FFFC */ lw $a1, -0x4($v0)
/* 3E660 80063260 AE040000 */ sw $a0, 0x0($s0)
/* 3E664 80063264 AE050004 */ sw $a1, 0x4($s0)
/* 3E668 80063268 08018CA8 */ j .LIQUE_800632A0
/* 3E66C 8006326C 82030034 */ lb $v1, 0x34($s0)
.LIQUE_80063270:
/* 3E670 80063270 8D040000 */ lw $a0, 0x0($t0)
.LIQUE_80063274:
/* 3E674 80063274 2402FFFC */ addiu $v0, $zero, -0x4
/* 3E678 80063278 24840003 */ addiu $a0, $a0, 0x3
/* 3E67C 8006327C 00822024 */ and $a0, $a0, $v0
/* 3E680 80063280 24840004 */ addiu $a0, $a0, 0x4
/* 3E684 80063284 AD040000 */ sw $a0, 0x0($t0)
/* 3E688 80063288 8C85FFFC */ lw $a1, -0x4($a0)
/* 3E68C 8006328C 00A01821 */ addu $v1, $a1, $zero
/* 3E690 80063290 000517C3 */ sra $v0, $a1, 31
/* 3E694 80063294 AE020000 */ sw $v0, 0x0($s0)
/* 3E698 80063298 AE030004 */ sw $v1, 0x4($s0)
/* 3E69C 8006329C 82030034 */ lb $v1, 0x34($s0)
.LIQUE_800632A0:
/* 3E6A0 800632A0 24020068 */ addiu $v0, $zero, 0x68
/* 3E6A4 800632A4 54620008 */ bnel $v1, $v0, .LIQUE_800632C8
/* 3E6A8 800632A8 8E020000 */ lw $v0, 0x0($s0)
/* 3E6AC 800632AC 96040006 */ lhu $a0, 0x6($s0)
/* 3E6B0 800632B0 00042400 */ sll $a0, $a0, 16
/* 3E6B4 800632B4 00041C03 */ sra $v1, $a0, 16
/* 3E6B8 800632B8 000417C3 */ sra $v0, $a0, 31
/* 3E6BC 800632BC AE020000 */ sw $v0, 0x0($s0)
/* 3E6C0 800632C0 AE030004 */ sw $v1, 0x4($s0)
/* 3E6C4 800632C4 8E020000 */ lw $v0, 0x0($s0)
.LIQUE_800632C8:
/* 3E6C8 800632C8 04430004 */ bgezl $v0, .LIQUE_800632DC
/* 3E6CC 800632CC 8E030030 */ lw $v1, 0x30($s0)
/* 3E6D0 800632D0 8E02000C */ lw $v0, 0xC($s0)
/* 3E6D4 800632D4 08018CC0 */ j .LIQUE_80063300
/* 3E6D8 800632D8 2403002D */ addiu $v1, $zero, 0x2D
.LIQUE_800632DC:
/* 3E6DC 800632DC 30620002 */ andi $v0, $v1, 0x2
/* 3E6E0 800632E0 50400004 */ beql $v0, $zero, .LIQUE_800632F4
/* 3E6E4 800632E4 30620001 */ andi $v0, $v1, 0x1
/* 3E6E8 800632E8 8E02000C */ lw $v0, 0xC($s0)
/* 3E6EC 800632EC 08018CC0 */ j .LIQUE_80063300
/* 3E6F0 800632F0 2403002B */ addiu $v1, $zero, 0x2B
.LIQUE_800632F4:
/* 3E6F4 800632F4 10400006 */ beqz $v0, .LIQUE_80063310
/* 3E6F8 800632F8 24030020 */ addiu $v1, $zero, 0x20
/* 3E6FC 800632FC 8E02000C */ lw $v0, 0xC($s0)
.LIQUE_80063300:
/* 3E700 80063300 01222021 */ addu $a0, $t1, $v0
/* 3E704 80063304 24420001 */ addiu $v0, $v0, 0x1
/* 3E708 80063308 A0830000 */ sb $v1, 0x0($a0)
/* 3E70C 8006330C AE02000C */ sw $v0, 0xC($s0)
.LIQUE_80063310:
/* 3E710 80063310 02002021 */ addu $a0, $s0, $zero
/* 3E714 80063314 8E02000C */ lw $v0, 0xC($s0)
/* 3E718 80063318 00C02821 */ addu $a1, $a2, $zero
/* 3E71C 8006331C 08018D67 */ j .LIQUE_8006359C
/* 3E720 80063320 01221021 */ addu $v0, $t1, $v0
glabel .LIQUE_80063324
/* 3E724 80063324 82030034 */ lb $v1, 0x34($s0)
/* 3E728 80063328 2402006C */ addiu $v0, $zero, 0x6C
/* 3E72C 8006332C 1062000F */ beq $v1, $v0, .LIQUE_8006336C
/* 3E730 80063330 2402004C */ addiu $v0, $zero, 0x4C
/* 3E734 80063334 5462000E */ bnel $v1, $v0, .LIQUE_80063370
/* 3E738 80063338 8D040000 */ lw $a0, 0x0($t0)
/* 3E73C 8006333C 8D020000 */ lw $v0, 0x0($t0)
/* 3E740 80063340 2403FFF8 */ addiu $v1, $zero, -0x8
/* 3E744 80063344 24420007 */ addiu $v0, $v0, 0x7
/* 3E748 80063348 00431024 */ and $v0, $v0, $v1
/* 3E74C 8006334C 24420008 */ addiu $v0, $v0, 0x8
/* 3E750 80063350 AD020000 */ sw $v0, 0x0($t0)
/* 3E754 80063354 8C44FFF8 */ lw $a0, -0x8($v0)
/* 3E758 80063358 8C45FFFC */ lw $a1, -0x4($v0)
/* 3E75C 8006335C AE040000 */ sw $a0, 0x0($s0)
/* 3E760 80063360 AE050004 */ sw $a1, 0x4($s0)
/* 3E764 80063364 08018CE7 */ j .LIQUE_8006339C
/* 3E768 80063368 82030034 */ lb $v1, 0x34($s0)
.LIQUE_8006336C:
/* 3E76C 8006336C 8D040000 */ lw $a0, 0x0($t0)
.LIQUE_80063370:
/* 3E770 80063370 2402FFFC */ addiu $v0, $zero, -0x4
/* 3E774 80063374 24840003 */ addiu $a0, $a0, 0x3
/* 3E778 80063378 00822024 */ and $a0, $a0, $v0
/* 3E77C 8006337C 24840004 */ addiu $a0, $a0, 0x4
/* 3E780 80063380 AD040000 */ sw $a0, 0x0($t0)
/* 3E784 80063384 8C85FFFC */ lw $a1, -0x4($a0)
/* 3E788 80063388 00A01821 */ addu $v1, $a1, $zero
/* 3E78C 8006338C 000517C3 */ sra $v0, $a1, 31
/* 3E790 80063390 AE020000 */ sw $v0, 0x0($s0)
/* 3E794 80063394 AE030004 */ sw $v1, 0x4($s0)
/* 3E798 80063398 82030034 */ lb $v1, 0x34($s0)
.LIQUE_8006339C:
/* 3E79C 8006339C 24020068 */ addiu $v0, $zero, 0x68
/* 3E7A0 800633A0 14620003 */ bne $v1, $v0, .LIQUE_800633B0
/* 3E7A4 800633A4 00000000 */ nop
/* 3E7A8 800633A8 08018CEF */ j .LIQUE_800633BC
/* 3E7AC 800633AC 96030006 */ lhu $v1, 0x6($s0)
.LIQUE_800633B0:
/* 3E7B0 800633B0 54600006 */ bnel $v1, $zero, .LIQUE_800633CC
/* 3E7B4 800633B4 8E020030 */ lw $v0, 0x30($s0)
/* 3E7B8 800633B8 8E030004 */ lw $v1, 0x4($s0)
.LIQUE_800633BC:
/* 3E7BC 800633BC 00001021 */ addu $v0, $zero, $zero
/* 3E7C0 800633C0 AE020000 */ sw $v0, 0x0($s0)
/* 3E7C4 800633C4 AE030004 */ sw $v1, 0x4($s0)
/* 3E7C8 800633C8 8E020030 */ lw $v0, 0x30($s0)
.LIQUE_800633CC:
/* 3E7CC 800633CC 30420008 */ andi $v0, $v0, 0x8
/* 3E7D0 800633D0 1040000F */ beqz $v0, .LIQUE_80063410
/* 3E7D4 800633D4 24030030 */ addiu $v1, $zero, 0x30
/* 3E7D8 800633D8 8E05000C */ lw $a1, 0xC($s0)
/* 3E7DC 800633DC 24040078 */ addiu $a0, $zero, 0x78
/* 3E7E0 800633E0 01251021 */ addu $v0, $t1, $a1
/* 3E7E4 800633E4 24A50001 */ addiu $a1, $a1, 0x1
/* 3E7E8 800633E8 A0430000 */ sb $v1, 0x0($v0)
/* 3E7EC 800633EC 10C40004 */ beq $a2, $a0, .LIQUE_80063400
/* 3E7F0 800633F0 AE05000C */ sw $a1, 0xC($s0)
/* 3E7F4 800633F4 24020058 */ addiu $v0, $zero, 0x58
/* 3E7F8 800633F8 14C20006 */ bne $a2, $v0, .LIQUE_80063414
/* 3E7FC 800633FC 02002021 */ addu $a0, $s0, $zero
.LIQUE_80063400:
/* 3E800 80063400 01251021 */ addu $v0, $t1, $a1
/* 3E804 80063404 24A30001 */ addiu $v1, $a1, 0x1
/* 3E808 80063408 A0460000 */ sb $a2, 0x0($v0)
/* 3E80C 8006340C AE03000C */ sw $v1, 0xC($s0)
.LIQUE_80063410:
/* 3E810 80063410 02002021 */ addu $a0, $s0, $zero
.LIQUE_80063414:
/* 3E814 80063414 8E02000C */ lw $v0, 0xC($s0)
/* 3E818 80063418 00C02821 */ addu $a1, $a2, $zero
/* 3E81C 8006341C 08018D67 */ j .LIQUE_8006359C
/* 3E820 80063420 01221021 */ addu $v0, $t1, $v0
glabel .LIQUE_80063424
/* 3E824 80063424 82030034 */ lb $v1, 0x34($s0)
/* 3E828 80063428 2402004C */ addiu $v0, $zero, 0x4C
/* 3E82C 8006342C 8D020000 */ lw $v0, 0x0($t0)
/* 3E830 80063430 2403FFF8 */ addiu $v1, $zero, -0x8
/* 3E834 80063434 24420007 */ addiu $v0, $v0, 0x7
/* 3E838 80063438 00431024 */ and $v0, $v0, $v1
/* 3E83C 8006343C 24420008 */ addiu $v0, $v0, 0x8
/* 3E840 80063440 AD020000 */ sw $v0, 0x0($t0)
/* 3E844 80063444 D440FFF8 */ ldc1 $f0, -0x8($v0)
/* 3E848 80063448 F6000000 */ sdc1 $f0, 0x0($s0)
/* 3E84C 8006344C 96020000 */ lhu $v0, 0x0($s0)
/* 3E850 80063450 30428000 */ andi $v0, $v0, 0x8000
/* 3E854 80063454 10400003 */ beqz $v0, .LIQUE_80063464
/* 3E858 80063458 2403002D */ addiu $v1, $zero, 0x2D
/* 3E85C 8006345C 08018D23 */ j .LIQUE_8006348C
/* 3E860 80063460 8E02000C */ lw $v0, 0xC($s0)
.LIQUE_80063464:
/* 3E864 80063464 8E030030 */ lw $v1, 0x30($s0)
/* 3E868 80063468 30620002 */ andi $v0, $v1, 0x2
/* 3E86C 8006346C 10400004 */ beqz $v0, .LIQUE_80063480
/* 3E870 80063470 30620001 */ andi $v0, $v1, 0x1
/* 3E874 80063474 8E02000C */ lw $v0, 0xC($s0)
/* 3E878 80063478 08018D23 */ j .LIQUE_8006348C
/* 3E87C 8006347C 2403002B */ addiu $v1, $zero, 0x2B
.LIQUE_80063480:
/* 3E880 80063480 10400006 */ beqz $v0, .LIQUE_8006349C
/* 3E884 80063484 24030020 */ addiu $v1, $zero, 0x20
/* 3E888 80063488 8E02000C */ lw $v0, 0xC($s0)
.LIQUE_8006348C:
/* 3E88C 8006348C 01222021 */ addu $a0, $t1, $v0
/* 3E890 80063490 24420001 */ addiu $v0, $v0, 0x1
/* 3E894 80063494 A0830000 */ sb $v1, 0x0($a0)
/* 3E898 80063498 AE02000C */ sw $v0, 0xC($s0)
.LIQUE_8006349C:
/* 3E89C 8006349C 02002021 */ addu $a0, $s0, $zero
/* 3E8A0 800634A0 8E02000C */ lw $v0, 0xC($s0)
/* 3E8A4 800634A4 00C02821 */ addu $a1, $a2, $zero
/* 3E8A8 800634A8 01221021 */ addu $v0, $t1, $v0
/* 3E8AC 800634AC 0C01AAAC */ jal _Ldtob
/* 3E8B0 800634B0 AE020008 */ sw $v0, 0x8($s0)
/* 3E8B4 800634B4 08018D89 */ j .LIQUE_80063624
/* 3E8B8 800634B8 8FBF0014 */ lw $ra, 0x14($sp)
glabel .LIQUE_800634BC
/* 3E8BC 800634BC 82030034 */ lb $v1, 0x34($s0)
/* 3E8C0 800634C0 24020068 */ addiu $v0, $zero, 0x68
/* 3E8C4 800634C4 1462000B */ bne $v1, $v0, .LIQUE_800634F4
/* 3E8C8 800634C8 2402006C */ addiu $v0, $zero, 0x6C
/* 3E8CC 800634CC 8D020000 */ lw $v0, 0x0($t0)
/* 3E8D0 800634D0 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E8D4 800634D4 24420003 */ addiu $v0, $v0, 0x3
/* 3E8D8 800634D8 00431024 */ and $v0, $v0, $v1
/* 3E8DC 800634DC 24420004 */ addiu $v0, $v0, 0x4
/* 3E8E0 800634E0 AD020000 */ sw $v0, 0x0($t0)
/* 3E8E4 800634E4 8C44FFFC */ lw $a0, -0x4($v0)
/* 3E8E8 800634E8 9603002E */ lhu $v1, 0x2E($s0)
/* 3E8EC 800634EC 08018D88 */ j .LIQUE_80063620
/* 3E8F0 800634F0 A4830000 */ sh $v1, 0x0($a0)
.LIQUE_800634F4:
/* 3E8F4 800634F4 10620010 */ beq $v1, $v0, .LIQUE_80063538
/* 3E8F8 800634F8 2402004C */ addiu $v0, $zero, 0x4C
/* 3E8FC 800634FC 5462000F */ bnel $v1, $v0, .LIQUE_8006353C
/* 3E900 80063500 8D020000 */ lw $v0, 0x0($t0)
/* 3E904 80063504 8D040000 */ lw $a0, 0x0($t0)
/* 3E908 80063508 2405FFFC */ addiu $a1, $zero, -0x4
/* 3E90C 8006350C 24840003 */ addiu $a0, $a0, 0x3
/* 3E910 80063510 00852024 */ and $a0, $a0, $a1
/* 3E914 80063514 24840004 */ addiu $a0, $a0, 0x4
/* 3E918 80063518 AD040000 */ sw $a0, 0x0($t0)
/* 3E91C 8006351C 8E03002C */ lw $v1, 0x2C($s0)
/* 3E920 80063520 8C85FFFC */ lw $a1, -0x4($a0)
/* 3E924 80063524 00001021 */ addu $v0, $zero, $zero
/* 3E928 80063528 ACA20000 */ sw $v0, 0x0($a1)
/* 3E92C 8006352C ACA30004 */ sw $v1, 0x4($a1)
/* 3E930 80063530 08018D89 */ j .LIQUE_80063624
/* 3E934 80063534 8FBF0014 */ lw $ra, 0x14($sp)
.LIQUE_80063538:
/* 3E938 80063538 8D020000 */ lw $v0, 0x0($t0)
.LIQUE_8006353C:
/* 3E93C 8006353C 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E940 80063540 24420003 */ addiu $v0, $v0, 0x3
/* 3E944 80063544 00431024 */ and $v0, $v0, $v1
/* 3E948 80063548 24420004 */ addiu $v0, $v0, 0x4
/* 3E94C 8006354C AD020000 */ sw $v0, 0x0($t0)
/* 3E950 80063550 8C44FFFC */ lw $a0, -0x4($v0)
/* 3E954 80063554 8E03002C */ lw $v1, 0x2C($s0)
/* 3E958 80063558 08018D88 */ j .LIQUE_80063620
/* 3E95C 8006355C AC830000 */ sw $v1, 0x0($a0)
glabel .LIQUE_80063560
/* 3E960 80063560 02002021 */ addu $a0, $s0, $zero
/* 3E964 80063564 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E968 80063568 8D020000 */ lw $v0, 0x0($t0)
/* 3E96C 8006356C 24050078 */ addiu $a1, $zero, 0x78
/* 3E970 80063570 24420003 */ addiu $v0, $v0, 0x3
/* 3E974 80063574 00431024 */ and $v0, $v0, $v1
/* 3E978 80063578 24420004 */ addiu $v0, $v0, 0x4
/* 3E97C 8006357C AD020000 */ sw $v0, 0x0($t0)
/* 3E980 80063580 8C43FFFC */ lw $v1, -0x4($v0)
/* 3E984 80063584 8E02000C */ lw $v0, 0xC($s0)
/* 3E988 80063588 00603821 */ addu $a3, $v1, $zero
/* 3E98C 8006358C 000337C3 */ sra $a2, $v1, 31
/* 3E990 80063590 01221021 */ addu $v0, $t1, $v0
/* 3E994 80063594 AE060000 */ sw $a2, 0x0($s0)
/* 3E998 80063598 AE070004 */ sw $a3, 0x4($s0)
.LIQUE_8006359C:
/* 3E99C 8006359C 0C01AA20 */ jal _Litob
/* 3E9A0 800635A0 AE020008 */ sw $v0, 0x8($s0)
/* 3E9A4 800635A4 08018D89 */ j .LIQUE_80063624
/* 3E9A8 800635A8 8FBF0014 */ lw $ra, 0x14($sp)
glabel .LIQUE_800635AC
/* 3E9AC 800635AC 8D020000 */ lw $v0, 0x0($t0)
/* 3E9B0 800635B0 2403FFFC */ addiu $v1, $zero, -0x4
/* 3E9B4 800635B4 24420003 */ addiu $v0, $v0, 0x3
/* 3E9B8 800635B8 00431024 */ and $v0, $v0, $v1
/* 3E9BC 800635BC 24420004 */ addiu $v0, $v0, 0x4
/* 3E9C0 800635C0 AD020000 */ sw $v0, 0x0($t0)
/* 3E9C4 800635C4 8C43FFFC */ lw $v1, -0x4($v0)
/* 3E9C8 800635C8 00602021 */ addu $a0, $v1, $zero
/* 3E9CC 800635CC 0C018B00 */ jal strlen
/* 3E9D0 800635D0 AE030008 */ sw $v1, 0x8($s0)
/* 3E9D4 800635D4 8E030024 */ lw $v1, 0x24($s0)
/* 3E9D8 800635D8 04600011 */ bltz $v1, .LIQUE_80063620
/* 3E9DC 800635DC AE020014 */ sw $v0, 0x14($s0)
/* 3E9E0 800635E0 0062102A */ slt $v0, $v1, $v0
/* 3E9E4 800635E4 5440000E */ bnel $v0, $zero, .LIQUE_80063620
/* 3E9E8 800635E8 AE030014 */ sw $v1, 0x14($s0)
/* 3E9EC 800635EC 08018D89 */ j .LIQUE_80063624
/* 3E9F0 800635F0 8FBF0014 */ lw $ra, 0x14($sp)
glabel .LIQUE_800635F4
/* 3E9F4 800635F4 8E02000C */ lw $v0, 0xC($s0)
/* 3E9F8 800635F8 24030025 */ addiu $v1, $zero, 0x25
/* 3E9FC 800635FC 01222021 */ addu $a0, $t1, $v0
/* 3EA00 80063600 24420001 */ addiu $v0, $v0, 0x1
/* 3EA04 80063604 08018D87 */ j .LIQUE_8006361C
/* 3EA08 80063608 A0830000 */ sb $v1, 0x0($a0)
glabel .LIQUE_8006360C
/* 3EA0C 8006360C 8E02000C */ lw $v0, 0xC($s0)
/* 3EA10 80063610 01221821 */ addu $v1, $t1, $v0
/* 3EA14 80063614 24420001 */ addiu $v0, $v0, 0x1
/* 3EA18 80063618 A0660000 */ sb $a2, 0x0($v1)
.LIQUE_8006361C:
/* 3EA1C 8006361C AE02000C */ sw $v0, 0xC($s0)
.LIQUE_80063620:
/* 3EA20 80063620 8FBF0014 */ lw $ra, 0x14($sp)
.LIQUE_80063624:
/* 3EA24 80063624 8FB00010 */ lw $s0, 0x10($sp)
/* 3EA28 80063628 03E00008 */ jr $ra
/* 3EA2C 8006362C 27BD0018 */ addiu $sp, $sp, 0x18
glabel sprintf
/* 3EA30 80063630 AFA50004 */ sw $a1, 0x4($sp)
/* 3EA34 80063634 AFA60008 */ sw $a2, 0x8($sp)
/* 3EA38 80063638 AFA7000C */ sw $a3, 0xC($sp)
/* 3EA3C 8006363C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3EA40 80063640 AFB00010 */ sw $s0, 0x10($sp)
/* 3EA44 80063644 00808021 */ addu $s0, $a0, $zero
/* 3EA48 80063648 00A03021 */ addu $a2, $a1, $zero
/* 3EA4C 8006364C 3C048006 */ lui $a0, %hi(proutSprintf)
/* 3EA50 80063650 24843688 */ addiu $a0, $a0, %lo(proutSprintf)
/* 3EA54 80063654 02002821 */ addu $a1, $s0, $zero
/* 3EA58 80063658 AFBF0014 */ sw $ra, 0x14($sp)
/* 3EA5C 8006365C 0C018B14 */ jal _Printf
/* 3EA60 80063660 27A70020 */ addiu $a3, $sp, 0x20
/* 3EA64 80063664 00401821 */ addu $v1, $v0, $zero
/* 3EA68 80063668 04600002 */ bltz $v1, .LIQUE_80063674
/* 3EA6C 8006366C 02031021 */ addu $v0, $s0, $v1
/* 3EA70 80063670 A0400000 */ sb $zero, 0x0($v0)
.LIQUE_80063674:
/* 3EA74 80063674 8FBF0014 */ lw $ra, 0x14($sp)
/* 3EA78 80063678 8FB00010 */ lw $s0, 0x10($sp)
/* 3EA7C 8006367C 00601021 */ addu $v0, $v1, $zero
/* 3EA80 80063680 03E00008 */ jr $ra
/* 3EA84 80063684 27BD0018 */ addiu $sp, $sp, 0x18
glabel proutSprintf
/* 3EA88 80063688 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3EA8C 8006368C AFB10014 */ sw $s1, 0x14($sp)
/* 3EA90 80063690 00808821 */ addu $s1, $a0, $zero
/* 3EA94 80063694 AFB00010 */ sw $s0, 0x10($sp)
/* 3EA98 80063698 AFBF0018 */ sw $ra, 0x18($sp)
/* 3EA9C 8006369C 0C018B09 */ jal memcpy
/* 3EAA0 800636A0 00C08021 */ addu $s0, $a2, $zero
/* 3EAA4 800636A4 02301021 */ addu $v0, $s1, $s0
/* 3EAA8 800636A8 8FBF0018 */ lw $ra, 0x18($sp)
/* 3EAAC 800636AC 8FB10014 */ lw $s1, 0x14($sp)
/* 3EAB0 800636B0 8FB00010 */ lw $s0, 0x10($sp)
/* 3EAB4 800636B4 03E00008 */ jr $ra
/* 3EAB8 800636B8 27BD0020 */ addiu $sp, $sp, 0x20
/* 3EABC 800636BC 00000000 */ nop

View File

@ -0,0 +1,40 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osCreateMesgQueue
/* 3EAC0 800636C0 27BDFFF8 */ addiu $sp, $sp, -0x8
/* 3EAC4 800636C4 AFBE0000 */ sw $fp, 0x0($sp)
/* 3EAC8 800636C8 03A0F021 */ addu $fp, $sp, $zero
/* 3EACC 800636CC AFC40008 */ sw $a0, 0x8($fp)
/* 3EAD0 800636D0 AFC5000C */ sw $a1, 0xC($fp)
/* 3EAD4 800636D4 AFC60010 */ sw $a2, 0x10($fp)
/* 3EAD8 800636D8 8FC20008 */ lw $v0, 0x8($fp)
/* 3EADC 800636DC 3C038009 */ lui $v1, %hi(__osThreadTail)
/* 3EAE0 800636E0 24633270 */ addiu $v1, $v1, %lo(__osThreadTail)
/* 3EAE4 800636E4 AC430000 */ sw $v1, 0x0($v0)
/* 3EAE8 800636E8 8FC20008 */ lw $v0, 0x8($fp)
/* 3EAEC 800636EC 3C038009 */ lui $v1, %hi(__osThreadTail)
/* 3EAF0 800636F0 24633270 */ addiu $v1, $v1, %lo(__osThreadTail)
/* 3EAF4 800636F4 AC430004 */ sw $v1, 0x4($v0)
/* 3EAF8 800636F8 8FC20008 */ lw $v0, 0x8($fp)
/* 3EAFC 800636FC AC400008 */ sw $zero, 0x8($v0)
/* 3EB00 80063700 8FC20008 */ lw $v0, 0x8($fp)
/* 3EB04 80063704 AC40000C */ sw $zero, 0xC($v0)
/* 3EB08 80063708 8FC20008 */ lw $v0, 0x8($fp)
/* 3EB0C 8006370C 8FC30010 */ lw $v1, 0x10($fp)
/* 3EB10 80063710 AC430010 */ sw $v1, 0x10($v0)
/* 3EB14 80063714 8FC20008 */ lw $v0, 0x8($fp)
/* 3EB18 80063718 8FC3000C */ lw $v1, 0xC($fp)
/* 3EB1C 8006371C AC430014 */ sw $v1, 0x14($v0)
/* 3EB20 80063720 03C0E821 */ addu $sp, $fp, $zero
/* 3EB24 80063724 8FBE0000 */ lw $fp, 0x0($sp)
/* 3EB28 80063728 03E00008 */ jr $ra
/* 3EB2C 8006372C 27BD0008 */ addiu $sp, $sp, 0x8

View File

@ -0,0 +1,117 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osJamMesg
/* 468B0 8006B4B0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 468B4 8006B4B4 AFBF0018 */ sw $ra, 0x18($sp)
/* 468B8 8006B4B8 AFBE0014 */ sw $fp, 0x14($sp)
/* 468BC 8006B4BC AFB00010 */ sw $s0, 0x10($sp)
/* 468C0 8006B4C0 03A0F021 */ addu $fp, $sp, $zero
/* 468C4 8006B4C4 AFC40020 */ sw $a0, 0x20($fp)
/* 468C8 8006B4C8 AFC50024 */ sw $a1, 0x24($fp)
/* 468CC 8006B4CC 0C019B40 */ jal __osDisableInt
/* 468D0 8006B4D0 AFC60028 */ sw $a2, 0x28($fp)
/* 468D4 8006B4D4 00408021 */ addu $s0, $v0, $zero
.LIQUE_8006B4D8:
/* 468D8 8006B4D8 8FC20020 */ lw $v0, 0x20($fp)
/* 468DC 8006B4DC 8FC30020 */ lw $v1, 0x20($fp)
/* 468E0 8006B4E0 8C420008 */ lw $v0, 0x8($v0)
/* 468E4 8006B4E4 8C630010 */ lw $v1, 0x10($v1)
/* 468E8 8006B4E8 0043102A */ slt $v0, $v0, $v1
/* 468EC 8006B4EC 10400003 */ beqz $v0, .LIQUE_8006B4FC
/* 468F0 8006B4F0 00000000 */ nop
/* 468F4 8006B4F4 0801AD53 */ j .LIQUE_8006B54C
/* 468F8 8006B4F8 00000000 */ nop
.LIQUE_8006B4FC:
/* 468FC 8006B4FC 8FC20028 */ lw $v0, 0x28($fp)
/* 46900 8006B500 24030001 */ addiu $v1, $zero, 0x1
/* 46904 8006B504 1443000B */ bne $v0, $v1, .LIQUE_8006B534
/* 46908 8006B508 00000000 */ nop
/* 4690C 8006B50C 3C028009 */ lui $v0, %hi(__osRunningThread)
/* 46910 8006B510 8C423280 */ lw $v0, %lo(__osRunningThread)($v0)
/* 46914 8006B514 24030008 */ addiu $v1, $zero, 0x8
/* 46918 8006B518 A4430010 */ sh $v1, 0x10($v0)
/* 4691C 8006B51C 8FC30020 */ lw $v1, 0x20($fp)
/* 46920 8006B520 24620004 */ addiu $v0, $v1, 0x4
/* 46924 8006B524 0C019A81 */ jal __osEnqueueAndYield
/* 46928 8006B528 00402021 */ addu $a0, $v0, $zero
/* 4692C 8006B52C 0801AD51 */ j .LIQUE_8006B544
/* 46930 8006B530 00000000 */ nop
.LIQUE_8006B534:
/* 46934 8006B534 0C019B5C */ jal __osRestoreInt
/* 46938 8006B538 02002021 */ addu $a0, $s0, $zero
/* 4693C 8006B53C 0801AD83 */ j .LIQUE_8006B60C
/* 46940 8006B540 2402FFFF */ addiu $v0, $zero, -0x1
.LIQUE_8006B544:
/* 46944 8006B544 0801AD36 */ j .LIQUE_8006B4D8
/* 46948 8006B548 00000000 */ nop
.LIQUE_8006B54C:
/* 4694C 8006B54C 8FC20020 */ lw $v0, 0x20($fp)
/* 46950 8006B550 8FC30020 */ lw $v1, 0x20($fp)
/* 46954 8006B554 8FC40020 */ lw $a0, 0x20($fp)
/* 46958 8006B558 8C63000C */ lw $v1, 0xC($v1)
/* 4695C 8006B55C 8C850010 */ lw $a1, 0x10($a0)
/* 46960 8006B560 00652021 */ addu $a0, $v1, $a1
/* 46964 8006B564 2483FFFF */ addiu $v1, $a0, -0x1
/* 46968 8006B568 8FC40020 */ lw $a0, 0x20($fp)
/* 4696C 8006B56C 8C850010 */ lw $a1, 0x10($a0)
/* 46970 8006B570 14A00002 */ bnez $a1, .LIQUE_8006B57C
/* 46974 8006B574 0065001A */ div $zero, $v1, $a1
/* 46978 8006B578 0007000D */ break 7
.LIQUE_8006B57C:
/* 4697C 8006B57C 2401FFFF */ addiu $at, $zero, -0x1
/* 46980 8006B580 14A10004 */ bne $a1, $at, .LIQUE_8006B594
/* 46984 8006B584 3C018000 */ lui $at, (0x80000000 >> 16)
/* 46988 8006B588 14610002 */ bne $v1, $at, .LIQUE_8006B594
/* 4698C 8006B58C 00000000 */ nop
/* 46990 8006B590 0006000D */ break 6
.LIQUE_8006B594:
/* 46994 8006B594 00001810 */ mfhi $v1
/* 46998 8006B598 AC43000C */ sw $v1, 0xC($v0)
/* 4699C 8006B59C 8FC20020 */ lw $v0, 0x20($fp)
/* 469A0 8006B5A0 8FC30020 */ lw $v1, 0x20($fp)
/* 469A4 8006B5A4 8C64000C */ lw $a0, 0xC($v1)
/* 469A8 8006B5A8 00801821 */ addu $v1, $a0, $zero
/* 469AC 8006B5AC 00032080 */ sll $a0, $v1, 2
/* 469B0 8006B5B0 8C430014 */ lw $v1, 0x14($v0)
/* 469B4 8006B5B4 00831021 */ addu $v0, $a0, $v1
/* 469B8 8006B5B8 8FC30024 */ lw $v1, 0x24($fp)
/* 469BC 8006B5BC AC430000 */ sw $v1, 0x0($v0)
/* 469C0 8006B5C0 8FC30020 */ lw $v1, 0x20($fp)
/* 469C4 8006B5C4 8FC20020 */ lw $v0, 0x20($fp)
/* 469C8 8006B5C8 8FC30020 */ lw $v1, 0x20($fp)
/* 469CC 8006B5CC 8C640008 */ lw $a0, 0x8($v1)
/* 469D0 8006B5D0 24830001 */ addiu $v1, $a0, 0x1
/* 469D4 8006B5D4 AC430008 */ sw $v1, 0x8($v0)
/* 469D8 8006B5D8 8FC20020 */ lw $v0, 0x20($fp)
/* 469DC 8006B5DC 8C430000 */ lw $v1, 0x0($v0)
/* 469E0 8006B5E0 8C620000 */ lw $v0, 0x0($v1)
/* 469E4 8006B5E4 10400005 */ beqz $v0, .LIQUE_8006B5FC
/* 469E8 8006B5E8 00000000 */ nop
/* 469EC 8006B5EC 0C019AD6 */ jal __osPopThread
/* 469F0 8006B5F0 8FC40020 */ lw $a0, 0x20($fp)
/* 469F4 8006B5F4 0C0190A0 */ jal osStartThread
/* 469F8 8006B5F8 00402021 */ addu $a0, $v0, $zero
.LIQUE_8006B5FC:
/* 469FC 8006B5FC 0C019B5C */ jal __osRestoreInt
/* 46A00 8006B600 02002021 */ addu $a0, $s0, $zero
/* 46A04 8006B604 0801AD83 */ j .LIQUE_8006B60C
/* 46A08 8006B608 00001021 */ addu $v0, $zero, $zero
.LIQUE_8006B60C:
/* 46A0C 8006B60C 03C0E821 */ addu $sp, $fp, $zero
/* 46A10 8006B610 8FBF0018 */ lw $ra, 0x18($sp)
/* 46A14 8006B614 8FBE0014 */ lw $fp, 0x14($sp)
/* 46A18 8006B618 8FB00010 */ lw $s0, 0x10($sp)
/* 46A1C 8006B61C 03E00008 */ jr $ra
/* 46A20 8006B620 27BD0020 */ addiu $sp, $sp, 0x20
/* 46A24 8006B624 00000000 */ nop
/* 46A28 8006B628 00000000 */ nop
/* 46A2C 8006B62C 00000000 */ nop

View File

@ -0,0 +1,114 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osRecvMesg
/* 3EB30 80063730 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3EB34 80063734 AFBF0018 */ sw $ra, 0x18($sp)
/* 3EB38 80063738 AFBE0014 */ sw $fp, 0x14($sp)
/* 3EB3C 8006373C AFB00010 */ sw $s0, 0x10($sp)
/* 3EB40 80063740 03A0F021 */ addu $fp, $sp, $zero
/* 3EB44 80063744 AFC40020 */ sw $a0, 0x20($fp)
/* 3EB48 80063748 AFC50024 */ sw $a1, 0x24($fp)
/* 3EB4C 8006374C 0C019B40 */ jal __osDisableInt
/* 3EB50 80063750 AFC60028 */ sw $a2, 0x28($fp)
/* 3EB54 80063754 00408021 */ addu $s0, $v0, $zero
.LIQUE_80063758:
/* 3EB58 80063758 8FC20020 */ lw $v0, 0x20($fp)
/* 3EB5C 8006375C 8C430008 */ lw $v1, 0x8($v0)
/* 3EB60 80063760 10600003 */ beqz $v1, .LIQUE_80063770
/* 3EB64 80063764 00000000 */ nop
/* 3EB68 80063768 08018DED */ j .LIQUE_800637B4
/* 3EB6C 8006376C 00000000 */ nop
.LIQUE_80063770:
/* 3EB70 80063770 8FC20028 */ lw $v0, 0x28($fp)
/* 3EB74 80063774 14400007 */ bnez $v0, .LIQUE_80063794
/* 3EB78 80063778 00000000 */ nop
/* 3EB7C 8006377C 0C019B5C */ jal __osRestoreInt
/* 3EB80 80063780 02002021 */ addu $a0, $s0, $zero
/* 3EB84 80063784 08018E20 */ j .LIQUE_80063880
/* 3EB88 80063788 2402FFFF */ addiu $v0, $zero, -0x1
/* 3EB8C 8006378C 08018DEB */ j .LIQUE_800637AC
/* 3EB90 80063790 00000000 */ nop
.LIQUE_80063794:
/* 3EB94 80063794 3C028009 */ lui $v0, %hi(__osRunningThread)
/* 3EB98 80063798 8C423280 */ lw $v0, %lo(__osRunningThread)($v0)
/* 3EB9C 8006379C 24030008 */ addiu $v1, $zero, 0x8
/* 3EBA0 800637A0 A4430010 */ sh $v1, 0x10($v0)
/* 3EBA4 800637A4 0C019A81 */ jal __osEnqueueAndYield
/* 3EBA8 800637A8 8FC40020 */ lw $a0, 0x20($fp)
.LIQUE_800637AC:
/* 3EBAC 800637AC 08018DD6 */ j .LIQUE_80063758
/* 3EBB0 800637B0 00000000 */ nop
.LIQUE_800637B4:
/* 3EBB4 800637B4 8FC20024 */ lw $v0, 0x24($fp)
/* 3EBB8 800637B8 1040000B */ beqz $v0, .LIQUE_800637E8
/* 3EBBC 800637BC 00000000 */ nop
/* 3EBC0 800637C0 8FC20024 */ lw $v0, 0x24($fp)
/* 3EBC4 800637C4 8FC30020 */ lw $v1, 0x20($fp)
/* 3EBC8 800637C8 8FC40020 */ lw $a0, 0x20($fp)
/* 3EBCC 800637CC 8C85000C */ lw $a1, 0xC($a0)
/* 3EBD0 800637D0 00A02021 */ addu $a0, $a1, $zero
/* 3EBD4 800637D4 00042880 */ sll $a1, $a0, 2
/* 3EBD8 800637D8 8C640014 */ lw $a0, 0x14($v1)
/* 3EBDC 800637DC 00A41821 */ addu $v1, $a1, $a0
/* 3EBE0 800637E0 8C640000 */ lw $a0, 0x0($v1)
/* 3EBE4 800637E4 AC440000 */ sw $a0, 0x0($v0)
.LIQUE_800637E8:
/* 3EBE8 800637E8 8FC20020 */ lw $v0, 0x20($fp)
/* 3EBEC 800637EC 8FC30020 */ lw $v1, 0x20($fp)
/* 3EBF0 800637F0 8C64000C */ lw $a0, 0xC($v1)
/* 3EBF4 800637F4 24830001 */ addiu $v1, $a0, 0x1
/* 3EBF8 800637F8 8FC40020 */ lw $a0, 0x20($fp)
/* 3EBFC 800637FC 8C850010 */ lw $a1, 0x10($a0)
/* 3EC00 80063800 14A00002 */ bnez $a1, .LIQUE_8006380C
/* 3EC04 80063804 0065001A */ div $zero, $v1, $a1
/* 3EC08 80063808 0007000D */ break 7
.LIQUE_8006380C:
/* 3EC0C 8006380C 2401FFFF */ addiu $at, $zero, -0x1
/* 3EC10 80063810 14A10004 */ bne $a1, $at, .LIQUE_80063824
/* 3EC14 80063814 3C018000 */ lui $at, (0x80000000 >> 16)
/* 3EC18 80063818 14610002 */ bne $v1, $at, .LIQUE_80063824
/* 3EC1C 8006381C 00000000 */ nop
/* 3EC20 80063820 0006000D */ break 6
.LIQUE_80063824:
/* 3EC24 80063824 00001810 */ mfhi $v1
/* 3EC28 80063828 AC43000C */ sw $v1, 0xC($v0)
/* 3EC2C 8006382C 8FC30020 */ lw $v1, 0x20($fp)
/* 3EC30 80063830 8FC20020 */ lw $v0, 0x20($fp)
/* 3EC34 80063834 8FC30020 */ lw $v1, 0x20($fp)
/* 3EC38 80063838 8C640008 */ lw $a0, 0x8($v1)
/* 3EC3C 8006383C 2483FFFF */ addiu $v1, $a0, -0x1
/* 3EC40 80063840 AC430008 */ sw $v1, 0x8($v0)
/* 3EC44 80063844 8FC20020 */ lw $v0, 0x20($fp)
/* 3EC48 80063848 8C430004 */ lw $v1, 0x4($v0)
/* 3EC4C 8006384C 8C620000 */ lw $v0, 0x0($v1)
/* 3EC50 80063850 10400007 */ beqz $v0, .LIQUE_80063870
/* 3EC54 80063854 00000000 */ nop
/* 3EC58 80063858 8FC30020 */ lw $v1, 0x20($fp)
/* 3EC5C 8006385C 24620004 */ addiu $v0, $v1, 0x4
/* 3EC60 80063860 0C019AD6 */ jal __osPopThread
/* 3EC64 80063864 00402021 */ addu $a0, $v0, $zero
/* 3EC68 80063868 0C0190A0 */ jal osStartThread
/* 3EC6C 8006386C 00402021 */ addu $a0, $v0, $zero
.LIQUE_80063870:
/* 3EC70 80063870 0C019B5C */ jal __osRestoreInt
/* 3EC74 80063874 02002021 */ addu $a0, $s0, $zero
/* 3EC78 80063878 08018E20 */ j .LIQUE_80063880
/* 3EC7C 8006387C 00001021 */ addu $v0, $zero, $zero
.LIQUE_80063880:
/* 3EC80 80063880 03C0E821 */ addu $sp, $fp, $zero
/* 3EC84 80063884 8FBF0018 */ lw $ra, 0x18($sp)
/* 3EC88 80063888 8FBE0014 */ lw $fp, 0x14($sp)
/* 3EC8C 8006388C 8FB00010 */ lw $s0, 0x10($sp)
/* 3EC90 80063890 03E00008 */ jr $ra
/* 3EC94 80063894 27BD0020 */ addiu $sp, $sp, 0x20
/* 3EC98 80063898 00000000 */ nop
/* 3EC9C 8006389C 00000000 */ nop

View File

@ -0,0 +1,113 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osSendMesg
/* 3ECA0 800638A0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3ECA4 800638A4 AFBF001C */ sw $ra, 0x1C($sp)
/* 3ECA8 800638A8 AFBE0018 */ sw $fp, 0x18($sp)
/* 3ECAC 800638AC AFB10014 */ sw $s1, 0x14($sp)
/* 3ECB0 800638B0 AFB00010 */ sw $s0, 0x10($sp)
/* 3ECB4 800638B4 03A0F021 */ addu $fp, $sp, $zero
/* 3ECB8 800638B8 AFC40020 */ sw $a0, 0x20($fp)
/* 3ECBC 800638BC AFC50024 */ sw $a1, 0x24($fp)
/* 3ECC0 800638C0 0C019B40 */ jal __osDisableInt
/* 3ECC4 800638C4 AFC60028 */ sw $a2, 0x28($fp)
/* 3ECC8 800638C8 00408021 */ addu $s0, $v0, $zero
.LIQUE_800638CC:
/* 3ECCC 800638CC 8FC20020 */ lw $v0, 0x20($fp)
/* 3ECD0 800638D0 8FC30020 */ lw $v1, 0x20($fp)
/* 3ECD4 800638D4 8C420008 */ lw $v0, 0x8($v0)
/* 3ECD8 800638D8 8C630010 */ lw $v1, 0x10($v1)
/* 3ECDC 800638DC 0043102A */ slt $v0, $v0, $v1
/* 3ECE0 800638E0 10400003 */ beqz $v0, .LIQUE_800638F0
/* 3ECE4 800638E4 00000000 */ nop
/* 3ECE8 800638E8 08018E50 */ j .LIQUE_80063940
/* 3ECEC 800638EC 00000000 */ nop
.LIQUE_800638F0:
/* 3ECF0 800638F0 8FC20028 */ lw $v0, 0x28($fp)
/* 3ECF4 800638F4 24030001 */ addiu $v1, $zero, 0x1
/* 3ECF8 800638F8 1443000B */ bne $v0, $v1, .LIQUE_80063928
/* 3ECFC 800638FC 00000000 */ nop
/* 3ED00 80063900 3C028009 */ lui $v0, %hi(__osRunningThread)
/* 3ED04 80063904 8C423280 */ lw $v0, %lo(__osRunningThread)($v0)
/* 3ED08 80063908 24030008 */ addiu $v1, $zero, 0x8
/* 3ED0C 8006390C A4430010 */ sh $v1, 0x10($v0)
/* 3ED10 80063910 8FC30020 */ lw $v1, 0x20($fp)
/* 3ED14 80063914 24620004 */ addiu $v0, $v1, 0x4
/* 3ED18 80063918 0C019A81 */ jal __osEnqueueAndYield
/* 3ED1C 8006391C 00402021 */ addu $a0, $v0, $zero
/* 3ED20 80063920 08018E4E */ j .LIQUE_80063938
/* 3ED24 80063924 00000000 */ nop
.LIQUE_80063928:
/* 3ED28 80063928 0C019B5C */ jal __osRestoreInt
/* 3ED2C 8006392C 02002021 */ addu $a0, $s0, $zero
/* 3ED30 80063930 08018E7C */ j .LIQUE_800639F0
/* 3ED34 80063934 2402FFFF */ addiu $v0, $zero, -0x1
.LIQUE_80063938:
/* 3ED38 80063938 08018E33 */ j .LIQUE_800638CC
/* 3ED3C 8006393C 00000000 */ nop
.LIQUE_80063940:
/* 3ED40 80063940 8FC20020 */ lw $v0, 0x20($fp)
/* 3ED44 80063944 8FC30020 */ lw $v1, 0x20($fp)
/* 3ED48 80063948 8C42000C */ lw $v0, 0xC($v0)
/* 3ED4C 8006394C 8C630008 */ lw $v1, 0x8($v1)
/* 3ED50 80063950 00438821 */ addu $s1, $v0, $v1
/* 3ED54 80063954 8FC20020 */ lw $v0, 0x20($fp)
/* 3ED58 80063958 8C430010 */ lw $v1, 0x10($v0)
/* 3ED5C 8006395C 14600002 */ bnez $v1, .LIQUE_80063968
/* 3ED60 80063960 0223001A */ div $zero, $s1, $v1
/* 3ED64 80063964 0007000D */ break 7
.LIQUE_80063968:
/* 3ED68 80063968 2401FFFF */ addiu $at, $zero, -0x1
/* 3ED6C 8006396C 14610004 */ bne $v1, $at, .LIQUE_80063980
/* 3ED70 80063970 3C018000 */ lui $at, (0x80000000 >> 16)
/* 3ED74 80063974 16210002 */ bne $s1, $at, .LIQUE_80063980
/* 3ED78 80063978 00000000 */ nop
/* 3ED7C 8006397C 0006000D */ break 6
.LIQUE_80063980:
/* 3ED80 80063980 00001010 */ mfhi $v0
/* 3ED84 80063984 00408821 */ addu $s1, $v0, $zero
/* 3ED88 80063988 8FC20020 */ lw $v0, 0x20($fp)
/* 3ED8C 8006398C 02201821 */ addu $v1, $s1, $zero
/* 3ED90 80063990 00032080 */ sll $a0, $v1, 2
/* 3ED94 80063994 8C430014 */ lw $v1, 0x14($v0)
/* 3ED98 80063998 00831021 */ addu $v0, $a0, $v1
/* 3ED9C 8006399C 8FC30024 */ lw $v1, 0x24($fp)
/* 3EDA0 800639A0 AC430000 */ sw $v1, 0x0($v0)
/* 3EDA4 800639A4 8FC30020 */ lw $v1, 0x20($fp)
/* 3EDA8 800639A8 8FC20020 */ lw $v0, 0x20($fp)
/* 3EDAC 800639AC 8FC30020 */ lw $v1, 0x20($fp)
/* 3EDB0 800639B0 8C640008 */ lw $a0, 0x8($v1)
/* 3EDB4 800639B4 24830001 */ addiu $v1, $a0, 0x1
/* 3EDB8 800639B8 AC430008 */ sw $v1, 0x8($v0)
/* 3EDBC 800639BC 8FC20020 */ lw $v0, 0x20($fp)
/* 3EDC0 800639C0 8C430000 */ lw $v1, 0x0($v0)
/* 3EDC4 800639C4 8C620000 */ lw $v0, 0x0($v1)
/* 3EDC8 800639C8 10400005 */ beqz $v0, .LIQUE_800639E0
/* 3EDCC 800639CC 00000000 */ nop
/* 3EDD0 800639D0 0C019AD6 */ jal __osPopThread
/* 3EDD4 800639D4 8FC40020 */ lw $a0, 0x20($fp)
/* 3EDD8 800639D8 0C0190A0 */ jal osStartThread
/* 3EDDC 800639DC 00402021 */ addu $a0, $v0, $zero
.LIQUE_800639E0:
/* 3EDE0 800639E0 0C019B5C */ jal __osRestoreInt
/* 3EDE4 800639E4 02002021 */ addu $a0, $s0, $zero
/* 3EDE8 800639E8 08018E7C */ j .LIQUE_800639F0
/* 3EDEC 800639EC 00001021 */ addu $v0, $zero, $zero
.LIQUE_800639F0:
/* 3EDF0 800639F0 03C0E821 */ addu $sp, $fp, $zero
/* 3EDF4 800639F4 8FBF001C */ lw $ra, 0x1C($sp)
/* 3EDF8 800639F8 8FBE0018 */ lw $fp, 0x18($sp)
/* 3EDFC 800639FC 8FB10014 */ lw $s1, 0x14($sp)
/* 3EE00 80063A00 8FB00010 */ lw $s0, 0x10($sp)
/* 3EE04 80063A04 03E00008 */ jr $ra
/* 3EE08 80063A08 27BD0020 */ addiu $sp, $sp, 0x20
/* 3EE0C 80063A0C 00000000 */ nop

View File

@ -0,0 +1,66 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel osSetEventMesg
/* 3EE10 80063A10 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3EE14 80063A14 AFBF0020 */ sw $ra, 0x20($sp)
/* 3EE18 80063A18 AFBE001C */ sw $fp, 0x1C($sp)
/* 3EE1C 80063A1C AFB00018 */ sw $s0, 0x18($sp)
/* 3EE20 80063A20 03A0F021 */ addu $fp, $sp, $zero
/* 3EE24 80063A24 AFC40028 */ sw $a0, 0x28($fp)
/* 3EE28 80063A28 AFC5002C */ sw $a1, 0x2C($fp)
/* 3EE2C 80063A2C 0C019B40 */ jal __osDisableInt
/* 3EE30 80063A30 AFC60030 */ sw $a2, 0x30($fp)
/* 3EE34 80063A34 00408021 */ addu $s0, $v0, $zero
/* 3EE38 80063A38 8FC20028 */ lw $v0, 0x28($fp)
/* 3EE3C 80063A3C 00401821 */ addu $v1, $v0, $zero
/* 3EE40 80063A40 000310C0 */ sll $v0, $v1, 3
/* 3EE44 80063A44 3C03800E */ lui $v1, %hi(__osEventStateTab)
/* 3EE48 80063A48 2463825C */ addiu $v1, $v1, %lo(__osEventStateTab)
/* 3EE4C 80063A4C 00621021 */ addu $v0, $v1, $v0
/* 3EE50 80063A50 AFC20010 */ sw $v0, 0x10($fp)
/* 3EE54 80063A54 8FC20010 */ lw $v0, 0x10($fp)
/* 3EE58 80063A58 8FC3002C */ lw $v1, 0x2C($fp)
/* 3EE5C 80063A5C AC430000 */ sw $v1, 0x0($v0)
/* 3EE60 80063A60 8FC20010 */ lw $v0, 0x10($fp)
/* 3EE64 80063A64 8FC30030 */ lw $v1, 0x30($fp)
/* 3EE68 80063A68 AC430004 */ sw $v1, 0x4($v0)
/* 3EE6C 80063A6C 8FC20028 */ lw $v0, 0x28($fp)
/* 3EE70 80063A70 2403000E */ addiu $v1, $zero, 0xE
/* 3EE74 80063A74 14430010 */ bne $v0, $v1, .LIQUE_80063AB8
/* 3EE78 80063A78 00000000 */ nop
/* 3EE7C 80063A7C 3C028009 */ lui $v0, %hi(__osShutdown)
/* 3EE80 80063A80 8C4245AC */ lw $v0, %lo(__osShutdown)($v0)
/* 3EE84 80063A84 10400009 */ beqz $v0, .LIQUE_80063AAC
/* 3EE88 80063A88 00000000 */ nop
/* 3EE8C 80063A8C 3C028009 */ lui $v0, %hi(__osPreNMI)
/* 3EE90 80063A90 8C423250 */ lw $v0, %lo(__osPreNMI)($v0)
/* 3EE94 80063A94 14400005 */ bnez $v0, .LIQUE_80063AAC
/* 3EE98 80063A98 00000000 */ nop
/* 3EE9C 80063A9C 8FC4002C */ lw $a0, 0x2C($fp)
/* 3EEA0 80063AA0 8FC50030 */ lw $a1, 0x30($fp)
/* 3EEA4 80063AA4 0C018E28 */ jal osSendMesg
/* 3EEA8 80063AA8 00003021 */ addu $a2, $zero, $zero
.LIQUE_80063AAC:
/* 3EEAC 80063AAC 24020001 */ addiu $v0, $zero, 0x1
/* 3EEB0 80063AB0 3C018009 */ lui $at, %hi(__osPreNMI)
/* 3EEB4 80063AB4 AC223250 */ sw $v0, %lo(__osPreNMI)($at)
.LIQUE_80063AB8:
/* 3EEB8 80063AB8 0C019B5C */ jal __osRestoreInt
/* 3EEBC 80063ABC 02002021 */ addu $a0, $s0, $zero
/* 3EEC0 80063AC0 03C0E821 */ addu $sp, $fp, $zero
/* 3EEC4 80063AC4 8FBF0020 */ lw $ra, 0x20($sp)
/* 3EEC8 80063AC8 8FBE001C */ lw $fp, 0x1C($sp)
/* 3EECC 80063ACC 8FB00018 */ lw $s0, 0x18($sp)
/* 3EED0 80063AD0 03E00008 */ jr $ra
/* 3EED4 80063AD4 27BD0028 */ addiu $sp, $sp, 0x28
/* 3EED8 80063AD8 00000000 */ nop
/* 3EEDC 80063ADC 00000000 */ nop

View File

@ -0,0 +1,78 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxCatF
/* 40FC0 80065BC0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 40FC4 80065BC4 24820040 */ addiu $v0, $a0, 0x40
/* 40FC8 80065BC8 24A30010 */ addiu $v1, $a1, 0x10
/* 40FCC 80065BCC 03A05021 */ addu $t2, $sp, $zero
.LIQUE_80065BD0:
/* 40FD0 80065BD0 00A03821 */ addu $a3, $a1, $zero
.LIQUE_80065BD4:
/* 40FD4 80065BD4 C4840000 */ lwc1 $f4, 0x0($a0)
/* 40FD8 80065BD8 C4E60000 */ lwc1 $f6, 0x0($a3)
/* 40FDC 80065BDC 46062202 */ mul.s $f8, $f4, $f6
/* 40FE0 80065BE0 C48A0004 */ lwc1 $f10, 0x4($a0)
/* 40FE4 80065BE4 C4F00010 */ lwc1 $f16, 0x10($a3)
/* 40FE8 80065BE8 46105482 */ mul.s $f18, $f10, $f16
/* 40FEC 80065BEC 46124200 */ add.s $f8, $f8, $f18
/* 40FF0 80065BF0 C4840008 */ lwc1 $f4, 0x8($a0)
/* 40FF4 80065BF4 C4E60020 */ lwc1 $f6, 0x20($a3)
/* 40FF8 80065BF8 46062482 */ mul.s $f18, $f4, $f6
/* 40FFC 80065BFC 46124200 */ add.s $f8, $f8, $f18
/* 41000 80065C00 C48A000C */ lwc1 $f10, 0xC($a0)
/* 41004 80065C04 C4F00030 */ lwc1 $f16, 0x30($a3)
/* 41008 80065C08 46105482 */ mul.s $f18, $f10, $f16
/* 4100C 80065C0C 46124200 */ add.s $f8, $f8, $f18
/* 41010 80065C10 E5480000 */ swc1 $f8, 0x0($t2)
/* 41014 80065C14 24E70004 */ addiu $a3, $a3, 0x4
/* 41018 80065C18 14E3FFEE */ bne $a3, $v1, .LIQUE_80065BD4
/* 4101C 80065C1C 254A0004 */ addiu $t2, $t2, 0x4
/* 41020 80065C20 24840010 */ addiu $a0, $a0, 0x10
/* 41024 80065C24 1482FFEA */ bne $a0, $v0, .LIQUE_80065BD0
/* 41028 80065C28 00000000 */ nop
/* 4102C 80065C2C E4C8003C */ swc1 $f8, 0x3C($a2)
/* 41030 80065C30 8FA80000 */ lw $t0, 0x0($sp)
/* 41034 80065C34 8FA90004 */ lw $t1, 0x4($sp)
/* 41038 80065C38 8FAA0008 */ lw $t2, 0x8($sp)
/* 4103C 80065C3C 8FAB000C */ lw $t3, 0xC($sp)
/* 41040 80065C40 8FAC0010 */ lw $t4, 0x10($sp)
/* 41044 80065C44 8FAD0014 */ lw $t5, 0x14($sp)
/* 41048 80065C48 8FAE0018 */ lw $t6, 0x18($sp)
/* 4104C 80065C4C 8FAF001C */ lw $t7, 0x1C($sp)
/* 41050 80065C50 8FB80020 */ lw $t8, 0x20($sp)
/* 41054 80065C54 8FB90024 */ lw $t9, 0x24($sp)
/* 41058 80065C58 8FA20028 */ lw $v0, 0x28($sp)
/* 4105C 80065C5C 8FA3002C */ lw $v1, 0x2C($sp)
/* 41060 80065C60 8FA40030 */ lw $a0, 0x30($sp)
/* 41064 80065C64 8FA50034 */ lw $a1, 0x34($sp)
/* 41068 80065C68 8FA70038 */ lw $a3, 0x38($sp)
/* 4106C 80065C6C ACC80000 */ sw $t0, 0x0($a2)
/* 41070 80065C70 ACC90004 */ sw $t1, 0x4($a2)
/* 41074 80065C74 ACCA0008 */ sw $t2, 0x8($a2)
/* 41078 80065C78 ACCB000C */ sw $t3, 0xC($a2)
/* 4107C 80065C7C ACCC0010 */ sw $t4, 0x10($a2)
/* 41080 80065C80 ACCD0014 */ sw $t5, 0x14($a2)
/* 41084 80065C84 ACCE0018 */ sw $t6, 0x18($a2)
/* 41088 80065C88 ACCF001C */ sw $t7, 0x1C($a2)
/* 4108C 80065C8C ACD80020 */ sw $t8, 0x20($a2)
/* 41090 80065C90 ACD90024 */ sw $t9, 0x24($a2)
/* 41094 80065C94 ACC20028 */ sw $v0, 0x28($a2)
/* 41098 80065C98 ACC3002C */ sw $v1, 0x2C($a2)
/* 4109C 80065C9C ACC40030 */ sw $a0, 0x30($a2)
/* 410A0 80065CA0 ACC50034 */ sw $a1, 0x34($a2)
/* 410A4 80065CA4 ACC70038 */ sw $a3, 0x38($a2)
/* 410A8 80065CA8 03E00008 */ jr $ra
/* 410AC 80065CAC 27BD0040 */ addiu $sp, $sp, 0x40
/* 410B0 80065CB0 00000000 */ nop
/* 410B4 80065CB4 00000000 */ nop
/* 410B8 80065CB8 00000000 */ nop
/* 410BC 80065CBC 00000000 */ nop

View File

@ -0,0 +1,44 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxCatL
/* 412F0 80065EF0 27BDFF20 */ addiu $sp, $sp, -0xE0
/* 412F4 80065EF4 00801021 */ addu $v0, $a0, $zero
/* 412F8 80065EF8 27A40010 */ addiu $a0, $sp, 0x10
/* 412FC 80065EFC AFB000D0 */ sw $s0, 0xD0($sp)
/* 41300 80065F00 00A08021 */ addu $s0, $a1, $zero
/* 41304 80065F04 00402821 */ addu $a1, $v0, $zero
/* 41308 80065F08 AFB200D8 */ sw $s2, 0xD8($sp)
/* 4130C 80065F0C 00C09021 */ addu $s2, $a2, $zero
/* 41310 80065F10 AFBF00DC */ sw $ra, 0xDC($sp)
/* 41314 80065F14 0C0196D0 */ jal guMtxL2F
/* 41318 80065F18 AFB100D4 */ sw $s1, 0xD4($sp)
/* 4131C 80065F1C 27B10050 */ addiu $s1, $sp, 0x50
/* 41320 80065F20 02202021 */ addu $a0, $s1, $zero
/* 41324 80065F24 0C0196D0 */ jal guMtxL2F
/* 41328 80065F28 02002821 */ addu $a1, $s0, $zero
/* 4132C 80065F2C 27A40010 */ addiu $a0, $sp, 0x10
/* 41330 80065F30 02202821 */ addu $a1, $s1, $zero
/* 41334 80065F34 27B00090 */ addiu $s0, $sp, 0x90
/* 41338 80065F38 0C0196F0 */ jal guMtxCatF
/* 4133C 80065F3C 02003021 */ addu $a2, $s0, $zero
/* 41340 80065F40 02002021 */ addu $a0, $s0, $zero
/* 41344 80065F44 0C0196B0 */ jal guMtxF2L
/* 41348 80065F48 02402821 */ addu $a1, $s2, $zero
/* 4134C 80065F4C 8FBF00DC */ lw $ra, 0xDC($sp)
/* 41350 80065F50 8FB200D8 */ lw $s2, 0xD8($sp)
/* 41354 80065F54 8FB100D4 */ lw $s1, 0xD4($sp)
/* 41358 80065F58 8FB000D0 */ lw $s0, 0xD0($sp)
/* 4135C 80065F5C 03E00008 */ jr $ra
/* 41360 80065F60 27BD00E0 */ addiu $sp, $sp, 0xE0
/* 41364 80065F64 00000000 */ nop
/* 41368 80065F68 00000000 */ nop
/* 4136C 80065F6C 00000000 */ nop

View File

@ -0,0 +1,45 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxF2L
/* 40EC0 80065AC0 3C014780 */ lui $at, (0x47800000 >> 16)
/* 40EC4 80065AC4 44810000 */ mtc1 $at, $f0
/* 40EC8 80065AC8 3C19FFFF */ lui $t9, (0xFFFF0000 >> 16)
/* 40ECC 80065ACC 24B80020 */ addiu $t8, $a1, 0x20
.LIQUE_80065AD0:
/* 40ED0 80065AD0 C4840000 */ lwc1 $f4, 0x0($a0)
/* 40ED4 80065AD4 46002182 */ mul.s $f6, $f4, $f0
/* 40ED8 80065AD8 4600320D */ trunc.w.s $f8, $f6
/* 40EDC 80065ADC C48A0004 */ lwc1 $f10, 0x4($a0)
/* 40EE0 80065AE0 46005402 */ mul.s $f16, $f10, $f0
/* 40EE4 80065AE4 4600848D */ trunc.w.s $f18, $f16
/* 40EE8 80065AE8 44084000 */ mfc1 $t0, $f8
/* 40EEC 80065AEC 44099000 */ mfc1 $t1, $f18
/* 40EF0 80065AF0 01195024 */ and $t2, $t0, $t9
/* 40EF4 80065AF4 00095C02 */ srl $t3, $t1, 16
/* 40EF8 80065AF8 014B6025 */ or $t4, $t2, $t3
/* 40EFC 80065AFC ACAC0000 */ sw $t4, 0x0($a1)
/* 40F00 80065B00 00086C00 */ sll $t5, $t0, 16
/* 40F04 80065B04 312EFFFF */ andi $t6, $t1, 0xFFFF
/* 40F08 80065B08 01AE7825 */ or $t7, $t5, $t6
/* 40F0C 80065B0C ACAF0020 */ sw $t7, 0x20($a1)
/* 40F10 80065B10 24A50004 */ addiu $a1, $a1, 0x4
/* 40F14 80065B14 14B8FFEE */ bne $a1, $t8, .LIQUE_80065AD0
/* 40F18 80065B18 24840008 */ addiu $a0, $a0, 0x8
/* 40F1C 80065B1C 03E00008 */ jr $ra
/* 40F20 80065B20 00000000 */ nop
/* 40F24 80065B24 00000000 */ nop
/* 40F28 80065B28 00000000 */ nop
/* 40F2C 80065B2C 00000000 */ nop
/* 40F30 80065B30 00000000 */ nop
/* 40F34 80065B34 00000000 */ nop
/* 40F38 80065B38 00000000 */ nop
/* 40F3C 80065B3C 00000000 */ nop

View File

@ -0,0 +1,37 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel guMtxIdent
/* 40E00 80065A00 20080001 */ addi $t0, $zero, 0x1 # handwritten instruction
/* 40E04 80065A04 00084C00 */ sll $t1, $t0, 16
/* 40E08 80065A08 AC890000 */ sw $t1, 0x0($a0)
/* 40E0C 80065A0C AC800004 */ sw $zero, 0x4($a0)
/* 40E10 80065A10 AC880008 */ sw $t0, 0x8($a0)
/* 40E14 80065A14 AC80000C */ sw $zero, 0xC($a0)
/* 40E18 80065A18 AC800010 */ sw $zero, 0x10($a0)
/* 40E1C 80065A1C AC890014 */ sw $t1, 0x14($a0)
/* 40E20 80065A20 AC800018 */ sw $zero, 0x18($a0)
/* 40E24 80065A24 AC88001C */ sw $t0, 0x1C($a0)
/* 40E28 80065A28 AC800020 */ sw $zero, 0x20($a0)
/* 40E2C 80065A2C AC800024 */ sw $zero, 0x24($a0)
/* 40E30 80065A30 AC800028 */ sw $zero, 0x28($a0)
/* 40E34 80065A34 AC80002C */ sw $zero, 0x2C($a0)
/* 40E38 80065A38 AC800030 */ sw $zero, 0x30($a0)
/* 40E3C 80065A3C AC800034 */ sw $zero, 0x34($a0)
/* 40E40 80065A40 AC800038 */ sw $zero, 0x38($a0)
/* 40E44 80065A44 03E00008 */ jr $ra
/* 40E48 80065A48 AC80003C */ sw $zero, 0x3C($a0)
/* 40E4C 80065A4C 00000000 */ nop
/* 40E50 80065A50 00000000 */ nop
/* 40E54 80065A54 00000000 */ nop
/* 40E58 80065A58 00000000 */ nop
/* 40E5C 80065A5C 00000000 */ nop

View File

@ -0,0 +1,36 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxIdentF
/* 40E60 80065A60 3C083F80 */ lui $t0, (0x3F800000 >> 16)
/* 40E64 80065A64 AC880000 */ sw $t0, 0x0($a0)
/* 40E68 80065A68 AC800004 */ sw $zero, 0x4($a0)
/* 40E6C 80065A6C AC800008 */ sw $zero, 0x8($a0)
/* 40E70 80065A70 AC80000C */ sw $zero, 0xC($a0)
/* 40E74 80065A74 AC800010 */ sw $zero, 0x10($a0)
/* 40E78 80065A78 AC880014 */ sw $t0, 0x14($a0)
/* 40E7C 80065A7C AC800018 */ sw $zero, 0x18($a0)
/* 40E80 80065A80 AC80001C */ sw $zero, 0x1C($a0)
/* 40E84 80065A84 AC800020 */ sw $zero, 0x20($a0)
/* 40E88 80065A88 AC800024 */ sw $zero, 0x24($a0)
/* 40E8C 80065A8C AC880028 */ sw $t0, 0x28($a0)
/* 40E90 80065A90 AC80002C */ sw $zero, 0x2C($a0)
/* 40E94 80065A94 AC800030 */ sw $zero, 0x30($a0)
/* 40E98 80065A98 AC800034 */ sw $zero, 0x34($a0)
/* 40E9C 80065A9C AC800038 */ sw $zero, 0x38($a0)
/* 40EA0 80065AA0 03E00008 */ jr $ra
/* 40EA4 80065AA4 AC88003C */ sw $t0, 0x3C($a0)
/* 40EA8 80065AA8 00000000 */ nop
/* 40EAC 80065AAC 00000000 */ nop
/* 40EB0 80065AB0 00000000 */ nop
/* 40EB4 80065AB4 00000000 */ nop
/* 40EB8 80065AB8 00000000 */ nop
/* 40EBC 80065ABC 00000000 */ nop

View File

@ -0,0 +1,45 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxL2F
/* 40F40 80065B40 3C013780 */ lui $at, (0x37800000 >> 16)
/* 40F44 80065B44 44810000 */ mtc1 $at, $f0
/* 40F48 80065B48 3C19FFFF */ lui $t9, (0xFFFF0000 >> 16)
/* 40F4C 80065B4C 24B80020 */ addiu $t8, $a1, 0x20
.LIQUE_80065B50:
/* 40F50 80065B50 8CA80000 */ lw $t0, 0x0($a1)
/* 40F54 80065B54 8CA90020 */ lw $t1, 0x20($a1)
/* 40F58 80065B58 01195024 */ and $t2, $t0, $t9
/* 40F5C 80065B5C 00095C02 */ srl $t3, $t1, 16
/* 40F60 80065B60 014B6025 */ or $t4, $t2, $t3
/* 40F64 80065B64 00086C00 */ sll $t5, $t0, 16
/* 40F68 80065B68 312EFFFF */ andi $t6, $t1, 0xFFFF
/* 40F6C 80065B6C 01AE7825 */ or $t7, $t5, $t6
/* 40F70 80065B70 448C2000 */ mtc1 $t4, $f4
/* 40F74 80065B74 468021A0 */ cvt.s.w $f6, $f4
/* 40F78 80065B78 46003202 */ mul.s $f8, $f6, $f0
/* 40F7C 80065B7C 448F5000 */ mtc1 $t7, $f10
/* 40F80 80065B80 46805420 */ cvt.s.w $f16, $f10
/* 40F84 80065B84 46008482 */ mul.s $f18, $f16, $f0
/* 40F88 80065B88 E4880000 */ swc1 $f8, 0x0($a0)
/* 40F8C 80065B8C E4920004 */ swc1 $f18, 0x4($a0)
/* 40F90 80065B90 24A50004 */ addiu $a1, $a1, 0x4
/* 40F94 80065B94 14B8FFEE */ bne $a1, $t8, .LIQUE_80065B50
/* 40F98 80065B98 24840008 */ addiu $a0, $a0, 0x8
/* 40F9C 80065B9C 03E00008 */ jr $ra
/* 40FA0 80065BA0 00000000 */ nop
/* 40FA4 80065BA4 00000000 */ nop
/* 40FA8 80065BA8 00000000 */ nop
/* 40FAC 80065BAC 00000000 */ nop
/* 40FB0 80065BB0 00000000 */ nop
/* 40FB4 80065BB4 00000000 */ nop
/* 40FB8 80065BB8 00000000 */ nop
/* 40FBC 80065BBC 00000000 */ nop

View File

@ -0,0 +1,52 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxXFMF
/* 41400 80066000 44856000 */ mtc1 $a1, $f12
/* 41404 80066004 C4820000 */ lwc1 $f2, 0x0($a0)
/* 41408 80066008 460C1082 */ mul.s $f2, $f2, $f12
/* 4140C 8006600C 44865000 */ mtc1 $a2, $f10
/* 41410 80066010 C4860010 */ lwc1 $f6, 0x10($a0)
/* 41414 80066014 460A3182 */ mul.s $f6, $f6, $f10
/* 41418 80066018 44874000 */ mtc1 $a3, $f8
/* 4141C 8006601C C4800020 */ lwc1 $f0, 0x20($a0)
/* 41420 80066020 46080002 */ mul.s $f0, $f0, $f8
/* 41424 80066024 46061080 */ add.s $f2, $f2, $f6
/* 41428 80066028 46001080 */ add.s $f2, $f2, $f0
/* 4142C 8006602C C4840030 */ lwc1 $f4, 0x30($a0)
/* 41430 80066030 46041080 */ add.s $f2, $f2, $f4
/* 41434 80066034 8FA20010 */ lw $v0, 0x10($sp)
/* 41438 80066038 E4420000 */ swc1 $f2, 0x0($v0)
/* 4143C 8006603C C4800004 */ lwc1 $f0, 0x4($a0)
/* 41440 80066040 460C0002 */ mul.s $f0, $f0, $f12
/* 41444 80066044 C4840014 */ lwc1 $f4, 0x14($a0)
/* 41448 80066048 460A2102 */ mul.s $f4, $f4, $f10
/* 4144C 8006604C C4820024 */ lwc1 $f2, 0x24($a0)
/* 41450 80066050 46081082 */ mul.s $f2, $f2, $f8
/* 41454 80066054 46040000 */ add.s $f0, $f0, $f4
/* 41458 80066058 46020000 */ add.s $f0, $f0, $f2
/* 4145C 8006605C C4860034 */ lwc1 $f6, 0x34($a0)
/* 41460 80066060 46060000 */ add.s $f0, $f0, $f6
/* 41464 80066064 8FA20014 */ lw $v0, 0x14($sp)
/* 41468 80066068 E4400000 */ swc1 $f0, 0x0($v0)
/* 4146C 8006606C C4820008 */ lwc1 $f2, 0x8($a0)
/* 41470 80066070 460C1082 */ mul.s $f2, $f2, $f12
/* 41474 80066074 C4840018 */ lwc1 $f4, 0x18($a0)
/* 41478 80066078 460A2102 */ mul.s $f4, $f4, $f10
/* 4147C 8006607C C4800028 */ lwc1 $f0, 0x28($a0)
/* 41480 80066080 46080002 */ mul.s $f0, $f0, $f8
/* 41484 80066084 46041080 */ add.s $f2, $f2, $f4
/* 41488 80066088 46001080 */ add.s $f2, $f2, $f0
/* 4148C 8006608C C4860038 */ lwc1 $f6, 0x38($a0)
/* 41490 80066090 46061080 */ add.s $f2, $f2, $f6
/* 41494 80066094 8FA20018 */ lw $v0, 0x18($sp)
/* 41498 80066098 03E00008 */ jr $ra
/* 4149C 8006609C E4420000 */ swc1 $f2, 0x0($v0)

View File

@ -0,0 +1,48 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guMtxXFML
/* 41370 80065F70 27BDFF78 */ addiu $sp, $sp, -0x88
/* 41374 80065F74 F7B80080 */ sdc1 $f24, 0x80($sp)
/* 41378 80065F78 4485C000 */ mtc1 $a1, $f24
/* 4137C 80065F7C F7B40070 */ sdc1 $f20, 0x70($sp)
/* 41380 80065F80 4486A000 */ mtc1 $a2, $f20
/* 41384 80065F84 F7B60078 */ sdc1 $f22, 0x78($sp)
/* 41388 80065F88 4487B000 */ mtc1 $a3, $f22
/* 4138C 80065F8C AFB00060 */ sw $s0, 0x60($sp)
/* 41390 80065F90 8FB00098 */ lw $s0, 0x98($sp)
/* 41394 80065F94 00801021 */ addu $v0, $a0, $zero
/* 41398 80065F98 AFB10064 */ sw $s1, 0x64($sp)
/* 4139C 80065F9C 8FB1009C */ lw $s1, 0x9C($sp)
/* 413A0 80065FA0 27A40020 */ addiu $a0, $sp, 0x20
/* 413A4 80065FA4 AFB20068 */ sw $s2, 0x68($sp)
/* 413A8 80065FA8 8FB200A0 */ lw $s2, 0xA0($sp)
/* 413AC 80065FAC AFBF006C */ sw $ra, 0x6C($sp)
/* 413B0 80065FB0 0C0196D0 */ jal guMtxL2F
/* 413B4 80065FB4 00402821 */ addu $a1, $v0, $zero
/* 413B8 80065FB8 4405C000 */ mfc1 $a1, $f24
/* 413BC 80065FBC 4406A000 */ mfc1 $a2, $f20
/* 413C0 80065FC0 4407B000 */ mfc1 $a3, $f22
/* 413C4 80065FC4 27A40020 */ addiu $a0, $sp, 0x20
/* 413C8 80065FC8 AFB00010 */ sw $s0, 0x10($sp)
/* 413CC 80065FCC AFB10014 */ sw $s1, 0x14($sp)
/* 413D0 80065FD0 0C019800 */ jal guMtxXFMF
/* 413D4 80065FD4 AFB20018 */ sw $s2, 0x18($sp)
/* 413D8 80065FD8 8FBF006C */ lw $ra, 0x6C($sp)
/* 413DC 80065FDC 8FB20068 */ lw $s2, 0x68($sp)
/* 413E0 80065FE0 8FB10064 */ lw $s1, 0x64($sp)
/* 413E4 80065FE4 8FB00060 */ lw $s0, 0x60($sp)
/* 413E8 80065FE8 D7B80080 */ ldc1 $f24, 0x80($sp)
/* 413EC 80065FEC D7B60078 */ ldc1 $f22, 0x78($sp)
/* 413F0 80065FF0 D7B40070 */ ldc1 $f20, 0x70($sp)
/* 413F4 80065FF4 03E00008 */ jr $ra
/* 413F8 80065FF8 27BD0088 */ addiu $sp, $sp, 0x88
/* 413FC 80065FFC 00000000 */ nop

View File

@ -0,0 +1,36 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guNormalize
/* 47040 8006BC40 C4840000 */ lwc1 $f4, 0x0($a0)
/* 47044 8006BC44 C4A60000 */ lwc1 $f6, 0x0($a1)
/* 47048 8006BC48 C4C80000 */ lwc1 $f8, 0x0($a2)
/* 4704C 8006BC4C 46042282 */ mul.s $f10, $f4, $f4
/* 47050 8006BC50 3C083F80 */ lui $t0, (0x3F800000 >> 16)
/* 47054 8006BC54 46063402 */ mul.s $f16, $f6, $f6
/* 47058 8006BC58 46105480 */ add.s $f18, $f10, $f16
/* 4705C 8006BC5C 46084402 */ mul.s $f16, $f8, $f8
/* 47060 8006BC60 46128280 */ add.s $f10, $f16, $f18
/* 47064 8006BC64 44889000 */ mtc1 $t0, $f18
/* 47068 8006BC68 46005404 */ sqrt.s $f16, $f10
/* 4706C 8006BC6C 46109283 */ div.s $f10, $f18, $f16
/* 47070 8006BC70 460A2402 */ mul.s $f16, $f4, $f10
/* 47074 8006BC74 00000000 */ nop
/* 47078 8006BC78 460A3482 */ mul.s $f18, $f6, $f10
/* 4707C 8006BC7C 00000000 */ nop
/* 47080 8006BC80 460A4102 */ mul.s $f4, $f8, $f10
/* 47084 8006BC84 E4900000 */ swc1 $f16, 0x0($a0)
/* 47088 8006BC88 E4B20000 */ swc1 $f18, 0x0($a1)
/* 4708C 8006BC8C 03E00008 */ jr $ra
/* 47090 8006BC90 E4C40000 */ swc1 $f4, 0x0($a2)
/* 47094 8006BC94 00000000 */ nop
/* 47098 8006BC98 00000000 */ nop
/* 4709C 8006BC9C 00000000 */ nop

View File

@ -0,0 +1,114 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guRotateF
/* 414A0 800660A0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 414A4 800660A4 AFB00010 */ sw $s0, 0x10($sp)
/* 414A8 800660A8 00808021 */ addu $s0, $a0, $zero
/* 414AC 800660AC 27A40050 */ addiu $a0, $sp, 0x50
/* 414B0 800660B0 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 414B4 800660B4 4485A000 */ mtc1 $a1, $f20
/* 414B8 800660B8 27A50054 */ addiu $a1, $sp, 0x54
/* 414BC 800660BC AFA60050 */ sw $a2, 0x50($sp)
/* 414C0 800660C0 27A60058 */ addiu $a2, $sp, 0x58
/* 414C4 800660C4 AFBF0014 */ sw $ra, 0x14($sp)
/* 414C8 800660C8 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 414CC 800660CC F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 414D0 800660D0 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 414D4 800660D4 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 414D8 800660D8 F7B60020 */ sdc1 $f22, 0x20($sp)
/* 414DC 800660DC 0C01AF10 */ jal guNormalize
/* 414E0 800660E0 AFA70054 */ sw $a3, 0x54($sp)
/* 414E4 800660E4 3C018009 */ lui $at, %hi(D_IQUE_800944E0)
/* 414E8 800660E8 C42044E0 */ lwc1 $f0, %lo(D_IQUE_800944E0)($at)
/* 414EC 800660EC 4600A502 */ mul.s $f20, $f20, $f0
/* 414F0 800660F0 0C00A78F */ jal sin_rad
/* 414F4 800660F4 4600A306 */ mov.s $f12, $f20
/* 414F8 800660F8 4600A306 */ mov.s $f12, $f20
/* 414FC 800660FC 0C00A7A8 */ jal cos_rad
/* 41500 80066100 46000786 */ mov.s $f30, $f0
/* 41504 80066104 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 41508 80066108 C7B60054 */ lwc1 $f22, 0x54($sp)
/* 4150C 8006610C 46161702 */ mul.s $f28, $f2, $f22
/* 41510 80066110 C7B40058 */ lwc1 $f20, 0x58($sp)
/* 41514 80066114 4614B582 */ mul.s $f22, $f22, $f20
/* 41518 80066118 4602A502 */ mul.s $f20, $f20, $f2
/* 4151C 8006611C 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* 41520 80066120 4481D000 */ mtc1 $at, $f26
/* 41524 80066124 46000606 */ mov.s $f24, $f0
/* 41528 80066128 4618D381 */ sub.s $f14, $f26, $f24
/* 4152C 8006612C 460EE702 */ mul.s $f28, $f28, $f14
/* 41530 80066130 460EB582 */ mul.s $f22, $f22, $f14
/* 41534 80066134 460EA502 */ mul.s $f20, $f20, $f14
/* 41538 80066138 0C019698 */ jal guMtxIdentF
/* 4153C 8006613C 02002021 */ addu $a0, $s0, $zero
/* 41540 80066140 C7A40050 */ lwc1 $f4, 0x50($sp)
/* 41544 80066144 46042382 */ mul.s $f14, $f4, $f4
/* 41548 80066148 461E2102 */ mul.s $f4, $f4, $f30
/* 4154C 8006614C 460ED281 */ sub.s $f10, $f26, $f14
/* 41550 80066150 460AC282 */ mul.s $f10, $f24, $f10
/* 41554 80066154 460A7280 */ add.s $f10, $f14, $f10
/* 41558 80066158 C7A00054 */ lwc1 $f0, 0x54($sp)
/* 4155C 8006615C 46000382 */ mul.s $f14, $f0, $f0
/* 41560 80066160 461E0002 */ mul.s $f0, $f0, $f30
/* 41564 80066164 460ED181 */ sub.s $f6, $f26, $f14
/* 41568 80066168 4606C182 */ mul.s $f6, $f24, $f6
/* 4156C 8006616C 46067180 */ add.s $f6, $f14, $f6
/* 41570 80066170 C7A20058 */ lwc1 $f2, 0x58($sp)
/* 41574 80066174 46021382 */ mul.s $f14, $f2, $f2
/* 41578 80066178 461E1082 */ mul.s $f2, $f2, $f30
/* 4157C 8006617C 4604B201 */ sub.s $f8, $f22, $f4
/* 41580 80066180 4604B580 */ add.s $f22, $f22, $f4
/* 41584 80066184 4600A300 */ add.s $f12, $f20, $f0
/* 41588 80066188 8FBF0014 */ lw $ra, 0x14($sp)
/* 4158C 8006618C 4600A501 */ sub.s $f20, $f20, $f0
/* 41590 80066190 E6160018 */ swc1 $f22, 0x18($s0)
/* 41594 80066194 D7B60020 */ ldc1 $f22, 0x20($sp)
/* 41598 80066198 460ED681 */ sub.s $f26, $f26, $f14
/* 4159C 8006619C E6080024 */ swc1 $f8, 0x24($s0)
/* 415A0 800661A0 4602E101 */ sub.s $f4, $f28, $f2
/* 415A4 800661A4 E60A0000 */ swc1 $f10, 0x0($s0)
/* 415A8 800661A8 E6140008 */ swc1 $f20, 0x8($s0)
/* 415AC 800661AC 4602E700 */ add.s $f28, $f28, $f2
/* 415B0 800661B0 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 415B4 800661B4 D7BE0040 */ ldc1 $f30, 0x40($sp)
/* 415B8 800661B8 461AC602 */ mul.s $f24, $f24, $f26
/* 415BC 800661BC E60C0020 */ swc1 $f12, 0x20($s0)
/* 415C0 800661C0 E61C0004 */ swc1 $f28, 0x4($s0)
/* 415C4 800661C4 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* 415C8 800661C8 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* 415CC 800661CC 46187600 */ add.s $f24, $f14, $f24
/* 415D0 800661D0 E6060014 */ swc1 $f6, 0x14($s0)
/* 415D4 800661D4 E6040010 */ swc1 $f4, 0x10($s0)
/* 415D8 800661D8 E6180028 */ swc1 $f24, 0x28($s0)
/* 415DC 800661DC 8FB00010 */ lw $s0, 0x10($sp)
/* 415E0 800661E0 D7B80028 */ ldc1 $f24, 0x28($sp)
/* 415E4 800661E4 03E00008 */ jr $ra
/* 415E8 800661E8 27BD0048 */ addiu $sp, $sp, 0x48
glabel guRotate
/* 415EC 800661EC 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 415F0 800661F0 AFB00058 */ sw $s0, 0x58($sp)
/* 415F4 800661F4 00808021 */ addu $s0, $a0, $zero
/* 415F8 800661F8 C7A00070 */ lwc1 $f0, 0x70($sp)
/* 415FC 800661FC 27A40018 */ addiu $a0, $sp, 0x18
/* 41600 80066200 AFBF005C */ sw $ra, 0x5C($sp)
/* 41604 80066204 0C019828 */ jal guRotateF
/* 41608 80066208 E7A00010 */ swc1 $f0, 0x10($sp)
/* 4160C 8006620C 27A40018 */ addiu $a0, $sp, 0x18
/* 41610 80066210 0C0196B0 */ jal guMtxF2L
/* 41614 80066214 02002821 */ addu $a1, $s0, $zero
/* 41618 80066218 8FBF005C */ lw $ra, 0x5C($sp)
/* 4161C 8006621C 8FB00058 */ lw $s0, 0x58($sp)
/* 41620 80066220 03E00008 */ jr $ra
/* 41624 80066224 27BD0060 */ addiu $sp, $sp, 0x60
/* 41628 80066228 00000000 */ nop
/* 4162C 8006622C 00000000 */ nop

View File

@ -0,0 +1,52 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guScale
/* 410C0 80065CC0 3C014780 */ lui $at, (0x47800000 >> 16)
/* 410C4 80065CC4 44812000 */ mtc1 $at, $f4
/* 410C8 80065CC8 44853000 */ mtc1 $a1, $f6
/* 410CC 80065CCC 46043202 */ mul.s $f8, $f6, $f4
/* 410D0 80065CD0 4600428D */ trunc.w.s $f10, $f8
/* 410D4 80065CD4 44095000 */ mfc1 $t1, $f10
/* 410D8 80065CD8 00095402 */ srl $t2, $t1, 16
/* 410DC 80065CDC 000A4400 */ sll $t0, $t2, 16
/* 410E0 80065CE0 AC880000 */ sw $t0, 0x0($a0)
/* 410E4 80065CE4 00095400 */ sll $t2, $t1, 16
/* 410E8 80065CE8 AC8A0020 */ sw $t2, 0x20($a0)
/* 410EC 80065CEC 44863000 */ mtc1 $a2, $f6
/* 410F0 80065CF0 46043202 */ mul.s $f8, $f6, $f4
/* 410F4 80065CF4 4600428D */ trunc.w.s $f10, $f8
/* 410F8 80065CF8 44095000 */ mfc1 $t1, $f10
/* 410FC 80065CFC 00094402 */ srl $t0, $t1, 16
/* 41100 80065D00 AC880008 */ sw $t0, 0x8($a0)
/* 41104 80065D04 312AFFFF */ andi $t2, $t1, 0xFFFF
/* 41108 80065D08 AC8A0028 */ sw $t2, 0x28($a0)
/* 4110C 80065D0C 44873000 */ mtc1 $a3, $f6
/* 41110 80065D10 46043202 */ mul.s $f8, $f6, $f4
/* 41114 80065D14 4600428D */ trunc.w.s $f10, $f8
/* 41118 80065D18 44095000 */ mfc1 $t1, $f10
/* 4111C 80065D1C 00095402 */ srl $t2, $t1, 16
/* 41120 80065D20 000A4400 */ sll $t0, $t2, 16
/* 41124 80065D24 AC880014 */ sw $t0, 0x14($a0)
/* 41128 80065D28 00095400 */ sll $t2, $t1, 16
/* 4112C 80065D2C AC8A0034 */ sw $t2, 0x34($a0)
/* 41130 80065D30 24080001 */ addiu $t0, $zero, 0x1
/* 41134 80065D34 AC88001C */ sw $t0, 0x1C($a0)
/* 41138 80065D38 AC800004 */ sw $zero, 0x4($a0)
/* 4113C 80065D3C AC80000C */ sw $zero, 0xC($a0)
/* 41140 80065D40 AC800010 */ sw $zero, 0x10($a0)
/* 41144 80065D44 AC800018 */ sw $zero, 0x18($a0)
/* 41148 80065D48 AC800024 */ sw $zero, 0x24($a0)
/* 4114C 80065D4C AC80002C */ sw $zero, 0x2C($a0)
/* 41150 80065D50 AC800030 */ sw $zero, 0x30($a0)
/* 41154 80065D54 AC800038 */ sw $zero, 0x38($a0)
/* 41158 80065D58 03E00008 */ jr $ra
/* 4115C 80065D5C AC80003C */ sw $zero, 0x3C($a0)

View File

@ -0,0 +1,36 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guScaleF
/* 41160 80065D60 AC850000 */ sw $a1, 0x0($a0)
/* 41164 80065D64 AC800004 */ sw $zero, 0x4($a0)
/* 41168 80065D68 AC800008 */ sw $zero, 0x8($a0)
/* 4116C 80065D6C AC80000C */ sw $zero, 0xC($a0)
/* 41170 80065D70 AC800010 */ sw $zero, 0x10($a0)
/* 41174 80065D74 AC860014 */ sw $a2, 0x14($a0)
/* 41178 80065D78 AC800018 */ sw $zero, 0x18($a0)
/* 4117C 80065D7C AC80001C */ sw $zero, 0x1C($a0)
/* 41180 80065D80 AC800020 */ sw $zero, 0x20($a0)
/* 41184 80065D84 AC800024 */ sw $zero, 0x24($a0)
/* 41188 80065D88 AC870028 */ sw $a3, 0x28($a0)
/* 4118C 80065D8C AC80002C */ sw $zero, 0x2C($a0)
/* 41190 80065D90 3C083F80 */ lui $t0, (0x3F800000 >> 16)
/* 41194 80065D94 AC800030 */ sw $zero, 0x30($a0)
/* 41198 80065D98 AC800034 */ sw $zero, 0x34($a0)
/* 4119C 80065D9C AC800038 */ sw $zero, 0x38($a0)
/* 411A0 80065DA0 03E00008 */ jr $ra
/* 411A4 80065DA4 AC88003C */ sw $t0, 0x3C($a0)
/* 411A8 80065DA8 00000000 */ nop
/* 411AC 80065DAC 00000000 */ nop
/* 411B0 80065DB0 00000000 */ nop
/* 411B4 80065DB4 00000000 */ nop
/* 411B8 80065DB8 00000000 */ nop
/* 411BC 80065DBC 00000000 */ nop

View File

@ -0,0 +1,68 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guTranslate
/* 411C0 80065DC0 3C014780 */ lui $at, (0x47800000 >> 16)
/* 411C4 80065DC4 44812000 */ mtc1 $at, $f4
/* 411C8 80065DC8 44853000 */ mtc1 $a1, $f6
/* 411CC 80065DCC 46043202 */ mul.s $f8, $f6, $f4
/* 411D0 80065DD0 4600428D */ trunc.w.s $f10, $f8
/* 411D4 80065DD4 44095000 */ mfc1 $t1, $f10
/* 411D8 80065DD8 44863000 */ mtc1 $a2, $f6
/* 411DC 80065DDC 46043202 */ mul.s $f8, $f6, $f4
/* 411E0 80065DE0 4600428D */ trunc.w.s $f10, $f8
/* 411E4 80065DE4 440B5000 */ mfc1 $t3, $f10
/* 411E8 80065DE8 00095402 */ srl $t2, $t1, 16
/* 411EC 80065DEC 000A4400 */ sll $t0, $t2, 16
/* 411F0 80065DF0 000B5402 */ srl $t2, $t3, 16
/* 411F4 80065DF4 010A4025 */ or $t0, $t0, $t2
/* 411F8 80065DF8 AC880018 */ sw $t0, 0x18($a0)
/* 411FC 80065DFC 00094400 */ sll $t0, $t1, 16
/* 41200 80065E00 000B5400 */ sll $t2, $t3, 16
/* 41204 80065E04 000A5402 */ srl $t2, $t2, 16
/* 41208 80065E08 010A4025 */ or $t0, $t0, $t2
/* 4120C 80065E0C AC880038 */ sw $t0, 0x38($a0)
/* 41210 80065E10 44873000 */ mtc1 $a3, $f6
/* 41214 80065E14 46043202 */ mul.s $f8, $f6, $f4
/* 41218 80065E18 4600428D */ trunc.w.s $f10, $f8
/* 4121C 80065E1C 44095000 */ mfc1 $t1, $f10
/* 41220 80065E20 00095402 */ srl $t2, $t1, 16
/* 41224 80065E24 000A4400 */ sll $t0, $t2, 16
/* 41228 80065E28 25080001 */ addiu $t0, $t0, 0x1
/* 4122C 80065E2C AC88001C */ sw $t0, 0x1C($a0)
/* 41230 80065E30 00095400 */ sll $t2, $t1, 16
/* 41234 80065E34 AC8A003C */ sw $t2, 0x3C($a0)
/* 41238 80065E38 AC800000 */ sw $zero, 0x0($a0)
/* 4123C 80065E3C AC800004 */ sw $zero, 0x4($a0)
/* 41240 80065E40 AC800008 */ sw $zero, 0x8($a0)
/* 41244 80065E44 AC80000C */ sw $zero, 0xC($a0)
/* 41248 80065E48 AC800010 */ sw $zero, 0x10($a0)
/* 4124C 80065E4C AC800014 */ sw $zero, 0x14($a0)
/* 41250 80065E50 AC800020 */ sw $zero, 0x20($a0)
/* 41254 80065E54 AC800024 */ sw $zero, 0x24($a0)
/* 41258 80065E58 AC800028 */ sw $zero, 0x28($a0)
/* 4125C 80065E5C AC80002C */ sw $zero, 0x2C($a0)
/* 41260 80065E60 AC800030 */ sw $zero, 0x30($a0)
/* 41264 80065E64 AC800034 */ sw $zero, 0x34($a0)
/* 41268 80065E68 3C080001 */ lui $t0, (0x10000 >> 16)
/* 4126C 80065E6C 35080000 */ ori $t0, $t0, (0x10000 & 0xFFFF)
/* 41270 80065E70 AC880000 */ sw $t0, 0x0($a0)
/* 41274 80065E74 AC880014 */ sw $t0, 0x14($a0)
/* 41278 80065E78 3C080000 */ lui $t0, (0x1 >> 16)
/* 4127C 80065E7C 35080001 */ ori $t0, $t0, (0x1 & 0xFFFF)
/* 41280 80065E80 03E00008 */ jr $ra
/* 41284 80065E84 AC880008 */ sw $t0, 0x8($a0)
/* 41288 80065E88 00000000 */ nop
/* 4128C 80065E8C 00000000 */ nop
/* 41290 80065E90 00000000 */ nop
/* 41294 80065E94 00000000 */ nop
/* 41298 80065E98 00000000 */ nop
/* 4129C 80065E9C 00000000 */ nop

View File

@ -0,0 +1,32 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel guTranslateF
/* 412A0 80065EA0 3C083F80 */ lui $t0, (0x3F800000 >> 16)
/* 412A4 80065EA4 AC880000 */ sw $t0, 0x0($a0)
/* 412A8 80065EA8 AC800004 */ sw $zero, 0x4($a0)
/* 412AC 80065EAC AC800008 */ sw $zero, 0x8($a0)
/* 412B0 80065EB0 AC80000C */ sw $zero, 0xC($a0)
/* 412B4 80065EB4 AC800010 */ sw $zero, 0x10($a0)
/* 412B8 80065EB8 AC880014 */ sw $t0, 0x14($a0)
/* 412BC 80065EBC AC800018 */ sw $zero, 0x18($a0)
/* 412C0 80065EC0 AC80001C */ sw $zero, 0x1C($a0)
/* 412C4 80065EC4 AC800020 */ sw $zero, 0x20($a0)
/* 412C8 80065EC8 AC800024 */ sw $zero, 0x24($a0)
/* 412CC 80065ECC AC880028 */ sw $t0, 0x28($a0)
/* 412D0 80065ED0 AC80002C */ sw $zero, 0x2C($a0)
/* 412D4 80065ED4 AC850030 */ sw $a1, 0x30($a0)
/* 412D8 80065ED8 AC860034 */ sw $a2, 0x34($a0)
/* 412DC 80065EDC AC870038 */ sw $a3, 0x38($a0)
/* 412E0 80065EE0 03E00008 */ jr $ra
/* 412E4 80065EE4 AC88003C */ sw $t0, 0x3C($a0)
/* 412E8 80065EE8 00000000 */ nop
/* 412EC 80065EEC 00000000 */ nop

View File

@ -0,0 +1,80 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel osGetCount
/* 3EEE0 80063AE0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3EEE4 80063AE4 FFBF0030 */ sd $ra, 0x30($sp)
/* 3EEE8 80063AE8 FFBE0028 */ sd $fp, 0x28($sp)
/* 3EEEC 80063AEC 0C019B40 */ jal __osDisableInt
/* 3EEF0 80063AF0 03A0F02D */ daddu $fp, $sp, $zero
/* 3EEF4 80063AF4 AFC20024 */ sw $v0, 0x24($fp)
/* 3EEF8 80063AF8 40054800 */ mfc0 $a1, $9 # handwritten instruction
/* 3EEFC 80063AFC AFC50020 */ sw $a1, 0x20($fp)
/* 3EF00 80063B00 8FC20020 */ lw $v0, 0x20($fp)
/* 3EF04 80063B04 3C03800A */ lui $v1, %hi(__osBbLastRCount)
/* 3EF08 80063B08 8C6391A4 */ lw $v1, %lo(__osBbLastRCount)($v1)
/* 3EF0C 80063B0C 0043102B */ sltu $v0, $v0, $v1
/* 3EF10 80063B10 10400006 */ beqz $v0, .LIQUE_80063B2C
/* 3EF14 80063B14 00000000 */ nop
/* 3EF18 80063B18 3C02800A */ lui $v0, %hi(__osBbRCountWraps)
/* 3EF1C 80063B1C 8C429198 */ lw $v0, %lo(__osBbRCountWraps)($v0)
/* 3EF20 80063B20 24430001 */ addiu $v1, $v0, 0x1
/* 3EF24 80063B24 3C01800A */ lui $at, %hi(__osBbRCountWraps)
/* 3EF28 80063B28 AC239198 */ sw $v1, %lo(__osBbRCountWraps)($at)
.LIQUE_80063B2C:
/* 3EF2C 80063B2C 8FC20020 */ lw $v0, 0x20($fp)
/* 3EF30 80063B30 3C01800A */ lui $at, %hi(__osBbLastRCount)
/* 3EF34 80063B34 AC2291A4 */ sw $v0, %lo(__osBbLastRCount)($at)
/* 3EF38 80063B38 3C02800A */ lui $v0, %hi(__osBbRCountWraps)
/* 3EF3C 80063B3C 9C429198 */ lwu $v0, %lo(__osBbRCountWraps)($v0)
/* 3EF40 80063B40 0002183C */ dsll32 $v1, $v0, 0
/* 3EF44 80063B44 9FC40020 */ lwu $a0, 0x20($fp)
/* 3EF48 80063B48 00641025 */ or $v0, $v1, $a0
/* 3EF4C 80063B4C 0040202D */ daddu $a0, $v0, $zero
/* 3EF50 80063B50 00041978 */ dsll $v1, $a0, 5
/* 3EF54 80063B54 0062182F */ dsubu $v1, $v1, $v0
/* 3EF58 80063B58 000320B8 */ dsll $a0, $v1, 2
/* 3EF5C 80063B5C 0082202D */ daddu $a0, $a0, $v0
/* 3EF60 80063B60 240100C0 */ addiu $at, $zero, 0xC0
/* 3EF64 80063B64 0081001F */ ddivu $zero, $a0, $at
/* 3EF68 80063B68 00001012 */ mflo $v0
/* 3EF6C 80063B6C 0002103C */ dsll32 $v0, $v0, 0
/* 3EF70 80063B70 0002103F */ dsra32 $v0, $v0, 0
/* 3EF74 80063B74 AFC20020 */ sw $v0, 0x20($fp)
/* 3EF78 80063B78 8FC20020 */ lw $v0, 0x20($fp)
/* 3EF7C 80063B7C 3C03800A */ lui $v1, %hi(__osBbLastVCount)
/* 3EF80 80063B80 8C6391E8 */ lw $v1, %lo(__osBbLastVCount)($v1)
/* 3EF84 80063B84 0043102B */ sltu $v0, $v0, $v1
/* 3EF88 80063B88 10400006 */ beqz $v0, .LIQUE_80063BA4
/* 3EF8C 80063B8C 00000000 */ nop
/* 3EF90 80063B90 3C02800A */ lui $v0, %hi(__osBbVCountWraps)
/* 3EF94 80063B94 8C429210 */ lw $v0, %lo(__osBbVCountWraps)($v0)
/* 3EF98 80063B98 24430001 */ addiu $v1, $v0, 0x1
/* 3EF9C 80063B9C 3C01800A */ lui $at, %hi(__osBbVCountWraps)
/* 3EFA0 80063BA0 AC239210 */ sw $v1, %lo(__osBbVCountWraps)($at)
.LIQUE_80063BA4:
/* 3EFA4 80063BA4 8FC20020 */ lw $v0, 0x20($fp)
/* 3EFA8 80063BA8 3C01800A */ lui $at, %hi(__osBbLastVCount)
/* 3EFAC 80063BAC AC2291E8 */ sw $v0, %lo(__osBbLastVCount)($at)
/* 3EFB0 80063BB0 0C019B5C */ jal __osRestoreInt
/* 3EFB4 80063BB4 8FC40024 */ lw $a0, 0x24($fp)
/* 3EFB8 80063BB8 8FC30020 */ lw $v1, 0x20($fp)
/* 3EFBC 80063BBC 08018EF1 */ j .LIQUE_80063BC4
/* 3EFC0 80063BC0 0060102D */ daddu $v0, $v1, $zero
.LIQUE_80063BC4:
/* 3EFC4 80063BC4 03C0E82D */ daddu $sp, $fp, $zero
/* 3EFC8 80063BC8 DFBF0030 */ ld $ra, 0x30($sp)
/* 3EFCC 80063BCC DFBE0028 */ ld $fp, 0x28($sp)
/* 3EFD0 80063BD0 03E00008 */ jr $ra
/* 3EFD4 80063BD4 27BD0038 */ addiu $sp, $sp, 0x38
/* 3EFD8 80063BD8 00000000 */ nop
/* 3EFDC 80063BDC 00000000 */ nop

View File

@ -0,0 +1,58 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel __osSetCompare
/* 46A80 8006B680 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 46A84 8006B684 FFBF0030 */ sd $ra, 0x30($sp)
/* 46A88 8006B688 FFBE0028 */ sd $fp, 0x28($sp)
/* 46A8C 8006B68C 03A0F02D */ daddu $fp, $sp, $zero
/* 46A90 8006B690 AFC4003C */ sw $a0, 0x3C($fp)
/* 46A94 8006B694 8FC2003C */ lw $v0, 0x3C($fp)
/* 46A98 8006B698 1040001C */ beqz $v0, .LIQUE_8006B70C
/* 46A9C 8006B69C 00000000 */ nop
/* 46AA0 8006B6A0 0C019B40 */ jal __osDisableInt
/* 46AA4 8006B6A4 00000000 */ nop
/* 46AA8 8006B6A8 AFC20020 */ sw $v0, 0x20($fp)
/* 46AAC 8006B6AC 8FC2003C */ lw $v0, 0x3C($fp)
/* 46AB0 8006B6B0 3C03800A */ lui $v1, %hi(__osBbLastVCount)
/* 46AB4 8006B6B4 8C6391E8 */ lw $v1, %lo(__osBbLastVCount)($v1)
/* 46AB8 8006B6B8 0043102B */ sltu $v0, $v0, $v1
/* 46ABC 8006B6BC 3C03800A */ lui $v1, %hi(__osBbVCountWraps)
/* 46AC0 8006B6C0 8C639210 */ lw $v1, %lo(__osBbVCountWraps)($v1)
/* 46AC4 8006B6C4 00431021 */ addu $v0, $v0, $v1
/* 46AC8 8006B6C8 AFC20024 */ sw $v0, 0x24($fp)
/* 46ACC 8006B6CC 9FC20024 */ lwu $v0, 0x24($fp)
/* 46AD0 8006B6D0 0002183C */ dsll32 $v1, $v0, 0
/* 46AD4 8006B6D4 9FC4003C */ lwu $a0, 0x3C($fp)
/* 46AD8 8006B6D8 00641025 */ or $v0, $v1, $a0
/* 46ADC 8006B6DC 0040202D */ daddu $a0, $v0, $zero
/* 46AE0 8006B6E0 00041878 */ dsll $v1, $a0, 1
/* 46AE4 8006B6E4 0062182D */ daddu $v1, $v1, $v0
/* 46AE8 8006B6E8 000321B8 */ dsll $a0, $v1, 6
/* 46AEC 8006B6EC 2401007D */ addiu $at, $zero, 0x7D
/* 46AF0 8006B6F0 0081001F */ ddivu $zero, $a0, $at
/* 46AF4 8006B6F4 00001012 */ mflo $v0
/* 46AF8 8006B6F8 0002103C */ dsll32 $v0, $v0, 0
/* 46AFC 8006B6FC 0002103F */ dsra32 $v0, $v0, 0
/* 46B00 8006B700 AFC2003C */ sw $v0, 0x3C($fp)
/* 46B04 8006B704 0C019B5C */ jal __osRestoreInt
/* 46B08 8006B708 8FC40020 */ lw $a0, 0x20($fp)
.LIQUE_8006B70C:
/* 46B0C 8006B70C 8FC5003C */ lw $a1, 0x3C($fp)
/* 46B10 8006B710 40855800 */ mtc0 $a1, $11 # handwritten instruction
/* 46B14 8006B714 03C0E82D */ daddu $sp, $fp, $zero
/* 46B18 8006B718 DFBF0030 */ ld $ra, 0x30($sp)
/* 46B1C 8006B71C DFBE0028 */ ld $fp, 0x28($sp)
/* 46B20 8006B720 03E00008 */ jr $ra
/* 46B24 8006B724 27BD0038 */ addiu $sp, $sp, 0x38
/* 46B28 8006B728 00000000 */ nop
/* 46B2C 8006B72C 00000000 */ nop

View File

@ -0,0 +1,17 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel __osGetCause
/* 46A30 8006B630 40026800 */ mfc0 $v0, $13 # handwritten instruction
/* 46A34 8006B634 03E00008 */ jr $ra
/* 46A38 8006B638 00000000 */ nop
/* 46A3C 8006B63C 00000000 */ nop

View File

@ -0,0 +1,17 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel __osGetSR
/* 46A40 8006B640 40026000 */ mfc0 $v0, $12 # handwritten instruction
/* 46A44 8006B644 03E00008 */ jr $ra
/* 46A48 8006B648 00000000 */ nop
/* 46A4C 8006B64C 00000000 */ nop

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osSetFpcCsr
/* 46A50 8006B650 4442F800 */ cfc1 $v0, $31
/* 46A54 8006B654 44C4F800 */ ctc1 $a0, $31
/* 46A58 8006B658 03E00008 */ jr $ra
/* 46A5C 8006B65C 00000000 */ nop

View File

@ -0,0 +1,17 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel __osSetSR
/* 46A60 8006B660 40846000 */ mtc0 $a0, $12 # handwritten instruction
/* 46A64 8006B664 00000000 */ nop
/* 46A68 8006B668 03E00008 */ jr $ra
/* 46A6C 8006B66C 00000000 */ nop

View File

@ -0,0 +1,17 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
# Handwritten function
glabel __osSetWatchLo
/* 46A70 8006B670 40849000 */ mtc0 $a0, $18 # handwritten instruction
/* 46A74 8006B674 00000000 */ nop
/* 46A78 8006B678 03E00008 */ jr $ra
/* 46A7C 8006B67C 00000000 */ nop

View File

@ -0,0 +1,25 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osSpDeviceBusy
/* 46B30 8006B730 3C02A404 */ lui $v0, (0xA4040010 >> 16)
/* 46B34 8006B734 34420010 */ ori $v0, $v0, (0xA4040010 & 0xFFFF)
/* 46B38 8006B738 8C430000 */ lw $v1, 0x0($v0)
/* 46B3C 8006B73C 3063001C */ andi $v1, $v1, 0x1C
/* 46B40 8006B740 10600003 */ beqz $v1, .LIQUE_8006B750
/* 46B44 8006B744 00001021 */ addu $v0, $zero, $zero
/* 46B48 8006B748 03E00008 */ jr $ra
/* 46B4C 8006B74C 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_8006B750:
/* 46B50 8006B750 03E00008 */ jr $ra
/* 46B54 8006B754 00000000 */ nop
/* 46B58 8006B758 00000000 */ nop
/* 46B5C 8006B75C 00000000 */ nop

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osSpGetStatus
/* 46B60 8006B760 3C03A404 */ lui $v1, (0xA4040010 >> 16)
/* 46B64 8006B764 34630010 */ ori $v1, $v1, (0xA4040010 & 0xFFFF)
/* 46B68 8006B768 03E00008 */ jr $ra
/* 46B6C 8006B76C 8C620000 */ lw $v0, 0x0($v1)

View File

@ -0,0 +1,51 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel func_IQUE_8006B7B0
/* 46BB0 8006B7B0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 46BB4 8006B7B4 AFB3001C */ sw $s3, 0x1C($sp)
/* 46BB8 8006B7B8 00809821 */ addu $s3, $a0, $zero
/* 46BBC 8006B7BC AFB00010 */ sw $s0, 0x10($sp)
/* 46BC0 8006B7C0 00A08021 */ addu $s0, $a1, $zero
/* 46BC4 8006B7C4 AFB10014 */ sw $s1, 0x14($sp)
/* 46BC8 8006B7C8 00C08821 */ addu $s1, $a2, $zero
/* 46BCC 8006B7CC AFB20018 */ sw $s2, 0x18($sp)
/* 46BD0 8006B7D0 AFBF0020 */ sw $ra, 0x20($sp)
/* 46BD4 8006B7D4 0C01ADCC */ jal __osSpDeviceBusy
/* 46BD8 8006B7D8 00E09021 */ addu $s2, $a3, $zero
/* 46BDC 8006B7DC 14400010 */ bnez $v0, .LIQUE_8006B820
/* 46BE0 8006B7E0 2402FFFF */ addiu $v0, $zero, -0x1
/* 46BE4 8006B7E4 3C02A404 */ lui $v0, %hi(D_A4040000)
/* 46BE8 8006B7E8 02202021 */ addu $a0, $s1, $zero
/* 46BEC 8006B7EC 0C01836C */ jal osVirtualToPhysical
/* 46BF0 8006B7F0 AC500000 */ sw $s0, %lo(D_A4040000)($v0)
/* 46BF4 8006B7F4 3C03A404 */ lui $v1, (0xA4040004 >> 16)
/* 46BF8 8006B7F8 34630004 */ ori $v1, $v1, (0xA4040004 & 0xFFFF)
/* 46BFC 8006B7FC AC620000 */ sw $v0, 0x0($v1)
/* 46C00 8006B800 16600003 */ bnez $s3, .LIQUE_8006B810
/* 46C04 8006B804 3C02A404 */ lui $v0, (0xA4040008 >> 16)
/* 46C08 8006B808 0801AE05 */ j .LIQUE_8006B814
/* 46C0C 8006B80C 3442000C */ ori $v0, $v0, (0xA404000C & 0xFFFF)
.LIQUE_8006B810:
/* 46C10 8006B810 34420008 */ ori $v0, $v0, (0xA4040008 & 0xFFFF)
.LIQUE_8006B814:
/* 46C14 8006B814 2643FFFF */ addiu $v1, $s2, -0x1
/* 46C18 8006B818 AC430000 */ sw $v1, 0x0($v0)
/* 46C1C 8006B81C 00001021 */ addu $v0, $zero, $zero
.LIQUE_8006B820:
/* 46C20 8006B820 8FBF0020 */ lw $ra, 0x20($sp)
/* 46C24 8006B824 8FB3001C */ lw $s3, 0x1C($sp)
/* 46C28 8006B828 8FB20018 */ lw $s2, 0x18($sp)
/* 46C2C 8006B82C 8FB10014 */ lw $s1, 0x14($sp)
/* 46C30 8006B830 8FB00010 */ lw $s0, 0x10($sp)
/* 46C34 8006B834 03E00008 */ jr $ra
/* 46C38 8006B838 27BD0028 */ addiu $sp, $sp, 0x28
/* 46C3C 8006B83C 00000000 */ nop

View File

@ -0,0 +1,25 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osSpSetPc
/* 46B80 8006B780 3C02A404 */ lui $v0, (0xA4040010 >> 16)
/* 46B84 8006B784 34420010 */ ori $v0, $v0, (0xA4040010 & 0xFFFF)
/* 46B88 8006B788 8C430000 */ lw $v1, 0x0($v0)
/* 46B8C 8006B78C 30630001 */ andi $v1, $v1, 0x1
/* 46B90 8006B790 10600004 */ beqz $v1, .LIQUE_8006B7A4
/* 46B94 8006B794 3C03A408 */ lui $v1, %hi(D_A4080000)
/* 46B98 8006B798 AC640000 */ sw $a0, %lo(D_A4080000)($v1)
/* 46B9C 8006B79C 03E00008 */ jr $ra
/* 46BA0 8006B7A0 00001021 */ addu $v0, $zero, $zero
.LIQUE_8006B7A4:
/* 46BA4 8006B7A4 03E00008 */ jr $ra
/* 46BA8 8006B7A8 2402FFFF */ addiu $v0, $zero, -0x1
/* 46BAC 8006B7AC 00000000 */ nop

View File

@ -0,0 +1,16 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel __osSpSetStatus
/* 46B70 8006B770 3C02A404 */ lui $v0, (0xA4040010 >> 16)
/* 46B74 8006B774 34420010 */ ori $v0, $v0, (0xA4040010 & 0xFFFF)
/* 46B78 8006B778 03E00008 */ jr $ra
/* 46B7C 8006B77C AC440000 */ sw $a0, 0x0($v0)

View File

@ -0,0 +1,162 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel _VirtualToPhysicalTask
/* 3EFE0 80063BE0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3EFE4 80063BE4 AFB00010 */ sw $s0, 0x10($sp)
/* 3EFE8 80063BE8 3C10800B */ lui $s0, %hi(tmp_task)
/* 3EFEC 80063BEC 2610D2C0 */ addiu $s0, $s0, %lo(tmp_task)
/* 3EFF0 80063BF0 02002821 */ addu $a1, $s0, $zero
/* 3EFF4 80063BF4 AFBF0014 */ sw $ra, 0x14($sp)
/* 3EFF8 80063BF8 0C018A04 */ jal bcopy
/* 3EFFC 80063BFC 24060040 */ addiu $a2, $zero, 0x40
/* 3F000 80063C00 8E040010 */ lw $a0, 0x10($s0)
/* 3F004 80063C04 50800005 */ beql $a0, $zero, .LIQUE_80063C1C
/* 3F008 80063C08 8E040018 */ lw $a0, 0x18($s0)
/* 3F00C 80063C0C 0C01836C */ jal osVirtualToPhysical
/* 3F010 80063C10 00000000 */ nop
/* 3F014 80063C14 AE020010 */ sw $v0, 0x10($s0)
/* 3F018 80063C18 8E040018 */ lw $a0, 0x18($s0)
.LIQUE_80063C1C:
/* 3F01C 80063C1C 50800005 */ beql $a0, $zero, .LIQUE_80063C34
/* 3F020 80063C20 8E040020 */ lw $a0, 0x20($s0)
/* 3F024 80063C24 0C01836C */ jal osVirtualToPhysical
/* 3F028 80063C28 00000000 */ nop
/* 3F02C 80063C2C AE020018 */ sw $v0, 0x18($s0)
/* 3F030 80063C30 8E040020 */ lw $a0, 0x20($s0)
.LIQUE_80063C34:
/* 3F034 80063C34 50800005 */ beql $a0, $zero, .LIQUE_80063C4C
/* 3F038 80063C38 8E040028 */ lw $a0, 0x28($s0)
/* 3F03C 80063C3C 0C01836C */ jal osVirtualToPhysical
/* 3F040 80063C40 00000000 */ nop
/* 3F044 80063C44 AE020020 */ sw $v0, 0x20($s0)
/* 3F048 80063C48 8E040028 */ lw $a0, 0x28($s0)
.LIQUE_80063C4C:
/* 3F04C 80063C4C 50800005 */ beql $a0, $zero, .LIQUE_80063C64
/* 3F050 80063C50 8E04002C */ lw $a0, 0x2C($s0)
/* 3F054 80063C54 0C01836C */ jal osVirtualToPhysical
/* 3F058 80063C58 00000000 */ nop
/* 3F05C 80063C5C AE020028 */ sw $v0, 0x28($s0)
/* 3F060 80063C60 8E04002C */ lw $a0, 0x2C($s0)
.LIQUE_80063C64:
/* 3F064 80063C64 50800005 */ beql $a0, $zero, .LIQUE_80063C7C
/* 3F068 80063C68 8E040030 */ lw $a0, 0x30($s0)
/* 3F06C 80063C6C 0C01836C */ jal osVirtualToPhysical
/* 3F070 80063C70 00000000 */ nop
/* 3F074 80063C74 AE02002C */ sw $v0, 0x2C($s0)
/* 3F078 80063C78 8E040030 */ lw $a0, 0x30($s0)
.LIQUE_80063C7C:
/* 3F07C 80063C7C 50800005 */ beql $a0, $zero, .LIQUE_80063C94
/* 3F080 80063C80 8E040038 */ lw $a0, 0x38($s0)
/* 3F084 80063C84 0C01836C */ jal osVirtualToPhysical
/* 3F088 80063C88 00000000 */ nop
/* 3F08C 80063C8C AE020030 */ sw $v0, 0x30($s0)
/* 3F090 80063C90 8E040038 */ lw $a0, 0x38($s0)
.LIQUE_80063C94:
/* 3F094 80063C94 10800005 */ beqz $a0, .LIQUE_80063CAC
/* 3F098 80063C98 02001021 */ addu $v0, $s0, $zero
/* 3F09C 80063C9C 0C01836C */ jal osVirtualToPhysical
/* 3F0A0 80063CA0 00000000 */ nop
/* 3F0A4 80063CA4 AE020038 */ sw $v0, 0x38($s0)
/* 3F0A8 80063CA8 02001021 */ addu $v0, $s0, $zero
.LIQUE_80063CAC:
/* 3F0AC 80063CAC 8FBF0014 */ lw $ra, 0x14($sp)
/* 3F0B0 80063CB0 8FB00010 */ lw $s0, 0x10($sp)
/* 3F0B4 80063CB4 03E00008 */ jr $ra
/* 3F0B8 80063CB8 27BD0018 */ addiu $sp, $sp, 0x18
glabel osSpTaskLoad
/* 3F0BC 80063CBC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3F0C0 80063CC0 AFB10014 */ sw $s1, 0x14($sp)
/* 3F0C4 80063CC4 00808821 */ addu $s1, $a0, $zero
/* 3F0C8 80063CC8 AFBF0018 */ sw $ra, 0x18($sp)
/* 3F0CC 80063CCC 0C018EF8 */ jal _VirtualToPhysicalTask
/* 3F0D0 80063CD0 AFB00010 */ sw $s0, 0x10($sp)
/* 3F0D4 80063CD4 00408021 */ addu $s0, $v0, $zero
/* 3F0D8 80063CD8 8E030004 */ lw $v1, 0x4($s0)
/* 3F0DC 80063CDC 30630001 */ andi $v1, $v1, 0x1
/* 3F0E0 80063CE0 10600013 */ beqz $v1, .LIQUE_80063D30
/* 3F0E4 80063CE4 02002021 */ addu $a0, $s0, $zero
/* 3F0E8 80063CE8 8E020038 */ lw $v0, 0x38($s0)
/* 3F0EC 80063CEC 8E05003C */ lw $a1, 0x3C($s0)
/* 3F0F0 80063CF0 AE020018 */ sw $v0, 0x18($s0)
/* 3F0F4 80063CF4 AE05001C */ sw $a1, 0x1C($s0)
/* 3F0F8 80063CF8 8E230004 */ lw $v1, 0x4($s1)
/* 3F0FC 80063CFC 2404FFFE */ addiu $a0, $zero, -0x2
/* 3F100 80063D00 00641824 */ and $v1, $v1, $a0
/* 3F104 80063D04 AE230004 */ sw $v1, 0x4($s1)
/* 3F108 80063D08 8E020004 */ lw $v0, 0x4($s0)
/* 3F10C 80063D0C 30420004 */ andi $v0, $v0, 0x4
/* 3F110 80063D10 10400006 */ beqz $v0, .LIQUE_80063D2C
/* 3F114 80063D14 3C03A000 */ lui $v1, %hi(D_A0000000)
/* 3F118 80063D18 8E220038 */ lw $v0, 0x38($s1)
/* 3F11C 80063D1C 24420BFC */ addiu $v0, $v0, 0xBFC
/* 3F120 80063D20 00431025 */ or $v0, $v0, $v1
/* 3F124 80063D24 8C440000 */ lw $a0, %lo(D_A0000000)($v0)
/* 3F128 80063D28 AE040010 */ sw $a0, 0x10($s0)
.LIQUE_80063D2C:
/* 3F12C 80063D2C 02002021 */ addu $a0, $s0, $zero
.LIQUE_80063D30:
/* 3F130 80063D30 0C018180 */ jal osWritebackDCache
/* 3F134 80063D34 24050040 */ addiu $a1, $zero, 0x40
/* 3F138 80063D38 0C01ADDC */ jal __osSpSetStatus
/* 3F13C 80063D3C 24042B00 */ addiu $a0, $zero, 0x2B00
/* 3F140 80063D40 2411FFFF */ addiu $s1, $zero, -0x1
/* 3F144 80063D44 3C040400 */ lui $a0, (0x4001000 >> 16)
.LIQUE_80063D48:
/* 3F148 80063D48 0C01ADE0 */ jal __osSpSetPc
/* 3F14C 80063D4C 34841000 */ ori $a0, $a0, (0x4001000 & 0xFFFF)
/* 3F150 80063D50 1051FFFD */ beq $v0, $s1, .LIQUE_80063D48
/* 3F154 80063D54 3C040400 */ lui $a0, (0x4001000 >> 16)
/* 3F158 80063D58 2411FFFF */ addiu $s1, $zero, -0x1
/* 3F15C 80063D5C 24040001 */ addiu $a0, $zero, 0x1
.LIQUE_80063D60:
/* 3F160 80063D60 3C050400 */ lui $a1, (0x4000FC0 >> 16)
/* 3F164 80063D64 34A50FC0 */ ori $a1, $a1, (0x4000FC0 & 0xFFFF)
/* 3F168 80063D68 02003021 */ addu $a2, $s0, $zero
/* 3F16C 80063D6C 0C01ADEC */ jal func_IQUE_8006B7B0
/* 3F170 80063D70 24070040 */ addiu $a3, $zero, 0x40
/* 3F174 80063D74 1051FFFA */ beq $v0, $s1, .LIQUE_80063D60
/* 3F178 80063D78 24040001 */ addiu $a0, $zero, 0x1
.LIQUE_80063D7C:
/* 3F17C 80063D7C 0C01ADCC */ jal __osSpDeviceBusy
/* 3F180 80063D80 00000000 */ nop
/* 3F184 80063D84 1440FFFD */ bnez $v0, .LIQUE_80063D7C
/* 3F188 80063D88 24040001 */ addiu $a0, $zero, 0x1
/* 3F18C 80063D8C 2411FFFF */ addiu $s1, $zero, -0x1
.LIQUE_80063D90:
/* 3F190 80063D90 3C050400 */ lui $a1, (0x4001000 >> 16)
/* 3F194 80063D94 8E060008 */ lw $a2, 0x8($s0)
/* 3F198 80063D98 8E07000C */ lw $a3, 0xC($s0)
/* 3F19C 80063D9C 0C01ADEC */ jal func_IQUE_8006B7B0
/* 3F1A0 80063DA0 34A51000 */ ori $a1, $a1, (0x4001000 & 0xFFFF)
/* 3F1A4 80063DA4 1051FFFA */ beq $v0, $s1, .LIQUE_80063D90
/* 3F1A8 80063DA8 24040001 */ addiu $a0, $zero, 0x1
/* 3F1AC 80063DAC 8FBF0018 */ lw $ra, 0x18($sp)
/* 3F1B0 80063DB0 8FB10014 */ lw $s1, 0x14($sp)
/* 3F1B4 80063DB4 8FB00010 */ lw $s0, 0x10($sp)
/* 3F1B8 80063DB8 03E00008 */ jr $ra
/* 3F1BC 80063DBC 27BD0020 */ addiu $sp, $sp, 0x20
glabel osSpTaskStartGo
/* 3F1C0 80063DC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3F1C4 80063DC4 AFBF0010 */ sw $ra, 0x10($sp)
.LIQUE_80063DC8:
/* 3F1C8 80063DC8 0C01ADCC */ jal __osSpDeviceBusy
/* 3F1CC 80063DCC 00000000 */ nop
/* 3F1D0 80063DD0 1440FFFD */ bnez $v0, .LIQUE_80063DC8
/* 3F1D4 80063DD4 00000000 */ nop
/* 3F1D8 80063DD8 0C01ADDC */ jal __osSpSetStatus
/* 3F1DC 80063DDC 24040125 */ addiu $a0, $zero, 0x125
/* 3F1E0 80063DE0 8FBF0010 */ lw $ra, 0x10($sp)
/* 3F1E4 80063DE4 03E00008 */ jr $ra
/* 3F1E8 80063DE8 27BD0018 */ addiu $sp, $sp, 0x18
/* 3F1EC 80063DEC 00000000 */ nop

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