perfect_dark/src/lib/snd.c

5183 lines
191 KiB
C

#include <ultra64.h>
#include "n_libaudio.h"
#include "constants.h"
#include "game/file.h"
#include "game/lv.h"
#include "game/music.h"
#include "bss.h"
#include "lib/rzip.h"
#include "lib/args.h"
#include "lib/dma.h"
#include "lib/snd.h"
#include "lib/memory.h"
#include "lib/rng.h"
#include "lib/lib_2fc60.h"
#include "lib/lib_317f0.h"
#include "lib/lib_37650.h"
#include "lib/mp3.h"
#include "lib/lib_38d10.h"
#include "lib/lib_39be0.h"
#include "lib/lib_39c80.h"
#include "data.h"
#include "types.h"
struct var80094eb0 {
u16 unk00_00 : 1;
u16 unk00_01 : 2;
u16 unk00_03 : 2;
u16 unk00_05 : 11;
u32 unk04;
u32 unk08;
s32 unk0c;
s32 unk10;
s32 unk14;
s32 unk18;
};
s32 g_NumSounds;
u32 *g_ALSoundRomOffsets;
s32 g_SndMaxFxBusses;
u32 var80094eac;
struct var80094eb0 var80094eb0;
u32 var80094ecc;
u32 var80094ed0;
u32 var80094ed4;
struct var80094ed8 var80094ed8[3];
ALHeap g_SndHeap;
u32 var80095200;
ALBank *var80095204;
struct seqtable *g_SeqTable;
u32 var8009520c;
struct var80095210 var80095210;
u8 var800952a0[0x4060];
const char g_SndGuardString[] = "RUSSES SOUND GUARD STRING";
const char var70053b3c[] = "Snd: SoundHeaderCacheInit\n";
bool g_SndDisabled = false;
u32 var8005dda4 = 0x00000000;
s32 g_SndNosediveVolume = 0;
s32 g_SndNosediveAge240 = -1;
s32 g_SndNosediveDuration240 = 0;
s32 g_SndUfoVolume = 0;
s32 g_SndUfoAge240 = -1;
s32 g_SndUfoDuration240 = 0;
struct audiohandle *g_SndNosediveHandle = NULL;
struct audiohandle *g_SndUfoHandle = NULL;
u16 g_SfxVolume = 32767;
s32 g_SoundMode = (VERSION >= VERSION_NTSC_1_0 ? SOUNDMODE_STEREO : SOUNDMODE_SURROUND);
bool g_SndMp3Enabled = false;
#if VERSION >= VERSION_NTSC_1_0
s32 var8005ddd4 = 0x00000000;
u32 var8005ddd8 = 0x00000000;
u32 var8005dddc = 0x00000000;
#endif
u8 *g_SndGuardStringPtr = NULL;
enum audioconfig_e {
AUDIOCONFIG_00,
AUDIOCONFIG_01,
AUDIOCONFIG_02,
AUDIOCONFIG_03,
AUDIOCONFIG_04,
AUDIOCONFIG_05,
AUDIOCONFIG_06,
AUDIOCONFIG_07,
AUDIOCONFIG_08,
AUDIOCONFIG_09,
AUDIOCONFIG_10,
AUDIOCONFIG_11,
AUDIOCONFIG_12,
AUDIOCONFIG_13,
AUDIOCONFIG_14,
AUDIOCONFIG_15,
AUDIOCONFIG_16,
AUDIOCONFIG_17,
AUDIOCONFIG_18,
AUDIOCONFIG_19,
AUDIOCONFIG_20,
AUDIOCONFIG_21,
AUDIOCONFIG_22,
AUDIOCONFIG_23,
AUDIOCONFIG_24,
AUDIOCONFIG_25,
AUDIOCONFIG_26,
AUDIOCONFIG_27,
AUDIOCONFIG_28,
AUDIOCONFIG_29,
AUDIOCONFIG_30,
AUDIOCONFIG_31,
AUDIOCONFIG_32,
AUDIOCONFIG_33,
AUDIOCONFIG_34,
AUDIOCONFIG_35,
AUDIOCONFIG_36,
AUDIOCONFIG_37,
AUDIOCONFIG_38,
AUDIOCONFIG_39,
AUDIOCONFIG_40,
AUDIOCONFIG_41,
AUDIOCONFIG_42,
AUDIOCONFIG_43,
AUDIOCONFIG_44,
AUDIOCONFIG_45,
AUDIOCONFIG_46,
AUDIOCONFIG_47,
AUDIOCONFIG_48,
AUDIOCONFIG_49,
AUDIOCONFIG_50,
AUDIOCONFIG_51,
AUDIOCONFIG_52,
AUDIOCONFIG_53,
#if VERSION >= VERSION_NTSC_1_0
AUDIOCONFIG_54,
#endif
AUDIOCONFIG_55,
AUDIOCONFIG_56,
AUDIOCONFIG_57,
AUDIOCONFIG_58,
AUDIOCONFIG_59,
#if VERSION >= VERSION_NTSC_1_0
AUDIOCONFIG_60,
AUDIOCONFIG_61,
AUDIOCONFIG_62,
AUDIOCONFIG_63
#else
AUDIOCONFIG_60
#endif
};
// 3e04
struct audiorussmapping g_AudioRussMappings[] = {
/*0x0000*/ { 0x85ba, AUDIOCONFIG_59 },
/*0x0001*/ { 0x85a5, AUDIOCONFIG_15 },
/*0x0002*/ { 0x85a6, AUDIOCONFIG_15 },
/*0x0003*/ { 0x80bb, AUDIOCONFIG_14 },
/*0x0004*/ { 0x80bc, AUDIOCONFIG_14 },
/*0x0005*/ { 0x8007, AUDIOCONFIG_14 },
/*0x0006*/ { 0x8007, AUDIOCONFIG_14 },
/*0x0007*/ { 0x80be, AUDIOCONFIG_14 },
/*0x0008*/ { 0x80bf, AUDIOCONFIG_14 },
/*0x0009*/ { 0x80bf, AUDIOCONFIG_14 },
/*0x000a*/ { 0x80c0, AUDIOCONFIG_14 },
/*0x000b*/ { 0x8007, AUDIOCONFIG_14 },
/*0x000c*/ { 0x80c2, AUDIOCONFIG_14 },
/*0x000d*/ { 0x80c3, AUDIOCONFIG_14 },
/*0x000e*/ { 0x80c4, AUDIOCONFIG_14 },
/*0x000f*/ { 0x80c5, AUDIOCONFIG_14 },
/*0x0010*/ { 0x8007, AUDIOCONFIG_14 },
/*0x0011*/ { 0x80c7, AUDIOCONFIG_14 },
/*0x0012*/ { 0x80c8, AUDIOCONFIG_14 },
/*0x0013*/ { 0x80c9, AUDIOCONFIG_14 },
/*0x0014*/ { 0x80ca, AUDIOCONFIG_15 },
/*0x0015*/ { 0x80cb, AUDIOCONFIG_15 },
/*0x0016*/ { 0x80cc, AUDIOCONFIG_15 },
/*0x0017*/ { 0x8007, AUDIOCONFIG_15 },
/*0x0018*/ { 0x8007, AUDIOCONFIG_15 },
/*0x0019*/ { 0x8007, AUDIOCONFIG_15 },
/*0x001a*/ { 0x80d2, AUDIOCONFIG_15 },
/*0x001b*/ { 0x80d3, AUDIOCONFIG_15 },
/*0x001c*/ { 0x8007, AUDIOCONFIG_15 },
/*0x001d*/ { 0x80c6, AUDIOCONFIG_14 },
/*0x001e*/ { 0x80d6, AUDIOCONFIG_15 },
/*0x001f*/ { 0x80d7, AUDIOCONFIG_15 },
/*0x0020*/ { 0x80d8, AUDIOCONFIG_15 },
/*0x0021*/ { 0x80db, AUDIOCONFIG_14 },
/*0x0022*/ { 0x80da, AUDIOCONFIG_14 },
/*0x0023*/ { 0x80bf, AUDIOCONFIG_14 },
/*0x0024*/ { 0x80bf, AUDIOCONFIG_14 },
/*0x0025*/ { 0x80de, AUDIOCONFIG_14 },
/*0x0026*/ { 0x80e1, AUDIOCONFIG_15 },
/*0x0027*/ { 0x80e2, AUDIOCONFIG_15 },
/*0x0028*/ { 0x977a, AUDIOCONFIG_60 }, // Carrington: "Hello Joanna"
/*0x0029*/ { 0x97b0, AUDIOCONFIG_60 }, // Carrington: "Joanna, it's good to see you"
/*0x002a*/ { 0x97b1, AUDIOCONFIG_60 }, // Carrington: "Good day to you, Jo"
/*0x002b*/ { 0x977c, AUDIOCONFIG_60 }, // Female: "Hi there"
/*0x002c*/ { 0x9786, AUDIOCONFIG_60 }, // Grimshaw: "Welcome to hacker central"
/*0x002d*/ { 0x9787, AUDIOCONFIG_60 }, // Grimshaw: "Hi there"
/*0x002e*/ { 0x9788, AUDIOCONFIG_60 }, // Grimshaw: "Um, er, hi"
/*0x002f*/ { 0x978c, AUDIOCONFIG_60 }, // Holo girl: "Hi. What can I do for you?"
/*0x0030*/ { 0x9794, AUDIOCONFIG_60 }, // Hangar guy: "What do you want?"
/*0x0031*/ { 0x9784, AUDIOCONFIG_60 }, // Foster: "Ah, our star agent"
/*0x0032*/ { 0x978e, AUDIOCONFIG_60 }, // Male: "Hey there"
/*0x0033*/ { 0x978f, AUDIOCONFIG_60 }, // Male: "Hi"
/*0x0034*/ { 0x9790, AUDIOCONFIG_60 }, // Male "How's it going?"
/*0x0035*/ { 0x977e, AUDIOCONFIG_60 }, // Female: "Hello"
/*0x0036*/ { 0x977f, AUDIOCONFIG_60 }, // Holo girl: "Hi Jo"
/*0x0037*/ { 0x9780, AUDIOCONFIG_60 }, // Holo girl: "How's it going?"
/*0x0038*/ { 0x802e, AUDIOCONFIG_32 },
/*0x0039*/ { 0x8037, AUDIOCONFIG_35 },
/*0x003a*/ { 0x8037, AUDIOCONFIG_35 },
/*0x003b*/ { 0x806a, AUDIOCONFIG_33 },
/*0x003c*/ { 0x8037, AUDIOCONFIG_35 },
/*0x003d*/ { 0x8037, AUDIOCONFIG_35 },
/*0x003e*/ { 0x8037, AUDIOCONFIG_35 },
/*0x003f*/ { 0x806d, AUDIOCONFIG_33 },
/*0x0040*/ { 0x806e, AUDIOCONFIG_33 },
/*0x0041*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0042*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0043*/ { 0x8070, AUDIOCONFIG_33 },
/*0x0044*/ { 0x8071, AUDIOCONFIG_33 },
/*0x0045*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0046*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0047*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0048*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0049*/ { 0x8075, AUDIOCONFIG_33 },
/*0x004a*/ { 0x8037, AUDIOCONFIG_35 },
/*0x004b*/ { 0x8037, AUDIOCONFIG_35 },
/*0x004c*/ { 0x8079, AUDIOCONFIG_31 },
/*0x004d*/ { 0x8066, AUDIOCONFIG_31 },
/*0x004e*/ { 0x8037, AUDIOCONFIG_35 },
/*0x004f*/ { 0x8032, AUDIOCONFIG_31 },
/*0x0050*/ { 0x8037, AUDIOCONFIG_35 },
/*0x0051*/ { 0x807a, AUDIOCONFIG_35 },
/*0x0052*/ { 0x8059, AUDIOCONFIG_31 },
/*0x0053*/ { 0x8001, AUDIOCONFIG_35 },
/*0x0054*/ { 0x847e, AUDIOCONFIG_32 },
/*0x0055*/ { 0x847d, AUDIOCONFIG_33 },
/*0x0056*/ { 0x84f1, AUDIOCONFIG_32 },
/*0x0057*/ { 0x84f2, AUDIOCONFIG_32 },
/*0x0058*/ { 0x84f3, AUDIOCONFIG_32 },
/*0x0059*/ { 0x84f4, AUDIOCONFIG_33 },
/*0x005a*/ { 0x84f6, AUDIOCONFIG_33 },
/*0x005b*/ { 0x8506, AUDIOCONFIG_31 },
/*0x005c*/ { 0x84fd, AUDIOCONFIG_33 },
/*0x005d*/ { 0x8504, AUDIOCONFIG_33 },
/*0x005e*/ { 0x84fe, AUDIOCONFIG_33 },
/*0x005f*/ { 0x8503, AUDIOCONFIG_33 },
/*0x0060*/ { 0x8500, AUDIOCONFIG_32 },
/*0x0061*/ { 0x8501, AUDIOCONFIG_32 },
/*0x0062*/ { 0x8502, AUDIOCONFIG_32 },
/*0x0063*/ { 0x85ca, AUDIOCONFIG_31 },
/*0x0064*/ { 0x85cb, AUDIOCONFIG_31 },
/*0x0065*/ { 0x85d2, AUDIOCONFIG_31 },
/*0x0066*/ { 0x8074, AUDIOCONFIG_33 },
/*0x0067*/ { 0x85eb, AUDIOCONFIG_35 },
/*0x0068*/ { 0x85ec, AUDIOCONFIG_35 },
/*0x0069*/ { 0x85ed, AUDIOCONFIG_31 },
/*0x006a*/ { 0x85ee, AUDIOCONFIG_31 },
/*0x006b*/ { 0x85ef, AUDIOCONFIG_33 },
/*0x006c*/ { 0x85f0, AUDIOCONFIG_33 },
/*0x006d*/ { 0x85f1, AUDIOCONFIG_33 },
/*0x006e*/ { 0x85f2, AUDIOCONFIG_33 },
/*0x006f*/ { 0x85f3, AUDIOCONFIG_33 },
/*0x0070*/ { 0x85f4, AUDIOCONFIG_33 },
/*0x0071*/ { 0x8508, AUDIOCONFIG_31 },
/*0x0072*/ { 0x850a, AUDIOCONFIG_31 },
/*0x0073*/ { 0x8076, AUDIOCONFIG_33 },
/*0x0074*/ { 0x85f5, AUDIOCONFIG_30 },
/*0x0075*/ { 0x8509, AUDIOCONFIG_33 },
/*0x0076*/ { 0x8045, AUDIOCONFIG_45 },
/*0x0077*/ { 0x8046, AUDIOCONFIG_45 },
/*0x0078*/ { 0x8047, AUDIOCONFIG_25 },
/*0x0079*/ { 0x8048, AUDIOCONFIG_45 },
/*0x007a*/ { 0x80f0, AUDIOCONFIG_45 },
/*0x007b*/ { 0x80ef, AUDIOCONFIG_45 },
/*0x007c*/ { 0x8049, AUDIOCONFIG_45 },
/*0x007d*/ { 0x804a, AUDIOCONFIG_45 },
/*0x007e*/ { 0x804b, AUDIOCONFIG_45 },
/*0x007f*/ { 0x80d9, AUDIOCONFIG_45 },
/*0x0080*/ { 0x804c, AUDIOCONFIG_45 },
/*0x0081*/ { 0x80e7, AUDIOCONFIG_45 },
/*0x0082*/ { 0x80e6, AUDIOCONFIG_45 },
/*0x0083*/ { 0x80e0, AUDIOCONFIG_45 },
/*0x0084*/ { 0x80dc, AUDIOCONFIG_45 },
/*0x0085*/ { 0x80b9, AUDIOCONFIG_45 },
/*0x0086*/ { 0x80d4, AUDIOCONFIG_45 },
/*0x0087*/ { 0x80d0, AUDIOCONFIG_45 },
/*0x0088*/ { 0x80d1, AUDIOCONFIG_45 },
/*0x0089*/ { 0x8078, AUDIOCONFIG_45 },
/*0x008a*/ { 0x80dd, AUDIOCONFIG_45 },
/*0x008b*/ { 0x8003, AUDIOCONFIG_45 },
/*0x008c*/ { 0x802d, AUDIOCONFIG_21 },
/*0x008d*/ { 0x807b, AUDIOCONFIG_21 },
/*0x008e*/ { 0x807c, AUDIOCONFIG_21 },
/*0x008f*/ { 0x807d, AUDIOCONFIG_21 },
/*0x0090*/ { 0x807e, AUDIOCONFIG_21 },
/*0x0091*/ { 0x807f, AUDIOCONFIG_21 },
/*0x0092*/ { 0x8080, AUDIOCONFIG_21 },
/*0x0093*/ { 0x8081, AUDIOCONFIG_21 },
/*0x0094*/ { 0x8082, AUDIOCONFIG_21 },
/*0x0095*/ { 0x8083, AUDIOCONFIG_21 },
/*0x0096*/ { 0x8084, AUDIOCONFIG_21 },
/*0x0097*/ { 0x8085, AUDIOCONFIG_21 },
/*0x0098*/ { 0x80b4, AUDIOCONFIG_18 },
/*0x0099*/ { 0x80b5, AUDIOCONFIG_18 },
/*0x009a*/ { 0x80b6, AUDIOCONFIG_17 },
/*0x009b*/ { 0x80a9, AUDIOCONFIG_18 },
/*0x009c*/ { 0x80aa, AUDIOCONFIG_18 },
/*0x009d*/ { 0x80ab, AUDIOCONFIG_17 },
/*0x009e*/ { 0x80ac, AUDIOCONFIG_18 },
/*0x009f*/ { 0x80ad, AUDIOCONFIG_18 },
/*0x00a0*/ { 0x80ae, AUDIOCONFIG_17 },
/*0x00a1*/ { 0x80b1, AUDIOCONFIG_18 },
/*0x00a2*/ { 0x80b2, AUDIOCONFIG_18 },
/*0x00a3*/ { 0x80b3, AUDIOCONFIG_18 },
/*0x00a4*/ { 0x818a, AUDIOCONFIG_19 },
/*0x00a5*/ { VERSION >= VERSION_NTSC_1_0 ? 0xefdd : 0x8190, AUDIOCONFIG_19 },
/*0x00a6*/ { 0x805f, AUDIOCONFIG_32 },
/*0x00a7*/ { 0x8060, AUDIOCONFIG_32 },
/*0x00a8*/ { 0x8061, AUDIOCONFIG_32 },
/*0x00a9*/ { 0x8004, AUDIOCONFIG_32 },
/*0x00aa*/ { 0x80f1, AUDIOCONFIG_32 },
/*0x00ab*/ { 0x80f3, AUDIOCONFIG_32 },
/*0x00ac*/ { 0x8055, AUDIOCONFIG_16 },
/*0x00ad*/ { 0x8056, AUDIOCONFIG_16 },
/*0x00ae*/ { 0x8057, AUDIOCONFIG_16 },
/*0x00af*/ { 0x85f7, AUDIOCONFIG_52 },
/*0x00b0*/ { 0x8127, AUDIOCONFIG_29 },
/*0x00b1*/ { 0x8128, AUDIOCONFIG_29 },
/*0x00b2*/ { 0x8129, AUDIOCONFIG_29 },
/*0x00b3*/ { 0x812a, AUDIOCONFIG_29 },
/*0x00b4*/ { 0x812b, AUDIOCONFIG_29 },
/*0x00b5*/ { 0x812c, AUDIOCONFIG_29 },
/*0x00b6*/ { 0x812d, AUDIOCONFIG_50 },
/*0x00b7*/ { 0x812e, AUDIOCONFIG_50 },
/*0x00b8*/ { 0x8138, AUDIOCONFIG_50 },
/*0x00b9*/ { 0x8138, AUDIOCONFIG_28 },
/*0x00ba*/ { 0x812f, AUDIOCONFIG_51 },
/*0x00bb*/ { 0x8151, AUDIOCONFIG_51 },
/*0x00bc*/ { 0x8154, AUDIOCONFIG_51 },
/*0x00bd*/ { 0x8157, AUDIOCONFIG_51 },
/*0x00be*/ { 0x815a, AUDIOCONFIG_51 },
/*0x00bf*/ { 0x8132, AUDIOCONFIG_51 },
/*0x00c0*/ { 0x8139, AUDIOCONFIG_51 },
/*0x00c1*/ { 0x813f, AUDIOCONFIG_51 },
/*0x00c2*/ { 0x8145, AUDIOCONFIG_51 },
/*0x00c3*/ { 0x814b, AUDIOCONFIG_51 },
/*0x00c4*/ { 0x8161, AUDIOCONFIG_04 },
/*0x00c5*/ { 0x8162, AUDIOCONFIG_04 },
/*0x00c6*/ { 0x8163, AUDIOCONFIG_04 },
/*0x00c7*/ { 0x8164, AUDIOCONFIG_04 },
/*0x00c8*/ { 0x8165, AUDIOCONFIG_04 },
/*0x00c9*/ { 0x8166, AUDIOCONFIG_04 },
/*0x00ca*/ { 0x8167, AUDIOCONFIG_04 },
/*0x00cb*/ { 0x8168, AUDIOCONFIG_04 },
/*0x00cc*/ { 0x8169, AUDIOCONFIG_04 },
/*0x00cd*/ { 0x816a, AUDIOCONFIG_04 },
/*0x00ce*/ { 0x816b, AUDIOCONFIG_04 },
/*0x00cf*/ { 0x816c, AUDIOCONFIG_04 },
/*0x00d0*/ { 0x816d, AUDIOCONFIG_04 },
/*0x00d1*/ { 0x816e, AUDIOCONFIG_04 },
/*0x00d2*/ { 0x816f, AUDIOCONFIG_04 },
/*0x00d3*/ { 0x8170, AUDIOCONFIG_04 },
/*0x00d4*/ { 0x8171, AUDIOCONFIG_04 },
/*0x00d5*/ { 0x8172, AUDIOCONFIG_04 },
/*0x00d6*/ { 0x8173, AUDIOCONFIG_04 },
/*0x00d7*/ { 0x8174, AUDIOCONFIG_04 },
/*0x00d8*/ { 0x8175, AUDIOCONFIG_04 },
/*0x00d9*/ { 0x8176, AUDIOCONFIG_04 },
/*0x00da*/ { 0x8177, AUDIOCONFIG_04 },
/*0x00db*/ { 0x8178, AUDIOCONFIG_04 },
/*0x00dc*/ { 0x8179, AUDIOCONFIG_04 },
/*0x00dd*/ { 0x817a, AUDIOCONFIG_04 },
/*0x00de*/ { 0x817b, AUDIOCONFIG_04 },
/*0x00df*/ { 0x817c, AUDIOCONFIG_04 },
/*0x00e0*/ { 0x817d, AUDIOCONFIG_04 },
/*0x00e1*/ { 0x817e, AUDIOCONFIG_04 },
/*0x00e2*/ { 0x817f, AUDIOCONFIG_04 },
/*0x00e3*/ { 0x8180, AUDIOCONFIG_04 },
/*0x00e4*/ { 0x804d, AUDIOCONFIG_04 },
/*0x00e5*/ { 0x804e, AUDIOCONFIG_04 },
/*0x00e6*/ { 0x85f8, AUDIOCONFIG_05 },
/*0x00e7*/ { 0x85f9, AUDIOCONFIG_05 },
/*0x00e8*/ { 0x85fa, AUDIOCONFIG_05 },
/*0x00e9*/ { 0x85fb, AUDIOCONFIG_05 },
/*0x00ea*/ { 0x85fc, AUDIOCONFIG_06 },
/*0x00eb*/ { 0x85fd, AUDIOCONFIG_06 },
/*0x00ec*/ { 0x85fe, AUDIOCONFIG_06 },
/*0x00ed*/ { 0x85ff, AUDIOCONFIG_06 },
/*0x00ee*/ { 0x8600, AUDIOCONFIG_04 },
/*0x00ef*/ { 0x8601, AUDIOCONFIG_04 },
/*0x00f0*/ { 0x8602, AUDIOCONFIG_04 },
/*0x00f1*/ { 0x8603, AUDIOCONFIG_04 },
/*0x00f2*/ { 0x8604, AUDIOCONFIG_04 },
/*0x00f3*/ { 0x8605, AUDIOCONFIG_04 },
/*0x00f4*/ { 0x8606, AUDIOCONFIG_04 },
/*0x00f5*/ { 0x8606, AUDIOCONFIG_04 },
#if VERSION >= VERSION_NTSC_1_0
/*0x00f6*/ { 0x81d9, AUDIOCONFIG_61 },
#endif
/*0x00f7*/ { 0x8267, AUDIOCONFIG_02 },
/*0x00f8*/ { 0x8268, AUDIOCONFIG_02 },
/*0x00f9*/ { 0x8286, AUDIOCONFIG_02 },
/*0x00fa*/ { 0x8288, AUDIOCONFIG_02 },
/*0x00fb*/ { 0x8291, AUDIOCONFIG_02 },
/*0x00fc*/ { 0x829f, AUDIOCONFIG_02 },
/*0x00fd*/ { 0x82a1, AUDIOCONFIG_02 },
#if VERSION >= VERSION_NTSC_1_0
/*0x00fe*/ { 0x8af9, AUDIOCONFIG_47 }, // Cass: "You've become quite an annoyance"
/*0x00ff*/ { 0x8afa, AUDIOCONFIG_47 }, // Cass: "We meet again, girl"
/*0x0100*/ { 0x8afb, AUDIOCONFIG_47 }, // Cass: "Good night, Miss Dark"
#else
/*0x00fe*/ { 0x92f9, AUDIOCONFIG_47 }, // Cass: "You've become quite an annoyance"
/*0x00ff*/ { 0x92fa, AUDIOCONFIG_47 }, // Cass: "We meet again, girl"
/*0x0100*/ { 0x92fb, AUDIOCONFIG_47 }, // Cass: "Good night, Miss Dark"
#endif
/*0x0101*/ { 0x92fc, AUDIOCONFIG_47 }, // Cass: "Get her!"
/*0x0102*/ { 0x92fd, AUDIOCONFIG_47 }, // Cass: (laughing)
/*0x0103*/ { 0x9285, AUDIOCONFIG_02 }, // Scientist: "Who the hell are you?"
/*0x0104*/ { 0x9306, AUDIOCONFIG_48 }, // Programmer: "Yes, yes, I agree. Personality..."
/*0x0105*/ { 0x9307, AUDIOCONFIG_48 }, // Programmer: "No. I can start the process..."
/*0x0106*/ { 0x9308, AUDIOCONFIG_48 }, // Programmer: "I'll begin at once. Goodbye"
/*0x0107*/ { 0x9309, AUDIOCONFIG_48 }, // Programmer: "Security, help me!"
/*0x0108*/ { 0x930a, AUDIOCONFIG_48 }, // Programmer: "Help! Help!"
/*0x0109*/ { 0x8435, AUDIOCONFIG_49 },
/*0x010a*/ { 0x81b5, AUDIOCONFIG_07 },
/*0x010b*/ { 0x81b6, AUDIOCONFIG_08 },
/*0x010c*/ { 0x81b5, AUDIOCONFIG_09 },
/*0x010d*/ { 0x81b6, AUDIOCONFIG_10 },
/*0x010e*/ { 0x85f3, AUDIOCONFIG_11 },
/*0x010f*/ { 0x81b5, AUDIOCONFIG_12 },
/*0x0110*/ { 0x81b6, AUDIOCONFIG_13 },
/*0x0111*/ { 0x81b7, AUDIOCONFIG_20 },
/*0x0112*/ { 0x81b8, AUDIOCONFIG_20 },
/*0x0113*/ { 0x81c7, AUDIOCONFIG_20 },
/*0x0114*/ { 0x8037, AUDIOCONFIG_20 },
/*0x0115*/ { 0x81b7, AUDIOCONFIG_56 },
/*0x0116*/ { 0x81b9, AUDIOCONFIG_00 },
/*0x0117*/ { 0x81ba, AUDIOCONFIG_00 },
/*0x0118*/ { 0x81bb, AUDIOCONFIG_00 },
/*0x0119*/ { 0x81cb, AUDIOCONFIG_36 },
/*0x011a*/ { 0x81cb, AUDIOCONFIG_37 },
/*0x011b*/ { 0x81cb, AUDIOCONFIG_38 },
#if VERSION >= VERSION_NTSC_1_0
/*0x011c*/ { 0x81c6, AUDIOCONFIG_55 },
#else
/*0x011c*/ { 0x81c6, AUDIOCONFIG_55 },
#endif
/*0x011d*/ { 0x9278, AUDIOCONFIG_47 }, // "That's not how it goes"
/*0x011e*/ { 0x9279, AUDIOCONFIG_47 }, // "Give it to me. You're doing it wrong"
/*0x011f*/ { 0x927a, AUDIOCONFIG_47 }, // "Oh no, we're too late"
/*0x0120*/ { 0x927b, AUDIOCONFIG_47 }, // "Yes it is"
/*0x0121*/ { 0x927c, AUDIOCONFIG_47 }, // "Stop annoying me"
/*0x0122*/ { 0x927d, AUDIOCONFIG_47 }, // "She's here!"
/*0x0123*/ { 0x9277, AUDIOCONFIG_47 }, // "Will you just hurry up?"
/*0x0124*/ { 0x82fd, AUDIOCONFIG_02 }, // "Holy..."
/*0x0125*/ { 0x82fe, AUDIOCONFIG_02 }, // "What the hell?"
/*0x0126*/ { 0x8300, AUDIOCONFIG_02 }, // "Oh my god"
/*0x0127*/ { 0x8303, AUDIOCONFIG_02 }, // "Oh god I'm hit"
/*0x0128*/ { 0x830a, AUDIOCONFIG_02 }, // "Oh my god"
#if VERSION >= VERSION_NTSC_1_0
/*0x0129*/ { 0x8313, AUDIOCONFIG_62 }, // "Noooo!"
#endif
/*0x012a*/ { 0x8314, AUDIOCONFIG_02 }, // "Oh god he's dead!"
/*0x012b*/ { 0x832e, AUDIOCONFIG_02 }, // "Bloody stupid gun"
/*0x012c*/ { 0x8330, AUDIOCONFIG_02 }, // "Damn it"
/*0x012d*/ { 0x8333, AUDIOCONFIG_02 }, // "Damn, she's good"
/*0x012e*/ { 0x8334, AUDIOCONFIG_02 }, // "Cover my ass"
#if VERSION >= VERSION_NTSC_1_0
/*0x012f*/ { 0x834c, AUDIOCONFIG_62 }, // Death scream
#endif
/*0x0130*/ { 0x83a3, AUDIOCONFIG_02 }, // Female: "Damn she's good"
/*0x0131*/ { 0x83b9, AUDIOCONFIG_02 }, // Female: "My god"
/*0x0132*/ { 0x83c7, AUDIOCONFIG_02 }, // "Geez, that hurt"
/*0x0133*/ { 0x83cf, AUDIOCONFIG_02 }, // "Damn it, I'm taking fire"
/*0x0134*/ { 0x83d2, AUDIOCONFIG_02 }, // "God damn it"
/*0x0135*/ { 0x83d4, AUDIOCONFIG_02 }, // "Holy moley"
/*0x0136*/ { 0x83f3, AUDIOCONFIG_02 }, // "Damn, missed again"
/*0x0137*/ { 0x83f5, AUDIOCONFIG_02 }, // "Damn"
/*0x0138*/ { 0x83f6, AUDIOCONFIG_02 }, // "Hell, she's good"
/*0x0139*/ { 0x8400, AUDIOCONFIG_02 }, // "Let's get the hell out of here"
#if VERSION >= VERSION_NTSC_1_0
/*0x013a*/ { 0x8411, AUDIOCONFIG_62 }, // "Noooo!"
#endif
/*0x013b*/ { 0x8413, AUDIOCONFIG_02 }, // "Shoot, damn it"
/*0x013c*/ { 0x8414, AUDIOCONFIG_02 }, // "Oh god, I'm dying"
/*0x013d*/ { 0x8422, AUDIOCONFIG_02 }, // "God, run!"
/*0x013e*/ { 0x8432, AUDIOCONFIG_33 },
/*0x013f*/ { 0x843c, AUDIOCONFIG_58 },
/*0x0140*/ { 0x843d, AUDIOCONFIG_58 },
/*0x0141*/ { 0x84ab, AUDIOCONFIG_58 },
/*0x0142*/ { 0x843d, AUDIOCONFIG_58 },
/*0x0143*/ { 0x81b7, AUDIOCONFIG_58 },
/*0x0144*/ { 0x8477, AUDIOCONFIG_57 },
/*0x0145*/ { 0x8478, AUDIOCONFIG_57 },
#if VERSION >= VERSION_NTSC_1_0
/*0x0146*/ { 0x81c2, AUDIOCONFIG_54 },
/*0x0147*/ { 0x8479, AUDIOCONFIG_54 },
/*0x0148*/ { 0x81c3, AUDIOCONFIG_54 },
/*0x0149*/ { 0x81c4, AUDIOCONFIG_54 },
#else
/*0x0146*/ { 0x81c2, AUDIOCONFIG_55 },
/*0x0147*/ { 0x8479, AUDIOCONFIG_55 },
/*0x0148*/ { 0x81c3, AUDIOCONFIG_55 },
/*0x0149*/ { 0x81c4, AUDIOCONFIG_55 },
#endif
/*0x014a*/ { 0x8443, AUDIOCONFIG_02 }, // Civilian: "Oh my god"
/*0x014b*/ { 0x844e, AUDIOCONFIG_02 }, // "What the hell was that?"
#if VERSION >= VERSION_NTSC_1_0
/*0x014c*/ { 0x843c, AUDIOCONFIG_63 },
/*0x014d*/ { 0x847c, AUDIOCONFIG_63 },
/*0x014e*/ { 0x843d, AUDIOCONFIG_63 },
#endif
/*0x014f*/ { 0xf2ad, AUDIOCONFIG_01 }, // "Joanna, this is Jonathan. You're in grave danger"
/*0x0150*/ { 0xf2ae, AUDIOCONFIG_01 }, // "They've flooded the area with nerge gas"
/*0x0151*/ { 0xf2af, AUDIOCONFIG_01 }, // "Get our friend to the containment lab. There's a hiding place there"
/*0x0152*/ { 0xd2b0, AUDIOCONFIG_01 }, // "I'll contact you when you get there. Good luck"
/*0x0153*/ { 0xf2b1, AUDIOCONFIG_01 }, // "Good work Jo. We need to meet up. They're getting suspicious of me"
/*0x0154*/ { 0xd2b2, AUDIOCONFIG_01 }, // "Use the maintenance hatch I've opened in one of the containment labs. Hurry"
/*0x0155*/ { 0x92b8, AUDIOCONFIG_02 }, // "Damn it Joanna, cover me!"
/*0x0156*/ { 0x9b30, AUDIOCONFIG_02 }, // "Oh my god, a gun?!"
/*0x0157*/ { 0x9b27, AUDIOCONFIG_47 }, // "So you got here at last"
/*0x0158*/ { 0x9b28, AUDIOCONFIG_47 }, // "Hey, you're not, uh, security alert!"
/*0x0159*/ { 0x9b29, AUDIOCONFIG_47 }, // "No guns allowed in here. Put your weapon away"
/*0x015a*/ { 0x9b2a, AUDIOCONFIG_47 }, // "I won't tell you again. Lose the weapon"
/*0x015b*/ { 0x9b2b, AUDIOCONFIG_47 }, // "Right. I'm calling security"
/*0x015c*/ { 0x9b2c, AUDIOCONFIG_47 }, // "Everyone's been waiting for you"
/*0x015d*/ { 0x9a9d, AUDIOCONFIG_60 }, // "How's things?"
/*0x015e*/ { 0x9a9e, AUDIOCONFIG_60 }, // "Hey there"
/*0x015f*/ { 0x9a9f, AUDIOCONFIG_60 }, // "Hi. How are you?"
/*0x0160*/ { 0x8037, AUDIOCONFIG_04 },
/*0x0161*/ { 0x9271, AUDIOCONFIG_60 }, // Female: "Good afternoon"
/*0x0162*/ { 0x9275, AUDIOCONFIG_02 }, // Female: "Oh my god!"
/*0x0163*/ { 0x9acc, AUDIOCONFIG_60 }, // "Hi there"
/*0x0164*/ { 0x9acd, AUDIOCONFIG_60 }, // "How's things"
/*0x0165*/ { 0x9ad4, AUDIOCONFIG_60 }, // "Hello"
/*0x0166*/ { 0x9ad5, AUDIOCONFIG_60 }, // "Hey, what's up?"
/*0x0167*/ { 0x84c8, AUDIOCONFIG_02 }, // "What the hell?"
/*0x0168*/ { 0x84cd, AUDIOCONFIG_02 }, // "Geez"
/*0x0169*/ { 0x84ad, AUDIOCONFIG_46 },
/*0x016a*/ { 0x8507, AUDIOCONFIG_27 },
/*0x016b*/ { 0x84ee, AUDIOCONFIG_16 },
/*0x016c*/ { 0x84ef, AUDIOCONFIG_16 },
/*0x016d*/ { 0x84f0, AUDIOCONFIG_16 },
/*0x016e*/ { 0x92c8, AUDIOCONFIG_02 }, // President: "What the hell was that?"
/*0x016f*/ { 0x92c9, AUDIOCONFIG_02 }, // Trent: "How the hell did you get on board?"
/*0x0170*/ { 0xb3a0, AUDIOCONFIG_01 }, // Carrington: "We're getting a positive reading. The internal comms hub is nearby"
/*0x0171*/ { 0xb3a1, AUDIOCONFIG_01 }, // Carrington: "You're on the same floor as Cassandra's office"
/*0x0172*/ { 0xd3a3, AUDIOCONFIG_01 }, // Carrington: "The basement elevator must be around there somewhere"
/*0x0173*/ { 0xd3a4, AUDIOCONFIG_01 }, // Carrington: "That's the highest security sector. Dr Caroll has got to be nearby"
/*0x0174*/ { 0xd3a6, AUDIOCONFIG_01 }, // Grimshaw: "Reprogram the cleaning bot. It'll give you a way in"
/*0x0175*/ { 0xd3a7, AUDIOCONFIG_01 }, // Carrington: "Get out Jo! The levels are too high. Use the camspy"
/*0x0176*/ { 0xd3a8, AUDIOCONFIG_01 }, // Carrington: "They've locked down the ground floor. Get to the elevator"
/*0x0177*/ { 0xd3a9, AUDIOCONFIG_01 }, // Carrington: "That copter needs to be taken out of the jumpship will get shut down"
/*0x0178*/ { 0xd3ab, AUDIOCONFIG_01 }, // Carrington: "Don't keep the jumpship waiting. Get back to the landing pad"
/*0x0179*/ { 0xd3b0, AUDIOCONFIG_01 }, // Carrington: "The only place we could secure the equipment was a storm drain"
/*0x017a*/ { 0xd3b2, AUDIOCONFIG_01 }, // Grimshaw: "Reprogram that taxi. It's a mark 2 and should be compatible"
/*0x017b*/ { 0xd3b3, AUDIOCONFIG_01 }, // Carrington: The carpark lift is your only point of ingress"
/*0x017c*/ { 0xb3b6, AUDIOCONFIG_01 }, // Grimshaw: "The safe's heavily encrypted. The decoder's going to take a little longer"
/*0x017d*/ { 0xd3b8, AUDIOCONFIG_01 }, // Carrington: "The air intercept radar is controlled from that bunker"
/*0x017e*/ { 0xd3ba, AUDIOCONFIG_01 }, // Carrington: "The hangar lift is the other side of that huge door"
/*0x017f*/ { 0xd3bb, AUDIOCONFIG_01 }, // Jon: "Careful with that trigger finger, Agent Dark. You're closing in on my position"
/*0x0180*/ { 0xb3bd, AUDIOCONFIG_01 }, // Carrington: "The temperature's dropping. You must be close to the cryo room"
/*0x0181*/ { 0xd3bf, AUDIOCONFIG_01 }, // Carrington: "There he is Jo. Hurry or you'll be too late"
/*0x0182*/ { 0xb3c4, AUDIOCONFIG_01 }, // Carrington: "Now's your chance. Grab the stewardess's bag and get her uniform"
/*0x0183*/ { 0xb3c5, AUDIOCONFIG_01 }, // Carrington: "Use that case to conceal your equipment"
/*0x0184*/ { 0xb3c6, AUDIOCONFIG_01 }, // Carrington: "The case will get stopped unless you do something"
/*0x0185*/ { 0xb3c9, AUDIOCONFIG_01 }, // Carrington: "The president's room is on this level, Joanna"
/*0x0186*/ { 0xb3ca, AUDIOCONFIG_01 }, // Carrington: "Something's wrong. You have to get to the cockpit"
/*0x0187*/ { 0x8594, AUDIOCONFIG_04 }, // Footstep
/*0x0188*/ { 0x8595, AUDIOCONFIG_04 }, // Footstep
/*0x0189*/ { 0x8596, AUDIOCONFIG_04 }, // Footstep
/*0x018a*/ { 0x8597, AUDIOCONFIG_04 }, // Footstep
/*0x018b*/ { 0x8598, AUDIOCONFIG_04 }, // Footstep
/*0x018c*/ { 0x8599, AUDIOCONFIG_04 }, // Footstep
/*0x018d*/ { 0x859a, AUDIOCONFIG_04 }, // Footstep
/*0x018e*/ { 0x859b, AUDIOCONFIG_04 }, // Footstep
/*0x018f*/ { 0x85a0, AUDIOCONFIG_04 }, // Footstep
/*0x0190*/ { 0x85a1, AUDIOCONFIG_04 }, // Footstep
/*0x0191*/ { 0x85a2, AUDIOCONFIG_04 }, // Footstep
/*0x0192*/ { 0x85a3, AUDIOCONFIG_04 }, // Footstep
/*0x0193*/ { 0xf310, AUDIOCONFIG_01 }, // Carrington: "Joanna. We're under attack"
/*0x0194*/ { 0xd311, AUDIOCONFIG_01 }, // Carrington: "Get the guns back online. Hurry"
/*0x0195*/ { 0xf312, AUDIOCONFIG_01 }, // Carrington: "The Skedar have taken hostages"
/*0x0196*/ { 0xd313, AUDIOCONFIG_01 }, // Carrington: "Get up to the offices and save them"
/*0x0197*/ { 0xf314, AUDIOCONFIG_01 }, // Carrington: "They're using a new form of shield technology"
/*0x0198*/ { 0xd315, AUDIOCONFIG_01 }, // Carrington: "Foster was working on a new weapon which may be useful"
/*0x0199*/ { 0xf316, AUDIOCONFIG_03 }, // Carrington: "Damn it, my office. If they get access..."
/*0x019a*/ { 0xd317, AUDIOCONFIG_01 }, // Carrington: "Get there first, Jo and destroy the files"
/*0x019b*/ { 0xf318, AUDIOCONFIG_01 }, // Carrington: "Things are desparate. They've planted a bomb"
/*0x019c*/ { 0xd319, AUDIOCONFIG_01 }, // Carrington: "Find it and get it out of the building"
/*0x019d*/ { 0xf31a, AUDIOCONFIG_01 }, // Carrington: "Well done Joanna. We're nearly clear"
/*0x019e*/ { 0xd31b, AUDIOCONFIG_01 }, // Carrington: "The last dropship is waiting for you. Hurry"
/*0x019f*/ { 0xf293, AUDIOCONFIG_01 }, // Grimshaw: "Joanna, it's Grimshaw. We've got hackers at..."
/*0x01a0*/ { 0xf2df, AUDIOCONFIG_01 }, // Elvis: "We're outside, Joanna. Get the shields down and we can help you"
/*0x01a1*/ { 0xf2e0, AUDIOCONFIG_01 }, // Elvis: "You've got to open the hanger doors so we can dock"
/*0x01a2*/ { 0xd4ea, AUDIOCONFIG_01 }, // Carrington: "Stand back Joanna. We'll create your escape route"
/*0x01a3*/ { VERSION >= VERSION_NTSC_1_0 ? 0x8d24 : 0x9524, AUDIOCONFIG_02 }, // Cass: "Get the hell out of my office"
/*0x01a4*/ { 0x9d62, AUDIOCONFIG_47 }, // Elvis: "Joanna, what took you so long? Follow me. Let's get off this old tub"
/*0x01a5*/ { 0x84aa, AUDIOCONFIG_43 },
/*0x01a6*/ { 0x81cf, AUDIOCONFIG_41 },
/*0x01a7*/ { 0x858f, AUDIOCONFIG_40 },
/*0x01a8*/ { 0x80d5, AUDIOCONFIG_39 }, // Lift mechanical sound
/*0x01a9*/ { 0x80ec, AUDIOCONFIG_39 }, // Lift mechanical sound
/*0x01aa*/ { 0x80ed, AUDIOCONFIG_40 }, // Lift mechanical sound
/*0x01ab*/ { 0x80d5, AUDIOCONFIG_41 }, // Lift mechanical sound
/*0x01ac*/ { 0x80ec, AUDIOCONFIG_41 }, // Lift mechanical sound
/*0x01ad*/ { 0x80ed, AUDIOCONFIG_42 }, // Lift mechanical sound
/*0x01ae*/ { 0x80d5, AUDIOCONFIG_41 }, // Lift mechanical sound
/*0x01af*/ { 0x80ec, AUDIOCONFIG_41 }, // Lift mechanical sound
/*0x01b0*/ { 0x803a, AUDIOCONFIG_41 }, // Lift call
/*0x01b1*/ { 0x84e8, AUDIOCONFIG_43 }, // Lift mechanical sound
/*0x01b2*/ { 0x84e9, AUDIOCONFIG_43 }, // Lift mechanical sound
/*0x01b3*/ { 0x80cd, AUDIOCONFIG_42 }, // Lift mechanical sound
/*0x01b4*/ { 0x80ce, AUDIOCONFIG_42 }, // Lift mechanical sound
/*0x01b5*/ { 0x8039, AUDIOCONFIG_42 }, // Lift mechanical sound
/*0x01b6*/ { 0x80cd, AUDIOCONFIG_44 }, // Lift mechanical sound
/*0x01b7*/ { 0x80db, AUDIOCONFIG_16 }, // Lift roller door
/*0x01b8*/ { 0x80da, AUDIOCONFIG_16 }, // Lift roller door
/*0x01b9*/ { 0xf41c, AUDIOCONFIG_02 }, // Joanna: "Oh my god"
/*0x01ba*/ { 0xf434, AUDIOCONFIG_02 }, // Lab guy: "What the hell do you think you're doing? This is supposed..."
/*0x01bb*/ { 0xf44f, AUDIOCONFIG_02 }, // President: "Damn it man. I say no and I mean no..."
/*0x01bc*/ { 0x0000, AUDIOCONFIG_00 },
};
struct audioconfig g_AudioConfigs[] = {
{ /* 0*/ 200, 1000, 1200, -1, 100, -1, 0, 0 },
{ /* 1*/ 400, 2500, 3000, -1, 100, 48, 0, AUDIOCONFIGFLAG_20 },
{ /* 2*/ 400, 2500, 3000, -1, 100, -1, 0, AUDIOCONFIGFLAG_10 },
{ /* 3*/ 400, 2500, 3000, -1, 100, 48, 0, AUDIOCONFIGFLAG_10 | AUDIOCONFIGFLAG_20 },
{ /* 4*/ 200, 1000, 1200, -1, 100, -1, 0, 0 },
{ /* 5*/ 200, 1000, 1200, -1, 100, -1, 0, 0 },
{ /* 6*/ 200, 1000, 1200, -1, 100, -1, 0, 0 },
{ /* 7*/ 1000, 3500, 4000, -1, 100, -1, 120, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /* 8*/ 1000, 2500, 3000, -1, 100, -1, 30, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /* 9*/ 1000, 3500, 4000, -1, 100, -1, 120, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*10*/ 1000, 2500, 3000, -1, 100, -1, 30, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*11*/ 1600, 3000, 3500, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*12*/ 400, 1100, 1400, -1, 100, -1, 140, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*13*/ 400, 1100, 1400, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*14*/ 300, 1200, 1250, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*15*/ 500, 1800, 1900, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*16*/ 1000, 2700, 2900, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*17*/ 1500, 3000, 4000, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*18*/ 2500, 4900, 5000, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*19*/ 5500, 5600, 5700, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_20 },
{ /*20*/ 20, 400, 500, -1, 100, -1, 0, 0 },
{ /*21*/ 300, 1700, 2000, -1, 100, -1, 0, 0 },
{ /*22*/ 600, 3500, 5000, -1, 100, -1, 0, 0 },
{ /*23*/ 600, 3500, 5000, -1, 100, -1, 0, 0 },
{ /*24*/ 600, 3500, 5000, -1, 100, -1, 0, 0 },
{ /*25*/ 600, 2500, 3000, -1, 100, -1, 0, 0 },
{ /*26*/ 1500, 4900, 5500, -1, 100, -1, 100, AUDIOCONFIGFLAG_01 },
{ /*27*/ 5500, 5740, 5800, -1, 100, -1, 100, AUDIOCONFIGFLAG_01 },
{ /*28*/ 250, 1000, 1300, 2, 100, -1, 120, AUDIOCONFIGFLAG_01 },
{ /*29*/ 200, 2600, 3000, -1, 100, -1, 0, 0 },
{ /*30*/ 200, 750, 850, -1, 100, -1, 0, 0 },
{ /*31*/ 600, 2000, 3000, -1, 100, -1, 0, 0 },
{ /*32*/ 500, 1500, 1800, -1, 100, -1, 0, 0 },
{ /*33*/ 800, 2500, 3000, -1, 100, -1, 0, 0 },
{ /*34*/ 400, 1500, 2000, -1, 100, -1, 0, 0 },
{ /*35*/ 1000, 3500, 5000, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*36*/ 50, 225, 250, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*37*/ 50, 225, 250, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*38*/ 2000, 2500, 2700, -1, 50, -1, 0, AUDIOCONFIGFLAG_01 | AUDIOCONFIGFLAG_08 },
{ /*39*/ 300, 1000, 1200, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*40*/ 300, 1000, 1200, -1, 100, -1, 100, AUDIOCONFIGFLAG_01 },
{ /*41*/ 600, 1500, 1800, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*42*/ 600, 1500, 1800, -1, 100, -1, 100, AUDIOCONFIGFLAG_01 },
{ /*43*/ 800, 2600, 3500, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
{ /*44*/ 800, 2600, 3500, -1, 100, -1, 100, AUDIOCONFIGFLAG_01 },
{ /*45*/ 200, 800, 1000, -1, 100, -1, 0, 0 },
{ /*46*/ 200, 700, 1000, -1, 100, -1, 0, 0 },
{ /*47*/ 1000, 2500, 3000, -1, 100, -1, 0, 0 },
{ /*48*/ 500, 1400, 1500, -1, 100, -1, 0, 0 },
{ /*49*/ 500, 2000, 2200, -1, 100, -1, 0, 0 },
{ /*50*/ 400, 2500, 3000, -1, 50, -1, 0, 0 },
{ /*51*/ 400, 2500, 3000, -1, 75, -1, 0, 0 },
{ /*52*/ 200, 500, 800, -1, 100, -1, 100, 0 },
{ /*53*/ 1000, 1100, 1600, -1, 100, -1, 0, 0 },
#if VERSION >= VERSION_NTSC_1_0
{ /*54*/ 300, 1300, 1500, -1, 100, -1, 0, AUDIOCONFIGFLAG_01 },
#endif
{ /*55*/ 300, 1300, 1500, -1, 100, -1, 200, AUDIOCONFIGFLAG_01 },
{ /*56*/ 250, 600, 900, -1, 100, -1, 200, AUDIOCONFIGFLAG_01 },
{ /*57*/ 50, 180, 250, -1, 100, -1, 200, AUDIOCONFIGFLAG_01 },
{ /*58*/ 100, 400, 600, -1, 100, -1, 200, AUDIOCONFIGFLAG_01 },
{ /*59*/ 700, 1100, 1400, -1, 100, -1, 200, AUDIOCONFIGFLAG_01 },
{ /*60*/ 400, 2500, 3000, -1, 100, -1, 0, AUDIOCONFIGFLAG_04 },
#if VERSION >= VERSION_NTSC_1_0
{ /*61*/ 300, 900, 1100, -1, 100, -1, 0, 0 },
{ /*62*/ 1000, 2500, 3000, -1, 100, -1, 0, AUDIOCONFIGFLAG_08 },
{ /*63*/ 400, 1000, 1200, -1, 100, -1, 0, 0 },
#endif
};
u32 var8005ecd8 = 0x00000000;
u32 var8005ecdc = 0x00000000;
u32 var8005ece0 = 0x00000000;
u32 var8005ece4 = 0x00000000;
u32 var8005ece8 = 0x00000000;
u32 var8005ecec = 0x00000000;
u32 var8005ecf0 = 0x00000000;
u32 var8005ecf4 = 0x00000000;
s16 var8005ecf8[] = {
0x6665,
0x5998,
0x5fff,
0x4ccc,
0x5fff,
0x2ccc,
0x5998,
0x6665,
0x4ccc,
0x5998,
0x5998,
0x5998,
0x5fff,
0x6665,
0x6665,
0x5fff,
0x5998,
0x6665,
0x5fff,
0x5fff,
0x5fff,
0x6665,
0x5fff,
0x5fff,
0x5fff,
0x7332,
0x5fff,
0x6665,
0x5fff,
#if VERSION >= VERSION_NTSC_1_0
0x5998,
0x5998,
#else
0x5fff,
0x5fff,
#endif
0x5332,
0x5332,
0x5fff,
0x3332,
#if VERSION >= VERSION_NTSC_1_0
0x4ccc,
#else
0x3fff,
#endif
0x5fff,
0x4ccc,
0x3fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x4ccc,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x5fff,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x7332,
0x7332,
0x7332,
0x4ccc,
#if VERSION >= VERSION_NTSC_1_0
0x3c28,
#else
0x4ccc,
#endif
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x7332,
0x7332,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x6665,
0x4ccc,
0x4ccc,
0x4ccc,
0x4ccc,
0x6ccb,
0x5fff,
0x5998,
0x7998,
0x5998,
0x5998,
0x6665,
0x5fff,
0x5fff,
0x7332,
0x7332,
0x7332,
0x7332,
0x7332,
0x4ccc,
0x6665,
0x6665,
0x6665,
0x4ccc,
0x6ccb,
0xffff,
0x0000,
};
#if VERSION >= VERSION_NTSC_1_0
u32 var8005edec = 0xffffffff;
#endif
extern u8 _sfxctlSegmentRomStart;
extern u8 _sfxtblSegmentRomStart;
extern u8 _seqctlSegmentRomStart;
extern u8 _seqctlSegmentRomEnd;
extern u8 _seqtblSegmentRomStart;
extern u8 _sequencesSegmentRomStart;
u32 snd0000e9d0(void)
{
return var80094eb0.unk04;
}
u16 snd0000e9dc(void)
{
#if VERSION >= VERSION_NTSC_1_0
s32 result;
if (func00033ec4(0) < 0x5000) {
result = func00033ec4(0);
} else {
result = 0x5000;
}
return result;
#else
return func00033ec4(0);
#endif
}
void sndSetSfxVolume(u16 volume)
{
u8 i;
#if VERSION >= VERSION_NTSC_1_0
if (volume > 0x5000) {
volume = 0x5000;
}
#endif
for (i = 0; i < 9; i++) {
func00033f44(i, volume);
}
g_SfxVolume = volume;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000ea80
/* ea80: 27bdffe0 */ addiu $sp,$sp,-32
/* ea84: afb10018 */ sw $s1,0x18($sp)
/* ea88: 3091ffff */ andi $s1,$a0,0xffff
/* ea8c: 2a215001 */ slti $at,$s1,0x5001
/* ea90: afbf001c */ sw $ra,0x1c($sp)
/* ea94: afb00014 */ sw $s0,0x14($sp)
/* ea98: 14200002 */ bnez $at,.L0000eaa4
/* ea9c: afa40020 */ sw $a0,0x20($sp)
/* eaa0: 24115000 */ addiu $s1,$zero,0x5000
.L0000eaa4:
/* eaa4: 00008025 */ or $s0,$zero,$zero
.L0000eaa8:
/* eaa8: 320400ff */ andi $a0,$s0,0xff
/* eaac: 0c00cfd1 */ jal func00033f44
/* eab0: 3225ffff */ andi $a1,$s1,0xffff
/* eab4: 26100001 */ addiu $s0,$s0,0x1
/* eab8: 320e00ff */ andi $t6,$s0,0xff
/* eabc: 29c10009 */ slti $at,$t6,0x9
/* eac0: 1420fff9 */ bnez $at,.L0000eaa8
/* eac4: 01c08025 */ or $s0,$t6,$zero
/* eac8: 8fbf001c */ lw $ra,0x1c($sp)
/* eacc: 8fb00014 */ lw $s0,0x14($sp)
/* ead0: 8fb10018 */ lw $s1,0x18($sp)
/* ead4: 03e00008 */ jr $ra
/* ead8: 27bd0020 */ addiu $sp,$sp,0x20
);
#else
GLOBAL_ASM(
glabel snd0000ea80
/* f234: 27bdffe0 */ addiu $sp,$sp,-32
/* f238: afb10018 */ sw $s1,0x18($sp)
/* f23c: afb00014 */ sw $s0,0x14($sp)
/* f240: 3091ffff */ andi $s1,$a0,0xffff
/* f244: afbf001c */ sw $ra,0x1c($sp)
/* f248: afa40020 */ sw $a0,0x20($sp)
/* f24c: 00008025 */ or $s0,$zero,$zero
.NB0000f250:
/* f250: 320400ff */ andi $a0,$s0,0xff
/* f254: 0c00d4c0 */ jal func00033f44
/* f258: 3225ffff */ andi $a1,$s1,0xffff
/* f25c: 26100001 */ addiu $s0,$s0,0x1
/* f260: 320e00ff */ andi $t6,$s0,0xff
/* f264: 29c10009 */ slti $at,$t6,0x9
/* f268: 1420fff9 */ bnez $at,.NB0000f250
/* f26c: 01c08025 */ or $s0,$t6,$zero
/* f270: 8fbf001c */ lw $ra,0x1c($sp)
/* f274: 8fb00014 */ lw $s0,0x14($sp)
/* f278: 8fb10018 */ lw $s1,0x18($sp)
/* f27c: 03e00008 */ jr $ra
/* f280: 27bd0020 */ addiu $sp,$sp,0x20
);
#endif
void snd0000eadc(void)
{
var80094eb0.unk00_05 = 0;
var80094eb0.unk00_03 = 0;
var80094eb0.unk00_01 = 0;
var80094eb0.unk00_00 = 0;
var80094eb0.unk04 = 0;
var80094eb0.unk08 = 0;
var80094eb0.unk0c = -1;
var80094eb0.unk10 = -1;
var80094eb0.unk14 = -1;
var80094eb0.unk18 = -1;
}
#if VERSION >= VERSION_NTSC_1_0
void sndLoadSfxCtl(void)
{
s32 i;
u8 unalignedbuffer[256 + 16];
u8 *buffer;
ALBankFile *file;
ALBank *bank;
u32 romaddr;
u32 size;
g_ALSoundRomOffsets = NULL;
buffer = (u8 *) ALIGN16((u32)unalignedbuffer);
// Load the first 256 bytes of the ctl file.
size = 256;
dmaExec(buffer, (u32) &_sfxctlSegmentRomStart, size);
// Get the ROM address of the first (and only) bank,
// then load the first 256 bytes of the bank.
file = (ALBankFile *) buffer;
romaddr = (u32)&_sfxctlSegmentRomStart;
romaddr += (u32)file->bankArray[0];
dmaExec(buffer, romaddr, size);
// Get the ROM address of the first (and only) instrument,
// then load the first 256 bytes of the instrument.
bank = (ALBank *) buffer;
romaddr = (u32)&_sfxctlSegmentRomStart;
romaddr += (u32)bank->instArray[0];
dmaExec(buffer, romaddr, size);
// Get the soundCount (spoiler: there's 1545+1).
// The final one might be a null terminator?
// Or accounting for 1-based indexing of soundnums.
g_NumSounds = ((ALInstrument *)buffer)->soundCount + 1;
// Calculate the size of the ALInstrument and load it. The pointer is then
// shifted forward to point to the instrument's ALSound array. This leaks
// some memory but this is initialisation code so it's not much of an issue.
size = g_NumSounds * 4 + 20;
size = ALIGN16(size);
g_ALSoundRomOffsets = alHeapAlloc(&g_SndHeap, 1, size);
dmaExec(g_ALSoundRomOffsets, romaddr, size);
*(u32 *)&g_ALSoundRomOffsets += 0x10;
// Convert ctl-local offsets to ROM offsets
for (i = 0; i < g_NumSounds; i++) {
g_ALSoundRomOffsets[i] += (u32) &_sfxctlSegmentRomStart;
}
// Allocate and initialise some soundnum array
var80095210.soundnums = alHeapAlloc(&g_SndHeap, sizeof(u16), g_NumSounds);
for (i = 0; i < (u32)g_NumSounds; i++) {
var80095210.soundnums[i] = -1;
}
// Initialise some other arrays
for (i = 0; i < 45; i++) {
var80095210.unk32[i] = 1;
var80095210.unk04[i] = 0;
}
}
#else
GLOBAL_ASM(
glabel sndLoadSfxCtl
/* f2d4: 27bdfe90 */ addiu $sp,$sp,-368
/* f2d8: afb20028 */ sw $s2,0x28($sp)
/* f2dc: 03a09025 */ or $s2,$sp,$zero
/* f2e0: afb10024 */ sw $s1,0x24($sp)
/* f2e4: afb00020 */ sw $s0,0x20($sp)
/* f2e8: 2652006b */ addiu $s2,$s2,0x6b
/* f2ec: 3c118009 */ lui $s1,0x8009
/* f2f0: 364e000f */ ori $t6,$s2,0xf
/* f2f4: 3c10007c */ lui $s0,0x7c
/* f2f8: 26317e24 */ addiu $s1,$s1,0x7e24
/* f2fc: afbf0034 */ sw $ra,0x34($sp)
/* f300: 2610e940 */ addiu $s0,$s0,-5824
/* f304: 39c4000f */ xori $a0,$t6,0xf
/* f308: afb40030 */ sw $s4,0x30($sp)
/* f30c: afb3002c */ sw $s3,0x2c($sp)
/* f310: ae200000 */ sw $zero,0x0($s1)
/* f314: 00809025 */ or $s2,$a0,$zero
/* f318: 02002825 */ or $a1,$s0,$zero
/* f31c: 0c003664 */ jal dmaExec
/* f320: 24060100 */ addiu $a2,$zero,0x100
/* f324: 8e580004 */ lw $t8,0x4($s2)
/* f328: 02402025 */ or $a0,$s2,$zero
/* f32c: 24060100 */ addiu $a2,$zero,0x100
/* f330: 0c003664 */ jal dmaExec
/* f334: 02182821 */ addu $a1,$s0,$t8
/* f338: 8e59000c */ lw $t9,0xc($s2)
/* f33c: 02402025 */ or $a0,$s2,$zero
/* f340: 24060100 */ addiu $a2,$zero,0x100
/* f344: 0219a021 */ addu $s4,$s0,$t9
/* f348: 0c003664 */ jal dmaExec
/* f34c: 02802825 */ or $a1,$s4,$zero
/* f350: 864a000e */ lh $t2,0xe($s2)
/* f354: 3c098009 */ lui $t1,0x8009
/* f358: 3c018009 */ lui $at,0x8009
/* f35c: 254b0001 */ addiu $t3,$t2,0x1
/* f360: 25297e20 */ addiu $t1,$t1,0x7e20
/* f364: ac2b7e20 */ sw $t3,0x7e20($at)
/* f368: 8d330000 */ lw $s3,0x0($t1)
/* f36c: 3c06800a */ lui $a2,0x800a
/* f370: 24c68170 */ addiu $a2,$a2,-32400
/* f374: 00136080 */ sll $t4,$s3,0x2
/* f378: 01809825 */ or $s3,$t4,$zero
/* f37c: 26730023 */ addiu $s3,$s3,0x23
/* f380: 366d000f */ ori $t5,$s3,0xf
/* f384: 39b3000f */ xori $s3,$t5,0xf
/* f388: afb30010 */ sw $s3,0x10($sp)
/* f38c: 00002025 */ or $a0,$zero,$zero
/* f390: 00002825 */ or $a1,$zero,$zero
/* f394: 0c00c499 */ jal alHeapDBAlloc
/* f398: 24070001 */ addiu $a3,$zero,0x1
/* f39c: ae220000 */ sw $v0,0x0($s1)
/* f3a0: 00402025 */ or $a0,$v0,$zero
/* f3a4: 02802825 */ or $a1,$s4,$zero
/* f3a8: 0c003664 */ jal dmaExec
/* f3ac: 02603025 */ or $a2,$s3,$zero
/* f3b0: 3c098009 */ lui $t1,0x8009
/* f3b4: 8e2f0000 */ lw $t7,0x0($s1)
/* f3b8: 25297e20 */ addiu $t1,$t1,0x7e20
/* f3bc: 8d280000 */ lw $t0,0x0($t1)
/* f3c0: 25f80010 */ addiu $t8,$t7,0x10
/* f3c4: ae380000 */ sw $t8,0x0($s1)
/* f3c8: 1900000e */ blez $t0,.NB0000f404
/* f3cc: 00001825 */ or $v1,$zero,$zero
/* f3d0: 00002025 */ or $a0,$zero,$zero
/* f3d4: 8e390000 */ lw $t9,0x0($s1)
.NB0000f3d8:
/* f3d8: 24630001 */ addiu $v1,$v1,0x1
/* f3dc: 03241021 */ addu $v0,$t9,$a0
/* f3e0: 8c4a0000 */ lw $t2,0x0($v0)
/* f3e4: 24840004 */ addiu $a0,$a0,0x4
/* f3e8: 01505821 */ addu $t3,$t2,$s0
/* f3ec: ac4b0000 */ sw $t3,0x0($v0)
/* f3f0: 8d280000 */ lw $t0,0x0($t1)
/* f3f4: 0068082a */ slt $at,$v1,$t0
/* f3f8: 5420fff7 */ bnezl $at,.NB0000f3d8
/* f3fc: 8e390000 */ lw $t9,0x0($s1)
/* f400: 00001825 */ or $v1,$zero,$zero
.NB0000f404:
/* f404: 3c06800a */ lui $a2,0x800a
/* f408: 24c68170 */ addiu $a2,$a2,-32400
/* f40c: 00002025 */ or $a0,$zero,$zero
/* f410: 00002825 */ or $a1,$zero,$zero
/* f414: 24070002 */ addiu $a3,$zero,0x2
/* f418: afa80010 */ sw $t0,0x10($sp)
/* f41c: 0c00c499 */ jal alHeapDBAlloc
/* f420: afa3016c */ sw $v1,0x16c($sp)
/* f424: 3c098009 */ lui $t1,0x8009
/* f428: 25297e20 */ addiu $t1,$t1,0x7e20
/* f42c: 8d2c0000 */ lw $t4,0x0($t1)
/* f430: 3c05800a */ lui $a1,0x800a
/* f434: 24a58190 */ addiu $a1,$a1,-32368
/* f438: aca20000 */ sw $v0,0x0($a1)
/* f43c: 1180000c */ beqz $t4,.NB0000f470
/* f440: 8fa3016c */ lw $v1,0x16c($sp)
/* f444: 00001025 */ or $v0,$zero,$zero
/* f448: 3404ffff */ dli $a0,0xffff
/* f44c: 8cad0000 */ lw $t5,0x0($a1)
.NB0000f450:
/* f450: 24630001 */ addiu $v1,$v1,0x1
/* f454: 01a27021 */ addu $t6,$t5,$v0
/* f458: a5c40000 */ sh $a0,0x0($t6)
/* f45c: 8d2f0000 */ lw $t7,0x0($t1)
/* f460: 24420002 */ addiu $v0,$v0,0x2
/* f464: 006f082b */ sltu $at,$v1,$t7
/* f468: 5420fff9 */ bnezl $at,.NB0000f450
/* f46c: 8cad0000 */ lw $t5,0x0($a1)
.NB0000f470:
/* f470: 3c18800a */ lui $t8,0x800a
/* f474: 27028190 */ addiu $v0,$t8,-32368
/* f478: 3c05800a */ lui $a1,0x800a
/* f47c: 3c04800a */ lui $a0,0x800a
/* f480: 248481bd */ addiu $a0,$a0,-32323
/* f484: 94a5ea1c */ lhu $a1,-0x15e4($a1)
/* f488: 00401825 */ or $v1,$v0,$zero
.NB0000f48c:
/* f48c: 24420001 */ addiu $v0,$v0,0x1
/* f490: a4650032 */ sh $a1,0x32($v1)
/* f494: 24630002 */ addiu $v1,$v1,0x2
/* f498: 1444fffc */ bne $v0,$a0,.NB0000f48c
/* f49c: a0400003 */ sb $zero,0x3($v0)
/* f4a0: 8fbf0034 */ lw $ra,0x34($sp)
/* f4a4: 8fb00020 */ lw $s0,0x20($sp)
/* f4a8: 8fb10024 */ lw $s1,0x24($sp)
/* f4ac: 8fb20028 */ lw $s2,0x28($sp)
/* f4b0: 8fb3002c */ lw $s3,0x2c($sp)
/* f4b4: 8fb40030 */ lw $s4,0x30($sp)
/* f4b8: 03e00008 */ jr $ra
/* f4bc: 27bd0170 */ addiu $sp,$sp,0x170
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000ed14
/* ed14: 3c038009 */ lui $v1,%hi(var80095210)
/* ed18: 3c068009 */ lui $a2,%hi(var80095210)
/* ed1c: 24c65210 */ addiu $a2,$a2,%lo(var80095210)
/* ed20: 24635210 */ addiu $v1,$v1,%lo(var80095210)
/* ed24: 00001025 */ or $v0,$zero,$zero
/* ed28: 2407002d */ addiu $a3,$zero,0x2d
.L0000ed2c:
/* ed2c: 906e0004 */ lbu $t6,0x4($v1)
/* ed30: 00027840 */ sll $t7,$v0,0x1
/* ed34: 00cf2021 */ addu $a0,$a2,$t7
/* ed38: 55c00007 */ bnezl $t6,.L0000ed58
/* ed3c: 24420001 */ addiu $v0,$v0,0x1
/* ed40: 94850032 */ lhu $a1,0x32($a0)
/* ed44: 28a17d00 */ slti $at,$a1,0x7d00
/* ed48: 10200002 */ beqz $at,.L0000ed54
/* ed4c: 24b80001 */ addiu $t8,$a1,0x1
/* ed50: a4980032 */ sh $t8,0x32($a0)
.L0000ed54:
/* ed54: 24420001 */ addiu $v0,$v0,0x1
.L0000ed58:
/* ed58: 1447fff4 */ bne $v0,$a3,.L0000ed2c
/* ed5c: 24630001 */ addiu $v1,$v1,0x1
/* ed60: 03e00008 */ jr $ra
/* ed64: 00000000 */ nop
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000ed68
/* ed68: 27bdff10 */ addiu $sp,$sp,-240
/* ed6c: afb20020 */ sw $s2,0x20($sp)
/* ed70: afb1001c */ sw $s1,0x1c($sp)
/* ed74: 03a08825 */ or $s1,$sp,$zero
/* ed78: 03a09025 */ or $s2,$sp,$zero
/* ed7c: 3c0e0081 */ lui $t6,%hi(_sfxctlSegmentRomStart)
/* ed80: 265200af */ addiu $s2,$s2,0xaf
/* ed84: 2631005f */ addiu $s1,$s1,0x5f
/* ed88: afb40028 */ sw $s4,0x28($sp)
/* ed8c: afb30024 */ sw $s3,0x24($sp)
/* ed90: 25cea250 */ addiu $t6,$t6,%lo(_sfxctlSegmentRomStart)
/* ed94: 3639000f */ ori $t9,$s1,0xf
/* ed98: 364f000f */ ori $t7,$s2,0xf
/* ed9c: afbf002c */ sw $ra,0x2c($sp)
/* eda0: afb00018 */ sw $s0,0x18($sp)
/* eda4: afa500f4 */ sw $a1,0xf4($sp)
/* eda8: 008ea021 */ addu $s4,$a0,$t6
/* edac: 39f2000f */ xori $s2,$t7,0xf
/* edb0: 3b31000f */ xori $s1,$t9,0xf
/* edb4: 24130040 */ addiu $s3,$zero,0x40
/* edb8: 02402025 */ or $a0,$s2,$zero
.L0000edbc:
/* edbc: 02802825 */ or $a1,$s4,$zero
/* edc0: 0c003513 */ jal dmaExecHighPriority
/* edc4: 24060040 */ addiu $a2,$zero,0x40
/* edc8: 00008025 */ or $s0,$zero,$zero
/* edcc: 00001825 */ or $v1,$zero,$zero
/* edd0: 00001025 */ or $v0,$zero,$zero
.L0000edd4:
/* edd4: 02424821 */ addu $t1,$s2,$v0
/* edd8: 8d2a0000 */ lw $t2,0x0($t1)
/* eddc: 24630001 */ addiu $v1,$v1,0x1
/* ede0: 2c610010 */ sltiu $at,$v1,0x10
/* ede4: 24420004 */ addiu $v0,$v0,0x4
/* ede8: 1420fffa */ bnez $at,.L0000edd4
/* edec: 020a8021 */ addu $s0,$s0,$t2
/* edf0: 02202025 */ or $a0,$s1,$zero
/* edf4: 02802825 */ or $a1,$s4,$zero
/* edf8: 0c003513 */ jal dmaExecHighPriority
/* edfc: 24060040 */ addiu $a2,$zero,0x40
/* ee00: 00002025 */ or $a0,$zero,$zero
/* ee04: 00001025 */ or $v0,$zero,$zero
.L0000ee08:
/* ee08: 02225821 */ addu $t3,$s1,$v0
/* ee0c: 8d6c0000 */ lw $t4,0x0($t3)
/* ee10: 24420004 */ addiu $v0,$v0,0x4
/* ee14: 1453fffc */ bne $v0,$s3,.L0000ee08
/* ee18: 008c2021 */ addu $a0,$a0,$t4
/* ee1c: 5604ffe7 */ bnel $s0,$a0,.L0000edbc
/* ee20: 02402025 */ or $a0,$s2,$zero
/* ee24: 97ad00f6 */ lhu $t5,0xf6($sp)
/* ee28: 8e210000 */ lw $at,0x0($s1)
/* ee2c: 3c038009 */ lui $v1,%hi(var80095210)
/* ee30: 24635210 */ addiu $v1,$v1,%lo(var80095210)
/* ee34: 000d7100 */ sll $t6,$t5,0x4
/* ee38: 006e7821 */ addu $t7,$v1,$t6
/* ee3c: ade1008c */ sw $at,0x8c($t7)
/* ee40: 8e390004 */ lw $t9,0x4($s1)
/* ee44: adf90090 */ sw $t9,0x90($t7)
/* ee48: 8e210008 */ lw $at,0x8($s1)
/* ee4c: ade10094 */ sw $at,0x94($t7)
/* ee50: 8e39000c */ lw $t9,0xc($s1)
/* ee54: adf90098 */ sw $t9,0x98($t7)
/* ee58: 97a800f6 */ lhu $t0,0xf6($sp)
/* ee5c: 8fbf002c */ lw $ra,0x2c($sp)
/* ee60: 8fb40028 */ lw $s4,0x28($sp)
/* ee64: 00084900 */ sll $t1,$t0,0x4
/* ee68: 00691021 */ addu $v0,$v1,$t1
/* ee6c: 8fb30024 */ lw $s3,0x24($sp)
/* ee70: 8fb20020 */ lw $s2,0x20($sp)
/* ee74: 8fb1001c */ lw $s1,0x1c($sp)
/* ee78: 8fb00018 */ lw $s0,0x18($sp)
/* ee7c: 27bd00f0 */ addiu $sp,$sp,0xf0
/* ee80: 03e00008 */ jr $ra
/* ee84: 2442008c */ addiu $v0,$v0,0x8c
);
#else
GLOBAL_ASM(
glabel snd0000ed68
/* f4c0: 27bdff90 */ addiu $sp,$sp,-112
/* f4c4: 3c0e007c */ lui $t6,0x7c
/* f4c8: afa50074 */ sw $a1,0x74($sp)
/* f4cc: 25cee940 */ addiu $t6,$t6,-5824
/* f4d0: afa40070 */ sw $a0,0x70($sp)
/* f4d4: 008e2821 */ addu $a1,$a0,$t6
/* f4d8: 03a02025 */ or $a0,$sp,$zero
/* f4dc: 2484002f */ addiu $a0,$a0,0x2f
/* f4e0: 348f000f */ ori $t7,$a0,0xf
/* f4e4: afbf0014 */ sw $ra,0x14($sp)
/* f4e8: 39e4000f */ xori $a0,$t7,0xf
/* f4ec: afa40018 */ sw $a0,0x18($sp)
/* f4f0: 0c00366e */ jal dmaExecHighPriority
/* f4f4: 24060040 */ addiu $a2,$zero,0x40
/* f4f8: 8fa40018 */ lw $a0,0x18($sp)
/* f4fc: 97a50076 */ lhu $a1,0x76($sp)
/* f500: 3c03800a */ lui $v1,0x800a
/* f504: 8c810000 */ lw $at,0x0($a0)
/* f508: 24638190 */ addiu $v1,$v1,-32368
/* f50c: 0005c900 */ sll $t9,$a1,0x4
/* f510: 00794021 */ addu $t0,$v1,$t9
/* f514: ad01008c */ sw $at,0x8c($t0)
/* f518: 8c8b0004 */ lw $t3,0x4($a0)
/* f51c: 00056100 */ sll $t4,$a1,0x4
/* f520: 006c1021 */ addu $v0,$v1,$t4
/* f524: ad0b0090 */ sw $t3,0x90($t0)
/* f528: 8c810008 */ lw $at,0x8($a0)
/* f52c: 2442008c */ addiu $v0,$v0,0x8c
/* f530: ad010094 */ sw $at,0x94($t0)
/* f534: 8c8b000c */ lw $t3,0xc($a0)
/* f538: ad0b0098 */ sw $t3,0x98($t0)
/* f53c: 8fbf0014 */ lw $ra,0x14($sp)
/* f540: 27bd0070 */ addiu $sp,$sp,0x70
/* f544: 03e00008 */ jr $ra
/* f548: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000ee88
/* ee88: 27bdff10 */ addiu $sp,$sp,-240
/* ee8c: afb20020 */ sw $s2,0x20($sp)
/* ee90: afb1001c */ sw $s1,0x1c($sp)
/* ee94: 03a08825 */ or $s1,$sp,$zero
/* ee98: 03a09025 */ or $s2,$sp,$zero
/* ee9c: 3c0e0081 */ lui $t6,%hi(_sfxctlSegmentRomStart)
/* eea0: 265200af */ addiu $s2,$s2,0xaf
/* eea4: 2631005f */ addiu $s1,$s1,0x5f
/* eea8: afb40028 */ sw $s4,0x28($sp)
/* eeac: afb30024 */ sw $s3,0x24($sp)
/* eeb0: 25cea250 */ addiu $t6,$t6,%lo(_sfxctlSegmentRomStart)
/* eeb4: 3639000f */ ori $t9,$s1,0xf
/* eeb8: 364f000f */ ori $t7,$s2,0xf
/* eebc: afbf002c */ sw $ra,0x2c($sp)
/* eec0: afb00018 */ sw $s0,0x18($sp)
/* eec4: afa500f4 */ sw $a1,0xf4($sp)
/* eec8: 008ea021 */ addu $s4,$a0,$t6
/* eecc: 39f2000f */ xori $s2,$t7,0xf
/* eed0: 3b31000f */ xori $s1,$t9,0xf
/* eed4: 24130040 */ addiu $s3,$zero,0x40
/* eed8: 02402025 */ or $a0,$s2,$zero
.L0000eedc:
/* eedc: 02802825 */ or $a1,$s4,$zero
/* eee0: 0c003513 */ jal dmaExecHighPriority
/* eee4: 24060040 */ addiu $a2,$zero,0x40
/* eee8: 00008025 */ or $s0,$zero,$zero
/* eeec: 00001825 */ or $v1,$zero,$zero
/* eef0: 00001025 */ or $v0,$zero,$zero
.L0000eef4:
/* eef4: 02424821 */ addu $t1,$s2,$v0
/* eef8: 8d2a0000 */ lw $t2,0x0($t1)
/* eefc: 24630001 */ addiu $v1,$v1,0x1
/* ef00: 2c610010 */ sltiu $at,$v1,0x10
/* ef04: 24420004 */ addiu $v0,$v0,0x4
/* ef08: 1420fffa */ bnez $at,.L0000eef4
/* ef0c: 020a8021 */ addu $s0,$s0,$t2
/* ef10: 02202025 */ or $a0,$s1,$zero
/* ef14: 02802825 */ or $a1,$s4,$zero
/* ef18: 0c003513 */ jal dmaExecHighPriority
/* ef1c: 24060040 */ addiu $a2,$zero,0x40
/* ef20: 00002025 */ or $a0,$zero,$zero
/* ef24: 00001025 */ or $v0,$zero,$zero
.L0000ef28:
/* ef28: 02225821 */ addu $t3,$s1,$v0
/* ef2c: 8d6c0000 */ lw $t4,0x0($t3)
/* ef30: 24420004 */ addiu $v0,$v0,0x4
/* ef34: 1453fffc */ bne $v0,$s3,.L0000ef28
/* ef38: 008c2021 */ addu $a0,$a0,$t4
/* ef3c: 5604ffe7 */ bnel $s0,$a0,.L0000eedc
/* ef40: 02402025 */ or $a0,$s2,$zero
/* ef44: 97a300f6 */ lhu $v1,0xf6($sp)
/* ef48: 8a210000 */ lwl $at,0x0($s1)
/* ef4c: 9a210003 */ lwr $at,0x3($s1)
/* ef50: 00036880 */ sll $t5,$v1,0x2
/* ef54: 3c048009 */ lui $a0,%hi(var80095210)
/* ef58: 01a36823 */ subu $t5,$t5,$v1
/* ef5c: 24845210 */ addiu $a0,$a0,%lo(var80095210)
/* ef60: 000d6840 */ sll $t5,$t5,0x1
/* ef64: 008d7021 */ addu $t6,$a0,$t5
/* ef68: a9c1035c */ swl $at,0x35c($t6)
/* ef6c: b9c1035f */ swr $at,0x35f($t6)
/* ef70: 92210004 */ lbu $at,0x4($s1)
/* ef74: 008d1021 */ addu $v0,$a0,$t5
/* ef78: 2442035c */ addiu $v0,$v0,0x35c
/* ef7c: a1c10360 */ sb $at,0x360($t6)
/* ef80: 92380005 */ lbu $t8,0x5($s1)
/* ef84: a1d80361 */ sb $t8,0x361($t6)
/* ef88: 8fbf002c */ lw $ra,0x2c($sp)
/* ef8c: 8fb40028 */ lw $s4,0x28($sp)
/* ef90: 8fb30024 */ lw $s3,0x24($sp)
/* ef94: 8fb20020 */ lw $s2,0x20($sp)
/* ef98: 8fb1001c */ lw $s1,0x1c($sp)
/* ef9c: 8fb00018 */ lw $s0,0x18($sp)
/* efa0: 03e00008 */ jr $ra
/* efa4: 27bd00f0 */ addiu $sp,$sp,0xf0
);
#else
GLOBAL_ASM(
glabel snd0000ee88
/* f54c: 27bdff90 */ addiu $sp,$sp,-112
/* f550: 3c0e007c */ lui $t6,0x7c
/* f554: afa50074 */ sw $a1,0x74($sp)
/* f558: 25cee940 */ addiu $t6,$t6,-5824
/* f55c: afa40070 */ sw $a0,0x70($sp)
/* f560: 008e2821 */ addu $a1,$a0,$t6
/* f564: 03a02025 */ or $a0,$sp,$zero
/* f568: 2484002f */ addiu $a0,$a0,0x2f
/* f56c: 348f000f */ ori $t7,$a0,0xf
/* f570: afbf0014 */ sw $ra,0x14($sp)
/* f574: 39e4000f */ xori $a0,$t7,0xf
/* f578: afa40018 */ sw $a0,0x18($sp)
/* f57c: 0c00366e */ jal dmaExecHighPriority
/* f580: 24060040 */ addiu $a2,$zero,0x40
/* f584: 8fa40018 */ lw $a0,0x18($sp)
/* f588: 97a30076 */ lhu $v1,0x76($sp)
/* f58c: 3c05800a */ lui $a1,0x800a
/* f590: 88810000 */ lwl $at,0x0($a0)
/* f594: 0003c880 */ sll $t9,$v1,0x2
/* f598: 98810003 */ lwr $at,0x3($a0)
/* f59c: 0323c823 */ subu $t9,$t9,$v1
/* f5a0: 24a58190 */ addiu $a1,$a1,-32368
/* f5a4: 0019c840 */ sll $t9,$t9,0x1
/* f5a8: 00b94021 */ addu $t0,$a1,$t9
/* f5ac: a901035c */ swl $at,0x35c($t0)
/* f5b0: b901035f */ swr $at,0x35f($t0)
/* f5b4: 90810004 */ lbu $at,0x4($a0)
/* f5b8: 00b91021 */ addu $v0,$a1,$t9
/* f5bc: 2442035c */ addiu $v0,$v0,0x35c
/* f5c0: a1010360 */ sb $at,0x360($t0)
/* f5c4: 908b0005 */ lbu $t3,0x5($a0)
/* f5c8: a10b0361 */ sb $t3,0x361($t0)
/* f5cc: 8fbf0014 */ lw $ra,0x14($sp)
/* f5d0: 27bd0070 */ addiu $sp,$sp,0x70
/* f5d4: 03e00008 */ jr $ra
/* f5d8: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000efa8
/* efa8: 27bdfd10 */ addiu $sp,$sp,-752
/* efac: afb20020 */ sw $s2,0x20($sp)
/* efb0: afb1001c */ sw $s1,0x1c($sp)
/* efb4: 03a08825 */ or $s1,$sp,$zero
/* efb8: 03a09025 */ or $s2,$sp,$zero
/* efbc: 3c0e0081 */ lui $t6,%hi(_sfxctlSegmentRomStart)
/* efc0: 265201af */ addiu $s2,$s2,0x1af
/* efc4: 2631005f */ addiu $s1,$s1,0x5f
/* efc8: afb40028 */ sw $s4,0x28($sp)
/* efcc: afb30024 */ sw $s3,0x24($sp)
/* efd0: 25cea250 */ addiu $t6,$t6,%lo(_sfxctlSegmentRomStart)
/* efd4: 3639000f */ ori $t9,$s1,0xf
/* efd8: 364f000f */ ori $t7,$s2,0xf
/* efdc: afbf002c */ sw $ra,0x2c($sp)
/* efe0: afb00018 */ sw $s0,0x18($sp)
/* efe4: afa502f4 */ sw $a1,0x2f4($sp)
/* efe8: 008ea021 */ addu $s4,$a0,$t6
/* efec: 39f2000f */ xori $s2,$t7,0xf
/* eff0: 3b31000f */ xori $s1,$t9,0xf
/* eff4: 24130140 */ addiu $s3,$zero,0x140
/* eff8: 02402025 */ or $a0,$s2,$zero
.L0000effc:
/* effc: 02802825 */ or $a1,$s4,$zero
/* f000: 0c003513 */ jal dmaExecHighPriority
/* f004: 24060140 */ addiu $a2,$zero,0x140
/* f008: 00008025 */ or $s0,$zero,$zero
/* f00c: 00001825 */ or $v1,$zero,$zero
/* f010: 00001025 */ or $v0,$zero,$zero
.L0000f014:
/* f014: 02424821 */ addu $t1,$s2,$v0
/* f018: 8d2a0000 */ lw $t2,0x0($t1)
/* f01c: 24630001 */ addiu $v1,$v1,0x1
/* f020: 2c610050 */ sltiu $at,$v1,0x50
/* f024: 24420004 */ addiu $v0,$v0,0x4
/* f028: 1420fffa */ bnez $at,.L0000f014
/* f02c: 020a8021 */ addu $s0,$s0,$t2
/* f030: 02202025 */ or $a0,$s1,$zero
/* f034: 02802825 */ or $a1,$s4,$zero
/* f038: 0c003513 */ jal dmaExecHighPriority
/* f03c: 24060140 */ addiu $a2,$zero,0x140
/* f040: 00002025 */ or $a0,$zero,$zero
/* f044: 00001025 */ or $v0,$zero,$zero
.L0000f048:
/* f048: 02225821 */ addu $t3,$s1,$v0
/* f04c: 8d6c0000 */ lw $t4,0x0($t3)
/* f050: 24420004 */ addiu $v0,$v0,0x4
/* f054: 1453fffc */ bne $v0,$s3,.L0000f048
/* f058: 008c2021 */ addu $a0,$a0,$t4
/* f05c: 5604ffe7 */ bnel $s0,$a0,.L0000effc
/* f060: 02402025 */ or $a0,$s2,$zero
/* f064: 97a302f6 */ lhu $v1,0x2f6($sp)
/* f068: 3c048009 */ lui $a0,%hi(var80095210)
/* f06c: 24845210 */ addiu $a0,$a0,%lo(var80095210)
/* f070: 00036940 */ sll $t5,$v1,0x5
/* f074: 01a36821 */ addu $t5,$t5,$v1
/* f078: 000d18c0 */ sll $v1,$t5,0x3
/* f07c: 00837021 */ addu $t6,$a0,$v1
/* f080: 0220c825 */ or $t9,$s1,$zero
/* f084: 26380108 */ addiu $t8,$s1,0x108
.L0000f088:
/* f088: 8f210000 */ lw $at,0x0($t9)
/* f08c: 2739000c */ addiu $t9,$t9,0xc
/* f090: 25ce000c */ addiu $t6,$t6,0xc
/* f094: adc107e4 */ sw $at,0x7e4($t6)
/* f098: 8f21fff8 */ lw $at,-0x8($t9)
/* f09c: adc107e8 */ sw $at,0x7e8($t6)
/* f0a0: 8f21fffc */ lw $at,-0x4($t9)
/* f0a4: 1738fff8 */ bne $t9,$t8,.L0000f088
/* f0a8: adc107ec */ sw $at,0x7ec($t6)
/* f0ac: 8fbf002c */ lw $ra,0x2c($sp)
/* f0b0: 00831021 */ addu $v0,$a0,$v1
/* f0b4: 8fb00018 */ lw $s0,0x18($sp)
/* f0b8: 8fb1001c */ lw $s1,0x1c($sp)
/* f0bc: 8fb20020 */ lw $s2,0x20($sp)
/* f0c0: 8fb30024 */ lw $s3,0x24($sp)
/* f0c4: 8fb40028 */ lw $s4,0x28($sp)
/* f0c8: 27bd02f0 */ addiu $sp,$sp,0x2f0
/* f0cc: 03e00008 */ jr $ra
/* f0d0: 244207f0 */ addiu $v0,$v0,0x7f0
);
#else
GLOBAL_ASM(
glabel snd0000efa8
/* f5dc: 27bdfe90 */ addiu $sp,$sp,-368
/* f5e0: 3c0e007c */ lui $t6,0x7c
/* f5e4: afa50174 */ sw $a1,0x174($sp)
/* f5e8: 25cee940 */ addiu $t6,$t6,-5824
/* f5ec: afa40170 */ sw $a0,0x170($sp)
/* f5f0: 008e2821 */ addu $a1,$a0,$t6
/* f5f4: 03a02025 */ or $a0,$sp,$zero
/* f5f8: 2484002f */ addiu $a0,$a0,0x2f
/* f5fc: 348f000f */ ori $t7,$a0,0xf
/* f600: afbf0014 */ sw $ra,0x14($sp)
/* f604: 39e4000f */ xori $a0,$t7,0xf
/* f608: afa40018 */ sw $a0,0x18($sp)
/* f60c: 0c00366e */ jal dmaExecHighPriority
/* f610: 24060140 */ addiu $a2,$zero,0x140
/* f614: 97a30176 */ lhu $v1,0x176($sp)
/* f618: 8fac0018 */ lw $t4,0x18($sp)
/* f61c: 3c05800a */ lui $a1,0x800a
/* f620: 0003c940 */ sll $t9,$v1,0x5
/* f624: 0323c821 */ addu $t9,$t9,$v1
/* f628: 24a58190 */ addiu $a1,$a1,-32368
/* f62c: 001918c0 */ sll $v1,$t9,0x3
/* f630: 00a34021 */ addu $t0,$a1,$v1
/* f634: 258b0108 */ addiu $t3,$t4,0x108
.NB0000f638:
/* f638: 8d810000 */ lw $at,0x0($t4)
/* f63c: 258c000c */ addiu $t4,$t4,0xc
/* f640: 2508000c */ addiu $t0,$t0,0xc
/* f644: ad0107e4 */ sw $at,0x7e4($t0)
/* f648: 8d81fff8 */ lw $at,-0x8($t4)
/* f64c: ad0107e8 */ sw $at,0x7e8($t0)
/* f650: 8d81fffc */ lw $at,-0x4($t4)
/* f654: 158bfff8 */ bne $t4,$t3,.NB0000f638
/* f658: ad0107ec */ sw $at,0x7ec($t0)
/* f65c: 8fbf0014 */ lw $ra,0x14($sp)
/* f660: 00a31021 */ addu $v0,$a1,$v1
/* f664: 244207f0 */ addiu $v0,$v0,0x7f0
/* f668: 03e00008 */ jr $ra
/* f66c: 27bd0170 */ addiu $sp,$sp,0x170
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000f0d4
/* f0d4: 27bdff10 */ addiu $sp,$sp,-240
/* f0d8: afb40028 */ sw $s4,0x28($sp)
/* f0dc: 0080a025 */ or $s4,$a0,$zero
/* f0e0: afbf002c */ sw $ra,0x2c($sp)
/* f0e4: afb30024 */ sw $s3,0x24($sp)
/* f0e8: afb20020 */ sw $s2,0x20($sp)
/* f0ec: afb1001c */ sw $s1,0x1c($sp)
/* f0f0: afb00018 */ sw $s0,0x18($sp)
/* f0f4: 14800003 */ bnez $a0,.L0000f104
/* f0f8: afa500f4 */ sw $a1,0xf4($sp)
/* f0fc: 10000042 */ b .L0000f208
/* f100: 00001025 */ or $v0,$zero,$zero
.L0000f104:
/* f104: 03a09025 */ or $s2,$sp,$zero
/* f108: 03a08825 */ or $s1,$sp,$zero
/* f10c: 3c0e0081 */ lui $t6,%hi(_sfxctlSegmentRomStart)
/* f110: 2631005f */ addiu $s1,$s1,0x5f
/* f114: 265200af */ addiu $s2,$s2,0xaf
/* f118: 25cea250 */ addiu $t6,$t6,%lo(_sfxctlSegmentRomStart)
/* f11c: 364f000f */ ori $t7,$s2,0xf
/* f120: 3639000f */ ori $t9,$s1,0xf
/* f124: 028ea021 */ addu $s4,$s4,$t6
/* f128: 3b31000f */ xori $s1,$t9,0xf
/* f12c: 39f2000f */ xori $s2,$t7,0xf
/* f130: 24130040 */ addiu $s3,$zero,0x40
/* f134: 02402025 */ or $a0,$s2,$zero
.L0000f138:
/* f138: 02802825 */ or $a1,$s4,$zero
/* f13c: 0c003513 */ jal dmaExecHighPriority
/* f140: 24060040 */ addiu $a2,$zero,0x40
/* f144: 00008025 */ or $s0,$zero,$zero
/* f148: 00001825 */ or $v1,$zero,$zero
/* f14c: 00001025 */ or $v0,$zero,$zero
.L0000f150:
/* f150: 02424821 */ addu $t1,$s2,$v0
/* f154: 8d2a0000 */ lw $t2,0x0($t1)
/* f158: 24630001 */ addiu $v1,$v1,0x1
/* f15c: 2c610010 */ sltiu $at,$v1,0x10
/* f160: 24420004 */ addiu $v0,$v0,0x4
/* f164: 1420fffa */ bnez $at,.L0000f150
/* f168: 020a8021 */ addu $s0,$s0,$t2
/* f16c: 02202025 */ or $a0,$s1,$zero
/* f170: 02802825 */ or $a1,$s4,$zero
/* f174: 0c003513 */ jal dmaExecHighPriority
/* f178: 24060040 */ addiu $a2,$zero,0x40
/* f17c: 00002025 */ or $a0,$zero,$zero
/* f180: 00001025 */ or $v0,$zero,$zero
.L0000f184:
/* f184: 02225821 */ addu $t3,$s1,$v0
/* f188: 8d6c0000 */ lw $t4,0x0($t3)
/* f18c: 24420004 */ addiu $v0,$v0,0x4
/* f190: 1453fffc */ bne $v0,$s3,.L0000f184
/* f194: 008c2021 */ addu $a0,$a0,$t4
/* f198: 5604ffe7 */ bnel $s0,$a0,.L0000f138
/* f19c: 02402025 */ or $a0,$s2,$zero
/* f1a0: 97a300f6 */ lhu $v1,0xf6($sp)
/* f1a4: 3c048009 */ lui $a0,%hi(var80095210)
/* f1a8: 24845210 */ addiu $a0,$a0,%lo(var80095210)
/* f1ac: 00036880 */ sll $t5,$v1,0x2
/* f1b0: 01a36823 */ subu $t5,$t5,$v1
/* f1b4: 000d6880 */ sll $t5,$t5,0x2
/* f1b8: 01a36823 */ subu $t5,$t5,$v1
/* f1bc: 000d1880 */ sll $v1,$t5,0x2
/* f1c0: 00837021 */ addu $t6,$a0,$v1
/* f1c4: 0220c825 */ or $t9,$s1,$zero
/* f1c8: 26380024 */ addiu $t8,$s1,0x24
.L0000f1cc:
/* f1cc: 8f210000 */ lw $at,0x0($t9)
/* f1d0: 2739000c */ addiu $t9,$t9,0xc
/* f1d4: 25ce000c */ addiu $t6,$t6,0xc
/* f1d8: adc1364c */ sw $at,0x364c($t6)
/* f1dc: 8f21fff8 */ lw $at,-0x8($t9)
/* f1e0: adc13650 */ sw $at,0x3650($t6)
/* f1e4: 8f21fffc */ lw $at,-0x4($t9)
/* f1e8: 1738fff8 */ bne $t9,$t8,.L0000f1cc
/* f1ec: adc13654 */ sw $at,0x3654($t6)
/* f1f0: 8f210000 */ lw $at,0x0($t9)
/* f1f4: 00831021 */ addu $v0,$a0,$v1
/* f1f8: 24423658 */ addiu $v0,$v0,0x3658
/* f1fc: adc13658 */ sw $at,0x3658($t6)
/* f200: 8f380004 */ lw $t8,0x4($t9)
/* f204: add8365c */ sw $t8,0x365c($t6)
.L0000f208:
/* f208: 8fbf002c */ lw $ra,0x2c($sp)
/* f20c: 8fb00018 */ lw $s0,0x18($sp)
/* f210: 8fb1001c */ lw $s1,0x1c($sp)
/* f214: 8fb20020 */ lw $s2,0x20($sp)
/* f218: 8fb30024 */ lw $s3,0x24($sp)
/* f21c: 8fb40028 */ lw $s4,0x28($sp)
/* f220: 03e00008 */ jr $ra
/* f224: 27bd00f0 */ addiu $sp,$sp,0xf0
);
#else
GLOBAL_ASM(
glabel snd0000f0d4
/* f670: 27bdff90 */ addiu $sp,$sp,-112
/* f674: afbf0014 */ sw $ra,0x14($sp)
/* f678: afa50074 */ sw $a1,0x74($sp)
/* f67c: 14800003 */ bnez $a0,.NB0000f68c
/* f680: 00803825 */ or $a3,$a0,$zero
/* f684: 10000025 */ beqz $zero,.NB0000f71c
/* f688: 00001025 */ or $v0,$zero,$zero
.NB0000f68c:
/* f68c: 03a02025 */ or $a0,$sp,$zero
/* f690: 2484002f */ addiu $a0,$a0,0x2f
/* f694: 3c0e007c */ lui $t6,0x7c
/* f698: 348f000f */ ori $t7,$a0,0xf
/* f69c: 25cee940 */ addiu $t6,$t6,-5824
/* f6a0: 39e4000f */ xori $a0,$t7,0xf
/* f6a4: 00ee2821 */ addu $a1,$a3,$t6
/* f6a8: afa40018 */ sw $a0,0x18($sp)
/* f6ac: 0c00366e */ jal dmaExecHighPriority
/* f6b0: 24060040 */ addiu $a2,$zero,0x40
/* f6b4: 97a30076 */ lhu $v1,0x76($sp)
/* f6b8: 8fac0018 */ lw $t4,0x18($sp)
/* f6bc: 3c05800a */ lui $a1,0x800a
/* f6c0: 0003c880 */ sll $t9,$v1,0x2
/* f6c4: 0323c823 */ subu $t9,$t9,$v1
/* f6c8: 0019c880 */ sll $t9,$t9,0x2
/* f6cc: 0323c823 */ subu $t9,$t9,$v1
/* f6d0: 24a58190 */ addiu $a1,$a1,-32368
/* f6d4: 00191880 */ sll $v1,$t9,0x2
/* f6d8: 00a34021 */ addu $t0,$a1,$v1
/* f6dc: 258b0024 */ addiu $t3,$t4,0x24
.NB0000f6e0:
/* f6e0: 8d810000 */ lw $at,0x0($t4)
/* f6e4: 258c000c */ addiu $t4,$t4,0xc
/* f6e8: 2508000c */ addiu $t0,$t0,0xc
/* f6ec: ad01364c */ sw $at,0x364c($t0)
/* f6f0: 8d81fff8 */ lw $at,-0x8($t4)
/* f6f4: ad013650 */ sw $at,0x3650($t0)
/* f6f8: 8d81fffc */ lw $at,-0x4($t4)
/* f6fc: 158bfff8 */ bne $t4,$t3,.NB0000f6e0
/* f700: ad013654 */ sw $at,0x3654($t0)
/* f704: 8d810000 */ lw $at,0x0($t4)
/* f708: 00a31021 */ addu $v0,$a1,$v1
/* f70c: 24423658 */ addiu $v0,$v0,0x3658
/* f710: ad013658 */ sw $at,0x3658($t0)
/* f714: 8d8b0004 */ lw $t3,0x4($t4)
/* f718: ad0b365c */ sw $t3,0x365c($t0)
.NB0000f71c:
/* f71c: 8fbf0014 */ lw $ra,0x14($sp)
/* f720: 27bd0070 */ addiu $sp,$sp,0x70
/* f724: 03e00008 */ jr $ra
/* f728: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000f228
/* f228: 27bdff08 */ addiu $sp,$sp,-248
/* f22c: afb20020 */ sw $s2,0x20($sp)
/* f230: afb1001c */ sw $s1,0x1c($sp)
/* f234: 03a08825 */ or $s1,$sp,$zero
/* f238: 03a09025 */ or $s2,$sp,$zero
/* f23c: 3c0e0081 */ lui $t6,%hi(_sfxctlSegmentRomStart)
/* f240: 265200b7 */ addiu $s2,$s2,0xb7
/* f244: 26310067 */ addiu $s1,$s1,0x67
/* f248: afb40028 */ sw $s4,0x28($sp)
/* f24c: afb30024 */ sw $s3,0x24($sp)
/* f250: 25cea250 */ addiu $t6,$t6,%lo(_sfxctlSegmentRomStart)
/* f254: 3639000f */ ori $t9,$s1,0xf
/* f258: 364f000f */ ori $t7,$s2,0xf
/* f25c: afbf002c */ sw $ra,0x2c($sp)
/* f260: afb00018 */ sw $s0,0x18($sp)
/* f264: afa500fc */ sw $a1,0xfc($sp)
/* f268: 008ea021 */ addu $s4,$a0,$t6
/* f26c: 39f2000f */ xori $s2,$t7,0xf
/* f270: 3b31000f */ xori $s1,$t9,0xf
/* f274: 24130040 */ addiu $s3,$zero,0x40
/* f278: 02402025 */ or $a0,$s2,$zero
.L0000f27c:
/* f27c: 02802825 */ or $a1,$s4,$zero
/* f280: 0c003513 */ jal dmaExecHighPriority
/* f284: 24060040 */ addiu $a2,$zero,0x40
/* f288: 00008025 */ or $s0,$zero,$zero
/* f28c: 00001825 */ or $v1,$zero,$zero
/* f290: 00001025 */ or $v0,$zero,$zero
.L0000f294:
/* f294: 02424821 */ addu $t1,$s2,$v0
/* f298: 8d2a0000 */ lw $t2,0x0($t1)
/* f29c: 24630001 */ addiu $v1,$v1,0x1
/* f2a0: 2c610010 */ sltiu $at,$v1,0x10
/* f2a4: 24420004 */ addiu $v0,$v0,0x4
/* f2a8: 1420fffa */ bnez $at,.L0000f294
/* f2ac: 020a8021 */ addu $s0,$s0,$t2
/* f2b0: 02202025 */ or $a0,$s1,$zero
/* f2b4: 02802825 */ or $a1,$s4,$zero
/* f2b8: 0c003513 */ jal dmaExecHighPriority
/* f2bc: 24060040 */ addiu $a2,$zero,0x40
/* f2c0: 00002025 */ or $a0,$zero,$zero
/* f2c4: 00001025 */ or $v0,$zero,$zero
.L0000f2c8:
/* f2c8: 02225821 */ addu $t3,$s1,$v0
/* f2cc: 8d6c0000 */ lw $t4,0x0($t3)
/* f2d0: 24420004 */ addiu $v0,$v0,0x4
/* f2d4: 1453fffc */ bne $v0,$s3,.L0000f2c8
/* f2d8: 008c2021 */ addu $a0,$a0,$t4
/* f2dc: 5604ffe7 */ bnel $s0,$a0,.L0000f27c
/* f2e0: 02402025 */ or $a0,$s2,$zero
/* f2e4: 97ad00fe */ lhu $t5,0xfe($sp)
/* f2e8: 3c0f8009 */ lui $t7,%hi(var80095210)
/* f2ec: 8e210000 */ lw $at,0x0($s1)
/* f2f0: 000d7080 */ sll $t6,$t5,0x2
/* f2f4: 01cd7021 */ addu $t6,$t6,$t5
/* f2f8: 000e7080 */ sll $t6,$t6,0x2
/* f2fc: 25ef5210 */ addiu $t7,$t7,%lo(var80095210)
/* f300: 01cf1021 */ addu $v0,$t6,$t7
/* f304: 2450046c */ addiu $s0,$v0,0x46c
/* f308: ae010000 */ sw $at,0x0($s0)
/* f30c: 8e390004 */ lw $t9,0x4($s1)
/* f310: 3c090084 */ lui $t1,%hi(_sfxtblSegmentRomStart)
/* f314: 25299dd0 */ addiu $t1,$t1,%lo(_sfxtblSegmentRomStart)
/* f318: ae190004 */ sw $t9,0x4($s0)
/* f31c: 8e210008 */ lw $at,0x8($s1)
/* f320: ae010008 */ sw $at,0x8($s0)
/* f324: 8e39000c */ lw $t9,0xc($s1)
/* f328: ae19000c */ sw $t9,0xc($s0)
/* f32c: 8e210010 */ lw $at,0x10($s1)
/* f330: ae010010 */ sw $at,0x10($s0)
/* f334: 8c48046c */ lw $t0,0x46c($v0)
/* f338: 904b0474 */ lbu $t3,0x474($v0)
/* f33c: 01095021 */ addu $t2,$t0,$t1
/* f340: 15600009 */ bnez $t3,.L0000f368
/* f344: ac4a046c */ sw $t2,0x46c($v0)
/* f348: 8e040010 */ lw $a0,0x10($s0)
/* f34c: 0c003bea */ jal snd0000efa8
/* f350: 97a500fe */ lhu $a1,0xfe($sp)
/* f354: ae020010 */ sw $v0,0x10($s0)
/* f358: 8e04000c */ lw $a0,0xc($s0)
/* f35c: 0c003c35 */ jal snd0000f0d4
/* f360: 97a500fe */ lhu $a1,0xfe($sp)
/* f364: ae02000c */ sw $v0,0xc($s0)
.L0000f368:
/* f368: 8fbf002c */ lw $ra,0x2c($sp)
/* f36c: 02001025 */ or $v0,$s0,$zero
/* f370: 8fb00018 */ lw $s0,0x18($sp)
/* f374: 8fb1001c */ lw $s1,0x1c($sp)
/* f378: 8fb20020 */ lw $s2,0x20($sp)
/* f37c: 8fb30024 */ lw $s3,0x24($sp)
/* f380: 8fb40028 */ lw $s4,0x28($sp)
/* f384: 03e00008 */ jr $ra
/* f388: 27bd00f8 */ addiu $sp,$sp,0xf8
);
#else
GLOBAL_ASM(
glabel snd0000f228
/* f72c: 27bdff88 */ addiu $sp,$sp,-120
/* f730: 3c0e007c */ lui $t6,0x7c
/* f734: afa5007c */ sw $a1,0x7c($sp)
/* f738: 25cee940 */ addiu $t6,$t6,-5824
/* f73c: afa40078 */ sw $a0,0x78($sp)
/* f740: 008e2821 */ addu $a1,$a0,$t6
/* f744: 03a02025 */ or $a0,$sp,$zero
/* f748: 24840037 */ addiu $a0,$a0,0x37
/* f74c: 348f000f */ ori $t7,$a0,0xf
/* f750: afbf0014 */ sw $ra,0x14($sp)
/* f754: 39e4000f */ xori $a0,$t7,0xf
/* f758: afa4001c */ sw $a0,0x1c($sp)
/* f75c: 0c00366e */ jal dmaExecHighPriority
/* f760: 24060040 */ addiu $a2,$zero,0x40
/* f764: 97a5007e */ lhu $a1,0x7e($sp)
/* f768: 8fa4001c */ lw $a0,0x1c($sp)
/* f76c: 3c08800a */ lui $t0,0x800a
/* f770: 0005c880 */ sll $t9,$a1,0x2
/* f774: 0325c821 */ addu $t9,$t9,$a1
/* f778: 8c810000 */ lw $at,0x0($a0)
/* f77c: 0019c880 */ sll $t9,$t9,0x2
/* f780: 25088190 */ addiu $t0,$t0,-32368
/* f784: 03281021 */ addu $v0,$t9,$t0
/* f788: 2443046c */ addiu $v1,$v0,0x46c
/* f78c: ac610000 */ sw $at,0x0($v1)
/* f790: 8c8b0004 */ lw $t3,0x4($a0)
/* f794: 3c0d007f */ lui $t5,0x7f
/* f798: 25ade4c0 */ addiu $t5,$t5,-6976
/* f79c: ac6b0004 */ sw $t3,0x4($v1)
/* f7a0: 8c810008 */ lw $at,0x8($a0)
/* f7a4: ac610008 */ sw $at,0x8($v1)
/* f7a8: 8c8b000c */ lw $t3,0xc($a0)
/* f7ac: ac6b000c */ sw $t3,0xc($v1)
/* f7b0: 8c810010 */ lw $at,0x10($a0)
/* f7b4: ac610010 */ sw $at,0x10($v1)
/* f7b8: 8c4c046c */ lw $t4,0x46c($v0)
/* f7bc: 904f0474 */ lbu $t7,0x474($v0)
/* f7c0: 018d7021 */ addu $t6,$t4,$t5
/* f7c4: 15e0000b */ bnez $t7,.NB0000f7f4
/* f7c8: ac4e046c */ sw $t6,0x46c($v0)
/* f7cc: 8c640010 */ lw $a0,0x10($v1)
/* f7d0: 0c003d77 */ jal snd0000efa8
/* f7d4: afa30018 */ sw $v1,0x18($sp)
/* f7d8: 8fa30018 */ lw $v1,0x18($sp)
/* f7dc: 97a5007e */ lhu $a1,0x7e($sp)
/* f7e0: ac620010 */ sw $v0,0x10($v1)
/* f7e4: 0c003d9c */ jal snd0000f0d4
/* f7e8: 8c64000c */ lw $a0,0xc($v1)
/* f7ec: 8fa30018 */ lw $v1,0x18($sp)
/* f7f0: ac62000c */ sw $v0,0xc($v1)
.NB0000f7f4:
/* f7f4: 8fbf0014 */ lw $ra,0x14($sp)
/* f7f8: 27bd0078 */ addiu $sp,$sp,0x78
/* f7fc: 00601025 */ or $v0,$v1,$zero
/* f800: 03e00008 */ jr $ra
/* f804: 00000000 */ sll $zero,$zero,0x0
);
#endif
void sndSetSoundMode(s32 mode)
{
s32 i;
g_SoundMode = mode;
switch (mode) {
case SOUNDMODE_MONO:
speakersSetMode(SPEAKERMODE_MONO);
break;
case SOUNDMODE_STEREO:
speakersSetMode(SPEAKERMODE_STEREO);
break;
case SOUNDMODE_HEADPHONE:
speakersSetMode(SPEAKERMODE_HEADPHONE);
break;
case SOUNDMODE_SURROUND:
speakersSetMode(SPEAKERMODE_SURROUND);
break;
}
speaker00034104(0, 4);
for (i = 1; i < g_SndMaxFxBusses; i++) {
switch (mode) {
case SOUNDMODE_STEREO:
case SOUNDMODE_HEADPHONE:
case SOUNDMODE_SURROUND:
speaker00034104(i, 4);
break;
}
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000f49c
/* f49c: 27bdff50 */ addiu $sp,$sp,-176
/* f4a0: afb00014 */ sw $s0,0x14($sp)
/* f4a4: 00048400 */ sll $s0,$a0,0x10
/* f4a8: 00107403 */ sra $t6,$s0,0x10
/* f4ac: afa400b0 */ sw $a0,0xb0($sp)
/* f4b0: 000e2400 */ sll $a0,$t6,0x10
/* f4b4: afbf001c */ sw $ra,0x1c($sp)
/* f4b8: 00047c03 */ sra $t7,$a0,0x10
/* f4bc: 01c08025 */ or $s0,$t6,$zero
/* f4c0: afb10018 */ sw $s1,0x18($sp)
/* f4c4: 0c003ee8 */ jal sndIsMp3
/* f4c8: 01e02025 */ or $a0,$t7,$zero
/* f4cc: 10400003 */ beqz $v0,.L0000f4dc
/* f4d0: 3c088009 */ lui $t0,%hi(var80095210)
/* f4d4: 10000064 */ b .L0000f668
/* f4d8: 00001025 */ or $v0,$zero,$zero
.L0000f4dc:
/* f4dc: 25085210 */ addiu $t0,$t0,%lo(var80095210)
/* f4e0: 320a07ff */ andi $t2,$s0,0x7ff
/* f4e4: 8d060000 */ lw $a2,0x0($t0)
/* f4e8: 000ac400 */ sll $t8,$t2,0x10
/* f4ec: 00185403 */ sra $t2,$t8,0x10
/* f4f0: 000a5840 */ sll $t3,$t2,0x1
/* f4f4: 00cb6021 */ addu $t4,$a2,$t3
/* f4f8: 95890000 */ lhu $t1,0x0($t4)
/* f4fc: 3401ffff */ dli $at,0xffff
/* f500: 2407ffff */ addiu $a3,$zero,-1
/* f504: 15210051 */ bne $t1,$at,.L0000f64c
/* f508: 00002825 */ or $a1,$zero,$zero
/* f50c: 3c038009 */ lui $v1,%hi(var80095210)
/* f510: 24635210 */ addiu $v1,$v1,%lo(var80095210)
/* f514: 00001025 */ or $v0,$zero,$zero
.L0000f518:
/* f518: 906d0004 */ lbu $t5,0x4($v1)
/* f51c: 00027040 */ sll $t6,$v0,0x1
/* f520: 010e7821 */ addu $t7,$t0,$t6
/* f524: 55a00008 */ bnezl $t5,.L0000f548
/* f528: 24420001 */ addiu $v0,$v0,0x1
/* f52c: 95e40032 */ lhu $a0,0x32($t7)
/* f530: 00a4082b */ sltu $at,$a1,$a0
/* f534: 50200004 */ beqzl $at,.L0000f548
/* f538: 24420001 */ addiu $v0,$v0,0x1
/* f53c: 00802825 */ or $a1,$a0,$zero
/* f540: 00403825 */ or $a3,$v0,$zero
/* f544: 24420001 */ addiu $v0,$v0,0x1
.L0000f548:
/* f548: 2841002d */ slti $at,$v0,0x2d
/* f54c: 1420fff2 */ bnez $at,.L0000f518
/* f550: 24630001 */ addiu $v1,$v1,0x1
/* f554: 3c048009 */ lui $a0,%hi(g_NumSounds)
/* f558: 8c844ea0 */ lw $a0,%lo(g_NumSounds)($a0)
/* f55c: 30e9ffff */ andi $t1,$a3,0xffff
/* f560: 00c01825 */ or $v1,$a2,$zero
/* f564: 1080000d */ beqz $a0,.L0000f59c
/* f568: 00001025 */ or $v0,$zero,$zero
/* f56c: 30e5ffff */ andi $a1,$a3,0xffff
/* f570: 3406ffff */ dli $a2,0xffff
.L0000f574:
/* f574: 94780000 */ lhu $t8,0x0($v1)
/* f578: 24420001 */ addiu $v0,$v0,0x1
/* f57c: 54b80005 */ bnel $a1,$t8,.L0000f594
/* f580: 0044082b */ sltu $at,$v0,$a0
/* f584: a4660000 */ sh $a2,0x0($v1)
/* f588: 3c048009 */ lui $a0,%hi(g_NumSounds)
/* f58c: 8c844ea0 */ lw $a0,%lo(g_NumSounds)($a0)
/* f590: 0044082b */ sltu $at,$v0,$a0
.L0000f594:
/* f594: 1420fff7 */ bnez $at,.L0000f574
/* f598: 24630002 */ addiu $v1,$v1,0x2
.L0000f59c:
/* f59c: 3c0d8009 */ lui $t5,%hi(g_ALSoundRomOffsets)
/* f5a0: 8dad4ea4 */ lw $t5,%lo(g_ALSoundRomOffsets)($t5)
/* f5a4: 03a08025 */ or $s0,$sp,$zero
/* f5a8: 26100047 */ addiu $s0,$s0,0x47
/* f5ac: 000a7080 */ sll $t6,$t2,0x2
/* f5b0: 3619000f */ ori $t9,$s0,0xf
/* f5b4: 01ae7821 */ addu $t7,$t5,$t6
/* f5b8: 8de5fffc */ lw $a1,-0x4($t7)
/* f5bc: 3b24000f */ xori $a0,$t9,0xf
/* f5c0: 00808025 */ or $s0,$a0,$zero
/* f5c4: afab0024 */ sw $t3,0x24($sp)
/* f5c8: a7a900aa */ sh $t1,0xaa($sp)
/* f5cc: 24060040 */ addiu $a2,$zero,0x40
/* f5d0: 0c003513 */ jal dmaExecHighPriority
/* f5d4: 30f1ffff */ andi $s1,$a3,0xffff
/* f5d8: 8e040000 */ lw $a0,0x0($s0)
/* f5dc: 0c003b5a */ jal snd0000ed68
/* f5e0: 3225ffff */ andi $a1,$s1,0xffff
/* f5e4: ae020000 */ sw $v0,0x0($s0)
/* f5e8: 8e040008 */ lw $a0,0x8($s0)
/* f5ec: 0c003c8a */ jal snd0000f228
/* f5f0: 3225ffff */ andi $a1,$s1,0xffff
/* f5f4: ae020008 */ sw $v0,0x8($s0)
/* f5f8: 8e040004 */ lw $a0,0x4($s0)
/* f5fc: 0c003ba2 */ jal snd0000ee88
/* f600: 3225ffff */ andi $a1,$s1,0xffff
/* f604: 8e010000 */ lw $at,0x0($s0)
/* f608: 3c088009 */ lui $t0,%hi(var80095210)
/* f60c: 25085210 */ addiu $t0,$t0,%lo(var80095210)
/* f610: 97a900aa */ lhu $t1,0xaa($sp)
/* f614: 0011c100 */ sll $t8,$s1,0x4
/* f618: ae020004 */ sw $v0,0x4($s0)
/* f61c: 0118c821 */ addu $t9,$t0,$t8
/* f620: af213e14 */ sw $at,0x3e14($t9)
/* f624: 8e0d0004 */ lw $t5,0x4($s0)
/* f628: af2d3e18 */ sw $t5,0x3e18($t9)
/* f62c: 8e010008 */ lw $at,0x8($s0)
/* f630: af213e1c */ sw $at,0x3e1c($t9)
/* f634: 8e0d000c */ lw $t5,0xc($s0)
/* f638: af2d3e20 */ sw $t5,0x3e20($t9)
/* f63c: 8faf0024 */ lw $t7,0x24($sp)
/* f640: 8d0e0000 */ lw $t6,0x0($t0)
/* f644: 01cfc021 */ addu $t8,$t6,$t7
/* f648: a7110000 */ sh $s1,0x0($t8)
.L0000f64c:
/* f64c: 0009c840 */ sll $t9,$t1,0x1
/* f650: 00097100 */ sll $t6,$t1,0x4
/* f654: 01196821 */ addu $t5,$t0,$t9
/* f658: 240c0001 */ addiu $t4,$zero,0x1
/* f65c: 010e1021 */ addu $v0,$t0,$t6
/* f660: a5ac0032 */ sh $t4,0x32($t5)
/* f664: 24423e14 */ addiu $v0,$v0,0x3e14
.L0000f668:
/* f668: 8fbf001c */ lw $ra,0x1c($sp)
/* f66c: 8fb00014 */ lw $s0,0x14($sp)
/* f670: 8fb10018 */ lw $s1,0x18($sp)
/* f674: 03e00008 */ jr $ra
/* f678: 27bd00b0 */ addiu $sp,$sp,0xb0
);
#else
GLOBAL_ASM(
glabel snd0000f49c
/* f918: 27bdff50 */ addiu $sp,$sp,-176
/* f91c: afb00014 */ sw $s0,0x14($sp)
/* f920: 00048400 */ sll $s0,$a0,0x10
/* f924: 00107403 */ sra $t6,$s0,0x10
/* f928: afa400b0 */ sw $a0,0xb0($sp)
/* f92c: 000e2400 */ sll $a0,$t6,0x10
/* f930: afbf001c */ sw $ra,0x1c($sp)
/* f934: 00047c03 */ sra $t7,$a0,0x10
/* f938: 01c08025 */ or $s0,$t6,$zero
/* f93c: afb10018 */ sw $s1,0x18($sp)
/* f940: 0c00400e */ jal sndIsMp3
/* f944: 01e02025 */ or $a0,$t7,$zero
/* f948: 10400003 */ beqz $v0,.NB0000f958
/* f94c: 3c08800a */ lui $t0,0x800a
/* f950: 1000006b */ beqz $zero,.NB0000fb00
/* f954: 00001025 */ or $v0,$zero,$zero
.NB0000f958:
/* f958: 25088190 */ addiu $t0,$t0,-32368
/* f95c: 320b07ff */ andi $t3,$s0,0x7ff
/* f960: 8d060000 */ lw $a2,0x0($t0)
/* f964: 000bc400 */ sll $t8,$t3,0x10
/* f968: 00185c03 */ sra $t3,$t8,0x10
/* f96c: 000b6040 */ sll $t4,$t3,0x1
/* f970: 00cc6821 */ addu $t5,$a2,$t4
/* f974: 95aa0000 */ lhu $t2,0x0($t5)
/* f978: 3401ffff */ dli $at,0xffff
/* f97c: 2407ffff */ addiu $a3,$zero,-1
/* f980: 15410056 */ bne $t2,$at,.NB0000fadc
/* f984: 00002825 */ or $a1,$zero,$zero
/* f988: 3c03800a */ lui $v1,0x800a
/* f98c: 3c09800a */ lui $t1,0x800a
/* f990: 2529e6c0 */ addiu $t1,$t1,-6464
/* f994: 24638190 */ addiu $v1,$v1,-32368
/* f998: 00001025 */ or $v0,$zero,$zero
.NB0000f99c:
/* f99c: 906e0004 */ lbu $t6,0x4($v1)
/* f9a0: 0002c040 */ sll $t8,$v0,0x1
/* f9a4: 0118c821 */ addu $t9,$t0,$t8
/* f9a8: 55c0000b */ bnezl $t6,.NB0000f9d8
/* f9ac: 24420001 */ addiu $v0,$v0,0x1
/* f9b0: 952f035c */ lhu $t7,0x35c($t1)
/* f9b4: 972d0032 */ lhu $t5,0x32($t9)
/* f9b8: 01ed2023 */ subu $a0,$t7,$t5
/* f9bc: 24840001 */ addiu $a0,$a0,0x1
/* f9c0: 00a4082b */ sltu $at,$a1,$a0
/* f9c4: 50200004 */ beqzl $at,.NB0000f9d8
/* f9c8: 24420001 */ addiu $v0,$v0,0x1
/* f9cc: 00802825 */ or $a1,$a0,$zero
/* f9d0: 00403825 */ or $a3,$v0,$zero
/* f9d4: 24420001 */ addiu $v0,$v0,0x1
.NB0000f9d8:
/* f9d8: 2841002d */ slti $at,$v0,0x2d
/* f9dc: 1420ffef */ bnez $at,.NB0000f99c
/* f9e0: 24630001 */ addiu $v1,$v1,0x1
/* f9e4: 3c048009 */ lui $a0,0x8009
/* f9e8: 8c847e20 */ lw $a0,0x7e20($a0)
/* f9ec: 30eaffff */ andi $t2,$a3,0xffff
/* f9f0: 00c01825 */ or $v1,$a2,$zero
/* f9f4: 1080000d */ beqz $a0,.NB0000fa2c
/* f9f8: 00001025 */ or $v0,$zero,$zero
/* f9fc: 30e5ffff */ andi $a1,$a3,0xffff
/* fa00: 3406ffff */ dli $a2,0xffff
.NB0000fa04:
/* fa04: 946e0000 */ lhu $t6,0x0($v1)
/* fa08: 24420001 */ addiu $v0,$v0,0x1
/* fa0c: 54ae0005 */ bnel $a1,$t6,.NB0000fa24
/* fa10: 0044082b */ sltu $at,$v0,$a0
/* fa14: a4660000 */ sh $a2,0x0($v1)
/* fa18: 3c048009 */ lui $a0,0x8009
/* fa1c: 8c847e20 */ lw $a0,0x7e20($a0)
/* fa20: 0044082b */ sltu $at,$v0,$a0
.NB0000fa24:
/* fa24: 1420fff7 */ bnez $at,.NB0000fa04
/* fa28: 24630002 */ addiu $v1,$v1,0x2
.NB0000fa2c:
/* fa2c: 3c0f8009 */ lui $t7,0x8009
/* fa30: 8def7e24 */ lw $t7,0x7e24($t7)
/* fa34: 03a08025 */ or $s0,$sp,$zero
/* fa38: 26100047 */ addiu $s0,$s0,0x47
/* fa3c: 000b6880 */ sll $t5,$t3,0x2
/* fa40: 3618000f */ ori $t8,$s0,0xf
/* fa44: 01ed7021 */ addu $t6,$t7,$t5
/* fa48: 8dc5fffc */ lw $a1,-0x4($t6)
/* fa4c: 3b04000f */ xori $a0,$t8,0xf
/* fa50: 00808025 */ or $s0,$a0,$zero
/* fa54: afac0024 */ sw $t4,0x24($sp)
/* fa58: a7aa00aa */ sh $t2,0xaa($sp)
/* fa5c: 24060040 */ addiu $a2,$zero,0x40
/* fa60: 0c00366e */ jal dmaExecHighPriority
/* fa64: 30f1ffff */ andi $s1,$a3,0xffff
/* fa68: 8e040000 */ lw $a0,0x0($s0)
/* fa6c: 0c003d30 */ jal snd0000ed68
/* fa70: 3225ffff */ andi $a1,$s1,0xffff
/* fa74: ae020000 */ sw $v0,0x0($s0)
/* fa78: 8e040008 */ lw $a0,0x8($s0)
/* fa7c: 0c003dcb */ jal snd0000f228
/* fa80: 3225ffff */ andi $a1,$s1,0xffff
/* fa84: ae020008 */ sw $v0,0x8($s0)
/* fa88: 8e040004 */ lw $a0,0x4($s0)
/* fa8c: 0c003d53 */ jal snd0000ee88
/* fa90: 3225ffff */ andi $a1,$s1,0xffff
/* fa94: 8e010000 */ lw $at,0x0($s0)
/* fa98: 3c08800a */ lui $t0,0x800a
/* fa9c: 25088190 */ addiu $t0,$t0,-32368
/* faa0: 97aa00aa */ lhu $t2,0xaa($sp)
/* faa4: 0011c100 */ sll $t8,$s1,0x4
/* faa8: ae020004 */ sw $v0,0x4($s0)
/* faac: 0118c821 */ addu $t9,$t0,$t8
/* fab0: af213e14 */ sw $at,0x3e14($t9)
/* fab4: 8e0d0004 */ lw $t5,0x4($s0)
/* fab8: af2d3e18 */ sw $t5,0x3e18($t9)
/* fabc: 8e010008 */ lw $at,0x8($s0)
/* fac0: af213e1c */ sw $at,0x3e1c($t9)
/* fac4: 8e0d000c */ lw $t5,0xc($s0)
/* fac8: af2d3e20 */ sw $t5,0x3e20($t9)
/* facc: 8fb80024 */ lw $t8,0x24($sp)
/* fad0: 8d0e0000 */ lw $t6,0x0($t0)
/* fad4: 01d87821 */ addu $t7,$t6,$t8
/* fad8: a5f10000 */ sh $s1,0x0($t7)
.NB0000fadc:
/* fadc: 3c09800a */ lui $t1,0x800a
/* fae0: 2529e6c0 */ addiu $t1,$t1,-6464
/* fae4: 9539035c */ lhu $t9,0x35c($t1)
/* fae8: 000a6840 */ sll $t5,$t2,0x1
/* faec: 000ac100 */ sll $t8,$t2,0x4
/* faf0: 010d7021 */ addu $t6,$t0,$t5
/* faf4: 01181021 */ addu $v0,$t0,$t8
/* faf8: 24423e14 */ addiu $v0,$v0,0x3e14
/* fafc: a5d90032 */ sh $t9,0x32($t6)
.NB0000fb00:
/* fb00: 8fbf001c */ lw $ra,0x1c($sp)
/* fb04: 8fb00014 */ lw $s0,0x14($sp)
/* fb08: 8fb10018 */ lw $s1,0x18($sp)
/* fb0c: 03e00008 */ jr $ra
/* fb10: 27bd00b0 */ addiu $sp,$sp,0xb0
);
#endif
void snd0000f67c(struct var80094ed8 *arg0)
{
u32 stack;
ALSeqpConfig config;
config.maxVoices = 44;
config.maxEvents = 64;
config.maxChannels = 16;
config.debugFlags = 0;
config.heap = &g_SndHeap;
func00030c98(&config);
if (IS4MB()) {
var8009520c = 0x3800;
} else {
var8009520c = 0x4800;
}
arg0->unk0fc = alHeapAlloc(&g_SndHeap, 1, var8009520c);
arg0->seqp = alHeapAlloc(&g_SndHeap, 1, sizeof(N_ALCSPlayer));
n_alCSPNew(arg0->seqp, &config);
func00037650(arg0->seqp, var80095204);
}
void snd0000f76c(void);
GLOBAL_ASM(
glabel snd0000f76c
/* f76c: 3c0e800a */ lui $t6,%hi(var80095210+0x3e14)
/* f770: 25ce9024 */ addiu $t6,$t6,%lo(var80095210+0x3e14)
/* f774: 008e082b */ sltu $at,$a0,$t6
/* f778: 1420000d */ bnez $at,.L0000f7b0
/* f77c: 3c0f800a */ lui $t7,%hi(var80095210+0x40d4)
/* f780: 25ef92e4 */ addiu $t7,$t7,%lo(var80095210+0x40d4)
/* f784: 01e4082b */ sltu $at,$t7,$a0
/* f788: 14200009 */ bnez $at,.L0000f7b0
/* f78c: 3c038009 */ lui $v1,%hi(var80095210)
/* f790: 24635210 */ addiu $v1,$v1,%lo(var80095210)
/* f794: 0083c023 */ subu $t8,$a0,$v1
/* f798: 2719c1ec */ addiu $t9,$t8,-15892
/* f79c: 00194103 */ sra $t0,$t9,0x4
/* f7a0: 00681021 */ addu $v0,$v1,$t0
/* f7a4: 90490004 */ lbu $t1,0x4($v0)
/* f7a8: 252a0001 */ addiu $t2,$t1,0x1
/* f7ac: a04a0004 */ sb $t2,0x4($v0)
.L0000f7b0:
/* f7b0: 03e00008 */ jr $ra
/* f7b4: 00000000 */ nop
);
void snd0000f7b8(void);
GLOBAL_ASM(
glabel snd0000f7b8
/* f7b8: 3c0e800a */ lui $t6,%hi(var80095210+0x3e14)
/* f7bc: 25ce9024 */ addiu $t6,$t6,%lo(var80095210+0x3e14)
/* f7c0: 008e082b */ sltu $at,$a0,$t6
/* f7c4: 1420000d */ bnez $at,.L0000f7fc
/* f7c8: 3c0f800a */ lui $t7,%hi(var80095210+0x40d4)
/* f7cc: 25ef92e4 */ addiu $t7,$t7,%lo(var80095210+0x40d4)
/* f7d0: 01e4082b */ sltu $at,$t7,$a0
/* f7d4: 14200009 */ bnez $at,.L0000f7fc
/* f7d8: 3c038009 */ lui $v1,%hi(var80095210)
/* f7dc: 24635210 */ addiu $v1,$v1,%lo(var80095210)
/* f7e0: 0083c023 */ subu $t8,$a0,$v1
/* f7e4: 2719c1ec */ addiu $t9,$t8,-15892
/* f7e8: 00194103 */ sra $t0,$t9,0x4
/* f7ec: 00681021 */ addu $v0,$v1,$t0
/* f7f0: 90490004 */ lbu $t1,0x4($v0)
/* f7f4: 252affff */ addiu $t2,$t1,-1
/* f7f8: a04a0004 */ sb $t2,0x4($v0)
.L0000f7fc:
/* f7fc: 03e00008 */ jr $ra
/* f800: 00000000 */ nop
);
void sndInit(void)
{
ALSndpConfig sndpconfig;
#if VERSION >= VERSION_PAL_FINAL
u32 heaplen = 1024 * 446;
#elif VERSION >= VERSION_NTSC_1_0
u32 heaplen = 1024 * 441;
#else
u32 heaplen = 1024 * 438;
#endif
g_Vars.langfilteron = false;
if (IS4MB()) {
g_SndMaxFxBusses = 1;
#if VERSION >= VERSION_PAL_FINAL
heaplen -= 1024 * 6;
#else
heaplen -= 1024 * 38;
#endif
heaplen -= 1024 * 137;
heaplen -= 1024 * 12;
heaplen -= 1024 * 23;
g_SndMp3Enabled = false;
} else {
g_SndMp3Enabled = true;
g_SndMaxFxBusses = 2;
if (argFindByPrefix(1, "-nomp3")) {
g_SndMp3Enabled = false;
}
}
if (!g_SndDisabled) {
// Allocate memory for the audio heap,
// clear it and give it to the audio library
ALSynConfig synconfig;
#if VERSION >= VERSION_PAL_FINAL
u32 settings[3];
#endif
u8 *ptr = malloc(heaplen, MEMPOOL_PERMANENT);
u32 len = &_seqctlSegmentRomEnd - &_seqctlSegmentRomStart;
s32 i;
u32 seqromaddr = (u32) &_sequencesSegmentRomStart;
u8 *heapstart = ptr;
u8 *end = heapstart + heaplen;
ALBankFile *bankfile;
while (ptr < end) {
*ptr = 0;
ptr++;
}
alHeapInit(&g_SndHeap, heapstart, heaplen);
// Allocate some space at the start of the heap for a string identifier.
// This might be used to determine if the heap has overflowed.
g_SndGuardStringPtr = alHeapAlloc(&g_SndHeap, 1, 32);
strcpy(g_SndGuardStringPtr, g_SndGuardString);
// Load sfx.ctl
sndLoadSfxCtl();
// Load seq.ctl
var80095200 = 0xffffffff;
bankfile = alHeapAlloc(&g_SndHeap, 1, len);
dmaExec(bankfile, (u32) &_seqctlSegmentRomStart, len);
// Load seq.tbl
alBnkfNew(bankfile, &_seqtblSegmentRomStart);
// Load the sequences table. To do this, load the header of the
// sequences segment and read the number of sequences, then allocate
// enough space for the table and load it.
var80095204 = bankfile->bankArray[0];
g_SeqTable = alHeapDBAlloc(0, 0, &g_SndHeap, 1, 0x10);
dmaExec(g_SeqTable, seqromaddr, 0x10);
len = g_SeqTable->count * sizeof(struct seqtableentry) + 4;
g_SeqTable = alHeapDBAlloc(0, 0, &g_SndHeap, 1, len);
dmaExec(g_SeqTable, seqromaddr, len + 0xf & 0xfffffff0);
// Promote segment-relative offsets to real pointers
for (i = 0; i < g_SeqTable->count; i++) {
g_SeqTable->entries[i].data += seqromaddr;
}
synconfig.maxVVoices = 44;
synconfig.maxPVoices = 30;
synconfig.maxUpdates = 64;
synconfig.dmaproc = NULL;
synconfig.outputRate = 0;
synconfig.heap = &g_SndHeap;
synconfig.maxFXbusses = g_SndMaxFxBusses;
for (i = 0; i < g_SndMaxFxBusses; i++) {
synconfig.fxTypes[i] = 6;
}
sndpconfig.maxEvents = 64;
sndpconfig.maxStates = 64;
sndpconfig.maxSounds = 20;
sndpconfig.unk10 = 9;
sndpconfig.heap = &g_SndHeap;
#if VERSION >= VERSION_PAL_FINAL
settings[0] = 22020;
settings[1] = 1;
settings[2] = 2000;
amgrCreate(&synconfig, settings);
#else
amgrCreate(&synconfig);
#endif
if (g_SndMp3Enabled) {
osSyncPrintf("RWI : Initialising the new and improved MP3 player\n");
mp3Init(&g_SndHeap);
func00037f08(0x7fff, 1);
func00037f5c(0, 1);
osSyncPrintf("RWI : MP3 player Initialising Done\n");
}
for (i = 0; i < 3; i++) {
snd0000f67c(&var80094ed8[i]);
}
osSyncPrintf("gsSndpNew\n");
n_alSndpNew(&sndpconfig);
osSyncPrintf("Set the sample callbacks\n");
func00033378(snd0000f76c);
func00033634(snd0000f7b8);
amgrStartThread();
sndSetSoundMode(g_SoundMode);
}
}
#if VERSION < VERSION_NTSC_1_0
const char var70055250nb[] = "DMA-Crash %s %d Ram: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x";
const char var700552a8nb[] = "snd.c";
const char var700552b0nb[] = "Snd Heap Check FAILED";
#endif
const char var70053be0[] = "Snd_Play_Universal : Overriding -> Link = %d\n";
#if VERSION < VERSION_NTSC_1_0
const char var700552f0nb[] = "Snd_Play_Mpeg : sndId=%d, vol=%d, pan=%d\n";
#endif
const char var70053c10[] = "Snd_Play_Mpeg : SYSTEM IS DISABLED\n";
const char var70053c34[] = "Snd_Play_Mpeg : Lib called -> Adr=%x\n";
const char var70053c5c[] = "Snd_Play_Mpeg : Chunk size -> Adr=%x\n";
bool sndIsMp3(u16 soundnum)
{
union soundnumhack tmp;
tmp.packed = soundnum & 0xffff;
return tmp.bits3.unk04 != 0;
}
bool snd0000fbc4(s16 arg0)
{
if (!g_SndDisabled && g_SndMp3Enabled) {
if (func00037ea4() && var80094eb0.unk08 != 0) {
return false;
}
func00037e1c();
var80094eb0.unk04 = 0;
var80094eb0.unk0c = -1;
}
return true;
}
void snd0000fc40(s32 arg0)
{
// empty
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd0000fc48
/* fc48: 27bdebb8 */ addiu $sp,$sp,-5192
/* fc4c: afb00018 */ sw $s0,0x18($sp)
/* fc50: 00808025 */ or $s0,$a0,$zero
/* fc54: afbf001c */ sw $ra,0x1c($sp)
/* fc58: afa5144c */ sw $a1,0x144c($sp)
/* fc5c: 0c00e344 */ jal func00038d10
/* fc60: 8c8400f8 */ lw $a0,0xf8($a0)
/* fc64: 3c0e8006 */ lui $t6,%hi(g_SndDisabled)
/* fc68: 8dcedda0 */ lw $t6,%lo(g_SndDisabled)($t6)
/* fc6c: 8fa4144c */ lw $a0,0x144c($sp)
/* fc70: 3c038009 */ lui $v1,%hi(g_SeqTable)
/* fc74: 51c00004 */ beqzl $t6,.L0000fc88
/* fc78: ae040104 */ sw $a0,0x104($s0)
/* fc7c: 10000038 */ b .L0000fd60
/* fc80: 00001025 */ or $v0,$zero,$zero
/* fc84: ae040104 */ sw $a0,0x104($s0)
.L0000fc88:
/* fc88: 10400003 */ beqz $v0,.L0000fc98
/* fc8c: 8c635208 */ lw $v1,%lo(g_SeqTable)($v1)
/* fc90: 10000033 */ b .L0000fd60
/* fc94: 00001025 */ or $v0,$zero,$zero
.L0000fc98:
/* fc98: 8e0f0104 */ lw $t7,0x104($s0)
/* fc9c: 3c010001 */ lui $at,0x1
/* fca0: 000fc0c0 */ sll $t8,$t7,0x3
/* fca4: 00781021 */ addu $v0,$v1,$t8
/* fca8: 8c450004 */ lw $a1,0x4($v0)
/* fcac: 00a1082b */ sltu $at,$a1,$at
/* fcb0: 50200004 */ beqzl $at,.L0000fcc4
/* fcb4: 94430008 */ lhu $v1,0x8($v0)
/* fcb8: 10000029 */ b .L0000fd60
/* fcbc: 00001025 */ or $v0,$zero,$zero
/* fcc0: 94430008 */ lhu $v1,0x8($v0)
.L0000fcc4:
/* fcc4: 3c098009 */ lui $t1,%hi(var8009520c)
/* fcc8: 8d29520c */ lw $t1,%lo(var8009520c)($t1)
/* fccc: 2463000f */ addiu $v1,$v1,0xf
/* fcd0: 3479000f */ ori $t9,$v1,0xf
/* fcd4: 3b28000f */ xori $t0,$t9,0xf
/* fcd8: 25030040 */ addiu $v1,$t0,0x40
/* fcdc: 0069082b */ sltu $at,$v1,$t1
/* fce0: 54200004 */ bnezl $at,.L0000fcf4
/* fce4: 9446000a */ lhu $a2,0xa($v0)
/* fce8: 1000001d */ b .L0000fd60
/* fcec: 00001025 */ or $v0,$zero,$zero
/* fcf0: 9446000a */ lhu $a2,0xa($v0)
.L0000fcf4:
/* fcf4: 8e0700fc */ lw $a3,0xfc($s0)
/* fcf8: 24c6000f */ addiu $a2,$a2,0xf
/* fcfc: 34ca000f */ ori $t2,$a2,0xf
/* fd00: 3946000f */ xori $a2,$t2,0xf
/* fd04: 00e36021 */ addu $t4,$a3,$v1
/* fd08: 01862023 */ subu $a0,$t4,$a2
/* fd0c: afa40028 */ sw $a0,0x28($sp)
/* fd10: 0c003504 */ jal dmaExec
/* fd14: afa7143c */ sw $a3,0x143c($sp)
/* fd18: 8fa40028 */ lw $a0,0x28($sp)
/* fd1c: 8fa5143c */ lw $a1,0x143c($sp)
/* fd20: 0c001d3c */ jal rzipInflate
/* fd24: 27a60034 */ addiu $a2,$sp,0x34
/* fd28: 02002025 */ or $a0,$s0,$zero
/* fd2c: 0c00e34c */ jal n_alCSeqNew
/* fd30: 8e0500fc */ lw $a1,0xfc($s0)
/* fd34: 8e0400f8 */ lw $a0,0xf8($s0)
/* fd38: 0c00e6f8 */ jal func00039be0
/* fd3c: 02002825 */ or $a1,$s0,$zero
/* fd40: 0c003f5d */ jal snd0000fd74
/* fd44: 02002025 */ or $a0,$s0,$zero
/* fd48: 02002025 */ or $a0,$s0,$zero
/* fd4c: 0c003f67 */ jal snd0000fd9c
/* fd50: 3045ffff */ andi $a1,$v0,0xffff
/* fd54: 0c00e70c */ jal func00039c30
/* fd58: 8e0400f8 */ lw $a0,0xf8($s0)
/* fd5c: 24020001 */ addiu $v0,$zero,0x1
.L0000fd60:
/* fd60: 8fbf001c */ lw $ra,0x1c($sp)
/* fd64: 8fb00018 */ lw $s0,0x18($sp)
/* fd68: 27bd1448 */ addiu $sp,$sp,0x1448
/* fd6c: 03e00008 */ jr $ra
/* fd70: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel snd0000fc48
/* 100e0: 27bdeaf8 */ addiu $sp,$sp,-5384
/* 100e4: afb00058 */ sw $s0,0x58($sp)
/* 100e8: 00808025 */ or $s0,$a0,$zero
/* 100ec: afbf005c */ sw $ra,0x5c($sp)
/* 100f0: afa5150c */ sw $a1,0x150c($sp)
/* 100f4: 0c00e838 */ jal func00038d10
/* 100f8: 8c8400f8 */ lw $a0,0xf8($a0)
/* 100fc: 3c0e8006 */ lui $t6,0x8006
/* 10100: 8dcef6c0 */ lw $t6,-0x940($t6)
/* 10104: 8fa4150c */ lw $a0,0x150c($sp)
/* 10108: 3c03800a */ lui $v1,0x800a
/* 1010c: 51c00004 */ beqzl $t6,.NB00010120
/* 10110: ae040104 */ sw $a0,0x104($s0)
/* 10114: 10000066 */ beqz $zero,.NB000102b0
/* 10118: 00001025 */ or $v0,$zero,$zero
/* 1011c: ae040104 */ sw $a0,0x104($s0)
.NB00010120:
/* 10120: 10400003 */ beqz $v0,.NB00010130
/* 10124: 8c638188 */ lw $v1,-0x7e78($v1)
/* 10128: 10000061 */ beqz $zero,.NB000102b0
/* 1012c: 00001025 */ or $v0,$zero,$zero
.NB00010130:
/* 10130: 8e0f0104 */ lw $t7,0x104($s0)
/* 10134: 3c010001 */ lui $at,0x1
/* 10138: 000fc0c0 */ sll $t8,$t7,0x3
/* 1013c: 00781021 */ addu $v0,$v1,$t8
/* 10140: 8c450004 */ lw $a1,0x4($v0)
/* 10144: 00a1082b */ sltu $at,$a1,$at
/* 10148: 50200004 */ beqzl $at,.NB0001015c
/* 1014c: 94470008 */ lhu $a3,0x8($v0)
/* 10150: 10000057 */ beqz $zero,.NB000102b0
/* 10154: 00001025 */ or $v0,$zero,$zero
/* 10158: 94470008 */ lhu $a3,0x8($v0)
.NB0001015c:
/* 1015c: 3c0a800a */ lui $t2,0x800a
/* 10160: 8d4a818c */ lw $t2,-0x7e74($t2)
/* 10164: 24e7000f */ addiu $a3,$a3,0xf
/* 10168: 34f9000f */ ori $t9,$a3,0xf
/* 1016c: 3b29000f */ xori $t1,$t9,0xf
/* 10170: 25270040 */ addiu $a3,$t1,0x40
/* 10174: 00ea082b */ sltu $at,$a3,$t2
/* 10178: 54200004 */ bnezl $at,.NB0001018c
/* 1017c: 9446000a */ lhu $a2,0xa($v0)
/* 10180: 1000004b */ beqz $zero,.NB000102b0
/* 10184: 00001025 */ or $v0,$zero,$zero
/* 10188: 9446000a */ lhu $a2,0xa($v0)
.NB0001018c:
/* 1018c: 8e0800fc */ lw $t0,0xfc($s0)
/* 10190: 24c6000f */ addiu $a2,$a2,0xf
/* 10194: 34cb000f */ ori $t3,$a2,0xf
/* 10198: 3966000f */ xori $a2,$t3,0xf
/* 1019c: 01076821 */ addu $t5,$t0,$a3
/* 101a0: 01a62023 */ subu $a0,$t5,$a2
/* 101a4: afa414f8 */ sw $a0,0x14f8($sp)
/* 101a8: afa40064 */ sw $a0,0x64($sp)
/* 101ac: 0c003664 */ jal dmaExec
/* 101b0: afa814fc */ sw $t0,0x14fc($sp)
/* 101b4: 8fa40064 */ lw $a0,0x64($sp)
/* 101b8: 8fa514fc */ lw $a1,0x14fc($sp)
/* 101bc: 0c001da4 */ jal rzipInflate
/* 101c0: 27a600f4 */ addiu $a2,$sp,0xf4
/* 101c4: 1440002c */ bnez $v0,.NB00010278
/* 101c8: 8fa314f8 */ lw $v1,0x14f8($sp)
/* 101cc: 906e0000 */ lbu $t6,0x0($v1)
/* 101d0: 3c057005 */ lui $a1,0x7005
/* 101d4: 3c067005 */ lui $a2,0x7005
/* 101d8: afae0010 */ sw $t6,0x10($sp)
/* 101dc: 906f0001 */ lbu $t7,0x1($v1)
/* 101e0: 24c652a8 */ addiu $a2,$a2,0x52a8
/* 101e4: 24a55250 */ addiu $a1,$a1,0x5250
/* 101e8: afaf0014 */ sw $t7,0x14($sp)
/* 101ec: 90780002 */ lbu $t8,0x2($v1)
/* 101f0: 27a40070 */ addiu $a0,$sp,0x70
/* 101f4: 2407068c */ addiu $a3,$zero,0x68c
/* 101f8: afb80018 */ sw $t8,0x18($sp)
/* 101fc: 90790003 */ lbu $t9,0x3($v1)
/* 10200: afb9001c */ sw $t9,0x1c($sp)
/* 10204: 90690004 */ lbu $t1,0x4($v1)
/* 10208: afa90020 */ sw $t1,0x20($sp)
/* 1020c: 906a0005 */ lbu $t2,0x5($v1)
/* 10210: afaa0024 */ sw $t2,0x24($sp)
/* 10214: 906b0006 */ lbu $t3,0x6($v1)
/* 10218: afab0028 */ sw $t3,0x28($sp)
/* 1021c: 906c0007 */ lbu $t4,0x7($v1)
/* 10220: afac002c */ sw $t4,0x2c($sp)
/* 10224: 906d0008 */ lbu $t5,0x8($v1)
/* 10228: afad0030 */ sw $t5,0x30($sp)
/* 1022c: 906e0009 */ lbu $t6,0x9($v1)
/* 10230: afae0034 */ sw $t6,0x34($sp)
/* 10234: 906f000a */ lbu $t7,0xa($v1)
/* 10238: afaf0038 */ sw $t7,0x38($sp)
/* 1023c: 9078000b */ lbu $t8,0xb($v1)
/* 10240: afb8003c */ sw $t8,0x3c($sp)
/* 10244: 9079000c */ lbu $t9,0xc($v1)
/* 10248: afb90040 */ sw $t9,0x40($sp)
/* 1024c: 9069000d */ lbu $t1,0xd($v1)
/* 10250: afa90044 */ sw $t1,0x44($sp)
/* 10254: 906a000e */ lbu $t2,0xe($v1)
/* 10258: afaa0048 */ sw $t2,0x48($sp)
/* 1025c: 906b000f */ lbu $t3,0xf($v1)
/* 10260: 0c004fc1 */ jal sprintf
/* 10264: afab004c */ sw $t3,0x4c($sp)
/* 10268: 0c003074 */ jal func0000c1d0nb
/* 1026c: 27a40070 */ addiu $a0,$sp,0x70
/* 10270: 240c0045 */ addiu $t4,$zero,0x45
/* 10274: a00c0000 */ sb $t4,0x0($zero)
.NB00010278:
/* 10278: 02002025 */ or $a0,$s0,$zero
/* 1027c: 0c00e840 */ jal n_alCSeqNew
/* 10280: 8e0500fc */ lw $a1,0xfc($s0)
/* 10284: 8e0400f8 */ lw $a0,0xf8($s0)
/* 10288: 0c00ebec */ jal func00039be0
/* 1028c: 02002825 */ or $a1,$s0,$zero
/* 10290: 0c0040b1 */ jal snd0000fd74
/* 10294: 02002025 */ or $a0,$s0,$zero
/* 10298: 02002025 */ or $a0,$s0,$zero
/* 1029c: 0c0040bb */ jal snd0000fd9c
/* 102a0: 3045ffff */ andi $a1,$v0,0xffff
/* 102a4: 0c00ec00 */ jal func00039c30
/* 102a8: 8e0400f8 */ lw $a0,0xf8($s0)
/* 102ac: 24020001 */ addiu $v0,$zero,0x1
.NB000102b0:
/* 102b0: 8fbf005c */ lw $ra,0x5c($sp)
/* 102b4: 8fb00058 */ lw $s0,0x58($sp)
/* 102b8: 27bd1508 */ addiu $sp,$sp,0x1508
/* 102bc: 03e00008 */ jr $ra
/* 102c0: 00000000 */ sll $zero,$zero,0x0
);
#endif
GLOBAL_ASM(
glabel snd0000fd74
/* fd74: 3c0e8006 */ lui $t6,%hi(g_SndDisabled)
/* fd78: 8dcedda0 */ lw $t6,%lo(g_SndDisabled)($t6)
/* fd7c: 24037fff */ addiu $v1,$zero,0x7fff
/* fd80: 51c00004 */ beqzl $t6,.L0000fd94
/* fd84: 94830100 */ lhu $v1,0x100($a0)
/* fd88: 03e00008 */ jr $ra
/* fd8c: 3062ffff */ andi $v0,$v1,0xffff
/* fd90: 94830100 */ lhu $v1,0x100($a0)
.L0000fd94:
/* fd94: 03e00008 */ jr $ra
/* fd98: 3062ffff */ andi $v0,$v1,0xffff
);
void snd0000fd9c(struct var80094ed8 *arg0, u16 volume)
{
if (!g_SndDisabled) {
u32 tmp = (var8005ecf8[arg0->unk104] * volume);
tmp >>= 15;
arg0->unk100 = volume;
if (tmp > 0x7fff) {
tmp = 0x7fff;
}
func00039c80(arg0->seqp, tmp);
}
}
void snd0000fe18(void)
{
// empty
}
void snd0000fe20(void)
{
if (g_SndMp3Enabled) {
func00037e38();
}
}
void snd0000fe50(void)
{
if (g_SndMp3Enabled) {
func00037e68();
}
}
void snd0000fe80(void)
{
// empty
}
#if PAL
GLOBAL_ASM(
glabel sndTick
/* fe88: 27bdeb98 */ addiu $sp,$sp,-5224
/* fe8c: afbf002c */ sw $ra,0x2c($sp)
/* fe90: 0c003b45 */ jal snd0000ed14
/* fe94: afb00028 */ sw $s0,0x28($sp)
/* fe98: 0c012230 */ jal osGetThreadPri
/* fe9c: 00002025 */ or $a0,$zero,$zero
/* fea0: 3c048009 */ lui $a0,%hi(g_AudioManager+0x18)
/* fea4: 00408025 */ or $s0,$v0,$zero
/* fea8: 0c012230 */ jal osGetThreadPri
/* feac: 248415e0 */ addiu $a0,$a0,%lo(g_AudioManager+0x18)
/* feb0: 00002025 */ or $a0,$zero,$zero
/* feb4: 0c01210c */ jal osSetThreadPri
/* feb8: 24450001 */ addiu $a1,$v0,0x1
/* febc: 0c00cfc9 */ jal sndpGetCurTime
/* fec0: 00000000 */ nop
/* fec4: 0c00cfc2 */ jal func00033f08
/* fec8: afa20060 */ sw $v0,0x60($sp)
/* fecc: 3c078006 */ lui $a3,%hi(var8005ddd4)
/* fed0: 24e7ddd4 */ addiu $a3,$a3,%lo(var8005ddd4)
/* fed4: 8fa80060 */ lw $t0,0x60($sp)
/* fed8: 00401825 */ or $v1,$v0,$zero
/* fedc: 1040002c */ beqz $v0,.L0000ff90
/* fee0: ace00000 */ sw $zero,0x0($a3)
/* fee4: 27a51368 */ addiu $a1,$sp,0x1368
/* fee8: 27a60068 */ addiu $a2,$sp,0x68
/* feec: 24090001 */ addiu $t1,$zero,0x1
/* fef0: aca30000 */ sw $v1,0x0($a1)
.L0000fef4:
/* fef4: 0060c025 */ or $t8,$v1,$zero
/* fef8: 00c0c825 */ or $t9,$a2,$zero
/* fefc: 246f0048 */ addiu $t7,$v1,0x48
.L0000ff00:
/* ff00: 8f010000 */ lw $at,0x0($t8)
/* ff04: 2718000c */ addiu $t8,$t8,0xc
/* ff08: 2739000c */ addiu $t9,$t9,0xc
/* ff0c: af21fff4 */ sw $at,-0xc($t9)
/* ff10: 8f01fff8 */ lw $at,-0x8($t8)
/* ff14: af21fff8 */ sw $at,-0x8($t9)
/* ff18: 8f01fffc */ lw $at,-0x4($t8)
/* ff1c: 170ffff8 */ bne $t8,$t7,.L0000ff00
/* ff20: af21fffc */ sw $at,-0x4($t9)
/* ff24: 8f010000 */ lw $at,0x0($t8)
/* ff28: af210000 */ sw $at,0x0($t9)
/* ff2c: 8cea0000 */ lw $t2,0x0($a3)
/* ff30: 254b0001 */ addiu $t3,$t2,0x1
/* ff34: aceb0000 */ sw $t3,0x0($a3)
/* ff38: 906c0044 */ lbu $t4,0x44($v1)
/* ff3c: 318d0002 */ andi $t5,$t4,0x2
/* ff40: 55a0000f */ bnezl $t5,.L0000ff80
/* ff44: 8c630000 */ lw $v1,0x0($v1)
/* ff48: 8ca20000 */ lw $v0,0x0($a1)
/* ff4c: 904e0045 */ lbu $t6,0x45($v0)
/* ff50: 552e000b */ bnel $t1,$t6,.L0000ff80
/* ff54: 8c630000 */ lw $v1,0x0($v1)
/* ff58: 8c440048 */ lw $a0,0x48($v0)
/* ff5c: 18800007 */ blez $a0,.L0000ff7c
/* ff60: 0088082a */ slt $at,$a0,$t0
/* ff64: 50200006 */ beqzl $at,.L0000ff80
/* ff68: 8c630000 */ lw $v1,0x0($v1)
/* ff6c: 0c00cf6c */ jal func00033db0
/* ff70: ac600048 */ sw $zero,0x48($v1)
/* ff74: 10000007 */ b .L0000ff94
/* ff78: 00002025 */ or $a0,$zero,$zero
.L0000ff7c:
/* ff7c: 8c630000 */ lw $v1,0x0($v1)
.L0000ff80:
/* ff80: 24a50004 */ addiu $a1,$a1,0x4
/* ff84: 24c6004c */ addiu $a2,$a2,0x4c
/* ff88: 5460ffda */ bnezl $v1,.L0000fef4
/* ff8c: aca30000 */ sw $v1,0x0($a1)
.L0000ff90:
/* ff90: 00002025 */ or $a0,$zero,$zero
.L0000ff94:
/* ff94: 0c01210c */ jal osSetThreadPri
/* ff98: 02002825 */ or $a1,$s0,$zero
/* ff9c: 3c048006 */ lui $a0,%hi(var8005ddd8)
/* ffa0: 3c078006 */ lui $a3,%hi(var8005ddd4)
/* ffa4: 24e7ddd4 */ addiu $a3,$a3,%lo(var8005ddd4)
/* ffa8: 2484ddd8 */ addiu $a0,$a0,%lo(var8005ddd8)
/* ffac: 8c820000 */ lw $v0,0x0($a0)
/* ffb0: 8ce30000 */ lw $v1,0x0($a3)
/* ffb4: 3c0f8006 */ lui $t7,%hi(var8005edec)
/* ffb8: 3c188006 */ lui $t8,%hi(g_SndDisabled)
/* ffbc: 0043082a */ slt $at,$v0,$v1
/* ffc0: 10200003 */ beqz $at,.L0000ffd0
/* ffc4: 3c198006 */ lui $t9,%hi(g_SndMp3Enabled)
/* ffc8: ac830000 */ sw $v1,0x0($a0)
/* ffcc: 00601025 */ or $v0,$v1,$zero
.L0000ffd0:
/* ffd0: 8defedec */ lw $t7,%lo(var8005edec)($t7)
/* ffd4: 3c018006 */ lui $at,%hi(var8005edec)
/* ffd8: 11e20002 */ beq $t7,$v0,.L0000ffe4
/* ffdc: 00000000 */ nop
/* ffe0: ac22edec */ sw $v0,%lo(var8005edec)($at)
.L0000ffe4:
/* ffe4: 8f18dda0 */ lw $t8,%lo(g_SndDisabled)($t8)
/* ffe8: 570000d4 */ bnezl $t8,.L0001033c
/* ffec: 8fbf002c */ lw $ra,0x2c($sp)
/* fff0: 8f39ddd0 */ lw $t9,%lo(g_SndMp3Enabled)($t9)
/* fff4: 3c02800a */ lui $v0,%hi(g_Vars+0x4b4)
/* fff8: 532000d0 */ beqzl $t9,.L0001033c
/* fffc: 8fbf002c */ lw $ra,0x2c($sp)
/* 10000: 8c42a474 */ lw $v0,%lo(g_Vars+0x4b4)($v0)
/* 10004: 24010031 */ addiu $at,$zero,0x31
/* 10008: 54410006 */ bnel $v0,$at,.L00010024
/* 1000c: 24010019 */ addiu $at,$zero,0x19
/* 10010: 0c004384 */ jal sndTickNosedive
/* 10014: 00000000 */ nop
/* 10018: 10000006 */ b .L00010034
/* 1001c: 00000000 */ nop
/* 10020: 24010019 */ addiu $at,$zero,0x19
.L00010024:
/* 10024: 14410003 */ bne $v0,$at,.L00010034
/* 10028: 00000000 */ nop
/* 1002c: 0c004447 */ jal sndTickUfo
/* 10030: 00000000 */ nop
.L00010034:
/* 10034: 3c0a800a */ lui $t2,%hi(g_Vars+0x2ac)
/* 10038: 8d4aa26c */ lw $t2,%lo(g_Vars+0x2ac)($t2)
/* 1003c: 24010006 */ addiu $at,$zero,0x6
/* 10040: 15410014 */ bne $t2,$at,.L00010094
/* 10044: 00000000 */ nop
/* 10048: 0fc5b3e8 */ jal musicGetVolume
/* 1004c: 00000000 */ nop
/* 10050: 3c038006 */ lui $v1,%hi(g_SfxVolume)
/* 10054: 9463ddc8 */ lhu $v1,%lo(g_SfxVolume)($v1)
/* 10058: 0062082a */ slt $at,$v1,$v0
/* 1005c: 10200005 */ beqz $at,.L00010074
/* 10060: 00608025 */ or $s0,$v1,$zero
/* 10064: 0fc5b3e8 */ jal musicGetVolume
/* 10068: 00000000 */ nop
/* 1006c: 10000001 */ b .L00010074
/* 10070: 00408025 */ or $s0,$v0,$zero
.L00010074:
/* 10074: 0c003a77 */ jal snd0000e9dc
/* 10078: 00000000 */ nop
/* 1007c: 1202000d */ beq $s0,$v0,.L000100b4
/* 10080: 00000000 */ nop
/* 10084: 0c003aa0 */ jal snd0000ea80
/* 10088: 3204ffff */ andi $a0,$s0,0xffff
/* 1008c: 10000009 */ b .L000100b4
/* 10090: 00000000 */ nop
.L00010094:
/* 10094: 0c003a77 */ jal snd0000e9dc
/* 10098: 00000000 */ nop
/* 1009c: 3c048006 */ lui $a0,%hi(g_SfxVolume)
/* 100a0: 9484ddc8 */ lhu $a0,%lo(g_SfxVolume)($a0)
/* 100a4: 10820003 */ beq $a0,$v0,.L000100b4
/* 100a8: 00000000 */ nop
/* 100ac: 0c003aa0 */ jal snd0000ea80
/* 100b0: 00000000 */ nop
.L000100b4:
/* 100b4: 3c048006 */ lui $a0,%hi(g_SndGuardStringPtr)
/* 100b8: 8c84dde0 */ lw $a0,%lo(g_SndGuardStringPtr)($a0)
/* 100bc: 3c057005 */ lui $a1,%hi(g_SndGuardString)
/* 100c0: 10800003 */ beqz $a0,.L000100d0
/* 100c4: 00000000 */ nop
/* 100c8: 0c004c9d */ jal strcmp
/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(g_SndGuardString)
.L000100d0:
/* 100d0: 0c00dfa9 */ jal func00037ea4
/* 100d4: 00000000 */ nop
/* 100d8: 1440001d */ bnez $v0,.L00010150
/* 100dc: 3c108009 */ lui $s0,%hi(var80094eb0)
/* 100e0: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0)
/* 100e4: 8e0b0004 */ lw $t3,0x4($s0)
/* 100e8: 11600019 */ beqz $t3,.L00010150
/* 100ec: 00000000 */ nop
/* 100f0: 8e0c0008 */ lw $t4,0x8($s0)
/* 100f4: 51800007 */ beqzl $t4,.L00010114
/* 100f8: 8e020024 */ lw $v0,0x24($s0)
/* 100fc: 8e04001c */ lw $a0,0x1c($s0)
/* 10100: 0c00df62 */ jal func00037d88
/* 10104: 8e050020 */ lw $a1,0x20($s0)
/* 10108: 1000008c */ b .L0001033c
/* 1010c: 8fbf002c */ lw $ra,0x2c($sp)
/* 10110: 8e020024 */ lw $v0,0x24($s0)
.L00010114:
/* 10114: 24030001 */ addiu $v1,$zero,0x1
/* 10118: 24010002 */ addiu $at,$zero,0x2
/* 1011c: 10430007 */ beq $v0,$v1,.L0001013c
/* 10120: 240d003c */ addiu $t5,$zero,0x32
/* 10124: 10410005 */ beq $v0,$at,.L0001013c
/* 10128: 24010003 */ addiu $at,$zero,0x3
/* 1012c: 50410006 */ beql $v0,$at,.L00010148
/* 10130: ae03000c */ sw $v1,0xc($s0)
/* 10134: 10000004 */ b .L00010148
/* 10138: 00000000 */ nop
.L0001013c:
/* 1013c: 10000002 */ b .L00010148
/* 10140: ae0d000c */ sw $t5,0xc($s0)
/* 10144: ae03000c */ sw $v1,0xc($s0)
.L00010148:
/* 10148: 1000007b */ b .L00010338
/* 1014c: ae000004 */ sw $zero,0x4($s0)
.L00010150:
/* 10150: 3c108009 */ lui $s0,%hi(var80094eb0)
/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0)
/* 10158: 8e02000c */ lw $v0,0xc($s0)
/* 1015c: 3c0e800a */ lui $t6,%hi(g_Vars+0x34)
/* 10160: 58400076 */ blezl $v0,.L0001033c
/* 10164: 8fbf002c */ lw $ra,0x2c($sp)
/* 10168: 8dce9ff4 */ lw $t6,%lo(g_Vars+0x34)($t6)
/* 1016c: 004e7823 */ subu $t7,$v0,$t6
/* 10170: 1de00071 */ bgtz $t7,.L00010338
/* 10174: ae0f000c */ sw $t7,0xc($s0)
/* 10178: 8e020024 */ lw $v0,0x24($s0)
/* 1017c: 24010002 */ addiu $at,$zero,0x2
/* 10180: 5441001f */ bnel $v0,$at,.L00010200
/* 10184: 24010001 */ addiu $at,$zero,0x1
.L00010188:
/* 10188: 0c004b70 */ jal random
/* 1018c: 00000000 */ nop
/* 10190: 8e190010 */ lw $t9,0x10($s0)
/* 10194: 30430003 */ andi $v1,$v0,0x3
/* 10198: 1323fffb */ beq $t9,$v1,.L00010188
/* 1019c: 00000000 */ nop
/* 101a0: 3c018009 */ lui $at,%hi(var80094eb0+0x10)
/* 101a4: 1060000c */ beqz $v1,.L000101d8
/* 101a8: ac234ec0 */ sw $v1,%lo(var80094eb0+0x10)($at)
/* 101ac: 24010001 */ addiu $at,$zero,0x1
/* 101b0: 1061000c */ beq $v1,$at,.L000101e4
/* 101b4: 240b7cee */ addiu $t3,$zero,0x7cee
/* 101b8: 24010002 */ addiu $at,$zero,0x2
/* 101bc: 1061000b */ beq $v1,$at,.L000101ec
/* 101c0: 240c7cef */ addiu $t4,$zero,0x7cef
/* 101c4: 24010003 */ addiu $at,$zero,0x3
/* 101c8: 1061000a */ beq $v1,$at,.L000101f4
/* 101cc: 240d7cf0 */ addiu $t5,$zero,0x7cf0
/* 101d0: 1000004a */ b .L000102fc
/* 101d4: 3c01bf80 */ lui $at,0xbf80
.L000101d8:
/* 101d8: 240a7ced */ addiu $t2,$zero,0x7ced
/* 101dc: 10000046 */ b .L000102f8
/* 101e0: a7aa0050 */ sh $t2,0x50($sp)
.L000101e4:
/* 101e4: 10000044 */ b .L000102f8
/* 101e8: a7ab0050 */ sh $t3,0x50($sp)
.L000101ec:
/* 101ec: 10000042 */ b .L000102f8
/* 101f0: a7ac0050 */ sh $t4,0x50($sp)
.L000101f4:
/* 101f4: 10000040 */ b .L000102f8
/* 101f8: a7ad0050 */ sh $t5,0x50($sp)
/* 101fc: 24010001 */ addiu $at,$zero,0x1
.L00010200:
/* 10200: 5441001f */ bnel $v0,$at,.L00010280
/* 10204: 24010003 */ addiu $at,$zero,0x3
.L00010208:
/* 10208: 0c004b70 */ jal random
/* 1020c: 00000000 */ nop
/* 10210: 8e0e0014 */ lw $t6,0x14($s0)
/* 10214: 30430003 */ andi $v1,$v0,0x3
/* 10218: 11c3fffb */ beq $t6,$v1,.L00010208
/* 1021c: 00000000 */ nop
/* 10220: 3c018009 */ lui $at,%hi(var80094eb0+0x14)
/* 10224: 1060000c */ beqz $v1,.L00010258
/* 10228: ac234ec4 */ sw $v1,%lo(var80094eb0+0x14)($at)
/* 1022c: 24010001 */ addiu $at,$zero,0x1
/* 10230: 1061000c */ beq $v1,$at,.L00010264
/* 10234: 24187cf9 */ addiu $t8,$zero,0x7cf9
/* 10238: 24010002 */ addiu $at,$zero,0x2
/* 1023c: 1061000b */ beq $v1,$at,.L0001026c
/* 10240: 24197cfa */ addiu $t9,$zero,0x7cfa
/* 10244: 24010003 */ addiu $at,$zero,0x3
/* 10248: 1061000a */ beq $v1,$at,.L00010274
/* 1024c: 240a7cfb */ addiu $t2,$zero,0x7cfb
/* 10250: 1000002a */ b .L000102fc
/* 10254: 3c01bf80 */ lui $at,0xbf80
.L00010258:
/* 10258: 240f7cf8 */ addiu $t7,$zero,0x7cf8
/* 1025c: 10000026 */ b .L000102f8
/* 10260: a7af0050 */ sh $t7,0x50($sp)
.L00010264:
/* 10264: 10000024 */ b .L000102f8
/* 10268: a7b80050 */ sh $t8,0x50($sp)
.L0001026c:
/* 1026c: 10000022 */ b .L000102f8
/* 10270: a7b90050 */ sh $t9,0x50($sp)
.L00010274:
/* 10274: 10000020 */ b .L000102f8
/* 10278: a7aa0050 */ sh $t2,0x50($sp)
/* 1027c: 24010003 */ addiu $at,$zero,0x3
.L00010280:
/* 10280: 5441001e */ bnel $v0,$at,.L000102fc
/* 10284: 3c01bf80 */ lui $at,0xbf80
.L00010288:
/* 10288: 0c004b70 */ jal random
/* 1028c: 00000000 */ nop
/* 10290: 8e0b0018 */ lw $t3,0x18($s0)
/* 10294: 30430003 */ andi $v1,$v0,0x3
/* 10298: 1163fffb */ beq $t3,$v1,.L00010288
/* 1029c: 00000000 */ nop
/* 102a0: 3c018009 */ lui $at,%hi(var80094eb0+0x18)
/* 102a4: 1060000c */ beqz $v1,.L000102d8
/* 102a8: ac234ec8 */ sw $v1,%lo(var80094eb0+0x18)($at)
/* 102ac: 24010001 */ addiu $at,$zero,0x1
/* 102b0: 1061000c */ beq $v1,$at,.L000102e4
/* 102b4: 240d77b7 */ addiu $t5,$zero,0x77b7
/* 102b8: 24010002 */ addiu $at,$zero,0x2
/* 102bc: 1061000b */ beq $v1,$at,.L000102ec
/* 102c0: 240e77b8 */ addiu $t6,$zero,0x77b8
/* 102c4: 24010003 */ addiu $at,$zero,0x3
/* 102c8: 1061000a */ beq $v1,$at,.L000102f4
/* 102cc: 240f77b9 */ addiu $t7,$zero,0x77b9
/* 102d0: 1000000a */ b .L000102fc
/* 102d4: 3c01bf80 */ lui $at,0xbf80
.L000102d8:
/* 102d8: 240c77b6 */ addiu $t4,$zero,0x77b6
/* 102dc: 10000006 */ b .L000102f8
/* 102e0: a7ac0050 */ sh $t4,0x50($sp)
.L000102e4:
/* 102e4: 10000004 */ b .L000102f8
/* 102e8: a7ad0050 */ sh $t5,0x50($sp)
.L000102ec:
/* 102ec: 10000002 */ b .L000102f8
/* 102f0: a7ae0050 */ sh $t6,0x50($sp)
.L000102f4:
/* 102f4: a7af0050 */ sh $t7,0x50($sp)
.L000102f8:
/* 102f8: 3c01bf80 */ lui $at,0xbf80
.L000102fc:
/* 102fc: 44812000 */ mtc1 $at,$f4
/* 10300: 2418ffff */ addiu $t8,$zero,-1
/* 10304: 2419ffff */ addiu $t9,$zero,-1
/* 10308: 240affff */ addiu $t2,$zero,-1
/* 1030c: 240bffff */ addiu $t3,$zero,-1
/* 10310: ae18000c */ sw $t8,0xc($s0)
/* 10314: afab001c */ sw $t3,0x1c($sp)
/* 10318: afaa0018 */ sw $t2,0x18($sp)
/* 1031c: afb90010 */ sw $t9,0x10($sp)
/* 10320: 00002025 */ or $a0,$zero,$zero
/* 10324: 87a50050 */ lh $a1,0x50($sp)
/* 10328: 00003025 */ or $a2,$zero,$zero
/* 1032c: 2407ffff */ addiu $a3,$zero,-1
/* 10330: 0c004241 */ jal sndStart
/* 10334: e7a40014 */ swc1 $f4,0x14($sp)
.L00010338:
/* 10338: 8fbf002c */ lw $ra,0x2c($sp)
.L0001033c:
/* 1033c: 8fb00028 */ lw $s0,0x28($sp)
/* 10340: 27bd1468 */ addiu $sp,$sp,0x1468
/* 10344: 03e00008 */ jr $ra
/* 10348: 00000000 */ nop
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel sndTick
/* fe88: 27bdeb98 */ addiu $sp,$sp,-5224
/* fe8c: afbf002c */ sw $ra,0x2c($sp)
/* fe90: 0c003b45 */ jal snd0000ed14
/* fe94: afb00028 */ sw $s0,0x28($sp)
/* fe98: 0c012230 */ jal osGetThreadPri
/* fe9c: 00002025 */ or $a0,$zero,$zero
/* fea0: 3c048009 */ lui $a0,%hi(g_AudioManager+0x18)
/* fea4: 00408025 */ or $s0,$v0,$zero
/* fea8: 0c012230 */ jal osGetThreadPri
/* feac: 248415e0 */ addiu $a0,$a0,%lo(g_AudioManager+0x18)
/* feb0: 00002025 */ or $a0,$zero,$zero
/* feb4: 0c01210c */ jal osSetThreadPri
/* feb8: 24450001 */ addiu $a1,$v0,0x1
/* febc: 0c00cfc9 */ jal sndpGetCurTime
/* fec0: 00000000 */ nop
/* fec4: 0c00cfc2 */ jal func00033f08
/* fec8: afa20060 */ sw $v0,0x60($sp)
/* fecc: 3c078006 */ lui $a3,%hi(var8005ddd4)
/* fed0: 24e7ddd4 */ addiu $a3,$a3,%lo(var8005ddd4)
/* fed4: 8fa80060 */ lw $t0,0x60($sp)
/* fed8: 00401825 */ or $v1,$v0,$zero
/* fedc: 1040002c */ beqz $v0,.L0000ff90
/* fee0: ace00000 */ sw $zero,0x0($a3)
/* fee4: 27a51368 */ addiu $a1,$sp,0x1368
/* fee8: 27a60068 */ addiu $a2,$sp,0x68
/* feec: 24090001 */ addiu $t1,$zero,0x1
/* fef0: aca30000 */ sw $v1,0x0($a1)
.L0000fef4:
/* fef4: 0060c025 */ or $t8,$v1,$zero
/* fef8: 00c0c825 */ or $t9,$a2,$zero
/* fefc: 246f0048 */ addiu $t7,$v1,0x48
.L0000ff00:
/* ff00: 8f010000 */ lw $at,0x0($t8)
/* ff04: 2718000c */ addiu $t8,$t8,0xc
/* ff08: 2739000c */ addiu $t9,$t9,0xc
/* ff0c: af21fff4 */ sw $at,-0xc($t9)
/* ff10: 8f01fff8 */ lw $at,-0x8($t8)
/* ff14: af21fff8 */ sw $at,-0x8($t9)
/* ff18: 8f01fffc */ lw $at,-0x4($t8)
/* ff1c: 170ffff8 */ bne $t8,$t7,.L0000ff00
/* ff20: af21fffc */ sw $at,-0x4($t9)
/* ff24: 8f010000 */ lw $at,0x0($t8)
/* ff28: af210000 */ sw $at,0x0($t9)
/* ff2c: 8cea0000 */ lw $t2,0x0($a3)
/* ff30: 254b0001 */ addiu $t3,$t2,0x1
/* ff34: aceb0000 */ sw $t3,0x0($a3)
/* ff38: 906c0044 */ lbu $t4,0x44($v1)
/* ff3c: 318d0002 */ andi $t5,$t4,0x2
/* ff40: 55a0000f */ bnezl $t5,.L0000ff80
/* ff44: 8c630000 */ lw $v1,0x0($v1)
/* ff48: 8ca20000 */ lw $v0,0x0($a1)
/* ff4c: 904e0045 */ lbu $t6,0x45($v0)
/* ff50: 552e000b */ bnel $t1,$t6,.L0000ff80
/* ff54: 8c630000 */ lw $v1,0x0($v1)
/* ff58: 8c440048 */ lw $a0,0x48($v0)
/* ff5c: 18800007 */ blez $a0,.L0000ff7c
/* ff60: 0088082a */ slt $at,$a0,$t0
/* ff64: 50200006 */ beqzl $at,.L0000ff80
/* ff68: 8c630000 */ lw $v1,0x0($v1)
/* ff6c: 0c00cf6c */ jal func00033db0
/* ff70: ac600048 */ sw $zero,0x48($v1)
/* ff74: 10000007 */ b .L0000ff94
/* ff78: 00002025 */ or $a0,$zero,$zero
.L0000ff7c:
/* ff7c: 8c630000 */ lw $v1,0x0($v1)
.L0000ff80:
/* ff80: 24a50004 */ addiu $a1,$a1,0x4
/* ff84: 24c6004c */ addiu $a2,$a2,0x4c
/* ff88: 5460ffda */ bnezl $v1,.L0000fef4
/* ff8c: aca30000 */ sw $v1,0x0($a1)
.L0000ff90:
/* ff90: 00002025 */ or $a0,$zero,$zero
.L0000ff94:
/* ff94: 0c01210c */ jal osSetThreadPri
/* ff98: 02002825 */ or $a1,$s0,$zero
/* ff9c: 3c048006 */ lui $a0,%hi(var8005ddd8)
/* ffa0: 3c078006 */ lui $a3,%hi(var8005ddd4)
/* ffa4: 24e7ddd4 */ addiu $a3,$a3,%lo(var8005ddd4)
/* ffa8: 2484ddd8 */ addiu $a0,$a0,%lo(var8005ddd8)
/* ffac: 8c820000 */ lw $v0,0x0($a0)
/* ffb0: 8ce30000 */ lw $v1,0x0($a3)
/* ffb4: 3c0f8006 */ lui $t7,%hi(var8005edec)
/* ffb8: 3c188006 */ lui $t8,%hi(g_SndDisabled)
/* ffbc: 0043082a */ slt $at,$v0,$v1
/* ffc0: 10200003 */ beqz $at,.L0000ffd0
/* ffc4: 3c198006 */ lui $t9,%hi(g_SndMp3Enabled)
/* ffc8: ac830000 */ sw $v1,0x0($a0)
/* ffcc: 00601025 */ or $v0,$v1,$zero
.L0000ffd0:
/* ffd0: 8defedec */ lw $t7,%lo(var8005edec)($t7)
/* ffd4: 3c018006 */ lui $at,%hi(var8005edec)
/* ffd8: 11e20002 */ beq $t7,$v0,.L0000ffe4
/* ffdc: 00000000 */ nop
/* ffe0: ac22edec */ sw $v0,%lo(var8005edec)($at)
.L0000ffe4:
/* ffe4: 8f18dda0 */ lw $t8,%lo(g_SndDisabled)($t8)
/* ffe8: 570000d4 */ bnezl $t8,.L0001033c
/* ffec: 8fbf002c */ lw $ra,0x2c($sp)
/* fff0: 8f39ddd0 */ lw $t9,%lo(g_SndMp3Enabled)($t9)
/* fff4: 3c02800a */ lui $v0,%hi(g_Vars+0x4b4)
/* fff8: 532000d0 */ beqzl $t9,.L0001033c
/* fffc: 8fbf002c */ lw $ra,0x2c($sp)
/* 10000: 8c42a474 */ lw $v0,%lo(g_Vars+0x4b4)($v0)
/* 10004: 24010031 */ addiu $at,$zero,0x31
/* 10008: 54410006 */ bnel $v0,$at,.L00010024
/* 1000c: 24010019 */ addiu $at,$zero,0x19
/* 10010: 0c004384 */ jal sndTickNosedive
/* 10014: 00000000 */ nop
/* 10018: 10000006 */ b .L00010034
/* 1001c: 00000000 */ nop
/* 10020: 24010019 */ addiu $at,$zero,0x19
.L00010024:
/* 10024: 14410003 */ bne $v0,$at,.L00010034
/* 10028: 00000000 */ nop
/* 1002c: 0c004447 */ jal sndTickUfo
/* 10030: 00000000 */ nop
.L00010034:
/* 10034: 3c0a800a */ lui $t2,%hi(g_Vars+0x2ac)
/* 10038: 8d4aa26c */ lw $t2,%lo(g_Vars+0x2ac)($t2)
/* 1003c: 24010006 */ addiu $at,$zero,0x6
/* 10040: 15410014 */ bne $t2,$at,.L00010094
/* 10044: 00000000 */ nop
/* 10048: 0fc5b3e8 */ jal musicGetVolume
/* 1004c: 00000000 */ nop
/* 10050: 3c038006 */ lui $v1,%hi(g_SfxVolume)
/* 10054: 9463ddc8 */ lhu $v1,%lo(g_SfxVolume)($v1)
/* 10058: 0062082a */ slt $at,$v1,$v0
/* 1005c: 10200005 */ beqz $at,.L00010074
/* 10060: 00608025 */ or $s0,$v1,$zero
/* 10064: 0fc5b3e8 */ jal musicGetVolume
/* 10068: 00000000 */ nop
/* 1006c: 10000001 */ b .L00010074
/* 10070: 00408025 */ or $s0,$v0,$zero
.L00010074:
/* 10074: 0c003a77 */ jal snd0000e9dc
/* 10078: 00000000 */ nop
/* 1007c: 1202000d */ beq $s0,$v0,.L000100b4
/* 10080: 00000000 */ nop
/* 10084: 0c003aa0 */ jal snd0000ea80
/* 10088: 3204ffff */ andi $a0,$s0,0xffff
/* 1008c: 10000009 */ b .L000100b4
/* 10090: 00000000 */ nop
.L00010094:
/* 10094: 0c003a77 */ jal snd0000e9dc
/* 10098: 00000000 */ nop
/* 1009c: 3c048006 */ lui $a0,%hi(g_SfxVolume)
/* 100a0: 9484ddc8 */ lhu $a0,%lo(g_SfxVolume)($a0)
/* 100a4: 10820003 */ beq $a0,$v0,.L000100b4
/* 100a8: 00000000 */ nop
/* 100ac: 0c003aa0 */ jal snd0000ea80
/* 100b0: 00000000 */ nop
.L000100b4:
/* 100b4: 3c048006 */ lui $a0,%hi(g_SndGuardStringPtr)
/* 100b8: 8c84dde0 */ lw $a0,%lo(g_SndGuardStringPtr)($a0)
/* 100bc: 3c057005 */ lui $a1,%hi(g_SndGuardString)
/* 100c0: 10800003 */ beqz $a0,.L000100d0
/* 100c4: 00000000 */ nop
/* 100c8: 0c004c9d */ jal strcmp
/* 100cc: 24a53b20 */ addiu $a1,$a1,%lo(g_SndGuardString)
.L000100d0:
/* 100d0: 0c00dfa9 */ jal func00037ea4
/* 100d4: 00000000 */ nop
/* 100d8: 1440001d */ bnez $v0,.L00010150
/* 100dc: 3c108009 */ lui $s0,%hi(var80094eb0)
/* 100e0: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0)
/* 100e4: 8e0b0004 */ lw $t3,0x4($s0)
/* 100e8: 11600019 */ beqz $t3,.L00010150
/* 100ec: 00000000 */ nop
/* 100f0: 8e0c0008 */ lw $t4,0x8($s0)
/* 100f4: 51800007 */ beqzl $t4,.L00010114
/* 100f8: 8e020024 */ lw $v0,0x24($s0)
/* 100fc: 8e04001c */ lw $a0,0x1c($s0)
/* 10100: 0c00df62 */ jal func00037d88
/* 10104: 8e050020 */ lw $a1,0x20($s0)
/* 10108: 1000008c */ b .L0001033c
/* 1010c: 8fbf002c */ lw $ra,0x2c($sp)
/* 10110: 8e020024 */ lw $v0,0x24($s0)
.L00010114:
/* 10114: 24030001 */ addiu $v1,$zero,0x1
/* 10118: 24010002 */ addiu $at,$zero,0x2
/* 1011c: 10430007 */ beq $v0,$v1,.L0001013c
/* 10120: 240d003c */ addiu $t5,$zero,0x3c
/* 10124: 10410005 */ beq $v0,$at,.L0001013c
/* 10128: 24010003 */ addiu $at,$zero,0x3
/* 1012c: 50410006 */ beql $v0,$at,.L00010148
/* 10130: ae03000c */ sw $v1,0xc($s0)
/* 10134: 10000004 */ b .L00010148
/* 10138: 00000000 */ nop
.L0001013c:
/* 1013c: 10000002 */ b .L00010148
/* 10140: ae0d000c */ sw $t5,0xc($s0)
/* 10144: ae03000c */ sw $v1,0xc($s0)
.L00010148:
/* 10148: 1000007b */ b .L00010338
/* 1014c: ae000004 */ sw $zero,0x4($s0)
.L00010150:
/* 10150: 3c108009 */ lui $s0,%hi(var80094eb0)
/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0)
/* 10158: 8e02000c */ lw $v0,0xc($s0)
/* 1015c: 3c0e800a */ lui $t6,%hi(g_Vars+0x34)
/* 10160: 58400076 */ blezl $v0,.L0001033c
/* 10164: 8fbf002c */ lw $ra,0x2c($sp)
/* 10168: 8dce9ff4 */ lw $t6,%lo(g_Vars+0x34)($t6)
/* 1016c: 004e7823 */ subu $t7,$v0,$t6
/* 10170: 1de00071 */ bgtz $t7,.L00010338
/* 10174: ae0f000c */ sw $t7,0xc($s0)
/* 10178: 8e020024 */ lw $v0,0x24($s0)
/* 1017c: 24010002 */ addiu $at,$zero,0x2
/* 10180: 5441001f */ bnel $v0,$at,.L00010200
/* 10184: 24010001 */ addiu $at,$zero,0x1
.L00010188:
/* 10188: 0c004b70 */ jal random
/* 1018c: 00000000 */ nop
/* 10190: 8e190010 */ lw $t9,0x10($s0)
/* 10194: 30430003 */ andi $v1,$v0,0x3
/* 10198: 1323fffb */ beq $t9,$v1,.L00010188
/* 1019c: 00000000 */ nop
/* 101a0: 3c018009 */ lui $at,%hi(var80094eb0+0x10)
/* 101a4: 1060000c */ beqz $v1,.L000101d8
/* 101a8: ac234ec0 */ sw $v1,%lo(var80094eb0+0x10)($at)
/* 101ac: 24010001 */ addiu $at,$zero,0x1
/* 101b0: 1061000c */ beq $v1,$at,.L000101e4
/* 101b4: 240b7cee */ addiu $t3,$zero,0x7cee
/* 101b8: 24010002 */ addiu $at,$zero,0x2
/* 101bc: 1061000b */ beq $v1,$at,.L000101ec
/* 101c0: 240c7cef */ addiu $t4,$zero,0x7cef
/* 101c4: 24010003 */ addiu $at,$zero,0x3
/* 101c8: 1061000a */ beq $v1,$at,.L000101f4
/* 101cc: 240d7cf0 */ addiu $t5,$zero,0x7cf0
/* 101d0: 1000004a */ b .L000102fc
/* 101d4: 3c01bf80 */ lui $at,0xbf80
.L000101d8:
/* 101d8: 240a7ced */ addiu $t2,$zero,0x7ced
/* 101dc: 10000046 */ b .L000102f8
/* 101e0: a7aa0050 */ sh $t2,0x50($sp)
.L000101e4:
/* 101e4: 10000044 */ b .L000102f8
/* 101e8: a7ab0050 */ sh $t3,0x50($sp)
.L000101ec:
/* 101ec: 10000042 */ b .L000102f8
/* 101f0: a7ac0050 */ sh $t4,0x50($sp)
.L000101f4:
/* 101f4: 10000040 */ b .L000102f8
/* 101f8: a7ad0050 */ sh $t5,0x50($sp)
/* 101fc: 24010001 */ addiu $at,$zero,0x1
.L00010200:
/* 10200: 5441001f */ bnel $v0,$at,.L00010280
/* 10204: 24010003 */ addiu $at,$zero,0x3
.L00010208:
/* 10208: 0c004b70 */ jal random
/* 1020c: 00000000 */ nop
/* 10210: 8e0e0014 */ lw $t6,0x14($s0)
/* 10214: 30430003 */ andi $v1,$v0,0x3
/* 10218: 11c3fffb */ beq $t6,$v1,.L00010208
/* 1021c: 00000000 */ nop
/* 10220: 3c018009 */ lui $at,%hi(var80094eb0+0x14)
/* 10224: 1060000c */ beqz $v1,.L00010258
/* 10228: ac234ec4 */ sw $v1,%lo(var80094eb0+0x14)($at)
/* 1022c: 24010001 */ addiu $at,$zero,0x1
/* 10230: 1061000c */ beq $v1,$at,.L00010264
/* 10234: 24187cf9 */ addiu $t8,$zero,0x7cf9
/* 10238: 24010002 */ addiu $at,$zero,0x2
/* 1023c: 1061000b */ beq $v1,$at,.L0001026c
/* 10240: 24197cfa */ addiu $t9,$zero,0x7cfa
/* 10244: 24010003 */ addiu $at,$zero,0x3
/* 10248: 1061000a */ beq $v1,$at,.L00010274
/* 1024c: 240a7cfb */ addiu $t2,$zero,0x7cfb
/* 10250: 1000002a */ b .L000102fc
/* 10254: 3c01bf80 */ lui $at,0xbf80
.L00010258:
/* 10258: 240f7cf8 */ addiu $t7,$zero,0x7cf8
/* 1025c: 10000026 */ b .L000102f8
/* 10260: a7af0050 */ sh $t7,0x50($sp)
.L00010264:
/* 10264: 10000024 */ b .L000102f8
/* 10268: a7b80050 */ sh $t8,0x50($sp)
.L0001026c:
/* 1026c: 10000022 */ b .L000102f8
/* 10270: a7b90050 */ sh $t9,0x50($sp)
.L00010274:
/* 10274: 10000020 */ b .L000102f8
/* 10278: a7aa0050 */ sh $t2,0x50($sp)
/* 1027c: 24010003 */ addiu $at,$zero,0x3
.L00010280:
/* 10280: 5441001e */ bnel $v0,$at,.L000102fc
/* 10284: 3c01bf80 */ lui $at,0xbf80
.L00010288:
/* 10288: 0c004b70 */ jal random
/* 1028c: 00000000 */ nop
/* 10290: 8e0b0018 */ lw $t3,0x18($s0)
/* 10294: 30430003 */ andi $v1,$v0,0x3
/* 10298: 1163fffb */ beq $t3,$v1,.L00010288
/* 1029c: 00000000 */ nop
/* 102a0: 3c018009 */ lui $at,%hi(var80094eb0+0x18)
/* 102a4: 1060000c */ beqz $v1,.L000102d8
/* 102a8: ac234ec8 */ sw $v1,%lo(var80094eb0+0x18)($at)
/* 102ac: 24010001 */ addiu $at,$zero,0x1
/* 102b0: 1061000c */ beq $v1,$at,.L000102e4
/* 102b4: 240d77b7 */ addiu $t5,$zero,0x77b7
/* 102b8: 24010002 */ addiu $at,$zero,0x2
/* 102bc: 1061000b */ beq $v1,$at,.L000102ec
/* 102c0: 240e77b8 */ addiu $t6,$zero,0x77b8
/* 102c4: 24010003 */ addiu $at,$zero,0x3
/* 102c8: 1061000a */ beq $v1,$at,.L000102f4
/* 102cc: 240f77b9 */ addiu $t7,$zero,0x77b9
/* 102d0: 1000000a */ b .L000102fc
/* 102d4: 3c01bf80 */ lui $at,0xbf80
.L000102d8:
/* 102d8: 240c77b6 */ addiu $t4,$zero,0x77b6
/* 102dc: 10000006 */ b .L000102f8
/* 102e0: a7ac0050 */ sh $t4,0x50($sp)
.L000102e4:
/* 102e4: 10000004 */ b .L000102f8
/* 102e8: a7ad0050 */ sh $t5,0x50($sp)
.L000102ec:
/* 102ec: 10000002 */ b .L000102f8
/* 102f0: a7ae0050 */ sh $t6,0x50($sp)
.L000102f4:
/* 102f4: a7af0050 */ sh $t7,0x50($sp)
.L000102f8:
/* 102f8: 3c01bf80 */ lui $at,0xbf80
.L000102fc:
/* 102fc: 44812000 */ mtc1 $at,$f4
/* 10300: 2418ffff */ addiu $t8,$zero,-1
/* 10304: 2419ffff */ addiu $t9,$zero,-1
/* 10308: 240affff */ addiu $t2,$zero,-1
/* 1030c: 240bffff */ addiu $t3,$zero,-1
/* 10310: ae18000c */ sw $t8,0xc($s0)
/* 10314: afab001c */ sw $t3,0x1c($sp)
/* 10318: afaa0018 */ sw $t2,0x18($sp)
/* 1031c: afb90010 */ sw $t9,0x10($sp)
/* 10320: 00002025 */ or $a0,$zero,$zero
/* 10324: 87a50050 */ lh $a1,0x50($sp)
/* 10328: 00003025 */ or $a2,$zero,$zero
/* 1032c: 2407ffff */ addiu $a3,$zero,-1
/* 10330: 0c004241 */ jal sndStart
/* 10334: e7a40014 */ swc1 $f4,0x14($sp)
.L00010338:
/* 10338: 8fbf002c */ lw $ra,0x2c($sp)
.L0001033c:
/* 1033c: 8fb00028 */ lw $s0,0x28($sp)
/* 10340: 27bd1468 */ addiu $sp,$sp,0x1468
/* 10344: 03e00008 */ jr $ra
/* 10348: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel sndTick
/* 103d8: 3c0e8006 */ lui $t6,0x8006
/* 103dc: 8dcef6c0 */ lw $t6,-0x940($t6)
/* 103e0: 27bdffc0 */ addiu $sp,$sp,-64
/* 103e4: afbf002c */ sw $ra,0x2c($sp)
/* 103e8: 15c000da */ bnez $t6,.NB00010754
/* 103ec: afb00028 */ sw $s0,0x28($sp)
/* 103f0: 3c0f8006 */ lui $t7,0x8006
/* 103f4: 8deff6f0 */ lw $t7,-0x910($t7)
/* 103f8: 3c02800a */ lui $v0,0x800a
/* 103fc: 51e000d6 */ beqzl $t7,.NB00010758
/* 10400: 8fbf002c */ lw $ra,0x2c($sp)
/* 10404: 8c42eb74 */ lw $v0,-0x148c($v0)
/* 10408: 24010031 */ addiu $at,$zero,0x31
/* 1040c: 54410006 */ bnel $v0,$at,.NB00010428
/* 10410: 24010019 */ addiu $at,$zero,0x19
/* 10414: 0c004474 */ jal sndTickNosedive
/* 10418: 00000000 */ sll $zero,$zero,0x0
/* 1041c: 10000006 */ beqz $zero,.NB00010438
/* 10420: 00000000 */ sll $zero,$zero,0x0
/* 10424: 24010019 */ addiu $at,$zero,0x19
.NB00010428:
/* 10428: 14410003 */ bne $v0,$at,.NB00010438
/* 1042c: 00000000 */ sll $zero,$zero,0x0
/* 10430: 0c004537 */ jal sndTickUfo
/* 10434: 00000000 */ sll $zero,$zero,0x0
.NB00010438:
/* 10438: 3c18800a */ lui $t8,0x800a
/* 1043c: 8f18e96c */ lw $t8,-0x1694($t8)
/* 10440: 24010006 */ addiu $at,$zero,0x6
/* 10444: 17010014 */ bne $t8,$at,.NB00010498
/* 10448: 00000000 */ sll $zero,$zero,0x0
/* 1044c: 0fc59f54 */ jal musicGetVolume
/* 10450: 00000000 */ sll $zero,$zero,0x0
/* 10454: 3c038006 */ lui $v1,0x8006
/* 10458: 9463f6e8 */ lhu $v1,-0x918($v1)
/* 1045c: 0062082a */ slt $at,$v1,$v0
/* 10460: 10200005 */ beqz $at,.NB00010478
/* 10464: 00608025 */ or $s0,$v1,$zero
/* 10468: 0fc59f54 */ jal musicGetVolume
/* 1046c: 00000000 */ sll $zero,$zero,0x0
/* 10470: 10000001 */ beqz $zero,.NB00010478
/* 10474: 00408025 */ or $s0,$v0,$zero
.NB00010478:
/* 10478: 0c003c6f */ jal snd0000e9dc
/* 1047c: 00000000 */ sll $zero,$zero,0x0
/* 10480: 1202000d */ beq $s0,$v0,.NB000104b8
/* 10484: 00000000 */ sll $zero,$zero,0x0
/* 10488: 0c003c8d */ jal snd0000ea80
/* 1048c: 3204ffff */ andi $a0,$s0,0xffff
/* 10490: 10000009 */ beqz $zero,.NB000104b8
/* 10494: 00000000 */ sll $zero,$zero,0x0
.NB00010498:
/* 10498: 0c003c6f */ jal snd0000e9dc
/* 1049c: 00000000 */ sll $zero,$zero,0x0
/* 104a0: 3c048006 */ lui $a0,0x8006
/* 104a4: 9484f6e8 */ lhu $a0,-0x918($a0)
/* 104a8: 10820003 */ beq $a0,$v0,.NB000104b8
/* 104ac: 00000000 */ sll $zero,$zero,0x0
/* 104b0: 0c003c8d */ jal snd0000ea80
/* 104b4: 00000000 */ sll $zero,$zero,0x0
.NB000104b8:
/* 104b8: 3c048006 */ lui $a0,0x8006
/* 104bc: 8c84f6f4 */ lw $a0,-0x90c($a0)
/* 104c0: 3c057005 */ lui $a1,0x7005
/* 104c4: 10800009 */ beqz $a0,.NB000104ec
/* 104c8: 00000000 */ sll $zero,$zero,0x0
/* 104cc: 0c004eb1 */ jal strcmp
/* 104d0: 24a55190 */ addiu $a1,$a1,0x5190
/* 104d4: 10400005 */ beqz $v0,.NB000104ec
/* 104d8: 3c047005 */ lui $a0,0x7005
/* 104dc: 0c003074 */ jal func0000c1d0nb
/* 104e0: 248452b0 */ addiu $a0,$a0,0x52b0
/* 104e4: 24190045 */ addiu $t9,$zero,0x45
/* 104e8: a0190000 */ sb $t9,0x0($zero)
.NB000104ec:
/* 104ec: 0c00e49d */ jal func00037ea4
/* 104f0: 00000000 */ sll $zero,$zero,0x0
/* 104f4: 1440001d */ bnez $v0,.NB0001056c
/* 104f8: 3c108009 */ lui $s0,0x8009
/* 104fc: 26107e30 */ addiu $s0,$s0,0x7e30
/* 10500: 8e080004 */ lw $t0,0x4($s0)
/* 10504: 11000019 */ beqz $t0,.NB0001056c
/* 10508: 00000000 */ sll $zero,$zero,0x0
/* 1050c: 8e090008 */ lw $t1,0x8($s0)
/* 10510: 51200007 */ beqzl $t1,.NB00010530
/* 10514: 8e020024 */ lw $v0,0x24($s0)
/* 10518: 8e04001c */ lw $a0,0x1c($s0)
/* 1051c: 0c00e456 */ jal func00037d88
/* 10520: 8e050020 */ lw $a1,0x20($s0)
/* 10524: 1000008c */ beqz $zero,.NB00010758
/* 10528: 8fbf002c */ lw $ra,0x2c($sp)
/* 1052c: 8e020024 */ lw $v0,0x24($s0)
.NB00010530:
/* 10530: 24030001 */ addiu $v1,$zero,0x1
/* 10534: 24010002 */ addiu $at,$zero,0x2
/* 10538: 10430007 */ beq $v0,$v1,.NB00010558
/* 1053c: 240a003c */ addiu $t2,$zero,0x3c
/* 10540: 10410005 */ beq $v0,$at,.NB00010558
/* 10544: 24010003 */ addiu $at,$zero,0x3
/* 10548: 50410006 */ beql $v0,$at,.NB00010564
/* 1054c: ae03000c */ sw $v1,0xc($s0)
/* 10550: 10000004 */ beqz $zero,.NB00010564
/* 10554: 00000000 */ sll $zero,$zero,0x0
.NB00010558:
/* 10558: 10000002 */ beqz $zero,.NB00010564
/* 1055c: ae0a000c */ sw $t2,0xc($s0)
/* 10560: ae03000c */ sw $v1,0xc($s0)
.NB00010564:
/* 10564: 1000007b */ beqz $zero,.NB00010754
/* 10568: ae000004 */ sw $zero,0x4($s0)
.NB0001056c:
/* 1056c: 3c108009 */ lui $s0,0x8009
/* 10570: 26107e30 */ addiu $s0,$s0,0x7e30
/* 10574: 8e02000c */ lw $v0,0xc($s0)
/* 10578: 3c0b800a */ lui $t3,0x800a
/* 1057c: 58400076 */ blezl $v0,.NB00010758
/* 10580: 8fbf002c */ lw $ra,0x2c($sp)
/* 10584: 8d6be6f4 */ lw $t3,-0x190c($t3)
/* 10588: 004b6023 */ subu $t4,$v0,$t3
/* 1058c: 1d800071 */ bgtz $t4,.NB00010754
/* 10590: ae0c000c */ sw $t4,0xc($s0)
/* 10594: 8e020024 */ lw $v0,0x24($s0)
/* 10598: 24010002 */ addiu $at,$zero,0x2
/* 1059c: 5441001f */ bnel $v0,$at,.NB0001061c
/* 105a0: 24010001 */ addiu $at,$zero,0x1
.NB000105a4:
/* 105a4: 0c004d84 */ jal random
/* 105a8: 00000000 */ sll $zero,$zero,0x0
/* 105ac: 8e0e0010 */ lw $t6,0x10($s0)
/* 105b0: 30430003 */ andi $v1,$v0,0x3
/* 105b4: 11c3fffb */ beq $t6,$v1,.NB000105a4
/* 105b8: 00000000 */ sll $zero,$zero,0x0
/* 105bc: 3c018009 */ lui $at,0x8009
/* 105c0: 1060000c */ beqz $v1,.NB000105f4
/* 105c4: ac237e40 */ sw $v1,0x7e40($at)
/* 105c8: 24010001 */ addiu $at,$zero,0x1
/* 105cc: 1061000c */ beq $v1,$at,.NB00010600
/* 105d0: 24187cee */ addiu $t8,$zero,0x7cee
/* 105d4: 24010002 */ addiu $at,$zero,0x2
/* 105d8: 1061000b */ beq $v1,$at,.NB00010608
/* 105dc: 24197cef */ addiu $t9,$zero,0x7cef
/* 105e0: 24010003 */ addiu $at,$zero,0x3
/* 105e4: 1061000a */ beq $v1,$at,.NB00010610
/* 105e8: 24087cf0 */ addiu $t0,$zero,0x7cf0
/* 105ec: 1000004a */ beqz $zero,.NB00010718
/* 105f0: 3c01bf80 */ lui $at,0xbf80
.NB000105f4:
/* 105f4: 240f7ced */ addiu $t7,$zero,0x7ced
/* 105f8: 10000046 */ beqz $zero,.NB00010714
/* 105fc: a7af0034 */ sh $t7,0x34($sp)
.NB00010600:
/* 10600: 10000044 */ beqz $zero,.NB00010714
/* 10604: a7b80034 */ sh $t8,0x34($sp)
.NB00010608:
/* 10608: 10000042 */ beqz $zero,.NB00010714
/* 1060c: a7b90034 */ sh $t9,0x34($sp)
.NB00010610:
/* 10610: 10000040 */ beqz $zero,.NB00010714
/* 10614: a7a80034 */ sh $t0,0x34($sp)
/* 10618: 24010001 */ addiu $at,$zero,0x1
.NB0001061c:
/* 1061c: 5441001f */ bnel $v0,$at,.NB0001069c
/* 10620: 24010003 */ addiu $at,$zero,0x3
.NB00010624:
/* 10624: 0c004d84 */ jal random
/* 10628: 00000000 */ sll $zero,$zero,0x0
/* 1062c: 8e090014 */ lw $t1,0x14($s0)
/* 10630: 30430003 */ andi $v1,$v0,0x3
/* 10634: 1123fffb */ beq $t1,$v1,.NB00010624
/* 10638: 00000000 */ sll $zero,$zero,0x0
/* 1063c: 3c018009 */ lui $at,0x8009
/* 10640: 1060000c */ beqz $v1,.NB00010674
/* 10644: ac237e44 */ sw $v1,0x7e44($at)
/* 10648: 24010001 */ addiu $at,$zero,0x1
/* 1064c: 1061000c */ beq $v1,$at,.NB00010680
/* 10650: 240b7cf9 */ addiu $t3,$zero,0x7cf9
/* 10654: 24010002 */ addiu $at,$zero,0x2
/* 10658: 1061000b */ beq $v1,$at,.NB00010688
/* 1065c: 240c7cfa */ addiu $t4,$zero,0x7cfa
/* 10660: 24010003 */ addiu $at,$zero,0x3
/* 10664: 1061000a */ beq $v1,$at,.NB00010690
/* 10668: 240d7cfb */ addiu $t5,$zero,0x7cfb
/* 1066c: 1000002a */ beqz $zero,.NB00010718
/* 10670: 3c01bf80 */ lui $at,0xbf80
.NB00010674:
/* 10674: 240a7cf8 */ addiu $t2,$zero,0x7cf8
/* 10678: 10000026 */ beqz $zero,.NB00010714
/* 1067c: a7aa0034 */ sh $t2,0x34($sp)
.NB00010680:
/* 10680: 10000024 */ beqz $zero,.NB00010714
/* 10684: a7ab0034 */ sh $t3,0x34($sp)
.NB00010688:
/* 10688: 10000022 */ beqz $zero,.NB00010714
/* 1068c: a7ac0034 */ sh $t4,0x34($sp)
.NB00010690:
/* 10690: 10000020 */ beqz $zero,.NB00010714
/* 10694: a7ad0034 */ sh $t5,0x34($sp)
/* 10698: 24010003 */ addiu $at,$zero,0x3
.NB0001069c:
/* 1069c: 5441001e */ bnel $v0,$at,.NB00010718
/* 106a0: 3c01bf80 */ lui $at,0xbf80
.NB000106a4:
/* 106a4: 0c004d84 */ jal random
/* 106a8: 00000000 */ sll $zero,$zero,0x0
/* 106ac: 8e0e0018 */ lw $t6,0x18($s0)
/* 106b0: 30430003 */ andi $v1,$v0,0x3
/* 106b4: 11c3fffb */ beq $t6,$v1,.NB000106a4
/* 106b8: 00000000 */ sll $zero,$zero,0x0
/* 106bc: 3c018009 */ lui $at,0x8009
/* 106c0: 1060000c */ beqz $v1,.NB000106f4
/* 106c4: ac237e48 */ sw $v1,0x7e48($at)
/* 106c8: 24010001 */ addiu $at,$zero,0x1
/* 106cc: 1061000c */ beq $v1,$at,.NB00010700
/* 106d0: 241877b7 */ addiu $t8,$zero,0x77b7
/* 106d4: 24010002 */ addiu $at,$zero,0x2
/* 106d8: 1061000b */ beq $v1,$at,.NB00010708
/* 106dc: 241977b8 */ addiu $t9,$zero,0x77b8
/* 106e0: 24010003 */ addiu $at,$zero,0x3
/* 106e4: 1061000a */ beq $v1,$at,.NB00010710
/* 106e8: 240877b9 */ addiu $t0,$zero,0x77b9
/* 106ec: 1000000a */ beqz $zero,.NB00010718
/* 106f0: 3c01bf80 */ lui $at,0xbf80
.NB000106f4:
/* 106f4: 240f77b6 */ addiu $t7,$zero,0x77b6
/* 106f8: 10000006 */ beqz $zero,.NB00010714
/* 106fc: a7af0034 */ sh $t7,0x34($sp)
.NB00010700:
/* 10700: 10000004 */ beqz $zero,.NB00010714
/* 10704: a7b80034 */ sh $t8,0x34($sp)
.NB00010708:
/* 10708: 10000002 */ beqz $zero,.NB00010714
/* 1070c: a7b90034 */ sh $t9,0x34($sp)
.NB00010710:
/* 10710: a7a80034 */ sh $t0,0x34($sp)
.NB00010714:
/* 10714: 3c01bf80 */ lui $at,0xbf80
.NB00010718:
/* 10718: 44812000 */ mtc1 $at,$f4
/* 1071c: 2409ffff */ addiu $t1,$zero,-1
/* 10720: 240affff */ addiu $t2,$zero,-1
/* 10724: 240bffff */ addiu $t3,$zero,-1
/* 10728: 240cffff */ addiu $t4,$zero,-1
/* 1072c: ae09000c */ sw $t1,0xc($s0)
/* 10730: afac001c */ sw $t4,0x1c($sp)
/* 10734: afab0018 */ sw $t3,0x18($sp)
/* 10738: afaa0010 */ sw $t2,0x10($sp)
/* 1073c: 00002025 */ or $a0,$zero,$zero
/* 10740: 87a50034 */ lh $a1,0x34($sp)
/* 10744: 00003025 */ or $a2,$zero,$zero
/* 10748: 2407ffff */ addiu $a3,$zero,-1
/* 1074c: 0c004338 */ jal sndStart
/* 10750: e7a40014 */ swc1 $f4,0x14($sp)
.NB00010754:
/* 10754: 8fbf002c */ lw $ra,0x2c($sp)
.NB00010758:
/* 10758: 8fb00028 */ lw $s0,0x28($sp)
/* 1075c: 27bd0040 */ addiu $sp,$sp,0x40
/* 10760: 03e00008 */ jr $ra
/* 10764: 00000000 */ sll $zero,$zero,0x0
);
#endif
GLOBAL_ASM(
glabel func0001034c
/* 1034c: 309907ff */ andi $t9,$a0,0x7ff
/* 10350: 00194400 */ sll $t0,$t9,0x10
/* 10354: afa40000 */ sw $a0,0x0($sp)
/* 10358: 03e00008 */ jr $ra
/* 1035c: 00081403 */ sra $v0,$t0,0x10
);
bool sndIsDisabled(void)
{
return g_SndDisabled;
}
GLOBAL_ASM(
glabel snd0001036c
/* 1036c: 3c0e8006 */ lui $t6,%hi(g_SndDisabled)
/* 10370: 8dcedda0 */ lw $t6,%lo(g_SndDisabled)($t6)
/* 10374: 27bdffd0 */ addiu $sp,$sp,-48
/* 10378: afbf0024 */ sw $ra,0x24($sp)
/* 1037c: 15c0001f */ bnez $t6,.L000103fc
/* 10380: afa40030 */ sw $a0,0x30($sp)
/* 10384: 3c0f8006 */ lui $t7,%hi(g_SndMp3Enabled)
/* 10388: 8defddd0 */ lw $t7,%lo(g_SndMp3Enabled)($t7)
/* 1038c: 00806025 */ or $t4,$a0,$zero
/* 10390: 318d07ff */ andi $t5,$t4,0x7ff
/* 10394: 11e00019 */ beqz $t7,.L000103fc
/* 10398: 00002025 */ or $a0,$zero,$zero
/* 1039c: a7a0002c */ sh $zero,0x2c($sp)
/* 103a0: 93b8002c */ lbu $t8,0x2c($sp)
/* 103a4: 3c01bf80 */ lui $at,0xbf80
/* 103a8: 44812000 */ mtc1 $at,$f4
/* 103ac: 3308ff9f */ andi $t0,$t8,0xff9f
/* 103b0: 310900e7 */ andi $t1,$t0,0xe7
/* 103b4: a3a8002c */ sb $t0,0x2c($sp)
/* 103b8: 352a0008 */ ori $t2,$t1,0x8
/* 103bc: a3aa002c */ sb $t2,0x2c($sp)
/* 103c0: 97ae002c */ lhu $t6,0x2c($sp)
/* 103c4: 2409ffff */ addiu $t1,$zero,-1
/* 103c8: 2408ffff */ addiu $t0,$zero,-1
/* 103cc: 31cff800 */ andi $t7,$t6,0xf800
/* 103d0: 01afc025 */ or $t8,$t5,$t7
/* 103d4: a7b8002c */ sh $t8,0x2c($sp)
/* 103d8: 2419ffff */ addiu $t9,$zero,-1
/* 103dc: afb90010 */ sw $t9,0x10($sp)
/* 103e0: 87a5002c */ lh $a1,0x2c($sp)
/* 103e4: afa80018 */ sw $t0,0x18($sp)
/* 103e8: afa9001c */ sw $t1,0x1c($sp)
/* 103ec: 00003025 */ or $a2,$zero,$zero
/* 103f0: 2407ffff */ addiu $a3,$zero,-1
/* 103f4: 0c004241 */ jal sndStart
/* 103f8: e7a40014 */ swc1 $f4,0x14($sp)
.L000103fc:
/* 103fc: 8fbf0024 */ lw $ra,0x24($sp)
/* 10400: 27bd0030 */ addiu $sp,$sp,0x30
/* 10404: 03e00008 */ jr $ra
/* 10408: 00000000 */ nop
);
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel sndIsFiltered
/* 1040c: 3c0e800a */ lui $t6,%hi(g_Vars+0x4e3)
/* 10410: 91cea4a3 */ lbu $t6,%lo(g_Vars+0x4e3)($t6)
/* 10414: 27bdfff8 */ addiu $sp,$sp,-8
/* 10418: 51c0001f */ beqzl $t6,.L00010498
/* 1041c: 00001025 */ or $v0,$zero,$zero
/* 10420: a7a40004 */ sh $a0,0x4($sp)
/* 10424: 8faf0004 */ lw $t7,0x4($sp)
/* 10428: 97a20004 */ lhu $v0,0x4($sp)
/* 1042c: 2401051d */ addiu $at,$zero,0x51d
/* 10430: 000fc7c2 */ srl $t8,$t7,0x1f
/* 10434: 1300000f */ beqz $t8,.L00010474
/* 10438: 304e07ff */ andi $t6,$v0,0x7ff
/* 1043c: 30887fff */ andi $t0,$a0,0x7fff
/* 10440: 00084880 */ sll $t1,$t0,0x2
/* 10444: 3c0a8006 */ lui $t2,%hi(g_AudioRussMappings+0x2)
/* 10448: 01495021 */ addu $t2,$t2,$t1
/* 1044c: 954adde6 */ lhu $t2,%lo(g_AudioRussMappings+0x2)($t2)
/* 10450: 3c0c8006 */ lui $t4,%hi(g_AudioConfigs+0x1c)
/* 10454: 000a5940 */ sll $t3,$t2,0x5
/* 10458: 018b6021 */ addu $t4,$t4,$t3
/* 1045c: 8d8ce4f4 */ lw $t4,%lo(g_AudioConfigs+0x1c)($t4)
/* 10460: 318d0010 */ andi $t5,$t4,0x10
/* 10464: 51a0000c */ beqzl $t5,.L00010498
/* 10468: 00001025 */ or $v0,$zero,$zero
/* 1046c: 1000000a */ b .L00010498
/* 10470: 24020001 */ addiu $v0,$zero,0x1
.L00010474:
/* 10474: 11c10005 */ beq $t6,$at,.L0001048c
/* 10478: 2401051e */ addiu $at,$zero,0x51e
/* 1047c: 11c10003 */ beq $t6,$at,.L0001048c
/* 10480: 240117ad */ addiu $at,$zero,0x17ad
/* 10484: 55c10004 */ bnel $t6,$at,.L00010498
/* 10488: 00001025 */ or $v0,$zero,$zero
.L0001048c:
/* 1048c: 10000002 */ b .L00010498
/* 10490: 24020001 */ addiu $v0,$zero,0x1
/* 10494: 00001025 */ or $v0,$zero,$zero
.L00010498:
/* 10498: 03e00008 */ jr $ra
/* 1049c: 27bd0008 */ addiu $sp,$sp,0x8
);
#else
GLOBAL_ASM(
glabel sndIsFiltered
/* 10828: 3c0e800a */ lui $t6,0x800a
/* 1082c: 91ceeba3 */ lbu $t6,-0x145d($t6)
/* 10830: 27bdfff8 */ addiu $sp,$sp,-8
/* 10834: 00001025 */ or $v0,$zero,$zero
/* 10838: 11c00013 */ beqz $t6,.NB00010888
/* 1083c: 00000000 */ sll $zero,$zero,0x0
/* 10840: a7a40004 */ sh $a0,0x4($sp)
/* 10844: 8faf0004 */ lw $t7,0x4($sp)
/* 10848: 30887fff */ andi $t0,$a0,0x7fff
/* 1084c: 00084880 */ sll $t1,$t0,0x2
/* 10850: 000fc7c2 */ srl $t8,$t7,0x1f
/* 10854: 1300000c */ beqz $t8,.NB00010888
/* 10858: 3c0a8006 */ lui $t2,0x8006
/* 1085c: 01495021 */ addu $t2,$t2,$t1
/* 10860: 954af6fa */ lhu $t2,-0x906($t2)
/* 10864: 3c0c8006 */ lui $t4,0x8006
/* 10868: 000a5940 */ sll $t3,$t2,0x5
/* 1086c: 018b6021 */ addu $t4,$t4,$t3
/* 10870: 8d8cfdec */ lw $t4,-0x214($t4)
/* 10874: 318d0010 */ andi $t5,$t4,0x10
/* 10878: 11a00003 */ beqz $t5,.NB00010888
/* 1087c: 00000000 */ sll $zero,$zero,0x0
/* 10880: 10000001 */ beqz $zero,.NB00010888
/* 10884: 24020001 */ addiu $v0,$zero,0x1
.NB00010888:
/* 10888: 03e00008 */ jr $ra
/* 1088c: 27bd0008 */ addiu $sp,$sp,0x8
);
#endif
// Mismatch because goal is doing something funky with the audio_id.
// It stores a halfword on the stack, then reads it back as a full word.
//bool sndIsFiltered(s32 audio_id)
//{
// // 418
// if (g_Vars.langfilteron) {
// // 434
// if ((audio_id << 16) >> 31) {
// u32 index = audio_id & 0x7fff;
// u32 configindex = g_AudioRussMappings[index].audioconfig_index;
//
// if (g_AudioConfigs[configindex].flags & 0x10) {
// return true;
// }
// } else {
// // 474
// // @bug: The masking here makes it impossible to match hangar guy's
// // audio ID, so his phrase can be said even with the lang filter on.
// switch (audio_id & 0x07ff) {
// case 0x051d: // Elvis: "Kiss my alien butt"
// case 0x051e: // Elvis: "I'll kick your ass"
// case 0x17ad: // Hangar guy: "Just don't screw up, okay?"
// return true;
// }
// }
// }
//
// return false;
//}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel sndAdjust
/* 104a0: 27bdffd8 */ addiu $sp,$sp,-40
/* 104a4: 8faf0048 */ lw $t7,0x48($sp)
/* 104a8: 240effff */ addiu $t6,$zero,-1
/* 104ac: afbf0014 */ sw $ra,0x14($sp)
/* 104b0: afa40028 */ sw $a0,0x28($sp)
/* 104b4: afa5002c */ sw $a1,0x2c($sp)
/* 104b8: 15e00005 */ bnez $t7,.L000104d0
/* 104bc: afae0024 */ sw $t6,0x24($sp)
/* 104c0: 8fa20044 */ lw $v0,0x44($sp)
/* 104c4: 2408ffff */ addiu $t0,$zero,-1
/* 104c8: 50480015 */ beql $v0,$t0,.L00010520
/* 104cc: 8fa20038 */ lw $v0,0x38($sp)
.L000104d0:
/* 104d0: 8fa20044 */ lw $v0,0x44($sp)
/* 104d4: 2408ffff */ addiu $t0,$zero,-1
/* 104d8: 3c188006 */ lui $t8,%hi(g_SoundMode)
/* 104dc: 50480004 */ beql $v0,$t0,.L000104f0
/* 104e0: afa00024 */ sw $zero,0x24($sp)
/* 104e4: 10000002 */ b .L000104f0
/* 104e8: afa20024 */ sw $v0,0x24($sp)
/* 104ec: afa00024 */ sw $zero,0x24($sp)
.L000104f0:
/* 104f0: 50e8000b */ beql $a3,$t0,.L00010520
/* 104f4: 8fa20038 */ lw $v0,0x38($sp)
/* 104f8: 8f18ddcc */ lw $t8,%lo(g_SoundMode)($t8)
/* 104fc: 24010003 */ addiu $at,$zero,0x3
/* 10500: 30f90080 */ andi $t9,$a3,0x80
/* 10504: 57010006 */ bnel $t8,$at,.L00010520
/* 10508: 8fa20038 */ lw $v0,0x38($sp)
/* 1050c: 13200003 */ beqz $t9,.L0001051c
/* 10510: 8faa0024 */ lw $t2,0x24($sp)
/* 10514: 254b0080 */ addiu $t3,$t2,0x80
/* 10518: afab0024 */ sw $t3,0x24($sp)
.L0001051c:
/* 1051c: 8fa20038 */ lw $v0,0x38($sp)
.L00010520:
/* 10520: 58400036 */ blezl $v0,.L000105fc
/* 10524: 8fac002c */ lw $t4,0x2c($sp)
/* 10528: a7a20020 */ sh $v0,0x20($sp)
/* 1052c: 8fac0020 */ lw $t4,0x20($sp)
/* 10530: 3c058006 */ lui $a1,%hi(g_AudioRussMappings)
/* 10534: 24a5dde4 */ addiu $a1,$a1,%lo(g_AudioRussMappings)
/* 10538: 000c6fc2 */ srl $t5,$t4,0x1f
/* 1053c: 11a0002e */ beqz $t5,.L000105f8
/* 10540: 00407025 */ or $t6,$v0,$zero
/* 10544: 31cf7fff */ andi $t7,$t6,0x7fff
/* 10548: 000fc080 */ sll $t8,$t7,0x2
/* 1054c: 00b8c821 */ addu $t9,$a1,$t8
/* 10550: 00b85021 */ addu $t2,$a1,$t8
/* 10554: 97220002 */ lhu $v0,0x2($t9)
/* 10558: 854b0000 */ lh $t3,0x0($t2)
/* 1055c: 3c0f8006 */ lui $t7,%hi(g_AudioConfigs)
/* 10560: 25efe4d8 */ addiu $t7,$t7,%lo(g_AudioConfigs)
/* 10564: 00027140 */ sll $t6,$v0,0x5
/* 10568: a7ab001c */ sh $t3,0x1c($sp)
/* 1056c: 93ac001c */ lbu $t4,0x1c($sp)
/* 10570: 01cf2021 */ addu $a0,$t6,$t7
/* 10574: 8c830010 */ lw $v1,0x10($a0)
/* 10578: 24090064 */ addiu $t1,$zero,0x64
/* 1057c: 318dff7f */ andi $t5,$t4,0xff7f
/* 10580: 11230010 */ beq $t1,$v1,.L000105c4
/* 10584: a3ad001c */ sb $t5,0x1c($sp)
/* 10588: 00660019 */ multu $v1,$a2
/* 1058c: 0000c812 */ mflo $t9
/* 10590: 00000000 */ nop
/* 10594: 00000000 */ nop
/* 10598: 0329001a */ div $zero,$t9,$t1
/* 1059c: 00003012 */ mflo $a2
/* 105a0: 15200002 */ bnez $t1,.L000105ac
/* 105a4: 00000000 */ nop
/* 105a8: 0007000d */ break 0x7
.L000105ac:
/* 105ac: 2401ffff */ addiu $at,$zero,-1
/* 105b0: 15210004 */ bne $t1,$at,.L000105c4
/* 105b4: 3c018000 */ lui $at,0x8000
/* 105b8: 17210002 */ bne $t9,$at,.L000105c4
/* 105bc: 00000000 */ nop
/* 105c0: 0006000d */ break 0x6
.L000105c4:
/* 105c4: 8c820014 */ lw $v0,0x14($a0)
/* 105c8: 3c18800a */ lui $t8,%hi(g_Vars+0x4e3)
/* 105cc: 11020002 */ beq $t0,$v0,.L000105d8
/* 105d0: 00000000 */ nop
/* 105d4: 00403825 */ or $a3,$v0,$zero
.L000105d8:
/* 105d8: 9318a4a3 */ lbu $t8,%lo(g_Vars+0x4e3)($t8)
/* 105dc: 53000007 */ beqzl $t8,.L000105fc
/* 105e0: 8fac002c */ lw $t4,0x2c($sp)
/* 105e4: 8c8a001c */ lw $t2,0x1c($a0)
/* 105e8: 314b0010 */ andi $t3,$t2,0x10
/* 105ec: 51600003 */ beqzl $t3,.L000105fc
/* 105f0: 8fac002c */ lw $t4,0x2c($sp)
/* 105f4: 00003025 */ or $a2,$zero,$zero
.L000105f8:
/* 105f8: 8fac002c */ lw $t4,0x2c($sp)
.L000105fc:
/* 105fc: 5180001f */ beqzl $t4,.L0001067c
/* 10600: 8fae0028 */ lw $t6,0x28($sp)
/* 10604: 10c80013 */ beq $a2,$t0,.L00010654
/* 10608: 00000000 */ nop
/* 1060c: afa60030 */ sw $a2,0x30($sp)
/* 10610: 0c003a77 */ jal snd0000e9dc
/* 10614: afa70034 */ sw $a3,0x34($sp)
/* 10618: 8fa60030 */ lw $a2,0x30($sp)
/* 1061c: 24017fff */ addiu $at,$zero,0x7fff
/* 10620: 24050001 */ addiu $a1,$zero,0x1
/* 10624: 00460019 */ multu $v0,$a2
/* 10628: 00003012 */ mflo $a2
/* 1062c: 00000000 */ nop
/* 10630: 00000000 */ nop
/* 10634: 00c1001a */ div $zero,$a2,$at
/* 10638: 00002012 */ mflo $a0
/* 1063c: afa40030 */ sw $a0,0x30($sp)
/* 10640: 0c00dfc2 */ jal func00037f08
/* 10644: 00000000 */ nop
/* 10648: 8fa60030 */ lw $a2,0x30($sp)
/* 1064c: 8fa70034 */ lw $a3,0x34($sp)
/* 10650: 2408ffff */ addiu $t0,$zero,-1
.L00010654:
/* 10654: 10e80008 */ beq $a3,$t0,.L00010678
/* 10658: 00e02025 */ or $a0,$a3,$zero
/* 1065c: 24050001 */ addiu $a1,$zero,0x1
/* 10660: afa60030 */ sw $a2,0x30($sp)
/* 10664: 0c00dfd7 */ jal func00037f5c
/* 10668: afa70034 */ sw $a3,0x34($sp)
/* 1066c: 8fa60030 */ lw $a2,0x30($sp)
/* 10670: 8fa70034 */ lw $a3,0x34($sp)
/* 10674: 2408ffff */ addiu $t0,$zero,-1
.L00010678:
/* 10678: 8fae0028 */ lw $t6,0x28($sp)
.L0001067c:
/* 1067c: 8dc40000 */ lw $a0,0x0($t6)
/* 10680: 50800022 */ beqzl $a0,.L0001070c
/* 10684: 8fbf0014 */ lw $ra,0x14($sp)
/* 10688: 10c80005 */ beq $a2,$t0,.L000106a0
/* 1068c: 24050008 */ addiu $a1,$zero,0x8
/* 10690: 0c00cf94 */ jal audioPostEvent
/* 10694: afa70034 */ sw $a3,0x34($sp)
/* 10698: 8fa70034 */ lw $a3,0x34($sp)
/* 1069c: 2408ffff */ addiu $t0,$zero,-1
.L000106a0:
/* 106a0: 10e80006 */ beq $a3,$t0,.L000106bc
/* 106a4: 8faf0028 */ lw $t7,0x28($sp)
/* 106a8: 8de40000 */ lw $a0,0x0($t7)
/* 106ac: 24050004 */ addiu $a1,$zero,0x4
/* 106b0: 0c00cf94 */ jal audioPostEvent
/* 106b4: 30e6007f */ andi $a2,$a3,0x7f
/* 106b8: 2408ffff */ addiu $t0,$zero,-1
.L000106bc:
/* 106bc: 3c01bf80 */ lui $at,0xbf80
/* 106c0: 44813000 */ mtc1 $at,$f6
/* 106c4: c7a4003c */ lwc1 $f4,0x3c($sp)
/* 106c8: 8fb90028 */ lw $t9,0x28($sp)
/* 106cc: 24050010 */ addiu $a1,$zero,0x10
/* 106d0: 46062032 */ c.eq.s $f4,$f6
/* 106d4: 8fa6003c */ lw $a2,0x3c($sp)
/* 106d8: 45030005 */ bc1tl .L000106f0
/* 106dc: 8fb80024 */ lw $t8,0x24($sp)
/* 106e0: 0c00cf94 */ jal audioPostEvent
/* 106e4: 8f240000 */ lw $a0,0x0($t9)
/* 106e8: 2408ffff */ addiu $t0,$zero,-1
/* 106ec: 8fb80024 */ lw $t8,0x24($sp)
.L000106f0:
/* 106f0: 8faa0028 */ lw $t2,0x28($sp)
/* 106f4: 24050100 */ addiu $a1,$zero,0x100
/* 106f8: 13080003 */ beq $t8,$t0,.L00010708
/* 106fc: 03003025 */ or $a2,$t8,$zero
/* 10700: 0c00cf94 */ jal audioPostEvent
/* 10704: 8d440000 */ lw $a0,0x0($t2)
.L00010708:
/* 10708: 8fbf0014 */ lw $ra,0x14($sp)
.L0001070c:
/* 1070c: 27bd0028 */ addiu $sp,$sp,0x28
/* 10710: 03e00008 */ jr $ra
/* 10714: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel sndAdjust
/* 10890: 27bdffd8 */ addiu $sp,$sp,-40
/* 10894: 8faf0048 */ lw $t7,0x48($sp)
/* 10898: 240effff */ addiu $t6,$zero,-1
/* 1089c: afbf0014 */ sw $ra,0x14($sp)
/* 108a0: afa40028 */ sw $a0,0x28($sp)
/* 108a4: afa5002c */ sw $a1,0x2c($sp)
/* 108a8: 15e00005 */ bnez $t7,.NB000108c0
/* 108ac: afae0024 */ sw $t6,0x24($sp)
/* 108b0: 8fa20044 */ lw $v0,0x44($sp)
/* 108b4: 2409ffff */ addiu $t1,$zero,-1
/* 108b8: 50490012 */ beql $v0,$t1,.NB00010904
/* 108bc: 8fa20038 */ lw $v0,0x38($sp)
.NB000108c0:
/* 108c0: 8fa20044 */ lw $v0,0x44($sp)
/* 108c4: 2409ffff */ addiu $t1,$zero,-1
/* 108c8: 3c188006 */ lui $t8,0x8006
/* 108cc: 10490003 */ beq $v0,$t1,.NB000108dc
/* 108d0: 30f90080 */ andi $t9,$a3,0x80
/* 108d4: 10000002 */ beqz $zero,.NB000108e0
/* 108d8: afa20024 */ sw $v0,0x24($sp)
.NB000108dc:
/* 108dc: afa00024 */ sw $zero,0x24($sp)
.NB000108e0:
/* 108e0: 8f18f6ec */ lw $t8,-0x914($t8)
/* 108e4: 24010003 */ addiu $at,$zero,0x3
/* 108e8: 57010006 */ bnel $t8,$at,.NB00010904
/* 108ec: 8fa20038 */ lw $v0,0x38($sp)
/* 108f0: 13200003 */ beqz $t9,.NB00010900
/* 108f4: 8faa0024 */ lw $t2,0x24($sp)
/* 108f8: 254b0080 */ addiu $t3,$t2,0x80
/* 108fc: afab0024 */ sw $t3,0x24($sp)
.NB00010900:
/* 10900: 8fa20038 */ lw $v0,0x38($sp)
.NB00010904:
/* 10904: 58400036 */ blezl $v0,.NB000109e0
/* 10908: 8fac002c */ lw $t4,0x2c($sp)
/* 1090c: a7a20020 */ sh $v0,0x20($sp)
/* 10910: 8fac0020 */ lw $t4,0x20($sp)
/* 10914: 3c058006 */ lui $a1,0x8006
/* 10918: 24a5f6f8 */ addiu $a1,$a1,-2312
/* 1091c: 000c6fc2 */ srl $t5,$t4,0x1f
/* 10920: 11a0002e */ beqz $t5,.NB000109dc
/* 10924: 00407025 */ or $t6,$v0,$zero
/* 10928: 31cf7fff */ andi $t7,$t6,0x7fff
/* 1092c: 000fc080 */ sll $t8,$t7,0x2
/* 10930: 00b8c821 */ addu $t9,$a1,$t8
/* 10934: 00b85021 */ addu $t2,$a1,$t8
/* 10938: 97220002 */ lhu $v0,0x2($t9)
/* 1093c: 854b0000 */ lh $t3,0x0($t2)
/* 10940: 3c0f8006 */ lui $t7,0x8006
/* 10944: 25effdd0 */ addiu $t7,$t7,-560
/* 10948: 00027140 */ sll $t6,$v0,0x5
/* 1094c: a7ab001c */ sh $t3,0x1c($sp)
/* 10950: 93ac001c */ lbu $t4,0x1c($sp)
/* 10954: 01cf2021 */ addu $a0,$t6,$t7
/* 10958: 8c830010 */ lw $v1,0x10($a0)
/* 1095c: 24080064 */ addiu $t0,$zero,0x64
/* 10960: 318dff7f */ andi $t5,$t4,0xff7f
/* 10964: 11030010 */ beq $t0,$v1,.NB000109a8
/* 10968: a3ad001c */ sb $t5,0x1c($sp)
/* 1096c: 00660019 */ multu $v1,$a2
/* 10970: 0000c812 */ mflo $t9
/* 10974: 00000000 */ sll $zero,$zero,0x0
/* 10978: 00000000 */ sll $zero,$zero,0x0
/* 1097c: 0328001a */ div $zero,$t9,$t0
/* 10980: 00003012 */ mflo $a2
/* 10984: 15000002 */ bnez $t0,.NB00010990
/* 10988: 00000000 */ sll $zero,$zero,0x0
/* 1098c: 0007000d */ break 0x7
.NB00010990:
/* 10990: 2401ffff */ addiu $at,$zero,-1
/* 10994: 15010004 */ bne $t0,$at,.NB000109a8
/* 10998: 3c018000 */ lui $at,0x8000
/* 1099c: 17210002 */ bne $t9,$at,.NB000109a8
/* 109a0: 00000000 */ sll $zero,$zero,0x0
/* 109a4: 0006000d */ break 0x6
.NB000109a8:
/* 109a8: 8c820014 */ lw $v0,0x14($a0)
/* 109ac: 3c18800a */ lui $t8,0x800a
/* 109b0: 11220002 */ beq $t1,$v0,.NB000109bc
/* 109b4: 00000000 */ sll $zero,$zero,0x0
/* 109b8: 00403825 */ or $a3,$v0,$zero
.NB000109bc:
/* 109bc: 9318eba3 */ lbu $t8,-0x145d($t8)
/* 109c0: 53000007 */ beqzl $t8,.NB000109e0
/* 109c4: 8fac002c */ lw $t4,0x2c($sp)
/* 109c8: 8c8a001c */ lw $t2,0x1c($a0)
/* 109cc: 314b0010 */ andi $t3,$t2,0x10
/* 109d0: 51600003 */ beqzl $t3,.NB000109e0
/* 109d4: 8fac002c */ lw $t4,0x2c($sp)
/* 109d8: 00003025 */ or $a2,$zero,$zero
.NB000109dc:
/* 109dc: 8fac002c */ lw $t4,0x2c($sp)
.NB000109e0:
/* 109e0: 5180001f */ beqzl $t4,.NB00010a60
/* 109e4: 8fae0028 */ lw $t6,0x28($sp)
/* 109e8: 10c90013 */ beq $a2,$t1,.NB00010a38
/* 109ec: 00000000 */ sll $zero,$zero,0x0
/* 109f0: afa60030 */ sw $a2,0x30($sp)
/* 109f4: 0c003c6f */ jal snd0000e9dc
/* 109f8: afa70034 */ sw $a3,0x34($sp)
/* 109fc: 8fa60030 */ lw $a2,0x30($sp)
/* 10a00: 24017fff */ addiu $at,$zero,0x7fff
/* 10a04: 24050001 */ addiu $a1,$zero,0x1
/* 10a08: 00460019 */ multu $v0,$a2
/* 10a0c: 00003012 */ mflo $a2
/* 10a10: 00000000 */ sll $zero,$zero,0x0
/* 10a14: 00000000 */ sll $zero,$zero,0x0
/* 10a18: 00c1001a */ div $zero,$a2,$at
/* 10a1c: 00002012 */ mflo $a0
/* 10a20: afa40030 */ sw $a0,0x30($sp)
/* 10a24: 0c00e4b6 */ jal func00037f08
/* 10a28: 00000000 */ sll $zero,$zero,0x0
/* 10a2c: 8fa60030 */ lw $a2,0x30($sp)
/* 10a30: 8fa70034 */ lw $a3,0x34($sp)
/* 10a34: 2409ffff */ addiu $t1,$zero,-1
.NB00010a38:
/* 10a38: 10e90008 */ beq $a3,$t1,.NB00010a5c
/* 10a3c: 00e02025 */ or $a0,$a3,$zero
/* 10a40: 24050001 */ addiu $a1,$zero,0x1
/* 10a44: afa60030 */ sw $a2,0x30($sp)
/* 10a48: 0c00e4cb */ jal func00037f5c
/* 10a4c: afa70034 */ sw $a3,0x34($sp)
/* 10a50: 8fa60030 */ lw $a2,0x30($sp)
/* 10a54: 8fa70034 */ lw $a3,0x34($sp)
/* 10a58: 2409ffff */ addiu $t1,$zero,-1
.NB00010a5c:
/* 10a5c: 8fae0028 */ lw $t6,0x28($sp)
.NB00010a60:
/* 10a60: 8dc40000 */ lw $a0,0x0($t6)
/* 10a64: 50800022 */ beqzl $a0,.NB00010af0
/* 10a68: 8fbf0014 */ lw $ra,0x14($sp)
/* 10a6c: 10c90005 */ beq $a2,$t1,.NB00010a84
/* 10a70: 24050008 */ addiu $a1,$zero,0x8
/* 10a74: 0c00d492 */ jal audioPostEvent
/* 10a78: afa70034 */ sw $a3,0x34($sp)
/* 10a7c: 8fa70034 */ lw $a3,0x34($sp)
/* 10a80: 2409ffff */ addiu $t1,$zero,-1
.NB00010a84:
/* 10a84: 10e90006 */ beq $a3,$t1,.NB00010aa0
/* 10a88: 8faf0028 */ lw $t7,0x28($sp)
/* 10a8c: 8de40000 */ lw $a0,0x0($t7)
/* 10a90: 24050004 */ addiu $a1,$zero,0x4
/* 10a94: 0c00d492 */ jal audioPostEvent
/* 10a98: 30e6007f */ andi $a2,$a3,0x7f
/* 10a9c: 2409ffff */ addiu $t1,$zero,-1
.NB00010aa0:
/* 10aa0: 3c01bf80 */ lui $at,0xbf80
/* 10aa4: 44813000 */ mtc1 $at,$f6
/* 10aa8: c7a4003c */ lwc1 $f4,0x3c($sp)
/* 10aac: 8fb90028 */ lw $t9,0x28($sp)
/* 10ab0: 24050010 */ addiu $a1,$zero,0x10
/* 10ab4: 46062032 */ c.eq.s $f4,$f6
/* 10ab8: 8fa6003c */ lw $a2,0x3c($sp)
/* 10abc: 45030005 */ bc1tl .NB00010ad4
/* 10ac0: 8fb80024 */ lw $t8,0x24($sp)
/* 10ac4: 0c00d492 */ jal audioPostEvent
/* 10ac8: 8f240000 */ lw $a0,0x0($t9)
/* 10acc: 2409ffff */ addiu $t1,$zero,-1
/* 10ad0: 8fb80024 */ lw $t8,0x24($sp)
.NB00010ad4:
/* 10ad4: 8faa0028 */ lw $t2,0x28($sp)
/* 10ad8: 24050100 */ addiu $a1,$zero,0x100
/* 10adc: 13090003 */ beq $t8,$t1,.NB00010aec
/* 10ae0: 03003025 */ or $a2,$t8,$zero
/* 10ae4: 0c00d492 */ jal audioPostEvent
/* 10ae8: 8d440000 */ lw $a0,0x0($t2)
.NB00010aec:
/* 10aec: 8fbf0014 */ lw $ra,0x14($sp)
.NB00010af0:
/* 10af0: 27bd0028 */ addiu $sp,$sp,0x28
/* 10af4: 03e00008 */ jr $ra
/* 10af8: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel snd00010718
/* 10718: 27bdffc0 */ addiu $sp,$sp,-64
/* 1071c: afbf0024 */ sw $ra,0x24($sp)
/* 10720: afa40040 */ sw $a0,0x40($sp)
/* 10724: afa50044 */ sw $a1,0x44($sp)
/* 10728: afa60048 */ sw $a2,0x48($sp)
/* 1072c: afa7004c */ sw $a3,0x4c($sp)
/* 10730: 0c012230 */ jal osGetThreadPri
/* 10734: 00002025 */ or $a0,$zero,$zero
/* 10738: 2408ffff */ addiu $t0,$zero,-1
/* 1073c: 3c048009 */ lui $a0,%hi(g_AudioManager+0x18)
/* 10740: afa2003c */ sw $v0,0x3c($sp)
/* 10744: 248415e0 */ addiu $a0,$a0,%lo(g_AudioManager+0x18)
/* 10748: 0c012230 */ jal osGetThreadPri
/* 1074c: afa80038 */ sw $t0,0x38($sp)
/* 10750: 00002025 */ or $a0,$zero,$zero
/* 10754: 0c01210c */ jal osSetThreadPri
/* 10758: 24450001 */ addiu $a1,$v0,0x1
/* 1075c: 8fae0060 */ lw $t6,0x60($sp)
/* 10760: 8fa80038 */ lw $t0,0x38($sp)
/* 10764: 8fa2005c */ lw $v0,0x5c($sp)
/* 10768: 15c00004 */ bnez $t6,.L0001077c
/* 1076c: 8fa90050 */ lw $t1,0x50($sp)
/* 10770: 2407ffff */ addiu $a3,$zero,-1
/* 10774: 10470012 */ beq $v0,$a3,.L000107c0
/* 10778: 00000000 */ nop
.L0001077c:
/* 1077c: 8fa2005c */ lw $v0,0x5c($sp)
/* 10780: 2407ffff */ addiu $a3,$zero,-1
/* 10784: 00004025 */ or $t0,$zero,$zero
/* 10788: 10470003 */ beq $v0,$a3,.L00010798
/* 1078c: 8faf004c */ lw $t7,0x4c($sp)
/* 10790: 10000001 */ b .L00010798
/* 10794: 00404025 */ or $t0,$v0,$zero
.L00010798:
/* 10798: 11e70009 */ beq $t7,$a3,.L000107c0
/* 1079c: 3c188006 */ lui $t8,%hi(g_SoundMode)
/* 107a0: 8f18ddcc */ lw $t8,%lo(g_SoundMode)($t8)
/* 107a4: 24010003 */ addiu $at,$zero,0x3
/* 107a8: 31f90080 */ andi $t9,$t7,0x80
/* 107ac: 17010004 */ bne $t8,$at,.L000107c0
/* 107b0: 00000000 */ nop
/* 107b4: 13200002 */ beqz $t9,.L000107c0
/* 107b8: 00000000 */ nop
/* 107bc: 25080080 */ addiu $t0,$t0,0x80
.L000107c0:
/* 107c0: 51200039 */ beqzl $t1,.L000108a8
/* 107c4: 8fad004c */ lw $t5,0x4c($sp)
/* 107c8: a7a90030 */ sh $t1,0x30($sp)
/* 107cc: 8faa0030 */ lw $t2,0x30($sp)
/* 107d0: 3c058006 */ lui $a1,%hi(g_AudioRussMappings)
/* 107d4: 24a5dde4 */ addiu $a1,$a1,%lo(g_AudioRussMappings)
/* 107d8: 000a5fc2 */ srl $t3,$t2,0x1f
/* 107dc: 11600031 */ beqz $t3,.L000108a4
/* 107e0: 24060064 */ addiu $a2,$zero,0x64
/* 107e4: 01206025 */ or $t4,$t1,$zero
/* 107e8: 318d7fff */ andi $t5,$t4,0x7fff
/* 107ec: 000d7080 */ sll $t6,$t5,0x2
/* 107f0: 00ae7821 */ addu $t7,$a1,$t6
/* 107f4: 85f90000 */ lh $t9,0x0($t7)
/* 107f8: 00aec021 */ addu $t8,$a1,$t6
/* 107fc: 97020002 */ lhu $v0,0x2($t8)
/* 10800: 3c0d8006 */ lui $t5,%hi(g_AudioConfigs)
/* 10804: a7b9002c */ sh $t9,0x2c($sp)
/* 10808: 93aa002c */ lbu $t2,0x2c($sp)
/* 1080c: 25ade4d8 */ addiu $t5,$t5,%lo(g_AudioConfigs)
/* 10810: 00026140 */ sll $t4,$v0,0x5
/* 10814: 018d2021 */ addu $a0,$t4,$t5
/* 10818: 8c830010 */ lw $v1,0x10($a0)
/* 1081c: 314bff7f */ andi $t3,$t2,0xff7f
/* 10820: a3ab002c */ sb $t3,0x2c($sp)
/* 10824: 10c30012 */ beq $a2,$v1,.L00010870
/* 10828: 87a9002c */ lh $t1,0x2c($sp)
/* 1082c: 8fb80048 */ lw $t8,0x48($sp)
/* 10830: 00780019 */ multu $v1,$t8
/* 10834: 00007012 */ mflo $t6
/* 10838: 00000000 */ nop
/* 1083c: 00000000 */ nop
/* 10840: 01c6001a */ div $zero,$t6,$a2
/* 10844: 00007812 */ mflo $t7
/* 10848: afaf0048 */ sw $t7,0x48($sp)
/* 1084c: 14c00002 */ bnez $a2,.L00010858
/* 10850: 00000000 */ nop
/* 10854: 0007000d */ break 0x7
.L00010858:
/* 10858: 2401ffff */ addiu $at,$zero,-1
/* 1085c: 14c10004 */ bne $a2,$at,.L00010870
/* 10860: 3c018000 */ lui $at,0x8000
/* 10864: 15c10002 */ bne $t6,$at,.L00010870
/* 10868: 00000000 */ nop
/* 1086c: 0006000d */ break 0x6
.L00010870:
/* 10870: 8c820014 */ lw $v0,0x14($a0)
/* 10874: 3c19800a */ lui $t9,%hi(g_Vars+0x4e3)
/* 10878: 10e20002 */ beq $a3,$v0,.L00010884
/* 1087c: 00000000 */ nop
/* 10880: afa2004c */ sw $v0,0x4c($sp)
.L00010884:
/* 10884: 9339a4a3 */ lbu $t9,%lo(g_Vars+0x4e3)($t9)
/* 10888: 53200007 */ beqzl $t9,.L000108a8
/* 1088c: 8fad004c */ lw $t5,0x4c($sp)
/* 10890: 8c8a001c */ lw $t2,0x1c($a0)
/* 10894: 314b0010 */ andi $t3,$t2,0x10
/* 10898: 51600003 */ beqzl $t3,.L000108a8
/* 1089c: 8fad004c */ lw $t5,0x4c($sp)
/* 108a0: afa00048 */ sw $zero,0x48($sp)
.L000108a4:
/* 108a4: 8fad004c */ lw $t5,0x4c($sp)
.L000108a8:
/* 108a8: c7a40054 */ lwc1 $f4,0x54($sp)
/* 108ac: 8fb80058 */ lw $t8,0x58($sp)
/* 108b0: 00092c00 */ sll $a1,$t1,0x10
/* 108b4: 00056403 */ sra $t4,$a1,0x10
/* 108b8: 3c048009 */ lui $a0,%hi(var80095200)
/* 108bc: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* 108c0: 01802825 */ or $a1,$t4,$zero
/* 108c4: 8fa60040 */ lw $a2,0x40($sp)
/* 108c8: 8fa70048 */ lw $a3,0x48($sp)
/* 108cc: afa8001c */ sw $t0,0x1c($sp)
/* 108d0: afad0010 */ sw $t5,0x10($sp)
/* 108d4: e7a40014 */ swc1 $f4,0x14($sp)
/* 108d8: 0c004241 */ jal sndStart
/* 108dc: afb80018 */ sw $t8,0x18($sp)
/* 108e0: afa20034 */ sw $v0,0x34($sp)
/* 108e4: 00002025 */ or $a0,$zero,$zero
/* 108e8: 0c01210c */ jal osSetThreadPri
/* 108ec: 8fa5003c */ lw $a1,0x3c($sp)
/* 108f0: 8fbf0024 */ lw $ra,0x24($sp)
/* 108f4: 8fa20034 */ lw $v0,0x34($sp)
/* 108f8: 27bd0040 */ addiu $sp,$sp,0x40
/* 108fc: 03e00008 */ jr $ra
/* 10900: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel snd00010718
/* 10afc: 27bdffc0 */ addiu $sp,$sp,-64
/* 10b00: afbf0024 */ sw $ra,0x24($sp)
/* 10b04: afa40040 */ sw $a0,0x40($sp)
/* 10b08: afa50044 */ sw $a1,0x44($sp)
/* 10b0c: afa60048 */ sw $a2,0x48($sp)
/* 10b10: afa7004c */ sw $a3,0x4c($sp)
/* 10b14: 0c012724 */ jal osGetThreadPri
/* 10b18: 00002025 */ or $a0,$zero,$zero
/* 10b1c: 2408ffff */ addiu $t0,$zero,-1
/* 10b20: 3c048009 */ lui $a0,0x8009
/* 10b24: afa2003c */ sw $v0,0x3c($sp)
/* 10b28: 24843bd0 */ addiu $a0,$a0,0x3bd0
/* 10b2c: 0c012724 */ jal osGetThreadPri
/* 10b30: afa80038 */ sw $t0,0x38($sp)
/* 10b34: 00002025 */ or $a0,$zero,$zero
/* 10b38: 0c012600 */ jal osSetThreadPri
/* 10b3c: 24450001 */ addiu $a1,$v0,0x1
/* 10b40: 8fae0060 */ lw $t6,0x60($sp)
/* 10b44: 8fa80038 */ lw $t0,0x38($sp)
/* 10b48: 8fa2005c */ lw $v0,0x5c($sp)
/* 10b4c: 15c00004 */ bnez $t6,.NB00010b60
/* 10b50: 8fa90050 */ lw $t1,0x50($sp)
/* 10b54: 2407ffff */ addiu $a3,$zero,-1
/* 10b58: 10470010 */ beq $v0,$a3,.NB00010b9c
/* 10b5c: 00000000 */ sll $zero,$zero,0x0
.NB00010b60:
/* 10b60: 8fa2005c */ lw $v0,0x5c($sp)
/* 10b64: 2407ffff */ addiu $a3,$zero,-1
/* 10b68: 00004025 */ or $t0,$zero,$zero
/* 10b6c: 10470003 */ beq $v0,$a3,.NB00010b7c
/* 10b70: 3c0f8006 */ lui $t7,0x8006
/* 10b74: 10000001 */ beqz $zero,.NB00010b7c
/* 10b78: 00404025 */ or $t0,$v0,$zero
.NB00010b7c:
/* 10b7c: 8deff6ec */ lw $t7,-0x914($t7)
/* 10b80: 8fb8004c */ lw $t8,0x4c($sp)
/* 10b84: 24010003 */ addiu $at,$zero,0x3
/* 10b88: 15e10004 */ bne $t7,$at,.NB00010b9c
/* 10b8c: 33190080 */ andi $t9,$t8,0x80
/* 10b90: 13200002 */ beqz $t9,.NB00010b9c
/* 10b94: 00000000 */ sll $zero,$zero,0x0
/* 10b98: 25080080 */ addiu $t0,$t0,0x80
.NB00010b9c:
/* 10b9c: 51200039 */ beqzl $t1,.NB00010c84
/* 10ba0: 8fad004c */ lw $t5,0x4c($sp)
/* 10ba4: a7a90030 */ sh $t1,0x30($sp)
/* 10ba8: 8faa0030 */ lw $t2,0x30($sp)
/* 10bac: 3c058006 */ lui $a1,0x8006
/* 10bb0: 24a5f6f8 */ addiu $a1,$a1,-2312
/* 10bb4: 000a5fc2 */ srl $t3,$t2,0x1f
/* 10bb8: 11600031 */ beqz $t3,.NB00010c80
/* 10bbc: 24060064 */ addiu $a2,$zero,0x64
/* 10bc0: 01206025 */ or $t4,$t1,$zero
/* 10bc4: 318d7fff */ andi $t5,$t4,0x7fff
/* 10bc8: 000d7080 */ sll $t6,$t5,0x2
/* 10bcc: 00aec021 */ addu $t8,$a1,$t6
/* 10bd0: 87190000 */ lh $t9,0x0($t8)
/* 10bd4: 00ae7821 */ addu $t7,$a1,$t6
/* 10bd8: 95e20002 */ lhu $v0,0x2($t7)
/* 10bdc: 3c0d8006 */ lui $t5,0x8006
/* 10be0: a7b9002c */ sh $t9,0x2c($sp)
/* 10be4: 93aa002c */ lbu $t2,0x2c($sp)
/* 10be8: 25adfdd0 */ addiu $t5,$t5,-560
/* 10bec: 00026140 */ sll $t4,$v0,0x5
/* 10bf0: 018d2021 */ addu $a0,$t4,$t5
/* 10bf4: 8c830010 */ lw $v1,0x10($a0)
/* 10bf8: 314bff7f */ andi $t3,$t2,0xff7f
/* 10bfc: a3ab002c */ sb $t3,0x2c($sp)
/* 10c00: 10c30012 */ beq $a2,$v1,.NB00010c4c
/* 10c04: 87a9002c */ lh $t1,0x2c($sp)
/* 10c08: 8faf0048 */ lw $t7,0x48($sp)
/* 10c0c: 006f0019 */ multu $v1,$t7
/* 10c10: 00007012 */ mflo $t6
/* 10c14: 00000000 */ sll $zero,$zero,0x0
/* 10c18: 00000000 */ sll $zero,$zero,0x0
/* 10c1c: 01c6001a */ div $zero,$t6,$a2
/* 10c20: 0000c012 */ mflo $t8
/* 10c24: afb80048 */ sw $t8,0x48($sp)
/* 10c28: 14c00002 */ bnez $a2,.NB00010c34
/* 10c2c: 00000000 */ sll $zero,$zero,0x0
/* 10c30: 0007000d */ break 0x7
.NB00010c34:
/* 10c34: 2401ffff */ addiu $at,$zero,-1
/* 10c38: 14c10004 */ bne $a2,$at,.NB00010c4c
/* 10c3c: 3c018000 */ lui $at,0x8000
/* 10c40: 15c10002 */ bne $t6,$at,.NB00010c4c
/* 10c44: 00000000 */ sll $zero,$zero,0x0
/* 10c48: 0006000d */ break 0x6
.NB00010c4c:
/* 10c4c: 8c820014 */ lw $v0,0x14($a0)
/* 10c50: 3c19800a */ lui $t9,0x800a
/* 10c54: 10e20002 */ beq $a3,$v0,.NB00010c60
/* 10c58: 00000000 */ sll $zero,$zero,0x0
/* 10c5c: afa2004c */ sw $v0,0x4c($sp)
.NB00010c60:
/* 10c60: 9339eba3 */ lbu $t9,-0x145d($t9)
/* 10c64: 53200007 */ beqzl $t9,.NB00010c84
/* 10c68: 8fad004c */ lw $t5,0x4c($sp)
/* 10c6c: 8c8a001c */ lw $t2,0x1c($a0)
/* 10c70: 314b0010 */ andi $t3,$t2,0x10
/* 10c74: 51600003 */ beqzl $t3,.NB00010c84
/* 10c78: 8fad004c */ lw $t5,0x4c($sp)
/* 10c7c: afa00048 */ sw $zero,0x48($sp)
.NB00010c80:
/* 10c80: 8fad004c */ lw $t5,0x4c($sp)
.NB00010c84:
/* 10c84: c7a40054 */ lwc1 $f4,0x54($sp)
/* 10c88: 8faf0058 */ lw $t7,0x58($sp)
/* 10c8c: 00092c00 */ sll $a1,$t1,0x10
/* 10c90: 00056403 */ sra $t4,$a1,0x10
/* 10c94: 3c04800a */ lui $a0,0x800a
/* 10c98: 8c848180 */ lw $a0,-0x7e80($a0)
/* 10c9c: 01802825 */ or $a1,$t4,$zero
/* 10ca0: 8fa60040 */ lw $a2,0x40($sp)
/* 10ca4: 8fa70048 */ lw $a3,0x48($sp)
/* 10ca8: afa8001c */ sw $t0,0x1c($sp)
/* 10cac: afad0010 */ sw $t5,0x10($sp)
/* 10cb0: e7a40014 */ swc1 $f4,0x14($sp)
/* 10cb4: 0c004338 */ jal sndStart
/* 10cb8: afaf0018 */ sw $t7,0x18($sp)
/* 10cbc: afa20034 */ sw $v0,0x34($sp)
/* 10cc0: 00002025 */ or $a0,$zero,$zero
/* 10cc4: 0c012600 */ jal osSetThreadPri
/* 10cc8: 8fa5003c */ lw $a1,0x3c($sp)
/* 10ccc: 8fbf0024 */ lw $ra,0x24($sp)
/* 10cd0: 8fa20034 */ lw $v0,0x34($sp)
/* 10cd4: 27bd0040 */ addiu $sp,$sp,0x40
/* 10cd8: 03e00008 */ jr $ra
/* 10cdc: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel sndStart
/* 10904: 27bdffb8 */ addiu $sp,$sp,-72
/* 10908: 8fae0064 */ lw $t6,0x64($sp)
/* 1090c: 2402ffff */ addiu $v0,$zero,-1
/* 10910: afbf0024 */ sw $ra,0x24($sp)
/* 10914: afa40048 */ sw $a0,0x48($sp)
/* 10918: afa5004c */ sw $a1,0x4c($sp)
/* 1091c: 11c20003 */ beq $t6,$v0,.L0001092c
/* 10920: afa60050 */ sw $a2,0x50($sp)
/* 10924: 10000002 */ b .L00010930
/* 10928: 93a90067 */ lbu $t1,0x67($sp)
.L0001092c:
/* 1092c: 00004825 */ or $t1,$zero,$zero
.L00010930:
/* 10930: 8fa30060 */ lw $v1,0x60($sp)
/* 10934: 44802000 */ mtc1 $zero,$f4
/* 10938: 24050001 */ addiu $a1,$zero,0x1
/* 1093c: 10620003 */ beq $v1,$v0,.L0001094c
/* 10940: 3c198006 */ lui $t9,%hi(g_SndDisabled)
/* 10944: 10000001 */ b .L0001094c
/* 10948: 306500ff */ andi $a1,$v1,0xff
.L0001094c:
/* 1094c: 8fa30058 */ lw $v1,0x58($sp)
/* 10950: 24080040 */ addiu $t0,$zero,0x40
/* 10954: 240f7fff */ addiu $t7,$zero,0x7fff
/* 10958: 10620003 */ beq $v1,$v0,.L00010968
/* 1095c: 3c013f80 */ lui $at,0x3f80
/* 10960: 10000001 */ b .L00010968
/* 10964: 306800ff */ andi $t0,$v1,0xff
.L00010968:
/* 10968: 50e20004 */ beql $a3,$v0,.L0001097c
/* 1096c: a7af003a */ sh $t7,0x3a($sp)
/* 10970: 10000002 */ b .L0001097c
/* 10974: a7a7003a */ sh $a3,0x3a($sp)
/* 10978: a7af003a */ sh $t7,0x3a($sp)
.L0001097c:
/* 1097c: c7a2005c */ lwc1 $f2,0x5c($sp)
/* 10980: 4602203c */ c.lt.s $f4,$f2
/* 10984: 00000000 */ nop
/* 10988: 45020004 */ bc1fl .L0001099c
/* 1098c: 44810000 */ mtc1 $at,$f0
/* 10990: 10000003 */ b .L000109a0
/* 10994: 46001006 */ mov.s $f0,$f2
/* 10998: 44810000 */ mtc1 $at,$f0
.L0001099c:
/* 1099c: 00000000 */ nop
.L000109a0:
/* 109a0: 8f39dda0 */ lw $t9,%lo(g_SndDisabled)($t9)
/* 109a4: 87b8004e */ lh $t8,0x4e($sp)
/* 109a8: 24010037 */ addiu $at,$zero,0x37
/* 109ac: 13200003 */ beqz $t9,.L000109bc
/* 109b0: a7b80044 */ sh $t8,0x44($sp)
/* 109b4: 10000047 */ b .L00010ad4
/* 109b8: 00001025 */ or $v0,$zero,$zero
.L000109bc:
/* 109bc: 8fab0044 */ lw $t3,0x44($sp)
/* 109c0: 97ad0044 */ lhu $t5,0x44($sp)
/* 109c4: 87a40044 */ lh $a0,0x44($sp)
/* 109c8: 000b67c2 */ srl $t4,$t3,0x1f
/* 109cc: 11800006 */ beqz $t4,.L000109e8
/* 109d0: 31ae7fff */ andi $t6,$t5,0x7fff
/* 109d4: 000e7880 */ sll $t7,$t6,0x2
/* 109d8: 3c048006 */ lui $a0,%hi(g_AudioRussMappings)
/* 109dc: 008f2021 */ addu $a0,$a0,$t7
/* 109e0: 10000001 */ b .L000109e8
/* 109e4: 8484dde4 */ lh $a0,%lo(g_AudioRussMappings)($a0)
.L000109e8:
/* 109e8: 308307ff */ andi $v1,$a0,0x7ff
/* 109ec: 10610003 */ beq $v1,$at,.L000109fc
/* 109f0: 24010009 */ addiu $at,$zero,0x9
/* 109f4: 54610004 */ bnel $v1,$at,.L00010a08
/* 109f8: afa3002c */ sw $v1,0x2c($sp)
.L000109fc:
/* 109fc: 10000035 */ b .L00010ad4
/* 10a00: 00001025 */ or $v0,$zero,$zero
/* 10a04: afa3002c */ sw $v1,0x2c($sp)
.L00010a08:
/* 10a08: a7a40040 */ sh $a0,0x40($sp)
/* 10a0c: a3a5003e */ sb $a1,0x3e($sp)
/* 10a10: a3a8003d */ sb $t0,0x3d($sp)
/* 10a14: a3a9003f */ sb $t1,0x3f($sp)
/* 10a18: 0c003ee8 */ jal sndIsMp3
/* 10a1c: e7a00034 */ swc1 $f0,0x34($sp)
/* 10a20: 8fa3002c */ lw $v1,0x2c($sp)
/* 10a24: 87a40040 */ lh $a0,0x40($sp)
/* 10a28: 93a5003e */ lbu $a1,0x3e($sp)
/* 10a2c: 93a8003d */ lbu $t0,0x3d($sp)
/* 10a30: 93a9003f */ lbu $t1,0x3f($sp)
/* 10a34: 8faa0050 */ lw $t2,0x50($sp)
/* 10a38: 1040000b */ beqz $v0,.L00010a68
/* 10a3c: c7a00034 */ lwc1 $f0,0x34($sp)
/* 10a40: 97a5003a */ lhu $a1,0x3a($sp)
/* 10a44: 01003025 */ or $a2,$t0,$zero
/* 10a48: 0c0042b9 */ jal snd00010ae4
/* 10a4c: 00003825 */ or $a3,$zero,$zero
/* 10a50: 8faa0050 */ lw $t2,0x50($sp)
/* 10a54: 11400002 */ beqz $t2,.L00010a60
/* 10a58: 00000000 */ nop
/* 10a5c: ad400000 */ sw $zero,0x0($t2)
.L00010a60:
/* 10a60: 1000001c */ b .L00010ad4
/* 10a64: 00001025 */ or $v0,$zero,$zero
.L00010a68:
/* 10a68: 3c188009 */ lui $t8,%hi(g_NumSounds)
/* 10a6c: 8f184ea0 */ lw $t8,%lo(g_NumSounds)($t8)
/* 10a70: 3c198009 */ lui $t9,%hi(g_Is4Mb)
/* 10a74: 8fa40048 */ lw $a0,0x48($sp)
/* 10a78: 0078082b */ sltu $at,$v1,$t8
/* 10a7c: 10200015 */ beqz $at,.L00010ad4
/* 10a80: 00001025 */ or $v0,$zero,$zero
/* 10a84: 93390af0 */ lbu $t9,%lo(g_Is4Mb)($t9)
/* 10a88: 24010001 */ addiu $at,$zero,0x1
/* 10a8c: 97a6003a */ lhu $a2,0x3a($sp)
/* 10a90: 17210003 */ bne $t9,$at,.L00010aa0
/* 10a94: 01003825 */ or $a3,$t0,$zero
/* 10a98: 10000002 */ b .L00010aa4
/* 10a9c: 00001025 */ or $v0,$zero,$zero
.L00010aa0:
/* 10aa0: 00a01025 */ or $v0,$a1,$zero
.L00010aa4:
/* 10aa4: 00032c00 */ sll $a1,$v1,0x10
/* 10aa8: 00055c03 */ sra $t3,$a1,0x10
/* 10aac: 30ec007f */ andi $t4,$a3,0x7f
/* 10ab0: 01803825 */ or $a3,$t4,$zero
/* 10ab4: 01602825 */ or $a1,$t3,$zero
/* 10ab8: e7a00010 */ swc1 $f0,0x10($sp)
/* 10abc: afa90014 */ sw $t1,0x14($sp)
/* 10ac0: afa20018 */ sw $v0,0x18($sp)
/* 10ac4: 0c00ce08 */ jal func00033820
/* 10ac8: afaa001c */ sw $t2,0x1c($sp)
/* 10acc: 10000002 */ b .L00010ad8
/* 10ad0: 8fbf0024 */ lw $ra,0x24($sp)
.L00010ad4:
/* 10ad4: 8fbf0024 */ lw $ra,0x24($sp)
.L00010ad8:
/* 10ad8: 27bd0048 */ addiu $sp,$sp,0x48
/* 10adc: 03e00008 */ jr $ra
/* 10ae0: 00000000 */ nop
);
// Mismatch: Likely related to soundnumhack
//struct audiohandle *sndStart(s32 arg0, s16 sound, struct audiohandle **handle, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7)
//{
// union soundnumhack sp44;
// union soundnumhack sp40;
// u8 sp3f;
// u8 sp3e;
// u8 sp3d;
// u8 sp3c;
// s16 sp3a;
// u16 sp38;
// f32 sp34;
//
// // 91c
// sp3f = arg7 != -1 ? arg7 : 0;
//
// // 93c
// sp3e = arg6 != -1 ? arg6 : 1;
//
// // 958
// sp3d = arg4 != -1 ? arg4 : 64;
//
// // 968
// sp3a = arg3 != -1 ? arg3 : 0x7fff;
//
// // 988
// sp34 = arg5 > 0.0f ? arg5 : 1.0f;
//
// sp44.packed = sound & 0xffff;
//
// // 9ac
// if (g_SndDisabled) {
// return NULL;
// }
//
// // 9cc
// sp40.packed = sp44.bits.isruss ? g_AudioRussMappings[sp44.bits.id].soundnum : sp44.packed;
//
// // 9ec
// if (sp40.bits3.id == 0x37 || sp40.bits3.id == 9) {
// return NULL;
// }
//
// // a18
// if (sndIsMp3(sp40.packed)) {
// snd00010ae4(sp40.packed, sp3a, sp3d, 0);
//
// if (handle != NULL) {
// *handle = NULL;
// }
//
// return NULL;
// }
//
// // a68
// if (sp40.bits3.id < g_NumSounds) {
// return func00033820(arg0, sp40.bits3.id, sp3a, sp3d & 0x7f,
// sp34, sp3f, IS4MB() ? 0 : sp3e, handle);
// }
//
// return NULL;
//}
#else
GLOBAL_ASM(
glabel sndStart
/* 10ce0: 27bdffb8 */ addiu $sp,$sp,-72
/* 10ce4: 8fae0064 */ lw $t6,0x64($sp)
/* 10ce8: 2402ffff */ addiu $v0,$zero,-1
/* 10cec: afbf0024 */ sw $ra,0x24($sp)
/* 10cf0: afa40048 */ sw $a0,0x48($sp)
/* 10cf4: afa5004c */ sw $a1,0x4c($sp)
/* 10cf8: 11c20003 */ beq $t6,$v0,.NB00010d08
/* 10cfc: afa60050 */ sw $a2,0x50($sp)
/* 10d00: 10000002 */ beqz $zero,.NB00010d0c
/* 10d04: 93a90067 */ lbu $t1,0x67($sp)
.NB00010d08:
/* 10d08: 00004825 */ or $t1,$zero,$zero
.NB00010d0c:
/* 10d0c: 8fa30060 */ lw $v1,0x60($sp)
/* 10d10: 44802000 */ mtc1 $zero,$f4
/* 10d14: 24050001 */ addiu $a1,$zero,0x1
/* 10d18: 10620003 */ beq $v1,$v0,.NB00010d28
/* 10d1c: 3c198006 */ lui $t9,0x8006
/* 10d20: 10000001 */ beqz $zero,.NB00010d28
/* 10d24: 306500ff */ andi $a1,$v1,0xff
.NB00010d28:
/* 10d28: 8fa30058 */ lw $v1,0x58($sp)
/* 10d2c: 24080040 */ addiu $t0,$zero,0x40
/* 10d30: 240f7fff */ addiu $t7,$zero,0x7fff
/* 10d34: 10620003 */ beq $v1,$v0,.NB00010d44
/* 10d38: 3c013f80 */ lui $at,0x3f80
/* 10d3c: 10000001 */ beqz $zero,.NB00010d44
/* 10d40: 306800ff */ andi $t0,$v1,0xff
.NB00010d44:
/* 10d44: 50e20004 */ beql $a3,$v0,.NB00010d58
/* 10d48: a7af003a */ sh $t7,0x3a($sp)
/* 10d4c: 10000002 */ beqz $zero,.NB00010d58
/* 10d50: a7a7003a */ sh $a3,0x3a($sp)
/* 10d54: a7af003a */ sh $t7,0x3a($sp)
.NB00010d58:
/* 10d58: c7a2005c */ lwc1 $f2,0x5c($sp)
/* 10d5c: 4602203c */ c.lt.s $f4,$f2
/* 10d60: 00000000 */ sll $zero,$zero,0x0
/* 10d64: 45020004 */ bc1fl .NB00010d78
/* 10d68: 44810000 */ mtc1 $at,$f0
/* 10d6c: 10000003 */ beqz $zero,.NB00010d7c
/* 10d70: 46001006 */ mov.s $f0,$f2
/* 10d74: 44810000 */ mtc1 $at,$f0
.NB00010d78:
/* 10d78: 00000000 */ sll $zero,$zero,0x0
.NB00010d7c:
/* 10d7c: 8f39f6c0 */ lw $t9,-0x940($t9)
/* 10d80: 87b8004e */ lh $t8,0x4e($sp)
/* 10d84: 24010037 */ addiu $at,$zero,0x37
/* 10d88: 13200003 */ beqz $t9,.NB00010d98
/* 10d8c: a7b80044 */ sh $t8,0x44($sp)
/* 10d90: 10000040 */ beqz $zero,.NB00010e94
/* 10d94: 00001025 */ or $v0,$zero,$zero
.NB00010d98:
/* 10d98: 8fab0044 */ lw $t3,0x44($sp)
/* 10d9c: 97ad0044 */ lhu $t5,0x44($sp)
/* 10da0: 87a40044 */ lh $a0,0x44($sp)
/* 10da4: 000b67c2 */ srl $t4,$t3,0x1f
/* 10da8: 11800006 */ beqz $t4,.NB00010dc4
/* 10dac: 31ae7fff */ andi $t6,$t5,0x7fff
/* 10db0: 000e7880 */ sll $t7,$t6,0x2
/* 10db4: 3c048006 */ lui $a0,0x8006
/* 10db8: 008f2021 */ addu $a0,$a0,$t7
/* 10dbc: 10000001 */ beqz $zero,.NB00010dc4
/* 10dc0: 8484f6f8 */ lh $a0,-0x908($a0)
.NB00010dc4:
/* 10dc4: 308307ff */ andi $v1,$a0,0x7ff
/* 10dc8: 10610003 */ beq $v1,$at,.NB00010dd8
/* 10dcc: 24010009 */ addiu $at,$zero,0x9
/* 10dd0: 54610004 */ bnel $v1,$at,.NB00010de4
/* 10dd4: afa3002c */ sw $v1,0x2c($sp)
.NB00010dd8:
/* 10dd8: 1000002e */ beqz $zero,.NB00010e94
/* 10ddc: 00001025 */ or $v0,$zero,$zero
/* 10de0: afa3002c */ sw $v1,0x2c($sp)
.NB00010de4:
/* 10de4: a7a40040 */ sh $a0,0x40($sp)
/* 10de8: a3a5003e */ sb $a1,0x3e($sp)
/* 10dec: a3a8003d */ sb $t0,0x3d($sp)
/* 10df0: a3a9003f */ sb $t1,0x3f($sp)
/* 10df4: 0c00400e */ jal sndIsMp3
/* 10df8: e7a00034 */ swc1 $f0,0x34($sp)
/* 10dfc: 8fa3002c */ lw $v1,0x2c($sp)
/* 10e00: 87a40040 */ lh $a0,0x40($sp)
/* 10e04: 93a5003e */ lbu $a1,0x3e($sp)
/* 10e08: 93a8003d */ lbu $t0,0x3d($sp)
/* 10e0c: 93a9003f */ lbu $t1,0x3f($sp)
/* 10e10: 8faa0050 */ lw $t2,0x50($sp)
/* 10e14: 1040000b */ beqz $v0,.NB00010e44
/* 10e18: c7a00034 */ lwc1 $f0,0x34($sp)
/* 10e1c: 97a5003a */ lhu $a1,0x3a($sp)
/* 10e20: 01003025 */ or $a2,$t0,$zero
/* 10e24: 0c0043a9 */ jal snd00010ae4
/* 10e28: 00003825 */ or $a3,$zero,$zero
/* 10e2c: 8faa0050 */ lw $t2,0x50($sp)
/* 10e30: 11400002 */ beqz $t2,.NB00010e3c
/* 10e34: 00000000 */ sll $zero,$zero,0x0
/* 10e38: ad400000 */ sw $zero,0x0($t2)
.NB00010e3c:
/* 10e3c: 10000015 */ beqz $zero,.NB00010e94
/* 10e40: 00001025 */ or $v0,$zero,$zero
.NB00010e44:
/* 10e44: 3c188009 */ lui $t8,0x8009
/* 10e48: 931830e0 */ lbu $t8,0x30e0($t8)
/* 10e4c: 24010001 */ addiu $at,$zero,0x1
/* 10e50: 8fa40048 */ lw $a0,0x48($sp)
/* 10e54: 17010003 */ bne $t8,$at,.NB00010e64
/* 10e58: 97a6003a */ lhu $a2,0x3a($sp)
/* 10e5c: 10000002 */ beqz $zero,.NB00010e68
/* 10e60: 00001025 */ or $v0,$zero,$zero
.NB00010e64:
/* 10e64: 00a01025 */ or $v0,$a1,$zero
.NB00010e68:
/* 10e68: 00032c00 */ sll $a1,$v1,0x10
/* 10e6c: 01003825 */ or $a3,$t0,$zero
/* 10e70: 30eb007f */ andi $t3,$a3,0x7f
/* 10e74: 0005cc03 */ sra $t9,$a1,0x10
/* 10e78: 03202825 */ or $a1,$t9,$zero
/* 10e7c: 01603825 */ or $a3,$t3,$zero
/* 10e80: e7a00010 */ swc1 $f0,0x10($sp)
/* 10e84: afa90014 */ sw $t1,0x14($sp)
/* 10e88: afa20018 */ sw $v0,0x18($sp)
/* 10e8c: 0c00d36c */ jal func00033820
/* 10e90: afaa001c */ sw $t2,0x1c($sp)
.NB00010e94:
/* 10e94: 8fbf0024 */ lw $ra,0x24($sp)
/* 10e98: 27bd0048 */ addiu $sp,$sp,0x48
/* 10e9c: 03e00008 */ jr $ra
/* 10ea0: 00000000 */ sll $zero,$zero,0x0
);
#endif
GLOBAL_ASM(
glabel snd00010ae4
/* 10ae4: 27bdffd8 */ addiu $sp,$sp,-40
/* 10ae8: 3c188006 */ lui $t8,%hi(g_SndDisabled)
/* 10aec: 8f18dda0 */ lw $t8,%lo(g_SndDisabled)($t8)
/* 10af0: 00047400 */ sll $t6,$a0,0x10
/* 10af4: 000e7c03 */ sra $t7,$t6,0x10
/* 10af8: afa40028 */ sw $a0,0x28($sp)
/* 10afc: 01e02025 */ or $a0,$t7,$zero
/* 10b00: afbf001c */ sw $ra,0x1c($sp)
/* 10b04: afb00018 */ sw $s0,0x18($sp)
/* 10b08: afa70034 */ sw $a3,0x34($sp)
/* 10b0c: 170000a3 */ bnez $t8,.L00010d9c
/* 10b10: a7af0024 */ sh $t7,0x24($sp)
/* 10b14: 8fb90024 */ lw $t9,0x24($sp)
/* 10b18: 3c108009 */ lui $s0,%hi(var80094eb0)
/* 10b1c: 31ea7fff */ andi $t2,$t7,0x7fff
/* 10b20: 001947c2 */ srl $t0,$t9,0x1f
/* 10b24: 1100000a */ beqz $t0,.L00010b50
/* 10b28: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0)
/* 10b2c: 000a5880 */ sll $t3,$t2,0x2
/* 10b30: 3c0c8006 */ lui $t4,%hi(g_AudioRussMappings)
/* 10b34: 018b6021 */ addu $t4,$t4,$t3
/* 10b38: 858cdde4 */ lh $t4,%lo(g_AudioRussMappings)($t4)
/* 10b3c: a7ac0020 */ sh $t4,0x20($sp)
/* 10b40: 93ad0020 */ lbu $t5,0x20($sp)
/* 10b44: 31aeff7f */ andi $t6,$t5,0xff7f
/* 10b48: 10000002 */ b .L00010b54
/* 10b4c: a3ae0020 */ sb $t6,0x20($sp)
.L00010b50:
/* 10b50: a7a40020 */ sh $a0,0x20($sp)
.L00010b54:
/* 10b54: 8e0f0004 */ lw $t7,0x4($s0)
/* 10b58: 8fb80020 */ lw $t8,0x20($sp)
/* 10b5c: 24010001 */ addiu $at,$zero,0x1
/* 10b60: 11e00012 */ beqz $t7,.L00010bac
/* 10b64: 0018c8c0 */ sll $t9,$t8,0x3
/* 10b68: 00194782 */ srl $t0,$t9,0x1e
/* 10b6c: 15010007 */ bne $t0,$at,.L00010b8c
/* 10b70: 8faf0020 */ lw $t7,0x20($sp)
/* 10b74: 8e090000 */ lw $t1,0x0($s0)
/* 10b78: 24010001 */ addiu $at,$zero,0x1
/* 10b7c: 000950c0 */ sll $t2,$t1,0x3
/* 10b80: 000a5f82 */ srl $t3,$t2,0x1e
/* 10b84: 51610086 */ beql $t3,$at,.L00010da0
/* 10b88: 8fbf001c */ lw $ra,0x1c($sp)
.L00010b8c:
/* 10b8c: 8e0c0000 */ lw $t4,0x0($s0)
/* 10b90: 000fc0c0 */ sll $t8,$t7,0x3
/* 10b94: 0018cf82 */ srl $t9,$t8,0x1e
/* 10b98: 000c68c0 */ sll $t5,$t4,0x3
/* 10b9c: 000d7782 */ srl $t6,$t5,0x1e
/* 10ba0: 01d9082a */ slt $at,$t6,$t9
/* 10ba4: 5420007e */ bnezl $at,.L00010da0
/* 10ba8: 8fbf001c */ lw $ra,0x1c($sp)
.L00010bac:
/* 10bac: 8fa80024 */ lw $t0,0x24($sp)
/* 10bb0: 97aa0024 */ lhu $t2,0x24($sp)
/* 10bb4: 00084fc2 */ srl $t1,$t0,0x1f
/* 10bb8: 1120002e */ beqz $t1,.L00010c74
/* 10bbc: 314b7fff */ andi $t3,$t2,0x7fff
/* 10bc0: 3c028006 */ lui $v0,%hi(g_AudioConfigs)
/* 10bc4: 2442e4d8 */ addiu $v0,$v0,%lo(g_AudioConfigs)
/* 10bc8: 000b6140 */ sll $t4,$t3,0x5
/* 10bcc: 004c6821 */ addu $t5,$v0,$t4
/* 10bd0: 8daf0010 */ lw $t7,0x10($t5)
/* 10bd4: 97a80024 */ lhu $t0,0x24($sp)
/* 10bd8: 2403ffff */ addiu $v1,$zero,-1
/* 10bdc: 106f000a */ beq $v1,$t7,.L00010c08
/* 10be0: 31097fff */ andi $t1,$t0,0x7fff
/* 10be4: 004cc021 */ addu $t8,$v0,$t4
/* 10be8: 8f050010 */ lw $a1,0x10($t8)
/* 10bec: 24010064 */ addiu $at,$zero,0x64
/* 10bf0: 000573c0 */ sll $t6,$a1,0xf
/* 10bf4: 01c57023 */ subu $t6,$t6,$a1
/* 10bf8: 01c1001a */ div $zero,$t6,$at
/* 10bfc: 00002812 */ mflo $a1
/* 10c00: 00000000 */ nop
/* 10c04: 00000000 */ nop
.L00010c08:
/* 10c08: 00095140 */ sll $t2,$t1,0x5
/* 10c0c: 004a5821 */ addu $t3,$v0,$t2
/* 10c10: 8d6d0014 */ lw $t5,0x14($t3)
/* 10c14: 97ac0024 */ lhu $t4,0x24($sp)
/* 10c18: 3c0b800a */ lui $t3,%hi(g_Vars+0x4e3)
/* 10c1c: 106d0003 */ beq $v1,$t5,.L00010c2c
/* 10c20: 31987fff */ andi $t8,$t4,0x7fff
/* 10c24: 004a7821 */ addu $t7,$v0,$t2
/* 10c28: 8de60014 */ lw $a2,0x14($t7)
.L00010c2c:
/* 10c2c: 00187140 */ sll $t6,$t8,0x5
/* 10c30: 004ec821 */ addu $t9,$v0,$t6
/* 10c34: 8f280014 */ lw $t0,0x14($t9)
/* 10c38: 97ad0024 */ lhu $t5,0x24($sp)
/* 10c3c: 004e4821 */ addu $t1,$v0,$t6
/* 10c40: 10680002 */ beq $v1,$t0,.L00010c4c
/* 10c44: 31aa7fff */ andi $t2,$t5,0x7fff
/* 10c48: 8d260014 */ lw $a2,0x14($t1)
.L00010c4c:
/* 10c4c: 916ba4a3 */ lbu $t3,%lo(g_Vars+0x4e3)($t3)
/* 10c50: 000a7940 */ sll $t7,$t2,0x5
/* 10c54: 004f6021 */ addu $t4,$v0,$t7
/* 10c58: 51600007 */ beqzl $t3,.L00010c78
/* 10c5c: afa5002c */ sw $a1,0x2c($sp)
/* 10c60: 8d98001c */ lw $t8,0x1c($t4)
/* 10c64: 33190010 */ andi $t9,$t8,0x10
/* 10c68: 53200003 */ beqzl $t9,.L00010c78
/* 10c6c: afa5002c */ sw $a1,0x2c($sp)
/* 10c70: 00002825 */ or $a1,$zero,$zero
.L00010c74:
/* 10c74: afa5002c */ sw $a1,0x2c($sp)
.L00010c78:
/* 10c78: 0c003a77 */ jal snd0000e9dc
/* 10c7c: afa60030 */ sw $a2,0x30($sp)
/* 10c80: 8fa8002c */ lw $t0,0x2c($sp)
/* 10c84: 24017fff */ addiu $at,$zero,0x7fff
/* 10c88: 97a40020 */ lhu $a0,0x20($sp)
/* 10c8c: 00480019 */ multu $v0,$t0
/* 10c90: 308b07ff */ andi $t3,$a0,0x7ff
/* 10c94: 01602025 */ or $a0,$t3,$zero
/* 10c98: 00007012 */ mflo $t6
/* 10c9c: 00000000 */ nop
/* 10ca0: 00000000 */ nop
/* 10ca4: 01c1001a */ div $zero,$t6,$at
/* 10ca8: 00004812 */ mflo $t1
/* 10cac: afa9002c */ sw $t1,0x2c($sp)
/* 10cb0: 0fc59b90 */ jal fileGetRomAddress
/* 10cb4: 00000000 */ nop
/* 10cb8: 97a40020 */ lhu $a0,0x20($sp)
/* 10cbc: ae02001c */ sw $v0,0x1c($s0)
/* 10cc0: 308d07ff */ andi $t5,$a0,0x7ff
/* 10cc4: 0fc59b9f */ jal fileGetRomSizeByFileNum
/* 10cc8: 01a02025 */ or $a0,$t5,$zero
/* 10ccc: ae020020 */ sw $v0,0x20($s0)
/* 10cd0: 8fa4002c */ lw $a0,0x2c($sp)
/* 10cd4: 0c00dfc2 */ jal func00037f08
/* 10cd8: 24050001 */ addiu $a1,$zero,0x1
/* 10cdc: 8fa40030 */ lw $a0,0x30($sp)
/* 10ce0: 0c00dfd7 */ jal func00037f5c
/* 10ce4: 24050001 */ addiu $a1,$zero,0x1
/* 10ce8: 8e04001c */ lw $a0,0x1c($s0)
/* 10cec: 0c00df62 */ jal func00037d88
/* 10cf0: 8e050020 */ lw $a1,0x20($s0)
/* 10cf4: 8fa4002c */ lw $a0,0x2c($sp)
/* 10cf8: 0c00dfc2 */ jal func00037f08
/* 10cfc: 24050001 */ addiu $a1,$zero,0x1
/* 10d00: 8fa40030 */ lw $a0,0x30($sp)
/* 10d04: 0c00dfd7 */ jal func00037f5c
/* 10d08: 24050001 */ addiu $a1,$zero,0x1
/* 10d0c: 87aa0020 */ lh $t2,0x20($sp)
/* 10d10: 24030002 */ addiu $v1,$zero,0x2
/* 10d14: 240f0001 */ addiu $t7,$zero,0x1
/* 10d18: a60a0000 */ sh $t2,0x0($s0)
/* 10d1c: 8e020000 */ lw $v0,0x0($s0)
/* 10d20: 240cffff */ addiu $t4,$zero,-1
/* 10d24: ae0f0004 */ sw $t7,0x4($s0)
/* 10d28: 0002c040 */ sll $t8,$v0,0x1
/* 10d2c: 00181782 */ srl $v0,$t8,0x1e
/* 10d30: ae0c000c */ sw $t4,0xc($s0)
/* 10d34: 14620004 */ bne $v1,$v0,.L00010d48
/* 10d38: ae000024 */ sw $zero,0x24($s0)
/* 10d3c: 24080001 */ addiu $t0,$zero,0x1
/* 10d40: 10000005 */ b .L00010d58
/* 10d44: ae080024 */ sw $t0,0x24($s0)
.L00010d48:
/* 10d48: 24010001 */ addiu $at,$zero,0x1
/* 10d4c: 54410003 */ bnel $v0,$at,.L00010d5c
/* 10d50: 8fae0024 */ lw $t6,0x24($sp)
/* 10d54: ae030024 */ sw $v1,0x24($s0)
.L00010d58:
/* 10d58: 8fae0024 */ lw $t6,0x24($sp)
.L00010d5c:
/* 10d5c: 97ab0024 */ lhu $t3,0x24($sp)
/* 10d60: 3c0f8006 */ lui $t7,%hi(g_AudioConfigs+0x1c)
/* 10d64: 000e4fc2 */ srl $t1,$t6,0x1f
/* 10d68: 11200007 */ beqz $t1,.L00010d88
/* 10d6c: 316d7fff */ andi $t5,$t3,0x7fff
/* 10d70: 000d5140 */ sll $t2,$t5,0x5
/* 10d74: 01ea7821 */ addu $t7,$t7,$t2
/* 10d78: 8defe4f4 */ lw $t7,%lo(g_AudioConfigs+0x1c)($t7)
/* 10d7c: 31ec0004 */ andi $t4,$t7,0x4
/* 10d80: 55800005 */ bnezl $t4,.L00010d98
/* 10d84: 24080003 */ addiu $t0,$zero,0x3
.L00010d88:
/* 10d88: 8fb80034 */ lw $t8,0x34($sp)
/* 10d8c: 33190001 */ andi $t9,$t8,0x1
/* 10d90: 13200002 */ beqz $t9,.L00010d9c
/* 10d94: 24080003 */ addiu $t0,$zero,0x3
.L00010d98:
/* 10d98: ae080024 */ sw $t0,0x24($s0)
.L00010d9c:
/* 10d9c: 8fbf001c */ lw $ra,0x1c($sp)
.L00010da0:
/* 10da0: 8fb00018 */ lw $s0,0x18($sp)
/* 10da4: 27bd0028 */ addiu $sp,$sp,0x28
/* 10da8: 03e00008 */ jr $ra
/* 10dac: 00000000 */ nop
);
void sndPlayNosedive(s32 seconds)
{
g_SndNosediveDuration240 = seconds * PALDOWN(240);
g_SndNosediveAge240 = 0;
g_SndNosediveVolume = 0;
g_SndNosediveHandle = NULL;
}
void sndStopNosedive(void)
{
if (g_SndNosediveAge240 != -1) {
g_SndNosediveAge240 = g_SndNosediveDuration240 + 1;
}
}
void sndTickNosedive(void)
{
f32 percentage;
if (g_SndNosediveAge240 != -1) {
g_SndNosediveAge240 += g_Vars.lvupdate240;
percentage = (f32)g_SndNosediveAge240 / (f32)g_SndNosediveDuration240;
if (percentage < 1.0f) { // less than 100% complete
percentage += 0.44f;
if (lvIsPaused()) {
// Fade out volume during pause instead of stopping abruptly
if (g_SndNosediveVolume > 0) {
g_SndNosediveVolume -= g_Vars.diffframe240 * PALUP(80);
if (g_SndNosediveVolume < 0) {
g_SndNosediveVolume = 0;
}
}
if (g_SndNosediveVolume) {
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, percentage, 0, -1, 1);
} else if (g_SndNosediveHandle != NULL) {
audioStop(g_SndNosediveHandle);
g_SndNosediveHandle = NULL;
}
} else {
// Not paused
if (g_SndNosediveHandle == NULL) {
sndStart(var80095200, SFX_NOSEDIVE, &g_SndNosediveHandle, -1, -1, -1, -1, -1);
}
// Fade in over about 2 seconds
if (g_SndNosediveVolume < 20000) {
g_SndNosediveVolume += g_Vars.diffframe240 * PALUP(40);
if (g_SndNosediveVolume > 20000) {
g_SndNosediveVolume = 20000;
}
}
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, percentage, 0, -1, 1);
}
} else {
// Reached the configured fade out point
if (g_SndNosediveVolume > 0) {
g_SndNosediveVolume -= g_Vars.diffframe240 * PALUP(80);
if (g_SndNosediveVolume < 0) {
g_SndNosediveVolume = 0;
}
}
if (g_SndNosediveVolume) {
sndAdjust(&g_SndNosediveHandle, 0, g_SndNosediveVolume, 64, -1, -1, 0, -1, 1);
} else if (g_SndNosediveHandle != NULL) {
audioStop(g_SndNosediveHandle);
g_SndNosediveHandle = NULL;
}
}
}
}
void sndPlayUfo(s32 seconds)
{
g_SndUfoDuration240 = seconds * PALDOWN(240);
g_SndUfoAge240 = 0;
g_SndUfoVolume = 0;
g_SndUfoHandle = NULL;
}
void sndStopUfo(void)
{
if (g_SndUfoAge240 != -1) {
g_SndUfoAge240 = g_SndUfoDuration240 + 1;
}
}
void sndTickUfo(void)
{
f32 percentage;
if (g_SndUfoAge240 != -1) {
g_SndUfoAge240 += g_Vars.lvupdate240;
percentage = (f32)g_SndUfoAge240 / (f32)g_SndUfoDuration240;
if (percentage < 1.0f) { // less than 100% complete
if (percentage < 0.65f) {
percentage = percentage / 0.65f * 0.3f + 0.7f;
} else {
percentage = (percentage - 0.65f) / 0.35f * 0.8f + 1.0f;
}
if (lvIsPaused()) {
// Fade out volume during pause instead of stopping abruptly
if (g_SndUfoVolume > 0) {
g_SndUfoVolume -= g_Vars.diffframe240 * PALUP(120);
if (g_SndUfoVolume < 0) {
g_SndUfoVolume = 0;
}
}
if (g_SndUfoVolume) {
sndAdjust(&g_SndUfoHandle, 0, g_SndUfoVolume, 64, -1, percentage, 0, -1, 1);
} else if (g_SndUfoHandle != NULL) {
audioStop(g_SndUfoHandle);
g_SndUfoHandle = NULL;
}
} else {
// Not paused
if (g_SndUfoHandle == NULL) {
sndStart(var80095200, SFX_UFOHUM, &g_SndUfoHandle, -1, -1, -1, -1, -1);
}
// Fade in over about 2.4 seconds
if (g_SndUfoVolume < 32767) {
g_SndUfoVolume += g_Vars.diffframe240 * PALUP(40);
if (g_SndUfoVolume > 32767) {
g_SndUfoVolume = 32767;
}
}
sndAdjust(&g_SndUfoHandle, 0, g_SndUfoVolume, 64, -1, percentage, 0, -1, 1);
}
} else {
// Reached the configured fade out point
if (g_SndUfoVolume > 0) {
g_SndUfoVolume -= g_Vars.diffframe240 * PALUP(120);
if (g_SndUfoVolume < 0) {
g_SndUfoVolume = 0;
}
}
if (g_SndUfoVolume) {
sndAdjust(&g_SndUfoHandle, 0, g_SndUfoVolume, 64, -1, -1, 0, -1, 1);
} else if (g_SndUfoHandle != NULL) {
audioStop(g_SndUfoHandle);
g_SndUfoHandle = NULL;
}
}
}
}