mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
audio_general, audio data import, naming lots of audio functions (#144)
* heapsort * suff * load init * split * split data * begone asm * names * names and cleanup * let's try this * woo macros * general * bgm macro * names
This commit is contained in:
Vendored
+5
-3
@@ -9,7 +9,8 @@
|
||||
"**/.github": true,
|
||||
"build/**": true,
|
||||
"expected/**": true,
|
||||
"tools/**": true
|
||||
"tools/**": true,
|
||||
"ctx.c" : true
|
||||
},
|
||||
"defines": [
|
||||
"_LANGUAGE_C"
|
||||
@@ -63,8 +64,9 @@
|
||||
"fox_option_assets.h": "c",
|
||||
"mods.h": "c",
|
||||
"i5.h": "c",
|
||||
"ast_warp_zone.h": "c"
|
||||
"sf64audio_provisional.h": "c"
|
||||
"ast_warp_zone.h": "c",
|
||||
"sf64audio_provisional.h": "c",
|
||||
"fox_enmy_assets.h": "c"
|
||||
},
|
||||
"C_Cpp_Runner.msvcBatchPath": ""
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,54 +7,6 @@
|
||||
#include "sf64player.h"
|
||||
#include "sf64mesg.h"
|
||||
|
||||
// audio
|
||||
void AudioLoad_Init(void);
|
||||
|
||||
void func_80016A50(void);
|
||||
void func_800182F4(s32);
|
||||
void Audio_PlaySfx(u32, f32*, u8, f32*, f32*, s8*);
|
||||
void func_80019290(s32, void*);
|
||||
void func_8001A38C(u8, f32*);
|
||||
void Audio_KillSfx(f32*);
|
||||
void func_8001A55C(f32*, u32);
|
||||
void func_8001A838(u32);
|
||||
void func_8001ACDC(s32);
|
||||
void func_8001AD00(u32);
|
||||
void func_8001AE58(void);
|
||||
s32 func_8001AE78(void);
|
||||
s32 func_8001AED4(void);
|
||||
void func_8001AF40(s32);
|
||||
u8* func_8001C3EC(void);
|
||||
void func_8001C8B8(u8);
|
||||
void func_8001CA24(u8);
|
||||
void func_8001CB80(u8, u8);
|
||||
void func_8001CCDC(u8, f32 *);
|
||||
void func_8001CE28(u8, f32 *);
|
||||
void func_8001CFA8(f32);
|
||||
void func_8001D034(f32*, s32, u8);
|
||||
void func_8001D10C(f32*, u32);
|
||||
void func_8001D15C(u8);
|
||||
void func_8001D1C8(u8, u32);
|
||||
void func_8001D2FC(f32*, u16);
|
||||
void func_8001D3A0(f32*, u16);
|
||||
void func_8001D400(s8);
|
||||
void func_8001D410(s32);
|
||||
void func_8001D444(u8, u16, u8, u8);
|
||||
void func_8001D4AC(u16, u8, u8, u8);
|
||||
void func_8001D520(void);
|
||||
void func_8001D638(u8);
|
||||
void func_8001D6DC(s32);
|
||||
void func_8001DA90(u8);
|
||||
void func_8001DBD0(s32);
|
||||
void func_8001DC6C(u8, u16);
|
||||
void func_8001D8A8(u8, u8);
|
||||
void func_8001D8F4(u8);
|
||||
void func_8001DCE0(void);
|
||||
void func_8001DECC(void);
|
||||
|
||||
SPTask* func_8001DF50(void);
|
||||
void func_8001EE00(void);
|
||||
|
||||
// fox_360
|
||||
void func_8002ED60(Player*);
|
||||
void func_8002E3E0(Actor*);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "sys.h"
|
||||
|
||||
#include "sf64audio_external.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "context.h"
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#define VEC3F_SQ(vec) (SQ((vec).x) + SQ((vec).y) + SQ((vec).z))
|
||||
#define DOT_XYZ(a, b) ((a).x * (b).x + (a).y * (b).y + (a).z * (b).z)
|
||||
#define ABS(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define ABSF(x) ((x) >= 0.0f ? (x) : -(x))
|
||||
#define ROUND(float) ((s32)((float)+0.5f))
|
||||
|
||||
#define RAD_TO_DEG(radians) (((radians) * 180.0f) / M_PI)
|
||||
#define DEG_TO_RAD(degrees) (((degrees) / 180.0f) * M_PI)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef PREVENT_CONTEXT_REORDERING_H
|
||||
#define PREVENT_CONTEXT_REORDERING_H
|
||||
|
||||
extern int Dummyhalf;
|
||||
// extern int Dummyhalf;
|
||||
struct Dummy0 {int x;};
|
||||
struct Dummy1 {int x;};
|
||||
struct Dummy2 {int x;};
|
||||
@@ -74,7 +74,7 @@ struct Dummy68 {int x;};
|
||||
struct Dummy69 {int x;};
|
||||
struct Dummy70 {int x;};
|
||||
struct Dummy71 {int x;};
|
||||
struct Dummy72 {int x;};
|
||||
// struct Dummy72 {int x;};
|
||||
// struct Dummy73 {int x;};
|
||||
// struct Dummy75 { int x; };
|
||||
// struct Dummy76 { int x; };
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
#ifndef SF64_AUDIO_EXTERNAL_H
|
||||
#define SF64_AUDIO_EXTERNAL_H
|
||||
|
||||
#include "sys.h"
|
||||
#include "audioseq_cmd.h"
|
||||
|
||||
#define AUDIO_PLAY_SFX(sfxId, srcPos, token) (Audio_PlaySfx((sfxId),(srcPos),(token),&gDefaultMod,&gDefaultMod,&gDefaultReverb))
|
||||
#define AUDIO_PLAY_BGM(seqId) Audio_PlaySequence(SEQ_PLAYER_BGM, (seqId), 0, -1)
|
||||
|
||||
typedef enum {
|
||||
SEQ_ID_0,
|
||||
SEQ_ID_1,
|
||||
SEQ_ID_2,
|
||||
SEQ_ID_3,
|
||||
SEQ_ID_4,
|
||||
SEQ_ID_5,
|
||||
SEQ_ID_6,
|
||||
SEQ_ID_7,
|
||||
SEQ_ID_8,
|
||||
SEQ_ID_9,
|
||||
SEQ_ID_10,
|
||||
SEQ_ID_11,
|
||||
SEQ_ID_12,
|
||||
SEQ_ID_13,
|
||||
SEQ_ID_14,
|
||||
SEQ_ID_15,
|
||||
SEQ_ID_16,
|
||||
SEQ_ID_17,
|
||||
SEQ_ID_18,
|
||||
SEQ_ID_19,
|
||||
SEQ_ID_20,
|
||||
SEQ_ID_21,
|
||||
SEQ_ID_22,
|
||||
SEQ_ID_23,
|
||||
SEQ_ID_24,
|
||||
SEQ_ID_25,
|
||||
SEQ_ID_26,
|
||||
SEQ_ID_27,
|
||||
SEQ_ID_28,
|
||||
SEQ_ID_29,
|
||||
SEQ_ID_30,
|
||||
SEQ_ID_31,
|
||||
SEQ_ID_32,
|
||||
SEQ_ID_33,
|
||||
SEQ_ID_34,
|
||||
SEQ_ID_35,
|
||||
SEQ_ID_36,
|
||||
SEQ_ID_37,
|
||||
SEQ_ID_38,
|
||||
SEQ_ID_39,
|
||||
SEQ_ID_40,
|
||||
SEQ_ID_41,
|
||||
SEQ_ID_42,
|
||||
SEQ_ID_43,
|
||||
SEQ_ID_44,
|
||||
SEQ_ID_45,
|
||||
SEQ_ID_46,
|
||||
SEQ_ID_47,
|
||||
SEQ_ID_48,
|
||||
SEQ_ID_49,
|
||||
SEQ_ID_50,
|
||||
SEQ_ID_51,
|
||||
SEQ_ID_52,
|
||||
SEQ_ID_53,
|
||||
SEQ_ID_54,
|
||||
SEQ_ID_55,
|
||||
SEQ_ID_56,
|
||||
SEQ_ID_57,
|
||||
SEQ_ID_58,
|
||||
SEQ_ID_59,
|
||||
SEQ_ID_60,
|
||||
SEQ_ID_61,
|
||||
SEQ_ID_62,
|
||||
SEQ_ID_63,
|
||||
SEQ_ID_64,
|
||||
SEQ_ID_65,
|
||||
SEQ_ID_66,
|
||||
SEQ_ID_67,
|
||||
SEQ_ID_68,
|
||||
SEQ_ID_69,
|
||||
} BgmSeqIds;
|
||||
|
||||
extern f32 gDefaultSfxSource[];
|
||||
extern f32 gDefaultMod;
|
||||
extern s8 gDefaultReverb;
|
||||
|
||||
void Audio_PlaySfx(u32 sfxId, f32* sfxSource, u8 token, f32* freqMod, f32* volMod, s8* reverbAdd);
|
||||
void Audio_KillSfxByBank(u8 bankId);
|
||||
void Audio_StopSfxByBankAndSource(u8 bankId, f32* sfxSource);
|
||||
void Audio_KillSfxByBankAndSource(u8 bankId, f32* sfxSource);
|
||||
void Audio_KillSfxBySource(f32* sfxSource);
|
||||
void Audio_KillSfxBySourceAndId(f32* sfxSource, u32 sfxId);
|
||||
void Audio_KillSfxByTokenAndId(u8 token, u32 sfxId);
|
||||
void Audio_KillSfxById(u32 sfxId);
|
||||
void Audio_PlayVoice(s32 msgId);
|
||||
void Audio_PlayVoiceWithoutBGM(u32 msgId);
|
||||
void Audio_ClearVoice(void);
|
||||
s32 Audio_GetCurrentVoice(void);
|
||||
s32 Audio_GetCurrentVoiceStatus(void);
|
||||
void func_8001AF40(u8 unkVoiceParam);
|
||||
u8* Audio_UpdateFrequencyAnalysis(void);
|
||||
void func_8001C8B8(u8 playerId);
|
||||
void func_8001CA24(u8 playerId);
|
||||
void func_8001CB80(u8 playerId, u8 arg1);
|
||||
void func_8001CCDC(u8 playerId, f32* sfxSource);
|
||||
void func_8001CE28(u8 playerId, f32* sfxSource);
|
||||
void func_8001CF60(f32* sfxSource);
|
||||
void func_8001CFA8(f32 arg0);
|
||||
void func_8001D034(f32* sfxSource, u32 sfxId, u8 semitones);
|
||||
void func_8001D0B4(f32* sfxSource, u32 sfxId, f32 freqMod);
|
||||
void func_8001D10C(f32* sfxSource, u32 sfxId);
|
||||
void func_8001D15C(u8 arg0);
|
||||
void func_8001D1C8(u8 arg0, u8 arg1);
|
||||
void func_8001D2FC(f32* sfxSource, u16 arg1);
|
||||
void func_8001D3A0(f32* sfxSource, u16 arg1);
|
||||
void Audio_SetBaseSfxReverb(s8 reverb);
|
||||
void Audio_SetBgmParam(s8 bgmParam);
|
||||
void Audio_PlaySequence(u8 seqPlayId, u16 seqId, u8 fadeinTime, u8 bgmParam);
|
||||
void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinTime);
|
||||
void func_8001D520(void);
|
||||
void func_8001D638(u8 arg0);
|
||||
void func_8001D6DC(u8 arg0);
|
||||
void func_8001D8A8(u8 audioType, u8 volume);
|
||||
void Audio_PlaySoundTest(u8 enable);
|
||||
void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 duration, u8 unused);
|
||||
void Audio_PlaySoundTestTrack(u8 trackNumber);
|
||||
void Audio_FadeOutAll(u8 fadeoutTime);
|
||||
void Audio_KillAllSfx(void);
|
||||
void Audio_SetAudioSpec(u8 unused, u16 specParam);
|
||||
void Audio_PlayBgm(u16 seqId);
|
||||
|
||||
// used by sys or related
|
||||
void AudioLoad_Init(void);
|
||||
void func_80016A50(void);
|
||||
void Audio_InitSounds(void);
|
||||
void Audio_Update(void);
|
||||
SPTask* func_8001DF50(void);
|
||||
void func_8001EE00(void);
|
||||
|
||||
|
||||
#endif
|
||||
+310
-231
File diff suppressed because it is too large
Load Diff
@@ -137,7 +137,7 @@ typedef struct {
|
||||
/* 0x00 */ Object obj;
|
||||
/* 0x1C */ ObjectInfo info;
|
||||
/* 0x40 */ char unk40[0x8];
|
||||
/* 0x48 */ f32 sfxPos[3];
|
||||
/* 0x48 */ f32 sfxSource[3];
|
||||
/* 0x54 */ f32 unk_54;
|
||||
} Object_58; // size = 0x58
|
||||
|
||||
@@ -155,7 +155,7 @@ typedef struct {
|
||||
/* 0x5C */ f32 unk_5C;
|
||||
/* 0x60 */ f32 unk_60;
|
||||
/* 0x64 */ Vec3f vel;
|
||||
/* 0x70 */ f32 sfxPos[3];
|
||||
/* 0x70 */ f32 sfxSource[3];
|
||||
/* 0x7C */ char pad7C[4];
|
||||
} Object_80; // size = 0x80
|
||||
|
||||
@@ -182,7 +182,7 @@ typedef struct {
|
||||
/* 0x50 */ f32 unk_50;
|
||||
/* 0x54 */ f32 unk_54;
|
||||
/* 0x58 */ f32 unk_58;
|
||||
/* 0x5C */ f32 sfxPos[3];
|
||||
/* 0x5C */ f32 sfxSource[3];
|
||||
/* 0x68 */ f32 scale;
|
||||
} Item; // size 0x6C
|
||||
|
||||
@@ -206,7 +206,7 @@ typedef struct {
|
||||
/* 0x78 */ s16 unk_78;
|
||||
/* 0x7A */ s16 unk_7A;
|
||||
/* 0x7C */ char pad7C[4];
|
||||
/* 0x80 */ f32 sfxPos[3];
|
||||
/* 0x80 */ f32 sfxSource[3];
|
||||
} Effect; // size 0x8C
|
||||
|
||||
typedef struct {
|
||||
@@ -239,7 +239,7 @@ typedef struct {
|
||||
/* 0x0D8 */ f32 fwork[50];
|
||||
/* 0x1A0 */ Vec3f vwork[50];
|
||||
/* 0x3F8 */ f32 unk_3F8;
|
||||
/* 0x3FC */ f32 sfxPos[3];
|
||||
/* 0x3FC */ f32 sfxSource[3];
|
||||
} Boss; // size = 0x408
|
||||
|
||||
#define DMG_BEAM 1
|
||||
@@ -281,7 +281,7 @@ typedef struct {
|
||||
/* 0x0E6 */ s16 unk_0E6;
|
||||
/* 0x0E8 */ Vec3f vel;
|
||||
/* 0x0F4 */ Vec3f unk_0F4;
|
||||
/* 0x100 */ f32 sfxPos[3];
|
||||
/* 0x100 */ f32 sfxSource[3];
|
||||
/* 0x10C */ f32 gravity;
|
||||
/* 0x110 */ f32 scale;
|
||||
/* 0x114 */ f32 fwork[30];
|
||||
|
||||
+37
-32
@@ -16,6 +16,7 @@ typedef enum PlayerForm {
|
||||
/* 2 */ FORM_BLUE_MARINE,
|
||||
/* 3 */ FORM_ON_FOOT,
|
||||
/* 4 */ FORM_UNK_4,
|
||||
/*-1 */ FORM_NONE=255,
|
||||
} PlayerForm;
|
||||
|
||||
typedef enum DrawMode {
|
||||
@@ -53,25 +54,6 @@ typedef enum PlayerState1C8 {
|
||||
/* 13 */ PLAYERSTATE_1C8_13,
|
||||
} PlayerState1C8;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 rightState;
|
||||
/* 0x01 */ u8 leftState;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ u8 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
} WingInfo; // size = 0x3C
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ PLAYERSHOT_0, // single laser?
|
||||
/* 1 */ PLAYERSHOT_1, // twin laser?
|
||||
@@ -99,7 +81,7 @@ typedef struct {
|
||||
/* 0x2C */ f32 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 sfxPos[3];
|
||||
/* 0x38 */ f32 sfxSource[3];
|
||||
/* 0x44 */ f32 unk_44;
|
||||
/* 0x48 */ f32 unk_48;
|
||||
/* 0x4C */ f32 unk_4C;
|
||||
@@ -113,6 +95,38 @@ typedef struct {
|
||||
/* 0x6C */ u8 bonus;
|
||||
} PlayerShot; // size = 0x70
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 rightState;
|
||||
/* 0x01 */ u8 leftState;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ u8 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
} WingInfo; // size = 0x3C
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 levelType;
|
||||
/* 0x01 */ u8 form;
|
||||
/* 0x04 */ f32 *srcPos;
|
||||
/* 0x08 */ f32 *srcVel;
|
||||
/* 0x0C */ u8 boost;
|
||||
/* 0x0D */ u8 brake;
|
||||
/* 0x10 */ f32 yVel;
|
||||
/* 0x14 */ u8 bank;
|
||||
/* 0x18 */ f32 zRot;
|
||||
/* 0x1C */ u8 roll;
|
||||
} PlayerSfx; // size = 0x20
|
||||
|
||||
typedef struct Player {
|
||||
/* 0x000 */ f32 unk_000;
|
||||
/* 0x004 */ f32 unk_004;
|
||||
@@ -273,18 +287,9 @@ typedef struct Player {
|
||||
/* 0x2E0 */ Vec3f hit3;
|
||||
/* 0x2EC */ Vec3f hit4;
|
||||
/* 0x2F8 */ Vec3f jointTable[30];
|
||||
/* 0x460 */ f32 sfxPos[3];
|
||||
/* 0x460 */ f32 sfxVel[3];
|
||||
/* 0x478 */ u8 levelType;
|
||||
/* 0x479 */ u8 form2;
|
||||
/* 0x47C */ f32 *srcPos;
|
||||
/* 0x480 */ f32 *srcVel;
|
||||
/* 0x484 */ s8 boost;
|
||||
/* 0x485 */ s8 brake;
|
||||
/* 0x488 */ f32 yVel;
|
||||
/* 0x48C */ u8 unk_48C;
|
||||
/* 0x490 */ f32 unk_490;
|
||||
/* 0x494 */ u8 unk_494;
|
||||
/* 0x460 */ f32 sfxSource[3];
|
||||
/* 0x46C */ f32 sfxVel[3];
|
||||
/* 0x478 */ PlayerSfx sfx;
|
||||
/* 0x498 */ s32 timer_498;
|
||||
/* 0x49C */ WingInfo wings;
|
||||
/* 0x4D8 */ f32 unk_4D8;
|
||||
|
||||
@@ -7,21 +7,6 @@
|
||||
#include "sf64object.h"
|
||||
#include "sf64player.h"
|
||||
|
||||
extern f32 gDefaultSfxPos[];
|
||||
extern f32 gDefaultScale;
|
||||
extern s8 gDefaultReverb;
|
||||
extern s8 gThreadCmdWritePos;
|
||||
extern s8 gThreadCmdReadPos;
|
||||
extern OSMesgQueue* gAudioTaskStartQueue;
|
||||
extern OSMesgQueue* gThreadCmdProcQueue;
|
||||
extern OSMesgQueue* gAudioUnkQueue;
|
||||
extern OSMesgQueue* gAudioResetQueue;
|
||||
|
||||
extern OSMesg D_80156600[1];
|
||||
extern OSMesg D_80156608[4];
|
||||
extern OSMesg D_80156618[1];
|
||||
extern OSMesg D_8015661C[1];
|
||||
|
||||
// fox_360
|
||||
extern s32 D_800C9B4C;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ gSoundFontTableInitEntries = 0x800C3AA0;
|
||||
gSeqFontTableInit = 0x800C3CB0;
|
||||
|
||||
// data
|
||||
D_800C57E8 = 0x800C57E8;
|
||||
gSamplesPerWavePeriod = 0x800C57E8; // size:4
|
||||
|
||||
gChannelsPerBank = 0x800C5CE0; //type:u8 size:0x1C
|
||||
gUsedChannelsPerBank = 0x800C5CFC; //type:u8 size:0x1C
|
||||
@@ -15,27 +15,27 @@ gSfxRequestWriteIndex = 0x800C5D18;
|
||||
gSfxRequestReadIndex = 0x800C5D1C;
|
||||
gSfxChannelLayout = 0x800C5D20;
|
||||
D_800C5D24 = 0x800C5D24;
|
||||
gDefaultSfxPos = 0x800C5D28;
|
||||
gDefaultScale = 0x800C5D34;
|
||||
gDefaultSfxSource = 0x800C5D28;
|
||||
gDefaultMod = 0x800C5D34;
|
||||
gDefaultReverb = 0x800C5D3C;
|
||||
D_800C5D40 = 0x800C5D40;
|
||||
gAudioFrameCounter = 0x800C5D40;
|
||||
gSeqCmdWritePos = 0x800C5D44;
|
||||
gSeqCmdReadPos = 0x800C5D48;
|
||||
gStartSeqDisabled = 0x800C5D4C;
|
||||
gSoundModeList = 0x800C5D50;
|
||||
D_800C5D54 = 0x800C5D54;
|
||||
sNewAudioSpecId = 0x800C5D54;
|
||||
D_800C5D58 = 0x800C5D58;
|
||||
|
||||
D_800C5D60 = 0x800C5D60;
|
||||
D_800C5D64 = 0x800C5D64;
|
||||
D_800C5D68 = 0x800C5D68;
|
||||
sBaseReverb = 0x800C5D60;
|
||||
sAudioSpecReverb = 0x800C5D64;
|
||||
sVolumeSettings = 0x800C5D68;
|
||||
D_800C5D6C = 0x800C5D6C;
|
||||
D_800C5E38 = 0x800C5E38;
|
||||
D_800C5E58 = 0x800C5E58;
|
||||
|
||||
D_800C5E70 = 0x800C5E70;
|
||||
gSfxVolScale = 0x800C5E74;
|
||||
gSfxFreqScale = 0x800C5E78;
|
||||
gSfxFreqMod = 0x800C5E74;
|
||||
gSfxVolMod = 0x800C5E78;
|
||||
gPlaylistIndex = 0x800C5E7C;
|
||||
gPlaylistTimer = 0x800C5E80;
|
||||
gPlaylistCmdIndex = 0x800C5E84;
|
||||
@@ -50,8 +50,8 @@ D_800C738C = 0x800C738C;
|
||||
D_800C7390 = 0x800C7390;
|
||||
D_800C7394 = 0x800C7394;
|
||||
D_800C7398 = 0x800C7398;
|
||||
D_800C7414 = 0x800C7414;
|
||||
D_800C7418 = 0x800C7418;
|
||||
D_800C741C = 0x800C741C;
|
||||
D_800C749C = 0x800C749C;
|
||||
|
||||
gAudioSpecs = 0x800C76B8;
|
||||
@@ -76,10 +76,50 @@ gCurCmdReadPos = 0x800C7C74;
|
||||
gThreadCmdQueueFinished = 0x800C7C78;
|
||||
|
||||
// bss
|
||||
D_80145D40 = 0x80145D40;
|
||||
D_80145D48 = 0x80145D48; // size:0x400
|
||||
D_80146148 = 0x80146148; // size:0x400
|
||||
D_80146548 = 0x80146548;
|
||||
D_80146D54 = 0x80146D54;
|
||||
D_80146D58 = 0x80146D58;
|
||||
D_80146D5C = 0x80146D5C;
|
||||
D_80146D60 = 0x80146D60;
|
||||
D_80146D64 = 0x80146D64;
|
||||
D_80146D68 = 0x80146D68;
|
||||
D_80146D6C = 0x80146D6C;
|
||||
D_80146D70 = 0x80146D70;
|
||||
|
||||
D_80146D80 = 0x80146D80;
|
||||
|
||||
gSlowLoads = 0x80146D90; // size:0xC4
|
||||
|
||||
gSfxRequests = 0x80146E60;
|
||||
gSfxBanks = 0x80148660; //size:0x12C0
|
||||
gSfxBankListEnd = 0x80149920;
|
||||
gSfxBankFreeListStart = 0x80149928;
|
||||
gSfxBankUnused = 0x80149930;
|
||||
gActiveSfx = 0x80149938;
|
||||
gCurSfxPlayerChannelIndex = 0x80149A78;
|
||||
gSfxBankMuted = 0x80149A7C;
|
||||
gSfxVolumeMods = 0x80149A88;
|
||||
D_80149AD8 = 0x80149AD8;
|
||||
D_80149ED8 = 0x80149ED8;
|
||||
D_8014A2D8 = 0x8014A2D8;
|
||||
D_8014A8D8 = 0x8014A8D8;
|
||||
D_8014A958 = 0x8014A958;
|
||||
gSeqRequests = 0x8014A978;
|
||||
gNumSeqRequests = 0x8014A9A0;
|
||||
gAudioSeqCmds = 0x8014A9A8;
|
||||
gActiveSequences = 0x8014ADA8; //size:0x960
|
||||
gDelayedSeqCmdFlags = 0x8014B708;
|
||||
gDelayedSeqCmds = 0x8014B710;
|
||||
gSfxChannelState = 0x8014B790;
|
||||
gPlayerNoise = 0x8014B850;
|
||||
D_8014BA10 = 0x8014BA10;
|
||||
D_8014BA20 = 0x8014BA20;
|
||||
D_8014BA24 = 0x8014BA24;
|
||||
D_8014BA28 = 0x8014BA28;
|
||||
|
||||
gAudioContextStart = 0x8014BA40; // size:0x10
|
||||
gSynthReverbs = 0x8014BA50; // size:0x750
|
||||
D_8014C1B0 = 0x8014C1B0;
|
||||
@@ -175,10 +215,10 @@ sThreadCmdProcQueue = 0x80155DB8;
|
||||
sAudioUnkQueue = 0x80155DD0;
|
||||
sAudioResetQueue = 0x80155DE8;
|
||||
gThreadCmdBuffer = 0x80155E00;
|
||||
D_80156600 = 0x80156600;
|
||||
D_80156608 = 0x80156608;
|
||||
D_80156618 = 0x80156618;
|
||||
D_8015661C = 0x8015661C;
|
||||
sAudioTaskStartMsg = 0x80156600;
|
||||
sThreadCmdProcMsg = 0x80156608;
|
||||
sAudioUnkMsg = 0x80156618;
|
||||
sAudioResetMsg = 0x8015661C;
|
||||
|
||||
|
||||
// functions
|
||||
@@ -362,71 +402,71 @@ func_800168BC = 0x800168BC;
|
||||
|
||||
|
||||
func_80016A50 = 0x80016A50;
|
||||
func_80016A58 = 0x80016A58;
|
||||
func_80016BC0 = 0x80016BC0;
|
||||
func_80016CDC = 0x80016CDC;
|
||||
func_80016EE4 = 0x80016EE4;
|
||||
func_80016FF0 = 0x80016FF0;
|
||||
func_80017360 = 0x80017360;
|
||||
Audio_GetSfxFalloff = 0x80016A58;
|
||||
Audio_GetSfxReverb = 0x80016BC0;
|
||||
Audio_GetSfxPan = 0x80016CDC;
|
||||
Audio_GetSfxFreqMod = 0x80016EE4;
|
||||
Audio_SetSfxProperties = 0x80016FF0;
|
||||
Audio_UpdateDopplerShift = 0x80017360;
|
||||
func_80017494 = 0x80017494;
|
||||
func_80017550 = 0x80017550;
|
||||
func_80017588 = 0x80017588;
|
||||
func_80017600 = 0x80017600;
|
||||
func_80017760 = 0x80017760;
|
||||
func_800177C8 = 0x800177C8;
|
||||
func_800182F4 = 0x800182F4;
|
||||
func_8001831C = 0x8001831C;
|
||||
func_8001839C = 0x8001839C;
|
||||
func_80018410 = 0x80018410;
|
||||
func_80018470 = 0x80018470;
|
||||
func_800184D4 = 0x800184D4;
|
||||
Audio_ResetSfxChannelState = 0x80017588;
|
||||
Audio_StartSequence = 0x80017600;
|
||||
Audio_StopSequence = 0x80017760;
|
||||
Audio_ProcessSeqCmd = 0x800177C8;
|
||||
Audio_QueueSeqCmd = 0x800182F4;
|
||||
Audio_ProcessSeqCmds = 0x8001831C;
|
||||
Audio_GetActiveSeqId = 0x8001839C;
|
||||
Audio_SeqCmdNotQueued = 0x80018410;
|
||||
Audio_SeqCmdValueNotQueued = 0x80018470;
|
||||
Audio_ResetSequenceRequests = 0x800184D4;
|
||||
func_800184EC = 0x800184EC;
|
||||
func_800185A0 = 0x800185A0;
|
||||
func_800185F8 = 0x800185F8;
|
||||
func_80018E9C = 0x80018E9C;
|
||||
func_80018EE0 = 0x80018EE0;
|
||||
Audio_SetSequenceFade = 0x800185A0;
|
||||
Audio_UpdateActiveSequences = 0x800185F8;
|
||||
Audio_SetDelayedSeqCmd = 0x80018E9C;
|
||||
Audio_UpdateDelayedSeqCmds = 0x80018EE0;
|
||||
func_80018FA4 = 0x80018FA4;
|
||||
func_80019068 = 0x80019068;
|
||||
func_800190E4 = 0x800190E4;
|
||||
func_80019158 = 0x80019158;
|
||||
func_800191BC = 0x800191BC;
|
||||
Audio_ResetActiveSequences = 0x80019068;
|
||||
Audio_ResetActiveSequencesAndVolume = 0x800190E4;
|
||||
Audio_SetSfxBanksMute = 0x80019158;
|
||||
Audio_ClearBGMMute = 0x800191BC;
|
||||
Audio_PlaySfx = 0x80019218;
|
||||
func_80019290 = 0x80019290;
|
||||
func_80019434 = 0x80019434;
|
||||
func_800197AC = 0x800197AC;
|
||||
func_800198C0 = 0x800198C0;
|
||||
func_8001A01C = 0x8001A01C;
|
||||
func_8001A290 = 0x8001A290;
|
||||
func_8001A38C = 0x8001A38C;
|
||||
func_8001A4B8 = 0x8001A4B8;
|
||||
Audio_KillSfx = 0x8001A500;
|
||||
func_8001A55C = 0x8001A55C;
|
||||
func_8001A6C4 = 0x8001A6C4;
|
||||
func_8001A838 = 0x8001A838;
|
||||
func_8001A988 = 0x8001A988;
|
||||
func_8001A9EC = 0x8001A9EC;
|
||||
func_8001AA90 = 0x8001AA90;
|
||||
func_8001AAE4 = 0x8001AAE4;
|
||||
func_8001AB50 = 0x8001AB50;
|
||||
func_8001ACDC = 0x8001ACDC;
|
||||
func_8001AD00 = 0x8001AD00;
|
||||
func_8001AD44 = 0x8001AD44;
|
||||
func_8001AE58 = 0x8001AE58;
|
||||
func_8001AE78 = 0x8001AE78;
|
||||
func_8001AED4 = 0x8001AED4;
|
||||
Audio_RemoveMatchingSfxRequests = 0x80019290;
|
||||
Audio_ProcessSfxRequest = 0x80019434;
|
||||
Audio_RemoveSfxBankEntry = 0x800197AC;
|
||||
Audio_ChooseActiveSfx = 0x800198C0;
|
||||
Audio_PlayActiveSfx = 0x8001A01C;
|
||||
Audio_KillSfxByBank = 0x8001A290;
|
||||
Audio_StopSfxByBankAndSource = 0x8001A38C;
|
||||
Audio_KillSfxByBankAndSource = 0x8001A4B8;
|
||||
Audio_KillSfxBySource = 0x8001A500;
|
||||
Audio_KillSfxBySourceAndId = 0x8001A55C;
|
||||
Audio_KillSfxByTokenAndId = 0x8001A6C4;
|
||||
Audio_KillSfxById = 0x8001A838;
|
||||
Audio_ProcessSfxRequests = 0x8001A988;
|
||||
Audio_SetSfxVolumeMod = 0x8001A9EC;
|
||||
Audio_UpdateSfxVolumeMod = 0x8001AA90;
|
||||
Audio_PlayAllSfx = 0x8001AAE4;
|
||||
Audio_ResetSfx = 0x8001AB50;
|
||||
Audio_PlayVoice = 0x8001ACDC;
|
||||
Audio_PlayVoiceWithoutBGM = 0x8001AD00;
|
||||
Audio_UpdateVoice = 0x8001AD44;
|
||||
Audio_ClearVoice = 0x8001AE58;
|
||||
Audio_GetCurrentVoice = 0x8001AE78;
|
||||
Audio_GetCurrentVoiceStatus = 0x8001AED4;
|
||||
func_8001AF40 = 0x8001AF40;
|
||||
func_8001AF50 = 0x8001AF50;
|
||||
func_8001AF9C = 0x8001AF9C;
|
||||
func_8001B014 = 0x8001B014;
|
||||
func_8001B454 = 0x8001B454;
|
||||
func_8001B774 = 0x8001B774;
|
||||
func_8001BA40 = 0x8001BA40;
|
||||
func_8001BB74 = 0x8001BB74;
|
||||
func_8001BC20 = 0x8001BC20;
|
||||
func_8001BC48 = 0x8001BC48;
|
||||
func_8001BD0C = 0x8001BD0C;
|
||||
Audio_ResetPlayerFreqMods = 0x8001AF9C;
|
||||
Audio_UpdateArwingNoise = 0x8001B014;
|
||||
Audio_UpdateLandmasterNoise = 0x8001B454;
|
||||
Audio_UpdateBlueMarineNoise = 0x8001B774;
|
||||
Audio_UpdatePlayerFreqMod = 0x8001BA40;
|
||||
Audio_UpdatePlayerReverb = 0x8001BB74;
|
||||
Audio_UpdatePlayerNoise = 0x8001BC20;
|
||||
Audio_ResetVoicesAndPlayers = 0x8001BC48;
|
||||
Audio_ProcessPlaylist = 0x8001BD0C;
|
||||
func_8001BFC0 = 0x8001BFC0;
|
||||
func_8001C3EC = 0x8001C3EC;
|
||||
Audio_UpdateFrequencyAnalysis = 0x8001C3EC;
|
||||
func_8001C8B8 = 0x8001C8B8;
|
||||
func_8001CA24 = 0x8001CA24;
|
||||
func_8001CB80 = 0x8001CB80;
|
||||
@@ -442,26 +482,26 @@ func_8001D15C = 0x8001D15C;
|
||||
func_8001D1C8 = 0x8001D1C8;
|
||||
func_8001D2FC = 0x8001D2FC;
|
||||
func_8001D3A0 = 0x8001D3A0;
|
||||
func_8001D400 = 0x8001D400;
|
||||
func_8001D410 = 0x8001D410;
|
||||
func_8001D444 = 0x8001D444;
|
||||
func_8001D4AC = 0x8001D4AC;
|
||||
Audio_SetBaseSfxReverb = 0x8001D400;
|
||||
Audio_SetBgmParam = 0x8001D410;
|
||||
Audio_PlaySequence = 0x8001D444;
|
||||
Audio_PlayFanfare = 0x8001D4AC;
|
||||
func_8001D520 = 0x8001D520;
|
||||
func_8001D638 = 0x8001D638;
|
||||
func_8001D6DC = 0x8001D6DC;
|
||||
func_8001D780 = 0x8001D780;
|
||||
func_8001D8A8 = 0x8001D8A8;
|
||||
func_8001D8F4 = 0x8001D8F4;
|
||||
func_8001D9E0 = 0x8001D9E0;
|
||||
func_8001DA90 = 0x8001DA90;
|
||||
func_8001DBD0 = 0x8001DBD0;
|
||||
func_8001DC2C = 0x8001DC2C;
|
||||
func_8001DC6C = 0x8001DC6C;
|
||||
func_8001DCB4 = 0x8001DCB4;
|
||||
func_8001DCE0 = 0x8001DCE0;
|
||||
Audio_PlaySoundTest = 0x8001D8F4;
|
||||
Audio_PlaySequenceDistorted = 0x8001D9E0;
|
||||
Audio_PlaySoundTestTrack = 0x8001DA90;
|
||||
Audio_FadeOutAll = 0x8001DBD0;
|
||||
Audio_KillAllSfx = 0x8001DC2C;
|
||||
Audio_SetAudioSpec = 0x8001DC6C;
|
||||
Audio_PlayBgm = 0x8001DCB4;
|
||||
Audio_InitSounds = 0x8001DCE0;
|
||||
func_8001DD40 = 0x8001DD40;
|
||||
func_8001DE1C = 0x8001DE1C;
|
||||
func_8001DECC = 0x8001DECC;
|
||||
Audio_Update = 0x8001DECC;
|
||||
|
||||
|
||||
|
||||
@@ -470,10 +510,10 @@ func_8001E444 = 0x8001E444;
|
||||
func_8001E720 = 0x8001E720;
|
||||
func_8001E778 = 0x8001E778;
|
||||
func_8001E7C8 = 0x8001E7C8;
|
||||
func_8001E850 = 0x8001E850;
|
||||
func_8001E8A8 = 0x8001E8A8;
|
||||
func_8001E8CC = 0x8001E8CC;
|
||||
func_8001E8F0 = 0x8001E8F0;
|
||||
AudioThread_QueueCmd = 0x8001E850;
|
||||
AudioThread_QueueCmdF32 = 0x8001E8A8;
|
||||
AudioThread_QueueCmdS32 = 0x8001E8CC;
|
||||
AudioThread_QueueCmdS8 = 0x8001E8F0;
|
||||
func_8001E920 = 0x8001E920;
|
||||
func_8001E998 = 0x8001E998;
|
||||
func_8001E9AC = 0x8001E9AC;
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
u64 gAudioContextStart[2];
|
||||
SynthesisReverb gSynthReverbs[4];
|
||||
u8 sAudioContextPad10[0x10]; // 0x10
|
||||
u16 D_8014C1B0;
|
||||
s8 D_8014C1B2;
|
||||
s8 gNumSynthReverbs;
|
||||
s16 D_8014C1B4;
|
||||
NoteSubEu* gNoteSubsEu;
|
||||
// 0x4
|
||||
AudioAllocPool gSessionPool;
|
||||
AudioAllocPool gInitPool;
|
||||
AudioAllocPool gMiscPool;
|
||||
u8 gAudioContextPad20[0x20]; // 0x20
|
||||
AudioAllocPool gCachePool;
|
||||
AudioAllocPool gPersistentCommonPool;
|
||||
AudioAllocPool gTemporaryCommonPool;
|
||||
AudioCache gSeqCache; // seqCache
|
||||
AudioCache gFontCache; // fontCache
|
||||
AudioCache gSampleBankCache; // sampleBankCache
|
||||
PermanentCache gPermanentPool;
|
||||
AudioSampleCache gPersistentSampleCache;
|
||||
// 0x4
|
||||
AudioSampleCache gTemporarySampleCache;
|
||||
// 0x4
|
||||
AudioSessionPoolSplit gSessionPoolSplit;
|
||||
AudioCachePoolSplit gCachePoolSplit;
|
||||
AudioCommonPoolSplit gPersistentCommonPoolSplit;
|
||||
// 0x4
|
||||
AudioCommonPoolSplit gTemporaryCommonPoolSplit;
|
||||
// 0x4
|
||||
u8 gSampleFontLoadStatus[64];
|
||||
u8 gFontLoadStatus[64];
|
||||
u8 gSeqLoadStatus[256];
|
||||
volatile u8 gResetStatus;
|
||||
u8 gAudioSpecId;
|
||||
s32 gResetFadeoutFramesLeft;
|
||||
u8 sAudioContextPad1000[0x1000]; // 0x1000 gap
|
||||
Note* gNotes;
|
||||
// 0x4
|
||||
SequencePlayer gSeqPlayers[4];
|
||||
SequenceChannel gSeqChannels[48];
|
||||
SequenceLayer gSeqLayers[64];
|
||||
SequenceChannel gSeqChannelNone;
|
||||
AudioListItem gLayerFreeList;
|
||||
NotePool gNoteFreeLists;
|
||||
Sample* gUsedSamples[128];
|
||||
AudioPreloadReq gPreloadSampleStack[128];
|
||||
s32 gNumUsedSamples;
|
||||
s32 gPreloadSampleStackTop;
|
||||
AudioAsyncLoad gAsyncLoads[16];
|
||||
OSMesgQueue gExternalLoadQueue;
|
||||
OSMesg gExternalLoadMsg[16];
|
||||
OSMesgQueue gPreloadSampleQueue;
|
||||
OSMesg gPreloadSampleMsg[16];
|
||||
OSMesgQueue gCurAudioFrameDmaQueue;
|
||||
OSMesg gCurAudioFrameDmaMsg[64];
|
||||
OSIoMesg gCurAudioFrameDmaIoMsgBuf[64];
|
||||
OSMesgQueue gSyncDmaQueue;
|
||||
OSMesg gSyncDmaMsg[1];
|
||||
// 0x4
|
||||
OSIoMesg gSyncDmaIoMsg;
|
||||
SampleDma gSampleDmas[0x100];
|
||||
u32 gSampleDmaCount;
|
||||
u32 gSampleDmaListSize1;
|
||||
s32 D_80155A50;
|
||||
// 0x4
|
||||
u8 gSampleDmaReuseQueue1[0x100];
|
||||
u8 gSampleDmaReuseQueue2[0x100];
|
||||
u8 gSampleDmaReuseQueue1RdPos;
|
||||
u8 gSampleDmaReuseQueue2RdPos;
|
||||
u8 gSampleDmaReuseQueue1WrPos;
|
||||
u8 gSampleDmaReuseQueue2WrPos;
|
||||
AudioTable* gSequenceTable;
|
||||
AudioTable* gSoundFontTable;
|
||||
AudioTable* gSampleBankTable;
|
||||
u8* gSeqFontTable;
|
||||
s16 gNumSequences;
|
||||
SoundFont* gSoundFontList;
|
||||
// 0x4
|
||||
AudioBufferParameters gAudioBufferParams;
|
||||
s32 gSampleDmaBuffSize;
|
||||
s32 gMaxAudioCmds;
|
||||
s32 gNumNotes;
|
||||
u16 gMaxTempo;
|
||||
s8 gAudioSoundMode;
|
||||
volatile s32 gAudioTaskCountQ;
|
||||
s32 gCurAudioFrameDmaCount;
|
||||
s32 gAudioTaskIndexQ;
|
||||
s32 gCurAiBuffIndex;
|
||||
void* gAbiCmdBuffs[2];
|
||||
Acmd* gCurAiCmdBuffer;
|
||||
AudioTask* gAudioCurTask;
|
||||
AudioTask gAudioRspTasks[2];
|
||||
f32 gMaxTempoTvTypeFactors;
|
||||
s32 gRefreshRate;
|
||||
u16* gAiBuffers[3];
|
||||
u16 gAiBuffLengths[3];
|
||||
u32 gAudioRandom;
|
||||
UNK_TYPE D_80155D88;
|
||||
volatile u32 gResetTimer;
|
||||
|
||||
u64 gAudioContextEnd[2];
|
||||
|
||||
static ReverbSettings D_800C74D0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x4000, 0xD000, 0x3000 } };
|
||||
static ReverbSettings D_800C74E0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x38, 0x6400, 0x1000, 0x1000 } };
|
||||
static ReverbSettings D_800C74F0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x4000, 0, 0 } };
|
||||
static ReverbSettings D_800C7500[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x5000, 0, 0 } };
|
||||
static ReverbSettings D_800C7510[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x6000, 0, 0 } };
|
||||
static ReverbSettings D_800C7520[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7530[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x5800, 0, 0 } };
|
||||
static ReverbSettings D_800C7540[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x5000, 0, 0 } };
|
||||
static ReverbSettings D_800C7550[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7560[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x6000, 0, 0 } };
|
||||
static ReverbSettings D_800C7570[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7580[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x40, 0x4000, 0, 0 } };
|
||||
static ReverbSettings D_800C7590[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 2, 0x28, 0x5800, 0, 0 } };
|
||||
static ReverbSettings D_800C75A0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C75B0[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x38, 0x5000, 0, 0 } };
|
||||
static ReverbSettings D_800C75C0[3] = {
|
||||
{ 1, 0x30, 0x3000, 0, 0 },
|
||||
{ 1, 0x38, 0x3000, 0, 0 },
|
||||
{ 2, 0x48, 0x6000, 0xC000, 0x4000 },
|
||||
};
|
||||
static ReverbSettings D_800C75D8[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C75E8[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C75F8[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7608[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7618[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7628[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7638[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x6800, 0, 0 } };
|
||||
static ReverbSettings D_800C7648[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x18, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7658[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 2, 0x18, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7668[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x18, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7678[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C7688[2] = { { 1, 0x30, 0x3000, 0, 0 }, { 1, 0x30, 0x3000, 0, 0 } };
|
||||
static ReverbSettings D_800C76A8[] = {
|
||||
// unused?
|
||||
{ 1, 0x40, 0x4FFF, 0, 0 },
|
||||
{ 1, 0x30, 0x4FFF, 0, 0 },
|
||||
{ 1, 0x30, 0x4FFF, 0, 0 },
|
||||
{ 1, 0x30, 0x4FFF, 0, 0 },
|
||||
};
|
||||
AudioSpec gAudioSpecs[] = {
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C74E0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C74F0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7500, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7510, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7520, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7530, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7540, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7550, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7560, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7570, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7580, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 1, 0x16, 2, D_800C7590, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x2B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C75A0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C75B0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 3, D_800C75C0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x34000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C75D8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C75E8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C75F8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7608, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7618, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
{ 0x7D00, 2, 0x20, 2, D_800C7628, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
|
||||
{ 0x7D00, 1, 0x20, 2, D_800C7638, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
|
||||
{ 0x7D00, 1, 0x20, 2, D_800C7648, 0x7FFF, 0x1200, 0xA000, 0, 0x5B00, 0x1D00, 0, 0, 0 },
|
||||
{ 0x7D00, 1, 0x16, 2, D_800C7658, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0, 0x60000 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7668, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C7678, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
|
||||
{ 0x7D00, 2, 0x20, 2, D_800C7688, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
|
||||
{ 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
|
||||
};
|
||||
s32 D_800C7C28 = 0x20000000; // unused?
|
||||
s16 gSeqTicksPerBeat = 0x30;
|
||||
s32 gAudioHeapSize = 0xAFE00;
|
||||
s32 gInitPoolSize = 0x26000;
|
||||
u32 gPermanentPoolSize = 0x21000;
|
||||
u16 gSequenceMedium = 0;
|
||||
u16 gSoundFontMedium = 0;
|
||||
u16 gSampleBankMedium = 0;
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
static char devstr[] = "Audio:Envp: overflow %f\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_effects/func_80013400.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_effects/func_800135A8.s")
|
||||
|
||||
+2988
-201
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,65 @@ void* AudioHeap_SearchRegularCaches(s32 tableType, s32 cache, s32 id);
|
||||
void* AudioHeap_SearchPermanentCache(s32 tableType, s32 id);
|
||||
SampleCacheEntry* AudioHeap_AllocPersistentSampleCacheEntry(u32);
|
||||
|
||||
s32 D_80146D80;
|
||||
|
||||
static char devstr00[] = "Warning:Kill Note %x \n";
|
||||
static char devstr01[] = "Kill Voice %d (ID %d) %d\n";
|
||||
static char devstr02[] = "Warning: Running Sequence's data disappear!\n";
|
||||
static char devstr03[] = "%x %x %x\n";
|
||||
static char devstr04[] = "Audio:Memory:Heap OverFlow : Not Allocate %d!\n";
|
||||
static char devstr05[] = "%x %x %x\n";
|
||||
static char devstr06[] = "Audio:Memory:Heap OverFlow : Not Allocate %d!\n";
|
||||
static char devstr07[] = "Audio:Memory:DataHeap Not Allocate \n";
|
||||
static char devstr08[] = "StayHeap Not Allocate %d\n";
|
||||
static char devstr09[] = "AutoHeap Not Allocate %d\n";
|
||||
static char devstr10[] = "Status ID0 : %d ID1 : %d\n";
|
||||
static char devstr11[] = "id 0 is Stopping\n";
|
||||
static char devstr12[] = "id 0 is Stop\n";
|
||||
static char devstr13[] = "id 1 is Stopping\n";
|
||||
static char devstr14[] = "id 1 is Stop\n";
|
||||
static char devstr15[] = "WARNING: NO FREE AUTOSEQ AREA.\n";
|
||||
static char devstr16[] = "WARNING: NO STOP AUTO AREA.\n";
|
||||
static char devstr17[] = " AND TRY FORCE TO STOP SIDE \n";
|
||||
static char devstr18[] = "Check ID0 (seq ID %d) Useing ...\n";
|
||||
static char devstr19[] = "Check ID1 (seq ID %d) Useing ...\n";
|
||||
static char devstr20[] = "No Free Seq area.\n";
|
||||
static char devstr21[] = "CH %d: ID %d\n";
|
||||
static char devstr22[] = "TWO SIDES ARE LOADING... ALLOC CANCELED.\n";
|
||||
static char devstr23[] = "WARNING: Before Area Overlaid After.";
|
||||
static char devstr24[] = "WARNING: After Area Overlaid Before.";
|
||||
static char devstr25[] = "MEMORY:SzHeapAlloc ERROR: sza->side %d\n";
|
||||
static char devstr26[] = "Audio:MEMORY:SzHeap Overflow error. (%d bytes)\n";
|
||||
static char devstr27[] = "Auto Heap Unhit for ID %d\n";
|
||||
static char devstr28[] = "Heap Reconstruct Start %x\n";
|
||||
static char devstr29[] = "---------------------------------------TEMPO %d %f\n";
|
||||
static char devstr30[] = "%f \n";
|
||||
static char devstr31[] = "%f \n";
|
||||
static char devstr32[] = "AHPBASE %x\n";
|
||||
static char devstr33[] = "AHPCUR %x\n";
|
||||
static char devstr34[] = "HeapTop %x\n";
|
||||
static char devstr35[] = "SynoutRate %d / %d \n";
|
||||
static char devstr36[] = "FXSIZE %d\n";
|
||||
static char devstr37[] = "FXCOMP %d\n";
|
||||
static char devstr38[] = "FXDOWN %d\n";
|
||||
static char devstr39[] = "WaveCacheLen: %d\n";
|
||||
static char devstr40[] = "SpecChange Finished\n";
|
||||
static char devstr41[] = "Warning:Emem Over,not alloc %d\n";
|
||||
static char devstr42[] = "Single AutoSize %d\n";
|
||||
static char devstr43[] = "Single Ptr %x\n";
|
||||
static char devstr44[] = "Request--------Single-Auto, %d\n";
|
||||
static char devstr45[] = "Retry %x, %x, len %x\n";
|
||||
static char devstr46[] = "DMAing list %d is killed.\n";
|
||||
static char devstr47[] = "Try Kill %d \n";
|
||||
static char devstr48[] = "Try Kill %x %x\n";
|
||||
static char devstr49[] = "Try Kill %x %x %x\n";
|
||||
static char devstr50[] = "Rom back %x %x \n";
|
||||
static char devstr51[] = "Error sw NULL \n";
|
||||
static char devstr52[] = "Request--------Single-Stay, %d\n";
|
||||
static char devstr53[] = "Try Kill %d \n";
|
||||
static char devstr54[] = "Try Kill %x %x\n";
|
||||
static char devstr55[] = "Try Kill %x %x %x\n";
|
||||
|
||||
void AudioHeap_ResetLoadStatus(void) {
|
||||
s32 i;
|
||||
|
||||
|
||||
+102
-41
@@ -2,12 +2,6 @@
|
||||
#include "sf64dma.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
extern char D_800C4F6C[];
|
||||
extern char D_800C50E8[];
|
||||
extern char D_800C50F4[];
|
||||
extern char D_800C52F4[];
|
||||
extern char D_800C53AC[];
|
||||
|
||||
extern AudioTable gSampleBankTableInit;
|
||||
// extern AudioTableEntry gSampleBankTableInitEntries[];
|
||||
extern AudioTable gSeqTableInit;
|
||||
@@ -16,6 +10,73 @@ extern AudioTable gSoundFontTableInit;
|
||||
// extern AudioTableEntry gSoundFontTableInitEntries[];
|
||||
extern u8 gSeqFontTableInit[];
|
||||
|
||||
static char devstr00[] = "CAUTION:WAVE CACHE FULL %d";
|
||||
static char D_800C4F6C[] = "SUPERDMA";
|
||||
static char devstr02[] = "Bank Change... top %d lba %d\n";
|
||||
static char devstr03[] = "BankCount %d\n";
|
||||
static char devstr04[] = "BANK LOAD MISS! FOR %d\n";
|
||||
static char devstr05[] = "BankCount %d\n";
|
||||
static char devstr06[] = "Flush Start\n";
|
||||
static char devstr07[] = "%d ->%d\n";
|
||||
static char devstr08[] = "useflag %d\n";
|
||||
static char devstr09[] = "BankCount %d\n";
|
||||
static char devstr10[] = "%2x ";
|
||||
static char devstr11[] = "StartSeq (Group %d,Seq %d) Process finish\n";
|
||||
static char devstr12[] = "LoadCtrl, Ptr %x and Media is %d\n";
|
||||
static char devstr13[] = "Load Bank, Type %d , ID %d\n";
|
||||
static char devstr14[] = "get auto\n";
|
||||
static char devstr15[] = "get s-auto %x\n";
|
||||
static char devstr16[] = "Seq %d Write ID OK %d!\n";
|
||||
static char devstr17[] = "Banknumber %d\n";
|
||||
static char devstr18[] = "Bank Offset %x %d %d\n";
|
||||
static char devstr19[] = "PEP Touch %x \n";
|
||||
static char D_800C50E8[] = "FastCopy";
|
||||
static char D_800C50F4[] = "FastCopy";
|
||||
static char devstr22[] = "Error: Cannot DMA Media [%d]\n";
|
||||
static char devstr23[] = "Warning: size not align 16 %x (%s)\n";
|
||||
static char devstr24[] = "Load Bank BG, Type %d , ID %d\n";
|
||||
static char devstr25[] = "get auto\n";
|
||||
static char devstr26[] = "get s-auto %x\n";
|
||||
static char devstr27[] = "Clear Workarea %x -%x size %x \n";
|
||||
static char devstr28[] = "AudioHeap is %x\n";
|
||||
static char devstr29[] = "Heap reset.Synth Change %x \n";
|
||||
static char devstr30[] = "Heap %x %x %x\n";
|
||||
static char devstr31[] = "Main Heap Initialize.\n";
|
||||
static char devstr32[] = "%d :WaveA %d WaveB %d Inst %d,Perc %d\n";
|
||||
static char devstr33[] = "---------- Init Completed. ------------\n";
|
||||
static char devstr34[] = " Syndrv :[%6d]\n";
|
||||
static char devstr35[] = " Seqdrv :[%6d]\n";
|
||||
static char devstr36[] = " audiodata :[%6d]\n";
|
||||
static char devstr37[] = "---------------------------------------\n";
|
||||
static char devstr38[] = "Entry--- %d %d\n";
|
||||
static char devstr39[] = "---Block LPS here\n";
|
||||
static char devstr40[] = "===Block LPS end\n";
|
||||
static char D_800C52F4[] = "SLOWCOPY";
|
||||
static char devstr42[] = "Req: Src %x Dest %x Len %x,media %d,retcode %d\n";
|
||||
static char devstr43[] = "Remain Size %d\n";
|
||||
static char devstr44[] = "---Block BG here\n";
|
||||
static char devstr45[] = "===Block BG end\n";
|
||||
static char devstr46[] = "Retcode %x\n";
|
||||
static char devstr47[] = "Other Type: Not Write ID.\n";
|
||||
static char devstr48[] = "BGLOAD:Error: dma length 0\n";
|
||||
static char D_800C53AC[] = "BGCOPY";
|
||||
static char devstr50[] = "Error: Already wavetable is touched %x.\n";
|
||||
static char devstr51[] = "Touch Warning: Length zero %x\n";
|
||||
static char devstr52[] = "It's busy now!!!!! %d\n";
|
||||
static char devstr53[] = "BG LOAD BUFFER is OVER.\n";
|
||||
static char devstr54[] = "Warning: Length zero %x\n";
|
||||
static char devstr55[] = "Wave Load %d \n";
|
||||
static char devstr56[] = "Total Bg Wave Load %d \n";
|
||||
static char devstr57[] = "Receive %d\n";
|
||||
static char devstr58[] = "============Error: Magic is Broken after loading.\n";
|
||||
static char devstr59[] = "Remain DMA: %d\n";
|
||||
static char devstr60[] = "N start %d\n";
|
||||
static char devstr61[] = "============Error: Magic is Broken: %x\n";
|
||||
static char devstr62[] = "Error: No Handle.\n";
|
||||
static char devstr63[] = "Success: %x\n";
|
||||
|
||||
AudioSlowLoadBuffer gSlowLoads;
|
||||
|
||||
void AudioLoad_DecreaseSampleDmaTtls(void) {
|
||||
SampleDma* dma;
|
||||
u32 i;
|
||||
@@ -171,7 +232,7 @@ void AudioLoad_InitTable(AudioTable* table, u8* romAddr, u16 unkMediumParam) {
|
||||
table->romAddr = romAddr;
|
||||
|
||||
for (i = 0; i < table->numEntries; i++) {
|
||||
if ((table->entries[i].size != 0) && (table->entries[i].medium == 2)) {
|
||||
if ((table->entries[i].size != 0) && (table->entries[i].medium == MEDIUM_CART)) {
|
||||
table->entries[i].romAddr += (u32) romAddr;
|
||||
}
|
||||
}
|
||||
@@ -212,12 +273,12 @@ s32 AudioLoad_SyncLoadSample(Sample* sample, s32 fontId) {
|
||||
if (sampleAddr == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (sample->medium == 1) {
|
||||
if (sample->medium == MEDIUM_UNK) {
|
||||
AudioLoad_SyncDmaUnkMedium(sample->sampleAddr, sampleAddr, sample->size, gSampleBankTable->unkMediumParam);
|
||||
} else {
|
||||
AudioLoad_SyncDma(sample->sampleAddr, sampleAddr, sample->size, sample->medium);
|
||||
}
|
||||
sample->medium = 0;
|
||||
sample->medium = MEDIUM_RAM;
|
||||
sample->sampleAddr = sampleAddr;
|
||||
}
|
||||
}
|
||||
@@ -366,7 +427,7 @@ void* AudioLoad_SyncLoadSampleBank(u32 sampleBankId, s32* outMedium) {
|
||||
if (gSampleFontLoadStatus[sampleBankId] != 5) {
|
||||
gSampleFontLoadStatus[sampleBankId] = 2;
|
||||
}
|
||||
*outMedium = 0;
|
||||
*outMedium = MEDIUM_RAM;
|
||||
return ramAddr;
|
||||
}
|
||||
cachePolicy = sampleBankTable->entries[sampleBankId].cachePolicy;
|
||||
@@ -376,7 +437,7 @@ void* AudioLoad_SyncLoadSampleBank(u32 sampleBankId, s32* outMedium) {
|
||||
}
|
||||
ramAddr = AudioLoad_SyncLoad(2, sampleBankId, &noLoad);
|
||||
if (ramAddr != NULL) {
|
||||
*outMedium = 0;
|
||||
*outMedium = MEDIUM_RAM;
|
||||
return ramAddr;
|
||||
}
|
||||
*outMedium = sampleBankTable->entries[sampleBankId].medium;
|
||||
@@ -466,7 +527,7 @@ void* AudioLoad_SyncLoad(u32 tableType, u32 id, s32* didAllocate) {
|
||||
}
|
||||
|
||||
*didAllocate = true;
|
||||
if (medium == 1) {
|
||||
if (medium == MEDIUM_UNK) {
|
||||
AudioLoad_SyncDmaUnkMedium(romAddr, ramAddr, size, table->unkMediumParam);
|
||||
} else {
|
||||
AudioLoad_SyncDma(romAddr, ramAddr, size, medium);
|
||||
@@ -474,17 +535,17 @@ void* AudioLoad_SyncLoad(u32 tableType, u32 id, s32* didAllocate) {
|
||||
loadStatus = (cachePolicy == 0) ? 5 : 2;
|
||||
}
|
||||
switch (tableType) {
|
||||
case 0:
|
||||
case SEQUENCE_TABLE:
|
||||
if (gSeqLoadStatus[id] != 5) {
|
||||
gSeqLoadStatus[id] = loadStatus;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case FONT_TABLE:
|
||||
if (gFontLoadStatus[id] != 5) {
|
||||
gFontLoadStatus[id] = loadStatus;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case SAMPLE_TABLE:
|
||||
if (gSampleFontLoadStatus[id] != 5) {
|
||||
gSampleFontLoadStatus[id] = loadStatus;
|
||||
}
|
||||
@@ -520,13 +581,13 @@ AudioTable* AudioLoad_GetLoadTable(s32 tableType) {
|
||||
AudioTable* table;
|
||||
|
||||
switch (tableType) {
|
||||
case 0:
|
||||
case SEQUENCE_TABLE:
|
||||
table = gSequenceTable;
|
||||
break;
|
||||
case 1:
|
||||
case FONT_TABLE:
|
||||
table = gSoundFontTable;
|
||||
break;
|
||||
case 2:
|
||||
case SAMPLE_TABLE:
|
||||
table = gSampleBankTable;
|
||||
break;
|
||||
default:
|
||||
@@ -621,11 +682,11 @@ s32 AudioLoad_Dma(OSIoMesg* mesg, u32 priority, s32 direction, u32 devAddr, void
|
||||
OSMesgQueue* retQueue, s32 medium, const char* dmaType) {
|
||||
OSPiHandle* handle;
|
||||
|
||||
switch (medium) { /* irregular */
|
||||
case 2:
|
||||
switch (medium) {
|
||||
case MEDIUM_CART:
|
||||
handle = osCartRomInit();
|
||||
break;
|
||||
case 3:
|
||||
case MEDIUM_DISK_DRIVE:
|
||||
handle = func_8001EE60();
|
||||
break;
|
||||
default:
|
||||
@@ -851,7 +912,7 @@ s32 AudioLoad_SlowLoadSample(s32 fontId, u8 instId, s8* status) {
|
||||
*status = 0;
|
||||
return -1;
|
||||
}
|
||||
if (sample->medium == 0) {
|
||||
if (sample->medium == MEDIUM_RAM) {
|
||||
*status = 2;
|
||||
return 0;
|
||||
}
|
||||
@@ -864,7 +925,7 @@ s32 AudioLoad_SlowLoadSample(s32 fontId, u8 instId, s8* status) {
|
||||
slowLoad->curRamAddr =
|
||||
AudioHeap_AllocTemporarySampleCache(sample->size, fontId, sample->sampleAddr, sample->medium);
|
||||
if (slowLoad->curRamAddr == NULL) {
|
||||
if ((sample->medium == 1) || (sample->codec == 2)) {
|
||||
if ((sample->medium == MEDIUM_UNK) || (sample->codec == 2)) {
|
||||
*status = 0;
|
||||
return -1;
|
||||
} else {
|
||||
@@ -907,13 +968,13 @@ Sample* AudioLoad_GetFontSample(s32 fontId, s32 instId) {
|
||||
void AudioLoad_Stub_10800(void) {
|
||||
}
|
||||
|
||||
void AudioLoad_FinishSlowLoad(AudioSlowLoad* arg0) {
|
||||
Sample* sample = AudioLoad_GetFontSample(arg0->seqOrFontId, arg0->instId);
|
||||
void AudioLoad_FinishSlowLoad(AudioSlowLoad* slowLoad) {
|
||||
Sample* sample = AudioLoad_GetFontSample(slowLoad->seqOrFontId, slowLoad->instId);
|
||||
|
||||
if (sample != NULL) {
|
||||
arg0->sample = *sample;
|
||||
sample->sampleAddr = arg0->ramAddr;
|
||||
sample->medium = 0;
|
||||
slowLoad->sample = *sample;
|
||||
sample->sampleAddr = slowLoad->ramAddr;
|
||||
sample->medium = MEDIUM_RAM;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -938,7 +999,7 @@ void AudioLoad_ProcessSlowLoads(s32 resetStatus) {
|
||||
slowLoad->state = 3;
|
||||
*slowLoad->status = 1;
|
||||
} else if (slowLoad->bytesRemaining < 0x1000) {
|
||||
if (slowLoad->medium == 1) {
|
||||
if (slowLoad->medium == MEDIUM_UNK) {
|
||||
AudioLoad_DmaSlowCopyUnkMedium(slowLoad->curDevAddr, slowLoad->curRamAddr,
|
||||
slowLoad->bytesRemaining, sampleBankTable->unkMediumParam);
|
||||
} else {
|
||||
@@ -946,7 +1007,7 @@ void AudioLoad_ProcessSlowLoads(s32 resetStatus) {
|
||||
}
|
||||
slowLoad->bytesRemaining = 0;
|
||||
} else {
|
||||
if (slowLoad->medium == 1) {
|
||||
if (slowLoad->medium == MEDIUM_UNK) {
|
||||
AudioLoad_DmaSlowCopyUnkMedium(slowLoad->curDevAddr, slowLoad->curRamAddr, 0x1000,
|
||||
sampleBankTable->unkMediumParam);
|
||||
} else {
|
||||
@@ -1091,7 +1152,7 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) {
|
||||
osSendMesg(asyncLoad->retQueue, asyncLoad->retMsg, 0);
|
||||
} else {
|
||||
if (asyncLoad->bytesRemaining < asyncLoad->chunkSize) {
|
||||
if (asyncLoad->medium == 1) {
|
||||
if (asyncLoad->medium == MEDIUM_UNK) {
|
||||
AudioLoad_AsyncDmaUnkMedium(asyncLoad->curDevAddr, asyncLoad->curRamAddr, asyncLoad->bytesRemaining,
|
||||
sp5C->unkMediumParam);
|
||||
} else {
|
||||
@@ -1099,7 +1160,7 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) {
|
||||
}
|
||||
asyncLoad->bytesRemaining = 0;
|
||||
} else {
|
||||
if (asyncLoad->medium == 1) {
|
||||
if (asyncLoad->medium == MEDIUM_UNK) {
|
||||
AudioLoad_AsyncDmaUnkMedium(asyncLoad->curDevAddr, asyncLoad->curRamAddr, asyncLoad->chunkSize,
|
||||
sp5C->unkMediumParam);
|
||||
} else {
|
||||
@@ -1132,23 +1193,23 @@ void AudioLoad_RelocateSample(TunedSample* tSample, u32 fontDataAddr, SampleBank
|
||||
void* reloc;
|
||||
Sample* sample;
|
||||
|
||||
if ((u32) tSample->sample < 0x80000001U) {
|
||||
if ((u32) tSample->sample <= 0x80000000) {
|
||||
sample = tSample->sample = reloc = (u32) tSample->sample + fontDataAddr;
|
||||
// arg0->sample = temp_v1;
|
||||
if ((sample->size != 0) && (sample->isRelocated != 1)) {
|
||||
sample->loop = reloc = (u32) sample->loop + fontDataAddr;
|
||||
sample->book = reloc = (u32) sample->book + fontDataAddr;
|
||||
switch (sample->medium) { /* irregular */
|
||||
case 0:
|
||||
case MEDIUM_RAM:
|
||||
sample->sampleAddr = reloc = sample->sampleAddr + relocInfo->baseAddr1;
|
||||
sample->medium = relocInfo->medium1;
|
||||
break;
|
||||
case 1:
|
||||
case MEDIUM_UNK:
|
||||
sample->sampleAddr = reloc = sample->sampleAddr + relocInfo->baseAddr2;
|
||||
sample->medium = relocInfo->medium2;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case MEDIUM_CART:
|
||||
case MEDIUM_DISK_DRIVE:
|
||||
break;
|
||||
}
|
||||
sample->isRelocated = true;
|
||||
@@ -1214,15 +1275,15 @@ s32 AudioLoad_RelocateFontAndPreloadSamples(s32 fontId, u32 fontDataAddr, Sample
|
||||
}
|
||||
switch (isAsync) {
|
||||
case 0:
|
||||
if (sample->medium == 1) {
|
||||
if (sample->medium == MEDIUM_UNK) {
|
||||
AudioLoad_SyncDmaUnkMedium(sample->sampleAddr, sampleRamAddr, sample->size,
|
||||
gSampleBankTable->unkMediumParam);
|
||||
sample->sampleAddr = sampleRamAddr;
|
||||
sample->medium = 0;
|
||||
sample->medium = MEDIUM_RAM;
|
||||
} else {
|
||||
AudioLoad_SyncDma(sample->sampleAddr, sampleRamAddr, sample->size, sample->medium);
|
||||
sample->sampleAddr = sampleRamAddr;
|
||||
sample->medium = 0;
|
||||
sample->medium = MEDIUM_RAM;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
@@ -1276,7 +1337,7 @@ s32 AudioLoad_ProcessSamplePreloads(s32 resetStatus) {
|
||||
key = sample->sampleAddr + sample->size + sample->medium;
|
||||
if (key == gPreloadSampleStack[preloadIndex].endAndMediumKey) {
|
||||
sample->sampleAddr = gPreloadSampleStack[preloadIndex].ramAddr;
|
||||
sample->medium = 0;
|
||||
sample->medium = MEDIUM_RAM;
|
||||
}
|
||||
gPreloadSampleStack[preloadIndex].isFree = 1;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,39 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
static char devstr00[] = "Audio: setvol: volume minus %f\n";
|
||||
static char devstr01[] = "Audio: setvol: volume overflow %f\n";
|
||||
static char devstr02[] = "Audio: setpitch: pitch zero or minus %f\n";
|
||||
static char devstr03[] = "Audio: voiceman: No bank error %d\n";
|
||||
static char devstr04[] = "Audio: voiceman: progNo. overflow %d,%d\n";
|
||||
static char devstr05[] = "ptr2 %x\n";
|
||||
static char devstr06[] = "Audio: voiceman: progNo. undefined %d,%d\n";
|
||||
static char devstr07[] = "Audio: voiceman: No bank error %d\n";
|
||||
static char devstr08[] = "Audio: voiceman: Percussion Overflow %d,%d\n";
|
||||
static char devstr09[] = "Audio: voiceman: Percussion table pointer (bank %d) is irregular %x.\n";
|
||||
static char devstr10[] = "Audio: voiceman: Percpointer NULL %d,%d\n";
|
||||
static char devstr11[] = "--4 %x\n";
|
||||
static char devstr12[] = "----------------------Double-Error CH: %x %f\n";
|
||||
static char devstr13[] = "----------------------Double-Error NT: %x\n";
|
||||
static char devstr14[] = "CAUTION:SUB IS SEPARATED FROM GROUP\n";
|
||||
static char devstr15[] = "CAUTION:PAUSE EMERGENCY\n";
|
||||
static char devstr16[] = "Error:Wait Track disappear\n";
|
||||
static char devstr17[] = "NoteOff Comes during wait release %x (note %x)\n";
|
||||
static char devstr18[] = "Slow Release Batting\n";
|
||||
|
||||
u8 gSamplesPerWavePeriod[] = { 64, 32, 16, 8 };
|
||||
|
||||
static char devstr19[] = "Audio:Wavemem: Bad voiceno (%d)\n";
|
||||
static char devstr20[] = "Audio: C-Alloc : Dealloc voice is NULL\n";
|
||||
static char devstr21[] = "Alloc Error:Dim voice-Alloc %d";
|
||||
static char devstr22[] = "Error:Same List Add\n";
|
||||
static char devstr23[] = "Already Cut\n";
|
||||
static char devstr24[] = "Audio: C-Alloc : lowerPrio is NULL\n";
|
||||
static char devstr25[] = "Intterupt UseStop %d (Kill %d)\n";
|
||||
static char devstr26[] = "Intterupt RelWait %d (Kill %d)\n";
|
||||
static char devstr27[] = "Drop Voice (Prio %x)\n";
|
||||
// static char devstr28[] = "";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_playback/func_80011890.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_playback/func_80011C58.s")
|
||||
|
||||
@@ -1,6 +1,38 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
static char devstr00[] = "Audio:Track:Warning: No Free Notetrack\n";
|
||||
static char devstr01[] = "SUBTRACK DIM\n";
|
||||
static char devstr02[] = "Audio:Track: Warning :SUBTRACK had been stolen by other Group.\n";
|
||||
static char devstr03[] = "SEQID %d,BANKID %d\n";
|
||||
static char devstr04[] = "ERR:SUBTRACK %d NOT ALLOCATED\n";
|
||||
static char devstr05[] = "Stop Release\n";
|
||||
static char devstr06[] = "Error:Same List Add\n";
|
||||
static char devstr07[] = "Wait Time out!\n";
|
||||
static char devstr08[] = "Macro Level Over Error!\n";
|
||||
static char devstr09[] = "Macro Level Over Error!\n";
|
||||
static char devstr10[] = "WARNING: NPRG: cannot change %d\n";
|
||||
static char devstr11[] = "Audio:Track:NOTE:UNDEFINED NOTE COM. %x\n";
|
||||
static char devstr12[] = "Audio: Note:Velocity Error %d\n";
|
||||
static char devstr13[] = "Error: Subtrack no prg.\n";
|
||||
static char devstr14[] = "ERR %x\n";
|
||||
static char devstr15[] = "Error: Your assignchannel is stolen.\n";
|
||||
static char devstr16[] = "Audio:Track :Call Macro Level Over Error!\n";
|
||||
static char devstr17[] = "Audio:Track :Loops Macro Level Over Error!\n";
|
||||
static char devstr18[] = "SUB:ERR:BANK %d NOT CACHED.\n";
|
||||
static char devstr19[] = "SUB:ERR:BANK %d NOT CACHED.\n";
|
||||
static char devstr20[] = "Audio:Track: CTBLCALL Macro Level Over Error!\n";
|
||||
static char devstr21[] = "Set Noise %d\n";
|
||||
static char devstr22[] = "[%2x] \n";
|
||||
static char devstr23[] = "Err :Sub %x ,address %x:Undefined SubTrack Function %x";
|
||||
static char devstr24[] = "VoiceLoad Error Bank:%d,Prog:%d\n";
|
||||
static char devstr25[] = "Disappear Sequence or Bank %d\n";
|
||||
static char devstr26[] = "[FIN] group.\n";
|
||||
static char devstr27[] = "Macro Level Over Error!\n";
|
||||
static char devstr28[] = "Macro Level Over Error!\n";
|
||||
static char devstr29[] = "Group:Undefine upper C0h command (%x)\n";
|
||||
static char devstr30[] = "Group:Undefined Command\n";
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_seqplayer/func_80013EA0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/audio_seqplayer/func_80013FC4.s")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user