mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Merge branch 'ACreTeam:master' into master
This commit is contained in:
@@ -68,6 +68,14 @@ extern "C" {
|
||||
#define A_CMD_LOADCACHE 24
|
||||
#define A_CMD_EXIT 25
|
||||
|
||||
#define aUnkCmd3(pkt, a1, a2, a3) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
\
|
||||
_a->words.w0 = _SHIFTL(A_CMD_UNK3, 24, 8) | _SHIFTL(a3, 0, 16); \
|
||||
_a->words.w1 = _SHIFTL(a1, 16, 16) | _SHIFTL(a2, 0, 16); \
|
||||
}
|
||||
|
||||
#define aHalfCut(pkt, src, dst, len) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
@@ -84,6 +92,14 @@ extern "C" {
|
||||
_a->words.w1 = _SHIFTL(rampL, 16, 16) | _SHIFTL(rampR, 0, 16); \
|
||||
}
|
||||
|
||||
#define aLoadCache(pkt, dst, src, len) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
\
|
||||
_a->words.w0 = _SHIFTL(A_CMD_LOADCACHE, 24, 8) | _SHIFTL((len) >> 4, 16, 8) | _SHIFTL(src, 0, 16); \
|
||||
_a->words.w1 = (u32)(dst); \
|
||||
}
|
||||
|
||||
#define aLoadBuffer2(pkt, dst, src, len) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
@@ -152,6 +168,36 @@ extern "C" {
|
||||
|
||||
#define aFirLoadTable(pkt, size, addr) aFirFilter(pkt, 2, size, addr)
|
||||
|
||||
#define aEnvMixer2(pkt, dmemi, count, swapLR, x0, x1, x2, x3, m, bits) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
\
|
||||
_a->words.w0 = (bits | _SHIFTL(dmemi >> 4, 16, 8) | \
|
||||
_SHIFTL(count, 8, 8) | _SHIFTL(swapLR, 4, 1) | \
|
||||
_SHIFTL(x0, 3, 1) | _SHIFTL(x1, 2, 1) | \
|
||||
_SHIFTL(x2, 1, 1) | _SHIFTL(x3, 0, 1)); \
|
||||
_a->words.w1 = (unsigned int)(m); \
|
||||
}
|
||||
|
||||
#define aAddMixer(pkt, count, dmemi, dmemo, a4) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
\
|
||||
_a->words.w0 = (_SHIFTL(A_CMD_ADDMIXER, 24, 8) | \
|
||||
_SHIFTL(count >> 4, 16, 8) | _SHIFTL(a4, 0, 16)); \
|
||||
_a->words.w1 = _SHIFTL(dmemi, 16, 16) | _SHIFTL(dmemo, 0, 16); \
|
||||
}
|
||||
|
||||
// from MM
|
||||
#define aResampleZoh(pkt, pitch, pitchAccu) \
|
||||
{ \
|
||||
Acmd *_a = (Acmd *)pkt; \
|
||||
\
|
||||
_a->words.w0 = (_SHIFTL(A_CMD_RESAMPLE_ZOH, 24, 8) | \
|
||||
_SHIFTL(pitch, 0, 16)); \
|
||||
_a->words.w1 = _SHIFTL(pitchAccu, 0, 16); \
|
||||
}
|
||||
|
||||
#define NA_MAKE_COMMAND(a0, a1, a2, a3) \
|
||||
(u32)((((a0) & 0xFF) << 24) | (((a1) & 0xFF) << 16) | (((a2) & 0xFF) << 8) | (((a3) & 0xFF) << 0))
|
||||
|
||||
@@ -234,7 +280,8 @@ typedef enum SoundOutputMode {
|
||||
/* 0 */ SOUND_OUTPUT_STEREO,
|
||||
/* 1 */ SOUND_OUTPUT_HEADSET,
|
||||
/* 2 */ SOUND_OUTPUT_SURROUND,
|
||||
/* 3 */ SOUND_OUTPUT_MONO
|
||||
/* 3 */ SOUND_OUTPUT_MONO,
|
||||
/* 4 */ SOUND_OUTPUT_DOLBY_SURROUND
|
||||
} SoundOutputMode;
|
||||
|
||||
typedef enum SampleCodec {
|
||||
|
||||
@@ -278,7 +278,7 @@ typedef struct driverch_ {
|
||||
/* 0x06 */ u8 comb_filter_needs_init;
|
||||
/* 0x07 */ u8 vel_conv_table_idx;
|
||||
/* 0x08 */ u16 sample_pos_fractional_part;
|
||||
/* 0x0A */ u16 sound_effect_gain;
|
||||
/* 0x0A */ u16 surround_effect_gain;
|
||||
/* 0x0C */ s32 sample_pos_integer_part;
|
||||
/* 0x10 */ synthparams* synth_params;
|
||||
/* 0x14 */ s16 current_volume_left;
|
||||
@@ -322,7 +322,7 @@ typedef struct playbackch_ {
|
||||
/* 0x54 */ sweep portamento_sweep;
|
||||
/* 0x60 */ tmtable vibrato_tmtable;
|
||||
/* 0x7C */ s32 _7C;
|
||||
/* 0x80 */ u8 _80;
|
||||
/* 0x80 */ u8 vel_conv_table_idx;
|
||||
/* 0x84 */ u32 start_sample_pos;
|
||||
/* 0x88 */ u8 _88[0x18];
|
||||
} playbackch;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
extern Acmd* Nas_smzAudioFrame(Acmd* cmds, s32* processed_cmds, s16* pSamples, s32 nSamples);
|
||||
extern Acmd* Nas_DriveRsp(s16* aiBuf, s32 aiBufLen, Acmd* cmd, s32 updateIndex);
|
||||
extern Acmd* Nas_SynthMain(s32 chan_id, commonch* common, driverch* driver, s16* samples, s32 samples_per_update, Acmd* cmd, s32 update_idx);
|
||||
extern Acmd* Nas_Synth_Resample(Acmd* cmd, driverch* driver, s32 size, u16 frequencyFixedPoint, u16 sampleDmemBeforeResampling, s32 flags);
|
||||
extern Acmd* Nas_Synth_Resample(Acmd* cmd, const driverch* driver, s32 size, u16 pitch, u16 sampleDmemBeforeResampling, s32 flags);
|
||||
extern Acmd* Nas_DolbySurround(Acmd* cmd, commonch* common, driverch* driver, s32 samples_per_update, s32 dmem, s32 flags);
|
||||
extern Acmd* Nas_Synth_Envelope(Acmd* cmd, commonch* common, driverch* driver, s32 samples_per_update, u16 dmem, s32 haasEffectDelaySide, s32 flags);
|
||||
extern Acmd* Nas_Synth_Delay(Acmd* cmd, commonch* common, driverch* driver, s32 size, s32 flags, s32 haasEffectDelaySide);
|
||||
|
||||
@@ -61,6 +61,7 @@ extern void Nas_BgCopyInit(void);
|
||||
extern void MK_Init(void);
|
||||
extern void Nas_WaveDmaNew(s32 n_channels);
|
||||
|
||||
extern Na_SyncProc NA_SYNC_PROC;
|
||||
extern BOOL AUDIO_SYSTEM_READY;
|
||||
extern Na_DmaProc NA_DMA_PROC;
|
||||
extern OSMesgQueue MK_QUEUE;
|
||||
|
||||
@@ -805,9 +805,9 @@ extern void Nas_EntryTrack(channel* chan, note* n) {
|
||||
}
|
||||
}
|
||||
|
||||
playback->_80 = (int)(n->velocity_square2 * 11.5f);
|
||||
if (playback->_80 > 15) {
|
||||
playback->_80 = 15;
|
||||
playback->vel_conv_table_idx = (int)(n->velocity_square2 * 11.5f);
|
||||
if (playback->vel_conv_table_idx > 15) {
|
||||
playback->vel_conv_table_idx = 15;
|
||||
}
|
||||
|
||||
playback->bank_id = subtrack->bank_id;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user