From d4a22bec792d0ded9e5c0bed7117831983a11b5a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 20 Nov 2021 21:22:54 +1000 Subject: [PATCH] Rename sndStartMp3 to sndStartMp3ByFilenum and decompile new sndStartMp3 --- src/game/file.c | 4 +- src/game/game_092610.c | 26 +- src/game/lv.c | 4 +- src/include/game/file.h | 2 +- src/include/lib/mp3.h | 6 +- src/include/lib/snd.h | 8 +- src/include/sfx.h | 1148 ++++++++++++++++++----------------- src/include/types.h | 22 +- src/lib/mp3.c | 28 +- src/lib/naudio/n_csplayer.c | 4 +- src/lib/snd.c | 408 +++++-------- 11 files changed, 773 insertions(+), 887 deletions(-) diff --git a/src/game/file.c b/src/game/file.c index 76c9e3c21..322240aed 100644 --- a/src/game/file.c +++ b/src/game/file.c @@ -4060,9 +4060,9 @@ void *filetable[] = { /*0x07de*/ &_filenamesSegmentRomStart, }; -void *fileGetRomAddress(s32 filenum) +u32 fileGetRomAddress(s32 filenum) { - return filetable[filenum]; + return (u32)filetable[filenum]; } u32 fileGetRomSizeByTableAddress(u32 *filetableaddr) diff --git a/src/game/game_092610.c b/src/game/game_092610.c index 80d509fcc..3c48da4a6 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -467,7 +467,7 @@ glabel var7f1ab740 /* f092b88: 306e0010 */ andi $t6,$v1,0x10 /* f092b8c: 51c001e2 */ beqzl $t6,.PF0f093318 /* f092b90: 860e0028 */ lh $t6,0x28($s0) -/* f092b94: 0c0039cc */ jal snd0000e9d0 +/* f092b94: 0c0039cc */ jal sndIsPlayingMp3 /* f092b98: 00000000 */ nop /* f092b9c: 504001de */ beqzl $v0,.PF0f093318 /* f092ba0: 860e0028 */ lh $t6,0x28($s0) @@ -949,7 +949,7 @@ glabel var7f1ab740 /* f093238: 10000001 */ b .PF0f093240 /* f09323c: 24070001 */ li $a3,0x1 .PF0f093240: -/* f093240: 0c004218 */ jal snd00010ae4 +/* f093240: 0c004218 */ jal sndStartMp3 /* f093244: 86040026 */ lh $a0,0x26($s0) /* f093248: 10000021 */ b .PF0f0932d0 /* f09324c: 96030030 */ lhu $v1,0x30($s0) @@ -1015,7 +1015,7 @@ glabel var7f1ab740 /* f093328: 306f0010 */ andi $t7,$v1,0x10 /* f09332c: 51e00015 */ beqzl $t7,.PF0f093384 /* f093330: 8e0b0000 */ lw $t3,0x0($s0) -/* f093334: 0c0039cc */ jal snd0000e9d0 +/* f093334: 0c0039cc */ jal sndIsPlayingMp3 /* f093338: 00000000 */ nop /* f09333c: 5440000e */ bnezl $v0,.PF0f093378 /* f093340: 240a0001 */ li $t2,0x1 @@ -1118,7 +1118,7 @@ glabel var7f1ab740 /* f092c88: 306e0010 */ andi $t6,$v1,0x10 /* f092c8c: 51c001e6 */ beqzl $t6,.L0f093428 /* f092c90: 860f0028 */ lh $t7,0x28($s0) -/* f092c94: 0c003a74 */ jal snd0000e9d0 +/* f092c94: 0c003a74 */ jal sndIsPlayingMp3 /* f092c98: 00000000 */ nop /* f092c9c: 504001e2 */ beqzl $v0,.L0f093428 /* f092ca0: 860f0028 */ lh $t7,0x28($s0) @@ -1603,7 +1603,7 @@ glabel var7f1ab740 /* f093348: 10000001 */ b .L0f093350 /* f09334c: 24070001 */ addiu $a3,$zero,0x1 .L0f093350: -/* f093350: 0c0042b9 */ jal snd00010ae4 +/* f093350: 0c0042b9 */ jal sndStartMp3 /* f093354: 86040026 */ lh $a0,0x26($s0) /* f093358: 10000021 */ b .L0f0933e0 /* f09335c: 96030030 */ lhu $v1,0x30($s0) @@ -1669,7 +1669,7 @@ glabel var7f1ab740 /* f093438: 30780010 */ andi $t8,$v1,0x10 /* f09343c: 53000015 */ beqzl $t8,.L0f093494 /* f093440: 8e0c0000 */ lw $t4,0x0($s0) -/* f093444: 0c003a74 */ jal snd0000e9d0 +/* f093444: 0c003a74 */ jal sndIsPlayingMp3 /* f093448: 00000000 */ nop /* f09344c: 5440000e */ bnezl $v0,.L0f093488 /* f093450: 240b0001 */ addiu $t3,$zero,0x1 @@ -1763,7 +1763,7 @@ glabel var7f1ab740 /* f0912b4: 306b0010 */ andi $t3,$v1,0x10 /* f0912b8: 516001af */ beqzl $t3,.NB0f091978 /* f0912bc: 96030030 */ lhu $v1,0x30($s0) -/* f0912c0: 0c003c6c */ jal snd0000e9d0 +/* f0912c0: 0c003c6c */ jal sndIsPlayingMp3 /* f0912c4: 00000000 */ sll $zero,$zero,0x0 /* f0912c8: 504001ab */ beqzl $v0,.NB0f091978 /* f0912cc: 96030030 */ lhu $v1,0x30($s0) @@ -2208,7 +2208,7 @@ glabel var7f1ab740 /* f0918e8: 10000001 */ beqz $zero,.NB0f0918f0 /* f0918ec: 24070001 */ addiu $a3,$zero,0x1 .NB0f0918f0: -/* f0918f0: 0c0043a9 */ jal snd00010ae4 +/* f0918f0: 0c0043a9 */ jal sndStartMp3 /* f0918f4: 86040026 */ lh $a0,0x26($s0) /* f0918f8: 1000000d */ beqz $zero,.NB0f091930 /* f0918fc: 960f0030 */ lhu $t7,0x30($s0) @@ -2249,7 +2249,7 @@ glabel var7f1ab740 /* f091978: 306c0010 */ andi $t4,$v1,0x10 /* f09197c: 51800014 */ beqzl $t4,.NB0f0919d0 /* f091980: 8e0f0000 */ lw $t7,0x0($s0) -/* f091984: 0c003c6c */ jal snd0000e9d0 +/* f091984: 0c003c6c */ jal sndIsPlayingMp3 /* f091988: 00000000 */ sll $zero,$zero,0x0 /* f09198c: 54400018 */ bnezl $v0,.NB0f0919f0 /* f091990: 24190001 */ addiu $t9,$zero,0x1 @@ -3549,8 +3549,8 @@ glabel var7f1a5a9cnb // channel->unk18 = 0; // channel->uuid = g_AudioPrevUuid; // -// if (spac.bits2.isruss) { -// s32 id = spac.bits.id; +// if (spac.bits2.hasconfig) { +// s32 id = spac.confignum; // s32 confignum = g_AudioRussMappings[id].audioconfig_index; // s32 newid = g_AudioRussMappings[id].soundnum; // @@ -3603,7 +3603,7 @@ glabel var7f1a5a9cnb // channel->flags |= AUDIOCHANNELFLAG_0040; // // spac.packed = newid; -// spac.bits2.isruss = false; +// spac.bits2.hasconfig = false; // soundnum = spac.packed; // } // @@ -3612,7 +3612,7 @@ glabel var7f1a5a9cnb // } // // channel->soundnum26 = spac.packed; -// channel->unk2c = spac.bits3.id; +// channel->unk2c = spac.id; // // if (sndIsFiltered(channel->unk2c)) { // channel->flags2 |= AUDIOCHANNELFLAG2_OFFENSIVE; diff --git a/src/game/lv.c b/src/game/lv.c index a34a4e012..277b74327 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -506,7 +506,7 @@ void lvInit(s32 stagenum) } pak0f11a2e4(); - snd0000eadc(); + sndResetCurMp3(); if (stagenum == STAGE_BOOTPAKMENU) { pakPushPakMenuDialog(); @@ -1029,7 +1029,7 @@ glabel var7f1b1f44nc .NB0f162da0: /* f162da0: 0fc4506d */ jal pak0f11a2e4 /* f162da4: 00000000 */ sll $zero,$zero,0x0 -/* f162da8: 0c003ca1 */ jal snd0000eadc +/* f162da8: 0c003ca1 */ jal sndResetCurMp3 /* f162dac: 00000000 */ sll $zero,$zero,0x0 /* f162db0: 8fab0020 */ lw $t3,0x20($sp) /* f162db4: 2401005b */ addiu $at,$zero,0x5b diff --git a/src/include/game/file.h b/src/include/game/file.h index 7d09f6861..6c443e59e 100644 --- a/src/include/game/file.h +++ b/src/include/game/file.h @@ -4,7 +4,7 @@ #include "data.h" #include "types.h" -void *fileGetRomAddress(s32 filenum); +u32 fileGetRomAddress(s32 filenum); u32 fileGetRomSizeByTableAddress(u32 *filetableaddr); s32 fileGetRomSizeByFileNum(s32 filenum); u32 func0f166ea8(u32 *filetableaddr); diff --git a/src/include/lib/mp3.h b/src/include/lib/mp3.h index b246b3865..6369dd7e8 100644 --- a/src/include/lib/mp3.h +++ b/src/include/lib/mp3.h @@ -5,16 +5,16 @@ #include "types.h" void mp3Init(ALHeap *heap); -void func00037d88(s32 arg0, s32 arg1); +void mp3PlayFile(s32 romaddr, s32 filesize); void func00037e1c(void); void func00037e38(void); void func00037e68(void); s32 func00037ea4(void); -void func00037f08(s32 arg0, s32 arg1); +void func00037f08(s32 arg0, bool arg1); void func00037f5c(s32 arg0, bool arg1); s32 func00037fc0(s32 arg0, Acmd **cmd); void func00038924(struct mp3vars *vars); void func00038b90(void *fn); -void func00038cac(void); +void mp3Dma(void); #endif diff --git a/src/include/lib/snd.h b/src/include/lib/snd.h index 4a8c46f1a..bedd70b80 100644 --- a/src/include/lib/snd.h +++ b/src/include/lib/snd.h @@ -5,11 +5,11 @@ #include "types.h" bool sndIsFiltered(s32 audioid); -u32 snd0000e9d0(void); +bool sndIsPlayingMp3(void); u16 snd0000e9dc(void); void sndSetSfxVolume(u16 volume); void snd0000ea80(u16 volume); -void snd0000eadc(void); +void sndResetCurMp3(void); void sndLoadSfxCtl(void); void snd0000ed14(void); u32 snd0000ed68(void); @@ -31,11 +31,11 @@ void snd0000fe20(void); void snd0000fe50(void); void sndTick(void); bool sndIsDisabled(void); -void sndStartMp3(u32 filenum); +void sndStartMp3ByFilenum(u32 filenum); void sndAdjust(struct sndstate **handle, s32 arg1, s32 arg2, s32 pan, s32 soundnum, f32 arg5, s32 arg6, s32 arg7, s32 arg8); struct sndstate *snd00010718(struct sndstate **handle, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8); struct sndstate *sndStart(s32 arg0, s16 sound, struct sndstate **handle, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7); -void snd00010ae4(s32 soundnum, s32 arg1, s32 arg2, s32 arg3); +void sndStartMp3(s16 soundnum, s32 arg1, s32 arg2, s32 arg3); void sndPlayNosedive(s32 seconds); void sndStopNosedive(void); void sndTickNosedive(void); diff --git a/src/include/sfx.h b/src/include/sfx.h index 35db1cf6b..00e4b6750 100644 --- a/src/include/sfx.h +++ b/src/include/sfx.h @@ -1,3 +1,32 @@ +/** + * Sound effect references are implemented using a 16-bit bitfield. + * + * The most significant bit determines whether this sfx reference is mapped in + * a config table in snd.c. If it is, the structure of the bitfield is: + * + * 1iiiiiii iiiiiiii + * + * ...where 1 means it's mapped, and i is the index into the config table. + * + * For a sound effect without a config mapping the structure is: + * + * 0uummsss ssssssss + * + * Where: + * - 0 means it's not mapped. + * - u is unknown. + * - m means it's an MP3 file, and the value of m determines + * its priority (lower value has higher priority). + * - s is the sound effect index if it's not an MP3 file, + * or the file number if it is an MP3 file. + */ + +/** + * There are 1545 (0x609) sound effects in the bank. + * + * This list will eventually be a list of just those numbers, + * but for now contains values with upper bits set. + */ enum sfx { SFX_0000, SFX_LAUNCH_ROCKET, @@ -2006,572 +2035,569 @@ enum sfx { SFX_81BB }; -/** - * MP3s can be specified as an SFX ID. MP3s are specified by bitwise or'ing the - * ID with 0x1000 or 0x0800. In these cases the lower 3 nibbles are the file - * number, which should be an MP3 file (FILE_A*M constant). - * - * There are other bits that can be set too. Their purpose is unknown. - */ -#define MP3_0271 (FILE_ARECEP01M | 0x1000) -#define MP3_0272 (FILE_ARECEP02M | 0x1000) -#define MP3_0273 (FILE_ARECEP03M | 0x1000) -#define MP3_0274 (FILE_ARECEP04M | 0x1000) -#define MP3_0275 (FILE_ARECEP05M | 0x1000) -#define MP3_0276 (FILE_ARECEP06M | 0x1000) -#define MP3_0277 (FILE_ARLGUARD1M | 0x1000) -#define MP3_0278 (FILE_ARLTECH01M | 0x1000) -#define MP3_0279 (FILE_ARLTECH02M | 0x1000) -#define MP3_027A (FILE_ARLTECH03M | 0x1000) -#define MP3_027B (FILE_ARLTECH04M | 0x1000) -#define MP3_027C (FILE_ARLTECH05M | 0x1000) -#define MP3_027D (FILE_ARLTECH06M | 0x1000) -#define MP3_SCI_HAVENT_SEEN_YOU (FILE_ASCIE2AM | 0x1000) -#define MP3_027F (FILE_ASCIE2BM | 0x1000) -#define MP3_SCI_PLEASE_DONT_HURT_ME (FILE_ASCIE2CM | 0x1000) -#define MP3_SCI_OFF_ALREADY (FILE_ASCIE2DM | 0x1000) -#define MP3_SCI_WHATS_HAPPENED_TO_THE_TERMINAL (FILE_ASCIE2EM | 0x1000) -#define MP3_SCI_EXPERIMENT_IS_DOWN (FILE_ASCIE2FM | 0x1000) -#define MP3_SCI_IM_CALLING_SECURITY (FILE_ASCIE2GM | 0x1000) -#define MP3_0285 (FILE_ASCIE3AM | 0x1000) -#define MP3_SCI_LEAVE_THIS_AREA (FILE_ASCIE3BM | 0x1000) -#define MP3_SCI_ALLOW_ME_TO_ASSIST_YOU (FILE_ASCIE3CM | 0x1000) -#define MP3_SCI_HAVE_YOU_BEEN_TAMPERING (FILE_ASCIE3DM | 0x1000) -#define MP3_SCI_YOU_VANDAL (FILE_ASCIE3EM | 0x1000) -#define MP3_SCI_ACCIDENTS_WILL_HAPPEN (FILE_ASCIE3GM | 0x1000) -#define MP3_SCI_SOMEONES_BROKEN_MY_EQUIPMENT (FILE_ASCIEN10AM | 0x1000) -#define MP3_028C (FILE_ASCIEN2_AM | 0x1000) -#define MP3_SCI_MY_EXPERIMENTS (FILE_ASCIEN3_AM | 0x1000) -#define MP3_SCI_ILL_SHUT_IT_DOWN (FILE_ASCIEN4_AM | 0x1000) -#define MP3_028F (FILE_ASCIEN5_AM | 0x1000) -#define MP3_SCI_WHAT_ARE_YOU_DOING (FILE_ASCIEN6_AM | 0x1000) -#define MP3_SCI_SECURITY (FILE_ASCIEN7_AM | 0x1000) -#define MP3_SCI_HOW_DID_THAT_HAPPEN (FILE_ASCIEN9_AM | 0x1000) -#define MP3_0293 (FILE_AVILGRIMM | 0x1000) -#define MP3_K7_IM_NOT_SURE (FILE_AWEPGD01M | 0x1000) -#define MP3_K7_ONE_MORE_TIME (FILE_AWEPGD02M | 0x1000) -#define MP3_K7_I_DUNNO (FILE_AWEPGD03M | 0x1000) -#define MP3_SCI_AND_AGAIN (FILE_AWEPSC01M | 0x1000) -#define MP3_SCI_TRY_IT_NOW (FILE_AWEPSC02M | 0x1000) -#define MP3_0299 (FILE_AWEPSC03M | 0x1000) -#define MP3_029A (FILE_AA51ELV01M | 0x0800 | 0x1000) -#define MP3_029B (FILE_AA51ELV02M | 0x0800 | 0x1000) -#define MP3_029C (FILE_AA51ELV03M | 0x0800 | 0x1000) -#define MP3_029D (FILE_AA51GRD01M | 0x1000) -#define MP3_029E (FILE_AA51GRD02M | 0x1000) -#define MP3_029F (FILE_AA51GRD03M | 0x1000) -#define MP3_M0_WHERE_DID_YOU_GET_THAT (FILE_AA51GRD04M | 0x0800 | 0x1000) -#define MP3_M0_SHOULD_YOU_HAVE_THAT (FILE_AA51GRD05M | 0x0800 | 0x1000) -#define MP3_M0_WHAT_ARE_YOU_DOING (FILE_AA51GRD06M | 0x0800 | 0x1000) -#define MP3_M0_DONT_POINT_THAT_AT_ME (FILE_AA51GRD07M | 0x0800 | 0x1000) -#define MP3_M0_WATCH_WHERE_YOURE_POINTING (FILE_AA51GRD08M | 0x0800 | 0x1000) -#define MP3_M0_IMPOSTER (FILE_AA51GRD09M | 0x0800 | 0x1000) -#define MP3_M0_ITS_A_SPY (FILE_AA51GRD10M | 0x0800 | 0x1000) -#define MP3_02A7 (FILE_AA51JO1M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02A8 (FILE_AA51JO2M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02A9 (FILE_AA51JO3M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02AA (FILE_AA51JO4M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02AB (FILE_AA51JO5M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02AC (FILE_AA51JO6M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02AD (FILE_AA51JON01M | 0x1000) -#define MP3_02AE (FILE_AA51JON02M | 0x1000) -#define MP3_02AF (FILE_AA51JON03M | 0x1000) -#define MP3_02B0 (FILE_AA51JON04M | 0x1000) -#define MP3_02B1 (FILE_AA51JON05M | 0x1000) -#define MP3_02B2 (FILE_AA51JON06M | 0x1000) -#define MP3_02B3 (FILE_AA51JON07M | 0x1000) -#define MP3_02B4 (FILE_AA51JON08M | 0x1000) -#define MP3_02B5 (FILE_AA51JON09M | 0x1000) -#define MP3_02B6 (FILE_AA51JON10M | 0x1000) -#define MP3_02B7 (FILE_AA51JON11M | 0x1000) -#define MP3_02B8 (FILE_AA51JON12M | 0x1000) -#define MP3_02B9 (FILE_AA51JON14M | 0x1000) -#define MP3_02BA (FILE_AA51JON15M | 0x1000) -#define MP3_02BB (FILE_AA51SCI1M | 0x0800 | 0x1000) -#define MP3_02BC (FILE_AAF1JO01M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02BD (FILE_AAF1JO02M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02BE (FILE_AAF1JO03M | 0x1000 | 0x2000 | 0x4000) -#define MP3_02BF (FILE_AAF1PR01M | 0x0800 | 0x1000) -#define MP3_PRES_STOP_SHOOTING (FILE_AAF1PR02M | 0x0800 | 0x1000) -#define MP3_PRES_YOU_SURE_THIS_IS_THE_WAY (FILE_AAF1PR03M | 0x0800 | 0x1000) -#define MP3_02C2 (FILE_AAF1PR04M | 0x0800 | 0x1000) -#define MP3_PRES_WHY_ARE_THEY_SHOOTING (FILE_AAF1PR05M | 0x0800 | 0x1000) -#define MP3_02C4 (FILE_AAF1PR06M | 0x1000) -#define MP3_02C5 (FILE_AAF1PR07M | 0x1000) -#define MP3_02C6 (FILE_AAF1PR08M | 0x1000) -#define MP3_02C7 (FILE_AAF1PR09M | 0x1000) -#define MP3_02C8 (FILE_AAF1PR10M | 0x1000) -#define MP3_02C9 (FILE_AAF1TR01M | 0x1000) -#define MP3_02CA (FILE_AAF1TR02M | 0x1000) -#define MP3_02CB (FILE_AAF1TR03M | 0x1000) -#define MP3_02CC (FILE_AAIRBGD01M | 0x1000) -#define MP3_02CD (FILE_AAIRBGD02M | 0x1000) -#define MP3_M1_WHERE_ARE_YOU_TAKING (FILE_AAIRBGD03M | 0x0800 | 0x1000) -#define MP3_M1_GET_THAT_FIREARM_APPROVED (FILE_AAIRBGD04M | 0x0800 | 0x1000) -#define MP3_M1_WATCH_WHAT_YOURE_DOING (FILE_AAIRBGD05M | 0x0800 | 0x1000) -#define MP3_M1_BE_CAREFUL (FILE_AAIRBGD06M | 0x0800 | 0x1000) -#define MP3_M1_STOP_RIGHT_THERE (FILE_AAIRBGD07M | 0x0800 | 0x1000) -#define MP3_M1_DROP_THE_GUN (FILE_AAIRBGD08M | 0x0800 | 0x1000) -#define MP3_02D4 (FILE_AAIRBGD09M | 0x1000) -#define MP3_02D5 (FILE_AAIRBGD10M | 0x1000) -#define MP3_M2_DO_YOU_HAVE_PERMISSION_FOR_THAT (FILE_AAIRBGD11M | 0x0800 | 0x1000) -#define MP3_M2_WHAT_ARE_YOU_DOING (FILE_AAIRBGD12M | 0x0800 | 0x1000) -#define MP3_M2_HEY_THATS_DANGEROUS (FILE_AAIRBGD13M | 0x0800 | 0x1000) -#define MP3_M2_WATCH_IT_THAT_THING_COULD_GO_OFF (FILE_AAIRBGD14M | 0x0800 | 0x1000) -#define MP3_M2_PUT_YOUR_HANDS_UP (FILE_AAIRBGD15M | 0x0800 | 0x1000) -#define MP3_M2_ITS_A_TERRORIST (FILE_AAIRBGD16M | 0x0800 | 0x1000) -#define MP3_02DC (FILE_AAIRSTW01M | 0x0800 | 0x1000) -#define MP3_02DD (FILE_AAIRSTW02M | 0x0800 | 0x1000) -#define MP3_02DE (FILE_AAIRSTW03M | 0x0800 | 0x1000) -#define MP3_02DF (FILE_AASSAEL01M | 0x1000) -#define MP3_02E0 (FILE_AASSAEL02M | 0x1000) -#define MP3_02E1 (FILE_AASSAEL03M | 0x1000) -#define MP3_02E2 (FILE_AASSAEL04M | 0x1000) -#define MP3_02E3 (FILE_AASSAEL05M | 0x1000) -#define MP3_02E4 (FILE_AASSAEL06M | 0x1000) -#define MP3_02E5 (FILE_ABSEWRK01M | 0x0800 | 0x1000) -#define MP3_02E6 (FILE_ABSEWRK02M | 0x0800 | 0x1000) -#define MP3_02E7 (FILE_ABSEWRK03M | 0x0800 | 0x1000) -#define MP3_02E8 (FILE_ABSEWRK04M | 0x0800 | 0x1000) -#define MP3_02E9 (FILE_ABSEWRK05M | 0x0800 | 0x1000) -#define MP3_02EA (FILE_ACETAEL01M | 0x1000) -#define MP3_ROBOT_STOP_WHERE_YOU_ARE (FILE_ACHDROID1M | 0x0800 | 0x1000) -#define MP3_ROBOT_ALERT_UNDER_ATTACK (FILE_ACHDROID2M | 0x0800 | 0x1000) -#define MP3_02ED (FILE_ACSEC01M | 0x0800 | 0x1000) -#define MP3_SEC_PLEASE_DONT_KILL_ME (FILE_ACSEC02M | 0x0800 | 0x1000) -#define MP3_SEC_DONT_SHOOT (FILE_ACSEC03M | 0x0800 | 0x1000) -#define MP3_02F0 (FILE_ACSTAN1M | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_02F1 (FILE_ACSTAN2M | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_CASS_HOW_DARE_YOU_DISTURB_ME (FILE_ADEVR01M | 0x0800) -#define MP3_CASS_YOU_WILL_REGRET (FILE_ADEVR02M | 0x0800) +#define MP3PRIORITY_LOW 0x1800 +#define MP3PRIORITY_MED 0x1000 +#define MP3PRIORITY_HIGH 0x0800 + +#define MP3_0271 (FILE_ARECEP01M | MP3PRIORITY_MED) +#define MP3_0272 (FILE_ARECEP02M | MP3PRIORITY_MED) +#define MP3_0273 (FILE_ARECEP03M | MP3PRIORITY_MED) +#define MP3_0274 (FILE_ARECEP04M | MP3PRIORITY_MED) +#define MP3_0275 (FILE_ARECEP05M | MP3PRIORITY_MED) +#define MP3_0276 (FILE_ARECEP06M | MP3PRIORITY_MED) +#define MP3_0277 (FILE_ARLGUARD1M | MP3PRIORITY_MED) +#define MP3_0278 (FILE_ARLTECH01M | MP3PRIORITY_MED) +#define MP3_0279 (FILE_ARLTECH02M | MP3PRIORITY_MED) +#define MP3_027A (FILE_ARLTECH03M | MP3PRIORITY_MED) +#define MP3_027B (FILE_ARLTECH04M | MP3PRIORITY_MED) +#define MP3_027C (FILE_ARLTECH05M | MP3PRIORITY_MED) +#define MP3_027D (FILE_ARLTECH06M | MP3PRIORITY_MED) +#define MP3_SCI_HAVENT_SEEN_YOU (FILE_ASCIE2AM | MP3PRIORITY_MED) +#define MP3_027F (FILE_ASCIE2BM | MP3PRIORITY_MED) +#define MP3_SCI_PLEASE_DONT_HURT_ME (FILE_ASCIE2CM | MP3PRIORITY_MED) +#define MP3_SCI_OFF_ALREADY (FILE_ASCIE2DM | MP3PRIORITY_MED) +#define MP3_SCI_WHATS_HAPPENED_TO_THE_TERMINAL (FILE_ASCIE2EM | MP3PRIORITY_MED) +#define MP3_SCI_EXPERIMENT_IS_DOWN (FILE_ASCIE2FM | MP3PRIORITY_MED) +#define MP3_SCI_IM_CALLING_SECURITY (FILE_ASCIE2GM | MP3PRIORITY_MED) +#define MP3_0285 (FILE_ASCIE3AM | MP3PRIORITY_MED) +#define MP3_SCI_LEAVE_THIS_AREA (FILE_ASCIE3BM | MP3PRIORITY_MED) +#define MP3_SCI_ALLOW_ME_TO_ASSIST_YOU (FILE_ASCIE3CM | MP3PRIORITY_MED) +#define MP3_SCI_HAVE_YOU_BEEN_TAMPERING (FILE_ASCIE3DM | MP3PRIORITY_MED) +#define MP3_SCI_YOU_VANDAL (FILE_ASCIE3EM | MP3PRIORITY_MED) +#define MP3_SCI_ACCIDENTS_WILL_HAPPEN (FILE_ASCIE3GM | MP3PRIORITY_MED) +#define MP3_SCI_SOMEONES_BROKEN_MY_EQUIPMENT (FILE_ASCIEN10AM | MP3PRIORITY_MED) +#define MP3_028C (FILE_ASCIEN2_AM | MP3PRIORITY_MED) +#define MP3_SCI_MY_EXPERIMENTS (FILE_ASCIEN3_AM | MP3PRIORITY_MED) +#define MP3_SCI_ILL_SHUT_IT_DOWN (FILE_ASCIEN4_AM | MP3PRIORITY_MED) +#define MP3_028F (FILE_ASCIEN5_AM | MP3PRIORITY_MED) +#define MP3_SCI_WHAT_ARE_YOU_DOING (FILE_ASCIEN6_AM | MP3PRIORITY_MED) +#define MP3_SCI_SECURITY (FILE_ASCIEN7_AM | MP3PRIORITY_MED) +#define MP3_SCI_HOW_DID_THAT_HAPPEN (FILE_ASCIEN9_AM | MP3PRIORITY_MED) +#define MP3_0293 (FILE_AVILGRIMM | MP3PRIORITY_MED) +#define MP3_K7_IM_NOT_SURE (FILE_AWEPGD01M | MP3PRIORITY_MED) +#define MP3_K7_ONE_MORE_TIME (FILE_AWEPGD02M | MP3PRIORITY_MED) +#define MP3_K7_I_DUNNO (FILE_AWEPGD03M | MP3PRIORITY_MED) +#define MP3_SCI_AND_AGAIN (FILE_AWEPSC01M | MP3PRIORITY_MED) +#define MP3_SCI_TRY_IT_NOW (FILE_AWEPSC02M | MP3PRIORITY_MED) +#define MP3_0299 (FILE_AWEPSC03M | MP3PRIORITY_MED) +#define MP3_029A (FILE_AA51ELV01M | MP3PRIORITY_LOW) +#define MP3_029B (FILE_AA51ELV02M | MP3PRIORITY_LOW) +#define MP3_029C (FILE_AA51ELV03M | MP3PRIORITY_LOW) +#define MP3_029D (FILE_AA51GRD01M | MP3PRIORITY_MED) +#define MP3_029E (FILE_AA51GRD02M | MP3PRIORITY_MED) +#define MP3_029F (FILE_AA51GRD03M | MP3PRIORITY_MED) +#define MP3_M0_WHERE_DID_YOU_GET_THAT (FILE_AA51GRD04M | MP3PRIORITY_LOW) +#define MP3_M0_SHOULD_YOU_HAVE_THAT (FILE_AA51GRD05M | MP3PRIORITY_LOW) +#define MP3_M0_WHAT_ARE_YOU_DOING (FILE_AA51GRD06M | MP3PRIORITY_LOW) +#define MP3_M0_DONT_POINT_THAT_AT_ME (FILE_AA51GRD07M | MP3PRIORITY_LOW) +#define MP3_M0_WATCH_WHERE_YOURE_POINTING (FILE_AA51GRD08M | MP3PRIORITY_LOW) +#define MP3_M0_IMPOSTER (FILE_AA51GRD09M | MP3PRIORITY_LOW) +#define MP3_M0_ITS_A_SPY (FILE_AA51GRD10M | MP3PRIORITY_LOW) +#define MP3_02A7 (FILE_AA51JO1M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02A8 (FILE_AA51JO2M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02A9 (FILE_AA51JO3M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02AA (FILE_AA51JO4M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02AB (FILE_AA51JO5M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02AC (FILE_AA51JO6M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02AD (FILE_AA51JON01M | MP3PRIORITY_MED) +#define MP3_02AE (FILE_AA51JON02M | MP3PRIORITY_MED) +#define MP3_02AF (FILE_AA51JON03M | MP3PRIORITY_MED) +#define MP3_02B0 (FILE_AA51JON04M | MP3PRIORITY_MED) +#define MP3_02B1 (FILE_AA51JON05M | MP3PRIORITY_MED) +#define MP3_02B2 (FILE_AA51JON06M | MP3PRIORITY_MED) +#define MP3_02B3 (FILE_AA51JON07M | MP3PRIORITY_MED) +#define MP3_02B4 (FILE_AA51JON08M | MP3PRIORITY_MED) +#define MP3_02B5 (FILE_AA51JON09M | MP3PRIORITY_MED) +#define MP3_02B6 (FILE_AA51JON10M | MP3PRIORITY_MED) +#define MP3_02B7 (FILE_AA51JON11M | MP3PRIORITY_MED) +#define MP3_02B8 (FILE_AA51JON12M | MP3PRIORITY_MED) +#define MP3_02B9 (FILE_AA51JON14M | MP3PRIORITY_MED) +#define MP3_02BA (FILE_AA51JON15M | MP3PRIORITY_MED) +#define MP3_02BB (FILE_AA51SCI1M | MP3PRIORITY_LOW) +#define MP3_02BC (FILE_AAF1JO01M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02BD (FILE_AAF1JO02M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02BE (FILE_AAF1JO03M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_02BF (FILE_AAF1PR01M | MP3PRIORITY_LOW) +#define MP3_PRES_STOP_SHOOTING (FILE_AAF1PR02M | MP3PRIORITY_LOW) +#define MP3_PRES_YOU_SURE_THIS_IS_THE_WAY (FILE_AAF1PR03M | MP3PRIORITY_LOW) +#define MP3_02C2 (FILE_AAF1PR04M | MP3PRIORITY_LOW) +#define MP3_PRES_WHY_ARE_THEY_SHOOTING (FILE_AAF1PR05M | MP3PRIORITY_LOW) +#define MP3_02C4 (FILE_AAF1PR06M | MP3PRIORITY_MED) +#define MP3_02C5 (FILE_AAF1PR07M | MP3PRIORITY_MED) +#define MP3_02C6 (FILE_AAF1PR08M | MP3PRIORITY_MED) +#define MP3_02C7 (FILE_AAF1PR09M | MP3PRIORITY_MED) +#define MP3_02C8 (FILE_AAF1PR10M | MP3PRIORITY_MED) +#define MP3_02C9 (FILE_AAF1TR01M | MP3PRIORITY_MED) +#define MP3_02CA (FILE_AAF1TR02M | MP3PRIORITY_MED) +#define MP3_02CB (FILE_AAF1TR03M | MP3PRIORITY_MED) +#define MP3_02CC (FILE_AAIRBGD01M | MP3PRIORITY_MED) +#define MP3_02CD (FILE_AAIRBGD02M | MP3PRIORITY_MED) +#define MP3_M1_WHERE_ARE_YOU_TAKING (FILE_AAIRBGD03M | MP3PRIORITY_LOW) +#define MP3_M1_GET_THAT_FIREARM_APPROVED (FILE_AAIRBGD04M | MP3PRIORITY_LOW) +#define MP3_M1_WATCH_WHAT_YOURE_DOING (FILE_AAIRBGD05M | MP3PRIORITY_LOW) +#define MP3_M1_BE_CAREFUL (FILE_AAIRBGD06M | MP3PRIORITY_LOW) +#define MP3_M1_STOP_RIGHT_THERE (FILE_AAIRBGD07M | MP3PRIORITY_LOW) +#define MP3_M1_DROP_THE_GUN (FILE_AAIRBGD08M | MP3PRIORITY_LOW) +#define MP3_02D4 (FILE_AAIRBGD09M | MP3PRIORITY_MED) +#define MP3_02D5 (FILE_AAIRBGD10M | MP3PRIORITY_MED) +#define MP3_M2_DO_YOU_HAVE_PERMISSION_FOR_THAT (FILE_AAIRBGD11M | MP3PRIORITY_LOW) +#define MP3_M2_WHAT_ARE_YOU_DOING (FILE_AAIRBGD12M | MP3PRIORITY_LOW) +#define MP3_M2_HEY_THATS_DANGEROUS (FILE_AAIRBGD13M | MP3PRIORITY_LOW) +#define MP3_M2_WATCH_IT_THAT_THING_COULD_GO_OFF (FILE_AAIRBGD14M | MP3PRIORITY_LOW) +#define MP3_M2_PUT_YOUR_HANDS_UP (FILE_AAIRBGD15M | MP3PRIORITY_LOW) +#define MP3_M2_ITS_A_TERRORIST (FILE_AAIRBGD16M | MP3PRIORITY_LOW) +#define MP3_02DC (FILE_AAIRSTW01M | MP3PRIORITY_LOW) +#define MP3_02DD (FILE_AAIRSTW02M | MP3PRIORITY_LOW) +#define MP3_02DE (FILE_AAIRSTW03M | MP3PRIORITY_LOW) +#define MP3_02DF (FILE_AASSAEL01M | MP3PRIORITY_MED) +#define MP3_02E0 (FILE_AASSAEL02M | MP3PRIORITY_MED) +#define MP3_02E1 (FILE_AASSAEL03M | MP3PRIORITY_MED) +#define MP3_02E2 (FILE_AASSAEL04M | MP3PRIORITY_MED) +#define MP3_02E3 (FILE_AASSAEL05M | MP3PRIORITY_MED) +#define MP3_02E4 (FILE_AASSAEL06M | MP3PRIORITY_MED) +#define MP3_02E5 (FILE_ABSEWRK01M | MP3PRIORITY_LOW) +#define MP3_02E6 (FILE_ABSEWRK02M | MP3PRIORITY_LOW) +#define MP3_02E7 (FILE_ABSEWRK03M | MP3PRIORITY_LOW) +#define MP3_02E8 (FILE_ABSEWRK04M | MP3PRIORITY_LOW) +#define MP3_02E9 (FILE_ABSEWRK05M | MP3PRIORITY_LOW) +#define MP3_02EA (FILE_ACETAEL01M | MP3PRIORITY_MED) +#define MP3_ROBOT_STOP_WHERE_YOU_ARE (FILE_ACHDROID1M | MP3PRIORITY_LOW) +#define MP3_ROBOT_ALERT_UNDER_ATTACK (FILE_ACHDROID2M | MP3PRIORITY_LOW) +#define MP3_02ED (FILE_ACSEC01M | MP3PRIORITY_LOW) +#define MP3_SEC_PLEASE_DONT_KILL_ME (FILE_ACSEC02M | MP3PRIORITY_LOW) +#define MP3_SEC_DONT_SHOOT (FILE_ACSEC03M | MP3PRIORITY_LOW) +#define MP3_02F0 (FILE_ACSTAN1M | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_02F1 (FILE_ACSTAN2M | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_CASS_HOW_DARE_YOU_DISTURB_ME (FILE_ADEVR01M | MP3PRIORITY_HIGH) +#define MP3_CASS_YOU_WILL_REGRET (FILE_ADEVR02M | MP3PRIORITY_HIGH) #if VERSION >= VERSION_NTSC_1_0 -#define MP3_02F4 (FILE_ADEVR03M | 0x0800) -#define MP3_02F5 (FILE_ADEVR04M | 0x0800) -#define MP3_02F6 (FILE_ADEVR05M | 0x0800) -#define MP3_02F7 (FILE_ADEVR06M | 0x0800) +#define MP3_02F4 (FILE_ADEVR03M | MP3PRIORITY_HIGH) +#define MP3_02F5 (FILE_ADEVR04M | MP3PRIORITY_HIGH) +#define MP3_02F6 (FILE_ADEVR05M | MP3PRIORITY_HIGH) +#define MP3_02F7 (FILE_ADEVR06M | MP3PRIORITY_HIGH) #else -#define MP3_02F4 (FILE_ADEVR03M | 0x1000) -#define MP3_02F5 (FILE_ADEVR04M | 0x1000) -#define MP3_02F6 (FILE_ADEVR05M | 0x1000) -#define MP3_02F7 (FILE_ADEVR06M | 0x1000) +#define MP3_02F4 (FILE_ADEVR03M | MP3PRIORITY_MED) +#define MP3_02F5 (FILE_ADEVR04M | MP3PRIORITY_MED) +#define MP3_02F6 (FILE_ADEVR05M | MP3PRIORITY_MED) +#define MP3_02F7 (FILE_ADEVR06M | MP3PRIORITY_MED) #endif -#define MP3_CASS_LEAVE_NOW (FILE_ADEVR07M | 0x0800) -#define MP3_02F9 (FILE_ADEVR08M | 0x1000) -#define MP3_02FA (FILE_ADEVR09M | 0x1000) -#define MP3_02FB (FILE_ADEVR10M | 0x1000) -#define MP3_02FC (FILE_ADEVR11M | 0x1000) -#define MP3_02FD (FILE_ADEVR12M | 0x1000) -#define MP3_02FE (FILE_AEXEC01M | 0x1000) -#define MP3_02FF (FILE_AEXEC02M | 0x1000) -#define MP3_0300 (FILE_AEXEC04M | 0x1000) -#define MP3_0301 (FILE_AEXEC05M | 0x1000) -#define MP3_0302 (FILE_AEXEC06M | 0x1000) -#define MP3_0303 (FILE_AEXEC07M | 0x1000) -#define MP3_0304 (FILE_AEXEC08M | 0x1000) -#define MP3_0305 (FILE_AEXEC09M | 0x1000) -#define MP3_0306 (FILE_AEXEC10M | 0x1000) -#define MP3_0307 (FILE_AEXEC11M | 0x1000) -#define MP3_0308 (FILE_AEXEC12M | 0x1000) -#define MP3_0309 (FILE_AEXEC13M | 0x1000) -#define MP3_030A (FILE_AEXEC14M | 0x1000) +#define MP3_CASS_LEAVE_NOW (FILE_ADEVR07M | MP3PRIORITY_HIGH) +#define MP3_02F9 (FILE_ADEVR08M | MP3PRIORITY_MED) +#define MP3_02FA (FILE_ADEVR09M | MP3PRIORITY_MED) +#define MP3_02FB (FILE_ADEVR10M | MP3PRIORITY_MED) +#define MP3_02FC (FILE_ADEVR11M | MP3PRIORITY_MED) +#define MP3_02FD (FILE_ADEVR12M | MP3PRIORITY_MED) +#define MP3_02FE (FILE_AEXEC01M | MP3PRIORITY_MED) +#define MP3_02FF (FILE_AEXEC02M | MP3PRIORITY_MED) +#define MP3_0300 (FILE_AEXEC04M | MP3PRIORITY_MED) +#define MP3_0301 (FILE_AEXEC05M | MP3PRIORITY_MED) +#define MP3_0302 (FILE_AEXEC06M | MP3PRIORITY_MED) +#define MP3_0303 (FILE_AEXEC07M | MP3PRIORITY_MED) +#define MP3_0304 (FILE_AEXEC08M | MP3PRIORITY_MED) +#define MP3_0305 (FILE_AEXEC09M | MP3PRIORITY_MED) +#define MP3_0306 (FILE_AEXEC10M | MP3PRIORITY_MED) +#define MP3_0307 (FILE_AEXEC11M | MP3PRIORITY_MED) +#define MP3_0308 (FILE_AEXEC12M | MP3PRIORITY_MED) +#define MP3_0309 (FILE_AEXEC13M | MP3PRIORITY_MED) +#define MP3_030A (FILE_AEXEC14M | MP3PRIORITY_MED) #if VERSION >= VERSION_NTSC_1_0 -#define MP3_030B (FILE_AHELIC01M | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_030C (FILE_AHELIC02M | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_030D (FILE_AHELIC03M | 0x0800 | 0x1000 | 0x2000 | 0x4000) +#define MP3_030B (FILE_AHELIC01M | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_030C (FILE_AHELIC02M | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_030D (FILE_AHELIC03M | MP3PRIORITY_LOW | 0x2000 | 0x4000) #else -#define MP3_030B (FILE_AHELIC01M | 0x1000 | 0x2000 | 0x4000) -#define MP3_030C (FILE_AHELIC02M | 0x1000 | 0x2000 | 0x4000) -#define MP3_030D (FILE_AHELIC03M | 0x1000 | 0x2000 | 0x4000) +#define MP3_030B (FILE_AHELIC01M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_030C (FILE_AHELIC02M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_030D (FILE_AHELIC03M | MP3PRIORITY_MED | 0x2000 | 0x4000) #endif -#define MP3_030E (FILE_AHOLOGD01M | 0x0800 | 0x1000) -#define MP3_030F (FILE_AHOLOHOPKM | 0x0800 | 0x1000) -#define MP3_0310 (FILE_AINVCAR01M | 0x1000) -#define MP3_0311 (FILE_AINVCAR02M | 0x1000) -#define MP3_0312 (FILE_AINVCAR03M | 0x1000) -#define MP3_0313 (FILE_AINVCAR04M | 0x1000) -#define MP3_0314 (FILE_AINVCAR05M | 0x1000) -#define MP3_0315 (FILE_AINVCAR06M | 0x1000) -#define MP3_0316 (FILE_AINVCAR07M | 0x1000) -#define MP3_0317 (FILE_AINVCAR08M | 0x1000) -#define MP3_0318 (FILE_AINVCAR09M | 0x1000) -#define MP3_0319 (FILE_AINVCAR10M | 0x1000) -#define MP3_031A (FILE_AINVCAR11M | 0x1000) -#define MP3_031B (FILE_AINVCAR12M | 0x1000) -#define MP3_CIFEM_THANKS1 (FILE_AINVFARRM | 0x0800 | 0x1000) -#define MP3_CIFEM_THANKS3 (FILE_AINVFEMAM | 0x0800 | 0x1000) -#define MP3_FOSTER_RELY_ON_YOU (FILE_AINVFOSTM | 0x0800 | 0x1000) -#define MP3_GRIMSHAW_TOO_CLOSE (FILE_AINVGRIMM | 0x0800 | 0x1000) -#define MP3_CIFEM_THANKS2 (FILE_AINVHOPKM | 0x0800 | 0x1000) -#define MP3_CIM_THANKS_JO (FILE_AINVMALEM | 0x0800 | 0x1000) -#define MP3_0322 (FILE_AJOEXEC01M | 0x1000 | 0x2000 | 0x4000) -#define MP3_0323 (FILE_AJOEXEC02M | 0x1000 | 0x2000 | 0x4000) -#define MP3_JO_SHUT_DOWN_EXPERIMENTS (FILE_AJOSCI01M | 0x1000 | 0x2000 | 0x4000) -#define MP3_JO_PULL_THE_PLUG (FILE_AJOSCI02M | 0x1000 | 0x2000 | 0x4000) -#define MP3_JO_SWITCH_THIS_THING_OFF (FILE_AJOSCI03M | 0x1000 | 0x2000 | 0x4000) -#define MP3_0327 (FILE_ALABACC1M | 0x1000) -#define MP3_0328 (FILE_ALABACC2M | 0x1000) -#define MP3_0329 (FILE_ALABACC3M | 0x1000) -#define MP3_032A (FILE_ALABACC4M | 0x1000) -#define MP3_032B (FILE_ALABACC5M | 0x1000) -#define MP3_032C (FILE_ALABACC6M | 0x1000) -#define MP3_032D (FILE_ALABTECH1M | 0x0800 | 0x1000) -#define MP3_032E (FILE_ALABTECH2M | 0x0800 | 0x1000) -#define MP3_032F (FILE_ALABTECH3M | 0x0800 | 0x1000) -#define MP3_0330 (FILE_ALABTECH5M | 0x1000) -#define MP3_0331 (FILE_ALABTECH6M | 0x0800 | 0x1000) -#define MP3_0332 (FILE_ALABTECH7M | 0x0800 | 0x1000) -#define MP3_0333 (FILE_ALABTECH8M | 0x0800 | 0x1000) -#define MP3_0334 (FILE_ALABTECH9M | 0x0800 | 0x1000) -#define MP3_COME_BACK_LATER_IM_BUSY (FILE_AOFFWRK01M | 0x0800 | 0x1000) -#define MP3_GO_AWAY (FILE_AOFFWRK02M | 0x0800 | 0x1000) -#define MP3_LOOK_I_CANT_HELP_YOU (FILE_AOFFWRK03M | 0x0800 | 0x1000) -#define MP3_0338 (FILE_AOFFWRK04M | 0x0800 | 0x1000) -#define MP3_03A0 (FILE_AM1_L1_AM | 0x1000) -#define MP3_03A1 (FILE_AM1_L1_BM | 0x1000) -#define MP3_03A2 (FILE_AM1_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03A3 (FILE_AM1_L1_DM | 0x1000) -#define MP3_03A4 (FILE_AM1_L2_AM | 0x1000) -#define MP3_03A5 (FILE_AM1_L2_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03A6 (FILE_AM1_L2_CM | 0x1000) -#define MP3_03A7 (FILE_AM1_L2_DM | 0x1000) -#define MP3_03A8 (FILE_AM1_L3_AM | 0x1000) -#define MP3_03A9 (FILE_AM1_L3_BM | 0x1000) -#define MP3_03AA (FILE_AM1_L3_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03AB (FILE_AM1_L3_DM | 0x1000) -#define MP3_03AC (FILE_AM2_L1_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03AD (FILE_AM2_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03AE (FILE_AM2_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03AF (FILE_AM2_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03B0 (FILE_AM3_L1_AM | 0x1000) -#define MP3_03B1 (FILE_AM3_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03B2 (FILE_AM3_L1_CM | 0x1000) -#define MP3_03B3 (FILE_AM3_L1_DM | 0x1000) -#define MP3_03B4 (FILE_AM3_L2_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03B5 (FILE_AM3_L2_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03B6 (FILE_AM3_L2_CM | 0x1000) -#define MP3_03B7 (FILE_AM3_L2_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03B8 (FILE_AM4_L1_AM | 0x1000) -#define MP3_03B9 (FILE_AM4_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03BA (FILE_AM4_L1_CM | 0x1000) -#define MP3_03BB (FILE_AM4_L1_DM | 0x1000) -#define MP3_03BC (FILE_AM4_L2_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03BD (FILE_AM4_L2_BM | 0x1000) -#define MP3_03BE (FILE_AM4_L2_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03BF (FILE_AM4_L2_DM | 0x1000) -#define MP3_03C0 (FILE_AM4_L3_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C1 (FILE_AM4_L3_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C2 (FILE_AM4_L3_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C3 (FILE_AM4_L3_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C4 (FILE_AM5_L1_AM | 0x1000) -#define MP3_03C5 (FILE_AM5_L1_BM | 0x1000) -#define MP3_03C6 (FILE_AM5_L1_CM | 0x1000) -#define MP3_03C7 (FILE_AM5_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C8 (FILE_AM5_L2_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03C9 (FILE_AM5_L2_BM | 0x1000) -#define MP3_03CA (FILE_AM5_L2_CM | 0x1000) -#define MP3_03CB (FILE_AM5_L2_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03CC (FILE_AM5_L3_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03CD (FILE_AM5_L3_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03CE (FILE_AM5_L3_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03CF (FILE_AM5_L3_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D0 (FILE_AM6_L1_AM | 0x1000) -#define MP3_03D1 (FILE_AM6_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D2 (FILE_AM6_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D3 (FILE_AM6_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D4 (FILE_AM6_L2_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D5 (FILE_AM6_L2_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D6 (FILE_AM6_L2_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D7 (FILE_AM6_L2_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D8 (FILE_AM7_L1_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03D9 (FILE_AM7_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DA (FILE_AM7_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DB (FILE_AM7_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DC (FILE_AM8_L1_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DD (FILE_AM8_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DE (FILE_AM8_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03DF (FILE_AM8_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E0 (FILE_AM9_L1_AM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E1 (FILE_AM9_L1_BM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E2 (FILE_AM9_L1_CM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E3 (FILE_AM9_L1_DM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E4 (FILE_AP1_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E5 (FILE_AP1_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E6 (FILE_AP1_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E7 (FILE_AP1_04_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E8 (FILE_AP1_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03E9 (FILE_AP1_06_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03EA (FILE_AP1_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03EB (FILE_AP1_08_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03EC (FILE_AP2_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03ED (FILE_AP2_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03EE (FILE_AP2_03_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03EF (FILE_AP2_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F0 (FILE_AP2_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F1 (FILE_AP2_06_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F2 (FILE_AP2_07_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F3 (FILE_AP3_01_GDM | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F4 (FILE_AP3_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F5 (FILE_AP3_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F6 (FILE_AP4_01_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F7 (FILE_AP4_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F8 (FILE_AP4_03_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03F9 (FILE_AP4_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FA (FILE_AP4_05_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FB (FILE_AP4_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FC (FILE_AP4_07_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FD (FILE_AP4_08_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FE (FILE_AP4_09_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_03FF (FILE_AP5_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0400 (FILE_AP5_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0401 (FILE_AP5_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0402 (FILE_AP6_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0403 (FILE_AP6_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0404 (FILE_AP6_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0405 (FILE_AP6_04_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0406 (FILE_AP6_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0407 (FILE_AP6_06_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0408 (FILE_AP7_01_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0409 (FILE_AP7_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040A (FILE_AP7_03_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040B (FILE_AP7_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040C (FILE_AP8_01_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040D (FILE_AP8_02_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040E (FILE_AP8_03_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_040F (FILE_AP8_04_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0410 (FILE_AP8_06_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0411 (FILE_AP8_07_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0412 (FILE_AP8_08_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0413 (FILE_AP8_09_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0414 (FILE_AP8_10_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0415 (FILE_AP9_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0416 (FILE_AP9_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0417 (FILE_AP9_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0418 (FILE_AP10_01_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0419 (FILE_AP10_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_041A (FILE_AP10_03_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_041B (FILE_AP10_04_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_041C (FILE_AP10_05_JOM | 0x1000) -#define MP3_041D (FILE_AP10_06_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_041E (FILE_AP10_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_041F (FILE_AP10_08_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0420 (FILE_AP10_09_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0421 (FILE_AP11_01_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0422 (FILE_AP11_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0423 (FILE_AP11_03_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0424 (FILE_AP11_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0425 (FILE_AP11_05_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0426 (FILE_AP11_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0427 (FILE_AP11_07_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0428 (FILE_AP11_08_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0429 (FILE_AP12_01_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042A (FILE_AP12_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042B (FILE_AP12_03_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042C (FILE_AP12_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042D (FILE_AP12_05_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042E (FILE_AP12_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_042F (FILE_AP12_07_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0430 (FILE_AP12_08_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0431 (FILE_AP12_09_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0432 (FILE_AP12_10_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0433 (FILE_AP13_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0434 (FILE_AP13_02_SUM | 0x1000) -#define MP3_0435 (FILE_AP13_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0436 (FILE_AP13_04_SUM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0437 (FILE_AP13_06_SUM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0438 (FILE_AP14_03_SUM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0439 (FILE_AP14_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043A (FILE_AP14_05_SUM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043B (FILE_AP14_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043C (FILE_AP15_01_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043D (FILE_AP15_02_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043E (FILE_AP15_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_043F (FILE_AP15_04_JNM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0440 (FILE_AP15_05_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0441 (FILE_AP15_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0442 (FILE_AP15_07_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0443 (FILE_AP15_08_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0444 (FILE_AP15_09_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0445 (FILE_AP15_10_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0446 (FILE_AP15_11_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0447 (FILE_AP16_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0448 (FILE_AP16_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0449 (FILE_AP16_04_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044A (FILE_AP16_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044B (FILE_AP16_06_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044C (FILE_AP17_01_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044D (FILE_AP17_02_PRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044E (FILE_AP17_03_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_044F (FILE_AP17_04_PRM | 0x1000) -#define MP3_0450 (FILE_AP17_05_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0451 (FILE_AP17_06_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0452 (FILE_AP18_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0453 (FILE_AP18_02_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0454 (FILE_AP18_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0455 (FILE_AP18_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0456 (FILE_AP18_05_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0457 (FILE_AP19_01_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0458 (FILE_AP19_02_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0459 (FILE_AP19_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045A (FILE_AP19_04_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045B (FILE_AP19_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045C (FILE_AP19_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045D (FILE_AP20_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045E (FILE_AP20_02_PRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_045F (FILE_AP20_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0460 (FILE_AP20_04_PRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0461 (FILE_AP20_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0462 (FILE_AP20_06_BLM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0463 (FILE_AP20_07_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0464 (FILE_AP20_08_TRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0465 (FILE_AP21_01_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0466 (FILE_AP21_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0467 (FILE_AP21_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0468 (FILE_AP21_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0469 (FILE_AP22_01_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046A (FILE_AP22_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046B (FILE_AP22_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046C (FILE_AP22_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046D (FILE_AP23_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046E (FILE_AP23_02_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_046F (FILE_AP23_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0470 (FILE_AP23_04_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0471 (FILE_AP23_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0472 (FILE_AP23_06_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0473 (FILE_AP23_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0474 (FILE_AP23_08_DRM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0475 (FILE_AP24_01_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0476 (FILE_AP24_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0477 (FILE_AP24_03_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0478 (FILE_AP24_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0479 (FILE_AP24_05_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047A (FILE_AP24_06_CAM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047B (FILE_AP24_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047C (FILE_AP24_08_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047D (FILE_AP25_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047E (FILE_AP25_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_047F (FILE_AP26_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0480 (FILE_AP26_02_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0481 (FILE_AP26_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0482 (FILE_AP26_04_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0483 (FILE_AP26_05_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0484 (FILE_AP26_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0485 (FILE_AP26_07_DVM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0486 (FILE_AP26_08_DVM | 0x0800 | 0x1000 | 0x2000 | 0x4000) -#define MP3_0487 (FILE_AP27_01_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0488 (FILE_AP27_02_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0489 (FILE_AP27_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048A (FILE_AP27_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048B (FILE_AP27_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048C (FILE_AP27_06_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048D (FILE_AP28_01_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048E (FILE_AP28_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_048F (FILE_AP28_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0490 (FILE_AP28_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0491 (FILE_AP28_05_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0492 (FILE_AP28_06_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0493 (FILE_AP29_01_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0494 (FILE_AP29_02_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0495 (FILE_AP29_03_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0496 (FILE_AP29_04_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0497 (FILE_AP29_05_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0498 (FILE_AP29_06_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0499 (FILE_AP29_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_049A (FILE_AP29_08_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_049B (FILE_AP29_09_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_049C (FILE_AP29_10_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_04DC (FILE_APELELV01M | 0x1000) -#define MP3_04DD (FILE_APELGRD01M | 0x1000) -#define MP3_04DE (FILE_AP29_11_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_04EA (FILE_AM3L2CARRM | 0x1000) -#define MP3_04EB (FILE_AELVCET01M | 0x1000) -#define MP3_04EC (FILE_AELVCET02M | 0x1000) -#define MP3_04ED (FILE_AJOREP01M | 0x1000) -#define MP3_04EE (FILE_AJOREP02M | 0x1000) -#define MP3_04EF (FILE_AJOREP03M | 0x1000) -#define MP3_04F0 (FILE_AJOREP04M | 0x1000) -#define MP3_04F8 (FILE_AJORPLD01M | 0x1000) -#define MP3_04F9 (FILE_AJORPLD02M | 0x1000) -#define MP3_04FA (FILE_AJORPLD03M | 0x1000) -#define MP3_04FB (FILE_AJORPLD04M | 0x1000) -#define MP3_0517 (FILE_ATRJO01M | 0x1000) -#define MP3_0518 (FILE_ATRGRIM01M | 0x1000) -#define MP3_0519 (FILE_ATRGRIM02M | 0x1000) -#define MP3_051A (FILE_ATRCARR06M | 0x1000) -#define MP3_051B (FILE_ATRCARR07M | 0x1000) -#define MP3_051C (FILE_ATRCARR08M | 0x1000) -#define MP3_051D (FILE_ATRCARR01M | 0x1000) -#define MP3_051E (FILE_ATRCARR02M | 0x1000) -#define MP3_051F (FILE_ATRCARR03M | 0x1000) -#define MP3_0520 (FILE_ATRCARR04M | 0x1000) -#define MP3_0521 (FILE_ATRCARR05M | 0x1000) -#define MP3_0522 (FILE_ATRCARR12M | 0x1000) -#define MP3_0523 (FILE_ABNBLDE01M | 0x0800) -#define MP3_0524 (FILE_ABNCASS01M | 0x1000) -#define MP3_0562 (FILE_APELELV02M | 0x1000) -#define MP3_0754 (FILE_AVAULT2M | 0x1000 | 0x2000 | 0x4000) -#define MP3_0755 (FILE_AP29_12_ELM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0758 (FILE_AP14_09_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_0759 (FILE_AP19_07_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_075A (FILE_AP19_08_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_077A (FILE_ACICARR06M | 0x1000) -#define MP3_CARR_WORRIES_ME (FILE_ACICARR11M | 0x1000) -#define MP3_077C (FILE_ACIFARR08M | 0x1000) -#define MP3_CIFEM_PATIENCE (FILE_ACIFARR12M | 0x1000) -#define MP3_077E (FILE_ACIFEMA01M | 0x1000) -#define MP3_077F (FILE_ACIFEMA04M | 0x1000) -#define MP3_0780 (FILE_ACIFEMA07M | 0x1000) -#define MP3_0781 (FILE_ACIFEMA08M | 0x1000) -#define MP3_CIFEM_BE_SOMEWHERE (FILE_ACIFEMA09M | 0x1000) -#define MP3_CIFEM_BOTHER_SOMEONE_ELSE (FILE_ACIFEMA14M | 0x1000) -#define MP3_0784 (FILE_ACIFOST08M | 0x1000) -#define MP3_FOSTER_LEAVE_ME_ALONE (FILE_ACIFOST12M | 0x1000) -#define MP3_0786 (FILE_ACIGRIM05M | 0x1000) -#define MP3_0787 (FILE_ACIGRIM06M | 0x1000) -#define MP3_0788 (FILE_ACIGRIM07M | 0x1000) -#define MP3_GRIMSHAW_BUG_OFF (FILE_ACIGRIM08M | 0x1000) -#define MP3_GRIMSHAW_CRIMINAL_RECORD (FILE_ACIGRIM09M | 0x1000) -#define MP3_GRIMSHAW_LOSER (FILE_ACIGRIM10M | 0x1000) -#define MP3_078C (FILE_ACIHOPK09M | 0x1000) -#define MP3_HOLO_IRRITATING (FILE_ACIHOPK11M | 0x1000) -#define MP3_078E (FILE_ACIMALE02M | 0x1000) -#define MP3_078F (FILE_ACIMALE03M | 0x1000) -#define MP3_0790 (FILE_ACIMALE07M | 0x1000) -#define MP3_CIM_BE_SOMEWHERE (FILE_ACIMALE09M | 0x1000) -#define MP3_0792 (FILE_ACIMALE11M | 0x1000) -#define MP3_0793 (FILE_ACIMALE13M | 0x1000) -#define MP3_0794 (FILE_ACIROGE08M | 0x1000) -#define MP3_HANGAR_LIVED_THIS_LONG (FILE_ACIROGE12M | 0x1000) -#define MP3_FOSTER_WHAT_TO_SHOOT_AT (FILE_ATRFOST01M | 0x1000) -#define MP3_FOSTER_ZEROED_THE_SIGHTS (FILE_ATRFOST02M | 0x1000) -#define MP3_FOSTER_GOOD_SHOW (FILE_ATRFOST03M | 0x1000) -#define MP3_CARR_WHAT_IS_IT (FILE_ATRCARR09M | 0x1000) -#define MP3_CARR_A_LITTLE_BUSY (FILE_ATRCARR10M | 0x1000) -#define MP3_CARR_PROUD_OF_YOU (FILE_ATRCARR11M | 0x1000) -#define MP3_CIFEM_FOSTER (FILE_ACIFARR01M | 0x1000) -#define MP3_CIFEM_COME_TO_SEE_ME (FILE_ACIFARR02M | 0x1000) -#define MP3_CIFEM_PRACTICE_MAKES_PERFECT (FILE_ACIFARR03M | 0x1000) -#define MP3_GRIMSHAW_KNOW_YOUR_ENEMY (FILE_ACIGRIM01M | 0x1000) -#define MP3_GRIMSHAW_ALL_EARS (FILE_ACIGRIM03M | 0x1000) -#define MP3_GRIMSHAW_GAP_IN_RECORDS (FILE_ACIGRIM04M | 0x1000) -#define MP3_HOLO_LAST_MINUTE_TRAINING (FILE_ACIHOPK01M | 0x1000) -#define MP3_HOLO_PRACTICE_MAKES_PERFECT (FILE_ACIHOPK04M | 0x1000) -#define MP3_HOLO_HAVE_A_LIFE (FILE_ACIHOPK06M | 0x1000) -#define MP3_HANGERGUY_DONT_SCREW_UP (FILE_ACIROGE01M | 0x1000) -#define MP3_HANGERGUY_DONT_MAKE_A_MESS (FILE_ACIROGE02M | 0x1000) -#define MP3_HANGERGUY_HALF_HOUR_AGO (FILE_ATRROGE01M | 0x1000) -#define MP3_07B0 (FILE_ACICARR07M | 0x1000) -#define MP3_07B1 (FILE_ACICARR08M | 0x1000) -#define MP3_07B6 (FILE_AJOINST01M | 0x1000) -#define MP3_07B7 (FILE_AJOINST02M | 0x1000) -#define MP3_07B8 (FILE_AJOINST03M | 0x1000) -#define MP3_07B9 (FILE_AJOINST04M | 0x1000) -#define MP3_07BA (FILE_AP25_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_07C8 (FILE_AP29_13_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_07C9 (FILE_AP29_14_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_07CA (FILE_ACICARR09M | 0x1000) -#define MP3_07CB (FILE_ACICARR10M | 0x1000) -#define MP3_07DA (FILE_AP29_15_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_07DB (FILE_AP16_03_JOM | 0x1000 | 0x2000 | 0x4000) -#define MP3_07DC (FILE_ACARRBYE02M | 0x1000) +#define MP3_030E (FILE_AHOLOGD01M | MP3PRIORITY_LOW) +#define MP3_030F (FILE_AHOLOHOPKM | MP3PRIORITY_LOW) +#define MP3_0310 (FILE_AINVCAR01M | MP3PRIORITY_MED) +#define MP3_0311 (FILE_AINVCAR02M | MP3PRIORITY_MED) +#define MP3_0312 (FILE_AINVCAR03M | MP3PRIORITY_MED) +#define MP3_0313 (FILE_AINVCAR04M | MP3PRIORITY_MED) +#define MP3_0314 (FILE_AINVCAR05M | MP3PRIORITY_MED) +#define MP3_0315 (FILE_AINVCAR06M | MP3PRIORITY_MED) +#define MP3_0316 (FILE_AINVCAR07M | MP3PRIORITY_MED) +#define MP3_0317 (FILE_AINVCAR08M | MP3PRIORITY_MED) +#define MP3_0318 (FILE_AINVCAR09M | MP3PRIORITY_MED) +#define MP3_0319 (FILE_AINVCAR10M | MP3PRIORITY_MED) +#define MP3_031A (FILE_AINVCAR11M | MP3PRIORITY_MED) +#define MP3_031B (FILE_AINVCAR12M | MP3PRIORITY_MED) +#define MP3_CIFEM_THANKS1 (FILE_AINVFARRM | MP3PRIORITY_LOW) +#define MP3_CIFEM_THANKS3 (FILE_AINVFEMAM | MP3PRIORITY_LOW) +#define MP3_FOSTER_RELY_ON_YOU (FILE_AINVFOSTM | MP3PRIORITY_LOW) +#define MP3_GRIMSHAW_TOO_CLOSE (FILE_AINVGRIMM | MP3PRIORITY_LOW) +#define MP3_CIFEM_THANKS2 (FILE_AINVHOPKM | MP3PRIORITY_LOW) +#define MP3_CIM_THANKS_JO (FILE_AINVMALEM | MP3PRIORITY_LOW) +#define MP3_0322 (FILE_AJOEXEC01M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0323 (FILE_AJOEXEC02M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_JO_SHUT_DOWN_EXPERIMENTS (FILE_AJOSCI01M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_JO_PULL_THE_PLUG (FILE_AJOSCI02M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_JO_SWITCH_THIS_THING_OFF (FILE_AJOSCI03M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0327 (FILE_ALABACC1M | MP3PRIORITY_MED) +#define MP3_0328 (FILE_ALABACC2M | MP3PRIORITY_MED) +#define MP3_0329 (FILE_ALABACC3M | MP3PRIORITY_MED) +#define MP3_032A (FILE_ALABACC4M | MP3PRIORITY_MED) +#define MP3_032B (FILE_ALABACC5M | MP3PRIORITY_MED) +#define MP3_032C (FILE_ALABACC6M | MP3PRIORITY_MED) +#define MP3_032D (FILE_ALABTECH1M | MP3PRIORITY_LOW) +#define MP3_032E (FILE_ALABTECH2M | MP3PRIORITY_LOW) +#define MP3_032F (FILE_ALABTECH3M | MP3PRIORITY_LOW) +#define MP3_0330 (FILE_ALABTECH5M | MP3PRIORITY_MED) +#define MP3_0331 (FILE_ALABTECH6M | MP3PRIORITY_LOW) +#define MP3_0332 (FILE_ALABTECH7M | MP3PRIORITY_LOW) +#define MP3_0333 (FILE_ALABTECH8M | MP3PRIORITY_LOW) +#define MP3_0334 (FILE_ALABTECH9M | MP3PRIORITY_LOW) +#define MP3_COME_BACK_LATER_IM_BUSY (FILE_AOFFWRK01M | MP3PRIORITY_LOW) +#define MP3_GO_AWAY (FILE_AOFFWRK02M | MP3PRIORITY_LOW) +#define MP3_LOOK_I_CANT_HELP_YOU (FILE_AOFFWRK03M | MP3PRIORITY_LOW) +#define MP3_0338 (FILE_AOFFWRK04M | MP3PRIORITY_LOW) +#define MP3_03A0 (FILE_AM1_L1_AM | MP3PRIORITY_MED) +#define MP3_03A1 (FILE_AM1_L1_BM | MP3PRIORITY_MED) +#define MP3_03A2 (FILE_AM1_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03A3 (FILE_AM1_L1_DM | MP3PRIORITY_MED) +#define MP3_03A4 (FILE_AM1_L2_AM | MP3PRIORITY_MED) +#define MP3_03A5 (FILE_AM1_L2_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03A6 (FILE_AM1_L2_CM | MP3PRIORITY_MED) +#define MP3_03A7 (FILE_AM1_L2_DM | MP3PRIORITY_MED) +#define MP3_03A8 (FILE_AM1_L3_AM | MP3PRIORITY_MED) +#define MP3_03A9 (FILE_AM1_L3_BM | MP3PRIORITY_MED) +#define MP3_03AA (FILE_AM1_L3_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03AB (FILE_AM1_L3_DM | MP3PRIORITY_MED) +#define MP3_03AC (FILE_AM2_L1_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03AD (FILE_AM2_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03AE (FILE_AM2_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03AF (FILE_AM2_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03B0 (FILE_AM3_L1_AM | MP3PRIORITY_MED) +#define MP3_03B1 (FILE_AM3_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03B2 (FILE_AM3_L1_CM | MP3PRIORITY_MED) +#define MP3_03B3 (FILE_AM3_L1_DM | MP3PRIORITY_MED) +#define MP3_03B4 (FILE_AM3_L2_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03B5 (FILE_AM3_L2_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03B6 (FILE_AM3_L2_CM | MP3PRIORITY_MED) +#define MP3_03B7 (FILE_AM3_L2_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03B8 (FILE_AM4_L1_AM | MP3PRIORITY_MED) +#define MP3_03B9 (FILE_AM4_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03BA (FILE_AM4_L1_CM | MP3PRIORITY_MED) +#define MP3_03BB (FILE_AM4_L1_DM | MP3PRIORITY_MED) +#define MP3_03BC (FILE_AM4_L2_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03BD (FILE_AM4_L2_BM | MP3PRIORITY_MED) +#define MP3_03BE (FILE_AM4_L2_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03BF (FILE_AM4_L2_DM | MP3PRIORITY_MED) +#define MP3_03C0 (FILE_AM4_L3_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C1 (FILE_AM4_L3_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C2 (FILE_AM4_L3_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C3 (FILE_AM4_L3_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C4 (FILE_AM5_L1_AM | MP3PRIORITY_MED) +#define MP3_03C5 (FILE_AM5_L1_BM | MP3PRIORITY_MED) +#define MP3_03C6 (FILE_AM5_L1_CM | MP3PRIORITY_MED) +#define MP3_03C7 (FILE_AM5_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C8 (FILE_AM5_L2_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03C9 (FILE_AM5_L2_BM | MP3PRIORITY_MED) +#define MP3_03CA (FILE_AM5_L2_CM | MP3PRIORITY_MED) +#define MP3_03CB (FILE_AM5_L2_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03CC (FILE_AM5_L3_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03CD (FILE_AM5_L3_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03CE (FILE_AM5_L3_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03CF (FILE_AM5_L3_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D0 (FILE_AM6_L1_AM | MP3PRIORITY_MED) +#define MP3_03D1 (FILE_AM6_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D2 (FILE_AM6_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D3 (FILE_AM6_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D4 (FILE_AM6_L2_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D5 (FILE_AM6_L2_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D6 (FILE_AM6_L2_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D7 (FILE_AM6_L2_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D8 (FILE_AM7_L1_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03D9 (FILE_AM7_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DA (FILE_AM7_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DB (FILE_AM7_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DC (FILE_AM8_L1_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DD (FILE_AM8_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DE (FILE_AM8_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03DF (FILE_AM8_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E0 (FILE_AM9_L1_AM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E1 (FILE_AM9_L1_BM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E2 (FILE_AM9_L1_CM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E3 (FILE_AM9_L1_DM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E4 (FILE_AP1_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E5 (FILE_AP1_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E6 (FILE_AP1_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E7 (FILE_AP1_04_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E8 (FILE_AP1_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03E9 (FILE_AP1_06_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03EA (FILE_AP1_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03EB (FILE_AP1_08_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03EC (FILE_AP2_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03ED (FILE_AP2_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03EE (FILE_AP2_03_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03EF (FILE_AP2_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F0 (FILE_AP2_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F1 (FILE_AP2_06_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F2 (FILE_AP2_07_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F3 (FILE_AP3_01_GDM | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_03F4 (FILE_AP3_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F5 (FILE_AP3_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F6 (FILE_AP4_01_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F7 (FILE_AP4_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F8 (FILE_AP4_03_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03F9 (FILE_AP4_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FA (FILE_AP4_05_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FB (FILE_AP4_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FC (FILE_AP4_07_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FD (FILE_AP4_08_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FE (FILE_AP4_09_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_03FF (FILE_AP5_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0400 (FILE_AP5_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0401 (FILE_AP5_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0402 (FILE_AP6_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0403 (FILE_AP6_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0404 (FILE_AP6_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0405 (FILE_AP6_04_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0406 (FILE_AP6_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0407 (FILE_AP6_06_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0408 (FILE_AP7_01_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0409 (FILE_AP7_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040A (FILE_AP7_03_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040B (FILE_AP7_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040C (FILE_AP8_01_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040D (FILE_AP8_02_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040E (FILE_AP8_03_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_040F (FILE_AP8_04_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0410 (FILE_AP8_06_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0411 (FILE_AP8_07_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0412 (FILE_AP8_08_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0413 (FILE_AP8_09_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0414 (FILE_AP8_10_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0415 (FILE_AP9_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0416 (FILE_AP9_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0417 (FILE_AP9_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0418 (FILE_AP10_01_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0419 (FILE_AP10_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_041A (FILE_AP10_03_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_041B (FILE_AP10_04_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_041C (FILE_AP10_05_JOM | MP3PRIORITY_MED) +#define MP3_041D (FILE_AP10_06_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_041E (FILE_AP10_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_041F (FILE_AP10_08_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0420 (FILE_AP10_09_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0421 (FILE_AP11_01_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0422 (FILE_AP11_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0423 (FILE_AP11_03_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0424 (FILE_AP11_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0425 (FILE_AP11_05_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0426 (FILE_AP11_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0427 (FILE_AP11_07_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0428 (FILE_AP11_08_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0429 (FILE_AP12_01_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042A (FILE_AP12_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042B (FILE_AP12_03_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042C (FILE_AP12_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042D (FILE_AP12_05_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042E (FILE_AP12_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_042F (FILE_AP12_07_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0430 (FILE_AP12_08_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0431 (FILE_AP12_09_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0432 (FILE_AP12_10_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0433 (FILE_AP13_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0434 (FILE_AP13_02_SUM | MP3PRIORITY_MED) +#define MP3_0435 (FILE_AP13_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0436 (FILE_AP13_04_SUM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0437 (FILE_AP13_06_SUM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0438 (FILE_AP14_03_SUM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0439 (FILE_AP14_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043A (FILE_AP14_05_SUM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043B (FILE_AP14_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043C (FILE_AP15_01_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043D (FILE_AP15_02_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043E (FILE_AP15_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_043F (FILE_AP15_04_JNM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0440 (FILE_AP15_05_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0441 (FILE_AP15_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0442 (FILE_AP15_07_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0443 (FILE_AP15_08_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0444 (FILE_AP15_09_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0445 (FILE_AP15_10_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0446 (FILE_AP15_11_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0447 (FILE_AP16_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0448 (FILE_AP16_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0449 (FILE_AP16_04_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044A (FILE_AP16_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044B (FILE_AP16_06_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044C (FILE_AP17_01_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044D (FILE_AP17_02_PRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044E (FILE_AP17_03_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_044F (FILE_AP17_04_PRM | MP3PRIORITY_MED) +#define MP3_0450 (FILE_AP17_05_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0451 (FILE_AP17_06_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0452 (FILE_AP18_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0453 (FILE_AP18_02_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0454 (FILE_AP18_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0455 (FILE_AP18_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0456 (FILE_AP18_05_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0457 (FILE_AP19_01_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0458 (FILE_AP19_02_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0459 (FILE_AP19_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045A (FILE_AP19_04_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045B (FILE_AP19_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045C (FILE_AP19_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045D (FILE_AP20_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045E (FILE_AP20_02_PRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_045F (FILE_AP20_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0460 (FILE_AP20_04_PRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0461 (FILE_AP20_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0462 (FILE_AP20_06_BLM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0463 (FILE_AP20_07_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0464 (FILE_AP20_08_TRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0465 (FILE_AP21_01_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0466 (FILE_AP21_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0467 (FILE_AP21_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0468 (FILE_AP21_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0469 (FILE_AP22_01_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046A (FILE_AP22_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046B (FILE_AP22_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046C (FILE_AP22_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046D (FILE_AP23_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046E (FILE_AP23_02_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_046F (FILE_AP23_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0470 (FILE_AP23_04_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0471 (FILE_AP23_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0472 (FILE_AP23_06_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0473 (FILE_AP23_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0474 (FILE_AP23_08_DRM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0475 (FILE_AP24_01_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0476 (FILE_AP24_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0477 (FILE_AP24_03_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0478 (FILE_AP24_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0479 (FILE_AP24_05_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047A (FILE_AP24_06_CAM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047B (FILE_AP24_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047C (FILE_AP24_08_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047D (FILE_AP25_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047E (FILE_AP25_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_047F (FILE_AP26_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0480 (FILE_AP26_02_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0481 (FILE_AP26_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0482 (FILE_AP26_04_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0483 (FILE_AP26_05_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0484 (FILE_AP26_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0485 (FILE_AP26_07_DVM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0486 (FILE_AP26_08_DVM | MP3PRIORITY_LOW | 0x2000 | 0x4000) +#define MP3_0487 (FILE_AP27_01_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0488 (FILE_AP27_02_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0489 (FILE_AP27_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048A (FILE_AP27_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048B (FILE_AP27_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048C (FILE_AP27_06_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048D (FILE_AP28_01_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048E (FILE_AP28_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_048F (FILE_AP28_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0490 (FILE_AP28_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0491 (FILE_AP28_05_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0492 (FILE_AP28_06_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0493 (FILE_AP29_01_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0494 (FILE_AP29_02_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0495 (FILE_AP29_03_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0496 (FILE_AP29_04_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0497 (FILE_AP29_05_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0498 (FILE_AP29_06_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0499 (FILE_AP29_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_049A (FILE_AP29_08_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_049B (FILE_AP29_09_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_049C (FILE_AP29_10_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_04DC (FILE_APELELV01M | MP3PRIORITY_MED) +#define MP3_04DD (FILE_APELGRD01M | MP3PRIORITY_MED) +#define MP3_04DE (FILE_AP29_11_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_04EA (FILE_AM3L2CARRM | MP3PRIORITY_MED) +#define MP3_04EB (FILE_AELVCET01M | MP3PRIORITY_MED) +#define MP3_04EC (FILE_AELVCET02M | MP3PRIORITY_MED) +#define MP3_04ED (FILE_AJOREP01M | MP3PRIORITY_MED) +#define MP3_04EE (FILE_AJOREP02M | MP3PRIORITY_MED) +#define MP3_04EF (FILE_AJOREP03M | MP3PRIORITY_MED) +#define MP3_04F0 (FILE_AJOREP04M | MP3PRIORITY_MED) +#define MP3_04F8 (FILE_AJORPLD01M | MP3PRIORITY_MED) +#define MP3_04F9 (FILE_AJORPLD02M | MP3PRIORITY_MED) +#define MP3_04FA (FILE_AJORPLD03M | MP3PRIORITY_MED) +#define MP3_04FB (FILE_AJORPLD04M | MP3PRIORITY_MED) +#define MP3_0517 (FILE_ATRJO01M | MP3PRIORITY_MED) +#define MP3_0518 (FILE_ATRGRIM01M | MP3PRIORITY_MED) +#define MP3_0519 (FILE_ATRGRIM02M | MP3PRIORITY_MED) +#define MP3_051A (FILE_ATRCARR06M | MP3PRIORITY_MED) +#define MP3_051B (FILE_ATRCARR07M | MP3PRIORITY_MED) +#define MP3_051C (FILE_ATRCARR08M | MP3PRIORITY_MED) +#define MP3_051D (FILE_ATRCARR01M | MP3PRIORITY_MED) +#define MP3_051E (FILE_ATRCARR02M | MP3PRIORITY_MED) +#define MP3_051F (FILE_ATRCARR03M | MP3PRIORITY_MED) +#define MP3_0520 (FILE_ATRCARR04M | MP3PRIORITY_MED) +#define MP3_0521 (FILE_ATRCARR05M | MP3PRIORITY_MED) +#define MP3_0522 (FILE_ATRCARR12M | MP3PRIORITY_MED) +#define MP3_0523 (FILE_ABNBLDE01M | MP3PRIORITY_HIGH) +#define MP3_0524 (FILE_ABNCASS01M | MP3PRIORITY_MED) +#define MP3_0562 (FILE_APELELV02M | MP3PRIORITY_MED) +#define MP3_0754 (FILE_AVAULT2M | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0755 (FILE_AP29_12_ELM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0758 (FILE_AP14_09_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_0759 (FILE_AP19_07_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_075A (FILE_AP19_08_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_077A (FILE_ACICARR06M | MP3PRIORITY_MED) +#define MP3_CARR_WORRIES_ME (FILE_ACICARR11M | MP3PRIORITY_MED) +#define MP3_077C (FILE_ACIFARR08M | MP3PRIORITY_MED) +#define MP3_CIFEM_PATIENCE (FILE_ACIFARR12M | MP3PRIORITY_MED) +#define MP3_077E (FILE_ACIFEMA01M | MP3PRIORITY_MED) +#define MP3_077F (FILE_ACIFEMA04M | MP3PRIORITY_MED) +#define MP3_0780 (FILE_ACIFEMA07M | MP3PRIORITY_MED) +#define MP3_0781 (FILE_ACIFEMA08M | MP3PRIORITY_MED) +#define MP3_CIFEM_BE_SOMEWHERE (FILE_ACIFEMA09M | MP3PRIORITY_MED) +#define MP3_CIFEM_BOTHER_SOMEONE_ELSE (FILE_ACIFEMA14M | MP3PRIORITY_MED) +#define MP3_0784 (FILE_ACIFOST08M | MP3PRIORITY_MED) +#define MP3_FOSTER_LEAVE_ME_ALONE (FILE_ACIFOST12M | MP3PRIORITY_MED) +#define MP3_0786 (FILE_ACIGRIM05M | MP3PRIORITY_MED) +#define MP3_0787 (FILE_ACIGRIM06M | MP3PRIORITY_MED) +#define MP3_0788 (FILE_ACIGRIM07M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_BUG_OFF (FILE_ACIGRIM08M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_CRIMINAL_RECORD (FILE_ACIGRIM09M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_LOSER (FILE_ACIGRIM10M | MP3PRIORITY_MED) +#define MP3_078C (FILE_ACIHOPK09M | MP3PRIORITY_MED) +#define MP3_HOLO_IRRITATING (FILE_ACIHOPK11M | MP3PRIORITY_MED) +#define MP3_078E (FILE_ACIMALE02M | MP3PRIORITY_MED) +#define MP3_078F (FILE_ACIMALE03M | MP3PRIORITY_MED) +#define MP3_0790 (FILE_ACIMALE07M | MP3PRIORITY_MED) +#define MP3_CIM_BE_SOMEWHERE (FILE_ACIMALE09M | MP3PRIORITY_MED) +#define MP3_0792 (FILE_ACIMALE11M | MP3PRIORITY_MED) +#define MP3_0793 (FILE_ACIMALE13M | MP3PRIORITY_MED) +#define MP3_0794 (FILE_ACIROGE08M | MP3PRIORITY_MED) +#define MP3_HANGAR_LIVED_THIS_LONG (FILE_ACIROGE12M | MP3PRIORITY_MED) +#define MP3_FOSTER_WHAT_TO_SHOOT_AT (FILE_ATRFOST01M | MP3PRIORITY_MED) +#define MP3_FOSTER_ZEROED_THE_SIGHTS (FILE_ATRFOST02M | MP3PRIORITY_MED) +#define MP3_FOSTER_GOOD_SHOW (FILE_ATRFOST03M | MP3PRIORITY_MED) +#define MP3_CARR_WHAT_IS_IT (FILE_ATRCARR09M | MP3PRIORITY_MED) +#define MP3_CARR_A_LITTLE_BUSY (FILE_ATRCARR10M | MP3PRIORITY_MED) +#define MP3_CARR_PROUD_OF_YOU (FILE_ATRCARR11M | MP3PRIORITY_MED) +#define MP3_CIFEM_FOSTER (FILE_ACIFARR01M | MP3PRIORITY_MED) +#define MP3_CIFEM_COME_TO_SEE_ME (FILE_ACIFARR02M | MP3PRIORITY_MED) +#define MP3_CIFEM_PRACTICE_MAKES_PERFECT (FILE_ACIFARR03M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_KNOW_YOUR_ENEMY (FILE_ACIGRIM01M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_ALL_EARS (FILE_ACIGRIM03M | MP3PRIORITY_MED) +#define MP3_GRIMSHAW_GAP_IN_RECORDS (FILE_ACIGRIM04M | MP3PRIORITY_MED) +#define MP3_HOLO_LAST_MINUTE_TRAINING (FILE_ACIHOPK01M | MP3PRIORITY_MED) +#define MP3_HOLO_PRACTICE_MAKES_PERFECT (FILE_ACIHOPK04M | MP3PRIORITY_MED) +#define MP3_HOLO_HAVE_A_LIFE (FILE_ACIHOPK06M | MP3PRIORITY_MED) +#define MP3_HANGERGUY_DONT_SCREW_UP (FILE_ACIROGE01M | MP3PRIORITY_MED) +#define MP3_HANGERGUY_DONT_MAKE_A_MESS (FILE_ACIROGE02M | MP3PRIORITY_MED) +#define MP3_HANGERGUY_HALF_HOUR_AGO (FILE_ATRROGE01M | MP3PRIORITY_MED) +#define MP3_07B0 (FILE_ACICARR07M | MP3PRIORITY_MED) +#define MP3_07B1 (FILE_ACICARR08M | MP3PRIORITY_MED) +#define MP3_07B6 (FILE_AJOINST01M | MP3PRIORITY_MED) +#define MP3_07B7 (FILE_AJOINST02M | MP3PRIORITY_MED) +#define MP3_07B8 (FILE_AJOINST03M | MP3PRIORITY_MED) +#define MP3_07B9 (FILE_AJOINST04M | MP3PRIORITY_MED) +#define MP3_07BA (FILE_AP25_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_07C8 (FILE_AP29_13_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_07C9 (FILE_AP29_14_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_07CA (FILE_ACICARR09M | MP3PRIORITY_MED) +#define MP3_07CB (FILE_ACICARR10M | MP3PRIORITY_MED) +#define MP3_07DA (FILE_AP29_15_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_07DB (FILE_AP16_03_JOM | MP3PRIORITY_MED | 0x2000 | 0x4000) +#define MP3_07DC (FILE_ACARRBYE02M | MP3PRIORITY_MED) diff --git a/src/include/types.h b/src/include/types.h index ac7c4b548..6d4386daf 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3585,22 +3585,16 @@ union soundnumhack { s16 packed; struct { - u16 isruss : 1; - u16 id : 15; - } bits; + u16 hasconfig : 1; + u16 confignum : 15; + }; struct { - u16 isruss : 1; + u16 hasconfig : 1; u16 unk02 : 2; - u16 id : 13; - } bits2; - - struct { - u16 isruss : 1; - u16 unk02 : 2; - u16 unk04 : 2; + u16 mp3priority : 2; u16 id : 11; - } bits3; + }; }; struct audiorussmapping { @@ -6987,7 +6981,7 @@ struct mp3thing { }; struct mp3vars { - /*0x00*/ s32 var8009c390; + /*0x00*/ s32 romaddr; /*0x04*/ struct asistream *var8009c394; /*0x08*/ u8 *var8009c398; /*0x0c*/ s16 var8009c39c; @@ -7005,7 +6999,7 @@ struct mp3vars { /*0x24*/ s16 var8009c3b4; /*0x28*/ s32 samples; /*0x2c*/ s32 var8009c3bc; - /*0x30*/ s32 var8009c3c0; + /*0x30*/ s32 filesize; /*0x34*/ s32 var8009c3c4; /*0x38*/ struct mp3thing *var8009c3c8; /*0x3c*/ s32 var8009c3cc; diff --git a/src/lib/mp3.c b/src/lib/mp3.c index ed83f7b8a..204e67559 100644 --- a/src/lib/mp3.c +++ b/src/lib/mp3.c @@ -73,20 +73,20 @@ void mp3Init(ALHeap *heap) func00038b90(func00038ba8); } -void func00037d88(s32 arg0, s32 arg1) +void mp3PlayFile(s32 romaddr, s32 filesize) { if (g_Mp3Vars.var8009c3dc == NULL) { return; } - g_Mp3Vars.var8009c390 = arg0; - g_Mp3Vars.var8009c3c0 = arg1; + g_Mp3Vars.romaddr = romaddr; + g_Mp3Vars.filesize = filesize; g_Mp3Vars.var8009c3c4 = 0; g_Mp3Vars.var8009c3e8 = 0; g_Mp3Vars.var8009c3e4 = 0x7fff; g_Mp3Vars.var8009c3f0 = 5; - func00038cac(); + mp3Dma(); g_Mp3Vars.var8009c3e0 = 4; } @@ -123,7 +123,7 @@ s32 func00037ea4(void) } } -void func00037f08(s32 arg0, s32 arg1) +void func00037f08(s32 arg0, bool arg1) { if (arg0 < 0) { g_Mp3Vars.var8009c3e4 = 0; @@ -182,10 +182,10 @@ s32 func00037fc0(s32 arg0, Acmd **cmd) } if (g_Mp3Vars.var8009c3e0 == 4) { - func00038cac(); + mp3Dma(); if (g_Mp3Vars.var8009c3f0 == 0) { - g_Mp3Vars.var8009c394 = mp3main00044460(0, g_Mp3Vars.var8009c3dc, g_Mp3Vars.var8009c3c0); + g_Mp3Vars.var8009c394 = mp3main00044460(0, g_Mp3Vars.var8009c3dc, g_Mp3Vars.filesize); if (g_Mp3Vars.var8009c394 == NULL) { g_Mp3Vars.var8009c3e0 = 0; @@ -206,7 +206,7 @@ s32 func00037fc0(s32 arg0, Acmd **cmd) } if (g_Mp3Vars.var8009c3e0 == 5) { - func00038cac(); + mp3Dma(); if (g_Mp3Vars.var8009c3f0 == 0) { g_Mp3Vars.var8009c3e0 = 1; @@ -245,7 +245,7 @@ s32 func00037fc0(s32 arg0, Acmd **cmd) } } - func00038cac(); + mp3Dma(); if (g_Mp3Vars.var8009c3f1 == 0) { sp4c = 0; @@ -372,12 +372,12 @@ s32 func00038ba8(s32 arg0, u8 *arg1, s32 arg2, s32 arg3) g_Mp3Vars.var8009c3c4 = arg3; } - if (g_Mp3Vars.var8009c3c4 + arg2 > g_Mp3Vars.var8009c3c0) { - arg2 = g_Mp3Vars.var8009c3c0 - g_Mp3Vars.var8009c3c4; + if (g_Mp3Vars.var8009c3c4 + arg2 > g_Mp3Vars.filesize) { + arg2 = g_Mp3Vars.filesize - g_Mp3Vars.var8009c3c4; } proc = n_syn->dma(&sp1c); - sp1c = OS_K0_TO_PHYSICAL(proc(g_Mp3Vars.var8009c390 + g_Mp3Vars.var8009c3c4, arg2, 0)); + sp1c = OS_K0_TO_PHYSICAL(proc(g_Mp3Vars.romaddr + g_Mp3Vars.var8009c3c4, arg2, 0)); bcopy((u8 *)sp1c, arg1, arg2); @@ -386,12 +386,12 @@ s32 func00038ba8(s32 arg0, u8 *arg1, s32 arg2, s32 arg3) return arg2; } -void func00038cac(void) +void mp3Dma(void) { u32 state; ALDMAproc proc; proc = n_syn->dma(&state); - proc(g_Mp3Vars.var8009c390 + g_Mp3Vars.var8009c3c4, 0x400, 0); + proc(g_Mp3Vars.romaddr + g_Mp3Vars.var8009c3c4, 0x400, 0); } diff --git a/src/lib/naudio/n_csplayer.c b/src/lib/naudio/n_csplayer.c index 182a547be..83a6ceda8 100644 --- a/src/lib/naudio/n_csplayer.c +++ b/src/lib/naudio/n_csplayer.c @@ -487,7 +487,7 @@ void func00034fb8(N_ALCSPlayer *seqp, u8 channel) } } -void sndStartMp3(u8 arg0); +void sndStartMp3ByFilenum(u8 arg0); f32 _depth2Cents(u8 arg0); void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event) @@ -969,7 +969,7 @@ void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event) } break; case (AL_MIDI_FX_CTRL_6): - sndStartMp3(byte2); + sndStartMp3ByFilenum(byte2); break; case (0x20): seqp->chanState[chan].unk32 = byte2; diff --git a/src/lib/snd.c b/src/lib/snd.c index 33f178c20..320fe7741 100644 --- a/src/lib/snd.c +++ b/src/lib/snd.c @@ -18,27 +18,24 @@ #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; +struct curmp3 { + union soundnumhack sfxref; + u32 playing; u32 unk08; s32 unk0c; s32 unk10; s32 unk14; s32 unk18; + u32 romaddr; + u32 romsize; + s32 unk24; }; s32 g_NumSounds; u32 *g_ALSoundRomOffsets; s32 g_SndMaxFxBusses; u32 var80094eac; -struct var80094eb0 var80094eb0; -u32 var80094ecc; -u32 var80094ed0; -u32 var80094ed4; +struct curmp3 g_SndCurMp3; struct seqinstance g_SeqInstances[3]; ALHeap g_SndHeap; u32 var80095200; @@ -854,9 +851,9 @@ extern u8 _seqctlSegmentRomEnd; extern u8 _seqtblSegmentRomStart; extern u8 _sequencesSegmentRomStart; -u32 snd0000e9d0(void) +bool sndIsPlayingMp3(void) { - return var80094eb0.unk04; + return g_SndCurMp3.playing; } u16 snd0000e9dc(void) @@ -908,18 +905,18 @@ void snd0000ea80(u16 volume) } } -void snd0000eadc(void) +void sndResetCurMp3(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; + g_SndCurMp3.sfxref.id = 0; + g_SndCurMp3.sfxref.mp3priority = 0; + g_SndCurMp3.sfxref.unk02 = 0; + g_SndCurMp3.sfxref.hasconfig = false; + g_SndCurMp3.playing = false; + g_SndCurMp3.unk08 = 0; + g_SndCurMp3.unk0c = -1; + g_SndCurMp3.unk10 = -1; + g_SndCurMp3.unk14 = -1; + g_SndCurMp3.unk18 = -1; } #if VERSION >= VERSION_NTSC_1_0 @@ -2361,7 +2358,7 @@ void sndInit(void) mp3Init(&g_SndHeap); func00037f08(0x7fff, 1); - func00037f5c(0, 1); + func00037f5c(0, true); osSyncPrintf("RWI : MP3 player Initialising Done\n"); } @@ -2390,20 +2387,20 @@ bool sndIsMp3(u16 soundnum) union soundnumhack tmp; tmp.packed = soundnum & 0xffff; - return tmp.bits3.unk04 != 0; + return tmp.mp3priority != 0; } bool snd0000fbc4(s16 arg0) { if (!g_SndDisabled && g_SndMp3Enabled) { - if (func00037ea4() && var80094eb0.unk08 != 0) { + if (func00037ea4() && g_SndCurMp3.unk08 != 0) { return false; } func00037e1c(); - var80094eb0.unk04 = 0; - var80094eb0.unk0c = -1; + g_SndCurMp3.playing = false; + g_SndCurMp3.unk0c = -1; } return true; @@ -2825,8 +2822,8 @@ glabel sndTick /* 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) +/* 100dc: 3c108009 */ lui $s0,%hi(g_SndCurMp3) +/* 100e0: 26104eb0 */ addiu $s0,$s0,%lo(g_SndCurMp3) /* 100e4: 8e0b0004 */ lw $t3,0x4($s0) /* 100e8: 11600019 */ beqz $t3,.L00010150 /* 100ec: 00000000 */ nop @@ -2834,7 +2831,7 @@ glabel sndTick /* 100f4: 51800007 */ beqzl $t4,.L00010114 /* 100f8: 8e020024 */ lw $v0,0x24($s0) /* 100fc: 8e04001c */ lw $a0,0x1c($s0) -/* 10100: 0c00df62 */ jal func00037d88 +/* 10100: 0c00df62 */ jal mp3PlayFile /* 10104: 8e050020 */ lw $a1,0x20($s0) /* 10108: 1000008c */ b .L0001033c /* 1010c: 8fbf002c */ lw $ra,0x2c($sp) @@ -2858,8 +2855,8 @@ glabel sndTick /* 10148: 1000007b */ b .L00010338 /* 1014c: ae000004 */ sw $zero,0x4($s0) .L00010150: -/* 10150: 3c108009 */ lui $s0,%hi(var80094eb0) -/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0) +/* 10150: 3c108009 */ lui $s0,%hi(g_SndCurMp3) +/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(g_SndCurMp3) /* 10158: 8e02000c */ lw $v0,0xc($s0) /* 1015c: 3c0e800a */ lui $t6,%hi(g_Vars+0x34) /* 10160: 58400076 */ blezl $v0,.L0001033c @@ -2879,9 +2876,9 @@ glabel sndTick /* 10194: 30430003 */ andi $v1,$v0,0x3 /* 10198: 1323fffb */ beq $t9,$v1,.L00010188 /* 1019c: 00000000 */ nop -/* 101a0: 3c018009 */ lui $at,%hi(var80094eb0+0x10) +/* 101a0: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x10) /* 101a4: 1060000c */ beqz $v1,.L000101d8 -/* 101a8: ac234ec0 */ sw $v1,%lo(var80094eb0+0x10)($at) +/* 101a8: ac234ec0 */ sw $v1,%lo(g_SndCurMp3+0x10)($at) /* 101ac: 24010001 */ addiu $at,$zero,0x1 /* 101b0: 1061000c */ beq $v1,$at,.L000101e4 /* 101b4: 240b7cee */ addiu $t3,$zero,0x7cee @@ -2917,9 +2914,9 @@ glabel sndTick /* 10214: 30430003 */ andi $v1,$v0,0x3 /* 10218: 11c3fffb */ beq $t6,$v1,.L00010208 /* 1021c: 00000000 */ nop -/* 10220: 3c018009 */ lui $at,%hi(var80094eb0+0x14) +/* 10220: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x14) /* 10224: 1060000c */ beqz $v1,.L00010258 -/* 10228: ac234ec4 */ sw $v1,%lo(var80094eb0+0x14)($at) +/* 10228: ac234ec4 */ sw $v1,%lo(g_SndCurMp3+0x14)($at) /* 1022c: 24010001 */ addiu $at,$zero,0x1 /* 10230: 1061000c */ beq $v1,$at,.L00010264 /* 10234: 24187cf9 */ addiu $t8,$zero,0x7cf9 @@ -2955,9 +2952,9 @@ glabel sndTick /* 10294: 30430003 */ andi $v1,$v0,0x3 /* 10298: 1163fffb */ beq $t3,$v1,.L00010288 /* 1029c: 00000000 */ nop -/* 102a0: 3c018009 */ lui $at,%hi(var80094eb0+0x18) +/* 102a0: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x18) /* 102a4: 1060000c */ beqz $v1,.L000102d8 -/* 102a8: ac234ec8 */ sw $v1,%lo(var80094eb0+0x18)($at) +/* 102a8: ac234ec8 */ sw $v1,%lo(g_SndCurMp3+0x18)($at) /* 102ac: 24010001 */ addiu $at,$zero,0x1 /* 102b0: 1061000c */ beq $v1,$at,.L000102e4 /* 102b4: 240d77b7 */ addiu $t5,$zero,0x77b7 @@ -3173,8 +3170,8 @@ glabel sndTick /* 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) +/* 100dc: 3c108009 */ lui $s0,%hi(g_SndCurMp3) +/* 100e0: 26104eb0 */ addiu $s0,$s0,%lo(g_SndCurMp3) /* 100e4: 8e0b0004 */ lw $t3,0x4($s0) /* 100e8: 11600019 */ beqz $t3,.L00010150 /* 100ec: 00000000 */ nop @@ -3182,7 +3179,7 @@ glabel sndTick /* 100f4: 51800007 */ beqzl $t4,.L00010114 /* 100f8: 8e020024 */ lw $v0,0x24($s0) /* 100fc: 8e04001c */ lw $a0,0x1c($s0) -/* 10100: 0c00df62 */ jal func00037d88 +/* 10100: 0c00df62 */ jal mp3PlayFile /* 10104: 8e050020 */ lw $a1,0x20($s0) /* 10108: 1000008c */ b .L0001033c /* 1010c: 8fbf002c */ lw $ra,0x2c($sp) @@ -3206,8 +3203,8 @@ glabel sndTick /* 10148: 1000007b */ b .L00010338 /* 1014c: ae000004 */ sw $zero,0x4($s0) .L00010150: -/* 10150: 3c108009 */ lui $s0,%hi(var80094eb0) -/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(var80094eb0) +/* 10150: 3c108009 */ lui $s0,%hi(g_SndCurMp3) +/* 10154: 26104eb0 */ addiu $s0,$s0,%lo(g_SndCurMp3) /* 10158: 8e02000c */ lw $v0,0xc($s0) /* 1015c: 3c0e800a */ lui $t6,%hi(g_Vars+0x34) /* 10160: 58400076 */ blezl $v0,.L0001033c @@ -3227,9 +3224,9 @@ glabel sndTick /* 10194: 30430003 */ andi $v1,$v0,0x3 /* 10198: 1323fffb */ beq $t9,$v1,.L00010188 /* 1019c: 00000000 */ nop -/* 101a0: 3c018009 */ lui $at,%hi(var80094eb0+0x10) +/* 101a0: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x10) /* 101a4: 1060000c */ beqz $v1,.L000101d8 -/* 101a8: ac234ec0 */ sw $v1,%lo(var80094eb0+0x10)($at) +/* 101a8: ac234ec0 */ sw $v1,%lo(g_SndCurMp3+0x10)($at) /* 101ac: 24010001 */ addiu $at,$zero,0x1 /* 101b0: 1061000c */ beq $v1,$at,.L000101e4 /* 101b4: 240b7cee */ addiu $t3,$zero,0x7cee @@ -3265,9 +3262,9 @@ glabel sndTick /* 10214: 30430003 */ andi $v1,$v0,0x3 /* 10218: 11c3fffb */ beq $t6,$v1,.L00010208 /* 1021c: 00000000 */ nop -/* 10220: 3c018009 */ lui $at,%hi(var80094eb0+0x14) +/* 10220: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x14) /* 10224: 1060000c */ beqz $v1,.L00010258 -/* 10228: ac234ec4 */ sw $v1,%lo(var80094eb0+0x14)($at) +/* 10228: ac234ec4 */ sw $v1,%lo(g_SndCurMp3+0x14)($at) /* 1022c: 24010001 */ addiu $at,$zero,0x1 /* 10230: 1061000c */ beq $v1,$at,.L00010264 /* 10234: 24187cf9 */ addiu $t8,$zero,0x7cf9 @@ -3303,9 +3300,9 @@ glabel sndTick /* 10294: 30430003 */ andi $v1,$v0,0x3 /* 10298: 1163fffb */ beq $t3,$v1,.L00010288 /* 1029c: 00000000 */ nop -/* 102a0: 3c018009 */ lui $at,%hi(var80094eb0+0x18) +/* 102a0: 3c018009 */ lui $at,%hi(g_SndCurMp3+0x18) /* 102a4: 1060000c */ beqz $v1,.L000102d8 -/* 102a8: ac234ec8 */ sw $v1,%lo(var80094eb0+0x18)($at) +/* 102a8: ac234ec8 */ sw $v1,%lo(g_SndCurMp3+0x18)($at) /* 102ac: 24010001 */ addiu $at,$zero,0x1 /* 102b0: 1061000c */ beq $v1,$at,.L000102e4 /* 102b4: 240d77b7 */ addiu $t5,$zero,0x77b7 @@ -3445,7 +3442,7 @@ glabel sndTick /* 10510: 51200007 */ beqzl $t1,.NB00010530 /* 10514: 8e020024 */ lw $v0,0x24($s0) /* 10518: 8e04001c */ lw $a0,0x1c($s0) -/* 1051c: 0c00e456 */ jal func00037d88 +/* 1051c: 0c00e456 */ jal mp3PlayFile /* 10520: 8e050020 */ lw $a1,0x20($s0) /* 10524: 1000008c */ beqz $zero,.NB00010758 /* 10528: 8fbf002c */ lw $ra,0x2c($sp) @@ -3634,15 +3631,15 @@ bool sndIsDisabled(void) return g_SndDisabled; } -void sndStartMp3(u32 filenum) +void sndStartMp3ByFilenum(u32 filenum) { union soundnumhack sfxref; if (!g_SndDisabled && g_SndMp3Enabled) { sfxref.packed = 0; - sfxref.bits3.unk02 = 0; - sfxref.bits3.unk04 = 1; - sfxref.bits3.id = filenum; + sfxref.unk02 = 0; + sfxref.mp3priority = 1; // high priority + sfxref.id = filenum; sndStart(0, sfxref.packed, NULL, -1, -1, -1, -1, -1); } @@ -3658,8 +3655,8 @@ bool sndIsFiltered(s32 audio_id) union soundnumhack sfxref; sfxref.packed = audio_id; - if (sfxref.bits.isruss) { - if (g_AudioConfigs[g_AudioRussMappings[sfxref.bits.id].audioconfig_index].flags & AUDIOCONFIGFLAG_OFFENSIVE) { + if (sfxref.hasconfig) { + if (g_AudioConfigs[g_AudioRussMappings[sfxref.confignum].audioconfig_index].flags & AUDIOCONFIGFLAG_OFFENSIVE) { return true; } } @@ -3669,7 +3666,7 @@ bool sndIsFiltered(s32 audio_id) // audio ID, so his phrase can be said even with the lang filter on. // The switch value resolves to sfxref & 0x7ff, while hangar guy's // reference is 0x17ad. - switch (sfxref.bits3.id) { + switch (sfxref.id) { case SFX_ELVIS_KISS_MY_ALIEN_BUTT: case SFX_ELVIS_ILL_KICK_YOUR_ASS: case MP3_HANGERGUY_DONT_SCREW_UP: @@ -3710,11 +3707,11 @@ void sndAdjust(struct sndstate **handle, s32 arg1, s32 arg2, s32 pan, s32 soundn if (soundnum > 0) { sp20.packed = soundnum; - if (sp20.bits.isruss) { - s32 index = g_AudioRussMappings[sp20.bits.id].audioconfig_index; + if (sp20.hasconfig) { + s32 index = g_AudioRussMappings[sp20.confignum].audioconfig_index; - sp1c.packed = g_AudioRussMappings[sp20.bits.id].soundnum; - sp1c.bits.isruss = 0; + sp1c.packed = g_AudioRussMappings[sp20.confignum].soundnum; + sp1c.hasconfig = false; soundnum = sp1c.packed; @@ -3796,11 +3793,11 @@ struct sndstate *snd00010718(struct sndstate **handle, s32 arg1, s32 arg2, s32 a if (arg4) { sp30.packed = arg4; - if (sp30.bits.isruss) { - s32 index = g_AudioRussMappings[sp30.bits.id].audioconfig_index; + if (sp30.hasconfig) { + s32 index = g_AudioRussMappings[sp30.confignum].audioconfig_index; - sp2c.packed = g_AudioRussMappings[sp30.bits.id].soundnum; - sp2c.bits.isruss = 0; + sp2c.packed = g_AudioRussMappings[sp30.confignum].soundnum; + sp2c.hasconfig = false; arg4 = sp2c.packed; @@ -3922,7 +3919,7 @@ glabel sndStart /* 10a3c: c7a00034 */ lwc1 $f0,0x34($sp) /* 10a40: 97a5003a */ lhu $a1,0x3a($sp) /* 10a44: 01003025 */ or $a2,$t0,$zero -/* 10a48: 0c0042b9 */ jal snd00010ae4 +/* 10a48: 0c0042b9 */ jal sndStartMp3 /* 10a4c: 00003825 */ or $a3,$zero,$zero /* 10a50: 8faa0050 */ lw $t2,0x50($sp) /* 10a54: 11400002 */ beqz $t2,.L00010a60 @@ -4005,16 +4002,16 @@ glabel sndStart // } // // // 9cc -// sp40.packed = sp44.bits.isruss ? g_AudioRussMappings[sp44.bits.id].soundnum : sp44.packed; +// sp40.packed = sp44.hasconfig ? g_AudioRussMappings[sp44.confignum].soundnum : sp44.packed; // // // 9ec -// if (sp40.bits3.id == 0x37 || sp40.bits3.id == 9) { +// if (sp40.id == 0x37 || sp40.id == 9) { // return NULL; // } // // // a18 // if (sndIsMp3(sp40.packed)) { -// snd00010ae4(sp40.packed, sp3a, sp3d, 0); +// sndStartMp3(sp40.packed, sp3a, sp3d, 0); // // if (handle != NULL) { // *handle = NULL; @@ -4024,8 +4021,8 @@ glabel sndStart // } // // // a68 -// if (sp40.bits3.id < g_NumSounds) { -// return func00033820(arg0, sp40.bits3.id, sp3a, sp3d & 0x7f, +// if (sp40.id < g_NumSounds) { +// return func00033820(arg0, sp40.id, sp3a, sp3d & 0x7f, // sp34, sp3f, IS4MB() ? 0 : sp3e, handle); // } // @@ -4126,7 +4123,7 @@ glabel sndStart /* 10e18: c7a00034 */ lwc1 $f0,0x34($sp) /* 10e1c: 97a5003a */ lhu $a1,0x3a($sp) /* 10e20: 01003025 */ or $a2,$t0,$zero -/* 10e24: 0c0043a9 */ jal snd00010ae4 +/* 10e24: 0c0043a9 */ jal sndStartMp3 /* 10e28: 00003825 */ or $a3,$zero,$zero /* 10e2c: 8faa0050 */ lw $t2,0x50($sp) /* 10e30: 11400002 */ beqz $t2,.NB00010e3c @@ -4166,204 +4163,73 @@ glabel sndStart ); #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 sndStartMp3(s16 soundnum, s32 arg1, s32 arg2, s32 arg3) +{ + union soundnumhack sp24; + union soundnumhack sp20; + + sp24.packed = soundnum; + + if (!g_SndDisabled) { + if (sp24.hasconfig) { + sp20.packed = g_AudioRussMappings[sp24.confignum].soundnum; + sp20.hasconfig = false; + } else { + sp20.packed = soundnum; + } + + if (!g_SndCurMp3.playing + || ((sp20.mp3priority != 1 || g_SndCurMp3.sfxref.mp3priority != 1) + && sp20.mp3priority <= g_SndCurMp3.sfxref.mp3priority)) { + if (sp24.hasconfig) { + if (g_AudioConfigs[sp24.confignum].unk10 != -1) { + arg1 = g_AudioConfigs[sp24.confignum].unk10 * 32767 / 100; + } + + if (g_AudioConfigs[sp24.confignum].unk14 != -1) { + arg2 = g_AudioConfigs[sp24.confignum].unk14; + } + + // This is the same thing again + if (g_AudioConfigs[sp24.confignum].unk14 != -1) { + arg2 = g_AudioConfigs[sp24.confignum].unk14; + } + + if (g_Vars.langfilteron && (g_AudioConfigs[sp24.confignum].flags & AUDIOCONFIGFLAG_OFFENSIVE)) { + arg1 = 0; + } + } + + arg1 = arg1 * snd0000e9dc() / 0x7fff; + + g_SndCurMp3.romaddr = fileGetRomAddress(sp20.id); + g_SndCurMp3.romsize = fileGetRomSizeByFileNum(sp20.id); + + func00037f08(arg1, true); + func00037f5c(arg2, true); + + mp3PlayFile(g_SndCurMp3.romaddr, g_SndCurMp3.romsize); + + func00037f08(arg1, true); + func00037f5c(arg2, true); + + g_SndCurMp3.sfxref.packed = sp20.packed; + g_SndCurMp3.playing = true; + g_SndCurMp3.unk0c = -1; + g_SndCurMp3.unk24 = 0; + + if (g_SndCurMp3.sfxref.unk02 == 2) { + g_SndCurMp3.unk24 = 1; + } else if (g_SndCurMp3.sfxref.unk02 == 1) { + g_SndCurMp3.unk24 = 2; + } + + if ((sp24.hasconfig && (g_AudioConfigs[sp24.confignum].flags & AUDIOCONFIGFLAG_04)) || (arg3 & 1)) { + g_SndCurMp3.unk24 = 3; + } + } + } +} void sndPlayNosedive(s32 seconds) {