appendGfx_shading_palette (#1010)

* cleanup & warnings for modern gcc

* clean

* stuff

* diff.py update

* Fix offset problem in struct

* Fix texture issue in chapter_change

* appendGfx_shading_palette
This commit is contained in:
Ethan Roseman 2023-04-08 23:04:45 +09:00 committed by GitHub
parent 93ed912319
commit 3e3558a37f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 993 additions and 1572 deletions

1026
diff.py

File diff suppressed because it is too large Load Diff

View File

@ -8,4 +8,4 @@ def apply(config, args):
config['source_directories'] = ['src', f'{ver_dir}asm', 'include', f'{ver_dir}assets'] config['source_directories'] = ['src', f'{ver_dir}asm', 'include', f'{ver_dir}assets']
config['make_command'] = ['ninja'] config['make_command'] = ['ninja']
config['objdump_flags'] = ['-M','reg-names=32'] config['objdump_flags'] = ['-M','reg-names=32']
config['expected_directory'] = f'{ver_dir}/expected/' config['expected_dir'] = f'{ver_dir}/expected/'

View File

@ -160,7 +160,7 @@ typedef struct HeartBlockContentData {
/* 0x01C */ f32 sparkleTrailRadius; /* 0x01C */ f32 sparkleTrailRadius;
/* 0x020 */ f32 bouncePhase; /* 0x020 */ f32 bouncePhase;
/* 0x024 */ u16 yawBufferPos; /* 0x024 */ u16 yawBufferPos;
/* 0x024 */ s16 unk_26; /* 0x026 */ s16 unk_26;
/* 0x028 */ f32 yawBuffer[10]; /* 0x028 */ f32 yawBuffer[10];
/* 0x050 */ f32 unk_50; /* 0x050 */ f32 unk_50;
/* 0x054 */ f32 rotationRate; /* 0x054 */ f32 rotationRate;

View File

@ -12,8 +12,6 @@ f32 fabsf(f32 f);
f64 fabs(f64 f); f64 fabs(f64 f);
f32 cosine(s16 arg0); f32 cosine(s16 arg0);
s32 strcmp(const char* str1, const char* str2);
void nuBoot(void); void nuBoot(void);
void boot_idle(void* data); void boot_idle(void* data);
void boot_main(void* data); void boot_main(void* data);

View File

@ -37,7 +37,7 @@
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#if !defined(PERMUTER) #if !defined(PERMUTER) && !defined(M2CTX) && defined(OLD_GCC)
#define NOP_FIX __asm__(".set nogpopt"); #define NOP_FIX __asm__(".set nogpopt");
#define NOP_UNFIX __asm__(".set gpopt"); #define NOP_UNFIX __asm__(".set gpopt");
#else #else

View File

@ -4,7 +4,7 @@
#include "ld_addrs.h" #include "ld_addrs.h"
#ifdef SHIFT #ifdef SHIFT
#define SPRITE_ROM_START _1943000_ROM_START + 0x10 #define SPRITE_ROM_START (u32) _1943000_ROM_START + 0x10
#else #else
#define SPRITE_ROM_START 0x1943000 + 0x10 #define SPRITE_ROM_START 0x1943000 + 0x10
#endif #endif

View File

@ -72,19 +72,18 @@ void create_target_list(Actor* actor, s32 arg1) {
s32 i, j; s32 i, j;
f32 targetX, targetY, targetZ; f32 targetX, targetY, targetZ;
f32 f2, f12, f14; f32 f2, f12, f14;
f32 f61;
u8 overlayType; u8 overlayType;
f32 overlayZoom; f32 overlayZoom;
s32 sp18 = FALSE; s32 sp18 = FALSE;
s32 col; s32 col;
s32 row; s32 row;
s32 skip; s32 skip;
if (battleStatus->currentTargetListFlags & TARGET_FLAG_80000000) { if (battleStatus->currentTargetListFlags & TARGET_FLAG_80000000) {
actor->targetListLength = -1; actor->targetListLength = -1;
return; return;
} }
if (battleStatus->currentTargetListFlags & TARGET_FLAG_PLAYER) { if (battleStatus->currentTargetListFlags & TARGET_FLAG_PLAYER) {
targetDataList->actorID = ACTOR_PLAYER; targetDataList->actorID = ACTOR_PLAYER;
targetDataList->partID = 1; targetDataList->partID = 1;
@ -98,7 +97,7 @@ void create_target_list(Actor* actor, s32 arg1) {
targetDataList->pos.z = playerActor->homePos.z; targetDataList->pos.z = playerActor->homePos.z;
} }
targetDataList->unk_10 = -100; targetDataList->unk_10 = -100;
numTargets += 1; numTargets++;
targetDataList++; targetDataList++;
} }
@ -115,7 +114,7 @@ void create_target_list(Actor* actor, s32 arg1) {
targetDataList->pos.z = partnerActor->homePos.z; targetDataList->pos.z = partnerActor->homePos.z;
} }
targetDataList->unk_10 = -50; targetDataList->unk_10 = -50;
numTargets += 1; numTargets++;
targetDataList++; targetDataList++;
} }

View File

@ -55,10 +55,18 @@ s32 func_E0200044(s32 max, s32 idx) {
#ifdef NON_EQUIVALENT #ifdef NON_EQUIVALENT
void func_E02000AC(s32 arg0, s32 arg1) { void func_E02000AC(s32 arg0, s32 arg1) {
s32 i, j; s32 i, j;
s32 newvar;
s32 width = 80;
s32 tmp = 0;
s32 x, y;
int new_var;
int new_var2;
gDPSetPrimColor(gMainGfxPos++, 0, 0, 128, 128, 128, 255); gDPSetPrimColor(gMainGfxPos++, 0, 0, 128, 128, 128, 255);
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
x = arg0;
newvar = i * 6;
gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, nuGfxCfb_ptr); gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, nuGfxCfb_ptr);
gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b,
(((((79)-(0)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0, (((((79)-(0)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0,
@ -77,37 +85,42 @@ void func_E02000AC(s32 arg0, s32 arg1) {
G_TX_RENDERTILE, 0, G_TX_RENDERTILE, 0,
G_TX_WRAP, 6, G_TX_NOLOD, G_TX_WRAP, 6, G_TX_NOLOD,
G_TX_WRAP, 7, G_TX_NOLOD); G_TX_WRAP, 7, G_TX_NOLOD);
gDPLoadTile(gMainGfxPos++, G_TX_RENDERTILE, gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE,
(arg0)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6)<<G_TEXTURE_IMAGE_FRAC,
(arg0 + 79)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6 + 5)<<G_TEXTURE_IMAGE_FRAC);
gDPLoadTile(gMainGfxPos++, G_TX_RENDERTILE + 1,
(arg0)<<G_TEXTURE_IMAGE_FRAC, (arg0)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6)<<G_TEXTURE_IMAGE_FRAC, (arg1 + i * 6)<<G_TEXTURE_IMAGE_FRAC,
(arg0 + 79)<<G_TEXTURE_IMAGE_FRAC, (arg0 + 79)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6 + 5)<<G_TEXTURE_IMAGE_FRAC); (arg1 + i * 6 + 5)<<G_TEXTURE_IMAGE_FRAC);
gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE + 1,
(arg0)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6)<<G_TEXTURE_IMAGE_FRAC,
(arg0 + 79)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6 + 5)<<G_TEXTURE_IMAGE_FRAC);
new_var2 = arg0 + width;
for (j = 0; j < 1; j++) { for (j = 0; j < 1; j++) {
gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, nuGfxCfb_ptr); gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, nuGfxCfb_ptr);
gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b,
(((((320)-(0)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0x100, (((((x+width-1)-(x)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0x100,
G_TX_LOADTILE, 0, G_TX_LOADTILE, 0,
G_TX_WRAP, 6, G_TX_NOLOD, G_TX_WRAP, 6, G_TX_NOLOD,
G_TX_WRAP, 7, G_TX_NOLOD); G_TX_WRAP, 7, G_TX_NOLOD);
gDPLoadSync(gMainGfxPos++); gDPLoadSync(gMainGfxPos++);
gDPLoadTile(gMainGfxPos++, G_TX_LOADTILE, gDPLoadTile(gMainGfxPos++, G_TX_LOADTILE,
(arg0)<<G_TEXTURE_IMAGE_FRAC, (x)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6)<<G_TEXTURE_IMAGE_FRAC, (arg1 + newvar)<<G_TEXTURE_IMAGE_FRAC,
(arg0 + 80 - 1)<<G_TEXTURE_IMAGE_FRAC, (new_var2 - 1)<<G_TEXTURE_IMAGE_FRAC,
(arg1 + i * 6 + 5)<<G_TEXTURE_IMAGE_FRAC); (arg1 + newvar + 5)<<G_TEXTURE_IMAGE_FRAC);
gDPPipeSync(gMainGfxPos++); gDPPipeSync(gMainGfxPos++);
gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b,
(((((320)-(0)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0, (((((x+width-1)-(x)+1) * G_IM_SIZ_16b_TILE_BYTES)+7)>>3), 0x100,
G_TX_RENDERTILE + 1, 0, G_TX_RENDERTILE + 1, 0,
G_TX_WRAP, 6, G_TX_NOLOD, G_TX_WRAP, 6, G_TX_NOLOD,
G_TX_WRAP, 7, G_TX_NOLOD); G_TX_WRAP, 7, G_TX_NOLOD);
gDPTextureRectangle(gMainGfxPos++, arg0 * 4, (arg1 + i * 6) * 4, (arg0 + 80) * 4, (arg1 + i * 6 + 6) * 4, 0, arg0 * 32, arg1 * 32, 0x400, 0x400); gSPTextureRectangle(gMainGfxPos++, x * 4, (arg1 + newvar) * 4,
(x + width) * 4, (arg1 + newvar + 6) * 4, 0,
x * 32, (arg1 + i * 6) * 32,
0x400, 0x400);
} }
gDPPipeSync(gMainGfxPos++); gDPPipeSync(gMainGfxPos++);
} }

View File

@ -1,5 +1,6 @@
#include "common.h" #include "common.h"
#include "nu/nusys.h" #include "nu/nusys.h"
#include "gcc/string.h"
u16 heap_nextMallocID = 0; u16 heap_nextMallocID = 0;

View File

@ -7,6 +7,7 @@
#include "effects.h" #include "effects.h"
#include "nu/nusys.h" #include "nu/nusys.h"
#include "model_clear_render_tasks.h" #include "model_clear_render_tasks.h"
#include "gcc/string.h"
#if VERSION_IQUE #if VERSION_IQUE
// TODO: remove if sections are split in iQue release // TODO: remove if sections are split in iQue release
@ -36,10 +37,7 @@ extern Addr WorldEntityHeapBase;
typedef struct Fog { typedef struct Fog {
/* 0x00 */ s32 enabled; /* 0x00 */ s32 enabled;
/* 0x04 */ s32 r; /* 0x04 */ Color4i color;
/* 0x08 */ s32 g;
/* 0x0C */ s32 b;
/* 0x10 */ s32 a;
/* 0x14 */ s32 startDistance; /* 0x14 */ s32 startDistance;
/* 0x18 */ s32 endDistance; /* 0x18 */ s32 endDistance;
} Fog; // size = 0x1C } Fog; // size = 0x1C
@ -3401,10 +3399,10 @@ void appendGfx_model(void* data) {
break; break;
} }
gSPDisplayList((*gfxPos)++, D_8014AFC0[renderModeIdx]); gSPDisplayList((*gfxPos)++, D_8014AFC0[renderModeIdx]);
gDPSetFogColor((*gfxPos)++, gCurrentFogSettings->r, gDPSetFogColor((*gfxPos)++, gCurrentFogSettings->color.r,
gCurrentFogSettings->g, gCurrentFogSettings->color.g,
gCurrentFogSettings->b, gCurrentFogSettings->color.b,
gCurrentFogSettings->a); gCurrentFogSettings->color.a);
gSPFogPosition((*gfxPos)++, gCurrentFogSettings->startDistance, gCurrentFogSettings->endDistance); gSPFogPosition((*gfxPos)++, gCurrentFogSettings->startDistance, gCurrentFogSettings->endDistance);
break; break;
case 4: case 4:
@ -3472,9 +3470,9 @@ void appendGfx_model(void* data) {
gDPSetRenderMode(gMainGfxPos++, GBL_c1(G_BL_CLR_BL, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA), G_RM_CLD_SURF2); gDPSetRenderMode(gMainGfxPos++, GBL_c1(G_BL_CLR_BL, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA), G_RM_CLD_SURF2);
break; break;
} }
gDPSetFogColor((*gfxPos)++, gCurrentFogSettings->r, gDPSetFogColor((*gfxPos)++, gCurrentFogSettings->color.r,
gCurrentFogSettings->g, gCurrentFogSettings->color.g,
gCurrentFogSettings->b, gCurrentFogSettings->color.b,
mdl_bgMultiplyColorA); mdl_bgMultiplyColorA);
gDPSetBlendColor((*gfxPos)++, mdl_bgMultiplyColorR, gDPSetBlendColor((*gfxPos)++, mdl_bgMultiplyColorR,
mdl_bgMultiplyColorG, mdl_bgMultiplyColorG,
@ -3546,14 +3544,14 @@ void appendGfx_model(void* data) {
} }
gSPDisplayList((*gfxPos)++, D_8014AFC0[renderModeIdx]); gSPDisplayList((*gfxPos)++, D_8014AFC0[renderModeIdx]);
fogR = (gCurrentFogSettings->r * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorR * mdl_bgMultiplyColorA) / 255; fogR = (gCurrentFogSettings->color.r * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorR * mdl_bgMultiplyColorA) / 255;
fogG = (gCurrentFogSettings->g * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorG * mdl_bgMultiplyColorA) / 255; fogG = (gCurrentFogSettings->color.g * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorG * mdl_bgMultiplyColorA) / 255;
fogB = (gCurrentFogSettings->b * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorB * mdl_bgMultiplyColorA) / 255; fogB = (gCurrentFogSettings->color.b * (255 - mdl_bgMultiplyColorA) + mdl_bgMultiplyColorB * mdl_bgMultiplyColorA) / 255;
fogMin = (gCurrentFogSettings->startDistance * (255 - mdl_bgMultiplyColorA) + 900 * mdl_bgMultiplyColorA) / 255; fogMin = (gCurrentFogSettings->startDistance * (255 - mdl_bgMultiplyColorA) + 900 * mdl_bgMultiplyColorA) / 255;
fogMax = (gCurrentFogSettings->endDistance * (255 - mdl_bgMultiplyColorA) + 1000 * mdl_bgMultiplyColorA) / 255; fogMax = (gCurrentFogSettings->endDistance * (255 - mdl_bgMultiplyColorA) + 1000 * mdl_bgMultiplyColorA) / 255;
gDPSetFogColor(gMainGfxPos++, fogR, fogG, fogB, gCurrentFogSettings->a); gDPSetFogColor(gMainGfxPos++, fogR, fogG, fogB, gCurrentFogSettings->color.a);
gSPFogPosition((*gfxPos)++, fogMin, fogMax); gSPFogPosition((*gfxPos)++, fogMin, fogMax);
break; break;
case 10: case 10:
@ -4043,12 +4041,12 @@ void clear_model_data(void) {
} }
*gBackgroundFogModePtr = FOG_MODE_0; *gBackgroundFogModePtr = FOG_MODE_0;
gCurrentFogSettings->r = 10; gCurrentFogSettings->color.r = 10;
gCurrentFogSettings->g = 10; gCurrentFogSettings->color.g = 10;
gCurrentFogSettings->b = 10; gCurrentFogSettings->color.b = 10;
gCurrentFogSettings->startDistance = 950; gCurrentFogSettings->startDistance = 950;
gCurrentFogSettings->enabled = FALSE; gCurrentFogSettings->enabled = FALSE;
gCurrentFogSettings->a = 0; gCurrentFogSettings->color.a = 0;
gCurrentFogSettings->endDistance = 1000; gCurrentFogSettings->endDistance = 1000;
for (i = 0; i < ARRAY_COUNT(texPannerAuxV); i++) { for (i = 0; i < ARRAY_COUNT(texPannerAuxV); i++) {
@ -5381,10 +5379,10 @@ void set_world_fog_dist(s32 start, s32 end) {
} }
void set_world_fog_color(s32 r, s32 g, s32 b, s32 a) { void set_world_fog_color(s32 r, s32 g, s32 b, s32 a) {
gCurrentFogSettings->r = r; gCurrentFogSettings->color.r = r;
gCurrentFogSettings->g = g; gCurrentFogSettings->color.g = g;
gCurrentFogSettings->b = b; gCurrentFogSettings->color.b = b;
gCurrentFogSettings->a = a; gCurrentFogSettings->color.a = a;
} }
s32 is_world_fog_enabled(void) { s32 is_world_fog_enabled(void) {
@ -5397,10 +5395,10 @@ void get_world_fog_distance(s32* start, s32* end) {
} }
void get_world_fog_color(s32* r, s32* g, s32* b, s32* a) { void get_world_fog_color(s32* r, s32* g, s32* b, s32* a) {
*r = gCurrentFogSettings->r; *r = gCurrentFogSettings->color.r;
*g = gCurrentFogSettings->g; *g = gCurrentFogSettings->color.g;
*b = gCurrentFogSettings->b; *b = gCurrentFogSettings->color.b;
*a = gCurrentFogSettings->a; *a = gCurrentFogSettings->color.a;
} }
void set_tex_panner(Model* model, s32 texPannerID) { void set_tex_panner(Model* model, s32 texPannerID) {
@ -5682,7 +5680,7 @@ Gfx* mdl_get_copied_gfx(s32 copyIndex) {
Gfx* gfxCopy = mlvc->gfxCopy[selector]; Gfx* gfxCopy = mlvc->gfxCopy[selector];
mlvc->selector++; mlvc->selector++;
if (mlvc->selector >= 2) { if (mlvc->selector > ARRAY_COUNT(mlvc->gfxCopy) - 1) {
mlvc->selector = 0; mlvc->selector = 0;
} }
@ -6277,7 +6275,7 @@ void execute_render_tasks(void) {
} }
mdl_renderTaskQueueIdx++; mdl_renderTaskQueueIdx++;
if (mdl_renderTaskQueueIdx > 2) { if (mdl_renderTaskQueueIdx > ARRAY_COUNT(mdl_renderTaskLists) - 1) {
mdl_renderTaskQueueIdx = 0; mdl_renderTaskQueueIdx = 0;
} }
mdl_renderTaskCount = 0; mdl_renderTaskCount = 0;

View File

@ -9,7 +9,7 @@ extern f32 AlTuneScaling[];
#ifdef SHIFT #ifdef SHIFT
#define SBN_ROM_OFFSET SBN_ROM_START #define SBN_ROM_OFFSET (s32) SBN_ROM_START
#elif VERSION_JP #elif VERSION_JP
#define SBN_ROM_OFFSET 0xFC0000 #define SBN_ROM_OFFSET 0xFC0000
#else #else

View File

@ -1,5 +1,6 @@
#include "common.h" #include "common.h"
#include "effects.h" #include "effects.h"
#include "gcc/string.h"
char* N(RightSunMaps)[] = { char* N(RightSunMaps)[] = {
"flo_03", "flo_03",

View File

@ -2,6 +2,7 @@
#include "stdlib/stdarg.h" #include "stdlib/stdarg.h"
#include "PR/os_internal_thread.h" #include "PR/os_internal_thread.h"
#include "libc/xstdio.h" #include "libc/xstdio.h"
#include "gcc/string.h"
typedef struct { typedef struct {
/* 0x000 */ OSThread thread; /* 0x000 */ OSThread thread;

View File

@ -1,5 +1,6 @@
#include "common.h" #include "common.h"
#include "model.h" #include "model.h"
#include "gcc/string.h"
char gCloudyFlowerFieldsBg[] = "fla_bg"; char gCloudyFlowerFieldsBg[] = "fla_bg";
char gSunnyFlowerFieldsBg[] = "flb_bg"; char gSunnyFlowerFieldsBg[] = "flb_bg";

View File

@ -5,7 +5,6 @@
#include "effects/gfx/D_09002080_3EDEE0.png.inc.c" #include "effects/gfx/D_09002080_3EDEE0.png.inc.c"
#include "effects/gfx/D_09002580_3EE3E0.png.inc.c" #include "effects/gfx/D_09002580_3EE3E0.png.inc.c"
#include "effects/gfx/world/text_end_of.png.inc.c" #include "effects/gfx/world/text_end_of.png.inc.c"
#include "effects/gfx/D_090032A0_3EF100.png.inc.c"
#include "effects/gfx/world/exclamation_point.png.inc.c" #include "effects/gfx/world/exclamation_point.png.inc.c"
#include "effects/gfx/world/ch1.png.inc.c" #include "effects/gfx/world/ch1.png.inc.c"
#include "effects/gfx/world/ch2.png.inc.c" #include "effects/gfx/world/ch2.png.inc.c"
@ -30,7 +29,15 @@
#include "effects/gfx/D_0900C1B0_3F8010.gfx.inc.c" #include "effects/gfx/D_0900C1B0_3F8010.gfx.inc.c"
#include "effects/gfx/D_0900C1F8_3F8058.gfx.inc.c" #include "effects/gfx/D_0900C1F8_3F8058.gfx.inc.c"
#include "effects/gfx/D_0900C240_3F80A0.gfx.inc.c" #include "effects/gfx/D_0900C240_3F80A0.gfx.inc.c"
#include "effects/gfx/D_0900C328_3F8188.gfx.inc.c"
// TODO allow splat to output the reference to halfway into the texture
//#include "effects/gfx/D_0900C328_3F8188.gfx.inc.c"
Gfx D_0900C328_3F8188[] = {
gsDPSetTextureLUT(G_TT_NONE),
gsDPLoadTextureTile(&D_09002A80_3EE8E0[0x820], G_IM_FMT_IA, G_IM_SIZ_8b, 104, 0, 0, 0, 103, 19, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD),
gsSPEndDisplayList(),
};
#include "effects/gfx/D_0900C370_3F81D0.gfx.inc.c" #include "effects/gfx/D_0900C370_3F81D0.gfx.inc.c"
#include "effects/gfx/D_0900C458_3F82B8.gfx.inc.c" #include "effects/gfx/D_0900C458_3F82B8.gfx.inc.c"
#include "effects/gfx/D_0900C540_3F83A0.gfx.inc.c" #include "effects/gfx/D_0900C540_3F83A0.gfx.inc.c"

View File

@ -1,5 +1,6 @@
#include "fio.h" #include "fio.h"
#include "PR/os_flash.h" #include "PR/os_flash.h"
#include "gcc/string.h"
extern SaveData D_8009A6B0; extern SaveData D_8009A6B0;
extern s32 logicalSaveInfo[4][2]; extern s32 logicalSaveInfo[4][2];

View File

@ -21,8 +21,6 @@ extern s32 D_80073E10[];
extern u16* D_8009A680; extern u16* D_8009A680;
#ifdef SHIFT #ifdef SHIFT
void create_audio_system(void);
void load_engine_data(void);
#define shim_create_audio_system_obfuscated create_audio_system #define shim_create_audio_system_obfuscated create_audio_system
#define shim_load_engine_data_obfuscated load_engine_data #define shim_load_engine_data_obfuscated load_engine_data
#endif #endif

View File

@ -446,17 +446,22 @@ void npc_do_other_npc_collision(Npc* npc) {
// float regalloc // float regalloc
#ifdef NON_MATCHING #ifdef NON_MATCHING
s32 npc_do_player_collision(Npc* npc) { s32 npc_do_player_collision(Npc* npc) {
f32 sp10;
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
f32 xDiff, zDiff; f32 xDiff, zDiff;
f32 xDiff2, zDiff2;
f32 npcColliderX, npcColliderZ; f32 npcColliderX, npcColliderZ;
f32 playerX, playerZ; f32 playerX, playerZ;
f32 tempX, tempZ;
f32 temp_f0; f32 theta;
f32 temp_f22_2; f32 dist;
f32 temp_f24;
f32 temp_f24_2; f32 temp_f24_2;
f32 temp_f28; f32 targetYaw;
f32 new_var;
f32 xSub;
f32 zSub;
f32 collRad, collDiam;
int new_var2;
if (npc->flags & NPC_FLAG_IGNORE_PLAYER_COLLISION) { if (npc->flags & NPC_FLAG_IGNORE_PLAYER_COLLISION) {
return FALSE; return FALSE;
@ -480,55 +485,55 @@ s32 npc_do_player_collision(Npc* npc) {
playerX = playerStatus->position.x; playerX = playerStatus->position.x;
playerZ = playerStatus->position.z; playerZ = playerStatus->position.z;
tempX = npc->pos.x; xDiff = playerX - npc->pos.x;
tempZ = npc->pos.z; zDiff = playerZ - npc->pos.z;
xDiff = playerX - tempX; sp10 = (npc->collisionRadius / 2) + (f32)(playerStatus->colliderDiameter / 2);
zDiff = playerZ - tempZ; npcColliderZ = zDiff;
temp_f24_2 = xDiff;
temp_f22_2 = (npc->collisionRadius / 2) + (f32)(playerStatus->colliderDiameter / 2); dist = sqrtf(SQ(temp_f24_2) + SQ(npcColliderZ));
if (temp_f22_2 < sqrtf(SQ(xDiff) + SQ(zDiff))) { if (sp10 < dist) {
return FALSE; return FALSE;
} }
playerStatus->animFlags |= 0x8000; playerStatus->animFlags |= 0x8000;
//playerX = playerStatus->position.x;
npcColliderX = npc->colliderPos.x; npcColliderX = npc->colliderPos.x;
npcColliderZ = npc->colliderPos.z; npcColliderZ = npc->colliderPos.z;
tempX = playerX - npcColliderX; zSub = sp10;
tempZ = playerZ - npcColliderZ; xDiff = playerX - npcColliderX;
zDiff = playerZ - npcColliderZ;
//temp_f24 = sqrtf(SQ(tempX) + SQ(tempZ)); dist = xSub = sqrtf(SQ(xDiff) + SQ(zDiff));
xDiff = tempZ;
temp_f24 = sqrtf((tempX * tempX) + (xDiff * xDiff));
temp_f0 = atan2(playerX, playerZ, npcColliderX, npcColliderZ); theta = atan2(playerX, playerZ, npcColliderX, npcColliderZ);
temp_f28 = playerStatus->targetYaw; targetYaw = playerStatus->targetYaw;
temp_f24_2 = temp_f22_2 - temp_f24;
temp_f24 = temp_f24_2 * sin_rad(DEG_TO_RAD(temp_f0)); temp_f24_2 = zSub - dist;
playerZ = -temp_f24_2 * cos_rad(DEG_TO_RAD(temp_f0));
xSub = temp_f24_2 * sin_rad(DEG_TO_RAD(theta));
zSub = -temp_f24_2 * cos_rad(DEG_TO_RAD(theta));
if (playerStatus->animFlags & PA_FLAG_RIDING_PARTNER) { if (playerStatus->animFlags & PA_FLAG_RIDING_PARTNER) {
if (fabsf(get_clamped_angle_diff(temp_f0, temp_f28)) < 45.0f) { if (fabsf(get_clamped_angle_diff(theta, targetYaw)) < 45.0f) {
playerStatus->position.x -= temp_f24; playerStatus->position.x -= xSub;
playerStatus->position.z -= playerZ; playerStatus->position.z -= zSub;
wPartnerNpc->pos.x -= temp_f24; wPartnerNpc->pos.x -= xSub;
wPartnerNpc->pos.z -= playerZ; wPartnerNpc->pos.z -= zSub;
} else { } else {
playerStatus->position.x -= temp_f24 * 0.5f; playerStatus->position.x -= xSub * 0.5f;
playerStatus->position.z -= playerZ * 0.5f; playerStatus->position.z -= zSub * 0.5f;
wPartnerNpc->pos.x -= temp_f24 * 0.5f; wPartnerNpc->pos.x -= xSub * 0.5f;
wPartnerNpc->pos.z -= playerZ * 0.5f; wPartnerNpc->pos.z -= zSub * 0.5f;
} }
} else { } else {
if (playerStatus->flags & (PS_FLAG_JUMPING | PS_FLAG_FALLING)) { if (playerStatus->flags & (PS_FLAG_JUMPING | PS_FLAG_FALLING)) {
playerStatus->position.x -= temp_f24 * 0.4f; playerStatus->position.x -= xSub * 0.4f;
playerStatus->position.z -= playerZ * 0.4f; playerStatus->position.z -= zSub * 0.4f;
} else if (fabsf(get_clamped_angle_diff(temp_f0, temp_f28)) < 45.0f) { } else if (fabsf(get_clamped_angle_diff(theta, targetYaw)) < 45.0f) {
playerStatus->position.x -= temp_f24; playerStatus->position.x -= xSub;
playerStatus->position.z -= playerZ; playerStatus->position.z -= zSub;
} else { } else {
playerStatus->position.x -= temp_f24 * 0.5f; playerStatus->position.x -= xSub * 0.5f;
playerStatus->position.z -= playerZ * 0.5f; playerStatus->position.z -= zSub * 0.5f;
} }
} }
npc->pos.x = npc->colliderPos.x; npc->pos.x = npc->colliderPos.x;
@ -546,7 +551,7 @@ void npc_try_apply_gravity(Npc* npc) {
f32 x, y, z, testLength; f32 x, y, z, testLength;
f32 length; f32 length;
s32 hitID; s32 hitID;
if (!(npc->flags & NPC_FLAG_GRAVITY)) { if (!(npc->flags & NPC_FLAG_GRAVITY)) {
return; return;
} }
@ -586,7 +591,7 @@ s32 npc_try_snap_to_ground(Npc* npc, f32 velocity) {
f32 x, y, z, testLength; f32 x, y, z, testLength;
f32 length; f32 length;
s32 hitID; s32 hitID;
if (npc->flags & (NPC_FLAG_GRAVITY | NPC_FLAG_8)) { if (npc->flags & (NPC_FLAG_GRAVITY | NPC_FLAG_8)) {
return FALSE; return FALSE;
} }

View File

@ -1269,7 +1269,7 @@ s32 func_802DE8DC(s32 spriteIdx, s32 compListIdx, s32* outX, s32* outY, s32* out
u32* spriteData; u32* spriteData;
if (sprite->componentList == NULL) { if (sprite->componentList == NULL) {
return; return; // bug: does not return a value
} }
animID = sprite->currentAnimID; animID = sprite->currentAnimID;
@ -1297,7 +1297,7 @@ s32 func_802DE8DC(s32 spriteIdx, s32 compListIdx, s32* outX, s32* outY, s32* out
} }
} }
} else { } else {
return; return; // bug: does not return a value
} }
return -1; return -1;
} }

View File

@ -272,14 +272,6 @@ void create_shading_palette(Matrix4f mtx, s32 uls, s32 ult, s32 lrs, s32 lrt, s3
} }
} }
extern int ENVIRONMENT;
extern int SHADE;
extern int COMBINED;
extern int COMBINED_ALPHA;
extern int TEXEL0_ALPHA;
// float regalloc
#ifdef NON_MATCHING
void appendGfx_shading_palette( void appendGfx_shading_palette(
Matrix4f mtx, Matrix4f mtx,
s32 uls, s32 ult, s32 lrs, s32 lrt, s32 uls, s32 ult, s32 lrs, s32 lrt,
@ -290,20 +282,20 @@ void appendGfx_shading_palette(
s32 ambientPower, s32 renderMode) s32 ambientPower, s32 renderMode)
{ {
Camera* camera = &gCameras[gCurrentCameraID]; Camera* camera = &gCameras[gCurrentCameraID];
f32 temp_f0; f32 mtx01;
f32 temp_f1; f32 mtx11;
f32 temp_f2; f32 mtx21;
f32 var_f26; f32 offsetXComp;
f32 temp_f28 = 0; f32 offsetYComp = 0;
f32 temp_f6_2; f32 apMag;
f32 var_f12; f32 var_f12;
f32 var_f12_2;
f32 var_f20; f32 var_f20;
f32 var_f30; f32 facingDir;
f32 var_f26_2;
f32 ex, ey, ez; f32 ex, ey, ez;
float new_var3; f32 offsetX, offsetY;
f32 pm02, pm12, pm22;
f32 a1, a2; f32 t1;
var_f12 = SQ(shadowX) + SQ(shadowY) + SQ(shadowZ); var_f12 = SQ(shadowX) + SQ(shadowY) + SQ(shadowZ);
@ -315,15 +307,16 @@ void appendGfx_shading_palette(
} }
shadowX *= var_f12; shadowX *= var_f12;
shadowY *= var_f12; shadowY *= var_f12;
pm02 = var_f12; // TODO required to match
shadowZ *= var_f12; shadowZ *= var_f12;
if ((-mtx[0][2] * camera->perspectiveMatrix[0][2]) + (mtx[2][2] * camera->perspectiveMatrix[2][2]) < 0.0f) { if (((-mtx[0][2] * camera->perspectiveMatrix[0][2]) + (mtx[2][2] * camera->perspectiveMatrix[2][2])) < 0.0f) {
var_f30 = 1.0f; facingDir = 1.0f;
} else { } else {
var_f30 = -1.0f; facingDir = -1.0f;
} }
if (var_f30 < 0.0f) { if (facingDir < 0.0f) {
ex = mtx[0][2]; ex = mtx[0][2];
ey = mtx[1][2]; ey = mtx[1][2];
ez = -mtx[2][2]; ez = -mtx[2][2];
@ -333,34 +326,41 @@ void appendGfx_shading_palette(
ez = mtx[2][2]; ez = mtx[2][2];
} }
a1 = ((ex * shadowX) + (ey * shadowY)) + (ez * shadowZ); pm02 = camera->perspectiveMatrix[0][2];
new_var3 = a1; pm12 = camera->perspectiveMatrix[1][2];
temp_f2 = camera->perspectiveMatrix[2][2]; pm22 = camera->perspectiveMatrix[2][2];
var_f12 = camera->perspectiveMatrix[0][2];
var_f26 = var_f12; t1 = (ex * shadowX) + (ey * shadowY) + (ez * shadowZ);
a1 = shadowX * -temp_f2; apMag = (shadowX * -pm22) + (shadowZ * pm02);
temp_f6_2 = a1 + (var_f26 * shadowZ) ;
if (new_var3 > 0.0f) { if (t1 > 0.0f) {
var_f26 = ambientPower * temp_f6_2; offsetXComp = ambientPower * apMag;
} else if (ambientPower > 1.0f) {
offsetXComp = ambientPower * apMag;
} else { } else {
temp_f2 = ambientPower; // TODO grossness required to match
var_f26 = temp_f2 * temp_f6_2; // a temp s16 for ambientPower works as well as the explicit casting in both places
} offsetX = -1.0f;
offsetY = (s16) ambientPower > offsetX;
if ((s16) ambientPower > offsetX) {
offsetXComp = ambientPower * apMag;
} else {
offsetXComp = ambientPower * apMag;
}
}
var_f20 = SQ(shadowX) + SQ(shadowZ); var_f20 = SQ(shadowX) + SQ(shadowZ);
if (var_f20 != 0.0f) { if (var_f20 != 0.0f) {
var_f20 = sqrtf(var_f20); var_f20 = sqrtf(var_f20);
} }
temp_f0 = -mtx[0][1]; mtx01 = -mtx[0][1];
temp_f1 = mtx[1][1]; mtx11 = mtx[1][1];
temp_f2 = mtx[2][1]; mtx21 = mtx[2][1];
var_f12 = SQ(temp_f0) + SQ(temp_f2); var_f12_2 = SQ(mtx01) + SQ(mtx21);
if (var_f12 != 0.0f) { if (var_f12_2 != 0.0f) {
var_f12 = sqrtf(var_f12); var_f12_2 = sqrtf(var_f12_2);
} }
offsetYComp = -((var_f20 * var_f12_2) + (shadowY * mtx11)) * ambientPower;
temp_f28 = -((var_f20 * var_f12) + (shadowY * temp_f1)) * ambientPower;
if (shadowR > 255) { if (shadowR > 255) {
shadowR = 255; shadowR = 255;
@ -426,20 +426,17 @@ void appendGfx_shading_palette(
COMBINED, 0, 0, 0, COMBINED); COMBINED, 0, 0, 0, COMBINED);
} }
var_f26_2 = var_f26; offsetX = offsetXComp * facingDir;
var_f26_2 *= var_f30; offsetY = offsetYComp;
gDPSetTileSize( gDPSetTileSize(
gMainGfxPos++, gMainGfxPos++,
0, 0,
((uls + 0x100) << 2) + (s32)var_f26_2, ((uls + 0x100) << 2) + (s32)offsetX,
((ult + 0x100) << 2) + (s32)temp_f28, ((ult + 0x100) << 2) + (s32)offsetY,
((lrs + 0x100 - 1) << 2) + (s32)var_f26_2, ((lrs + 0x100 - 1) << 2) + (s32)offsetX,
((lrt + 0x100 - 1) << 2) + (s32)temp_f28 ((lrt + 0x100 - 1) << 2) + (s32)offsetY
); );
} }
#else
INCLUDE_ASM(s32, "de740_len_23f0", appendGfx_shading_palette);
#endif
void func_801491E4(Matrix4f mtx, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 alpha) { void func_801491E4(Matrix4f mtx, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 alpha) {
gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, alpha); gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, alpha);

View File

@ -1,3 +1,5 @@
#include "gcc/string.h"
// enum mapping itemIDs -> index in single recipe arrays and column/rows in double recipe matrix // enum mapping itemIDs -> index in single recipe arrays and column/rows in double recipe matrix
enum CookingIngredientID { enum CookingIngredientID {
iRSH = 0, // ITEM_MUSHROOM iRSH = 0, // ITEM_MUSHROOM
@ -256,35 +258,35 @@ s8 SingleRecipesWithCookbook[] = {
s8 DoubleRecipesMatrix[] = { s8 DoubleRecipesMatrix[] = {
/* iRSH iSSH iUSH iLSH iVSH iFFL iCOC iLIM iLEM iHSY iMSY iJAM iAPP iRBY iBBY iYBY iGMN iKLF iDRP iDRF iSLF iMIX iEGG iMEL iSTK iPOT iDSH iBUB iBMP */ /* iRSH iSSH iUSH iLSH iVSH iFFL iCOC iLIM iLEM iHSY iMSY iJAM iAPP iRBY iBBY iYBY iGMN iKLF iDRP iDRF iSLF iMIX iEGG iMEL iSTK iPOT iDSH iBUB iBMP */
/* iRSH */ rXXX, rHOT, rSHS, rSHS, rHOT, rHOT, rXXX, rXXX, rXXX, rHSH, rMSH, rJSH, rXXX, rXXX, rXXX, rXXX, rVSH, rVSH, rBLN, rVSH, rVSH, rSHC, rBLN, rXXX, rXXX, rBLN, rFRS, rXXX, rXXX, /* iRSH */ rXXX, rHOT, rSHS, rSHS, rHOT, rHOT, rXXX, rXXX, rXXX, rHSH, rMSH, rJSH, rXXX, rXXX, rXXX, rXXX, rVSH, rVSH, rBLN, rVSH, rVSH, rSHC, rBLN, rXXX, rXXX, rBLN, rFRS, rXXX, rXXX,
/* iSSH */ -1, rXXX, rSHS, rSHS, rHOT, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSHC, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX, /* iSSH */ -1, rXXX, rSHS, rSHS, rHOT, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSHC, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX,
/* iUSH */ -1, -1, rXXX, rSHS, rSHS, rYUM, rXXX, rXXX, rXXX, rHUL, rMUL, rJUL, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rYUM, rVSH, rLSH, rSWS, rYUM, rXXX, rXXX, rYUM, rSHS, rXXX, rXXX, /* iUSH */ -1, -1, rXXX, rSHS, rSHS, rYUM, rXXX, rXXX, rXXX, rHUL, rMUL, rJUL, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rYUM, rVSH, rLSH, rSWS, rYUM, rXXX, rXXX, rYUM, rSHS, rXXX, rXXX,
/* iLSH */ -1, -1, -1, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSWS, rBLN, rXXX, rXXX, rBLN, rSHS, rXXX, rXXX, /* iLSH */ -1, -1, -1, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSWS, rBLN, rXXX, rXXX, rBLN, rSHS, rXXX, rXXX,
/* iVSH */ -1, -1, -1, -1, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rTHR, rDZD, rELP, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX, /* iVSH */ -1, -1, -1, -1, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rTHR, rDZD, rELP, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX,
/* iFFL */ -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rXXX, rFIP, rEGM, rXXX, rXXX, rFZF, rFRS, rXXX, rXXX, /* iFFL */ -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rXXX, rFIP, rEGM, rXXX, rXXX, rFZF, rFRS, rXXX, rXXX,
/* iCOC */ -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rBLN, rXXX, rXXX, rCOP, rXXX, rSOD, rXXX, rBLN, rXXX, rXXX, rXXX, /* iCOC */ -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rBLN, rXXX, rXXX, rCOP, rXXX, rSOD, rXXX, rBLN, rXXX, rXXX, rXXX,
/* iLIM */ -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLIC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iLIM */ -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLIC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iLEM */ -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLEC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iLEM */ -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLEC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iHSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSSH, rTTN, rTTN, rTTN, rTTN, rXXX, rSOD, rXXX, rXXX, rXXX, rHNC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iHSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSSH, rTTN, rTTN, rTTN, rTTN, rXXX, rSOD, rXXX, rXXX, rXXX, rHNC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iMSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iMSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iJAM */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSSH, rSSH, rSSH, rXXX, rSOD, rXXX, rXXX, rXXX, rJLP, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iJAM */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSSH, rSSH, rSSH, rXXX, rSOD, rXXX, rXXX, rXXX, rJLP, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iAPP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rSOD, rXXX, rXXX, rXXX, rXXX, rXXX, rPIE, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iAPP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rSOD, rXXX, rXXX, rXXX, rXXX, rXXX, rPIE, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iRBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iRBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iBBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iBBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iYBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iYBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iGMN */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBLN, rBLN, rXXX, rBLN, rBCK, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, /* iGMN */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBLN, rBLN, rXXX, rBLN, rBCK, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iKLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rKOO, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX, /* iKLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rKOO, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iDRP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rYUM, rBLN, rXXX, rBLN, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, /* iDRP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rYUM, rBLN, rXXX, rBLN, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX,
/* iDRF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rFFL, rXXX, rXXX, rXXX, rXXX, rYUM, rXXX, rXXX, rXXX, /* iDRF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rFFL, rXXX, rXXX, rXXX, rXXX, rYUM, rXXX, rXXX, rXXX,
/* iSLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSTR, rBEG, rSSH, rDZD, rYUM, rXXX, rXXX, rXXX, /* iSLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSTR, rBEG, rSSH, rDZD, rYUM, rXXX, rXXX, rXXX,
/* iMIX */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBCK, rYCK, rKCK, rBLN, rXXX, rXXX, rXXX, /* iMIX */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBCK, rYCK, rKCK, rBLN, rXXX, rXXX, rXXX,
/* iEGG */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBEG, rBLN, rXXX, rXXX, rXXX, /* iEGG */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBEG, rBLN, rXXX, rXXX, rXXX,
/* iMEL */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, /* iMEL */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iSTK */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, /* iSTK */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iPOT */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, /* iPOT */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX,
/* iDSH */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, /* iDSH */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX,
/* iBUB */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, /* iBUB */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX,
/* iBMP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, /* iBMP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX,
}; };
typedef struct ExtraCookingPair { typedef struct ExtraCookingPair {
@ -342,12 +344,12 @@ API_CALLABLE(N(GetCookResultForSingleRecipe)) {
s32 resultItemID; s32 resultItemID;
s32 resultQuality; s32 resultQuality;
s32 i; s32 i;
outVarItemID = *args++; outVarItemID = *args++;
outVarQuality = *args++; outVarQuality = *args++;
inputItem = evt_get_variable(script, *args++); inputItem = evt_get_variable(script, *args++);
hasCookbook = evt_get_variable(script, *args++); hasCookbook = evt_get_variable(script, *args++);
if (inputItem == ITEM_MYSTERY) { if (inputItem == ITEM_MYSTERY) {
if (rand_int(1000) < 500) { if (rand_int(1000) < 500) {
resultItemID = ITEM_MISTAKE; resultItemID = ITEM_MISTAKE;
@ -495,7 +497,7 @@ const s32 CookableDiscoveredFlags[] = {
GF_MAC02_DiscoveredRecipe_18, GF_MAC02_DiscoveredRecipe_19, GF_MAC02_DiscoveredRecipe_1A, GF_MAC02_DiscoveredRecipe_1B, GF_MAC02_DiscoveredRecipe_1C, GF_MAC02_DiscoveredRecipe_1D, GF_MAC02_DiscoveredRecipe_1E, GF_MAC02_DiscoveredRecipe_1F, GF_MAC02_DiscoveredRecipe_18, GF_MAC02_DiscoveredRecipe_19, GF_MAC02_DiscoveredRecipe_1A, GF_MAC02_DiscoveredRecipe_1B, GF_MAC02_DiscoveredRecipe_1C, GF_MAC02_DiscoveredRecipe_1D, GF_MAC02_DiscoveredRecipe_1E, GF_MAC02_DiscoveredRecipe_1F,
GF_MAC02_DiscoveredRecipe_20, GF_MAC02_DiscoveredRecipe_21, GF_MAC02_DiscoveredRecipe_22, GF_MAC02_DiscoveredRecipe_23, GF_MAC02_DiscoveredRecipe_24, GF_MAC02_DiscoveredRecipe_25, GF_MAC02_DiscoveredRecipe_26, GF_MAC02_DiscoveredRecipe_27, GF_MAC02_DiscoveredRecipe_20, GF_MAC02_DiscoveredRecipe_21, GF_MAC02_DiscoveredRecipe_22, GF_MAC02_DiscoveredRecipe_23, GF_MAC02_DiscoveredRecipe_24, GF_MAC02_DiscoveredRecipe_25, GF_MAC02_DiscoveredRecipe_26, GF_MAC02_DiscoveredRecipe_27,
GF_MAC02_DiscoveredRecipe_28, GF_MAC02_DiscoveredRecipe_29, GF_MAC02_DiscoveredRecipe_2A, GF_MAC02_DiscoveredRecipe_2B, GF_MAC02_DiscoveredRecipe_2C, GF_MAC02_DiscoveredRecipe_2D, GF_MAC02_DiscoveredRecipe_2E, GF_MAC02_DiscoveredRecipe_2F, GF_MAC02_DiscoveredRecipe_28, GF_MAC02_DiscoveredRecipe_29, GF_MAC02_DiscoveredRecipe_2A, GF_MAC02_DiscoveredRecipe_2B, GF_MAC02_DiscoveredRecipe_2C, GF_MAC02_DiscoveredRecipe_2D, GF_MAC02_DiscoveredRecipe_2E, GF_MAC02_DiscoveredRecipe_2F,
GF_MAC02_DiscoveredRecipe_30, GF_MAC02_DiscoveredRecipe_31, GF_MAC02_DiscoveredRecipe_32, GF_MAC02_DiscoveredRecipe_33 GF_MAC02_DiscoveredRecipe_30, GF_MAC02_DiscoveredRecipe_31, GF_MAC02_DiscoveredRecipe_32, GF_MAC02_DiscoveredRecipe_33
}; };
API_CALLABLE(N(SetRecipeDiscovered)) { API_CALLABLE(N(SetRecipeDiscovered)) {
@ -610,7 +612,7 @@ EvtScript N(EVS_TayceT_FryingPanAndCake) = {
s32 N(ItemList_Cookbook)[] = { s32 N(ItemList_Cookbook)[] = {
ITEM_COOKBOOK, ITEM_COOKBOOK,
ITEM_NONE ITEM_NONE
}; };
EvtScript N(EVS_TayceT_RequestCookbook) = { EvtScript N(EVS_TayceT_RequestCookbook) = {

View File

@ -6,6 +6,7 @@
#include "rumble.h" #include "rumble.h"
#include "sprite.h" #include "sprite.h"
#include "model.h" #include "model.h"
#include "gcc/string.h"
s32 WorldReverbModeMapping[] = { 0, 1, 2, 3 }; s32 WorldReverbModeMapping[] = { 0, 1, 2, 3 };

View File

@ -81,24 +81,29 @@ def read_symbol_addrs():
if "_ROM_START" in line or "_ROM_END" in line: if "_ROM_START" in line or "_ROM_END" in line:
continue continue
main, ext = line.rstrip().split(";") main_split = line.rstrip().split(";")
opt = ext.split("//")[-1].strip().split(" ") main = main_split[0]
dead = False dead = False
opts = []
type = "" type = ""
rom = -1 rom = -1
for thing in list(opt): if len(main_split) > 1:
if thing.strip() == "": ext = main_split[1]
opt.remove(thing) opts = ext.split("//")[-1].strip().split(" ")
if "type:" in thing:
type = thing.split(":")[1] for opt in list(opts):
opt.remove(thing) if opt.strip() == "":
elif "rom:" in thing: opts.remove(opt)
rom = int(thing.split(":")[1], 16) if "type:" in opt:
opt.remove(thing) type = opt.split(":")[1]
elif "dead:" in thing: opts.remove(opt)
dead = True elif "rom:" in opt:
rom = int(opt.split(":")[1], 16)
opts.remove(opt)
elif "dead:" in opt:
dead = True
eqsplit = main.split(" = ") eqsplit = main.split(" = ")
if len(eqsplit) != 2: if len(eqsplit) != 2:
@ -108,9 +113,9 @@ def read_symbol_addrs():
name, addr = main.split(" = ") name, addr = main.split(" = ")
if not dead: if not dead:
symbol_addrs.append([name, int(addr, 0), type, rom, opt]) symbol_addrs.append([name, int(addr, 0), type, rom, opts])
else: else:
dead_symbols.append([name, int(addr, 0), type, rom, opt]) dead_symbols.append([name, int(addr, 0), type, rom, opts])
def read_elf(): def read_elf():
try: try:

View File

@ -1,547 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
/* Generated by spimdisasm 1.11.1 */
glabel appendGfx_shading_palette
/* DE028 80147148 27BDFF90 */ addiu $sp, $sp, -0x70
/* DE02C 8014714C F7B60048 */ sdc1 $f22, 0x48($sp)
/* DE030 80147150 C7B60088 */ lwc1 $f22, 0x88($sp)
/* DE034 80147154 F7B80050 */ sdc1 $f24, 0x50($sp)
/* DE038 80147158 C7B8008C */ lwc1 $f24, 0x8C($sp)
/* DE03C 8014715C F7B40040 */ sdc1 $f20, 0x40($sp)
/* DE040 80147160 C7B40090 */ lwc1 $f20, 0x90($sp)
/* DE044 80147164 AFB30024 */ sw $s3, 0x24($sp)
/* DE048 80147168 8FB30094 */ lw $s3, 0x94($sp)
/* DE04C 8014716C AFB20020 */ sw $s2, 0x20($sp)
/* DE050 80147170 8FB20098 */ lw $s2, 0x98($sp)
/* DE054 80147174 AFB40028 */ sw $s4, 0x28($sp)
/* DE058 80147178 8FB4009C */ lw $s4, 0x9C($sp)
/* DE05C 8014717C AFB60030 */ sw $s6, 0x30($sp)
/* DE060 80147180 8FB600A0 */ lw $s6, 0xA0($sp)
/* DE064 80147184 AFB5002C */ sw $s5, 0x2C($sp)
/* DE068 80147188 8FB500A4 */ lw $s5, 0xA4($sp)
/* DE06C 8014718C AFB00018 */ sw $s0, 0x18($sp)
/* DE070 80147190 8FB000AC */ lw $s0, 0xAC($sp)
/* DE074 80147194 AFB1001C */ sw $s1, 0x1C($sp)
/* DE078 80147198 0080882D */ daddu $s1, $a0, $zero
/* DE07C 8014719C F7BC0060 */ sdc1 $f28, 0x60($sp)
/* DE080 801471A0 4480E000 */ mtc1 $zero, $f28
/* DE084 801471A4 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* DE088 801471A8 8C636070 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* DE08C 801471AC 3C04800B */ lui $a0, %hi(gCameras)
/* DE090 801471B0 248407D0 */ addiu $a0, $a0, %lo(gCameras)
/* DE094 801471B4 AFBF003C */ sw $ra, 0x3C($sp)
/* DE098 801471B8 4616B002 */ mul.s $f0, $f22, $f22
/* DE09C 801471BC 00000000 */ nop
/* DE0A0 801471C0 AFBE0038 */ sw $fp, 0x38($sp)
/* DE0A4 801471C4 AFB70034 */ sw $s7, 0x34($sp)
/* DE0A8 801471C8 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* DE0AC 801471CC F7BA0058 */ sdc1 $f26, 0x58($sp)
/* DE0B0 801471D0 4618C082 */ mul.s $f2, $f24, $f24
/* DE0B4 801471D4 00000000 */ nop
/* DE0B8 801471D8 AFA50074 */ sw $a1, 0x74($sp)
/* DE0BC 801471DC AFA60078 */ sw $a2, 0x78($sp)
/* DE0C0 801471E0 AFA7007C */ sw $a3, 0x7C($sp)
/* DE0C4 801471E4 00031080 */ sll $v0, $v1, 2
/* DE0C8 801471E8 4614A102 */ mul.s $f4, $f20, $f20
/* DE0CC 801471EC 00000000 */ nop
/* DE0D0 801471F0 00431021 */ addu $v0, $v0, $v1
/* DE0D4 801471F4 00021080 */ sll $v0, $v0, 2
/* DE0D8 801471F8 00431023 */ subu $v0, $v0, $v1
/* DE0DC 801471FC 000218C0 */ sll $v1, $v0, 3
/* DE0E0 80147200 46020000 */ add.s $f0, $f0, $f2
/* DE0E4 80147204 00431021 */ addu $v0, $v0, $v1
/* DE0E8 80147208 000210C0 */ sll $v0, $v0, 3
/* DE0EC 8014720C 46040300 */ add.s $f12, $f0, $f4
/* DE0F0 80147210 3C013FF0 */ lui $at, (0x3FF00000 >> 16)
/* DE0F4 80147214 44811800 */ mtc1 $at, $f3
/* DE0F8 80147218 44801000 */ mtc1 $zero, $f2
/* DE0FC 8014721C 46006021 */ cvt.d.s $f0, $f12
/* DE100 80147220 4622003C */ c.lt.d $f0, $f2
/* DE104 80147224 00000000 */ nop
/* DE108 80147228 45000008 */ bc1f .LIQUE_8014724C
/* DE10C 8014722C 0044F021 */ addu $fp, $v0, $a0
/* DE110 80147230 44900000 */ mtc1 $s0, $f0
/* DE114 80147234 00000000 */ nop
/* DE118 80147238 46800020 */ cvt.s.w $f0, $f0
/* DE11C 8014723C 460C0002 */ mul.s $f0, $f0, $f12
/* DE120 80147240 00000000 */ nop
/* DE124 80147244 4600028D */ trunc.w.s $f10, $f0
/* DE128 80147248 44105000 */ mfc1 $s0, $f10
.LIQUE_8014724C:
/* DE12C 8014724C 461C6032 */ c.eq.s $f12, $f28
/* DE130 80147250 00000000 */ nop
/* DE134 80147254 4501000D */ bc1t .LIQUE_8014728C
/* DE138 80147258 00000000 */ nop
/* DE13C 8014725C 46006084 */ sqrt.s $f2, $f12
/* DE140 80147260 46021032 */ c.eq.s $f2, $f2
/* DE144 80147264 00000000 */ nop
/* DE148 80147268 45010004 */ bc1t .LIQUE_8014727C
/* DE14C 8014726C 00000000 */ nop
/* DE150 80147270 0C0183A0 */ jal sqrtf
/* DE154 80147274 00000000 */ nop
/* DE158 80147278 46000086 */ mov.s $f2, $f0
.LIQUE_8014727C:
/* DE15C 8014727C 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* DE160 80147280 44810000 */ mtc1 $at, $f0
/* DE164 80147284 00000000 */ nop
/* DE168 80147288 46020303 */ div.s $f12, $f0, $f2
.LIQUE_8014728C:
/* DE16C 8014728C 460CB582 */ mul.s $f22, $f22, $f12
/* DE170 80147290 00000000 */ nop
/* DE174 80147294 460CC602 */ mul.s $f24, $f24, $f12
/* DE178 80147298 00000000 */ nop
/* DE17C 8014729C 460CA502 */ mul.s $f20, $f20, $f12
/* DE180 801472A0 00000000 */ nop
/* DE184 801472A4 C6260008 */ lwc1 $f6, 0x8($s1)
/* DE188 801472A8 C7C200DC */ lwc1 $f2, 0xDC($fp)
/* DE18C 801472AC 46003107 */ neg.s $f4, $f6
/* DE190 801472B0 46022082 */ mul.s $f2, $f4, $f2
/* DE194 801472B4 00000000 */ nop
/* DE198 801472B8 C6280028 */ lwc1 $f8, 0x28($s1)
/* DE19C 801472BC C7C000FC */ lwc1 $f0, 0xFC($fp)
/* DE1A0 801472C0 46004002 */ mul.s $f0, $f8, $f0
/* DE1A4 801472C4 00000000 */ nop
/* DE1A8 801472C8 46001080 */ add.s $f2, $f2, $f0
/* DE1AC 801472CC 44800000 */ mtc1 $zero, $f0
/* DE1B0 801472D0 3C01BF80 */ lui $at, (0xBF800000 >> 16)
/* DE1B4 801472D4 4481F000 */ mtc1 $at, $f30
/* DE1B8 801472D8 4600103C */ c.lt.s $f2, $f0
/* DE1BC 801472DC 00000000 */ nop
/* DE1C0 801472E0 45000004 */ bc1f .LIQUE_801472F4
/* DE1C4 801472E4 00000000 */ nop
/* DE1C8 801472E8 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* DE1CC 801472EC 4481F000 */ mtc1 $at, $f30
/* DE1D0 801472F0 00000000 */ nop
.LIQUE_801472F4:
/* DE1D4 801472F4 4600F03C */ c.lt.s $f30, $f0
/* DE1D8 801472F8 00000000 */ nop
/* DE1DC 801472FC 45000004 */ bc1f .LIQUE_80147310
/* DE1E0 80147300 46003086 */ mov.s $f2, $f6
/* DE1E4 80147304 C6200018 */ lwc1 $f0, 0x18($s1)
/* DE1E8 80147308 08051CC6 */ j .LIQUE_80147318
/* DE1EC 8014730C 46004207 */ neg.s $f8, $f8
.LIQUE_80147310:
/* DE1F0 80147310 46002086 */ mov.s $f2, $f4
/* DE1F4 80147314 C6200018 */ lwc1 $f0, 0x18($s1)
.LIQUE_80147318:
/* DE1F8 80147318 46161102 */ mul.s $f4, $f2, $f22
/* DE1FC 8014731C 00000000 */ nop
/* DE200 80147320 46180002 */ mul.s $f0, $f0, $f24
/* DE204 80147324 00000000 */ nop
/* DE208 80147328 46144202 */ mul.s $f8, $f8, $f20
/* DE20C 8014732C 00000000 */ nop
/* DE210 80147330 C7C200FC */ lwc1 $f2, 0xFC($fp)
/* DE214 80147334 46001087 */ neg.s $f2, $f2
/* DE218 80147338 4602B082 */ mul.s $f2, $f22, $f2
/* DE21C 8014733C 00000000 */ nop
/* DE220 80147340 C7C600DC */ lwc1 $f6, 0xDC($fp)
/* DE224 80147344 4606A182 */ mul.s $f6, $f20, $f6
/* DE228 80147348 00000000 */ nop
/* DE22C 8014734C 46002100 */ add.s $f4, $f4, $f0
/* DE230 80147350 46082100 */ add.s $f4, $f4, $f8
/* DE234 80147354 44800000 */ mtc1 $zero, $f0
/* DE238 80147358 00000000 */ nop
/* DE23C 8014735C 4604003C */ c.lt.s $f0, $f4
/* DE240 80147360 00000000 */ nop
/* DE244 80147364 45000007 */ bc1f .LIQUE_80147384
/* DE248 80147368 46061180 */ add.s $f6, $f2, $f6
/* DE24C 8014736C 44900000 */ mtc1 $s0, $f0
/* DE250 80147370 00000000 */ nop
/* DE254 80147374 46800020 */ cvt.s.w $f0, $f0
/* DE258 80147378 46060682 */ mul.s $f26, $f0, $f6
/* DE25C 8014737C 08051CE6 */ j .LIQUE_80147398
/* DE260 80147380 00000000 */ nop
.LIQUE_80147384:
/* DE264 80147384 44901000 */ mtc1 $s0, $f2
/* DE268 80147388 00000000 */ nop
/* DE26C 8014738C 468010A0 */ cvt.s.w $f2, $f2
/* DE270 80147390 46061682 */ mul.s $f26, $f2, $f6
/* DE274 80147394 00000000 */ nop
.LIQUE_80147398:
/* DE278 80147398 4616B002 */ mul.s $f0, $f22, $f22
/* DE27C 8014739C 00000000 */ nop
/* DE280 801473A0 4614A082 */ mul.s $f2, $f20, $f20
/* DE284 801473A4 00000000 */ nop
/* DE288 801473A8 46020500 */ add.s $f20, $f0, $f2
/* DE28C 801473AC 44800000 */ mtc1 $zero, $f0
/* DE290 801473B0 00000000 */ nop
/* DE294 801473B4 4600A032 */ c.eq.s $f20, $f0
/* DE298 801473B8 00000000 */ nop
/* DE29C 801473BC 45010009 */ bc1t .LIQUE_801473E4
/* DE2A0 801473C0 00000000 */ nop
/* DE2A4 801473C4 4600A004 */ sqrt.s $f0, $f20
/* DE2A8 801473C8 46000032 */ c.eq.s $f0, $f0
/* DE2AC 801473CC 00000000 */ nop
/* DE2B0 801473D0 45030004 */ bc1tl .LIQUE_801473E4
/* DE2B4 801473D4 46000506 */ mov.s $f20, $f0
/* DE2B8 801473D8 0C0183A0 */ jal sqrtf
/* DE2BC 801473DC 4600A306 */ mov.s $f12, $f20
/* DE2C0 801473E0 46000506 */ mov.s $f20, $f0
.LIQUE_801473E4:
/* DE2C4 801473E4 C6200004 */ lwc1 $f0, 0x4($s1)
/* DE2C8 801473E8 46000007 */ neg.s $f0, $f0
/* DE2CC 801473EC 46000002 */ mul.s $f0, $f0, $f0
/* DE2D0 801473F0 00000000 */ nop
/* DE2D4 801473F4 C6220024 */ lwc1 $f2, 0x24($s1)
/* DE2D8 801473F8 46021082 */ mul.s $f2, $f2, $f2
/* DE2DC 801473FC 00000000 */ nop
/* DE2E0 80147400 46020300 */ add.s $f12, $f0, $f2
/* DE2E4 80147404 44800000 */ mtc1 $zero, $f0
/* DE2E8 80147408 C6360014 */ lwc1 $f22, 0x14($s1)
/* DE2EC 8014740C 46006032 */ c.eq.s $f12, $f0
/* DE2F0 80147410 00000000 */ nop
/* DE2F4 80147414 45010009 */ bc1t .LIQUE_8014743C
/* DE2F8 80147418 00000000 */ nop
/* DE2FC 8014741C 46006004 */ sqrt.s $f0, $f12
/* DE300 80147420 46000032 */ c.eq.s $f0, $f0
/* DE304 80147424 00000000 */ nop
/* DE308 80147428 45030004 */ bc1tl .LIQUE_8014743C
/* DE30C 8014742C 46000306 */ mov.s $f12, $f0
/* DE310 80147430 0C0183A0 */ jal sqrtf
/* DE314 80147434 00000000 */ nop
/* DE318 80147438 46000306 */ mov.s $f12, $f0
.LIQUE_8014743C:
/* DE31C 8014743C 460CA002 */ mul.s $f0, $f20, $f12
/* DE320 80147440 00000000 */ nop
/* DE324 80147444 4616C082 */ mul.s $f2, $f24, $f22
/* DE328 80147448 00000000 */ nop
/* DE32C 8014744C 46020000 */ add.s $f0, $f0, $f2
/* DE330 80147450 2A620100 */ slti $v0, $s3, 0x100
/* DE334 80147454 44901000 */ mtc1 $s0, $f2
/* DE338 80147458 00000000 */ nop
/* DE33C 8014745C 468010A0 */ cvt.s.w $f2, $f2
/* DE340 80147460 46000007 */ neg.s $f0, $f0
/* DE344 80147464 46020702 */ mul.s $f28, $f0, $f2
/* DE348 80147468 00000000 */ nop
/* DE34C 8014746C 50400001 */ beql $v0, $zero, .LIQUE_80147474
/* DE350 80147470 241300FF */ addiu $s3, $zero, 0xFF
.LIQUE_80147474:
/* DE354 80147474 2A420100 */ slti $v0, $s2, 0x100
/* DE358 80147478 50400001 */ beql $v0, $zero, .LIQUE_80147480
/* DE35C 8014747C 241200FF */ addiu $s2, $zero, 0xFF
.LIQUE_80147480:
/* DE360 80147480 2A820100 */ slti $v0, $s4, 0x100
/* DE364 80147484 50400001 */ beql $v0, $zero, .LIQUE_8014748C
/* DE368 80147488 241400FF */ addiu $s4, $zero, 0xFF
.LIQUE_8014748C:
/* DE36C 8014748C 2AC20100 */ slti $v0, $s6, 0x100
/* DE370 80147490 50400001 */ beql $v0, $zero, .LIQUE_80147498
/* DE374 80147494 241600FF */ addiu $s6, $zero, 0xFF
.LIQUE_80147498:
/* DE378 80147498 2AA20100 */ slti $v0, $s5, 0x100
/* DE37C 8014749C 50400001 */ beql $v0, $zero, .LIQUE_801474A4
/* DE380 801474A0 241500FF */ addiu $s5, $zero, 0xFF
.LIQUE_801474A4:
/* DE384 801474A4 8FAF00A8 */ lw $t7, 0xA8($sp)
/* DE388 801474A8 29E20100 */ slti $v0, $t7, 0x100
/* DE38C 801474AC 14400003 */ bnez $v0, .LIQUE_801474BC
/* DE390 801474B0 3C07FC21 */ lui $a3, (0xFC21FE07 >> 16)
/* DE394 801474B4 240F00FF */ addiu $t7, $zero, 0xFF
/* DE398 801474B8 AFAF00A8 */ sw $t7, 0xA8($sp)
.LIQUE_801474BC:
/* DE39C 801474BC 34E7FE07 */ ori $a3, $a3, (0xFC21FE07 & 0xFFFF)
/* DE3A0 801474C0 3C06F167 */ lui $a2, (0xF167F27F >> 16)
/* DE3A4 801474C4 34C6F27F */ ori $a2, $a2, (0xF167F27F & 0xFFFF)
/* DE3A8 801474C8 3C0DFF10 */ lui $t5, (0xFF10013F >> 16)
/* DE3AC 801474CC 35AD013F */ ori $t5, $t5, (0xFF10013F & 0xFFFF)
/* DE3B0 801474D0 3C080004 */ lui $t0, (0x40004 >> 16)
/* DE3B4 801474D4 35080004 */ ori $t0, $t0, (0x40004 & 0xFFFF)
/* DE3B8 801474D8 3C0FE300 */ lui $t7, (0xE3000A11 >> 16)
/* DE3BC 801474DC 35EF0A11 */ ori $t7, $t7, (0xE3000A11 & 0xFFFF)
/* DE3C0 801474E0 AFAF0010 */ sw $t7, 0x10($sp)
/* DE3C4 801474E4 3C0FE200 */ lui $t7, (0xE200001C >> 16)
/* DE3C8 801474E8 35EF001C */ ori $t7, $t7, (0xE200001C & 0xFFFF)
/* DE3CC 801474EC 3C090F0A */ lui $t1, (0xF0A4000 >> 16)
/* DE3D0 801474F0 35294000 */ ori $t1, $t1, (0xF0A4000 & 0xFFFF)
/* DE3D4 801474F4 3C0BFC34 */ lui $t3, (0xFC347E68 >> 16)
/* DE3D8 801474F8 356B7E68 */ ori $t3, $t3, (0xFC347E68 & 0xFFFF)
/* DE3DC 801474FC 3C0A55FE */ lui $t2, (0x55FEFD7E >> 16)
/* DE3E0 80147500 354AFD7E */ ori $t2, $t2, (0x55FEFD7E & 0xFFFF)
/* DE3E4 80147504 3C0CE404 */ lui $t4, (0xE4040004 >> 16)
/* DE3E8 80147508 358C0004 */ ori $t4, $t4, (0xE4040004 & 0xFFFF)
/* DE3EC 8014750C 3C0E1000 */ lui $t6, (0x10000400 >> 16)
/* DE3F0 80147510 3C17800A */ lui $s7, %hi(gMainGfxPos)
/* DE3F4 80147514 26F79244 */ addiu $s7, $s7, %lo(gMainGfxPos)
/* DE3F8 80147518 35CE0400 */ ori $t6, $t6, (0x10000400 & 0xFFFF)
/* DE3FC 8014751C 3C05FA00 */ lui $a1, (0xFA000000 >> 16)
/* DE400 80147520 00131E00 */ sll $v1, $s3, 24
/* DE404 80147524 324200FF */ andi $v0, $s2, 0xFF
/* DE408 80147528 00021400 */ sll $v0, $v0, 16
/* DE40C 8014752C 00621825 */ or $v1, $v1, $v0
/* DE410 80147530 328200FF */ andi $v0, $s4, 0xFF
/* DE414 80147534 00021200 */ sll $v0, $v0, 8
/* DE418 80147538 00621825 */ or $v1, $v1, $v0
/* DE41C 8014753C 3C138016 */ lui $s3, %hi(D_80159880)
/* DE420 80147540 2673BC00 */ addiu $s3, $s3, %lo(D_80159880)
/* DE424 80147544 3C12ED00 */ lui $s2, (0xED000000 >> 16)
/* DE428 80147548 AFAF0014 */ sw $t7, 0x14($sp)
/* DE42C 8014754C 8EF00000 */ lw $s0, 0x0($s7)
/* DE430 80147550 3C14FB00 */ lui $s4, (0xFB000000 >> 16)
/* DE434 80147554 0200202D */ daddu $a0, $s0, $zero
/* DE438 80147558 26100008 */ addiu $s0, $s0, 0x8
/* DE43C 8014755C AEF00000 */ sw $s0, 0x0($s7)
/* DE440 80147560 AC850000 */ sw $a1, 0x0($a0)
/* DE444 80147564 8FAF0084 */ lw $t7, 0x84($sp)
/* DE448 80147568 3C11E700 */ lui $s1, (0xE7000000 >> 16)
/* DE44C 8014756C 31E200FF */ andi $v0, $t7, 0xFF
/* DE450 80147570 00621825 */ or $v1, $v1, $v0
/* DE454 80147574 26020008 */ addiu $v0, $s0, 0x8
/* DE458 80147578 AC830004 */ sw $v1, 0x4($a0)
/* DE45C 8014757C AEE20000 */ sw $v0, 0x0($s7)
/* DE460 80147580 26020010 */ addiu $v0, $s0, 0x10
/* DE464 80147584 AE070000 */ sw $a3, 0x0($s0)
/* DE468 80147588 AE060004 */ sw $a2, 0x4($s0)
/* DE46C 8014758C AEE20000 */ sw $v0, 0x0($s7)
/* DE470 80147590 26020018 */ addiu $v0, $s0, 0x18
/* DE474 80147594 AE0D0008 */ sw $t5, 0x8($s0)
/* DE478 80147598 AE13000C */ sw $s3, 0xC($s0)
/* DE47C 8014759C AEE20000 */ sw $v0, 0x0($s7)
/* DE480 801475A0 26020020 */ addiu $v0, $s0, 0x20
/* DE484 801475A4 AE120010 */ sw $s2, 0x10($s0)
/* DE488 801475A8 AE080014 */ sw $t0, 0x14($s0)
/* DE48C 801475AC AEE20000 */ sw $v0, 0x0($s7)
/* DE490 801475B0 8FAF0010 */ lw $t7, 0x10($sp)
/* DE494 801475B4 24020CF0 */ addiu $v0, $zero, 0xCF0
/* DE498 801475B8 AE02001C */ sw $v0, 0x1C($s0)
/* DE49C 801475BC 26020028 */ addiu $v0, $s0, 0x28
/* DE4A0 801475C0 AE0F0018 */ sw $t7, 0x18($s0)
/* DE4A4 801475C4 AEE20000 */ sw $v0, 0x0($s7)
/* DE4A8 801475C8 8FAF0014 */ lw $t7, 0x14($sp)
/* DE4AC 801475CC 26020030 */ addiu $v0, $s0, 0x30
/* DE4B0 801475D0 AE090024 */ sw $t1, 0x24($s0)
/* DE4B4 801475D4 AE0F0020 */ sw $t7, 0x20($s0)
/* DE4B8 801475D8 AEE20000 */ sw $v0, 0x0($s7)
/* DE4BC 801475DC 26020038 */ addiu $v0, $s0, 0x38
/* DE4C0 801475E0 AE03002C */ sw $v1, 0x2C($s0)
/* DE4C4 801475E4 00161E00 */ sll $v1, $s6, 24
/* DE4C8 801475E8 AE050028 */ sw $a1, 0x28($s0)
/* DE4CC 801475EC AEE20000 */ sw $v0, 0x0($s7)
/* DE4D0 801475F0 32A200FF */ andi $v0, $s5, 0xFF
/* DE4D4 801475F4 00021400 */ sll $v0, $v0, 16
/* DE4D8 801475F8 AE140030 */ sw $s4, 0x30($s0)
/* DE4DC 801475FC 8FAF00A8 */ lw $t7, 0xA8($sp)
/* DE4E0 80147600 00621825 */ or $v1, $v1, $v0
/* DE4E4 80147604 31E200FF */ andi $v0, $t7, 0xFF
/* DE4E8 80147608 00021200 */ sll $v0, $v0, 8
/* DE4EC 8014760C 00621825 */ or $v1, $v1, $v0
/* DE4F0 80147610 26020040 */ addiu $v0, $s0, 0x40
/* DE4F4 80147614 AE030034 */ sw $v1, 0x34($s0)
/* DE4F8 80147618 AEE20000 */ sw $v0, 0x0($s7)
/* DE4FC 8014761C 26020048 */ addiu $v0, $s0, 0x48
/* DE500 80147620 AE0B0038 */ sw $t3, 0x38($s0)
/* DE504 80147624 AE0A003C */ sw $t2, 0x3C($s0)
/* DE508 80147628 AEE20000 */ sw $v0, 0x0($s7)
/* DE50C 8014762C 3C020200 */ lui $v0, (0x2000000 >> 16)
/* DE510 80147630 AE020044 */ sw $v0, 0x44($s0)
/* DE514 80147634 26020050 */ addiu $v0, $s0, 0x50
/* DE518 80147638 AE0C0040 */ sw $t4, 0x40($s0)
/* DE51C 8014763C AEE20000 */ sw $v0, 0x0($s7)
/* DE520 80147640 3C02E100 */ lui $v0, (0xE1000000 >> 16)
/* DE524 80147644 AE020048 */ sw $v0, 0x48($s0)
/* DE528 80147648 26020058 */ addiu $v0, $s0, 0x58
/* DE52C 8014764C AE00004C */ sw $zero, 0x4C($s0)
/* DE530 80147650 AEE20000 */ sw $v0, 0x0($s7)
/* DE534 80147654 3C02F100 */ lui $v0, (0xF1000000 >> 16)
/* DE538 80147658 AE020050 */ sw $v0, 0x50($s0)
/* DE53C 8014765C 26020060 */ addiu $v0, $s0, 0x60
/* DE540 80147660 AE0E0054 */ sw $t6, 0x54($s0)
/* DE544 80147664 AEE20000 */ sw $v0, 0x0($s7)
/* DE548 80147668 3C04800A */ lui $a0, %hi(nuGfxCfb_ptr)
/* DE54C 8014766C 8C849224 */ lw $a0, %lo(nuGfxCfb_ptr)($a0)
/* DE550 80147670 26020068 */ addiu $v0, $s0, 0x68
/* DE554 80147674 AE110058 */ sw $s1, 0x58($s0)
/* DE558 80147678 AE00005C */ sw $zero, 0x5C($s0)
/* DE55C 8014767C AEE20000 */ sw $v0, 0x0($s7)
/* DE560 80147680 0C01836C */ jal osVirtualToPhysical
/* DE564 80147684 AE0D0060 */ sw $t5, 0x60($s0)
/* DE568 80147688 3C06F500 */ lui $a2, (0xF5000110 >> 16)
/* DE56C 8014768C 34C60110 */ ori $a2, $a2, (0xF5000110 & 0xFFFF)
/* DE570 80147690 3C070703 */ lui $a3, (0x703C000 >> 16)
/* DE574 80147694 34E7C000 */ ori $a3, $a3, (0x703C000 & 0xFFFF)
/* DE578 80147698 3C080018 */ lui $t0, (0x18AC30 >> 16)
/* DE57C 8014769C 8EEA0000 */ lw $t2, 0x0($s7)
/* DE580 801476A0 3C014080 */ lui $at, (0x40800000 >> 16)
/* DE584 801476A4 44812000 */ mtc1 $at, $f4
/* DE588 801476A8 3508AC30 */ ori $t0, $t0, (0x18AC30 & 0xFFFF)
/* DE58C 801476AC AE020064 */ sw $v0, 0x64($s0)
/* DE590 801476B0 0140282D */ daddu $a1, $t2, $zero
/* DE594 801476B4 254A0008 */ addiu $t2, $t2, 0x8
/* DE598 801476B8 25420008 */ addiu $v0, $t2, 0x8
/* DE59C 801476BC AEEA0000 */ sw $t2, 0x0($s7)
/* DE5A0 801476C0 AEE20000 */ sw $v0, 0x0($s7)
/* DE5A4 801476C4 25420010 */ addiu $v0, $t2, 0x10
/* DE5A8 801476C8 AEE20000 */ sw $v0, 0x0($s7)
/* DE5AC 801476CC 25420018 */ addiu $v0, $t2, 0x18
/* DE5B0 801476D0 AEE20000 */ sw $v0, 0x0($s7)
/* DE5B4 801476D4 87C2000E */ lh $v0, 0xE($fp)
/* DE5B8 801476D8 87C30010 */ lh $v1, 0x10($fp)
/* DE5BC 801476DC 44821000 */ mtc1 $v0, $f2
/* DE5C0 801476E0 00000000 */ nop
/* DE5C4 801476E4 468010A0 */ cvt.s.w $f2, $f2
/* DE5C8 801476E8 46041082 */ mul.s $f2, $f2, $f4
/* DE5CC 801476EC 00000000 */ nop
/* DE5D0 801476F0 25420020 */ addiu $v0, $t2, 0x20
/* DE5D4 801476F4 44830000 */ mtc1 $v1, $f0
/* DE5D8 801476F8 00000000 */ nop
/* DE5DC 801476FC 46800020 */ cvt.s.w $f0, $f0
/* DE5E0 80147700 AEE20000 */ sw $v0, 0x0($s7)
/* DE5E4 80147704 25420028 */ addiu $v0, $t2, 0x28
/* DE5E8 80147708 46040002 */ mul.s $f0, $f0, $f4
/* DE5EC 8014770C 00000000 */ nop
/* DE5F0 80147710 AEE20000 */ sw $v0, 0x0($s7)
/* DE5F4 80147714 4600128D */ trunc.w.s $f10, $f2
/* DE5F8 80147718 44035000 */ mfc1 $v1, $f10
/* DE5FC 8014771C 00000000 */ nop
/* DE600 80147720 30630FFF */ andi $v1, $v1, 0xFFF
/* DE604 80147724 00031B00 */ sll $v1, $v1, 12
/* DE608 80147728 4600028D */ trunc.w.s $f10, $f0
/* DE60C 8014772C 44025000 */ mfc1 $v0, $f10
/* DE610 80147730 00000000 */ nop
/* DE614 80147734 30420FFF */ andi $v0, $v0, 0xFFF
/* DE618 80147738 00521025 */ or $v0, $v0, $s2
/* DE61C 8014773C 00621825 */ or $v1, $v1, $v0
/* DE620 80147740 ACA30000 */ sw $v1, 0x0($a1)
/* DE624 80147744 87C3000E */ lh $v1, 0xE($fp)
/* DE628 80147748 87C4000A */ lh $a0, 0xA($fp)
/* DE62C 8014774C 25420030 */ addiu $v0, $t2, 0x30
/* DE630 80147750 AEE20000 */ sw $v0, 0x0($s7)
/* DE634 80147754 87C20010 */ lh $v0, 0x10($fp)
/* DE638 80147758 00641821 */ addu $v1, $v1, $a0
/* DE63C 8014775C 44831000 */ mtc1 $v1, $f2
/* DE640 80147760 00000000 */ nop
/* DE644 80147764 468010A0 */ cvt.s.w $f2, $f2
/* DE648 80147768 25440038 */ addiu $a0, $t2, 0x38
/* DE64C 8014776C 87C3000C */ lh $v1, 0xC($fp)
/* DE650 80147770 46041082 */ mul.s $f2, $f2, $f4
/* DE654 80147774 00000000 */ nop
/* DE658 80147778 AEE40000 */ sw $a0, 0x0($s7)
/* DE65C 8014777C 00431021 */ addu $v0, $v0, $v1
/* DE660 80147780 44820000 */ mtc1 $v0, $f0
/* DE664 80147784 00000000 */ nop
/* DE668 80147788 46800020 */ cvt.s.w $f0, $f0
/* DE66C 8014778C 25420040 */ addiu $v0, $t2, 0x40
/* DE670 80147790 46040002 */ mul.s $f0, $f0, $f4
/* DE674 80147794 00000000 */ nop
/* DE678 80147798 AEE20000 */ sw $v0, 0x0($s7)
/* DE67C 8014779C 4600128D */ trunc.w.s $f10, $f2
/* DE680 801477A0 44025000 */ mfc1 $v0, $f10
/* DE684 801477A4 00000000 */ nop
/* DE688 801477A8 30420FFF */ andi $v0, $v0, 0xFFF
/* DE68C 801477AC 00021300 */ sll $v0, $v0, 12
/* DE690 801477B0 4600028D */ trunc.w.s $f10, $f0
/* DE694 801477B4 44035000 */ mfc1 $v1, $f10
/* DE698 801477B8 00000000 */ nop
/* DE69C 801477BC 30630FFF */ andi $v1, $v1, 0xFFF
/* DE6A0 801477C0 00431025 */ or $v0, $v0, $v1
/* DE6A4 801477C4 ACA20004 */ sw $v0, 0x4($a1)
/* DE6A8 801477C8 3C02FD10 */ lui $v0, (0xFD100000 >> 16)
/* DE6AC 801477CC AD420000 */ sw $v0, 0x0($t2)
/* DE6B0 801477D0 3C02E800 */ lui $v0, (0xE8000000 >> 16)
/* DE6B4 801477D4 AD420008 */ sw $v0, 0x8($t2)
/* DE6B8 801477D8 3C020700 */ lui $v0, (0x7000000 >> 16)
/* DE6BC 801477DC AD420014 */ sw $v0, 0x14($t2)
/* DE6C0 801477E0 3C02E600 */ lui $v0, (0xE6000000 >> 16)
/* DE6C4 801477E4 AD420018 */ sw $v0, 0x18($t2)
/* DE6C8 801477E8 3C02F000 */ lui $v0, (0xF0000000 >> 16)
/* DE6CC 801477EC AD530004 */ sw $s3, 0x4($t2)
/* DE6D0 801477F0 AD40000C */ sw $zero, 0xC($t2)
/* DE6D4 801477F4 AD460010 */ sw $a2, 0x10($t2)
/* DE6D8 801477F8 AD40001C */ sw $zero, 0x1C($t2)
/* DE6DC 801477FC AD420020 */ sw $v0, 0x20($t2)
/* DE6E0 80147800 AD470024 */ sw $a3, 0x24($t2)
/* DE6E4 80147804 AD510028 */ sw $s1, 0x28($t2)
/* DE6E8 80147808 AD40002C */ sw $zero, 0x2C($t2)
/* DE6EC 8014780C 8FAF0010 */ lw $t7, 0x10($sp)
/* DE6F0 80147810 3C096464 */ lui $t1, (0x646464FF >> 16)
/* DE6F4 80147814 AD4F0030 */ sw $t7, 0x30($t2)
/* DE6F8 80147818 AD480034 */ sw $t0, 0x34($t2)
/* DE6FC 8014781C 8FAF0014 */ lw $t7, 0x14($sp)
/* DE700 80147820 352964FF */ ori $t1, $t1, (0x646464FF & 0xFFFF)
/* DE704 80147824 AD4F0038 */ sw $t7, 0x38($t2)
/* DE708 80147828 8FA200B0 */ lw $v0, 0xB0($sp)
/* DE70C 8014782C 3C030C08 */ lui $v1, (0xC080000 >> 16)
/* DE710 80147830 00431025 */ or $v0, $v0, $v1
/* DE714 80147834 AD42003C */ sw $v0, 0x3C($t2)
/* DE718 80147838 25420048 */ addiu $v0, $t2, 0x48
/* DE71C 8014783C AEE20000 */ sw $v0, 0x0($s7)
/* DE720 80147840 AD540040 */ sw $s4, 0x40($t2)
/* DE724 80147844 AD490044 */ sw $t1, 0x44($t2)
/* DE728 80147848 8FAF0084 */ lw $t7, 0x84($sp)
/* DE72C 8014784C 240200FF */ addiu $v0, $zero, 0xFF
/* DE730 80147850 15E20005 */ bne $t7, $v0, .LIQUE_80147868
/* DE734 80147854 3C04FC11 */ lui $a0, (0xFC117E80 >> 16)
/* DE738 80147858 34847E80 */ ori $a0, $a0, (0xFC117E80 & 0xFFFF)
/* DE73C 8014785C 3C03F5FF */ lui $v1, (0xF5FFF438 >> 16)
/* DE740 80147860 08051E1D */ j .LIQUE_80147874
/* DE744 80147864 3463F438 */ ori $v1, $v1, (0xF5FFF438 & 0xFFFF)
.LIQUE_80147868:
/* DE748 80147868 34843480 */ ori $a0, $a0, (0xFC113480 & 0xFFFF)
/* DE74C 8014786C 3C03F5FF */ lui $v1, (0xF5FFFE38 >> 16)
/* DE750 80147870 3463FE38 */ ori $v1, $v1, (0xF5FFFE38 & 0xFFFF)
.LIQUE_80147874:
/* DE754 80147874 25420050 */ addiu $v0, $t2, 0x50
/* DE758 80147878 AEE20000 */ sw $v0, 0x0($s7)
/* DE75C 8014787C AD440048 */ sw $a0, 0x48($t2)
/* DE760 80147880 AD43004C */ sw $v1, 0x4C($t2)
/* DE764 80147884 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* DE768 80147888 24639244 */ addiu $v1, $v1, %lo(gMainGfxPos)
/* DE76C 8014788C 8C620000 */ lw $v0, 0x0($v1)
/* DE770 80147890 461ED002 */ mul.s $f0, $f26, $f30
/* DE774 80147894 00000000 */ nop
/* DE778 80147898 0040382D */ daddu $a3, $v0, $zero
/* DE77C 8014789C 24420008 */ addiu $v0, $v0, 0x8
/* DE780 801478A0 AC620000 */ sw $v0, 0x0($v1)
/* DE784 801478A4 8FAF0074 */ lw $t7, 0x74($sp)
/* DE788 801478A8 3C04F200 */ lui $a0, (0xF2000000 >> 16)
/* DE78C 801478AC 25E30100 */ addiu $v1, $t7, 0x100
/* DE790 801478B0 00031880 */ sll $v1, $v1, 2
/* DE794 801478B4 4600028D */ trunc.w.s $f10, $f0
/* DE798 801478B8 44055000 */ mfc1 $a1, $f10
/* DE79C 801478BC 00000000 */ nop
/* DE7A0 801478C0 00651821 */ addu $v1, $v1, $a1
/* DE7A4 801478C4 30630FFF */ andi $v1, $v1, 0xFFF
/* DE7A8 801478C8 8FAF0078 */ lw $t7, 0x78($sp)
/* DE7AC 801478CC 00031B00 */ sll $v1, $v1, 12
/* DE7B0 801478D0 25E20100 */ addiu $v0, $t7, 0x100
/* DE7B4 801478D4 00021080 */ sll $v0, $v0, 2
/* DE7B8 801478D8 4600E28D */ trunc.w.s $f10, $f28
/* DE7BC 801478DC 44065000 */ mfc1 $a2, $f10
/* DE7C0 801478E0 00000000 */ nop
/* DE7C4 801478E4 00461021 */ addu $v0, $v0, $a2
/* DE7C8 801478E8 30420FFF */ andi $v0, $v0, 0xFFF
/* DE7CC 801478EC 00441025 */ or $v0, $v0, $a0
/* DE7D0 801478F0 00621825 */ or $v1, $v1, $v0
/* DE7D4 801478F4 ACE30000 */ sw $v1, 0x0($a3)
/* DE7D8 801478F8 8FAF007C */ lw $t7, 0x7C($sp)
/* DE7DC 801478FC 8FA20080 */ lw $v0, 0x80($sp)
/* DE7E0 80147900 25E300FF */ addiu $v1, $t7, 0xFF
/* DE7E4 80147904 00031880 */ sll $v1, $v1, 2
/* DE7E8 80147908 00651821 */ addu $v1, $v1, $a1
/* DE7EC 8014790C 30630FFF */ andi $v1, $v1, 0xFFF
/* DE7F0 80147910 00031B00 */ sll $v1, $v1, 12
/* DE7F4 80147914 244200FF */ addiu $v0, $v0, 0xFF
/* DE7F8 80147918 00021080 */ sll $v0, $v0, 2
/* DE7FC 8014791C 00461021 */ addu $v0, $v0, $a2
/* DE800 80147920 30420FFF */ andi $v0, $v0, 0xFFF
/* DE804 80147924 00621825 */ or $v1, $v1, $v0
/* DE808 80147928 ACE30004 */ sw $v1, 0x4($a3)
/* DE80C 8014792C 8FBF003C */ lw $ra, 0x3C($sp)
/* DE810 80147930 8FBE0038 */ lw $fp, 0x38($sp)
/* DE814 80147934 8FB70034 */ lw $s7, 0x34($sp)
/* DE818 80147938 8FB60030 */ lw $s6, 0x30($sp)
/* DE81C 8014793C 8FB5002C */ lw $s5, 0x2C($sp)
/* DE820 80147940 8FB40028 */ lw $s4, 0x28($sp)
/* DE824 80147944 8FB30024 */ lw $s3, 0x24($sp)
/* DE828 80147948 8FB20020 */ lw $s2, 0x20($sp)
/* DE82C 8014794C 8FB1001C */ lw $s1, 0x1C($sp)
/* DE830 80147950 8FB00018 */ lw $s0, 0x18($sp)
/* DE834 80147954 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* DE838 80147958 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* DE83C 8014795C D7BA0058 */ ldc1 $f26, 0x58($sp)
/* DE840 80147960 D7B80050 */ ldc1 $f24, 0x50($sp)
/* DE844 80147964 D7B60048 */ ldc1 $f22, 0x48($sp)
/* DE848 80147968 D7B40040 */ ldc1 $f20, 0x40($sp)
/* DE84C 8014796C 03E00008 */ jr $ra
/* DE850 80147970 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -0,0 +1,2 @@
options:
ld_use_follows: True

View File

@ -416,7 +416,7 @@ segments:
- [0xDB3E0, c, dc470_len_14c0] - [0xDB3E0, c, dc470_len_14c0]
- [0xDC8A0, c, audio/ambience] - [0xDC8A0, c, audio/ambience]
- [0xDCA60, c, windows] - [0xDCA60, c, windows]
- [0xDD6B0, c, de740_len_23f0] - [0xDD6B0, c, sprite_shading]
- [0xDE8C0, c, audio/sfx] - [0xDE8C0, c, audio/sfx]
- [0xDFAA0, c, audio/e0b30_len_b80] - [0xDFAA0, c, audio/e0b30_len_b80]
- [0xE0620, .data, a5dd0_len_114e0] - [0xE0620, .data, a5dd0_len_114e0]

2
ver/pal/splat-shift.yaml Normal file
View File

@ -0,0 +1,2 @@
options:
ld_use_follows: True

View File

@ -3734,8 +3734,7 @@ segments:
- [0x41B450, ia8, D_09001B80_3ED9E0, 128, 10] - [0x41B450, ia8, D_09001B80_3ED9E0, 128, 10]
- [0x41B950, ia8, D_09002080_3EDEE0, 128, 10] - [0x41B950, ia8, D_09002080_3EDEE0, 128, 10]
- [0x41BE50, ia8, D_09002580_3EE3E0, 128, 10] - [0x41BE50, ia8, D_09002580_3EE3E0, 128, 10]
- [0x41C350, ia8, world/text_end_of, 104, 20] - [0x41C350, ia8, world/text_end_of, 104, 40]
- [0x41CB70, ia8, D_090032A0_3EF100, 104, 20]
- [0x41D390, ia8, world/exclamation_point, 16, 40] - [0x41D390, ia8, world/exclamation_point, 16, 40]
- [0x41D610, ia8, world/ch1, 64, 64] - [0x41D610, ia8, world/ch1, 64, 64]
- [0x41E610, ia8, world/ch2, 64, 64] - [0x41E610, ia8, world/ch2, 64, 64]

View File

@ -1388,8 +1388,7 @@ D_09001680_3ED4E0 = 0x9001680; // rom:0x41AF50
D_09001B80_3ED9E0 = 0x9001B80; // rom:0x41B450 D_09001B80_3ED9E0 = 0x9001B80; // rom:0x41B450
D_09002080_3EDEE0 = 0x9002080; // rom:0x41B950 D_09002080_3EDEE0 = 0x9002080; // rom:0x41B950
D_09002580_3EE3E0 = 0x9002580; // rom:0x41BE50 D_09002580_3EE3E0 = 0x9002580; // rom:0x41BE50
D_09002A80_3EE8E0 = 0x9002A80; // rom:0x41C350 D_09002A80_3EE8E0 = 0x9002A80; // rom:0x41C350 size:0x1040
D_090032A0_3EF100 = 0x90032A0; // rom:0x41CB70
D_09003AC0_3EF920 = 0x9003AC0; // rom:0x41D390 D_09003AC0_3EF920 = 0x9003AC0; // rom:0x41D390
D_09003D40_3EFBA0 = 0x9003D40; // rom:0x41D610 D_09003D40_3EFBA0 = 0x9003D40; // rom:0x41D610
D_09004D40_3F0BA0 = 0x9004D40; // rom:0x41E610 D_09004D40_3F0BA0 = 0x9004D40; // rom:0x41E610

View File

@ -1,545 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel appendGfx_shading_palette
/* DF0B8 801489B8 27BDFF90 */ addiu $sp, $sp, -0x70
/* DF0BC 801489BC F7B60048 */ sdc1 $f22, 0x48($sp)
/* DF0C0 801489C0 C7B60088 */ lwc1 $f22, 0x88($sp)
/* DF0C4 801489C4 F7B80050 */ sdc1 $f24, 0x50($sp)
/* DF0C8 801489C8 C7B8008C */ lwc1 $f24, 0x8c($sp)
/* DF0CC 801489CC F7B40040 */ sdc1 $f20, 0x40($sp)
/* DF0D0 801489D0 C7B40090 */ lwc1 $f20, 0x90($sp)
/* DF0D4 801489D4 AFB30024 */ sw $s3, 0x24($sp)
/* DF0D8 801489D8 8FB30094 */ lw $s3, 0x94($sp)
/* DF0DC 801489DC AFB20020 */ sw $s2, 0x20($sp)
/* DF0E0 801489E0 8FB20098 */ lw $s2, 0x98($sp)
/* DF0E4 801489E4 AFB40028 */ sw $s4, 0x28($sp)
/* DF0E8 801489E8 8FB4009C */ lw $s4, 0x9c($sp)
/* DF0EC 801489EC AFB60030 */ sw $s6, 0x30($sp)
/* DF0F0 801489F0 8FB600A0 */ lw $s6, 0xa0($sp)
/* DF0F4 801489F4 AFB5002C */ sw $s5, 0x2c($sp)
/* DF0F8 801489F8 8FB500A4 */ lw $s5, 0xa4($sp)
/* DF0FC 801489FC AFB00018 */ sw $s0, 0x18($sp)
/* DF100 80148A00 8FB000AC */ lw $s0, 0xac($sp)
/* DF104 80148A04 AFB1001C */ sw $s1, 0x1c($sp)
/* DF108 80148A08 0080882D */ daddu $s1, $a0, $zero
/* DF10C 80148A0C F7BC0060 */ sdc1 $f28, 0x60($sp)
/* DF110 80148A10 4480E000 */ mtc1 $zero, $f28
/* DF114 80148A14 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* DF118 80148A18 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* DF11C 80148A1C 3C04800B */ lui $a0, %hi(gCameras)
/* DF120 80148A20 24841D80 */ addiu $a0, $a0, %lo(gCameras)
/* DF124 80148A24 AFBF003C */ sw $ra, 0x3c($sp)
/* DF128 80148A28 4616B002 */ mul.s $f0, $f22, $f22
/* DF12C 80148A2C 00000000 */ nop
/* DF130 80148A30 AFBE0038 */ sw $fp, 0x38($sp)
/* DF134 80148A34 AFB70034 */ sw $s7, 0x34($sp)
/* DF138 80148A38 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* DF13C 80148A3C F7BA0058 */ sdc1 $f26, 0x58($sp)
/* DF140 80148A40 4618C082 */ mul.s $f2, $f24, $f24
/* DF144 80148A44 00000000 */ nop
/* DF148 80148A48 AFA50074 */ sw $a1, 0x74($sp)
/* DF14C 80148A4C AFA60078 */ sw $a2, 0x78($sp)
/* DF150 80148A50 AFA7007C */ sw $a3, 0x7c($sp)
/* DF154 80148A54 00031080 */ sll $v0, $v1, 2
/* DF158 80148A58 4614A102 */ mul.s $f4, $f20, $f20
/* DF15C 80148A5C 00000000 */ nop
/* DF160 80148A60 00431021 */ addu $v0, $v0, $v1
/* DF164 80148A64 00021080 */ sll $v0, $v0, 2
/* DF168 80148A68 00431023 */ subu $v0, $v0, $v1
/* DF16C 80148A6C 000218C0 */ sll $v1, $v0, 3
/* DF170 80148A70 46020000 */ add.s $f0, $f0, $f2
/* DF174 80148A74 00431021 */ addu $v0, $v0, $v1
/* DF178 80148A78 000210C0 */ sll $v0, $v0, 3
/* DF17C 80148A7C 46040300 */ add.s $f12, $f0, $f4
/* DF180 80148A80 3C013FF0 */ lui $at, 0x3ff0
/* DF184 80148A84 44811800 */ mtc1 $at, $f3
/* DF188 80148A88 44801000 */ mtc1 $zero, $f2
/* DF18C 80148A8C 46006021 */ cvt.d.s $f0, $f12
/* DF190 80148A90 4622003C */ c.lt.d $f0, $f2
/* DF194 80148A94 00000000 */ nop
/* DF198 80148A98 45000008 */ bc1f .L80148ABC
/* DF19C 80148A9C 0044F021 */ addu $fp, $v0, $a0
/* DF1A0 80148AA0 44900000 */ mtc1 $s0, $f0
/* DF1A4 80148AA4 00000000 */ nop
/* DF1A8 80148AA8 46800020 */ cvt.s.w $f0, $f0
/* DF1AC 80148AAC 460C0002 */ mul.s $f0, $f0, $f12
/* DF1B0 80148AB0 00000000 */ nop
/* DF1B4 80148AB4 4600028D */ trunc.w.s $f10, $f0
/* DF1B8 80148AB8 44105000 */ mfc1 $s0, $f10
.L80148ABC:
/* DF1BC 80148ABC 461C6032 */ c.eq.s $f12, $f28
/* DF1C0 80148AC0 00000000 */ nop
/* DF1C4 80148AC4 4501000D */ bc1t .L80148AFC
/* DF1C8 80148AC8 00000000 */ nop
/* DF1CC 80148ACC 46006084 */ sqrt.s $f2, $f12
/* DF1D0 80148AD0 46021032 */ c.eq.s $f2, $f2
/* DF1D4 80148AD4 00000000 */ nop
/* DF1D8 80148AD8 45010004 */ bc1t .L80148AEC
/* DF1DC 80148ADC 00000000 */ nop
/* DF1E0 80148AE0 0C0187BC */ jal sqrtf
/* DF1E4 80148AE4 00000000 */ nop
/* DF1E8 80148AE8 46000086 */ mov.s $f2, $f0
.L80148AEC:
/* DF1EC 80148AEC 3C013F80 */ lui $at, 0x3f80
/* DF1F0 80148AF0 44810000 */ mtc1 $at, $f0
/* DF1F4 80148AF4 00000000 */ nop
/* DF1F8 80148AF8 46020303 */ div.s $f12, $f0, $f2
.L80148AFC:
/* DF1FC 80148AFC 460CB582 */ mul.s $f22, $f22, $f12
/* DF200 80148B00 00000000 */ nop
/* DF204 80148B04 460CC602 */ mul.s $f24, $f24, $f12
/* DF208 80148B08 00000000 */ nop
/* DF20C 80148B0C 460CA502 */ mul.s $f20, $f20, $f12
/* DF210 80148B10 00000000 */ nop
/* DF214 80148B14 C6260008 */ lwc1 $f6, 8($s1)
/* DF218 80148B18 C7C200DC */ lwc1 $f2, 0xdc($fp)
/* DF21C 80148B1C 46003107 */ neg.s $f4, $f6
/* DF220 80148B20 46022082 */ mul.s $f2, $f4, $f2
/* DF224 80148B24 00000000 */ nop
/* DF228 80148B28 C6280028 */ lwc1 $f8, 0x28($s1)
/* DF22C 80148B2C C7C000FC */ lwc1 $f0, 0xfc($fp)
/* DF230 80148B30 46004002 */ mul.s $f0, $f8, $f0
/* DF234 80148B34 00000000 */ nop
/* DF238 80148B38 46001080 */ add.s $f2, $f2, $f0
/* DF23C 80148B3C 44800000 */ mtc1 $zero, $f0
/* DF240 80148B40 3C01BF80 */ lui $at, 0xbf80
/* DF244 80148B44 4481F000 */ mtc1 $at, $f30
/* DF248 80148B48 4600103C */ c.lt.s $f2, $f0
/* DF24C 80148B4C 00000000 */ nop
/* DF250 80148B50 45000004 */ bc1f .L80148B64
/* DF254 80148B54 00000000 */ nop
/* DF258 80148B58 3C013F80 */ lui $at, 0x3f80
/* DF25C 80148B5C 4481F000 */ mtc1 $at, $f30
/* DF260 80148B60 00000000 */ nop
.L80148B64:
/* DF264 80148B64 4600F03C */ c.lt.s $f30, $f0
/* DF268 80148B68 00000000 */ nop
/* DF26C 80148B6C 45000004 */ bc1f .L80148B80
/* DF270 80148B70 46003086 */ mov.s $f2, $f6
/* DF274 80148B74 C6200018 */ lwc1 $f0, 0x18($s1)
/* DF278 80148B78 080522E2 */ j .L80148B88
/* DF27C 80148B7C 46004207 */ neg.s $f8, $f8
.L80148B80:
/* DF280 80148B80 46002086 */ mov.s $f2, $f4
/* DF284 80148B84 C6200018 */ lwc1 $f0, 0x18($s1)
.L80148B88:
/* DF288 80148B88 46161102 */ mul.s $f4, $f2, $f22
/* DF28C 80148B8C 00000000 */ nop
/* DF290 80148B90 46180002 */ mul.s $f0, $f0, $f24
/* DF294 80148B94 00000000 */ nop
/* DF298 80148B98 46144202 */ mul.s $f8, $f8, $f20
/* DF29C 80148B9C 00000000 */ nop
/* DF2A0 80148BA0 C7C200FC */ lwc1 $f2, 0xfc($fp)
/* DF2A4 80148BA4 46001087 */ neg.s $f2, $f2
/* DF2A8 80148BA8 4602B082 */ mul.s $f2, $f22, $f2
/* DF2AC 80148BAC 00000000 */ nop
/* DF2B0 80148BB0 C7C600DC */ lwc1 $f6, 0xdc($fp)
/* DF2B4 80148BB4 4606A182 */ mul.s $f6, $f20, $f6
/* DF2B8 80148BB8 00000000 */ nop
/* DF2BC 80148BBC 46002100 */ add.s $f4, $f4, $f0
/* DF2C0 80148BC0 46082100 */ add.s $f4, $f4, $f8
/* DF2C4 80148BC4 44800000 */ mtc1 $zero, $f0
/* DF2C8 80148BC8 00000000 */ nop
/* DF2CC 80148BCC 4604003C */ c.lt.s $f0, $f4
/* DF2D0 80148BD0 00000000 */ nop
/* DF2D4 80148BD4 45000007 */ bc1f .L80148BF4
/* DF2D8 80148BD8 46061180 */ add.s $f6, $f2, $f6
/* DF2DC 80148BDC 44900000 */ mtc1 $s0, $f0
/* DF2E0 80148BE0 00000000 */ nop
/* DF2E4 80148BE4 46800020 */ cvt.s.w $f0, $f0
/* DF2E8 80148BE8 46060682 */ mul.s $f26, $f0, $f6
/* DF2EC 80148BEC 08052302 */ j .L80148C08
/* DF2F0 80148BF0 00000000 */ nop
.L80148BF4:
/* DF2F4 80148BF4 44901000 */ mtc1 $s0, $f2
/* DF2F8 80148BF8 00000000 */ nop
/* DF2FC 80148BFC 468010A0 */ cvt.s.w $f2, $f2
/* DF300 80148C00 46061682 */ mul.s $f26, $f2, $f6
/* DF304 80148C04 00000000 */ nop
.L80148C08:
/* DF308 80148C08 4616B002 */ mul.s $f0, $f22, $f22
/* DF30C 80148C0C 00000000 */ nop
/* DF310 80148C10 4614A082 */ mul.s $f2, $f20, $f20
/* DF314 80148C14 00000000 */ nop
/* DF318 80148C18 46020500 */ add.s $f20, $f0, $f2
/* DF31C 80148C1C 44800000 */ mtc1 $zero, $f0
/* DF320 80148C20 00000000 */ nop
/* DF324 80148C24 4600A032 */ c.eq.s $f20, $f0
/* DF328 80148C28 00000000 */ nop
/* DF32C 80148C2C 45010009 */ bc1t .L80148C54
/* DF330 80148C30 00000000 */ nop
/* DF334 80148C34 4600A004 */ sqrt.s $f0, $f20
/* DF338 80148C38 46000032 */ c.eq.s $f0, $f0
/* DF33C 80148C3C 00000000 */ nop
/* DF340 80148C40 45030004 */ bc1tl .L80148C54
/* DF344 80148C44 46000506 */ mov.s $f20, $f0
/* DF348 80148C48 0C0187BC */ jal sqrtf
/* DF34C 80148C4C 4600A306 */ mov.s $f12, $f20
/* DF350 80148C50 46000506 */ mov.s $f20, $f0
.L80148C54:
/* DF354 80148C54 C6200004 */ lwc1 $f0, 4($s1)
/* DF358 80148C58 46000007 */ neg.s $f0, $f0
/* DF35C 80148C5C 46000002 */ mul.s $f0, $f0, $f0
/* DF360 80148C60 00000000 */ nop
/* DF364 80148C64 C6220024 */ lwc1 $f2, 0x24($s1)
/* DF368 80148C68 46021082 */ mul.s $f2, $f2, $f2
/* DF36C 80148C6C 00000000 */ nop
/* DF370 80148C70 46020300 */ add.s $f12, $f0, $f2
/* DF374 80148C74 44800000 */ mtc1 $zero, $f0
/* DF378 80148C78 C6360014 */ lwc1 $f22, 0x14($s1)
/* DF37C 80148C7C 46006032 */ c.eq.s $f12, $f0
/* DF380 80148C80 00000000 */ nop
/* DF384 80148C84 45010009 */ bc1t .L80148CAC
/* DF388 80148C88 00000000 */ nop
/* DF38C 80148C8C 46006004 */ sqrt.s $f0, $f12
/* DF390 80148C90 46000032 */ c.eq.s $f0, $f0
/* DF394 80148C94 00000000 */ nop
/* DF398 80148C98 45030004 */ bc1tl .L80148CAC
/* DF39C 80148C9C 46000306 */ mov.s $f12, $f0
/* DF3A0 80148CA0 0C0187BC */ jal sqrtf
/* DF3A4 80148CA4 00000000 */ nop
/* DF3A8 80148CA8 46000306 */ mov.s $f12, $f0
.L80148CAC:
/* DF3AC 80148CAC 460CA002 */ mul.s $f0, $f20, $f12
/* DF3B0 80148CB0 00000000 */ nop
/* DF3B4 80148CB4 4616C082 */ mul.s $f2, $f24, $f22
/* DF3B8 80148CB8 00000000 */ nop
/* DF3BC 80148CBC 46020000 */ add.s $f0, $f0, $f2
/* DF3C0 80148CC0 2A620100 */ slti $v0, $s3, 0x100
/* DF3C4 80148CC4 44901000 */ mtc1 $s0, $f2
/* DF3C8 80148CC8 00000000 */ nop
/* DF3CC 80148CCC 468010A0 */ cvt.s.w $f2, $f2
/* DF3D0 80148CD0 46000007 */ neg.s $f0, $f0
/* DF3D4 80148CD4 46020702 */ mul.s $f28, $f0, $f2
/* DF3D8 80148CD8 00000000 */ nop
/* DF3DC 80148CDC 50400001 */ beql $v0, $zero, .L80148CE4
/* DF3E0 80148CE0 241300FF */ addiu $s3, $zero, 0xff
.L80148CE4:
/* DF3E4 80148CE4 2A420100 */ slti $v0, $s2, 0x100
/* DF3E8 80148CE8 50400001 */ beql $v0, $zero, .L80148CF0
/* DF3EC 80148CEC 241200FF */ addiu $s2, $zero, 0xff
.L80148CF0:
/* DF3F0 80148CF0 2A820100 */ slti $v0, $s4, 0x100
/* DF3F4 80148CF4 50400001 */ beql $v0, $zero, .L80148CFC
/* DF3F8 80148CF8 241400FF */ addiu $s4, $zero, 0xff
.L80148CFC:
/* DF3FC 80148CFC 2AC20100 */ slti $v0, $s6, 0x100
/* DF400 80148D00 50400001 */ beql $v0, $zero, .L80148D08
/* DF404 80148D04 241600FF */ addiu $s6, $zero, 0xff
.L80148D08:
/* DF408 80148D08 2AA20100 */ slti $v0, $s5, 0x100
/* DF40C 80148D0C 50400001 */ beql $v0, $zero, .L80148D14
/* DF410 80148D10 241500FF */ addiu $s5, $zero, 0xff
.L80148D14:
/* DF414 80148D14 8FAF00A8 */ lw $t7, 0xa8($sp)
/* DF418 80148D18 29E20100 */ slti $v0, $t7, 0x100
/* DF41C 80148D1C 14400003 */ bnez $v0, .L80148D2C
/* DF420 80148D20 3C07FC21 */ lui $a3, 0xfc21
/* DF424 80148D24 240F00FF */ addiu $t7, $zero, 0xff
/* DF428 80148D28 AFAF00A8 */ sw $t7, 0xa8($sp)
.L80148D2C:
/* DF42C 80148D2C 34E7FE07 */ ori $a3, $a3, 0xfe07
/* DF430 80148D30 3C06F167 */ lui $a2, 0xf167
/* DF434 80148D34 34C6F27F */ ori $a2, $a2, 0xf27f
/* DF438 80148D38 3C0DFF10 */ lui $t5, 0xff10
/* DF43C 80148D3C 35AD013F */ ori $t5, $t5, 0x13f
/* DF440 80148D40 3C080004 */ lui $t0, 4
/* DF444 80148D44 35080004 */ ori $t0, $t0, 4
/* DF448 80148D48 3C0FE300 */ lui $t7, 0xe300
/* DF44C 80148D4C 35EF0A11 */ ori $t7, $t7, 0xa11
/* DF450 80148D50 AFAF0010 */ sw $t7, 0x10($sp)
/* DF454 80148D54 3C0FE200 */ lui $t7, 0xe200
/* DF458 80148D58 35EF001C */ ori $t7, $t7, 0x1c
/* DF45C 80148D5C 3C090F0A */ lui $t1, 0xf0a
/* DF460 80148D60 35294000 */ ori $t1, $t1, 0x4000
/* DF464 80148D64 3C0BFC34 */ lui $t3, 0xfc34
/* DF468 80148D68 356B7E68 */ ori $t3, $t3, 0x7e68
/* DF46C 80148D6C 3C0A55FE */ lui $t2, 0x55fe
/* DF470 80148D70 354AFD7E */ ori $t2, $t2, 0xfd7e
/* DF474 80148D74 3C0CE404 */ lui $t4, 0xe404
/* DF478 80148D78 358C0004 */ ori $t4, $t4, 4
/* DF47C 80148D7C 3C0E1000 */ lui $t6, 0x1000
/* DF480 80148D80 3C17800A */ lui $s7, %hi(gMainGfxPos)
/* DF484 80148D84 26F7A66C */ addiu $s7, $s7, %lo(gMainGfxPos)
/* DF488 80148D88 35CE0400 */ ori $t6, $t6, 0x400
/* DF48C 80148D8C 3C05FA00 */ lui $a1, 0xfa00
/* DF490 80148D90 00131E00 */ sll $v1, $s3, 0x18
/* DF494 80148D94 324200FF */ andi $v0, $s2, 0xff
/* DF498 80148D98 00021400 */ sll $v0, $v0, 0x10
/* DF49C 80148D9C 00621825 */ or $v1, $v1, $v0
/* DF4A0 80148DA0 328200FF */ andi $v0, $s4, 0xff
/* DF4A4 80148DA4 00021200 */ sll $v0, $v0, 8
/* DF4A8 80148DA8 00621825 */ or $v1, $v1, $v0
/* DF4AC 80148DAC 3C138016 */ lui $s3, %hi(D_80159880)
/* DF4B0 80148DB0 26739880 */ addiu $s3, $s3, %lo(D_80159880)
/* DF4B4 80148DB4 3C12ED00 */ lui $s2, 0xed00
/* DF4B8 80148DB8 AFAF0014 */ sw $t7, 0x14($sp)
/* DF4BC 80148DBC 8EF00000 */ lw $s0, ($s7)
/* DF4C0 80148DC0 3C14FB00 */ lui $s4, 0xfb00
/* DF4C4 80148DC4 0200202D */ daddu $a0, $s0, $zero
/* DF4C8 80148DC8 26100008 */ addiu $s0, $s0, 8
/* DF4CC 80148DCC AEF00000 */ sw $s0, ($s7)
/* DF4D0 80148DD0 AC850000 */ sw $a1, ($a0)
/* DF4D4 80148DD4 8FAF0084 */ lw $t7, 0x84($sp)
/* DF4D8 80148DD8 3C11E700 */ lui $s1, 0xe700
/* DF4DC 80148DDC 31E200FF */ andi $v0, $t7, 0xff
/* DF4E0 80148DE0 00621825 */ or $v1, $v1, $v0
/* DF4E4 80148DE4 26020008 */ addiu $v0, $s0, 8
/* DF4E8 80148DE8 AC830004 */ sw $v1, 4($a0)
/* DF4EC 80148DEC AEE20000 */ sw $v0, ($s7)
/* DF4F0 80148DF0 26020010 */ addiu $v0, $s0, 0x10
/* DF4F4 80148DF4 AE070000 */ sw $a3, ($s0)
/* DF4F8 80148DF8 AE060004 */ sw $a2, 4($s0)
/* DF4FC 80148DFC AEE20000 */ sw $v0, ($s7)
/* DF500 80148E00 26020018 */ addiu $v0, $s0, 0x18
/* DF504 80148E04 AE0D0008 */ sw $t5, 8($s0)
/* DF508 80148E08 AE13000C */ sw $s3, 0xc($s0)
/* DF50C 80148E0C AEE20000 */ sw $v0, ($s7)
/* DF510 80148E10 26020020 */ addiu $v0, $s0, 0x20
/* DF514 80148E14 AE120010 */ sw $s2, 0x10($s0)
/* DF518 80148E18 AE080014 */ sw $t0, 0x14($s0)
/* DF51C 80148E1C AEE20000 */ sw $v0, ($s7)
/* DF520 80148E20 8FAF0010 */ lw $t7, 0x10($sp)
/* DF524 80148E24 24020CF0 */ addiu $v0, $zero, 0xcf0
/* DF528 80148E28 AE02001C */ sw $v0, 0x1c($s0)
/* DF52C 80148E2C 26020028 */ addiu $v0, $s0, 0x28
/* DF530 80148E30 AE0F0018 */ sw $t7, 0x18($s0)
/* DF534 80148E34 AEE20000 */ sw $v0, ($s7)
/* DF538 80148E38 8FAF0014 */ lw $t7, 0x14($sp)
/* DF53C 80148E3C 26020030 */ addiu $v0, $s0, 0x30
/* DF540 80148E40 AE090024 */ sw $t1, 0x24($s0)
/* DF544 80148E44 AE0F0020 */ sw $t7, 0x20($s0)
/* DF548 80148E48 AEE20000 */ sw $v0, ($s7)
/* DF54C 80148E4C 26020038 */ addiu $v0, $s0, 0x38
/* DF550 80148E50 AE03002C */ sw $v1, 0x2c($s0)
/* DF554 80148E54 00161E00 */ sll $v1, $s6, 0x18
/* DF558 80148E58 AE050028 */ sw $a1, 0x28($s0)
/* DF55C 80148E5C AEE20000 */ sw $v0, ($s7)
/* DF560 80148E60 32A200FF */ andi $v0, $s5, 0xff
/* DF564 80148E64 00021400 */ sll $v0, $v0, 0x10
/* DF568 80148E68 AE140030 */ sw $s4, 0x30($s0)
/* DF56C 80148E6C 8FAF00A8 */ lw $t7, 0xa8($sp)
/* DF570 80148E70 00621825 */ or $v1, $v1, $v0
/* DF574 80148E74 31E200FF */ andi $v0, $t7, 0xff
/* DF578 80148E78 00021200 */ sll $v0, $v0, 8
/* DF57C 80148E7C 00621825 */ or $v1, $v1, $v0
/* DF580 80148E80 26020040 */ addiu $v0, $s0, 0x40
/* DF584 80148E84 AE030034 */ sw $v1, 0x34($s0)
/* DF588 80148E88 AEE20000 */ sw $v0, ($s7)
/* DF58C 80148E8C 26020048 */ addiu $v0, $s0, 0x48
/* DF590 80148E90 AE0B0038 */ sw $t3, 0x38($s0)
/* DF594 80148E94 AE0A003C */ sw $t2, 0x3c($s0)
/* DF598 80148E98 AEE20000 */ sw $v0, ($s7)
/* DF59C 80148E9C 3C020200 */ lui $v0, 0x200
/* DF5A0 80148EA0 AE020044 */ sw $v0, 0x44($s0)
/* DF5A4 80148EA4 26020050 */ addiu $v0, $s0, 0x50
/* DF5A8 80148EA8 AE0C0040 */ sw $t4, 0x40($s0)
/* DF5AC 80148EAC AEE20000 */ sw $v0, ($s7)
/* DF5B0 80148EB0 3C02E100 */ lui $v0, 0xe100
/* DF5B4 80148EB4 AE020048 */ sw $v0, 0x48($s0)
/* DF5B8 80148EB8 26020058 */ addiu $v0, $s0, 0x58
/* DF5BC 80148EBC AE00004C */ sw $zero, 0x4c($s0)
/* DF5C0 80148EC0 AEE20000 */ sw $v0, ($s7)
/* DF5C4 80148EC4 3C02F100 */ lui $v0, 0xf100
/* DF5C8 80148EC8 AE020050 */ sw $v0, 0x50($s0)
/* DF5CC 80148ECC 26020060 */ addiu $v0, $s0, 0x60
/* DF5D0 80148ED0 AE0E0054 */ sw $t6, 0x54($s0)
/* DF5D4 80148ED4 AEE20000 */ sw $v0, ($s7)
/* DF5D8 80148ED8 3C04800A */ lui $a0, %hi(nuGfxCfb_ptr)
/* DF5DC 80148EDC 8C84A64C */ lw $a0, %lo(nuGfxCfb_ptr)($a0)
/* DF5E0 80148EE0 26020068 */ addiu $v0, $s0, 0x68
/* DF5E4 80148EE4 AE110058 */ sw $s1, 0x58($s0)
/* DF5E8 80148EE8 AE00005C */ sw $zero, 0x5c($s0)
/* DF5EC 80148EEC AEE20000 */ sw $v0, ($s7)
/* DF5F0 80148EF0 0C0187A4 */ jal osVirtualToPhysical
/* DF5F4 80148EF4 AE0D0060 */ sw $t5, 0x60($s0)
/* DF5F8 80148EF8 3C06F500 */ lui $a2, 0xf500
/* DF5FC 80148EFC 34C60110 */ ori $a2, $a2, 0x110
/* DF600 80148F00 3C070703 */ lui $a3, 0x703
/* DF604 80148F04 34E7C000 */ ori $a3, $a3, 0xc000
/* DF608 80148F08 3C080018 */ lui $t0, 0x18
/* DF60C 80148F0C 8EEA0000 */ lw $t2, ($s7)
/* DF610 80148F10 3C014080 */ lui $at, 0x4080
/* DF614 80148F14 44812000 */ mtc1 $at, $f4
/* DF618 80148F18 3508AC30 */ ori $t0, $t0, 0xac30
/* DF61C 80148F1C AE020064 */ sw $v0, 0x64($s0)
/* DF620 80148F20 0140282D */ daddu $a1, $t2, $zero
/* DF624 80148F24 254A0008 */ addiu $t2, $t2, 8
/* DF628 80148F28 25420008 */ addiu $v0, $t2, 8
/* DF62C 80148F2C AEEA0000 */ sw $t2, ($s7)
/* DF630 80148F30 AEE20000 */ sw $v0, ($s7)
/* DF634 80148F34 25420010 */ addiu $v0, $t2, 0x10
/* DF638 80148F38 AEE20000 */ sw $v0, ($s7)
/* DF63C 80148F3C 25420018 */ addiu $v0, $t2, 0x18
/* DF640 80148F40 AEE20000 */ sw $v0, ($s7)
/* DF644 80148F44 87C2000E */ lh $v0, 0xe($fp)
/* DF648 80148F48 87C30010 */ lh $v1, 0x10($fp)
/* DF64C 80148F4C 44821000 */ mtc1 $v0, $f2
/* DF650 80148F50 00000000 */ nop
/* DF654 80148F54 468010A0 */ cvt.s.w $f2, $f2
/* DF658 80148F58 46041082 */ mul.s $f2, $f2, $f4
/* DF65C 80148F5C 00000000 */ nop
/* DF660 80148F60 25420020 */ addiu $v0, $t2, 0x20
/* DF664 80148F64 44830000 */ mtc1 $v1, $f0
/* DF668 80148F68 00000000 */ nop
/* DF66C 80148F6C 46800020 */ cvt.s.w $f0, $f0
/* DF670 80148F70 AEE20000 */ sw $v0, ($s7)
/* DF674 80148F74 25420028 */ addiu $v0, $t2, 0x28
/* DF678 80148F78 46040002 */ mul.s $f0, $f0, $f4
/* DF67C 80148F7C 00000000 */ nop
/* DF680 80148F80 AEE20000 */ sw $v0, ($s7)
/* DF684 80148F84 4600128D */ trunc.w.s $f10, $f2
/* DF688 80148F88 44035000 */ mfc1 $v1, $f10
/* DF68C 80148F8C 00000000 */ nop
/* DF690 80148F90 30630FFF */ andi $v1, $v1, 0xfff
/* DF694 80148F94 00031B00 */ sll $v1, $v1, 0xc
/* DF698 80148F98 4600028D */ trunc.w.s $f10, $f0
/* DF69C 80148F9C 44025000 */ mfc1 $v0, $f10
/* DF6A0 80148FA0 00000000 */ nop
/* DF6A4 80148FA4 30420FFF */ andi $v0, $v0, 0xfff
/* DF6A8 80148FA8 00521025 */ or $v0, $v0, $s2
/* DF6AC 80148FAC 00621825 */ or $v1, $v1, $v0
/* DF6B0 80148FB0 ACA30000 */ sw $v1, ($a1)
/* DF6B4 80148FB4 87C3000E */ lh $v1, 0xe($fp)
/* DF6B8 80148FB8 87C4000A */ lh $a0, 0xa($fp)
/* DF6BC 80148FBC 25420030 */ addiu $v0, $t2, 0x30
/* DF6C0 80148FC0 AEE20000 */ sw $v0, ($s7)
/* DF6C4 80148FC4 87C20010 */ lh $v0, 0x10($fp)
/* DF6C8 80148FC8 00641821 */ addu $v1, $v1, $a0
/* DF6CC 80148FCC 44831000 */ mtc1 $v1, $f2
/* DF6D0 80148FD0 00000000 */ nop
/* DF6D4 80148FD4 468010A0 */ cvt.s.w $f2, $f2
/* DF6D8 80148FD8 25440038 */ addiu $a0, $t2, 0x38
/* DF6DC 80148FDC 87C3000C */ lh $v1, 0xc($fp)
/* DF6E0 80148FE0 46041082 */ mul.s $f2, $f2, $f4
/* DF6E4 80148FE4 00000000 */ nop
/* DF6E8 80148FE8 AEE40000 */ sw $a0, ($s7)
/* DF6EC 80148FEC 00431021 */ addu $v0, $v0, $v1
/* DF6F0 80148FF0 44820000 */ mtc1 $v0, $f0
/* DF6F4 80148FF4 00000000 */ nop
/* DF6F8 80148FF8 46800020 */ cvt.s.w $f0, $f0
/* DF6FC 80148FFC 25420040 */ addiu $v0, $t2, 0x40
/* DF700 80149000 46040002 */ mul.s $f0, $f0, $f4
/* DF704 80149004 00000000 */ nop
/* DF708 80149008 AEE20000 */ sw $v0, ($s7)
/* DF70C 8014900C 4600128D */ trunc.w.s $f10, $f2
/* DF710 80149010 44025000 */ mfc1 $v0, $f10
/* DF714 80149014 00000000 */ nop
/* DF718 80149018 30420FFF */ andi $v0, $v0, 0xfff
/* DF71C 8014901C 00021300 */ sll $v0, $v0, 0xc
/* DF720 80149020 4600028D */ trunc.w.s $f10, $f0
/* DF724 80149024 44035000 */ mfc1 $v1, $f10
/* DF728 80149028 00000000 */ nop
/* DF72C 8014902C 30630FFF */ andi $v1, $v1, 0xfff
/* DF730 80149030 00431025 */ or $v0, $v0, $v1
/* DF734 80149034 ACA20004 */ sw $v0, 4($a1)
/* DF738 80149038 3C02FD10 */ lui $v0, 0xfd10
/* DF73C 8014903C AD420000 */ sw $v0, ($t2)
/* DF740 80149040 3C02E800 */ lui $v0, 0xe800
/* DF744 80149044 AD420008 */ sw $v0, 8($t2)
/* DF748 80149048 3C020700 */ lui $v0, 0x700
/* DF74C 8014904C AD420014 */ sw $v0, 0x14($t2)
/* DF750 80149050 3C02E600 */ lui $v0, 0xe600
/* DF754 80149054 AD420018 */ sw $v0, 0x18($t2)
/* DF758 80149058 3C02F000 */ lui $v0, 0xf000
/* DF75C 8014905C AD530004 */ sw $s3, 4($t2)
/* DF760 80149060 AD40000C */ sw $zero, 0xc($t2)
/* DF764 80149064 AD460010 */ sw $a2, 0x10($t2)
/* DF768 80149068 AD40001C */ sw $zero, 0x1c($t2)
/* DF76C 8014906C AD420020 */ sw $v0, 0x20($t2)
/* DF770 80149070 AD470024 */ sw $a3, 0x24($t2)
/* DF774 80149074 AD510028 */ sw $s1, 0x28($t2)
/* DF778 80149078 AD40002C */ sw $zero, 0x2c($t2)
/* DF77C 8014907C 8FAF0010 */ lw $t7, 0x10($sp)
/* DF780 80149080 3C096464 */ lui $t1, 0x6464
/* DF784 80149084 AD4F0030 */ sw $t7, 0x30($t2)
/* DF788 80149088 AD480034 */ sw $t0, 0x34($t2)
/* DF78C 8014908C 8FAF0014 */ lw $t7, 0x14($sp)
/* DF790 80149090 352964FF */ ori $t1, $t1, 0x64ff
/* DF794 80149094 AD4F0038 */ sw $t7, 0x38($t2)
/* DF798 80149098 8FA200B0 */ lw $v0, 0xb0($sp)
/* DF79C 8014909C 3C030C08 */ lui $v1, 0xc08
/* DF7A0 801490A0 00431025 */ or $v0, $v0, $v1
/* DF7A4 801490A4 AD42003C */ sw $v0, 0x3c($t2)
/* DF7A8 801490A8 25420048 */ addiu $v0, $t2, 0x48
/* DF7AC 801490AC AEE20000 */ sw $v0, ($s7)
/* DF7B0 801490B0 AD540040 */ sw $s4, 0x40($t2)
/* DF7B4 801490B4 AD490044 */ sw $t1, 0x44($t2)
/* DF7B8 801490B8 8FAF0084 */ lw $t7, 0x84($sp)
/* DF7BC 801490BC 240200FF */ addiu $v0, $zero, 0xff
/* DF7C0 801490C0 15E20005 */ bne $t7, $v0, .L801490D8
/* DF7C4 801490C4 3C04FC11 */ lui $a0, 0xfc11
/* DF7C8 801490C8 34847E80 */ ori $a0, $a0, 0x7e80
/* DF7CC 801490CC 3C03F5FF */ lui $v1, 0xf5ff
/* DF7D0 801490D0 08052439 */ j .L801490E4
/* DF7D4 801490D4 3463F438 */ ori $v1, $v1, 0xf438
.L801490D8:
/* DF7D8 801490D8 34843480 */ ori $a0, $a0, 0x3480
/* DF7DC 801490DC 3C03F5FF */ lui $v1, 0xf5ff
/* DF7E0 801490E0 3463FE38 */ ori $v1, $v1, 0xfe38
.L801490E4:
/* DF7E4 801490E4 25420050 */ addiu $v0, $t2, 0x50
/* DF7E8 801490E8 AEE20000 */ sw $v0, ($s7)
/* DF7EC 801490EC AD440048 */ sw $a0, 0x48($t2)
/* DF7F0 801490F0 AD43004C */ sw $v1, 0x4c($t2)
/* DF7F4 801490F4 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* DF7F8 801490F8 2463A66C */ addiu $v1, $v1, %lo(gMainGfxPos)
/* DF7FC 801490FC 8C620000 */ lw $v0, ($v1)
/* DF800 80149100 461ED002 */ mul.s $f0, $f26, $f30
/* DF804 80149104 00000000 */ nop
/* DF808 80149108 0040382D */ daddu $a3, $v0, $zero
/* DF80C 8014910C 24420008 */ addiu $v0, $v0, 8
/* DF810 80149110 AC620000 */ sw $v0, ($v1)
/* DF814 80149114 8FAF0074 */ lw $t7, 0x74($sp)
/* DF818 80149118 3C04F200 */ lui $a0, 0xf200
/* DF81C 8014911C 25E30100 */ addiu $v1, $t7, 0x100
/* DF820 80149120 00031880 */ sll $v1, $v1, 2
/* DF824 80149124 4600028D */ trunc.w.s $f10, $f0
/* DF828 80149128 44055000 */ mfc1 $a1, $f10
/* DF82C 8014912C 00000000 */ nop
/* DF830 80149130 00651821 */ addu $v1, $v1, $a1
/* DF834 80149134 30630FFF */ andi $v1, $v1, 0xfff
/* DF838 80149138 8FAF0078 */ lw $t7, 0x78($sp)
/* DF83C 8014913C 00031B00 */ sll $v1, $v1, 0xc
/* DF840 80149140 25E20100 */ addiu $v0, $t7, 0x100
/* DF844 80149144 00021080 */ sll $v0, $v0, 2
/* DF848 80149148 4600E28D */ trunc.w.s $f10, $f28
/* DF84C 8014914C 44065000 */ mfc1 $a2, $f10
/* DF850 80149150 00000000 */ nop
/* DF854 80149154 00461021 */ addu $v0, $v0, $a2
/* DF858 80149158 30420FFF */ andi $v0, $v0, 0xfff
/* DF85C 8014915C 00441025 */ or $v0, $v0, $a0
/* DF860 80149160 00621825 */ or $v1, $v1, $v0
/* DF864 80149164 ACE30000 */ sw $v1, ($a3)
/* DF868 80149168 8FAF007C */ lw $t7, 0x7c($sp)
/* DF86C 8014916C 8FA20080 */ lw $v0, 0x80($sp)
/* DF870 80149170 25E300FF */ addiu $v1, $t7, 0xff
/* DF874 80149174 00031880 */ sll $v1, $v1, 2
/* DF878 80149178 00651821 */ addu $v1, $v1, $a1
/* DF87C 8014917C 30630FFF */ andi $v1, $v1, 0xfff
/* DF880 80149180 00031B00 */ sll $v1, $v1, 0xc
/* DF884 80149184 244200FF */ addiu $v0, $v0, 0xff
/* DF888 80149188 00021080 */ sll $v0, $v0, 2
/* DF88C 8014918C 00461021 */ addu $v0, $v0, $a2
/* DF890 80149190 30420FFF */ andi $v0, $v0, 0xfff
/* DF894 80149194 00621825 */ or $v1, $v1, $v0
/* DF898 80149198 ACE30004 */ sw $v1, 4($a3)
/* DF89C 8014919C 8FBF003C */ lw $ra, 0x3c($sp)
/* DF8A0 801491A0 8FBE0038 */ lw $fp, 0x38($sp)
/* DF8A4 801491A4 8FB70034 */ lw $s7, 0x34($sp)
/* DF8A8 801491A8 8FB60030 */ lw $s6, 0x30($sp)
/* DF8AC 801491AC 8FB5002C */ lw $s5, 0x2c($sp)
/* DF8B0 801491B0 8FB40028 */ lw $s4, 0x28($sp)
/* DF8B4 801491B4 8FB30024 */ lw $s3, 0x24($sp)
/* DF8B8 801491B8 8FB20020 */ lw $s2, 0x20($sp)
/* DF8BC 801491BC 8FB1001C */ lw $s1, 0x1c($sp)
/* DF8C0 801491C0 8FB00018 */ lw $s0, 0x18($sp)
/* DF8C4 801491C4 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* DF8C8 801491C8 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* DF8CC 801491CC D7BA0058 */ ldc1 $f26, 0x58($sp)
/* DF8D0 801491D0 D7B80050 */ ldc1 $f24, 0x50($sp)
/* DF8D4 801491D4 D7B60048 */ ldc1 $f22, 0x48($sp)
/* DF8D8 801491D8 D7B40040 */ ldc1 $f20, 0x40($sp)
/* DF8DC 801491DC 03E00008 */ jr $ra
/* DF8E0 801491E0 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -839,7 +839,7 @@ segments:
- [0xDC470, c, dc470_len_14c0] - [0xDC470, c, dc470_len_14c0]
- [0xDD930, c, audio/ambience] - [0xDD930, c, audio/ambience]
- [0xDDAF0, c, windows] - [0xDDAF0, c, windows]
- [0xDE740, c, de740_len_23f0] - [0xDE740, c, sprite_shading]
- [0xDF950, c, audio/sfx] - [0xDF950, c, audio/sfx]
- [0xE0B30, c, audio/e0b30_len_b80] - [0xE0B30, c, audio/e0b30_len_b80]
- [0xE16B0, .data, a5dd0_len_114e0] - [0xE16B0, .data, a5dd0_len_114e0]
@ -6333,8 +6333,7 @@ segments:
- [0x3ED9E0, ia8, D_09001B80_3ED9E0, 128, 10] - [0x3ED9E0, ia8, D_09001B80_3ED9E0, 128, 10]
- [0x3EDEE0, ia8, D_09002080_3EDEE0, 128, 10] - [0x3EDEE0, ia8, D_09002080_3EDEE0, 128, 10]
- [0x3EE3E0, ia8, D_09002580_3EE3E0, 128, 10] - [0x3EE3E0, ia8, D_09002580_3EE3E0, 128, 10]
- [0x3EE8E0, ia8, world/text_end_of, 104, 20] - [0x3EE8E0, ia8, world/text_end_of, 104, 40]
- [0x3EF100, ia8, D_090032A0_3EF100, 104, 20]
- [0x3EF920, ia8, world/exclamation_point, 16, 40] - [0x3EF920, ia8, world/exclamation_point, 16, 40]
- [0x3EFBA0, ia8, world/ch1, 64, 64] - [0x3EFBA0, ia8, world/ch1, 64, 64]
- [0x3F0BA0, ia8, world/ch2, 64, 64] - [0x3F0BA0, ia8, world/ch2, 64, 64]