SFX funcs, configure fix (#635)

* SFX funcs, configure fix

* the actual rename (oops)
This commit is contained in:
Ethan Roseman 2022-01-31 05:10:02 -05:00 committed by GitHub
parent 20fa028e96
commit 96e85f4da1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 339 additions and 884 deletions

View File

@ -681,12 +681,18 @@ void enable_player_shadow(void);
s32 get_msg_lines(s32 messageID);
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, s32, void* drawContents, PopupMessage* popup, s32 parent);
void set_window_update(s32 panelID, s32);
void snd_stop_sound(s32 soundID);
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void snd_adjust_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void sfx_adjust_env_sound_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void sfx_stop_sound(s32 soundID);
void partner_disable_input(void);
void func_80268798(s32, s32, s32, s32);
void func_8026880C(s32, s32, s32);
void func_802687E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void sfx_stop_sound(s32 soundID);
void close_message(MessagePrintState* msgPrintState);
void show_foreground_models_unchecked(void);
void hide_foreground_models_unchecked(void);

View File

@ -96,7 +96,7 @@ void func_8005513C(u32 arg0) {
}
}
void snd_start_sound(s32 soundID, u8 volume, s8 pan) {
void snd_start_sound(s32 soundID, u8 volume, u8 pan) {
SoundManager* soundManager = D_8009A640;
s16 a1temp = volume * 256;
@ -104,14 +104,14 @@ void snd_start_sound(s32 soundID, u8 volume, s8 pan) {
a1temp |= 0xFF;
}
if (pan < 0) {
if (pan > 0x7F) {
pan = 0x7F;
}
snd_enqueue_sfx_event(soundManager, soundID, a1temp, 0, pan);
}
void snd_start_sound_with_shift(s32 soundID, u8 volume, s8 pan, s16 pitchShift) {
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
SoundManager* soundManager = D_8009A640;
s16 a1temp = volume * 256;
@ -119,7 +119,7 @@ void snd_start_sound_with_shift(s32 soundID, u8 volume, s8 pan, s16 pitchShift)
a1temp |= 0xFF;
}
if (pan < 0) {
if (pan > 0x7F) {
pan = 0x7F;
}
@ -132,7 +132,7 @@ void snd_start_sound_with_shift(s32 soundID, u8 volume, s8 pan, s16 pitchShift)
snd_enqueue_sfx_event(soundManager, soundID, a1temp, pitchShift, pan);
}
void snd_adjust_sound(s32 soundID, u8 volume, s8 pan) {
void snd_adjust_sound(s32 soundID, u8 volume, u8 pan) {
SoundManager* soundManager = D_8009A640;
s16 a1temp = volume * 256;
@ -140,14 +140,14 @@ void snd_adjust_sound(s32 soundID, u8 volume, s8 pan) {
a1temp |= 0xFF;
}
if (pan < 0) {
if (pan > 0x7F) {
pan = 0x7F;
}
snd_enqueue_sfx_event(soundManager, soundID | 0x1000, a1temp, 0, pan);
}
void snd_adjust_sound_with_shift(s32 soundID, u8 volume, s8 pan, s16 pitchShift) {
void snd_adjust_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
SoundManager* soundManager = D_8009A640;
s16 a1temp = volume * 256;
@ -155,7 +155,7 @@ void snd_adjust_sound_with_shift(s32 soundID, u8 volume, s8 pan, s16 pitchShift)
a1temp |= 0xFF;
}
if (pan < 0) {
if (pan > 0x7F) {
pan = 0x7F;
}

View File

@ -6,7 +6,7 @@
struct BGMPlayer;
struct UnkAl19E0;
typedef void (*UnkFuncAl)();
typedef void (*UnkFuncAl)(void);
typedef union UnkField {
u8 u8;

View File

@ -3,8 +3,6 @@
#define NAMESPACE action_command_bomb
void sfx_adjust_env_sound_params(s32, s32, s32, s32);
extern HudScript HudScript_BlueMeter;
extern HudScript HudScript_AButton;
extern HudScript HudScript_100pct;

View File

@ -12,8 +12,6 @@ extern s32 D_802943C0;
extern HudScript HudScript_MashAButton;
extern HudScript HudScript_MashBButton1;
void sfx_adjust_env_sound_params(s32, s32, s32, s32);
typedef struct structD_802A9930_42E340 {
/* 0x00 */ s16 unk_0;
/* 0x08 */ u16 unk_8;

View File

@ -4,8 +4,6 @@
#define NAMESPACE action_command_smack
void sfx_adjust_env_sound_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
extern HudScript HudScript_BlueMeter;
extern HudScript HudScript_StickNeutral;
extern HudScript HudScript_100pct;

View File

@ -1,4 +1,5 @@
#include "common.h"
#include "audio.h"
#define MAX_SOUND_INSTANCES 10
@ -12,12 +13,11 @@ typedef struct SoundInstance {
/* 0x10 */ Vec3f position;
} SoundInstance; // size = 0x1C
extern SoundInstance D_801598A0[MAX_SOUND_INSTANCES];
extern SoundInstance D_801599B8[MAX_SOUND_INSTANCES];
extern SoundInstance* D_80159AD0;
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void snd_adjust_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
typedef struct AlternatingSoundSet {
/* 0x00 */ s32* sounds;
/* 0x04 */ s16 soundCount;
/* 0x06 */ s16 currentIndex;
} AlternatingSoundSet; // size = 0x08
// sound IDs
s32 D_8014F2D0[] = {
@ -71,12 +71,6 @@ s32 D_8014F58C[] = { 0x00002043, 0x00002044 };
s32 D_8014F594[] = { 0x00002078, 0x00002079 };
s32 D_8014F59C[] = { 0x000003B6, 0x000003B7 };
typedef struct AlternatingSoundSet {
/* 0x00 */ s32* sounds;
/* 0x04 */ s16 soundCount;
/* 0x06 */ s16 currentIndex;
} AlternatingSoundSet; // size = 0x08
AlternatingSoundSet D_8014F5A4[] = {
{
.sounds = D_8014F48C,
@ -233,10 +227,101 @@ s32 D_8014F6B4[] = {
SOUND_20A4,
};
extern SoundInstance D_801598A0[MAX_SOUND_INSTANCES];
extern SoundInstance D_801599B8[MAX_SOUND_INSTANCES];
extern SoundInstance* D_80159AD0;
extern s32 D_80159AD4;
INCLUDE_ASM(void, "DF950", sfx_compute_spatialized_sound_params_2, f32 posX, f32 posY, f32 posZ, s16* volume, s16* pan,
u32 sourceFlags);
void sfx_compute_spatialized_sound_params_0(f32 x, f32 y, f32 z, s16* volume, s16* pan);
void sfx_compute_spatialized_sound_params_1(f32 x, f32 y, f32 z, s16* volume, s16* pan);
void sfx_compute_spatialized_sound_params_2(f32 x, f32 y, f32 z, s16* volume, s16* pan, s32 flags) {
s32 screenX, screenY, screenZ;
f32 f1, f2, f3;
f32 lerp1, lerp2, lerp3;
f32 volTemp, panTemp;
s32 phi_v0;
get_screen_coords(gCurrentCameraID, x, y, z, &screenX, &screenY, &screenZ);
if (screenX > 5000 || screenX < -5000 || screenY > 5000 || screenY < -5000) {
*volume = -1;
*pan = 0;
return;
}
if (flags & 0x20000) {
if (screenX < -30 || screenX > 350 || screenY < -30) {
*volume = -1;
*pan = 0;
return;
}
if (screenY > 270) {
*volume = -1;
*pan = 0;
return;
}
} else if (flags & 0x40000) {
if (screenX < -30 || screenX > 350) {
*volume = -1;
*pan = 0;
return;
}
} else if (flags & 0x80000) {
if (screenY < -30 || screenY > 270) {
*volume = -1;
*pan = 0;
return;
}
}
lerp1 = abs(160 - screenX) - 145;
if (lerp1 < 0.0) {
lerp1 = 0.0f;
}
f1 = update_lerp(0, 1.0f, 0.0f, lerp1, 200);
if (f1 < 0.0) {
f1 = 0.0f;
}
lerp2 = abs(120 - screenY) - 105;
if (lerp2 < 0.0) {
lerp2 = 0.0f;
}
f2 = update_lerp(0, 1.0f, 0.0f, lerp2, 130);
if (f2 < 0.0) {
f2 = 0.0f;
}
lerp3 = screenZ - 5550.0;
if (lerp3 < 0.0) {
lerp3 = 0.0f;
}
f3 = update_lerp(0, 1.0f, 0.0f, lerp3, 250);
if (f3 < 0.0) {
f3 = 0.0f;
}
volTemp = (f1 * f2 * f3) * 127.0;
if (volTemp < 15.0) {
volTemp = 15.0f;
} else if (volTemp > 127.0) {
volTemp = 127.0f;
}
*volume = volTemp;
panTemp = (((f32) screenX - (SCREEN_WIDTH / 2.0)) / 3.6) + 64.0;
if (panTemp < 1.0) {
panTemp = 1.0f;
} else if (panTemp > 127.0) {
panTemp = 127.0f;
}
*pan = panTemp;
}
void sfx_reset_door_sounds(void) {
gCurrentDoorSoundsSet = 0;
@ -273,10 +358,26 @@ void sfx_clear_env_sounds(s16 playSounds) {
}
}
INCLUDE_ASM(void, "DF950", sfx_update_looping_sound_params);
void sfx_update_looping_sound_params(void) {
SoundInstance* sound = D_80159AD0;
u16 volume;
u16 pan;
s32 i;
for (i = 0; i < 10; i++, sound++) {
if (sound->flags & 1) {
if (sound->flags & 2) {
sfx_get_spatialized_sound_params(sound->position.x, sound->position.y, sound->position.z, &volume, &pan, sound->sourceFlags);
sound->volume = volume;
sound->pan = pan;
}
snd_adjust_sound_with_shift(sound->soundID, sound->volume, sound->pan, sound->pitchShift);
}
}
}
void func_801497FC(s32 arg0) {
func_800561E4();
func_800561E4(arg0);
D_80159AD4 = arg0;
}
@ -358,7 +459,7 @@ s32 sfx_adjust_env_sound_pos(s32 soundID, s32 sourceFlags, f32 x, f32 y, f32 z)
SoundInstance* sound = sfx_get_env_sound_instance(soundID);
if (sound == NULL) {
return 0;
return FALSE;
}
sound->sourceFlags = sourceFlags;
@ -367,8 +468,7 @@ s32 sfx_adjust_env_sound_pos(s32 soundID, s32 sourceFlags, f32 x, f32 y, f32 z)
sound->position.z = z;
sound->soundID = soundID;
sound->flags |= 3;
return 1;
return TRUE;
}
void func_80149A6C(s32 soundID, s32 keepPlaying) {
@ -418,7 +518,7 @@ void sfx_play_sound_with_params(s32 soundID, u8 arg1, u8 arg2, s16 arg3) {
}
}
#else
INCLUDE_ASM(void, "DF950", sfx_play_sound_with_params, s32 arg0, u8 arg1, u8 arg2, s16 arg3);
INCLUDE_ASM(void, "sfx", sfx_play_sound_with_params, s32 arg0, u8 arg1, u8 arg2, s16 arg3);
#endif
void sfx_adjust_env_sound_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
@ -480,9 +580,121 @@ void sfx_play_sound_at_position(s32 soundID, s32 flags, f32 posX, f32 posY, f32
}
}
INCLUDE_ASM(void, "DF950", sfx_get_spatialized_sound_params, f32 arg0, f32 arg1, f32 arg2, s16* arg3, s16* arg4,
s32 arg5);
void sfx_get_spatialized_sound_params(f32 x, f32 y, f32 z, s16* volume, s16* pan, s32 flags) {
s32 temp_s0;
u32 temp_2;
INCLUDE_ASM(s32, "DF950", sfx_compute_spatialized_sound_params_0);
temp_s0 = flags & 0xFFFF0000;
INCLUDE_ASM(s32, "DF950", sfx_compute_spatialized_sound_params_1);
do {
temp_2 = flags & 0xFFFF;
} while (0); // required to match
switch (temp_2) {
case 0:
sfx_compute_spatialized_sound_params_0(x, y, z, volume, pan);
break;
case 1:
sfx_compute_spatialized_sound_params_1(x, y, z, volume, pan);
break;
case 2:
sfx_compute_spatialized_sound_params_2(x, y, z, volume, pan, temp_s0);
break;
}
if (temp_s0 & 0x10000) {
*volume = 0;
} else if (temp_s0 & 0x400000) {
if (*volume < 80) {
*volume = 80;
}
} else if (temp_s0 & 0x200000) {
if (*volume < 60) {
*volume = 60;
}
} else if (temp_s0 & 0x100000) {
if (*volume < 40) {
*volume = 40;
}
}
if (*pan < 1) {
*pan = 1;
}
if (*pan > 127) {
*pan = 127;
}
}
void sfx_compute_spatialized_sound_params_0(f32 x, f32 y, f32 z, s16* volume, s16* pan) {
s32 screenX, screenY, screenZ;
get_screen_coords(gCurrentCameraID, x, y, z, &screenX, &screenY, &screenZ);
if (screenX > 3000 || screenX < -3000 || screenY > 3000 || screenY < -3000) {
*volume = 1;
*pan = 0;
return;
}
*volume = 127;
if (screenX < 0) {
*volume = (screenX * 0.3f) + 127.0f;
screenX = 0;
}
if (screenX > SCREEN_WIDTH) {
*volume = 127.0f - ((screenX - SCREEN_WIDTH) * 0.3f);
screenX = SCREEN_WIDTH;
}
if (*volume < 1) {
*volume = 1;
}
if (!gGameStatusPtr->isBattle) {
*pan = (screenX * 0.2f) + 32.0f;
} else {
f32 temp_f20 = ((screenX * 127.0) / 320.0) - 64.0;
*pan = (s32) (temp_f20 * sin_rad((fabs(temp_f20) * 90.0 * 0.015625 * TAU) / 360.0)) + 64;
}
}
void sfx_compute_spatialized_sound_params_1(f32 x, f32 y, f32 z, s16* volume, s16* pan) {
Camera* camera = &gCameras[gCurrentCameraID];
s32 screenX, screenY, screenZ;
f32 temp_f0;
get_screen_coords(gCurrentCameraID, x, y, z, &screenX, &screenY, &screenZ);
if (screenX > 3000 || screenX < -3000 || screenY > 3000 || screenY < -3000) {
*volume = 1;
*pan = 0;
return;
}
*volume = 127;
if (screenX < 0) {
*volume = (screenX * 0.3f) + 127.0f;
screenX = 0;
}
if (camera->viewportW < screenX) {
*volume = 127.0f - ((screenX - camera->viewportW) * 0.3f);
screenX = camera->viewportW;
}
temp_f0 = fabsf(5000 - screenZ);
if (temp_f0 > 1000.0f) {
temp_f0 = 1000.0f;
}
*volume = *volume * (1500.0f - temp_f0) * 0.001f;
if (*volume > 127) {
*volume = 127;
}
if (*volume < 1) {
*volume = 1;
}
*pan = ((screenX * 64.0f) / camera->viewportW) + 32.0f;
}

View File

@ -122,7 +122,6 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
ninja.rule("cc_272",
description="cc_272 $in",
command=f"bash -o pipefail -c 'COMPILER_PATH={cc_272_dir} {cc_272} {CPPFLAGS_272} {cppflags} $cppflags {cflags_272} $cflags $in -o $out && mips-linux-gnu-objcopy -N $in $out'",
depfile="$out.d",
)
ninja.rule("cxx",

View File

@ -1,179 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80151270
.double 127.0
dlabel D_80151278
.double 90.0
dlabel D_80151280
.double 6.283180236816406
dlabel D_80151288
.double 360.0
.section .text
glabel sfx_compute_spatialized_sound_params_0
/* E0658 80149F58 44860000 */ mtc1 $a2, $f0
/* E065C 80149F5C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* E0660 80149F60 AFB00030 */ sw $s0, 0x30($sp)
/* E0664 80149F64 00E0802D */ daddu $s0, $a3, $zero
/* E0668 80149F68 AFB10034 */ sw $s1, 0x34($sp)
/* E066C 80149F6C 8FB10058 */ lw $s1, 0x58($sp)
/* E0670 80149F70 3C048007 */ lui $a0, %hi(gCurrentCameraID)
/* E0674 80149F74 8C847410 */ lw $a0, %lo(gCurrentCameraID)($a0)
/* E0678 80149F78 44056000 */ mfc1 $a1, $f12
/* E067C 80149F7C 44067000 */ mfc1 $a2, $f14
/* E0680 80149F80 27A20020 */ addiu $v0, $sp, 0x20
/* E0684 80149F84 AFA20010 */ sw $v0, 0x10($sp)
/* E0688 80149F88 27A20024 */ addiu $v0, $sp, 0x24
/* E068C 80149F8C AFA20014 */ sw $v0, 0x14($sp)
/* E0690 80149F90 44070000 */ mfc1 $a3, $f0
/* E0694 80149F94 27A20028 */ addiu $v0, $sp, 0x28
/* E0698 80149F98 AFBF0038 */ sw $ra, 0x38($sp)
/* E069C 80149F9C F7B40040 */ sdc1 $f20, 0x40($sp)
/* E06A0 80149FA0 0C00B94E */ jal get_screen_coords
/* E06A4 80149FA4 AFA20018 */ sw $v0, 0x18($sp)
/* E06A8 80149FA8 8FA20020 */ lw $v0, 0x20($sp)
/* E06AC 80149FAC 24420BB8 */ addiu $v0, $v0, 0xbb8
/* E06B0 80149FB0 2C421771 */ sltiu $v0, $v0, 0x1771
/* E06B4 80149FB4 10400008 */ beqz $v0, .L80149FD8
/* E06B8 80149FB8 24020001 */ addiu $v0, $zero, 1
/* E06BC 80149FBC 8FA30024 */ lw $v1, 0x24($sp)
/* E06C0 80149FC0 28620BB9 */ slti $v0, $v1, 0xbb9
/* E06C4 80149FC4 10400003 */ beqz $v0, .L80149FD4
/* E06C8 80149FC8 2862F448 */ slti $v0, $v1, -0xbb8
/* E06CC 80149FCC 10400005 */ beqz $v0, .L80149FE4
/* E06D0 80149FD0 2402007F */ addiu $v0, $zero, 0x7f
.L80149FD4:
/* E06D4 80149FD4 24020001 */ addiu $v0, $zero, 1
.L80149FD8:
/* E06D8 80149FD8 A6020000 */ sh $v0, ($s0)
/* E06DC 80149FDC 08052867 */ j .L8014A19C
/* E06E0 80149FE0 A6200000 */ sh $zero, ($s1)
.L80149FE4:
/* E06E4 80149FE4 A6020000 */ sh $v0, ($s0)
/* E06E8 80149FE8 8FA20020 */ lw $v0, 0x20($sp)
/* E06EC 80149FEC 04410012 */ bgez $v0, .L8014A038
/* E06F0 80149FF0 00000000 */ nop
/* E06F4 80149FF4 3C013E99 */ lui $at, 0x3e99
/* E06F8 80149FF8 3421999A */ ori $at, $at, 0x999a
/* E06FC 80149FFC 44811000 */ mtc1 $at, $f2
/* E0700 8014A000 44820000 */ mtc1 $v0, $f0
/* E0704 8014A004 00000000 */ nop
/* E0708 8014A008 46800020 */ cvt.s.w $f0, $f0
/* E070C 8014A00C 46020002 */ mul.s $f0, $f0, $f2
/* E0710 8014A010 00000000 */ nop
/* E0714 8014A014 3C0142FE */ lui $at, 0x42fe
/* E0718 8014A018 44811000 */ mtc1 $at, $f2
/* E071C 8014A01C 00000000 */ nop
/* E0720 8014A020 46020000 */ add.s $f0, $f0, $f2
/* E0724 8014A024 4600010D */ trunc.w.s $f4, $f0
/* E0728 8014A028 44022000 */ mfc1 $v0, $f4
/* E072C 8014A02C 00000000 */ nop
/* E0730 8014A030 A6020000 */ sh $v0, ($s0)
/* E0734 8014A034 AFA00020 */ sw $zero, 0x20($sp)
.L8014A038:
/* E0738 8014A038 8FA30020 */ lw $v1, 0x20($sp)
/* E073C 8014A03C 28620141 */ slti $v0, $v1, 0x141
/* E0740 8014A040 14400013 */ bnez $v0, .L8014A090
/* E0744 8014A044 2462FEC0 */ addiu $v0, $v1, -0x140
/* E0748 8014A048 3C013E99 */ lui $at, 0x3e99
/* E074C 8014A04C 3421999A */ ori $at, $at, 0x999a
/* E0750 8014A050 44810000 */ mtc1 $at, $f0
/* E0754 8014A054 44821000 */ mtc1 $v0, $f2
/* E0758 8014A058 00000000 */ nop
/* E075C 8014A05C 468010A0 */ cvt.s.w $f2, $f2
/* E0760 8014A060 46001082 */ mul.s $f2, $f2, $f0
/* E0764 8014A064 00000000 */ nop
/* E0768 8014A068 3C0142FE */ lui $at, 0x42fe
/* E076C 8014A06C 44810000 */ mtc1 $at, $f0
/* E0770 8014A070 00000000 */ nop
/* E0774 8014A074 46020001 */ sub.s $f0, $f0, $f2
/* E0778 8014A078 4600010D */ trunc.w.s $f4, $f0
/* E077C 8014A07C 44022000 */ mfc1 $v0, $f4
/* E0780 8014A080 00000000 */ nop
/* E0784 8014A084 A6020000 */ sh $v0, ($s0)
/* E0788 8014A088 24020140 */ addiu $v0, $zero, 0x140
/* E078C 8014A08C AFA20020 */ sw $v0, 0x20($sp)
.L8014A090:
/* E0790 8014A090 86020000 */ lh $v0, ($s0)
/* E0794 8014A094 1C400002 */ bgtz $v0, .L8014A0A0
/* E0798 8014A098 24020001 */ addiu $v0, $zero, 1
/* E079C 8014A09C A6020000 */ sh $v0, ($s0)
.L8014A0A0:
/* E07A0 8014A0A0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* E07A4 8014A0A4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* E07A8 8014A0A8 80420070 */ lb $v0, 0x70($v0)
/* E07AC 8014A0AC 14400010 */ bnez $v0, .L8014A0F0
/* E07B0 8014A0B0 00000000 */ nop
/* E07B4 8014A0B4 3C013E4C */ lui $at, 0x3e4c
/* E07B8 8014A0B8 3421CCCD */ ori $at, $at, 0xcccd
/* E07BC 8014A0BC 44811000 */ mtc1 $at, $f2
/* E07C0 8014A0C0 C7A00020 */ lwc1 $f0, 0x20($sp)
/* E07C4 8014A0C4 46800020 */ cvt.s.w $f0, $f0
/* E07C8 8014A0C8 46020002 */ mul.s $f0, $f0, $f2
/* E07CC 8014A0CC 00000000 */ nop
/* E07D0 8014A0D0 3C014200 */ lui $at, 0x4200
/* E07D4 8014A0D4 44811000 */ mtc1 $at, $f2
/* E07D8 8014A0D8 00000000 */ nop
/* E07DC 8014A0DC 46020000 */ add.s $f0, $f0, $f2
/* E07E0 8014A0E0 4600010D */ trunc.w.s $f4, $f0
/* E07E4 8014A0E4 44022000 */ mfc1 $v0, $f4
/* E07E8 8014A0E8 08052867 */ j .L8014A19C
/* E07EC 8014A0EC A6220000 */ sh $v0, ($s1)
.L8014A0F0:
/* E07F0 8014A0F0 3C018015 */ lui $at, %hi(D_80151270)
/* E07F4 8014A0F4 D4201270 */ ldc1 $f0, %lo(D_80151270)($at)
/* E07F8 8014A0F8 C7B40020 */ lwc1 $f20, 0x20($sp)
/* E07FC 8014A0FC 4680A521 */ cvt.d.w $f20, $f20
/* E0800 8014A100 4620A502 */ mul.d $f20, $f20, $f0
/* E0804 8014A104 00000000 */ nop
/* E0808 8014A108 3C014074 */ lui $at, 0x4074
/* E080C 8014A10C 44810800 */ mtc1 $at, $f1
/* E0810 8014A110 44800000 */ mtc1 $zero, $f0
/* E0814 8014A114 3C014050 */ lui $at, 0x4050
/* E0818 8014A118 44811800 */ mtc1 $at, $f3
/* E081C 8014A11C 44801000 */ mtc1 $zero, $f2
/* E0820 8014A120 4620A503 */ div.d $f20, $f20, $f0
/* E0824 8014A124 4622A501 */ sub.d $f20, $f20, $f2
/* E0828 8014A128 3C018015 */ lui $at, %hi(D_80151278)
/* E082C 8014A12C D4201278 */ ldc1 $f0, %lo(D_80151278)($at)
/* E0830 8014A130 4620A520 */ cvt.s.d $f20, $f20
/* E0834 8014A134 4600A321 */ cvt.d.s $f12, $f20
/* E0838 8014A138 46206305 */ abs.d $f12, $f12
/* E083C 8014A13C 46206302 */ mul.d $f12, $f12, $f0
/* E0840 8014A140 00000000 */ nop
/* E0844 8014A144 3C013F90 */ lui $at, 0x3f90
/* E0848 8014A148 44810800 */ mtc1 $at, $f1
/* E084C 8014A14C 44800000 */ mtc1 $zero, $f0
/* E0850 8014A150 00000000 */ nop
/* E0854 8014A154 46206302 */ mul.d $f12, $f12, $f0
/* E0858 8014A158 00000000 */ nop
/* E085C 8014A15C 3C018015 */ lui $at, %hi(D_80151280)
/* E0860 8014A160 D4201280 */ ldc1 $f0, %lo(D_80151280)($at)
/* E0864 8014A164 46206302 */ mul.d $f12, $f12, $f0
/* E0868 8014A168 00000000 */ nop
/* E086C 8014A16C 3C018015 */ lui $at, %hi(D_80151288)
/* E0870 8014A170 D4201288 */ ldc1 $f0, %lo(D_80151288)($at)
/* E0874 8014A174 46206303 */ div.d $f12, $f12, $f0
/* E0878 8014A178 0C00A85B */ jal sin_rad
/* E087C 8014A17C 46206320 */ cvt.s.d $f12, $f12
/* E0880 8014A180 4600A502 */ mul.s $f20, $f20, $f0
/* E0884 8014A184 00000000 */ nop
/* E0888 8014A188 4600A10D */ trunc.w.s $f4, $f20
/* E088C 8014A18C 44022000 */ mfc1 $v0, $f4
/* E0890 8014A190 00000000 */ nop
/* E0894 8014A194 24420040 */ addiu $v0, $v0, 0x40
/* E0898 8014A198 A6220000 */ sh $v0, ($s1)
.L8014A19C:
/* E089C 8014A19C 8FBF0038 */ lw $ra, 0x38($sp)
/* E08A0 8014A1A0 8FB10034 */ lw $s1, 0x34($sp)
/* E08A4 8014A1A4 8FB00030 */ lw $s0, 0x30($sp)
/* E08A8 8014A1A8 D7B40040 */ ldc1 $f20, 0x40($sp)
/* E08AC 8014A1AC 03E00008 */ jr $ra
/* E08B0 8014A1B0 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,172 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sfx_compute_spatialized_sound_params_1
/* E08B4 8014A1B4 27BDFFC0 */ addiu $sp, $sp, -0x40
/* E08B8 8014A1B8 AFB00030 */ sw $s0, 0x30($sp)
/* E08BC 8014A1BC 00E0802D */ daddu $s0, $a3, $zero
/* E08C0 8014A1C0 AFB20038 */ sw $s2, 0x38($sp)
/* E08C4 8014A1C4 8FB20050 */ lw $s2, 0x50($sp)
/* E08C8 8014A1C8 27A20020 */ addiu $v0, $sp, 0x20
/* E08CC 8014A1CC AFA20010 */ sw $v0, 0x10($sp)
/* E08D0 8014A1D0 27A20024 */ addiu $v0, $sp, 0x24
/* E08D4 8014A1D4 AFA20014 */ sw $v0, 0x14($sp)
/* E08D8 8014A1D8 27A20028 */ addiu $v0, $sp, 0x28
/* E08DC 8014A1DC 44860000 */ mtc1 $a2, $f0
/* E08E0 8014A1E0 3C048007 */ lui $a0, %hi(gCurrentCameraID)
/* E08E4 8014A1E4 8C847410 */ lw $a0, %lo(gCurrentCameraID)($a0)
/* E08E8 8014A1E8 44067000 */ mfc1 $a2, $f14
/* E08EC 8014A1EC 3C05800B */ lui $a1, %hi(gCameras)
/* E08F0 8014A1F0 24A51D80 */ addiu $a1, $a1, %lo(gCameras)
/* E08F4 8014A1F4 AFB10034 */ sw $s1, 0x34($sp)
/* E08F8 8014A1F8 AFA20018 */ sw $v0, 0x18($sp)
/* E08FC 8014A1FC 00041080 */ sll $v0, $a0, 2
/* E0900 8014A200 00441021 */ addu $v0, $v0, $a0
/* E0904 8014A204 00021080 */ sll $v0, $v0, 2
/* E0908 8014A208 00441023 */ subu $v0, $v0, $a0
/* E090C 8014A20C 000218C0 */ sll $v1, $v0, 3
/* E0910 8014A210 00431021 */ addu $v0, $v0, $v1
/* E0914 8014A214 000210C0 */ sll $v0, $v0, 3
/* E0918 8014A218 00458821 */ addu $s1, $v0, $a1
/* E091C 8014A21C 44056000 */ mfc1 $a1, $f12
/* E0920 8014A220 44070000 */ mfc1 $a3, $f0
/* E0924 8014A224 AFBF003C */ sw $ra, 0x3c($sp)
/* E0928 8014A228 0C00B94E */ jal get_screen_coords
/* E092C 8014A22C 00000000 */ nop
/* E0930 8014A230 8FA20020 */ lw $v0, 0x20($sp)
/* E0934 8014A234 24420BB8 */ addiu $v0, $v0, 0xbb8
/* E0938 8014A238 2C421771 */ sltiu $v0, $v0, 0x1771
/* E093C 8014A23C 10400008 */ beqz $v0, .L8014A260
/* E0940 8014A240 24020001 */ addiu $v0, $zero, 1
/* E0944 8014A244 8FA30024 */ lw $v1, 0x24($sp)
/* E0948 8014A248 28620BB9 */ slti $v0, $v1, 0xbb9
/* E094C 8014A24C 10400003 */ beqz $v0, .L8014A25C
/* E0950 8014A250 2862F448 */ slti $v0, $v1, -0xbb8
/* E0954 8014A254 10400005 */ beqz $v0, .L8014A26C
/* E0958 8014A258 2405007F */ addiu $a1, $zero, 0x7f
.L8014A25C:
/* E095C 8014A25C 24020001 */ addiu $v0, $zero, 1
.L8014A260:
/* E0960 8014A260 A6020000 */ sh $v0, ($s0)
/* E0964 8014A264 08052903 */ j .L8014A40C
/* E0968 8014A268 A6400000 */ sh $zero, ($s2)
.L8014A26C:
/* E096C 8014A26C A6050000 */ sh $a1, ($s0)
/* E0970 8014A270 8FA20020 */ lw $v0, 0x20($sp)
/* E0974 8014A274 04410012 */ bgez $v0, .L8014A2C0
/* E0978 8014A278 00000000 */ nop
/* E097C 8014A27C 3C013E99 */ lui $at, 0x3e99
/* E0980 8014A280 3421999A */ ori $at, $at, 0x999a
/* E0984 8014A284 44811000 */ mtc1 $at, $f2
/* E0988 8014A288 44820000 */ mtc1 $v0, $f0
/* E098C 8014A28C 00000000 */ nop
/* E0990 8014A290 46800020 */ cvt.s.w $f0, $f0
/* E0994 8014A294 46020002 */ mul.s $f0, $f0, $f2
/* E0998 8014A298 00000000 */ nop
/* E099C 8014A29C 3C0142FE */ lui $at, 0x42fe
/* E09A0 8014A2A0 44811000 */ mtc1 $at, $f2
/* E09A4 8014A2A4 00000000 */ nop
/* E09A8 8014A2A8 46020000 */ add.s $f0, $f0, $f2
/* E09AC 8014A2AC 4600018D */ trunc.w.s $f6, $f0
/* E09B0 8014A2B0 44023000 */ mfc1 $v0, $f6
/* E09B4 8014A2B4 00000000 */ nop
/* E09B8 8014A2B8 A6020000 */ sh $v0, ($s0)
/* E09BC 8014A2BC AFA00020 */ sw $zero, 0x20($sp)
.L8014A2C0:
/* E09C0 8014A2C0 8624000A */ lh $a0, 0xa($s1)
/* E09C4 8014A2C4 8FA30020 */ lw $v1, 0x20($sp)
/* E09C8 8014A2C8 0083102A */ slt $v0, $a0, $v1
/* E09CC 8014A2CC 10400013 */ beqz $v0, .L8014A31C
/* E09D0 8014A2D0 00641023 */ subu $v0, $v1, $a0
/* E09D4 8014A2D4 3C013E99 */ lui $at, 0x3e99
/* E09D8 8014A2D8 3421999A */ ori $at, $at, 0x999a
/* E09DC 8014A2DC 44810000 */ mtc1 $at, $f0
/* E09E0 8014A2E0 44821000 */ mtc1 $v0, $f2
/* E09E4 8014A2E4 00000000 */ nop
/* E09E8 8014A2E8 468010A0 */ cvt.s.w $f2, $f2
/* E09EC 8014A2EC 46001082 */ mul.s $f2, $f2, $f0
/* E09F0 8014A2F0 00000000 */ nop
/* E09F4 8014A2F4 3C0142FE */ lui $at, 0x42fe
/* E09F8 8014A2F8 44810000 */ mtc1 $at, $f0
/* E09FC 8014A2FC 00000000 */ nop
/* E0A00 8014A300 46020001 */ sub.s $f0, $f0, $f2
/* E0A04 8014A304 4600018D */ trunc.w.s $f6, $f0
/* E0A08 8014A308 44023000 */ mfc1 $v0, $f6
/* E0A0C 8014A30C 00000000 */ nop
/* E0A10 8014A310 A6020000 */ sh $v0, ($s0)
/* E0A14 8014A314 8622000A */ lh $v0, 0xa($s1)
/* E0A18 8014A318 AFA20020 */ sw $v0, 0x20($sp)
.L8014A31C:
/* E0A1C 8014A31C 24031388 */ addiu $v1, $zero, 0x1388
/* E0A20 8014A320 8FA20028 */ lw $v0, 0x28($sp)
/* E0A24 8014A324 3C01447A */ lui $at, 0x447a
/* E0A28 8014A328 44811000 */ mtc1 $at, $f2
/* E0A2C 8014A32C 00621823 */ subu $v1, $v1, $v0
/* E0A30 8014A330 44830000 */ mtc1 $v1, $f0
/* E0A34 8014A334 00000000 */ nop
/* E0A38 8014A338 46800020 */ cvt.s.w $f0, $f0
/* E0A3C 8014A33C 46000005 */ abs.s $f0, $f0
/* E0A40 8014A340 4600103C */ c.lt.s $f2, $f0
/* E0A44 8014A344 00000000 */ nop
/* E0A48 8014A348 45030001 */ bc1tl .L8014A350
/* E0A4C 8014A34C 46001006 */ mov.s $f0, $f2
.L8014A350:
/* E0A50 8014A350 3C0144BB */ lui $at, 0x44bb
/* E0A54 8014A354 34218000 */ ori $at, $at, 0x8000
/* E0A58 8014A358 44811000 */ mtc1 $at, $f2
/* E0A5C 8014A35C 86020000 */ lh $v0, ($s0)
/* E0A60 8014A360 46001081 */ sub.s $f2, $f2, $f0
/* E0A64 8014A364 44820000 */ mtc1 $v0, $f0
/* E0A68 8014A368 00000000 */ nop
/* E0A6C 8014A36C 46800020 */ cvt.s.w $f0, $f0
/* E0A70 8014A370 46020002 */ mul.s $f0, $f0, $f2
/* E0A74 8014A374 00000000 */ nop
/* E0A78 8014A378 3C013A83 */ lui $at, 0x3a83
/* E0A7C 8014A37C 3421126F */ ori $at, $at, 0x126f
/* E0A80 8014A380 44811000 */ mtc1 $at, $f2
/* E0A84 8014A384 00000000 */ nop
/* E0A88 8014A388 46020002 */ mul.s $f0, $f0, $f2
/* E0A8C 8014A38C 00000000 */ nop
/* E0A90 8014A390 4600018D */ trunc.w.s $f6, $f0
/* E0A94 8014A394 44023000 */ mfc1 $v0, $f6
/* E0A98 8014A398 00000000 */ nop
/* E0A9C 8014A39C A6020000 */ sh $v0, ($s0)
/* E0AA0 8014A3A0 00021400 */ sll $v0, $v0, 0x10
/* E0AA4 8014A3A4 00021403 */ sra $v0, $v0, 0x10
/* E0AA8 8014A3A8 28420080 */ slti $v0, $v0, 0x80
/* E0AAC 8014A3AC 50400001 */ beql $v0, $zero, .L8014A3B4
/* E0AB0 8014A3B0 A6050000 */ sh $a1, ($s0)
.L8014A3B4:
/* E0AB4 8014A3B4 86020000 */ lh $v0, ($s0)
/* E0AB8 8014A3B8 1C400002 */ bgtz $v0, .L8014A3C4
/* E0ABC 8014A3BC 24020001 */ addiu $v0, $zero, 1
/* E0AC0 8014A3C0 A6020000 */ sh $v0, ($s0)
.L8014A3C4:
/* E0AC4 8014A3C4 3C014280 */ lui $at, 0x4280
/* E0AC8 8014A3C8 44811000 */ mtc1 $at, $f2
/* E0ACC 8014A3CC C7A00020 */ lwc1 $f0, 0x20($sp)
/* E0AD0 8014A3D0 46800020 */ cvt.s.w $f0, $f0
/* E0AD4 8014A3D4 46020002 */ mul.s $f0, $f0, $f2
/* E0AD8 8014A3D8 00000000 */ nop
/* E0ADC 8014A3DC 8622000A */ lh $v0, 0xa($s1)
/* E0AE0 8014A3E0 3C014200 */ lui $at, 0x4200
/* E0AE4 8014A3E4 44812000 */ mtc1 $at, $f4
/* E0AE8 8014A3E8 44821000 */ mtc1 $v0, $f2
/* E0AEC 8014A3EC 00000000 */ nop
/* E0AF0 8014A3F0 468010A0 */ cvt.s.w $f2, $f2
/* E0AF4 8014A3F4 46020003 */ div.s $f0, $f0, $f2
/* E0AF8 8014A3F8 46040000 */ add.s $f0, $f0, $f4
/* E0AFC 8014A3FC 4600018D */ trunc.w.s $f6, $f0
/* E0B00 8014A400 44023000 */ mfc1 $v0, $f6
/* E0B04 8014A404 00000000 */ nop
/* E0B08 8014A408 A6420000 */ sh $v0, ($s2)
.L8014A40C:
/* E0B0C 8014A40C 8FBF003C */ lw $ra, 0x3c($sp)
/* E0B10 8014A410 8FB20038 */ lw $s2, 0x38($sp)
/* E0B14 8014A414 8FB10034 */ lw $s1, 0x34($sp)
/* E0B18 8014A418 8FB00030 */ lw $s0, 0x30($sp)
/* E0B1C 8014A41C 03E00008 */ jr $ra
/* E0B20 8014A420 27BD0040 */ addiu $sp, $sp, 0x40
/* E0B24 8014A424 00000000 */ nop
/* E0B28 8014A428 00000000 */ nop
/* E0B2C 8014A42C 00000000 */ nop

View File

@ -1,276 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80151250
.double 5550.0
dlabel D_80151258
.double 127.0
dlabel D_80151260
.double 3.6
dlabel D_80151268
.double 127.0
.section .text
glabel sfx_compute_spatialized_sound_params_2
/* DF950 80149250 44860000 */ mtc1 $a2, $f0
/* DF954 80149254 3C048007 */ lui $a0, %hi(gCurrentCameraID)
/* DF958 80149258 8C847410 */ lw $a0, %lo(gCurrentCameraID)($a0)
/* DF95C 8014925C 44056000 */ mfc1 $a1, $f12
/* DF960 80149260 44067000 */ mfc1 $a2, $f14
/* DF964 80149264 27BDFF98 */ addiu $sp, $sp, -0x68
/* DF968 80149268 AFB20038 */ sw $s2, 0x38($sp)
/* DF96C 8014926C 8FB20078 */ lw $s2, 0x78($sp)
/* DF970 80149270 AFB10034 */ sw $s1, 0x34($sp)
/* DF974 80149274 00E0882D */ daddu $s1, $a3, $zero
/* DF978 80149278 AFB00030 */ sw $s0, 0x30($sp)
/* DF97C 8014927C 8FB0007C */ lw $s0, 0x7c($sp)
/* DF980 80149280 27A20020 */ addiu $v0, $sp, 0x20
/* DF984 80149284 AFA20010 */ sw $v0, 0x10($sp)
/* DF988 80149288 27A20024 */ addiu $v0, $sp, 0x24
/* DF98C 8014928C AFA20014 */ sw $v0, 0x14($sp)
/* DF990 80149290 44070000 */ mfc1 $a3, $f0
/* DF994 80149294 27A20028 */ addiu $v0, $sp, 0x28
/* DF998 80149298 AFBF003C */ sw $ra, 0x3c($sp)
/* DF99C 8014929C F7BC0060 */ sdc1 $f28, 0x60($sp)
/* DF9A0 801492A0 F7BA0058 */ sdc1 $f26, 0x58($sp)
/* DF9A4 801492A4 F7B80050 */ sdc1 $f24, 0x50($sp)
/* DF9A8 801492A8 F7B60048 */ sdc1 $f22, 0x48($sp)
/* DF9AC 801492AC F7B40040 */ sdc1 $f20, 0x40($sp)
/* DF9B0 801492B0 0C00B94E */ jal get_screen_coords
/* DF9B4 801492B4 AFA20018 */ sw $v0, 0x18($sp)
/* DF9B8 801492B8 8FA40020 */ lw $a0, 0x20($sp)
/* DF9BC 801492BC 24821388 */ addiu $v0, $a0, 0x1388
/* DF9C0 801492C0 2C422711 */ sltiu $v0, $v0, 0x2711
/* DF9C4 801492C4 10400020 */ beqz $v0, .L80149348
/* DF9C8 801492C8 2402FFFF */ addiu $v0, $zero, -1
/* DF9CC 801492CC 8FA30024 */ lw $v1, 0x24($sp)
/* DF9D0 801492D0 28621389 */ slti $v0, $v1, 0x1389
/* DF9D4 801492D4 1040001B */ beqz $v0, .L80149344
/* DF9D8 801492D8 2862EC78 */ slti $v0, $v1, -0x1388
/* DF9DC 801492DC 1440001A */ bnez $v0, .L80149348
/* DF9E0 801492E0 2402FFFF */ addiu $v0, $zero, -1
/* DF9E4 801492E4 3C020002 */ lui $v0, 2
/* DF9E8 801492E8 02021024 */ and $v0, $s0, $v0
/* DF9EC 801492EC 10400008 */ beqz $v0, .L80149310
/* DF9F0 801492F0 2482001E */ addiu $v0, $a0, 0x1e
/* DF9F4 801492F4 2C42017D */ sltiu $v0, $v0, 0x17d
/* DF9F8 801492F8 10400012 */ beqz $v0, .L80149344
/* DF9FC 801492FC 2862FFE2 */ slti $v0, $v1, -0x1e
/* DFA00 80149300 14400011 */ bnez $v0, .L80149348
/* DFA04 80149304 2402FFFF */ addiu $v0, $zero, -1
/* DFA08 80149308 080524CF */ j .L8014933C
/* DFA0C 8014930C 2862010F */ slti $v0, $v1, 0x10f
.L80149310:
/* DFA10 80149310 3C020004 */ lui $v0, 4
/* DFA14 80149314 02021024 */ and $v0, $s0, $v0
/* DFA18 80149318 10400003 */ beqz $v0, .L80149328
/* DFA1C 8014931C 2482001E */ addiu $v0, $a0, 0x1e
/* DFA20 80149320 080524CF */ j .L8014933C
/* DFA24 80149324 2C42017D */ sltiu $v0, $v0, 0x17d
.L80149328:
/* DFA28 80149328 3C020008 */ lui $v0, 8
/* DFA2C 8014932C 02021024 */ and $v0, $s0, $v0
/* DFA30 80149330 10400008 */ beqz $v0, .L80149354
/* DFA34 80149334 2462001E */ addiu $v0, $v1, 0x1e
/* DFA38 80149338 2C42012D */ sltiu $v0, $v0, 0x12d
.L8014933C:
/* DFA3C 8014933C 14400006 */ bnez $v0, .L80149358
/* DFA40 80149340 240300A0 */ addiu $v1, $zero, 0xa0
.L80149344:
/* DFA44 80149344 2402FFFF */ addiu $v0, $zero, -1
.L80149348:
/* DFA48 80149348 A6220000 */ sh $v0, ($s1)
/* DFA4C 8014934C 08052575 */ j .L801495D4
/* DFA50 80149350 A6400000 */ sh $zero, ($s2)
.L80149354:
/* DFA54 80149354 240300A0 */ addiu $v1, $zero, 0xa0
.L80149358:
/* DFA58 80149358 8FA20020 */ lw $v0, 0x20($sp)
/* DFA5C 8014935C 4480C000 */ mtc1 $zero, $f24
/* DFA60 80149360 4480C800 */ mtc1 $zero, $f25
/* DFA64 80149364 00621823 */ subu $v1, $v1, $v0
/* DFA68 80149368 04620001 */ bltzl $v1, .L80149370
/* DFA6C 8014936C 00031823 */ negu $v1, $v1
.L80149370:
/* DFA70 80149370 2463FF6F */ addiu $v1, $v1, -0x91
/* DFA74 80149374 44831000 */ mtc1 $v1, $f2
/* DFA78 80149378 00000000 */ nop
/* DFA7C 8014937C 468010A0 */ cvt.s.w $f2, $f2
/* DFA80 80149380 46001021 */ cvt.d.s $f0, $f2
/* DFA84 80149384 4638003C */ c.lt.d $f0, $f24
/* DFA88 80149388 00000000 */ nop
/* DFA8C 8014938C 45000003 */ bc1f .L8014939C
/* DFA90 80149390 0000202D */ daddu $a0, $zero, $zero
/* DFA94 80149394 44801000 */ mtc1 $zero, $f2
/* DFA98 80149398 00000000 */ nop
.L8014939C:
/* DFA9C 8014939C 4600120D */ trunc.w.s $f8, $f2
/* DFAA0 801493A0 44074000 */ mfc1 $a3, $f8
/* DFAA4 801493A4 3C013F80 */ lui $at, 0x3f80
/* DFAA8 801493A8 4481E000 */ mtc1 $at, $f28
/* DFAAC 801493AC 4480B000 */ mtc1 $zero, $f22
/* DFAB0 801493B0 4405E000 */ mfc1 $a1, $f28
/* DFAB4 801493B4 4406B000 */ mfc1 $a2, $f22
/* DFAB8 801493B8 240200C8 */ addiu $v0, $zero, 0xc8
/* DFABC 801493BC 0C00A8ED */ jal update_lerp
/* DFAC0 801493C0 AFA20010 */ sw $v0, 0x10($sp)
/* DFAC4 801493C4 46000686 */ mov.s $f26, $f0
/* DFAC8 801493C8 4600D021 */ cvt.d.s $f0, $f26
/* DFACC 801493CC 4638003C */ c.lt.d $f0, $f24
/* DFAD0 801493D0 00000000 */ nop
/* DFAD4 801493D4 45030001 */ bc1tl .L801493DC
/* DFAD8 801493D8 4600B686 */ mov.s $f26, $f22
.L801493DC:
/* DFADC 801493DC 8FA20024 */ lw $v0, 0x24($sp)
/* DFAE0 801493E0 24030078 */ addiu $v1, $zero, 0x78
/* DFAE4 801493E4 00621823 */ subu $v1, $v1, $v0
/* DFAE8 801493E8 04620001 */ bltzl $v1, .L801493F0
/* DFAEC 801493EC 00031823 */ negu $v1, $v1
.L801493F0:
/* DFAF0 801493F0 2463FF97 */ addiu $v1, $v1, -0x69
/* DFAF4 801493F4 44831000 */ mtc1 $v1, $f2
/* DFAF8 801493F8 00000000 */ nop
/* DFAFC 801493FC 468010A0 */ cvt.s.w $f2, $f2
/* DFB00 80149400 46001021 */ cvt.d.s $f0, $f2
/* DFB04 80149404 4638003C */ c.lt.d $f0, $f24
/* DFB08 80149408 00000000 */ nop
/* DFB0C 8014940C 45030001 */ bc1tl .L80149414
/* DFB10 80149410 4600B086 */ mov.s $f2, $f22
.L80149414:
/* DFB14 80149414 0000202D */ daddu $a0, $zero, $zero
/* DFB18 80149418 4600120D */ trunc.w.s $f8, $f2
/* DFB1C 8014941C 44074000 */ mfc1 $a3, $f8
/* DFB20 80149420 4405E000 */ mfc1 $a1, $f28
/* DFB24 80149424 4406B000 */ mfc1 $a2, $f22
/* DFB28 80149428 24020082 */ addiu $v0, $zero, 0x82
/* DFB2C 8014942C 0C00A8ED */ jal update_lerp
/* DFB30 80149430 AFA20010 */ sw $v0, 0x10($sp)
/* DFB34 80149434 46000506 */ mov.s $f20, $f0
/* DFB38 80149438 4600A021 */ cvt.d.s $f0, $f20
/* DFB3C 8014943C 4638003C */ c.lt.d $f0, $f24
/* DFB40 80149440 00000000 */ nop
/* DFB44 80149444 45030001 */ bc1tl .L8014944C
/* DFB48 80149448 4600B506 */ mov.s $f20, $f22
.L8014944C:
/* DFB4C 8014944C 3C018015 */ lui $at, %hi(D_80151250)
/* DFB50 80149450 D4201250 */ ldc1 $f0, %lo(D_80151250)($at)
/* DFB54 80149454 C7A20028 */ lwc1 $f2, 0x28($sp)
/* DFB58 80149458 468010A1 */ cvt.d.w $f2, $f2
/* DFB5C 8014945C 46201081 */ sub.d $f2, $f2, $f0
/* DFB60 80149460 462010A0 */ cvt.s.d $f2, $f2
/* DFB64 80149464 46001021 */ cvt.d.s $f0, $f2
/* DFB68 80149468 4638003C */ c.lt.d $f0, $f24
/* DFB6C 8014946C 00000000 */ nop
/* DFB70 80149470 45030001 */ bc1tl .L80149478
/* DFB74 80149474 4600B086 */ mov.s $f2, $f22
.L80149478:
/* DFB78 80149478 0000202D */ daddu $a0, $zero, $zero
/* DFB7C 8014947C 4600120D */ trunc.w.s $f8, $f2
/* DFB80 80149480 44074000 */ mfc1 $a3, $f8
/* DFB84 80149484 4405E000 */ mfc1 $a1, $f28
/* DFB88 80149488 4406B000 */ mfc1 $a2, $f22
/* DFB8C 8014948C 240200FA */ addiu $v0, $zero, 0xfa
/* DFB90 80149490 0C00A8ED */ jal update_lerp
/* DFB94 80149494 AFA20010 */ sw $v0, 0x10($sp)
/* DFB98 80149498 46000086 */ mov.s $f2, $f0
/* DFB9C 8014949C 46001021 */ cvt.d.s $f0, $f2
/* DFBA0 801494A0 4638003C */ c.lt.d $f0, $f24
/* DFBA4 801494A4 00000000 */ nop
/* DFBA8 801494A8 45030001 */ bc1tl .L801494B0
/* DFBAC 801494AC 4600B086 */ mov.s $f2, $f22
.L801494B0:
/* DFBB0 801494B0 4614D002 */ mul.s $f0, $f26, $f20
/* DFBB4 801494B4 00000000 */ nop
/* DFBB8 801494B8 46020002 */ mul.s $f0, $f0, $f2
/* DFBBC 801494BC 00000000 */ nop
/* DFBC0 801494C0 3C018015 */ lui $at, %hi(D_80151258)
/* DFBC4 801494C4 D4261258 */ ldc1 $f6, %lo(D_80151258)($at)
/* DFBC8 801494C8 46000021 */ cvt.d.s $f0, $f0
/* DFBCC 801494CC 46260002 */ mul.d $f0, $f0, $f6
/* DFBD0 801494D0 00000000 */ nop
/* DFBD4 801494D4 46200120 */ cvt.s.d $f4, $f0
/* DFBD8 801494D8 3C01402E */ lui $at, 0x402e
/* DFBDC 801494DC 44810800 */ mtc1 $at, $f1
/* DFBE0 801494E0 44800000 */ mtc1 $zero, $f0
/* DFBE4 801494E4 460020A1 */ cvt.d.s $f2, $f4
/* DFBE8 801494E8 4620103C */ c.lt.d $f2, $f0
/* DFBEC 801494EC 00000000 */ nop
/* DFBF0 801494F0 45000005 */ bc1f .L80149508
/* DFBF4 801494F4 00000000 */ nop
/* DFBF8 801494F8 3C014170 */ lui $at, 0x4170
/* DFBFC 801494FC 44812000 */ mtc1 $at, $f4
/* DFC00 80149500 08052549 */ j .L80149524
/* DFC04 80149504 00000000 */ nop
.L80149508:
/* DFC08 80149508 4622303C */ c.lt.d $f6, $f2
/* DFC0C 8014950C 00000000 */ nop
/* DFC10 80149510 45000004 */ bc1f .L80149524
/* DFC14 80149514 00000000 */ nop
/* DFC18 80149518 3C0142FE */ lui $at, 0x42fe
/* DFC1C 8014951C 44812000 */ mtc1 $at, $f4
/* DFC20 80149520 00000000 */ nop
.L80149524:
/* DFC24 80149524 4600220D */ trunc.w.s $f8, $f4
/* DFC28 80149528 44024000 */ mfc1 $v0, $f8
/* DFC2C 8014952C 00000000 */ nop
/* DFC30 80149530 A6220000 */ sh $v0, ($s1)
/* DFC34 80149534 C7A00020 */ lwc1 $f0, 0x20($sp)
/* DFC38 80149538 46800020 */ cvt.s.w $f0, $f0
/* DFC3C 8014953C 3C014064 */ lui $at, 0x4064
/* DFC40 80149540 44811800 */ mtc1 $at, $f3
/* DFC44 80149544 44801000 */ mtc1 $zero, $f2
/* DFC48 80149548 46000021 */ cvt.d.s $f0, $f0
/* DFC4C 8014954C 46220001 */ sub.d $f0, $f0, $f2
/* DFC50 80149550 3C018015 */ lui $at, %hi(D_80151260)
/* DFC54 80149554 D4221260 */ ldc1 $f2, %lo(D_80151260)($at)
/* DFC58 80149558 3C014050 */ lui $at, 0x4050
/* DFC5C 8014955C 44812800 */ mtc1 $at, $f5
/* DFC60 80149560 44802000 */ mtc1 $zero, $f4
/* DFC64 80149564 46220003 */ div.d $f0, $f0, $f2
/* DFC68 80149568 46240000 */ add.d $f0, $f0, $f4
/* DFC6C 8014956C 46200120 */ cvt.s.d $f4, $f0
/* DFC70 80149570 3C013FF0 */ lui $at, 0x3ff0
/* DFC74 80149574 44810800 */ mtc1 $at, $f1
/* DFC78 80149578 44800000 */ mtc1 $zero, $f0
/* DFC7C 8014957C 460020A1 */ cvt.d.s $f2, $f4
/* DFC80 80149580 4620103C */ c.lt.d $f2, $f0
/* DFC84 80149584 00000000 */ nop
/* DFC88 80149588 45000005 */ bc1f .L801495A0
/* DFC8C 8014958C 00000000 */ nop
/* DFC90 80149590 3C013F80 */ lui $at, 0x3f80
/* DFC94 80149594 44812000 */ mtc1 $at, $f4
/* DFC98 80149598 08052571 */ j .L801495C4
/* DFC9C 8014959C 00000000 */ nop
.L801495A0:
/* DFCA0 801495A0 3C018015 */ lui $at, %hi(D_80151268)
/* DFCA4 801495A4 D4201268 */ ldc1 $f0, %lo(D_80151268)($at)
/* DFCA8 801495A8 4622003C */ c.lt.d $f0, $f2
/* DFCAC 801495AC 00000000 */ nop
/* DFCB0 801495B0 45000004 */ bc1f .L801495C4
/* DFCB4 801495B4 00000000 */ nop
/* DFCB8 801495B8 3C0142FE */ lui $at, 0x42fe
/* DFCBC 801495BC 44812000 */ mtc1 $at, $f4
/* DFCC0 801495C0 00000000 */ nop
.L801495C4:
/* DFCC4 801495C4 4600220D */ trunc.w.s $f8, $f4
/* DFCC8 801495C8 44024000 */ mfc1 $v0, $f8
/* DFCCC 801495CC 00000000 */ nop
/* DFCD0 801495D0 A6420000 */ sh $v0, ($s2)
.L801495D4:
/* DFCD4 801495D4 8FBF003C */ lw $ra, 0x3c($sp)
/* DFCD8 801495D8 8FB20038 */ lw $s2, 0x38($sp)
/* DFCDC 801495DC 8FB10034 */ lw $s1, 0x34($sp)
/* DFCE0 801495E0 8FB00030 */ lw $s0, 0x30($sp)
/* DFCE4 801495E4 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* DFCE8 801495E8 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* DFCEC 801495EC D7B80050 */ ldc1 $f24, 0x50($sp)
/* DFCF0 801495F0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* DFCF4 801495F4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* DFCF8 801495F8 03E00008 */ jr $ra
/* DFCFC 801495FC 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,100 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sfx_get_spatialized_sound_params
/* E0504 80149E04 27BDFFD8 */ addiu $sp, $sp, -0x28
/* E0508 80149E08 44860000 */ mtc1 $a2, $f0
/* E050C 80149E0C 8FA3003C */ lw $v1, 0x3c($sp)
/* E0510 80149E10 AFB1001C */ sw $s1, 0x1c($sp)
/* E0514 80149E14 AFB20020 */ sw $s2, 0x20($sp)
/* E0518 80149E18 8FB20038 */ lw $s2, 0x38($sp)
/* E051C 80149E1C 3C02FFFF */ lui $v0, 0xffff
/* E0520 80149E20 AFBF0024 */ sw $ra, 0x24($sp)
/* E0524 80149E24 AFB00018 */ sw $s0, 0x18($sp)
/* E0528 80149E28 00628024 */ and $s0, $v1, $v0
/* E052C 80149E2C 3063FFFF */ andi $v1, $v1, 0xffff
/* E0530 80149E30 24020001 */ addiu $v0, $zero, 1
/* E0534 80149E34 1062000D */ beq $v1, $v0, .L80149E6C
/* E0538 80149E38 00E0882D */ daddu $s1, $a3, $zero
/* E053C 80149E3C 10600005 */ beqz $v1, .L80149E54
/* E0540 80149E40 24020002 */ addiu $v0, $zero, 2
/* E0544 80149E44 1062000F */ beq $v1, $v0, .L80149E84
/* E0548 80149E48 3C020001 */ lui $v0, 1
/* E054C 80149E4C 080527A8 */ j .L80149EA0
/* E0550 80149E50 02021024 */ and $v0, $s0, $v0
.L80149E54:
/* E0554 80149E54 44060000 */ mfc1 $a2, $f0
/* E0558 80149E58 0220382D */ daddu $a3, $s1, $zero
/* E055C 80149E5C 0C0527D6 */ jal sfx_compute_spatialized_sound_params_0
/* E0560 80149E60 AFB20010 */ sw $s2, 0x10($sp)
/* E0564 80149E64 080527A7 */ j .L80149E9C
/* E0568 80149E68 3C020001 */ lui $v0, 1
.L80149E6C:
/* E056C 80149E6C 44060000 */ mfc1 $a2, $f0
/* E0570 80149E70 0220382D */ daddu $a3, $s1, $zero
/* E0574 80149E74 0C05286D */ jal sfx_compute_spatialized_sound_params_1
/* E0578 80149E78 AFB20010 */ sw $s2, 0x10($sp)
/* E057C 80149E7C 080527A7 */ j .L80149E9C
/* E0580 80149E80 3C020001 */ lui $v0, 1
.L80149E84:
/* E0584 80149E84 44060000 */ mfc1 $a2, $f0
/* E0588 80149E88 0220382D */ daddu $a3, $s1, $zero
/* E058C 80149E8C AFB20010 */ sw $s2, 0x10($sp)
/* E0590 80149E90 0C052494 */ jal sfx_compute_spatialized_sound_params_2
/* E0594 80149E94 AFB00014 */ sw $s0, 0x14($sp)
/* E0598 80149E98 3C020001 */ lui $v0, 1
.L80149E9C:
/* E059C 80149E9C 02021024 */ and $v0, $s0, $v0
.L80149EA0:
/* E05A0 80149EA0 10400003 */ beqz $v0, .L80149EB0
/* E05A4 80149EA4 3C020040 */ lui $v0, 0x40
/* E05A8 80149EA8 080527C6 */ j .L80149F18
/* E05AC 80149EAC A6200000 */ sh $zero, ($s1)
.L80149EB0:
/* E05B0 80149EB0 02021024 */ and $v0, $s0, $v0
/* E05B4 80149EB4 10400007 */ beqz $v0, .L80149ED4
/* E05B8 80149EB8 3C020020 */ lui $v0, 0x20
/* E05BC 80149EBC 86220000 */ lh $v0, ($s1)
/* E05C0 80149EC0 28420050 */ slti $v0, $v0, 0x50
/* E05C4 80149EC4 10400014 */ beqz $v0, .L80149F18
/* E05C8 80149EC8 24020050 */ addiu $v0, $zero, 0x50
/* E05CC 80149ECC 080527C6 */ j .L80149F18
/* E05D0 80149ED0 A6220000 */ sh $v0, ($s1)
.L80149ED4:
/* E05D4 80149ED4 02021024 */ and $v0, $s0, $v0
/* E05D8 80149ED8 10400007 */ beqz $v0, .L80149EF8
/* E05DC 80149EDC 3C020010 */ lui $v0, 0x10
/* E05E0 80149EE0 86220000 */ lh $v0, ($s1)
/* E05E4 80149EE4 2842003C */ slti $v0, $v0, 0x3c
/* E05E8 80149EE8 1040000B */ beqz $v0, .L80149F18
/* E05EC 80149EEC 2402003C */ addiu $v0, $zero, 0x3c
/* E05F0 80149EF0 080527C6 */ j .L80149F18
/* E05F4 80149EF4 A6220000 */ sh $v0, ($s1)
.L80149EF8:
/* E05F8 80149EF8 02021024 */ and $v0, $s0, $v0
/* E05FC 80149EFC 10400006 */ beqz $v0, .L80149F18
/* E0600 80149F00 00000000 */ nop
/* E0604 80149F04 86220000 */ lh $v0, ($s1)
/* E0608 80149F08 28420028 */ slti $v0, $v0, 0x28
/* E060C 80149F0C 10400002 */ beqz $v0, .L80149F18
/* E0610 80149F10 24020028 */ addiu $v0, $zero, 0x28
/* E0614 80149F14 A6220000 */ sh $v0, ($s1)
.L80149F18:
/* E0618 80149F18 86420000 */ lh $v0, ($s2)
/* E061C 80149F1C 1C400005 */ bgtz $v0, .L80149F34
/* E0620 80149F20 28420080 */ slti $v0, $v0, 0x80
/* E0624 80149F24 24020001 */ addiu $v0, $zero, 1
/* E0628 80149F28 A6420000 */ sh $v0, ($s2)
/* E062C 80149F2C 86420000 */ lh $v0, ($s2)
/* E0630 80149F30 28420080 */ slti $v0, $v0, 0x80
.L80149F34:
/* E0634 80149F34 14400002 */ bnez $v0, .L80149F40
/* E0638 80149F38 2402007F */ addiu $v0, $zero, 0x7f
/* E063C 80149F3C A6420000 */ sh $v0, ($s2)
.L80149F40:
/* E0640 80149F40 8FBF0024 */ lw $ra, 0x24($sp)
/* E0644 80149F44 8FB20020 */ lw $s2, 0x20($sp)
/* E0648 80149F48 8FB1001C */ lw $s1, 0x1c($sp)
/* E064C 80149F4C 8FB00018 */ lw $s0, 0x18($sp)
/* E0650 80149F50 03E00008 */ jr $ra
/* E0654 80149F54 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,57 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sfx_update_looping_sound_params
/* DFE34 80149734 27BDFFC8 */ addiu $sp, $sp, -0x38
/* DFE38 80149738 AFB10024 */ sw $s1, 0x24($sp)
/* DFE3C 8014973C 3C118016 */ lui $s1, %hi(D_80159AD0)
/* DFE40 80149740 8E319AD0 */ lw $s1, %lo(D_80159AD0)($s1)
/* DFE44 80149744 AFB20028 */ sw $s2, 0x28($sp)
/* DFE48 80149748 0000902D */ daddu $s2, $zero, $zero
/* DFE4C 8014974C AFB40030 */ sw $s4, 0x30($sp)
/* DFE50 80149750 27B40018 */ addiu $s4, $sp, 0x18
/* DFE54 80149754 AFB3002C */ sw $s3, 0x2c($sp)
/* DFE58 80149758 27B3001A */ addiu $s3, $sp, 0x1a
/* DFE5C 8014975C AFBF0034 */ sw $ra, 0x34($sp)
/* DFE60 80149760 AFB00020 */ sw $s0, 0x20($sp)
/* DFE64 80149764 26300004 */ addiu $s0, $s1, 4
.L80149768:
/* DFE68 80149768 8E230000 */ lw $v1, ($s1)
/* DFE6C 8014976C 30620001 */ andi $v0, $v1, 1
/* DFE70 80149770 50400016 */ beql $v0, $zero, .L801497CC
/* DFE74 80149774 26520001 */ addiu $s2, $s2, 1
/* DFE78 80149778 30620002 */ andi $v0, $v1, 2
/* DFE7C 8014977C 1040000D */ beqz $v0, .L801497B4
/* DFE80 80149780 00000000 */ nop
/* DFE84 80149784 AFB30010 */ sw $s3, 0x10($sp)
/* DFE88 80149788 8E020004 */ lw $v0, 4($s0)
/* DFE8C 8014978C AFA20014 */ sw $v0, 0x14($sp)
/* DFE90 80149790 8E060014 */ lw $a2, 0x14($s0)
/* DFE94 80149794 C60C000C */ lwc1 $f12, 0xc($s0)
/* DFE98 80149798 C60E0010 */ lwc1 $f14, 0x10($s0)
/* DFE9C 8014979C 0C052781 */ jal sfx_get_spatialized_sound_params
/* DFEA0 801497A0 0280382D */ daddu $a3, $s4, $zero
/* DFEA4 801497A4 92820001 */ lbu $v0, 1($s4)
/* DFEA8 801497A8 A2020008 */ sb $v0, 8($s0)
/* DFEAC 801497AC 92620001 */ lbu $v0, 1($s3)
/* DFEB0 801497B0 A2020009 */ sb $v0, 9($s0)
.L801497B4:
/* DFEB4 801497B4 92060009 */ lbu $a2, 9($s0)
/* DFEB8 801497B8 8607000A */ lh $a3, 0xa($s0)
/* DFEBC 801497BC 8E040000 */ lw $a0, ($s0)
/* DFEC0 801497C0 92050008 */ lbu $a1, 8($s0)
/* DFEC4 801497C4 0C0154CC */ jal snd_adjust_sound_with_shift
/* DFEC8 801497C8 26520001 */ addiu $s2, $s2, 1
.L801497CC:
/* DFECC 801497CC 2610001C */ addiu $s0, $s0, 0x1c
/* DFED0 801497D0 2A42000A */ slti $v0, $s2, 0xa
/* DFED4 801497D4 1440FFE4 */ bnez $v0, .L80149768
/* DFED8 801497D8 2631001C */ addiu $s1, $s1, 0x1c
/* DFEDC 801497DC 8FBF0034 */ lw $ra, 0x34($sp)
/* DFEE0 801497E0 8FB40030 */ lw $s4, 0x30($sp)
/* DFEE4 801497E4 8FB3002C */ lw $s3, 0x2c($sp)
/* DFEE8 801497E8 8FB20028 */ lw $s2, 0x28($sp)
/* DFEEC 801497EC 8FB10024 */ lw $s1, 0x24($sp)
/* DFEF0 801497F0 8FB00020 */ lw $s0, 0x20($sp)
/* DFEF4 801497F4 03E00008 */ jr $ra
/* DFEF8 801497F8 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -681,7 +681,7 @@ segments:
- [0xDD930, c, dd930_len_1c0]
- [0xDDAF0, c, ddaf0_len_c50]
- [0xDE740, c, de740_len_23f0]
- [0xDF950, c, DF950]
- [0xDF950, c, sfx]
- [0xE0B30, c, e0b30_len_b80]
- [0xE16B0, .data, a5dd0_len_114e0]
- [0xE2950, .data, B4580]
@ -704,7 +704,7 @@ segments:
- [0xE5820, .data, dc470_len_14c0]
- [0xE5840, .data, dd930_len_1c0]
- [0xE5850, .data, ddaf0_len_c50]
- [0xE59D0, .data, DF950]
- [0xE59D0, .data, sfx]
- [0xE5DF0, .data, e0b30_len_b80]
- [0xE5E40]
- type: code

View File

@ -1148,14 +1148,14 @@ osFlashWriteArray = 0x8006F61C; // type:func rom:0x4AA1C
osFlashReadArray = 0x8006F75C; // type:func rom:0x4AB5C
fx_big_dust_puff = 0x8006F890; // type:func rom:0x4AC90
fx_big_smoke_puff = 0x8006F8F0; // type:func rom:0x4ACF0
playFX_02 = 0x8006F950; // type:func rom:0x4AD50
playFX_03 = 0x8006F9B0; // type:func rom:0x4ADB0
playFX_04 = 0x8006FA10; // type:func rom:0x4AE10
playFX_05 = 0x8006FA70; // type:func rom:0x4AE70
fx_02 = 0x8006F950; // type:func rom:0x4AD50
fx_03 = 0x8006F9B0; // type:func rom:0x4ADB0
fx_04 = 0x8006FA10; // type:func rom:0x4AE10
fx_05 = 0x8006FA70; // type:func rom:0x4AE70
fx_landing_dust = 0x8006FAD0; // type:func rom:0x4AED0
fx_walking_dust = 0x8006FB30; // type:func rom:0x4AF30
fx_flower_splash = 0x8006FB90; // type:func rom:0x4AF90
fx_flower = 0x8006FBF0; // type:func rom:0x4AFF0
fx_flower_trail = 0x8006FBF0; // type:func rom:0x4AFF0
fx_cloud_puff = 0x8006FC50; // type:func rom:0x4B050
fx_cloud_trail = 0x8006FCB0; // type:func rom:0x4B0B0
fx_footprint = 0x8006FD10; // type:func rom:0x4B110
@ -1188,7 +1188,7 @@ fx_music_note = 0x800706D0; // type:func rom:0x4BAD0
fx_smoke_burst = 0x80070730; // type:func rom:0x4BB30
fx_sweat = 0x80070790; // type:func rom:0x4BB90
fx_sleep_bubble = 0x800707F0; // type:func rom:0x4BBF0
playFX_2A = 0x80070850; // type:func rom:0x4BC50
fx_2A = 0x80070850; // type:func rom:0x4BC50
fx_windy_leaves = 0x800708B0; // type:func rom:0x4BCB0
fx_falling_leaves = 0x80070910; // type:func rom:0x4BD10
fx_stars_spread = 0x80070970; // type:func rom:0x4BD70
@ -1206,8 +1206,8 @@ fx_shimmer_burst = 0x80070D90; // type:func rom:0x4C190
fx_energy_shockwave = 0x80070DF0; // type:func rom:0x4C1F0
fx_shimmer_wave = 0x80070E50; // type:func rom:0x4C250
fx_aura = 0x80070EB0; // type:func rom:0x4C2B0
playFX_3C = 0x80070F10; // type:func rom:0x4C310
playFX_3D = 0x80070F70; // type:func rom:0x4C370
fx_3C = 0x80070F10; // type:func rom:0x4C310
fx_3D = 0x80070F70; // type:func rom:0x4C370
fx_blast = 0x80070FD0; // type:func rom:0x4C3D0
fx_fire_flower = 0x80071030; // type:func rom:0x4C430
fx_recover = 0x80071090; // type:func rom:0x4C490
@ -1216,7 +1216,7 @@ fx_bombette_breaking = 0x80071150; // type:func rom:0x4C550
fx_firework = 0x800711B0; // type:func rom:0x4C5B0
fx_confetti = 0x80071210; // type:func rom:0x4C610
fx_snowfall = 0x80071270; // type:func rom:0x4C670
playFX_46_whirlwind = 0x800712D0; // type:func rom:0x4C6D0
fx_46 = 0x800712D0; // type:func rom:0x4C6D0
fx_gather_magic = 0x80071330; // type:func rom:0x4C730
fx_attack_result_text = 0x80071390; // type:func rom:0x4C790
fx_small_gold_sparkle = 0x800713F0; // type:func rom:0x4C7F0
@ -1245,14 +1245,14 @@ fx_water_splash = 0x80071C30; // type:func rom:0x4D030
fx_snowman_doll = 0x80071C90; // type:func rom:0x4D090
fx_fright_jar = 0x80071CF0; // type:func rom:0x4D0F0
fx_stop_watch = 0x80071D50; // type:func rom:0x4D150
playFX_63 = 0x80071DB0; // type:func rom:0x4D1B0
fx_63 = 0x80071DB0; // type:func rom:0x4D1B0
fx_throw_spiny = 0x80071E10; // type:func rom:0x4D210
playFX_65 = 0x80071E70; // type:func rom:0x4D270
fx_65 = 0x80071E70; // type:func rom:0x4D270
fx_tubba_heart_attack = 0x80071ED0; // type:func rom:0x4D2D0
fx_whirlwind = 0x80071F30; // type:func rom:0x4D330
fx_red_impact = 0x80071F90; // type:func rom:0x4D390
fx_floating_cloud_puff = 0x80071FF0; // type:func rom:0x4D3F0
playFX_6A = 0x80072050; // type:func rom:0x4D450
fx_6A = 0x80072050; // type:func rom:0x4D450
fx_energy_in_out = 0x800720B0; // type:func rom:0x4D4B0
fx_tattle_window = 0x80072110; // type:func rom:0x4D510
fx_shiny_flare = 0x80072170; // type:func rom:0x4D570
@ -1263,8 +1263,8 @@ fx_hieroglyphs = 0x800722F0; // type:func rom:0x4D6F0
fx_misc_particles = 0x80072350; // type:func rom:0x4D750
fx_static_status = 0x800723B0; // type:func rom:0x4D7B0
fx_moving_cloud = 0x80072410; // type:func rom:0x4D810
playFX_75 = 0x80072470; // type:func rom:0x4D870
playFX_76 = 0x800724D0; // type:func rom:0x4D8D0
fx_75 = 0x80072470; // type:func rom:0x4D870
fx_76 = 0x800724D0; // type:func rom:0x4D8D0
fx_firework_rocket = 0x80072530; // type:func rom:0x4D930
fx_peach_star_beam = 0x80072590; // type:func rom:0x4D990
fx_chapter_change = 0x800725F0; // type:func rom:0x4D9F0
@ -1280,7 +1280,7 @@ fx_sun = 0x80072950; // type:func rom:0x4DD50
fx_star_spirits_energy = 0x800729B0; // type:func rom:0x4DDB0
fx_pink_sparkles = 0x80072A10; // type:func rom:0x4DE10
fx_star_outline = 0x80072A70; // type:func rom:0x4DE70
playFX_86 = 0x80072AD0; // type:func rom:0x4DED0
fx_86 = 0x80072AD0; // type:func rom:0x4DED0
reset_battle_status = 0x80072B30; // type:func rom:0x4DF30
ALT_reset_battle_status = 0x80072BB0; // type:func rom:0x4DFB0
func_80072BCC = 0x80072BCC; // type:func rom:0x4DFCC
@ -6010,44 +6010,44 @@ func_E000C000 = 0xE000C000; // type:func rom:0x328110
func_E000C094 = 0xE000C094; // type:func rom:0x3281A4
func_E000C0C8 = 0xE000C0C8; // type:func rom:0x3281D8
landing_dust_main = 0xE000C160; // type:func rom:0x328270
fx_6_init = 0xE000C64C; // type:func rom:0x32875C
fx_6_update = 0xE000C654; // type:func rom:0x328764
fx_6_render = 0xE000C754; // type:func rom:0x328864
fx_6_appendGfx = 0xE000C798; // type:func rom:0x3288A8
fx_7_main = 0xE000E000; // type:func rom:0x32C110
fx_7_init = 0xE000E16C; // type:func rom:0x32C27C
fx_7_update = 0xE000E174; // type:func rom:0x32C284
fx_7_render = 0xE000E244; // type:func rom:0x32C354
fx_7_appendGfx = 0xE000E288; // type:func rom:0x32C398
landing_dust_init = 0xE000C64C; // type:func rom:0x32875C
landing_dust_update = 0xE000C654; // type:func rom:0x328764
landing_dust_render = 0xE000C754; // type:func rom:0x328864
landing_dust_appendGfx = 0xE000C798; // type:func rom:0x3288A8
walking_dust_main = 0xE000E000; // type:func rom:0x32C110
walking_dust_init = 0xE000E16C; // type:func rom:0x32C27C
walking_dust_update = 0xE000E174; // type:func rom:0x32C284
walking_dust_render = 0xE000E244; // type:func rom:0x32C354
walking_dust_appendGfx = 0xE000E288; // type:func rom:0x32C398
D_E000E660 = 0xE000E660; // type:data rom:0x32C770
D_E000E670 = 0xE000E670; // type:data rom:0x32C780
D_E000E684 = 0xE000E684; // type:data rom:0x32C794
func_E0010000 = 0xE0010000; // type:func rom:0x32C7A0
func_E0010104 = 0xE0010104; // type:func rom:0x32C8A4
fx_8_main = 0xE00101E8; // type:func rom:0x32C988
fx_8_init = 0xE00103EC; // type:func rom:0x32CB8C
fx_8_update = 0xE00103F4; // type:func rom:0x32CB94
fx_8_render = 0xE00104B0; // type:func rom:0x32CC50
flower_splash_main = 0xE00101E8; // type:func rom:0x32C988
flower_splash_init = 0xE00103EC; // type:func rom:0x32CB8C
flower_splash_update = 0xE00103F4; // type:func rom:0x32CB94
flower_splash_render = 0xE00104B0; // type:func rom:0x32CC50
func_E00104F4 = 0xE00104F4; // type:func rom:0x32CC94
fx_8_appendGfx = 0xE0010510; // type:func rom:0x32CCB0
flower_splash_appendGfx = 0xE0010510; // type:func rom:0x32CCB0
func_E0012000 = 0xE0012000; // type:func rom:0x32DD10
func_E0012104 = 0xE0012104; // type:func rom:0x32DE14
fx_9_main = 0xE0012204; // type:func rom:0x32DF14
fx_9_init = 0xE0012440; // type:func rom:0x32E150
fx_9_update = 0xE0012448; // type:func rom:0x32E158
fx_9_render = 0xE0012504; // type:func rom:0x32E214
flower_trail_main = 0xE0012204; // type:func rom:0x32DF14
flower_trail_init = 0xE0012440; // type:func rom:0x32E150
flower_trail_update = 0xE0012448; // type:func rom:0x32E158
flower_trail_render = 0xE0012504; // type:func rom:0x32E214
func_E0012548 = 0xE0012548; // type:func rom:0x32E258
fx_9_appendGfx = 0xE0012564; // type:func rom:0x32E274
fx_10_main = 0xE0014000; // type:func rom:0x32E490
fx_10_init = 0xE0014258; // type:func rom:0x32E6E8
fx_10_update = 0xE0014260; // type:func rom:0x32E6F0
fx_10_render = 0xE001449C; // type:func rom:0x32E92C
fx_10_appendGfx = 0xE00144E0; // type:func rom:0x32E970
fx_11_main = 0xE0016000; // type:func rom:0x32EE30
fx_11_init = 0xE0016220; // type:func rom:0x32F050
fx_11_update = 0xE0016228; // type:func rom:0x32F058
fx_11_render = 0xE0016410; // type:func rom:0x32F240
fx_11_appendGfx = 0xE0016454; // type:func rom:0x32F284
flower_trail_appendGfx = 0xE0012564; // type:func rom:0x32E274
cloud_puff_main = 0xE0014000; // type:func rom:0x32E490
cloud_puff_init = 0xE0014258; // type:func rom:0x32E6E8
cloud_puff_update = 0xE0014260; // type:func rom:0x32E6F0
cloud_puff_render = 0xE001449C; // type:func rom:0x32E92C
cloud_puff_appendGfx = 0xE00144E0; // type:func rom:0x32E970
cloud_trail_main = 0xE0016000; // type:func rom:0x32EE30
cloud_trail_init = 0xE0016220; // type:func rom:0x32F050
cloud_trail_update = 0xE0016228; // type:func rom:0x32F058
cloud_trail_render = 0xE0016410; // type:func rom:0x32F240
cloud_trail_appendGfx = 0xE0016454; // type:func rom:0x32F284
func_E0018000 = 0xE0018000; // type:func rom:0x32F580
footprint_main = 0xE0018078; // type:func rom:0x32F5F8
footprint_init = 0xE00182AC; // type:func rom:0x32F82C
@ -6392,6 +6392,11 @@ attack_result_text_update = 0xE00901C8; // type:func rom:0x38FAC8
attack_result_text_render = 0xE0090420; // type:func rom:0x38FD20
func_E0090428 = 0xE0090428; // type:func rom:0x38FD28
func_E0090444 = 0xE0090444; // type:func rom:0x38FD44
D_E0090A40 = 0xE0090A40; // type:data rom:0x390340
D_E0090A54 = 0xE0090A54; // type:data rom:0x390354
D_E0090A68 = 0xE0090A68; // type:data rom:0x390368
D_E0090A70 = 0xE0090A70; // type:data rom:0x390370
D_E0090A78 = 0xE0090A78; // type:data rom:0x390378
small_gold_sparkle_main = 0xE0092000; // type:func rom:0x391D30
small_gold_sparkle_init = 0xE00921AC; // type:func rom:0x391EDC
small_gold_sparkle_update = 0xE00921B4; // type:func rom:0x391EE4
@ -6789,11 +6794,13 @@ star_outline_init = 0xE012612C; // type:func rom:0x41348C
star_outline_update = 0xE0126134; // type:func rom:0x413494
star_outline_render = 0xE01264A4; // type:func rom:0x413804
star_outline_appendGfx = 0xE01264EC; // type:func rom:0x41384C
fx_134_main = 0xE0128000; // type:func rom:0x414BA0
fx_134_init = 0xE0128128; // type:func rom:0x414CC8
fx_134_update = 0xE0128130; // type:func rom:0x414CD0
fx_134_render = 0xE0128198; // type:func rom:0x414D38
fx_134_appendGfx = 0xE01281E0; // type:func rom:0x414D80
fx_86_main = 0xE0128000; // type:func rom:0x414BA0
fx_86_init = 0xE0128128; // type:func rom:0x414CC8
fx_86_update = 0xE0128130; // type:func rom:0x414CD0
fx_86_render = 0xE0128198; // type:func rom:0x414D38
fx_86_appendGfx = 0xE01281E0; // type:func rom:0x414D80
D_E0128480 = 0xE0128480; // type:data rom:0x415020
D_E01284B0 = 0xE01284B0; // type:data rom:0x415050
func_802A1000 = 0x802A1000; // type:func rom:0x415D90
func_802A1030 = 0x802A1030; // type:func rom:0x415DC0
func_802A1050 = 0x802A1050; // type:func rom:0x415DE0
@ -22368,7 +22375,7 @@ EF2680_set_script_owner_npc_anim = 0x8024219C; // type:func rom:0xEF47AC
EF2680_UnkDistFunc = 0x80242218; // type:func rom:0xEF4828
EF2680_UnkNpcAIFunc12 = 0x8024234C; // type:func rom:0xEF495C
EF2680_set_script_owner_npc_col_height = 0x802424B0; // type:func rom:0xEF4AC0
func_80242530_EF4B40 = 0x80242530; // type:func rom:0xEF4B40
EF2680_DeadUnkNpcAIMainFunc5 = 0x80242530; // type:func rom:0xEF4B40
func_8024299C_EF4FAC = 0x8024299C; // type:func rom:0xEF4FAC
D_802444BC_EF6ACC = 0x802444BC; // type:data rom:0xEF6ACC
D_802453B0_EF79C0 = 0x802453B0; // type:data rom:0xEF79C0
@ -22437,8 +22444,21 @@ D_090003B0 = 0x90003B0; // type:data
D_090003F0 = 0x90003F0; // type:data
D_09000430 = 0x9000430; // type:data
D_09000470 = 0x9000470; // type:data
D_09000800 = 0x9000800; // type:data
D_09000900 = 0x9000900; // type:data
D_090009E8 = 0x90009E8; // type:data
D_09000BA8 = 0x9000BA8; // type:data
D_09000BC8 = 0x9000BC8; // type:data
D_09000BE8 = 0x9000BE8; // type:data
D_09000C08 = 0x9000C08; // type:data
D_09000C28 = 0x9000C28; // type:data
D_09000C48 = 0x9000C48; // type:data
D_09000C68 = 0x9000C68; // type:data
D_09000C88 = 0x9000C88; // type:data
D_09000CA8 = 0x9000CA8; // type:data
D_09000CC8 = 0x9000CC8; // type:data
D_09000CE8 = 0x9000CE8; // type:data
D_09000D08 = 0x9000D08; // type:data
D_09000E08 = 0x9000E08; // type:data
D_09000E20 = 0x9000E20; // type:data
D_09000E38 = 0x9000E38; // type:data
@ -22452,7 +22472,19 @@ D_09001358 = 0x9001358; // type:data
D_09001360 = 0x9001360; // type:data
D_09001420 = 0x9001420; // type:data
D_09001430 = 0x9001430; // type:data
D_09001500 = 0x9001500; // type:data
D_09001508 = 0x9001508; // type:data
D_090015A8 = 0x90015A8; // type:data
D_09001610 = 0x9001610; // type:data
D_09001658 = 0x9001658; // type:data
D_090016A0 = 0x90016A0; // type:data
D_090016E8 = 0x90016E8; // type:data
D_09001730 = 0x9001730; // type:data
D_090018B8 = 0x90018B8; // type:data
D_090018D8 = 0x90018D8; // type:data
D_090018F8 = 0x90018F8; // type:data
D_09001918 = 0x9001918; // type:data
D_09001938 = 0x9001938; // type:data
D_09002170 = 0x9002170; // type:data
D_09002238 = 0x9002238; // type:data
D_090022E0 = 0x90022E0; // type:data
@ -23226,12 +23258,15 @@ flo_13_D_80247D00 = 0x80247D00; // type:data
raster.3 = 0x80247D00; // type:data
D_80247DF0 = 0x80247DF0; // type:data
D_80247E68 = 0x80247E68; // type:data
D_80248380 = 0x80248380; // type:data
D_80248380_kzn_19 = 0x80248380; // type:data
D_80248388 = 0x80248388; // type:data
D_802483C0 = 0x802483C0; // type:data
D_802483C4 = 0x802483C4; // type:data
D_802483D0 = 0x802483D0; // type:data
D_80248480 = 0x80248480; // type:data
D_8024854C = 0x8024854C; // type:data
D_8024854C_kzn_19 = 0x8024854C; // type:data
D_80248600 = 0x80248600; // type:data
D_80248624 = 0x80248624; // type:data
D_80248650 = 0x80248650; // type:data
@ -24665,11 +24700,6 @@ D_E008CB78 = 0xE008CB78; // type:data
D_E008CB80 = 0xE008CB80; // type:data
D_E008E890 = 0xE008E890; // type:data
D_E008E8A0 = 0xE008E8A0; // type:data
D_E0090A40 = 0xE0090A40; // type:data
D_E0090A54 = 0xE0090A54; // type:data
D_E0090A68 = 0xE0090A68; // type:data
D_E0090A70 = 0xE0090A70; // type:data
D_E0090A78 = 0xE0090A78; // type:data
D_E0090AA0 = 0xE0090AA0; // type:data
D_E0090AA8 = 0xE0090AA8; // type:data
D_E0090AB0 = 0xE0090AB0; // type:data
@ -24935,8 +24965,6 @@ D_E0126C20 = 0xE0126C20; // type:data
D_E0126C28 = 0xE0126C28; // type:data
D_E0126C30 = 0xE0126C30; // type:data
D_E0126C38 = 0xE0126C38; // type:data
D_E0128480 = 0xE0128480; // type:data
D_E01284B0 = 0xE01284B0; // type:data
D_E0200000 = 0xE0200000; // type:data
D_E0200694 = 0xE0200694; // type:data
D_E0200698 = 0xE0200698; // type:data