mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Tidying (#375)
* don't touch undefined syms/funcs auto * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "25b848a230" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "25b848a230" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 4 npc funcs * nine sef commands * test * test2 * run undefined_syms through cpp, remove bss and dead syms files * nuContQueryRead * Remove unnecessary flags * oops * oops2
This commit is contained in:
parent
eb8eb93f89
commit
2c0cb43181
@ -176,7 +176,14 @@ typedef struct Npc {
|
|||||||
/* 0x0C4 */ s32* spritePaletteList;
|
/* 0x0C4 */ s32* spritePaletteList;
|
||||||
/* 0x0C8 */ Palette16 localPaletteData[16];
|
/* 0x0C8 */ Palette16 localPaletteData[16];
|
||||||
/* 0x2C8 */ Palette16* localPalettes[16];
|
/* 0x2C8 */ Palette16* localPalettes[16];
|
||||||
/* 0x308 */ char unk_308[16];
|
/* 0x308 */ s16 unk_308;
|
||||||
|
/* 0x30A */ s16 unk_30A;
|
||||||
|
/* 0x30C */ s16 unk_30C;
|
||||||
|
/* 0x30E */ s16 unk_30E;
|
||||||
|
/* 0x310 */ s16 unk_310;
|
||||||
|
/* 0x312 */ s16 unk_312;
|
||||||
|
/* 0x314 */ s16 unk_314;
|
||||||
|
/* 0x316 */ s16 unk_316;
|
||||||
/* 0x318 */ f32 screenSpaceOffset2D[2];
|
/* 0x318 */ f32 screenSpaceOffset2D[2];
|
||||||
/* 0x320 */ f32 verticalStretch;
|
/* 0x320 */ f32 verticalStretch;
|
||||||
/* 0x324 */ struct EffectInstance* decorations[2];
|
/* 0x324 */ struct EffectInstance* decorations[2];
|
||||||
|
@ -1576,7 +1576,6 @@ enum NpcFlags {
|
|||||||
NPC_FLAG_40 = 0x00000040,
|
NPC_FLAG_40 = 0x00000040,
|
||||||
NPC_FLAG_100 = 0x00000100, // TODO
|
NPC_FLAG_100 = 0x00000100, // TODO
|
||||||
NPC_FLAG_GRAVITY = 0x00000200, ///< Enables gravity. Does nothing if NPC_FLAG_NO_Y_MOVEMENT is set.
|
NPC_FLAG_GRAVITY = 0x00000200, ///< Enables gravity. Does nothing if NPC_FLAG_NO_Y_MOVEMENT is set.
|
||||||
NPC_FLAG_208 = 0x00000208,
|
|
||||||
NPC_FLAG_LOCK_ANIMS = 0x00000400, ///< Do not allow scripts to change animation
|
NPC_FLAG_LOCK_ANIMS = 0x00000400, ///< Do not allow scripts to change animation
|
||||||
NPC_FLAG_NO_Y_MOVEMENT = 0x00000800, ///< Causes NpcMoveTo() to ignore stairs
|
NPC_FLAG_NO_Y_MOVEMENT = 0x00000800, ///< Causes NpcMoveTo() to ignore stairs
|
||||||
NPC_FLAG_1000 = 0x00001000,
|
NPC_FLAG_1000 = 0x00001000,
|
||||||
|
@ -34,6 +34,7 @@ Shadow* get_shadow_by_index(s32 index);
|
|||||||
s32 get_time_freeze_mode(void);
|
s32 get_time_freeze_mode(void);
|
||||||
void render_player_model();
|
void render_player_model();
|
||||||
s16 get_game_mode(void);
|
s16 get_game_mode(void);
|
||||||
|
s32 is_picking_up_item(void);
|
||||||
|
|
||||||
f32 integrate_gravity(void);
|
f32 integrate_gravity(void);
|
||||||
f32 get_clamped_angle_diff(f32, f32);
|
f32 get_clamped_angle_diff(f32, f32);
|
||||||
|
@ -469,7 +469,146 @@ void update_encounters_conversation(void) {
|
|||||||
void draw_encounters_conversation(void) {
|
void draw_encounters_conversation(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Mostly stack diffs, some issues with accessing fields from EncounterStatus at the very end
|
||||||
|
#ifdef NON_MATCHING
|
||||||
|
s8 check_conversation_trigger(void) {
|
||||||
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
|
Camera* camera = &gCameras[gCurrentCameraID];
|
||||||
|
f32 npcX;
|
||||||
|
f32 npcY;
|
||||||
|
f32 npcZ;
|
||||||
|
f32 angle;
|
||||||
|
f32 playerColliderRadius;
|
||||||
|
f32 playerColliderHeight;
|
||||||
|
f32 deltaX;
|
||||||
|
f32 deltaZ;
|
||||||
|
f32 playerX;
|
||||||
|
f32 playerY;
|
||||||
|
f32 playerZ;
|
||||||
|
f32 length;
|
||||||
|
f32 npcCollisionHeight;
|
||||||
|
f32 npcCollisionRadius;
|
||||||
|
Encounter* encounter;
|
||||||
|
Encounter* encounterTemp;
|
||||||
|
Npc* npc;
|
||||||
|
Npc* encounterNpc;
|
||||||
|
Enemy* enemy;
|
||||||
|
Enemy* encounterEnemy;
|
||||||
|
f32 minLength;
|
||||||
|
f32 xTemp;
|
||||||
|
f32 yTemp;
|
||||||
|
f32 zTemp;
|
||||||
|
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
|
||||||
|
playerStatus->unk_C8 = NULL;
|
||||||
|
playerStatus->flags &= ~0x2000000;
|
||||||
|
playerColliderHeight = playerStatus->colliderHeight;
|
||||||
|
playerColliderRadius = playerStatus->colliderDiameter / 2;
|
||||||
|
playerX = playerStatus->position.x;
|
||||||
|
playerY = playerStatus->position.y;
|
||||||
|
playerZ = playerStatus->position.z;
|
||||||
|
|
||||||
|
if (gPartnerActionStatus.actionState.b[0] == 0) {
|
||||||
|
encounter = NULL;
|
||||||
|
npc = NULL;
|
||||||
|
enemy = NULL;
|
||||||
|
minLength = 65535.0f;
|
||||||
|
|
||||||
|
for (i = 0; i < gCurrentEncounter.numEncounters; i++) {
|
||||||
|
encounterTemp = gCurrentEncounter.encounterList[i];
|
||||||
|
|
||||||
|
if (encounterTemp == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0; j < encounterTemp->count; j++) {
|
||||||
|
encounterEnemy = encounterTemp->enemy[j];
|
||||||
|
|
||||||
|
if (encounterEnemy == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(encounterEnemy->flags & 0x80000020)) {
|
||||||
|
if (encounterEnemy->flags & 1) {
|
||||||
|
if (!(encounterEnemy->flags & 0x8000000) && encounterEnemy->interactBytecode != NULL) {
|
||||||
|
encounterNpc = get_npc_unsafe(encounterEnemy->npcID);
|
||||||
|
|
||||||
|
npcX = encounterNpc->pos.x;
|
||||||
|
npcY = encounterNpc->pos.y;
|
||||||
|
npcZ = encounterNpc->pos.z;
|
||||||
|
deltaX = npcX - playerX;
|
||||||
|
deltaZ = npcZ - playerZ;
|
||||||
|
npcCollisionHeight = encounterNpc->collisionHeight;
|
||||||
|
npcCollisionRadius = encounterNpc->collisionRadius;
|
||||||
|
length = sqrtf(SQ(deltaX) + SQ(deltaZ));
|
||||||
|
|
||||||
|
if (!(playerColliderRadius + npcCollisionRadius <= length) &&
|
||||||
|
!(npcY + npcCollisionHeight < playerY) &&
|
||||||
|
!(playerY + playerColliderHeight < npcY)) {
|
||||||
|
|
||||||
|
if (clamp_angle(playerStatus->spriteFacingAngle) < 180.0f) {
|
||||||
|
angle = clamp_angle(camera->currentYaw - 120.0f);
|
||||||
|
if (playerStatus->trueAnimation & 0x1000000) {
|
||||||
|
angle = clamp_angle(angle + 60.0f);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
angle = clamp_angle(camera->currentYaw + 120.0f);
|
||||||
|
if (playerStatus->trueAnimation & 0x1000000) {
|
||||||
|
angle = clamp_angle(angle - 60.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fabsf(get_clamped_angle_diff(angle, atan2(playerX, playerZ, npcX, npcZ))) > 90.0f) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(encounterEnemy->flags & 0x10000) && encounterNpc->flags & 0x20000000) {
|
||||||
|
xTemp = npcX;
|
||||||
|
yTemp = npcY;
|
||||||
|
zTemp = npcZ;
|
||||||
|
|
||||||
|
if (npc_test_move_taller_with_slipping(0, &xTemp, &yTemp, &zTemp, length,
|
||||||
|
atan2(npcX, npcZ, playerX, playerZ),
|
||||||
|
npcCollisionHeight,
|
||||||
|
2.0f * npcCollisionRadius) != 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (length < minLength) {
|
||||||
|
minLength = length;
|
||||||
|
encounter = encounterTemp;
|
||||||
|
npc = encounterNpc;
|
||||||
|
enemy = encounterEnemy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(playerStatus->animFlags & 0x4000) && npc != NULL && !is_picking_up_item()) {
|
||||||
|
playerStatus->unk_C8 = npc;
|
||||||
|
playerStatus->flags |= 0x2000000;
|
||||||
|
if (playerStatus->pressedButtons & BUTTON_A) {
|
||||||
|
close_status_menu();
|
||||||
|
enemy->encountered = 5;
|
||||||
|
gCurrentEncounter.hitType = 5;
|
||||||
|
gCurrentEncounter.currentEncounter = encounter;
|
||||||
|
gCurrentEncounter.currentEnemy = enemy;
|
||||||
|
gCurrentEncounter.eFirstStrike = FIRST_STRIKE_PLAYER;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
INCLUDE_ASM(s32, "1a1f0_len_5390", check_conversation_trigger);
|
INCLUDE_ASM(s32, "1a1f0_len_5390", check_conversation_trigger);
|
||||||
|
#endif
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "1a1f0_len_5390", create_encounters);
|
INCLUDE_ASM(s32, "1a1f0_len_5390", create_encounters);
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ void func_8004B328(s16 arg0, s32 arg1) {
|
|||||||
func_80056D44(temp_s0);
|
func_80056D44(temp_s0);
|
||||||
|
|
||||||
if (temp_s0 == 0) {
|
if (temp_s0 == 0) {
|
||||||
nuAuTaskStop = 0;
|
nuAuTaskStop = NU_AU_TASK_STOP;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -25,15 +25,15 @@ void func_8004B440(SoundManager* manager, u8 arg1, u8 arg2, UnkAl19E0* arg3, u8
|
|||||||
for (i = 0; i < ARRAY_COUNT(manager->unk_16C); i++) {
|
for (i = 0; i < ARRAY_COUNT(manager->unk_16C); i++) {
|
||||||
SoundPlayer* sub = &manager->unk_16C[i];
|
SoundPlayer* sub = &manager->unk_16C[i];
|
||||||
|
|
||||||
sub->counter = 0;
|
sub->sefDataReadPos = 0;
|
||||||
sub->unk_5C = 0;
|
sub->sfxVolume = 0;
|
||||||
sub->unk_8E = 0;
|
sub->unk_8E = 0;
|
||||||
sub->unk_90 = 0;
|
sub->unk_90 = 0;
|
||||||
sub->unk_92 = 0;
|
sub->unk_92 = 0;
|
||||||
sub->unk_94 = 0;
|
sub->unk_94 = 0;
|
||||||
sub->unk_9B = 0;
|
sub->sfxPan = 0;
|
||||||
sub->unk_9C = 0;
|
sub->reverb = 0;
|
||||||
sub->unk_9D = 0;
|
sub->instrumentIndex = 0;
|
||||||
sub->unk_9E = 0;
|
sub->unk_9E = 0;
|
||||||
sub->unk_9F = 0;
|
sub->unk_9F = 0;
|
||||||
sub->unk_99 = 0;
|
sub->unk_99 = 0;
|
||||||
@ -185,9 +185,39 @@ INCLUDE_ASM(s32, "26840_len_20d0", snd_set_voice_volume);
|
|||||||
|
|
||||||
INCLUDE_ASM(s32, "26840_len_20d0", func_8004CDF8);
|
INCLUDE_ASM(s32, "26840_len_20d0", func_8004CDF8);
|
||||||
|
|
||||||
|
void snd_SEFCmd_00_SetVolume(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_01_SetPan(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_02_SetInstrument(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_03_SetReverb(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_04(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_05(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_06(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_07(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_08(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_09_StartLoop(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0A_EndLoop(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0B(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0C(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0D(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0E(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_0F(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_10_Jump(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_13(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_14(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_15(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_16(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_17(SoundManager* manager, SoundPlayer* player);
|
||||||
|
void snd_SEFCmd_18(SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_00_SetVolume, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_00_SetVolume, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_01_SetPan, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_01_SetPan(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 sfxPan = *player->sefDataReadPos;
|
||||||
|
|
||||||
|
player->sefDataReadPos++;
|
||||||
|
player->changedPan = TRUE;
|
||||||
|
player->sfxPan = sfxPan;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_02_SetInstrument, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_02_SetInstrument, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
@ -195,19 +225,40 @@ INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_03_SetReverb, SoundManager* manag
|
|||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_04, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_04, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_05, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_05(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s32 temp_v1 = *player->sefDataReadPos;
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_06, SoundManager* manager, SoundPlayer* player);
|
player->sefDataReadPos++;
|
||||||
|
player->unk_92 = temp_v1 * 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snd_SEFCmd_06(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 temp_v1 = *player->sefDataReadPos;
|
||||||
|
|
||||||
|
player->sefDataReadPos++;
|
||||||
|
player->unk_94 = temp_v1;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_07, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_07, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_08, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_08, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_09_StartLoop, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_09_StartLoop(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 loopIterCount = *player->sefDataReadPos;
|
||||||
|
|
||||||
|
player->sefDataReadPos++;
|
||||||
|
player->loopStartPos = player->sefDataReadPos;
|
||||||
|
player->loopIterCount = loopIterCount;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0A_EndLoop, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0A_EndLoop, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0B, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_0B(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
if (player->unk_90 != 0) {
|
||||||
|
player->unk_8E = 3;
|
||||||
|
player->sefDataReadPos--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0C, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0C, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
@ -219,16 +270,33 @@ INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_0F, SoundManager* manager, SoundP
|
|||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_10_Jump, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_10_Jump, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_11_Restart, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_11_Restart(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
player->sefDataReadPos = player->sefReadStart;
|
||||||
|
}
|
||||||
|
|
||||||
void snd_SEFCmd_12_NOP(SoundManager* manager, SoundPlayer* player) {
|
void snd_SEFCmd_12_NOP(SoundManager* manager, SoundPlayer* player) {
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_13, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_13(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 temp_v1 = *player->sefDataReadPos;
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_14, SoundManager* manager, SoundPlayer* player);
|
player->sefDataReadPos++;
|
||||||
|
player->unk_A1 = temp_v1;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_15, SoundManager* manager, SoundPlayer* player);
|
void snd_SEFCmd_14(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 temp_v1 = *player->sefDataReadPos;
|
||||||
|
|
||||||
|
player->sefDataReadPos++;
|
||||||
|
player->unk_A2 = temp_v1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void snd_SEFCmd_15(SoundManager* manager, SoundPlayer* player) {
|
||||||
|
s8 temp_v1 = *player->sefDataReadPos;
|
||||||
|
|
||||||
|
player->sefDataReadPos++;
|
||||||
|
player->unk_A3 = temp_v1;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_16, SoundManager* manager, SoundPlayer* player);
|
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_16, SoundManager* manager, SoundPlayer* player);
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ s32 is_picking_up_item(void) {
|
|||||||
s32 ret = D_801565A8 != 0;
|
s32 ret = D_801565A8 != 0;
|
||||||
|
|
||||||
if (D_801565A4 != 0) {
|
if (D_801565A4 != 0) {
|
||||||
ret = 1;
|
ret = TRUE;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
105
src/audio.h
105
src/audio.h
@ -111,11 +111,53 @@ typedef struct SoundSFXEntry {
|
|||||||
/* 0x9 */ char unk_9[0x1];
|
/* 0x9 */ char unk_9[0x1];
|
||||||
} SoundSFXEntry; // size = 0xA
|
} SoundSFXEntry; // size = 0xA
|
||||||
|
|
||||||
|
typedef struct Instrument {
|
||||||
|
/* 0x00 */ s32 wavOffset;
|
||||||
|
/* 0x04 */ s32 wavLength;
|
||||||
|
/* 0x08 */ s32 loopPredictorOffset;
|
||||||
|
/* 0x0C */ s32 loopStart;
|
||||||
|
/* 0x10 */ s32 loopEnd;
|
||||||
|
/* 0x14 */ s32 loopCount;
|
||||||
|
/* 0x18 */ s32 predictorOffset;
|
||||||
|
/* 0x1C */ s16 unk_1C;
|
||||||
|
/* 0x1E */ s16 unk_1E;
|
||||||
|
/* 0x20 */ f32 sampleRate;
|
||||||
|
/* 0x24 */ s8 skipLoopPredictor;
|
||||||
|
/* 0x25 */ s8 unk_25;
|
||||||
|
/* 0x26 */ s8 unk_26;
|
||||||
|
/* 0x27 */ s8 unk_27;
|
||||||
|
/* 0x28 */ s8 unk_28;
|
||||||
|
/* 0x29 */ s8 unk_29;
|
||||||
|
/* 0x2A */ s8 unk_2A;
|
||||||
|
/* 0x2B */ s8 unk_2B;
|
||||||
|
/* 0x2C */ s32 unkOffset;
|
||||||
|
} Instrument; // size = 0x30;
|
||||||
|
|
||||||
|
typedef Instrument* InstrumentGroup[16];
|
||||||
|
|
||||||
|
typedef struct SoundLerp {
|
||||||
|
/* 0x0 */ s32 current;
|
||||||
|
/* 0x4 */ s32 step;
|
||||||
|
/* 0x8 */ s16 goal;
|
||||||
|
/* 0xA */ s16 time;
|
||||||
|
} SoundLerp; // size = 0xC
|
||||||
|
|
||||||
typedef struct SoundPlayer {
|
typedef struct SoundPlayer {
|
||||||
/* 0x00 */ s32 counter;
|
/* 0x00 */ s8* sefDataReadPos;
|
||||||
/* 0x04 */ char unk_04[0x58];
|
/* 0x04 */ char unk_04[0x14];
|
||||||
/* 0x5C */ u16 unk_5C;
|
/* 0x18 */ s32 unk_18;
|
||||||
/* 0x5E */ char unk_5E[0x1A];
|
/* 0x1C */ Instrument* sfxInstrumentRef;
|
||||||
|
/* 0x20 */ Instrument sfxInstrument;
|
||||||
|
/* 0x50 */ s32 sefReadStart;
|
||||||
|
/* 0x54 */ s8 changedTune;
|
||||||
|
/* 0x55 */ u8 changedVolume;
|
||||||
|
/* 0x56 */ u8 changedPan;
|
||||||
|
/* 0x57 */ u8 changedReverb;
|
||||||
|
/* 0x58 */ f32 actualSampleRate;
|
||||||
|
/* 0x5C */ u16 sfxVolume;
|
||||||
|
/* 0x5E */ s16 unk_5E;
|
||||||
|
/* 0x60 */ SoundLerp tuneLerp;
|
||||||
|
/* 0x6C */ SoundLerp volumeLerp;
|
||||||
/* 0x78 */ u8 locatorB;
|
/* 0x78 */ u8 locatorB;
|
||||||
/* 0x79 */ u8 locatorC;
|
/* 0x79 */ u8 locatorC;
|
||||||
/* 0x7A */ u8 locatorD;
|
/* 0x7A */ u8 locatorD;
|
||||||
@ -124,20 +166,35 @@ typedef struct SoundPlayer {
|
|||||||
/* 0x7D */ u8 unk_7D;
|
/* 0x7D */ u8 unk_7D;
|
||||||
/* 0x7E */ u8 unk_7E;
|
/* 0x7E */ u8 unk_7E;
|
||||||
/* 0x7F */ u8 unk_7F;
|
/* 0x7F */ u8 unk_7F;
|
||||||
/* 0x80 */ char unk_80[0xE];
|
/* 0x80 */ s32 unk_80;
|
||||||
|
/* 0x84 */ s8 unk_84;
|
||||||
|
/* 0x85 */ s8 soundC00;
|
||||||
|
/* 0x86 */ char unk_86[0x2];
|
||||||
|
/* 0x88 */ s8* loopStartPos;
|
||||||
|
/* 0x8C */ s8 loopIterCount;
|
||||||
|
/* 0x8D */ char unk_8D;
|
||||||
/* 0x8E */ u16 unk_8E;
|
/* 0x8E */ u16 unk_8E;
|
||||||
/* 0x90 */ u16 unk_90;
|
/* 0x90 */ u16 unk_90;
|
||||||
/* 0x92 */ u16 unk_92;
|
/* 0x92 */ u16 unk_92;
|
||||||
/* 0x94 */ u8 unk_94;
|
/* 0x94 */ u8 unk_94;
|
||||||
/* 0x95 */ char unk_05[0x4];
|
/* 0x95 */ char unk_05;
|
||||||
|
/* 0x96 */ s16 currentSoundID;
|
||||||
|
/* 0x98 */ char unk_98[0x1];
|
||||||
/* 0x99 */ u8 unk_99;
|
/* 0x99 */ u8 unk_99;
|
||||||
/* 0x9A */ char unk_9A[0x1];
|
/* 0x9A */ s8 sfxParamsFlags;
|
||||||
/* 0x9B */ u8 unk_9B;
|
/* 0x9B */ u8 sfxPan;
|
||||||
/* 0x9C */ u8 unk_9C;
|
/* 0x9C */ u8 reverb;
|
||||||
/* 0x9D */ u8 unk_9D;
|
/* 0x9D */ u8 instrumentIndex; // ?
|
||||||
/* 0x9E */ u8 unk_9E;
|
/* 0x9E */ u8 unk_9E;
|
||||||
/* 0x9F */ u8 unk_9F;
|
/* 0x9F */ u8 unk_9F;
|
||||||
/* 0xA0 */ char unk_A0[0xC];
|
/* 0xA0 */ char unk_A0[0x1];
|
||||||
|
/* 0xA1 */ s8 unk_A1;
|
||||||
|
/* 0xA2 */ s8 unk_A2;
|
||||||
|
/* 0xA3 */ s8 unk_A3;
|
||||||
|
/* 0xA4 */ s16 masterPitchShift;
|
||||||
|
/* 0xA6 */ s16 masterVolume;
|
||||||
|
/* 0xA8 */ s8 masterPan;
|
||||||
|
/* 0xA9 */ char unk_A9[0x3];
|
||||||
} SoundPlayer; // size = 0xAC
|
} SoundPlayer; // size = 0xAC
|
||||||
|
|
||||||
typedef struct SoundSefHeader {
|
typedef struct SoundSefHeader {
|
||||||
@ -171,7 +228,7 @@ typedef struct SoundManager {
|
|||||||
/* 0x0BC */ u8 unk_BC;
|
/* 0x0BC */ u8 unk_BC;
|
||||||
/* 0x0BD */ u8 sfxPlayerSelector;
|
/* 0x0BD */ u8 sfxPlayerSelector;
|
||||||
/* 0x0BE */ u8 unk_BE;
|
/* 0x0BE */ u8 unk_BE;
|
||||||
/* 0x0BF */ char unk_BF[0x1];
|
/* 0x0BF */ u8 unk_BF;
|
||||||
/* 0x0C0 */ s8 unk_C0;
|
/* 0x0C0 */ s8 unk_C0;
|
||||||
/* 0x0C1 */ char unk_C1[0x1];
|
/* 0x0C1 */ char unk_C1[0x1];
|
||||||
/* 0x0C2 */ SoundSFXEntry unk_C2[16];
|
/* 0x0C2 */ SoundSFXEntry unk_C2[16];
|
||||||
@ -196,30 +253,6 @@ typedef struct UnkAlC {
|
|||||||
/* 0xA */ s8 unk_0A;
|
/* 0xA */ s8 unk_0A;
|
||||||
} UnkAlC;
|
} UnkAlC;
|
||||||
|
|
||||||
typedef struct Instrument {
|
|
||||||
/* 0x00 */ s32 wavOffset;
|
|
||||||
/* 0x04 */ s32 wavLength;
|
|
||||||
/* 0x08 */ s32 loopPredictorOffset;
|
|
||||||
/* 0x0C */ s32 loopStart;
|
|
||||||
/* 0x10 */ s32 loopEnd;
|
|
||||||
/* 0x14 */ s32 loopCount;
|
|
||||||
/* 0x18 */ s32 predictorOffset;
|
|
||||||
/* 0x1C */ s16 unk_1C;
|
|
||||||
/* 0x1E */ s16 unk_1E;
|
|
||||||
/* 0x20 */ f32 sampleRate;
|
|
||||||
/* 0x24 */ s8 skipLoopPredictor;
|
|
||||||
/* 0x25 */ s8 unk_25;
|
|
||||||
/* 0x26 */ s8 unk_26;
|
|
||||||
/* 0x27 */ s8 unk_27;
|
|
||||||
/* 0x28 */ s8 unk_28;
|
|
||||||
/* 0x29 */ s8 unk_29;
|
|
||||||
/* 0x2A */ s8 unk_2A;
|
|
||||||
/* 0x2B */ s8 unk_2B;
|
|
||||||
/* 0x2C */ s32 unkOffset;
|
|
||||||
} Instrument;
|
|
||||||
|
|
||||||
typedef Instrument* InstrumentGroup[16];
|
|
||||||
|
|
||||||
typedef struct UnkAl48 { // Track?
|
typedef struct UnkAl48 { // Track?
|
||||||
/* 0x00 */ s32 unk_00; // pointer to something
|
/* 0x00 */ s32 unk_00; // pointer to something
|
||||||
/* 0x04 */ f32 unk_04;
|
/* 0x04 */ f32 unk_04;
|
||||||
|
89
src/npc.c
89
src/npc.c
@ -16,6 +16,7 @@ extern s32 D_80077C20;
|
|||||||
|
|
||||||
extern s16 D_80077C30;
|
extern s16 D_80077C30;
|
||||||
extern s32 D_80077C34;
|
extern s32 D_80077C34;
|
||||||
|
extern s16 D_80077C38;
|
||||||
extern s16 D_80077C3A;
|
extern s16 D_80077C3A;
|
||||||
|
|
||||||
void STUB_npc_callback(void) {
|
void STUB_npc_callback(void) {
|
||||||
@ -260,7 +261,7 @@ void npc_do_world_collision(Npc* npc) {
|
|||||||
f32 temp_y;
|
f32 temp_y;
|
||||||
f32 temp_z;
|
f32 temp_z;
|
||||||
|
|
||||||
if (npc->flags & 0x40) {
|
if (npc->flags & NPC_FLAG_40) {
|
||||||
npc->flags |= NPC_FLAG_8000000;
|
npc->flags |= NPC_FLAG_8000000;
|
||||||
} else if ((npc->pos.x != npc->colliderPos.x) || (npc->pos.y != npc->colliderPos.y)
|
} else if ((npc->pos.x != npc->colliderPos.x) || (npc->pos.y != npc->colliderPos.y)
|
||||||
|| (npc->pos.z != npc->colliderPos.z) || npc->flags & NPC_FLAG_8000000) {
|
|| (npc->pos.z != npc->colliderPos.z) || npc->flags & NPC_FLAG_8000000) {
|
||||||
@ -356,15 +357,53 @@ INCLUDE_ASM(void, "npc", npc_do_other_npc_collision, Npc* npc);
|
|||||||
|
|
||||||
INCLUDE_ASM(s32, "npc", npc_do_player_collision, Npc* npc);
|
INCLUDE_ASM(s32, "npc", npc_do_player_collision, Npc* npc);
|
||||||
|
|
||||||
INCLUDE_ASM(void, "npc", npc_do_gravity, Npc* npc);
|
void npc_do_gravity(Npc* npc) {
|
||||||
|
if (npc->flags & NPC_FLAG_GRAVITY) {
|
||||||
|
if (npc->flags & NPC_FLAG_NO_Y_MOVEMENT) {
|
||||||
|
npc->flags &= ~NPC_FLAG_1000;
|
||||||
|
} else {
|
||||||
|
f32 xTemp;
|
||||||
|
f32 yTemp;
|
||||||
|
f32 zTemp;
|
||||||
|
f32 length, oldLength;
|
||||||
|
s32 hit;
|
||||||
|
|
||||||
|
npc->jumpScale = 1.0f;
|
||||||
|
xTemp = npc->pos.x;
|
||||||
|
zTemp = npc->pos.z;
|
||||||
|
|
||||||
|
npc->jumpVelocity -= npc->jumpScale;
|
||||||
|
npc->pos.y += npc->jumpVelocity;
|
||||||
|
oldLength = length = fabsf(npc->jumpVelocity) + 16.0f;
|
||||||
|
|
||||||
|
yTemp = npc->pos.y + 13.0f;
|
||||||
|
|
||||||
|
if (!(npc->flags & NPC_FLAG_PARTICLE)) {
|
||||||
|
hit = npc_raycast_down_sides(npc->unk_80, &xTemp, &yTemp, &zTemp, &length);
|
||||||
|
} else {
|
||||||
|
hit = npc_raycast_down_ahead(npc->unk_80, &xTemp, &yTemp, &zTemp, &length, npc->yaw,
|
||||||
|
npc->collisionRadius);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hit && length <= oldLength) {
|
||||||
|
npc->jumpVelocity = 0.0f;
|
||||||
|
npc->flags |= NPC_FLAG_1000;
|
||||||
|
npc->pos.y = yTemp;
|
||||||
|
npc->unk_84 = D_8010C97A;
|
||||||
|
} else {
|
||||||
|
npc->flags &= ~NPC_FLAG_1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
s32 func_800397E8(Npc* npc, f32 arg1) {
|
s32 func_800397E8(Npc* npc, f32 arg1) {
|
||||||
if (!(npc->flags & NPC_FLAG_208)) {
|
if (!(npc->flags & (NPC_FLAG_GRAVITY | NPC_FLAG_ENABLE_HIT_SCRIPT))) {
|
||||||
f32 x;
|
f32 x;
|
||||||
f32 y;
|
f32 y;
|
||||||
f32 z;
|
f32 z;
|
||||||
f32 subroutine_arg;
|
f32 length;
|
||||||
f32 temp_v1;
|
f32 oldLength;
|
||||||
s32 phi_v0;
|
s32 phi_v0;
|
||||||
|
|
||||||
if (npc->flags & NPC_FLAG_NO_Y_MOVEMENT) {
|
if (npc->flags & NPC_FLAG_NO_Y_MOVEMENT) {
|
||||||
@ -372,20 +411,18 @@ s32 func_800397E8(Npc* npc, f32 arg1) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
temp_v1 = fabsf(arg1) + 16;
|
length = oldLength = fabsf(arg1) + 16;
|
||||||
subroutine_arg = temp_v1;
|
|
||||||
x = npc->pos.x;
|
x = npc->pos.x;
|
||||||
y = npc->pos.y + 13;
|
y = npc->pos.y + 13;
|
||||||
z = npc->pos.z;
|
z = npc->pos.z;
|
||||||
|
|
||||||
if (!(npc->flags & NPC_FLAG_PARTICLE)) {
|
if (!(npc->flags & NPC_FLAG_PARTICLE)) {
|
||||||
phi_v0 = npc_raycast_down_sides(npc->unk_80, &x, &y, &z, &subroutine_arg);
|
phi_v0 = npc_raycast_down_sides(npc->unk_80, &x, &y, &z, &length);
|
||||||
} else {
|
} else {
|
||||||
phi_v0 = npc_raycast_down_ahead(npc->unk_80, &x, &y, &z, &subroutine_arg, npc->yaw,
|
phi_v0 = npc_raycast_down_ahead(npc->unk_80, &x, &y, &z, &length, npc->yaw, npc->collisionRadius);
|
||||||
npc->collisionRadius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phi_v0 != 0 && subroutine_arg <= temp_v1) {
|
if (phi_v0 != 0 && length <= oldLength) {
|
||||||
npc->pos.y = y;
|
npc->pos.y = y;
|
||||||
npc->unk_84 = D_8010C97A;
|
npc->unk_84 = D_8010C97A;
|
||||||
npc->flags |= NPC_FLAG_1000;
|
npc->flags |= NPC_FLAG_1000;
|
||||||
@ -797,9 +834,19 @@ void func_8003B420(Npc* npc) {
|
|||||||
npc->unk_B6 = 1;
|
npc->unk_B6 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "npc", npc_set_palswap_1);
|
void npc_set_palswap_1(Npc* npc, s32 palIndexA, s32 palIndexB, s32 timeHoldA, s32 timeAB) {
|
||||||
|
npc->unk_308 = palIndexA;
|
||||||
|
npc->unk_30A = palIndexB;
|
||||||
|
npc->unk_30C = timeHoldA;
|
||||||
|
npc->unk_30E = timeAB;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "npc", npc_set_palswap_2);
|
void npc_set_palswap_2(Npc* npc, s32 timeHoldB, s32 timeBA, s32 palIndexC, s32 palIndexD) {
|
||||||
|
npc->unk_310 = timeHoldB;
|
||||||
|
npc->unk_312 = timeBA;
|
||||||
|
npc->unk_314 = palIndexC;
|
||||||
|
npc->unk_316 = palIndexD;
|
||||||
|
}
|
||||||
|
|
||||||
void npc_draw_with_palswap(Npc* npc, s32 arg1, s32 arg2) {
|
void npc_draw_with_palswap(Npc* npc, s32 arg1, s32 arg2) {
|
||||||
switch (npc->unk_B4) {
|
switch (npc->unk_B4) {
|
||||||
@ -1293,7 +1340,7 @@ void func_8003D624(Npc* npc, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s
|
|||||||
#ifdef NON_MATCHING
|
#ifdef NON_MATCHING
|
||||||
// Rodata padding issue. Most likely belongs to a separate TU than the function above with the switch.
|
// Rodata padding issue. Most likely belongs to a separate TU than the function above with the switch.
|
||||||
void func_8003D660(Npc* npc, s32 arg1) {
|
void func_8003D660(Npc* npc, s32 arg1) {
|
||||||
Temp8010EBB0* temp = &gPartnerActionStatus;
|
PartnerActionStatus* temp = &gPartnerActionStatus;
|
||||||
|
|
||||||
if ((npc->flags & (NPC_FLAG_400000 | NPC_FLAG_2)) == NPC_FLAG_400000) {
|
if ((npc->flags & (NPC_FLAG_400000 | NPC_FLAG_2)) == NPC_FLAG_400000) {
|
||||||
if (npc->moveSpeed != 0.0f) {
|
if (npc->moveSpeed != 0.0f) {
|
||||||
@ -1387,8 +1434,20 @@ void func_8003DFA0(Npc* npc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void func_8003E0D4(Npc* npc) {
|
||||||
|
if (D_80077C38++ >= 4) {
|
||||||
|
f32 theta;
|
||||||
|
f32 sinTheta;
|
||||||
|
f32 cosTheta;
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "npc", func_8003E0D4);
|
D_80077C38 = 0;
|
||||||
|
theta = (clamp_angle(-npc->yaw) * TAU) / 360.0f;
|
||||||
|
sinTheta = sin_rad(theta);
|
||||||
|
cosTheta = cos_rad(theta);
|
||||||
|
playFX_2C(1, npc->pos.x + (npc->collisionRadius * sinTheta * 0.2f),
|
||||||
|
40.0f, npc->pos.z + (npc->collisionRadius * cosTheta * 0.2f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void func_8003E1D0(Npc* npc) {
|
void func_8003E1D0(Npc* npc) {
|
||||||
if (D_80077C3A++ >= 4) {
|
if (D_80077C3A++ >= 4) {
|
||||||
|
@ -86,9 +86,9 @@ void npc_set_palswap_mode_B(Npc* npc, s32 arg1);
|
|||||||
|
|
||||||
void func_8003B420(Npc* npc);
|
void func_8003B420(Npc* npc);
|
||||||
|
|
||||||
s32 npc_set_palswap_1();
|
void npc_set_palswap_1(Npc* npc, s32 palIndexA, s32 palIndexB, s32 timeHoldA, s32 timeAB);
|
||||||
|
|
||||||
s32 npc_set_palswap_2();
|
void npc_set_palswap_2(Npc* npc, s32 timeHoldB, s32 timeBA, s32 palIndexC, s32 palIndexD);
|
||||||
|
|
||||||
void npc_draw_with_palswap(Npc* npc, s32 arg1, s32 arg2);
|
void npc_draw_with_palswap(Npc* npc, s32 arg1, s32 arg2);
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ s32 func_8003DC38();
|
|||||||
|
|
||||||
void func_8003DFA0(Npc* npc);
|
void func_8003DFA0(Npc* npc);
|
||||||
|
|
||||||
s32 func_8003E0D4();
|
void func_8003E0D4();
|
||||||
|
|
||||||
void func_8003E1D0(Npc* npc);
|
void func_8003E1D0(Npc* npc);
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
// TODO: create src/os/nusys/nuSched.h?
|
// TODO: create src/os/nusys/nuSched.h?
|
||||||
extern u64 nuScStack[NU_SC_STACK_SIZE / sizeof(u64)];
|
extern u64 nuScStack[NU_SC_STACK_SIZE / sizeof(u64)];
|
||||||
|
|
||||||
|
// probably should be at 0x8009A630, unless D_8009A630 (what's technically used in boot_idle) isn't nuIdleFunc
|
||||||
static void (*nuIdleFunc)(void);
|
static void (*nuIdleFunc)(void);
|
||||||
|
|
||||||
void nuBoot(void) {
|
void nuBoot(void) {
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "os/3bd20_len_c0", nuContQueryRead);
|
|
6
src/os/nusys/nuContQueryRead.c
Normal file
6
src/os/nusys/nuContQueryRead.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "nu/nusys.h"
|
||||||
|
|
||||||
|
void nuContQueryRead(void) {
|
||||||
|
nuSiSendMesg(NU_CONT_QUERY_MSG, NULL);
|
||||||
|
}
|
@ -12,9 +12,8 @@ DO_SHA1_CHECK = True
|
|||||||
|
|
||||||
CPPFLAGS = "-w -Iver/$version/build/include -Iinclude -Isrc -Iassets/$version -D _LANGUAGE_C -D _FINALROM -D VERSION=$version " \
|
CPPFLAGS = "-w -Iver/$version/build/include -Iinclude -Isrc -Iassets/$version -D _LANGUAGE_C -D _FINALROM -D VERSION=$version " \
|
||||||
"-ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32"
|
"-ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32"
|
||||||
CFLAGS = "-O2 -quiet -fno-common -G0 -mcpu=vr4300 -mfix4300 -mips3 -mgp32 -mfp32 " \
|
CFLAGS = "-G0 -O2 -quiet -fno-common -Wuninitialized -Wmissing-braces"
|
||||||
"-Wuninitialized -Wmissing-braces"
|
ASFLAGS = "-G0"
|
||||||
ASFLAGS = "-EB -G 0"
|
|
||||||
|
|
||||||
# Paths:
|
# Paths:
|
||||||
ROOT = Path(__file__).parent.parent.parent
|
ROOT = Path(__file__).parent.parent.parent
|
||||||
@ -66,7 +65,7 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
|
|||||||
|
|
||||||
ninja.rule("ld",
|
ninja.rule("ld",
|
||||||
description="link($version) $out",
|
description="link($version) $out",
|
||||||
command=f"{cross}ld -T ver/$version/undefined_syms.txt -T ver/$version/undefined_syms_auto.txt -T ver/$version/undefined_funcs_auto.txt -T ver/$version/dead_syms.txt -T ver/$version/main_bss_syms.txt -Map $mapfile --no-check-sections -T $in -o $out",
|
command=f"{cross}ld -T ver/$version/build/undefined_syms.txt -T ver/$version/undefined_syms_auto.txt -T ver/$version/undefined_funcs_auto.txt -Map $mapfile --no-check-sections -T $in -o $out",
|
||||||
)
|
)
|
||||||
|
|
||||||
ninja.rule("z64",
|
ninja.rule("z64",
|
||||||
@ -79,6 +78,11 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
|
|||||||
command="sha1sum -c $in && touch $out" if DO_SHA1_CHECK else "touch $out",
|
command="sha1sum -c $in && touch $out" if DO_SHA1_CHECK else "touch $out",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ninja.rule("cpp",
|
||||||
|
description="cpp $in",
|
||||||
|
command=f"{cpp} $in {cppflags} -P -o $out"
|
||||||
|
)
|
||||||
|
|
||||||
ninja.rule("cc",
|
ninja.rule("cc",
|
||||||
description="cc($version) $in $cflags",
|
description="cc($version) $in $cflags",
|
||||||
command=f"bash -o pipefail -c '{cpp} {CPPFLAGS} {cppflags} -MD -MF $out.d $in -o - | {iconv} | {cc1} {cflags} $cflags -o - | {nu64as} {ASFLAGS} - -o $out'",
|
command=f"bash -o pipefail -c '{cpp} {CPPFLAGS} {cppflags} -MD -MF $out.d $in -o - | {iconv} | {cc1} {cflags} $cflags -o - | {nu64as} {ASFLAGS} - -o $out'",
|
||||||
@ -216,6 +220,9 @@ class Configure:
|
|||||||
def build_path(self) -> Path:
|
def build_path(self) -> Path:
|
||||||
return Path(f"ver/{self.version}/build")
|
return Path(f"ver/{self.version}/build")
|
||||||
|
|
||||||
|
def undefined_syms_path(self) -> Path:
|
||||||
|
return self.build_path() / "undefined_syms.txt"
|
||||||
|
|
||||||
def elf_path(self) -> Path:
|
def elf_path(self) -> Path:
|
||||||
# TODO: read basename and build_path from splat.yaml
|
# TODO: read basename and build_path from splat.yaml
|
||||||
return Path(f"ver/{self.version}/build/papermario.elf")
|
return Path(f"ver/{self.version}/build/papermario.elf")
|
||||||
@ -568,12 +575,19 @@ class Configure:
|
|||||||
else:
|
else:
|
||||||
raise Exception(f"don't know how to build {seg.__class__.__name__} '{seg.name}'")
|
raise Exception(f"don't know how to build {seg.__class__.__name__} '{seg.name}'")
|
||||||
|
|
||||||
|
# Run undefined_syms through cpp
|
||||||
|
ninja.build(
|
||||||
|
str(self.undefined_syms_path()),
|
||||||
|
"cpp",
|
||||||
|
str(self.version_path / "undefined_syms.txt")
|
||||||
|
)
|
||||||
|
|
||||||
# Build elf, z64, ok
|
# Build elf, z64, ok
|
||||||
ninja.build(
|
ninja.build(
|
||||||
str(self.elf_path()),
|
str(self.elf_path()),
|
||||||
"ld",
|
"ld",
|
||||||
str(self.linker_script_path()),
|
str(self.linker_script_path()),
|
||||||
implicit=[str(obj) for obj in built_objects],
|
implicit=[str(obj) for obj in built_objects] + [str(self.undefined_syms_path())],
|
||||||
variables={ "version": self.version, "mapfile": str(self.map_path()) },
|
variables={ "version": self.version, "mapfile": str(self.map_path()) },
|
||||||
)
|
)
|
||||||
ninja.build(
|
ninja.build(
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
[subrepo]
|
[subrepo]
|
||||||
remote = https://github.com/ethteck/splat.git
|
remote = https://github.com/ethteck/splat.git
|
||||||
branch = master
|
branch = master
|
||||||
commit = 265b837554469fddfdd8155c872298a7b3244183
|
commit = 25b848a230458b50c0d9124cf9af872cebb44ef2
|
||||||
parent = 99ddf7cb0eb0611d29fd8038e45b17e4512a1722
|
parent = 08f58ae5d9d266caf805fdee477008f88e84f1f9
|
||||||
method = merge
|
method = merge
|
||||||
cmdver = 0.4.3
|
cmdver = 0.4.3
|
||||||
|
@ -67,14 +67,19 @@ class N64SegC(N64SegCodeSubsegment):
|
|||||||
|
|
||||||
def split(self, rom_bytes: bytes):
|
def split(self, rom_bytes: bytes):
|
||||||
if not self.rom_start == self.rom_end:
|
if not self.rom_start == self.rom_end:
|
||||||
|
|
||||||
asm_out_dir = options.get_asm_path() / "nonmatchings" / self.dir
|
asm_out_dir = options.get_asm_path() / "nonmatchings" / self.dir
|
||||||
asm_out_dir.mkdir(parents=True, exist_ok=True)
|
asm_out_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
for func in self.funcs_text:
|
for func in self.funcs_text:
|
||||||
func_name = self.parent.get_symbol(func, type="func", local_only=True).name
|
func_name = self.parent.get_symbol(func, type="func", local_only=True).name
|
||||||
|
|
||||||
if func_name in self.global_asm_funcs:
|
if options.get_compiler() == "GCC":
|
||||||
self.create_c_asm_file(self.funcs_text, func, asm_out_dir, func_name)
|
if func_name not in self.defined_funcs:
|
||||||
|
self.create_c_asm_file(self.funcs_text, func, asm_out_dir, func_name)
|
||||||
|
else:
|
||||||
|
if func_name in self.global_asm_funcs:
|
||||||
|
self.create_c_asm_file(self.funcs_text, func, asm_out_dir, func_name)
|
||||||
|
|
||||||
c_path = self.out_path()
|
c_path = self.out_path()
|
||||||
if c_path:
|
if c_path:
|
||||||
@ -149,12 +154,19 @@ class N64SegC(N64SegCodeSubsegment):
|
|||||||
|
|
||||||
for func in funcs_text:
|
for func in funcs_text:
|
||||||
func_name = self.parent.get_symbol(func, type="func", local_only=True).name
|
func_name = self.parent.get_symbol(func, type="func", local_only=True).name
|
||||||
if options.get_compiler() == "GCC":
|
|
||||||
c_lines.append("INCLUDE_ASM(s32, \"{}\", {});".format(self.name, func_name))
|
# Terrible hack to "auto-decompile" empty functions
|
||||||
|
# TODO move disassembly into funcs_text or somewhere we can access it from here
|
||||||
|
if len(funcs_text[func][0]) == 3 and funcs_text[func][0][1][-3:] == "$ra" and funcs_text[func][0][2][-3:] == "nop":
|
||||||
|
c_lines.append("void " + func_name + "(void) {")
|
||||||
|
c_lines.append("}")
|
||||||
else:
|
else:
|
||||||
asm_outpath = Path(os.path.join(asm_out_dir, self.name, func_name + ".s"))
|
if options.get_compiler() == "GCC":
|
||||||
rel_asm_outpath = os.path.relpath(asm_outpath, options.get_base_path())
|
c_lines.append("INCLUDE_ASM(s32, \"{}\", {});".format(self.name, func_name))
|
||||||
c_lines.append(f"#pragma GLOBAL_ASM(\"{rel_asm_outpath}\")")
|
else:
|
||||||
|
asm_outpath = Path(os.path.join(asm_out_dir, self.dir, self.name, func_name + ".s"))
|
||||||
|
rel_asm_outpath = os.path.relpath(asm_outpath, options.get_base_path())
|
||||||
|
c_lines.append(f"#pragma GLOBAL_ASM(\"{rel_asm_outpath}\")")
|
||||||
c_lines.append("")
|
c_lines.append("")
|
||||||
|
|
||||||
Path(c_path).parent.mkdir(parents=True, exist_ok=True)
|
Path(c_path).parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
@ -233,18 +233,20 @@ def main(config_path, base_dir, target_path, modes, verbose, use_cache=True):
|
|||||||
linker_writer.save_symbol_header()
|
linker_writer.save_symbol_header()
|
||||||
|
|
||||||
# Write undefined_funcs_auto.txt
|
# Write undefined_funcs_auto.txt
|
||||||
to_write = [s for s in symbols.all_symbols if s.referenced and not s.defined and not s.dead and s.type == "func"]
|
if options.get_create_undefined_funcs_auto():
|
||||||
if len(to_write) > 0:
|
to_write = [s for s in symbols.all_symbols if s.referenced and not s.defined and not s.dead and s.type == "func"]
|
||||||
with open(options.get_undefined_funcs_auto_path(), "w", newline="\n") as f:
|
if len(to_write) > 0:
|
||||||
for symbol in to_write:
|
with open(options.get_undefined_funcs_auto_path(), "w", newline="\n") as f:
|
||||||
f.write(f"{symbol.name} = 0x{symbol.vram_start:X};\n")
|
for symbol in to_write:
|
||||||
|
f.write(f"{symbol.name} = 0x{symbol.vram_start:X};\n")
|
||||||
|
|
||||||
# write undefined_syms_auto.txt
|
# write undefined_syms_auto.txt
|
||||||
to_write = [s for s in symbols.all_symbols if s.referenced and not s.defined and not s.dead and not s.type == "func"]
|
if options.get_create_undefined_syms_auto():
|
||||||
if len(to_write) > 0:
|
to_write = [s for s in symbols.all_symbols if s.referenced and not s.defined and not s.dead and not s.type == "func"]
|
||||||
with open(options.get_undefined_syms_auto_path(), "w", newline="\n") as f:
|
if len(to_write) > 0:
|
||||||
for symbol in to_write:
|
with open(options.get_undefined_syms_auto_path(), "w", newline="\n") as f:
|
||||||
f.write(f"{symbol.name} = 0x{symbol.vram_start:X};\n")
|
for symbol in to_write:
|
||||||
|
f.write(f"{symbol.name} = 0x{symbol.vram_start:X};\n")
|
||||||
|
|
||||||
# print warnings during split
|
# print warnings during split
|
||||||
for segment in all_segments:
|
for segment in all_segments:
|
||||||
|
@ -62,9 +62,15 @@ def get_asm_path() -> Path:
|
|||||||
def get_cache_path():
|
def get_cache_path():
|
||||||
return get_base_path() / opts.get("cache_path", ".splat_cache")
|
return get_base_path() / opts.get("cache_path", ".splat_cache")
|
||||||
|
|
||||||
|
def get_create_undefined_funcs_auto() -> bool:
|
||||||
|
return opts.get("create_undefined_funcs_auto", True)
|
||||||
|
|
||||||
def get_undefined_funcs_auto_path():
|
def get_undefined_funcs_auto_path():
|
||||||
return get_base_path() / opts.get("undefined_funcs_auto_path", "undefined_funcs_auto.txt")
|
return get_base_path() / opts.get("undefined_funcs_auto_path", "undefined_funcs_auto.txt")
|
||||||
|
|
||||||
|
def get_create_undefined_syms_auto() -> bool:
|
||||||
|
return opts.get("create_undefined_syms_auto", True)
|
||||||
|
|
||||||
def get_undefined_syms_auto_path():
|
def get_undefined_syms_auto_path():
|
||||||
return get_base_path() / opts.get("undefined_syms_auto_path", "undefined_syms_auto.txt")
|
return get_base_path() / opts.get("undefined_syms_auto_path", "undefined_syms_auto.txt")
|
||||||
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_01_SetPan
|
|
||||||
/* 282A4 8004CEA4 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 282A8 8004CEA8 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 282AC 8004CEAC 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 282B0 8004CEB0 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 282B4 8004CEB4 24020001 */ addiu $v0, $zero, 1
|
|
||||||
/* 282B8 8004CEB8 A0A20056 */ sb $v0, 0x56($a1)
|
|
||||||
/* 282BC 8004CEBC 03E00008 */ jr $ra
|
|
||||||
/* 282C0 8004CEC0 A0A3009B */ sb $v1, 0x9b($a1)
|
|
@ -1,15 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_05
|
|
||||||
/* 2840C 8004D00C 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 28410 8004D010 80430000 */ lb $v1, ($v0)
|
|
||||||
/* 28414 8004D014 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28418 8004D018 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 2841C 8004D01C 00031040 */ sll $v0, $v1, 1
|
|
||||||
/* 28420 8004D020 00431021 */ addu $v0, $v0, $v1
|
|
||||||
/* 28424 8004D024 000210C0 */ sll $v0, $v0, 3
|
|
||||||
/* 28428 8004D028 00431021 */ addu $v0, $v0, $v1
|
|
||||||
/* 2842C 8004D02C 00021080 */ sll $v0, $v0, 2
|
|
||||||
/* 28430 8004D030 03E00008 */ jr $ra
|
|
||||||
/* 28434 8004D034 A4A20092 */ sh $v0, 0x92($a1)
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_06
|
|
||||||
/* 28438 8004D038 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 2843C 8004D03C 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 28440 8004D040 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28444 8004D044 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 28448 8004D048 03E00008 */ jr $ra
|
|
||||||
/* 2844C 8004D04C A0A30094 */ sb $v1, 0x94($a1)
|
|
@ -1,11 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_09_StartLoop
|
|
||||||
/* 28514 8004D114 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 28518 8004D118 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 2851C 8004D11C 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28520 8004D120 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 28524 8004D124 ACA20088 */ sw $v0, 0x88($a1)
|
|
||||||
/* 28528 8004D128 03E00008 */ jr $ra
|
|
||||||
/* 2852C 8004D12C A0A3008C */ sb $v1, 0x8c($a1)
|
|
@ -1,14 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_0B
|
|
||||||
/* 2855C 8004D15C 94A20090 */ lhu $v0, 0x90($a1)
|
|
||||||
/* 28560 8004D160 10400005 */ beqz $v0, .L8004D178
|
|
||||||
/* 28564 8004D164 24030003 */ addiu $v1, $zero, 3
|
|
||||||
/* 28568 8004D168 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 2856C 8004D16C A4A3008E */ sh $v1, 0x8e($a1)
|
|
||||||
/* 28570 8004D170 2442FFFF */ addiu $v0, $v0, -1
|
|
||||||
/* 28574 8004D174 ACA20000 */ sw $v0, ($a1)
|
|
||||||
.L8004D178:
|
|
||||||
/* 28578 8004D178 03E00008 */ jr $ra
|
|
||||||
/* 2857C 8004D17C 00000000 */ nop
|
|
@ -1,7 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_11_Restart
|
|
||||||
/* 28710 8004D310 8CA20050 */ lw $v0, 0x50($a1)
|
|
||||||
/* 28714 8004D314 03E00008 */ jr $ra
|
|
||||||
/* 28718 8004D318 ACA20000 */ sw $v0, ($a1)
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_13
|
|
||||||
/* 28724 8004D324 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 28728 8004D328 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 2872C 8004D32C 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28730 8004D330 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 28734 8004D334 03E00008 */ jr $ra
|
|
||||||
/* 28738 8004D338 A0A300A1 */ sb $v1, 0xa1($a1)
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_14
|
|
||||||
/* 2873C 8004D33C 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 28740 8004D340 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 28744 8004D344 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28748 8004D348 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 2874C 8004D34C 03E00008 */ jr $ra
|
|
||||||
/* 28750 8004D350 A0A300A2 */ sb $v1, 0xa2($a1)
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel snd_SEFCmd_15
|
|
||||||
/* 28754 8004D354 8CA20000 */ lw $v0, ($a1)
|
|
||||||
/* 28758 8004D358 90430000 */ lbu $v1, ($v0)
|
|
||||||
/* 2875C 8004D35C 24420001 */ addiu $v0, $v0, 1
|
|
||||||
/* 28760 8004D360 ACA20000 */ sw $v0, ($a1)
|
|
||||||
/* 28764 8004D364 03E00008 */ jr $ra
|
|
||||||
/* 28768 8004D368 A0A300A3 */ sb $v1, 0xa3($a1)
|
|
@ -1,68 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_8003E0D4
|
|
||||||
/* 194D4 8003E0D4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
||||||
/* 194D8 8003E0D8 AFB00010 */ sw $s0, 0x10($sp)
|
|
||||||
/* 194DC 8003E0DC 0080802D */ daddu $s0, $a0, $zero
|
|
||||||
/* 194E0 8003E0E0 3C048007 */ lui $a0, %hi(D_80077C38)
|
|
||||||
/* 194E4 8003E0E4 24847C38 */ addiu $a0, $a0, %lo(D_80077C38)
|
|
||||||
/* 194E8 8003E0E8 AFBF0014 */ sw $ra, 0x14($sp)
|
|
||||||
/* 194EC 8003E0EC F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
||||||
/* 194F0 8003E0F0 94820000 */ lhu $v0, ($a0)
|
|
||||||
/* 194F4 8003E0F4 24430001 */ addiu $v1, $v0, 1
|
|
||||||
/* 194F8 8003E0F8 00021400 */ sll $v0, $v0, 0x10
|
|
||||||
/* 194FC 8003E0FC 00021403 */ sra $v0, $v0, 0x10
|
|
||||||
/* 19500 8003E100 28420004 */ slti $v0, $v0, 4
|
|
||||||
/* 19504 8003E104 1440002D */ bnez $v0, .L8003E1BC
|
|
||||||
/* 19508 8003E108 A4830000 */ sh $v1, ($a0)
|
|
||||||
/* 1950C 8003E10C C60C000C */ lwc1 $f12, 0xc($s0)
|
|
||||||
/* 19510 8003E110 A4800000 */ sh $zero, ($a0)
|
|
||||||
/* 19514 8003E114 0C00A6C9 */ jal clamp_angle
|
|
||||||
/* 19518 8003E118 46006307 */ neg.s $f12, $f12
|
|
||||||
/* 1951C 8003E11C 3C0140C9 */ lui $at, 0x40c9
|
|
||||||
/* 19520 8003E120 34210FD0 */ ori $at, $at, 0xfd0
|
|
||||||
/* 19524 8003E124 44811000 */ mtc1 $at, $f2
|
|
||||||
/* 19528 8003E128 00000000 */ nop
|
|
||||||
/* 1952C 8003E12C 46020502 */ mul.s $f20, $f0, $f2
|
|
||||||
/* 19530 8003E130 00000000 */ nop
|
|
||||||
/* 19534 8003E134 3C0143B4 */ lui $at, 0x43b4
|
|
||||||
/* 19538 8003E138 44810000 */ mtc1 $at, $f0
|
|
||||||
/* 1953C 8003E13C 00000000 */ nop
|
|
||||||
/* 19540 8003E140 4600A503 */ div.s $f20, $f20, $f0
|
|
||||||
/* 19544 8003E144 0C00A85B */ jal sin_rad
|
|
||||||
/* 19548 8003E148 4600A306 */ mov.s $f12, $f20
|
|
||||||
/* 1954C 8003E14C 4600A306 */ mov.s $f12, $f20
|
|
||||||
/* 19550 8003E150 0C00A874 */ jal cos_rad
|
|
||||||
/* 19554 8003E154 46000506 */ mov.s $f20, $f0
|
|
||||||
/* 19558 8003E158 860200A6 */ lh $v0, 0xa6($s0)
|
|
||||||
/* 1955C 8003E15C 44821000 */ mtc1 $v0, $f2
|
|
||||||
/* 19560 8003E160 00000000 */ nop
|
|
||||||
/* 19564 8003E164 468010A0 */ cvt.s.w $f2, $f2
|
|
||||||
/* 19568 8003E168 46141502 */ mul.s $f20, $f2, $f20
|
|
||||||
/* 1956C 8003E16C 00000000 */ nop
|
|
||||||
/* 19570 8003E170 46001082 */ mul.s $f2, $f2, $f0
|
|
||||||
/* 19574 8003E174 00000000 */ nop
|
|
||||||
/* 19578 8003E178 3C013E4C */ lui $at, 0x3e4c
|
|
||||||
/* 1957C 8003E17C 3421CCCD */ ori $at, $at, 0xcccd
|
|
||||||
/* 19580 8003E180 44810000 */ mtc1 $at, $f0
|
|
||||||
/* 19584 8003E184 00000000 */ nop
|
|
||||||
/* 19588 8003E188 4600A502 */ mul.s $f20, $f20, $f0
|
|
||||||
/* 1958C 8003E18C 00000000 */ nop
|
|
||||||
/* 19590 8003E190 46001082 */ mul.s $f2, $f2, $f0
|
|
||||||
/* 19594 8003E194 00000000 */ nop
|
|
||||||
/* 19598 8003E198 C6000038 */ lwc1 $f0, 0x38($s0)
|
|
||||||
/* 1959C 8003E19C 46140000 */ add.s $f0, $f0, $f20
|
|
||||||
/* 195A0 8003E1A0 44050000 */ mfc1 $a1, $f0
|
|
||||||
/* 195A4 8003E1A4 C6000040 */ lwc1 $f0, 0x40($s0)
|
|
||||||
/* 195A8 8003E1A8 46020000 */ add.s $f0, $f0, $f2
|
|
||||||
/* 195AC 8003E1AC 3C064220 */ lui $a2, 0x4220
|
|
||||||
/* 195B0 8003E1B0 44070000 */ mfc1 $a3, $f0
|
|
||||||
/* 195B4 8003E1B4 0C01C244 */ jal playFX_2C
|
|
||||||
/* 195B8 8003E1B8 24040001 */ addiu $a0, $zero, 1
|
|
||||||
.L8003E1BC:
|
|
||||||
/* 195BC 8003E1BC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
||||||
/* 195C0 8003E1C0 8FB00010 */ lw $s0, 0x10($sp)
|
|
||||||
/* 195C4 8003E1C4 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
||||||
/* 195C8 8003E1C8 03E00008 */ jr $ra
|
|
||||||
/* 195CC 8003E1CC 27BD0020 */ addiu $sp, $sp, 0x20
|
|
@ -1,97 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel npc_do_gravity
|
|
||||||
/* 14A88 80039688 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
||||||
/* 14A8C 8003968C AFB00030 */ sw $s0, 0x30($sp)
|
|
||||||
/* 14A90 80039690 0080802D */ daddu $s0, $a0, $zero
|
|
||||||
/* 14A94 80039694 AFBF0034 */ sw $ra, 0x34($sp)
|
|
||||||
/* 14A98 80039698 F7B40038 */ sdc1 $f20, 0x38($sp)
|
|
||||||
/* 14A9C 8003969C 8E030000 */ lw $v1, ($s0)
|
|
||||||
/* 14AA0 800396A0 30620200 */ andi $v0, $v1, 0x200
|
|
||||||
/* 14AA4 800396A4 1040004B */ beqz $v0, .L800397D4
|
|
||||||
/* 14AA8 800396A8 30620800 */ andi $v0, $v1, 0x800
|
|
||||||
/* 14AAC 800396AC 14400047 */ bnez $v0, .L800397CC
|
|
||||||
/* 14AB0 800396B0 2402EFFF */ addiu $v0, $zero, -0x1001
|
|
||||||
/* 14AB4 800396B4 3C013F80 */ lui $at, 0x3f80
|
|
||||||
/* 14AB8 800396B8 44810000 */ mtc1 $at, $f0
|
|
||||||
/* 14ABC 800396BC C602001C */ lwc1 $f2, 0x1c($s0)
|
|
||||||
/* 14AC0 800396C0 C6040038 */ lwc1 $f4, 0x38($s0)
|
|
||||||
/* 14AC4 800396C4 46001081 */ sub.s $f2, $f2, $f0
|
|
||||||
/* 14AC8 800396C8 E6000014 */ swc1 $f0, 0x14($s0)
|
|
||||||
/* 14ACC 800396CC C600003C */ lwc1 $f0, 0x3c($s0)
|
|
||||||
/* 14AD0 800396D0 E7A40020 */ swc1 $f4, 0x20($sp)
|
|
||||||
/* 14AD4 800396D4 3C014150 */ lui $at, 0x4150
|
|
||||||
/* 14AD8 800396D8 44812000 */ mtc1 $at, $f4
|
|
||||||
/* 14ADC 800396DC 46020000 */ add.s $f0, $f0, $f2
|
|
||||||
/* 14AE0 800396E0 3C030400 */ lui $v1, 0x400
|
|
||||||
/* 14AE4 800396E4 E602001C */ swc1 $f2, 0x1c($s0)
|
|
||||||
/* 14AE8 800396E8 E600003C */ swc1 $f0, 0x3c($s0)
|
|
||||||
/* 14AEC 800396EC 3C014180 */ lui $at, 0x4180
|
|
||||||
/* 14AF0 800396F0 44810000 */ mtc1 $at, $f0
|
|
||||||
/* 14AF4 800396F4 46001085 */ abs.s $f2, $f2
|
|
||||||
/* 14AF8 800396F8 46001080 */ add.s $f2, $f2, $f0
|
|
||||||
/* 14AFC 800396FC C600003C */ lwc1 $f0, 0x3c($s0)
|
|
||||||
/* 14B00 80039700 C6060040 */ lwc1 $f6, 0x40($s0)
|
|
||||||
/* 14B04 80039704 46040000 */ add.s $f0, $f0, $f4
|
|
||||||
/* 14B08 80039708 E7A60028 */ swc1 $f6, 0x28($sp)
|
|
||||||
/* 14B0C 8003970C E7A2002C */ swc1 $f2, 0x2c($sp)
|
|
||||||
/* 14B10 80039710 E7A00024 */ swc1 $f0, 0x24($sp)
|
|
||||||
/* 14B14 80039714 8E020000 */ lw $v0, ($s0)
|
|
||||||
/* 14B18 80039718 00431024 */ and $v0, $v0, $v1
|
|
||||||
/* 14B1C 8003971C 1440000A */ bnez $v0, .L80039748
|
|
||||||
/* 14B20 80039720 46001506 */ mov.s $f20, $f2
|
|
||||||
/* 14B24 80039724 27A50020 */ addiu $a1, $sp, 0x20
|
|
||||||
/* 14B28 80039728 27A60024 */ addiu $a2, $sp, 0x24
|
|
||||||
/* 14B2C 8003972C 27A2002C */ addiu $v0, $sp, 0x2c
|
|
||||||
/* 14B30 80039730 AFA20010 */ sw $v0, 0x10($sp)
|
|
||||||
/* 14B34 80039734 8E040080 */ lw $a0, 0x80($s0)
|
|
||||||
/* 14B38 80039738 0C0372DF */ jal npc_raycast_down_sides
|
|
||||||
/* 14B3C 8003973C 27A70028 */ addiu $a3, $sp, 0x28
|
|
||||||
/* 14B40 80039740 0800E5E0 */ j .L80039780
|
|
||||||
/* 14B44 80039744 00000000 */ nop
|
|
||||||
.L80039748:
|
|
||||||
/* 14B48 80039748 27A2002C */ addiu $v0, $sp, 0x2c
|
|
||||||
/* 14B4C 8003974C AFA20010 */ sw $v0, 0x10($sp)
|
|
||||||
/* 14B50 80039750 C600000C */ lwc1 $f0, 0xc($s0)
|
|
||||||
/* 14B54 80039754 27A50020 */ addiu $a1, $sp, 0x20
|
|
||||||
/* 14B58 80039758 E7A00014 */ swc1 $f0, 0x14($sp)
|
|
||||||
/* 14B5C 8003975C 860200A6 */ lh $v0, 0xa6($s0)
|
|
||||||
/* 14B60 80039760 27A60024 */ addiu $a2, $sp, 0x24
|
|
||||||
/* 14B64 80039764 44820000 */ mtc1 $v0, $f0
|
|
||||||
/* 14B68 80039768 00000000 */ nop
|
|
||||||
/* 14B6C 8003976C 46800020 */ cvt.s.w $f0, $f0
|
|
||||||
/* 14B70 80039770 E7A00018 */ swc1 $f0, 0x18($sp)
|
|
||||||
/* 14B74 80039774 8E040080 */ lw $a0, 0x80($s0)
|
|
||||||
/* 14B78 80039778 0C0371DE */ jal npc_raycast_down_ahead
|
|
||||||
/* 14B7C 8003977C 27A70028 */ addiu $a3, $sp, 0x28
|
|
||||||
.L80039780:
|
|
||||||
/* 14B80 80039780 10400010 */ beqz $v0, .L800397C4
|
|
||||||
/* 14B84 80039784 00000000 */ nop
|
|
||||||
/* 14B88 80039788 C7A0002C */ lwc1 $f0, 0x2c($sp)
|
|
||||||
/* 14B8C 8003978C 4614003E */ c.le.s $f0, $f20
|
|
||||||
/* 14B90 80039790 00000000 */ nop
|
|
||||||
/* 14B94 80039794 4500000B */ bc1f .L800397C4
|
|
||||||
/* 14B98 80039798 00000000 */ nop
|
|
||||||
/* 14B9C 8003979C 8E020000 */ lw $v0, ($s0)
|
|
||||||
/* 14BA0 800397A0 AE00001C */ sw $zero, 0x1c($s0)
|
|
||||||
/* 14BA4 800397A4 C7A00024 */ lwc1 $f0, 0x24($sp)
|
|
||||||
/* 14BA8 800397A8 3C038011 */ lui $v1, %hi(D_8010C97A)
|
|
||||||
/* 14BAC 800397AC 9463C97A */ lhu $v1, %lo(D_8010C97A)($v1)
|
|
||||||
/* 14BB0 800397B0 34421000 */ ori $v0, $v0, 0x1000
|
|
||||||
/* 14BB4 800397B4 AE020000 */ sw $v0, ($s0)
|
|
||||||
/* 14BB8 800397B8 E600003C */ swc1 $f0, 0x3c($s0)
|
|
||||||
/* 14BBC 800397BC 0800E5F5 */ j .L800397D4
|
|
||||||
/* 14BC0 800397C0 A6030084 */ sh $v1, 0x84($s0)
|
|
||||||
.L800397C4:
|
|
||||||
/* 14BC4 800397C4 8E020000 */ lw $v0, ($s0)
|
|
||||||
/* 14BC8 800397C8 2403EFFF */ addiu $v1, $zero, -0x1001
|
|
||||||
.L800397CC:
|
|
||||||
/* 14BCC 800397CC 00431024 */ and $v0, $v0, $v1
|
|
||||||
/* 14BD0 800397D0 AE020000 */ sw $v0, ($s0)
|
|
||||||
.L800397D4:
|
|
||||||
/* 14BD4 800397D4 8FBF0034 */ lw $ra, 0x34($sp)
|
|
||||||
/* 14BD8 800397D8 8FB00030 */ lw $s0, 0x30($sp)
|
|
||||||
/* 14BDC 800397DC D7B40038 */ ldc1 $f20, 0x38($sp)
|
|
||||||
/* 14BE0 800397E0 03E00008 */ jr $ra
|
|
||||||
/* 14BE4 800397E4 27BD0040 */ addiu $sp, $sp, 0x40
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel npc_set_palswap_1
|
|
||||||
/* 1684C 8003B44C 8FA20010 */ lw $v0, 0x10($sp)
|
|
||||||
/* 16850 8003B450 A4850308 */ sh $a1, 0x308($a0)
|
|
||||||
/* 16854 8003B454 A486030A */ sh $a2, 0x30a($a0)
|
|
||||||
/* 16858 8003B458 A487030C */ sh $a3, 0x30c($a0)
|
|
||||||
/* 1685C 8003B45C 03E00008 */ jr $ra
|
|
||||||
/* 16860 8003B460 A482030E */ sh $v0, 0x30e($a0)
|
|
@ -1,10 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel npc_set_palswap_2
|
|
||||||
/* 16864 8003B464 8FA20010 */ lw $v0, 0x10($sp)
|
|
||||||
/* 16868 8003B468 A4850310 */ sh $a1, 0x310($a0)
|
|
||||||
/* 1686C 8003B46C A4860312 */ sh $a2, 0x312($a0)
|
|
||||||
/* 16870 8003B470 A4870314 */ sh $a3, 0x314($a0)
|
|
||||||
/* 16874 8003B474 03E00008 */ jr $ra
|
|
||||||
/* 16878 8003B478 A4820316 */ sh $v0, 0x316($a0)
|
|
@ -1,12 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel nuContQueryRead
|
|
||||||
/* 3BD20 80060920 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
||||||
/* 3BD24 80060924 24040103 */ addiu $a0, $zero, 0x103
|
|
||||||
/* 3BD28 80060928 AFBF0010 */ sw $ra, 0x10($sp)
|
|
||||||
/* 3BD2C 8006092C 0C00B3CA */ jal nuSiSendMesg
|
|
||||||
/* 3BD30 80060930 0000282D */ daddu $a1, $zero, $zero
|
|
||||||
/* 3BD34 80060934 8FBF0010 */ lw $ra, 0x10($sp)
|
|
||||||
/* 3BD38 80060938 03E00008 */ jr $ra
|
|
||||||
/* 3BD3C 8006093C 27BD0018 */ addiu $sp, $sp, 0x18
|
|
@ -1,104 +0,0 @@
|
|||||||
dead_atan2 = 0x8002AF70;
|
|
||||||
D_80100060 = 0x80100060;
|
|
||||||
D_801000A0 = 0x801000A0;
|
|
||||||
dead_get_variable = 0x802D4E8C;
|
|
||||||
dead_set_variable = 0x802D5468;
|
|
||||||
dead_get_float_variable = 0x802D57FC;
|
|
||||||
dead_cos_rad = 0x8002B4C0;
|
|
||||||
dead_set_float_variable = 0x802D5A10;
|
|
||||||
dead_playFX_11 = 0x80075170;
|
|
||||||
dead_gPlayerStatusPtr = 0x800FFC90;
|
|
||||||
dead_set_main_pan_u = 0x80126064;
|
|
||||||
dead_set_main_pan_v = 0x8012607C;
|
|
||||||
dead_set_aux_pan_u = 0x80126094;
|
|
||||||
dead_set_aux_pan_v = 0x801260AC;
|
|
||||||
dead_get_npc_unsafe = 0x8003E4BC;
|
|
||||||
func_80075110 = 0x80075110;
|
|
||||||
func_80042AF4 = 0x80042AF4;
|
|
||||||
func_8002B1C4 = 0x8002B1C4;
|
|
||||||
func_8002AF18 = 0x8002AF18;
|
|
||||||
dead_clamp_angle = 0x8002AE14;
|
|
||||||
func_8004D800 = 0x8004D800;
|
|
||||||
func_8002B28C = 0x8002B28C;
|
|
||||||
func_8004D9C0 = 0x8004D9C0;
|
|
||||||
func_8004DAD8 = 0x8004DAD8;
|
|
||||||
func_8004DF64 = 0x8004DF64;
|
|
||||||
func_8004E024 = 0x8004E024;
|
|
||||||
func_8004E25C = 0x8004E25C;
|
|
||||||
func_8004E2EC = 0x8004E2EC;
|
|
||||||
func_8004E39C = 0x8004E39C;
|
|
||||||
func_8004E544 = 0x8004E544;
|
|
||||||
func_8004E808 = 0x8004E808;
|
|
||||||
func_8004EB8C = 0x8004EB8C;
|
|
||||||
func_8004D1A4 = 0x8004D1A4;
|
|
||||||
func_8003E424 = 0x8003E424;
|
|
||||||
func_80067040 = 0x80067040;
|
|
||||||
func_800E5304 = 0x800E5304;
|
|
||||||
func_800E423C = 0x800E423C;
|
|
||||||
func_8004D0C4 = 0x8004D0C4;
|
|
||||||
func_8004D8E0 = 0x8004D8E0;
|
|
||||||
dead_rand_int = 0x8002ACEC;
|
|
||||||
func_8003E534 = 0x8003E534;
|
|
||||||
func_8002BFD4 = 0x8002BFD4;
|
|
||||||
func_8002C01C = 0x8002C01C;
|
|
||||||
func_8002B5DC = 0x8002B5DC;
|
|
||||||
func_8002B640 = 0x8002B640;
|
|
||||||
func_800F1EF8 = 0x800F1EF8;
|
|
||||||
func_8015704C = 0x8015704C;
|
|
||||||
func_80077C30 = 0x80077C30;
|
|
||||||
func_8002B6A4 = 0x8002B6A4;
|
|
||||||
func_80077930 = 0x80077930;
|
|
||||||
func_8011AAB4 = 0x8011AAB4;
|
|
||||||
func_8002B21C = 0x8002B21C;
|
|
||||||
func_802E2A80 = 0x802E2A80;
|
|
||||||
func_802E2B74 = 0x802E2B74;
|
|
||||||
func_80128510 = 0x80128510;
|
|
||||||
func_8012DFE8 = 0x8012DFE8;
|
|
||||||
func_8002AA2C = 0x8002AA2C;
|
|
||||||
func_80059AC8 = 0x80059AC8;
|
|
||||||
func_80118BB0 = 0x80118BB0;
|
|
||||||
func_80077BD0 = 0x80077BD0;
|
|
||||||
func_80041080 = 0x80041080;
|
|
||||||
func_800F1D9C = 0x800F1D9C;
|
|
||||||
func_800F1730 = 0x800F1730;
|
|
||||||
func_8003C43C = 0x8003C43C;
|
|
||||||
func_800F1718 = 0x800F1718;
|
|
||||||
func_800F16F4 = 0x800F16F4;
|
|
||||||
func_80125270 = 0x80125270;
|
|
||||||
func_80124F44 = 0x80124F44;
|
|
||||||
func_8006CAC0 = 0x8006CAC0;
|
|
||||||
func_800775D0 = 0x800775D0;
|
|
||||||
func_802F3B00 = 0x802F3B00;
|
|
||||||
func_800FCD0C = 0x800FCD0C;
|
|
||||||
func_800F9260 = 0x800F9260;
|
|
||||||
func_800F93E8 = 0x800F93E8;
|
|
||||||
func_800F2D5C = 0x800F2D5C;
|
|
||||||
func_80130C74 = 0x80130C74;
|
|
||||||
func_800769D0 = 0x800769D0;
|
|
||||||
func_80075E30 = 0x80075E30;
|
|
||||||
func_8002B524 = 0x8002B524;
|
|
||||||
func_8002BF18 = 0x8002BF18;
|
|
||||||
func_80076970 = 0x80076970;
|
|
||||||
func_80144200 = 0x80144200;
|
|
||||||
func_80144178 = 0x80144178;
|
|
||||||
func_800E53AC = 0x800E53AC;
|
|
||||||
func_8013CF98 = 0x8013CF98;
|
|
||||||
func_80066FE0 = 0x80066FE0;
|
|
||||||
func_8002A910 = 0x8002A910;
|
|
||||||
func_8005F128 = 0x8005F128;
|
|
||||||
func_800F7278 = 0x800F7278;
|
|
||||||
func_800F2E98 = 0x800F2E98;
|
|
||||||
func_8003ED50 = 0x8003ED50;
|
|
||||||
func_8003E5E8 = 0x8003E5E8;
|
|
||||||
func_8002FCBC = 0x8002FCBC;
|
|
||||||
func_801574DC = 0x801574DC;
|
|
||||||
func_80157118 = 0x80157118;
|
|
||||||
func_8005F238 = 0x8005F238;
|
|
||||||
func_80074070 = 0x80074070;
|
|
||||||
func_8002BF68 = 0x8002BF68;
|
|
||||||
func_80130C64 = 0x80130C64;
|
|
||||||
func_8002B45C = 0x8002B45C;
|
|
||||||
func_801266F8 = 0x801266F8;
|
|
||||||
func_80126734 = 0x80126734;
|
|
||||||
func_80144194 = 0x80144194;
|
|
||||||
dead_gItemTable = 0x8008D2C0;
|
|
@ -1,453 +0,0 @@
|
|||||||
nuScPreNMIFlag = 0x8009A5B0;
|
|
||||||
D_8009A5B8 = 0x8009A5B8;
|
|
||||||
D_8009A5C0 = 0x8009A5C0;
|
|
||||||
D_8009A5C8 = 0x8009A5C8;
|
|
||||||
D_8009A5CC = 0x8009A5CC;
|
|
||||||
D_8009A5D0 = 0x8009A5D0;
|
|
||||||
D_8009A5D4 = 0x8009A5D4;
|
|
||||||
timeFreezeMode = 0x8009A5D8;
|
|
||||||
nuGfxZBuffer = 0x8009A5DC;
|
|
||||||
nuContDataLockKey = 0x8009A5E0;
|
|
||||||
D_8009A5E4 = 0x8009A5E4;
|
|
||||||
D_8009A5E8 = 0x8009A5E8;
|
|
||||||
D_8009A5EC = 0x8009A5EC;
|
|
||||||
nuGfxCfbCounter = 0x8009A5F0;
|
|
||||||
D_8009A5F4 = 0x8009A5F4;
|
|
||||||
nuGfxDisplay = 0x8009A5F8;
|
|
||||||
D_8009A5FC = 0x8009A5FC;
|
|
||||||
gGameState = 0x8009A600;
|
|
||||||
gNpcCount = 0x8009A604;
|
|
||||||
D_8009A606 = 0x8009A606;
|
|
||||||
D_8009A608 = 0x8009A608;
|
|
||||||
D_8009A60C = 0x8009A60C;
|
|
||||||
nuGfxUcode = 0x8009A610;
|
|
||||||
nuContNum = 0x8009A614;
|
|
||||||
nuGfxTaskSpool = 0x8009A618;
|
|
||||||
D_8009A61C = 0x8009A61C;
|
|
||||||
D_8009A620 = 0x8009A620;
|
|
||||||
D_8009A628 = 0x8009A628;
|
|
||||||
D_8009A62C = 0x8009A62C;
|
|
||||||
D_8009A630 = 0x8009A630;
|
|
||||||
gCurrentCamID = 0x8009A634;
|
|
||||||
nuPiCartHandle = 0x8009A638;
|
|
||||||
D_8009A63C = 0x8009A63C;
|
|
||||||
D_8009A640 = 0x8009A640;
|
|
||||||
nuGfxCfb_ptr = 0x8009A64C;
|
|
||||||
gOverrideFlags = 0x8009A650;
|
|
||||||
D_8009A654 = 0x8009A654;
|
|
||||||
nuGfxCfb = 0x8009A658;
|
|
||||||
D_8009A660 = 0x8009A660;
|
|
||||||
D_8009A664 = 0x8009A664;
|
|
||||||
D_8009A668 = 0x8009A668;
|
|
||||||
gMasterGfxPos = 0x8009A66C;
|
|
||||||
D_8009A670 = 0x8009A670;
|
|
||||||
gDisplayContext = 0x8009A674;
|
|
||||||
D_8009A678 = 0x8009A678;
|
|
||||||
D_8009A680 = 0x8009A680;
|
|
||||||
D_8009A690 = 0x8009A690;
|
|
||||||
D_8009A6A0 = 0x8009A6A0;
|
|
||||||
D_8009A6A2 = 0x8009A6A2;
|
|
||||||
D_8009A6A4 = 0x8009A6A4;
|
|
||||||
D_8009A6A6 = 0x8009A6A6;
|
|
||||||
D_8009A6B0 = 0x8009A6B0;
|
|
||||||
logicalSaveInfo = 0x8009BA30;
|
|
||||||
physicalSaveInfo = 0x8009BA50;
|
|
||||||
nextAvailableSavePage = 0x8009BA80;
|
|
||||||
gCurtainScale = 0x8009BA90;
|
|
||||||
gCurtainScaleGoal = 0x8009BA94;
|
|
||||||
gCurtainFade = 0x8009BA98;
|
|
||||||
gCurtainFadeGoal = 0x8009BA9C;
|
|
||||||
gCurtainDrawCallback = 0x8009BAA0;
|
|
||||||
D_8009BAA8 = 0x8009BAA8;
|
|
||||||
D_8009BB30 = 0x8009BB30;
|
|
||||||
D_8009C4E0 = 0x8009C4E0;
|
|
||||||
D_8009C4FC = 0x8009C4FC;
|
|
||||||
nuGfxTask_ptr = 0x8009C510;
|
|
||||||
taskDoneMsg = 0x8009C514;
|
|
||||||
swapBufMsg = 0x8009C516;
|
|
||||||
GfxTaskMgrThread = 0x8009C518;
|
|
||||||
D_8009E6D0 = 0x8009E6D0;
|
|
||||||
nuSiMesgBuf = 0x8009E6F0;
|
|
||||||
siMgrThread = 0x8009E710;
|
|
||||||
D_800A08C0 = 0x800A08C0;
|
|
||||||
D_800A08DC = 0x800A08DC;
|
|
||||||
D_800A08E0 = 0x800A08E0;
|
|
||||||
D_800A08E4 = 0x800A08E4;
|
|
||||||
D_800A08E8 = 0x800A08E8;
|
|
||||||
D_800A08EC = 0x800A08EC;
|
|
||||||
gameMode = 0x800A08F0;
|
|
||||||
D_800A0900 = 0x800A0900;
|
|
||||||
D_800A0904 = 0x800A0904;
|
|
||||||
D_800A0908 = 0x800A0908;
|
|
||||||
D_800A0910 = 0x800A0910;
|
|
||||||
D_800A0914 = 0x800A0914;
|
|
||||||
D_800A0918 = 0x800A0918;
|
|
||||||
D_800A091C = 0x800A091C;
|
|
||||||
D_800A0920 = 0x800A0920;
|
|
||||||
D_800A0921 = 0x800A0921;
|
|
||||||
D_800A0922 = 0x800A0922;
|
|
||||||
D_800A0924 = 0x800A0924;
|
|
||||||
D_800A0930 = 0x800A0930;
|
|
||||||
D_800A0931 = 0x800A0931;
|
|
||||||
D_800A0932 = 0x800A0932;
|
|
||||||
gMapTransitionAlpha = 0x800A0940;
|
|
||||||
D_800A0942 = 0x800A0942;
|
|
||||||
D_800A0944 = 0x800A0944;
|
|
||||||
D_800A0946 = 0x800A0946;
|
|
||||||
D_800A0948 = 0x800A0948;
|
|
||||||
D_800A0950 = 0x800A0950;
|
|
||||||
D_800A0954 = 0x800A0954;
|
|
||||||
D_800A0956 = 0x800A0956;
|
|
||||||
D_800A0958 = 0x800A0958;
|
|
||||||
D_800A095A = 0x800A095A;
|
|
||||||
D_800A095B = 0x800A095B;
|
|
||||||
D_800A095C = 0x800A095C;
|
|
||||||
D_800A095D = 0x800A095D;
|
|
||||||
D_800A095E = 0x800A095E;
|
|
||||||
D_800A095F = 0x800A095F;
|
|
||||||
D_800A0960 = 0x800A0960;
|
|
||||||
D_800A0963 = 0x800A0963;
|
|
||||||
D_800A0964 = 0x800A0964;
|
|
||||||
D_800A0970 = 0x800A0970;
|
|
||||||
D_800A0974 = 0x800A0974;
|
|
||||||
D_800A0978 = 0x800A0978;
|
|
||||||
D_800A097C = 0x800A097C;
|
|
||||||
D_800A0980 = 0x800A0980;
|
|
||||||
D_800A0988 = 0x800A0988;
|
|
||||||
gWorldNpcList = 0x800A0990;
|
|
||||||
gBattleNpcList = 0x800A0A90;
|
|
||||||
gCurrentNpcListPtr = 0x800A0B90;
|
|
||||||
D_800A0B94 = 0x800A0B94;
|
|
||||||
D_800A0BA0 = 0x800A0BA0;
|
|
||||||
D_800A0BA4 = 0x800A0BA4;
|
|
||||||
D_800A0BA8 = 0x800A0BA8;
|
|
||||||
D_800A0BAC = 0x800A0BAC;
|
|
||||||
D_800A0BB0 = 0x800A0BB0;
|
|
||||||
D_800A0BB4 = 0x800A0BB4;
|
|
||||||
D_800A0BB8 = 0x800A0BB8;
|
|
||||||
D_800A0BC0 = 0x800A0BC0;
|
|
||||||
D_800A0F40 = 0x800A0F40;
|
|
||||||
D_800A0F44 = 0x800A0F44;
|
|
||||||
D_800A0F50 = 0x800A0F50;
|
|
||||||
D_800A0F58 = 0x800A0F58;
|
|
||||||
D_800A1530 = 0x800A1530;
|
|
||||||
D_800A158C = 0x800A158C;
|
|
||||||
D_800A15A4 = 0x800A15A4;
|
|
||||||
D_800A15A8 = 0x800A15A8;
|
|
||||||
D_800A15C4 = 0x800A15C4;
|
|
||||||
D_800A15CC = 0x800A15CC;
|
|
||||||
D_800A3510 = 0x800A3510;
|
|
||||||
D_800A3520 = 0x800A3520;
|
|
||||||
D_800A3628 = 0x800A3628;
|
|
||||||
nuAuFrameSampleSize = 0x800A3634;
|
|
||||||
D_800A3638 = 0x800A3638;
|
|
||||||
D_800A3640 = 0x800A3640;
|
|
||||||
D_800A3658 = 0x800A3658;
|
|
||||||
D_800A3720 = 0x800A3720;
|
|
||||||
nuAuDmaState = 0x800A3BD0;
|
|
||||||
D_800A3BD4 = 0x800A3BD4;
|
|
||||||
nuAuDmaBuf = 0x800A3BE0;
|
|
||||||
D_800A3BF0 = 0x800A3BF0;
|
|
||||||
D_800A3FD0 = 0x800A3FD0;
|
|
||||||
D_800A3FE0 = 0x800A3FE0;
|
|
||||||
D_800A3FE4 = 0x800A3FE4;
|
|
||||||
D_800A3FE8 = 0x800A3FE8;
|
|
||||||
D_800A3FEC = 0x800A3FEC;
|
|
||||||
D_800A3FEE = 0x800A3FEE;
|
|
||||||
D_800A3FF0 = 0x800A3FF0;
|
|
||||||
gEffectGraphicsData = 0x800A4000;
|
|
||||||
D_800A41C0 = 0x800A41C0;
|
|
||||||
gMap = 0x800A41E0;
|
|
||||||
gMapConfig = 0x800A41E8;
|
|
||||||
D_800A4230 = 0x800A4230;
|
|
||||||
D_800A4234 = 0x800A4234;
|
|
||||||
D_800A4238 = 0x800A4238;
|
|
||||||
D_800A423C = 0x800A423C;
|
|
||||||
D_800A4240 = 0x800A4240;
|
|
||||||
D_800A4244 = 0x800A4244;
|
|
||||||
D_800A4248 = 0x800A4248;
|
|
||||||
D_800A424C = 0x800A424C;
|
|
||||||
D_800A4250 = 0x800A4250;
|
|
||||||
D_800A4254 = 0x800A4254;
|
|
||||||
D_800A4258 = 0x800A4258;
|
|
||||||
D_800A425C = 0x800A425C;
|
|
||||||
D_800A4260 = 0x800A4260;
|
|
||||||
D_800A4264 = 0x800A4264;
|
|
||||||
D_800A4268 = 0x800A4268;
|
|
||||||
D_800A4270 = 0x800A4270;
|
|
||||||
D_800A4420 = 0x800A4420;
|
|
||||||
nuScStack = 0x800A65D0;
|
|
||||||
nuScAudioStack = 0x800A85D0;
|
|
||||||
nuScGraphicsStack = 0x800AA5D0;
|
|
||||||
D_800AC5D0 = 0x800AC5D0;
|
|
||||||
D_800AC5E8 = 0x800AC5E8;
|
|
||||||
nuGfxMesgBuf = 0x800AC6B0;
|
|
||||||
nuContWaitMesgBuf = 0x800AE6D0;
|
|
||||||
nuContDataMutexBuf = 0x800AE6D4;
|
|
||||||
piMgrThread = 0x800AE6E0;
|
|
||||||
__osPiMesgQueue = 0x800AF890;
|
|
||||||
piMgrMesgBuff = 0x800AF8A8;
|
|
||||||
D_800AF8B0 = 0x800AF8B0;
|
|
||||||
D_800AF8C0 = 0x800AF8C0;
|
|
||||||
D_800AF8C4 = 0x800AF8C4;
|
|
||||||
D_800AF8D0 = 0x800AF8D0;
|
|
||||||
D_800AF8D8 = 0x800AF8D8;
|
|
||||||
D_800AF8DC = 0x800AF8DC;
|
|
||||||
D_800AF8E0 = 0x800AF8E0;
|
|
||||||
D_800AF8E8 = 0x800AF8E8;
|
|
||||||
D_800AF8EC = 0x800AF8EC;
|
|
||||||
D_800AF8F0 = 0x800AF8F0;
|
|
||||||
D_800AF8F8 = 0x800AF8F8;
|
|
||||||
D_800AF8FC = 0x800AF8FC;
|
|
||||||
D_800AF900 = 0x800AF900;
|
|
||||||
D_800AF910 = 0x800AF910;
|
|
||||||
D_800AF918 = 0x800AF918;
|
|
||||||
D_800B0AD0 = 0x800B0AD0;
|
|
||||||
D_800B0AE8 = 0x800B0AE8;
|
|
||||||
D_800B0B00 = 0x800B0B00;
|
|
||||||
D_800B0B02 = 0x800B0B02;
|
|
||||||
D_800B0B04 = 0x800B0B04;
|
|
||||||
D_800B0B18 = 0x800B0B18;
|
|
||||||
D_800B0B1A = 0x800B0B1A;
|
|
||||||
D_800B0B1C = 0x800B0B1C;
|
|
||||||
D_800B0B30 = 0x800B0B30;
|
|
||||||
D_800B0B6C = 0x800B0B6C;
|
|
||||||
D_800B0C30 = 0x800B0C30;
|
|
||||||
D_800B0C40 = 0x800B0C40;
|
|
||||||
D_800B0C42 = 0x800B0C42;
|
|
||||||
D_800B0C44 = 0x800B0C44;
|
|
||||||
D_800B0C48 = 0x800B0C48;
|
|
||||||
D_800B0C4C = 0x800B0C4C;
|
|
||||||
D_800B0C50 = 0x800B0C50;
|
|
||||||
D_800B0C58 = 0x800B0C58;
|
|
||||||
D_800B0C70 = 0x800B0C70;
|
|
||||||
D_800B0C74 = 0x800B0C74;
|
|
||||||
D_800B0C75 = 0x800B0C75;
|
|
||||||
D_800B0C76 = 0x800B0C76;
|
|
||||||
D_800B0C77 = 0x800B0C77;
|
|
||||||
D_800B0C78 = 0x800B0C78;
|
|
||||||
D_800B0C79 = 0x800B0C79;
|
|
||||||
D_800B0C7C = 0x800B0C7C;
|
|
||||||
D_800B0C80 = 0x800B0C80;
|
|
||||||
D_800B0CE4 = 0x800B0CE4;
|
|
||||||
D_800B0CE8 = 0x800B0CE8;
|
|
||||||
wMapTexName = 0x800B0CF0;
|
|
||||||
D_800B0D08 = 0x800B0D08;
|
|
||||||
nuContWaitMesgQ = 0x800B0EB8;
|
|
||||||
D_800B0ED0 = 0x800B0ED0;
|
|
||||||
D_800B0F08 = 0x800B0F08;
|
|
||||||
D_800B0F0C = 0x800B0F0C;
|
|
||||||
gCurrentEncounter = 0x800B0F10;
|
|
||||||
LeoDiskHandle = 0x800B1B08;
|
|
||||||
D_800B1B0C = 0x800B1B0C;
|
|
||||||
D_800B1B0D = 0x800B1B0D;
|
|
||||||
D_800B1B0E = 0x800B1B0E;
|
|
||||||
D_800B1B0F = 0x800B1B0F;
|
|
||||||
D_800B1B10 = 0x800B1B10;
|
|
||||||
nuContStatus = 0x800B1B7C;
|
|
||||||
D_800B1B90 = 0x800B1B90;
|
|
||||||
nuContRmbCtl = 0x800B1D40;
|
|
||||||
nuContData = 0x800B1D68;
|
|
||||||
gCameras = 0x800B1D80;
|
|
||||||
gCollisionData = 0x800B42E0;
|
|
||||||
nuGfxMesgQ = 0x800B42F0;
|
|
||||||
D_800B4308 = 0x800B4308;
|
|
||||||
D_800B430C = 0x800B430C;
|
|
||||||
D_800B430D = 0x800B430D;
|
|
||||||
D_800B430E = 0x800B430E;
|
|
||||||
D_800B430F = 0x800B430F;
|
|
||||||
D_800B4310 = 0x800B4310;
|
|
||||||
D_800B4311 = 0x800B4311;
|
|
||||||
D_800B4314 = 0x800B4314;
|
|
||||||
D_800B4318 = 0x800B4318;
|
|
||||||
gOsPiMessageQueue = 0x800B4380;
|
|
||||||
gEffectInstances = 0x800B4398;
|
|
||||||
D_800B4514 = 0x800B4514;
|
|
||||||
CartRomHandle = 0x800B4518;
|
|
||||||
D_800B451C = 0x800B451C;
|
|
||||||
D_800B451D = 0x800B451D;
|
|
||||||
D_800B451E = 0x800B451E;
|
|
||||||
D_800B451F = 0x800B451F;
|
|
||||||
D_800B4520 = 0x800B4520;
|
|
||||||
D_800B6590 = 0x800B6590;
|
|
||||||
D_800B7EF0 = 0x800B7EF0;
|
|
||||||
nuYieldBuf = 0x800B8590;
|
|
||||||
dead_gCameras = 0x800B8D80;
|
|
||||||
D_800B8DEC = 0x800B8DEC;
|
|
||||||
D_800B91A0 = 0x800B91A0;
|
|
||||||
D_800B91D0 = 0x800B91D0;
|
|
||||||
D_800D91D0 = 0x800D91D0;
|
|
||||||
D_800D91D4 = 0x800D91D4;
|
|
||||||
D_800D91DC = 0x800D91DC;
|
|
||||||
wMapHitName = 0x800D91E0;
|
|
||||||
nuSiMgrMesgQ = 0x800D91F8;
|
|
||||||
wMapShapeName = 0x800D9230;
|
|
||||||
D_800D9248 = 0x800D9248;
|
|
||||||
nuGfxTask = 0x800D9278;
|
|
||||||
D_800D95E8 = 0x800D95E8;
|
|
||||||
D_800D9620 = 0x800D9620;
|
|
||||||
D_800D9668 = 0x800D9668;
|
|
||||||
D_800D9680 = 0x800D9680;
|
|
||||||
D_800D9780 = 0x800D9780;
|
|
||||||
D_800D9F80 = 0x800D9F80;
|
|
||||||
D_800DA000 = 0x800DA000;
|
|
||||||
D_800DA03C = 0x800DA03C;
|
|
||||||
D_800DA040 = 0x800DA040;
|
|
||||||
nusched = 0x800DA440;
|
|
||||||
D_800DA444 = 0x800DA444;
|
|
||||||
D_800DA47C = 0x800DA47C;
|
|
||||||
D_800DA4B4 = 0x800DA4B4;
|
|
||||||
D_800DA55C = 0x800DA55C;
|
|
||||||
D_800DAAA8 = 0x800DAAA8;
|
|
||||||
D_800DAAAC = 0x800DAAAC;
|
|
||||||
D_800DAAB8 = 0x800DAAB8;
|
|
||||||
D_800DAABC = 0x800DAABC;
|
|
||||||
D_800DAABD = 0x800DAABD;
|
|
||||||
D_800DAAC0 = 0x800DAAC0;
|
|
||||||
nuContPfs = 0x800DAAD8;
|
|
||||||
nuSiMesgQ = 0x800DAC78;
|
|
||||||
D_800DAC90 = 0x800DAC90;
|
|
||||||
D_800DACA8 = 0x800DACA8;
|
|
||||||
gCurrentSaveFile = 0x800DACC0;
|
|
||||||
D_800DBC70 = 0x800DBC70;
|
|
||||||
D_800DBD70 = 0x800DBD70;
|
|
||||||
D_800DBF70 = 0x800DBF70;
|
|
||||||
D_800DBF90 = 0x800DBF90;
|
|
||||||
nuContDataMutexQ = 0x800DC040;
|
|
||||||
D_800DC060 = 0x800DC060;
|
|
||||||
D_800DC064 = 0x800DC064;
|
|
||||||
gBattleState = 0x800DC068;
|
|
||||||
gBattleStatus = 0x800DC070;
|
|
||||||
D_800DC4D0 = 0x800DC4D0;
|
|
||||||
D_800DC4D4 = 0x800DC4D4;
|
|
||||||
D_800DC4D8 = 0x800DC4D8;
|
|
||||||
gBattleState2 = 0x800DC4DC;
|
|
||||||
D_800DC4E0 = 0x800DC4E0;
|
|
||||||
D_800DC4E4 = 0x800DC4E4;
|
|
||||||
D_800DC4E8 = 0x800DC4E8;
|
|
||||||
gCurrentBattleSection = 0x800DC4EA;
|
|
||||||
D_800DC4EB = 0x800DC4EB;
|
|
||||||
D_800DC4EC = 0x800DC4EC;
|
|
||||||
D_800DC4F0 = 0x800DC4F0;
|
|
||||||
D_800DC4F4 = 0x800DC4F4;
|
|
||||||
D_800DC4F8 = 0x800DC4F8;
|
|
||||||
D_800DC4FC = 0x800DC4FC;
|
|
||||||
D_8010C920 = 0x8010C920;
|
|
||||||
D_8010C924 = 0x8010C924;
|
|
||||||
D_8010C928 = 0x8010C928;
|
|
||||||
D_8010C92C = 0x8010C92C;
|
|
||||||
wPartnerNpc = 0x8010C930;
|
|
||||||
D_8010C934 = 0x8010C934;
|
|
||||||
D_8010C938 = 0x8010C938;
|
|
||||||
D_8010C93C = 0x8010C93C;
|
|
||||||
D_8010C940 = 0x8010C940;
|
|
||||||
gSpinHistoryBufferPos = 0x8010C944;
|
|
||||||
D_8010C94C = 0x8010C94C;
|
|
||||||
D_8010C950 = 0x8010C950;
|
|
||||||
D_8010C954 = 0x8010C954;
|
|
||||||
D_8010C958 = 0x8010C958;
|
|
||||||
D_8010C95C = 0x8010C95C;
|
|
||||||
D_8010C960 = 0x8010C960;
|
|
||||||
D_8010C964 = 0x8010C964;
|
|
||||||
D_8010C968 = 0x8010C968;
|
|
||||||
D_8010C96B = 0x8010C96B;
|
|
||||||
D_8010C96C = 0x8010C96C;
|
|
||||||
D_8010C970 = 0x8010C970;
|
|
||||||
D_8010C974 = 0x8010C974;
|
|
||||||
D_8010C978 = 0x8010C978;
|
|
||||||
D_8010C97A = 0x8010C97A;
|
|
||||||
D_8010C97C = 0x8010C97C;
|
|
||||||
D_8010C980 = 0x8010C980;
|
|
||||||
D_8010C984 = 0x8010C984;
|
|
||||||
D_8010C98C = 0x8010C98C;
|
|
||||||
D_8010C990 = 0x8010C990;
|
|
||||||
D_8010C9A0 = 0x8010C9A0;
|
|
||||||
D_8010C9B0 = 0x8010C9B0;
|
|
||||||
D_8010C9C0 = 0x8010C9C0;
|
|
||||||
D_8010C9C8 = 0x8010C9C8;
|
|
||||||
D_8010CCF8 = 0x8010CCF8;
|
|
||||||
D_8010CCFA = 0x8010CCFA;
|
|
||||||
D_8010CCFC = 0x8010CCFC;
|
|
||||||
D_8010CCFE = 0x8010CCFE;
|
|
||||||
D_8010CD00 = 0x8010CD00;
|
|
||||||
D_8010CD10 = 0x8010CD10;
|
|
||||||
D_8010CD12 = 0x8010CD12;
|
|
||||||
D_8010CD20 = 0x8010CD20;
|
|
||||||
D_8010CD30 = 0x8010CD30;
|
|
||||||
D_8010CD34 = 0x8010CD34;
|
|
||||||
D_8010CD38 = 0x8010CD38;
|
|
||||||
D_8010CFB8 = 0x8010CFB8;
|
|
||||||
D_8010CFBC = 0x8010CFBC;
|
|
||||||
D_8010CFC0 = 0x8010CFC0;
|
|
||||||
D_8010CFC4 = 0x8010CFC4;
|
|
||||||
D_8010CFC8 = 0x8010CFC8;
|
|
||||||
D_8010CFCA = 0x8010CFCA;
|
|
||||||
D_8010CFCC = 0x8010CFCC;
|
|
||||||
D_8010CFCE = 0x8010CFCE;
|
|
||||||
D_8010CFD0 = 0x8010CFD0;
|
|
||||||
D_8010CFD4 = 0x8010CFD4;
|
|
||||||
D_8010CFD8 = 0x8010CFD8;
|
|
||||||
D_8010CFDC = 0x8010CFDC;
|
|
||||||
D_8010CFE0 = 0x8010CFE0;
|
|
||||||
D_8010CFE4 = 0x8010CFE4;
|
|
||||||
D_8010CFE8 = 0x8010CFE8;
|
|
||||||
wPartner = 0x8010CFEC;
|
|
||||||
D_8010CFF0 = 0x8010CFF0;
|
|
||||||
D_8010CFF4 = 0x8010CFF4;
|
|
||||||
D_8010D000 = 0x8010D000;
|
|
||||||
D_8010D640 = 0x8010D640;
|
|
||||||
D_8010D644 = 0x8010D644;
|
|
||||||
D_8010D648 = 0x8010D648;
|
|
||||||
D_8010D64C = 0x8010D64C;
|
|
||||||
D_8010D650 = 0x8010D650;
|
|
||||||
D_8010D654 = 0x8010D654;
|
|
||||||
D_8010D655 = 0x8010D655;
|
|
||||||
D_8010D656 = 0x8010D656;
|
|
||||||
D_8010D658 = 0x8010D658;
|
|
||||||
D_8010D65A = 0x8010D65A;
|
|
||||||
D_8010D65C = 0x8010D65C;
|
|
||||||
D_8010D660 = 0x8010D660;
|
|
||||||
D_8010D664 = 0x8010D664;
|
|
||||||
D_8010D668 = 0x8010D668;
|
|
||||||
D_8010D66C = 0x8010D66C;
|
|
||||||
D_8010D670 = 0x8010D670;
|
|
||||||
D_8010D674 = 0x8010D674;
|
|
||||||
D_8010D678 = 0x8010D678;
|
|
||||||
D_8010D67C = 0x8010D67C;
|
|
||||||
D_8010D67E = 0x8010D67E;
|
|
||||||
D_8010D680 = 0x8010D680;
|
|
||||||
D_8010D682 = 0x8010D682;
|
|
||||||
D_8010D684 = 0x8010D684;
|
|
||||||
D_8010D686 = 0x8010D686;
|
|
||||||
D_8010D688 = 0x8010D688;
|
|
||||||
D_8010D68A = 0x8010D68A;
|
|
||||||
D_8010D68C = 0x8010D68C;
|
|
||||||
D_8010D68E = 0x8010D68E;
|
|
||||||
D_8010D68F = 0x8010D68F;
|
|
||||||
D_8010D690 = 0x8010D690;
|
|
||||||
D_8010D691 = 0x8010D691;
|
|
||||||
D_8010D692 = 0x8010D692;
|
|
||||||
D_8010D693 = 0x8010D693;
|
|
||||||
D_8010D694 = 0x8010D694;
|
|
||||||
D_8010D698 = 0x8010D698;
|
|
||||||
D_8010D699 = 0x8010D699;
|
|
||||||
D_8010D69A = 0x8010D69A;
|
|
||||||
D_8010D69C = 0x8010D69C;
|
|
||||||
D_8010D6A0 = 0x8010D6A0;
|
|
||||||
D_8010D6A4 = 0x8010D6A4;
|
|
||||||
D_8010D6B0 = 0x8010D6B0;
|
|
||||||
gPartnerActionStatus = 0x8010EBB0;
|
|
||||||
gSpinHistoryPosY = 0x8010EF10;
|
|
||||||
gSpinHistoryPosX = 0x8010EF28;
|
|
||||||
gSpinHistoryPosZ = 0x8010EF40;
|
|
||||||
gUIStatus = 0x8010EF58;
|
|
||||||
D_8010EF92 = 0x8010EF92;
|
|
||||||
D_8010EF9C = 0x8010EF9C;
|
|
||||||
D_8010EF9D = 0x8010EF9D;
|
|
||||||
D_8010EF9E = 0x8010EF9E;
|
|
||||||
gPlayerStatus = 0x8010EFC8;
|
|
||||||
gPlayerActionState = 0x8010F07C;
|
|
||||||
gPlayerAnimation = 0x8010F080;
|
|
||||||
D_8010F250 = 0x8010F250;
|
|
||||||
gPlayerData = 0x8010F290;
|
|
||||||
gSpinHistoryPosAngle = 0x8010F6B8;
|
|
@ -20,6 +20,8 @@ options:
|
|||||||
asset_path: assets/us
|
asset_path: assets/us
|
||||||
build_path: ver/us/build
|
build_path: ver/us/build
|
||||||
cache_path: ver/us/.splat_cache
|
cache_path: ver/us/.splat_cache
|
||||||
|
create_undefined_funcs_auto: False
|
||||||
|
create_undefined_syms_auto: False
|
||||||
undefined_funcs_auto_path: ver/us/undefined_funcs_auto.txt
|
undefined_funcs_auto_path: ver/us/undefined_funcs_auto.txt
|
||||||
undefined_syms_auto_path: ver/us/undefined_syms_auto.txt
|
undefined_syms_auto_path: ver/us/undefined_syms_auto.txt
|
||||||
asset_stack:
|
asset_stack:
|
||||||
@ -120,7 +122,7 @@ segments:
|
|||||||
- [0x3B890, c, os/nusys/nuSiCallBackRemove]
|
- [0x3B890, c, os/nusys/nuSiCallBackRemove]
|
||||||
- [0x3B910, c, os/nusys/nuContMgr]
|
- [0x3B910, c, os/nusys/nuContMgr]
|
||||||
- [0x3BCC0, c, os/nusys/nuContDataLock]
|
- [0x3BCC0, c, os/nusys/nuContDataLock]
|
||||||
- [0x3BD20, c, os/3bd20_len_c0]
|
- [0x3BD20, c, os/nusys/nuContQueryRead]
|
||||||
- [0x3BD40, hasm, os/osSetIntMask]
|
- [0x3BD40, hasm, os/osSetIntMask]
|
||||||
- [0x3BDE0, c, os/osCreatePiManager]
|
- [0x3BDE0, c, os/osCreatePiManager]
|
||||||
- [0x3C160, c, os/osEPiWriteIo] # MOVE_ADDU
|
- [0x3C160, c, os/osEPiWriteIo] # MOVE_ADDU
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user