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:
petrie911
2024-03-01 15:57:44 -03:00
committed by GitHub
parent 1bbbb3134c
commit 5152d504b3
69 changed files with 7151 additions and 2721 deletions
+5 -3
View File
@@ -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
-48
View File
@@ -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*);
+1
View File
@@ -3,6 +3,7 @@
#include "sys.h"
#include "sf64audio_external.h"
#include "functions.h"
#include "variables.h"
#include "context.h"
+2
View File
@@ -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)
+2 -2
View File
@@ -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; };
+141
View File
@@ -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
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -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
View File
@@ -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;
-15
View File
@@ -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;
+129 -89
View File
@@ -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;
+184
View File
@@ -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;
+2
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+59
View File
@@ -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
View File
@@ -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;
}
+33
View File
@@ -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")
+32
View File
@@ -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