Anonymous

Changes

From Final Fantasy Inside

FF7/PSX/Sound/Code Map

2,285 bytes added, 09:57, 28 June 2020
m
no edit summary
|-
|0x800297A4
|void AkaoLoadInstrumentSet(const void sturct AkaoSampleSet *sampleSet, const void struct AkaoInstrumentAttr *instrumentSet)
|Load standard instrument set
|-
|0x80029818
|void AkaoLoadInstrumentSet2(const void sturct AkaoSampleSet *sampleSet, const void struct AkaoInstrumentAttr *instrumentSet)
|Load additional instrument set
|-
|0x8002988C
|void AkaoInitialize(const void sturct AkaoSampleSet *sampleSet, const void struct AkaoInstrumentAttr *instrumentSet)
|Initialize sound driver and load initial instruments
|-
|0x80029B78
|void _AkaoTransferSeqBody(const void unsigned char *data, int size)
|
|-
|0x80029C48
|void _AkaoLoadTracks(void)
|
|-
|0x8002DA30
|void AkaoNewMessage(struct AkaoMessage **ppMessage)
|
|-
|0x8002DA7C
|int AkaoLoadSeqAkaoPostMessage(void)|Load and start playing Post a new [[FF7/PSX/Sound/AKAO sequence|AKAO sequence]]command message to the queue (with some wrapped processing) The message data comes from a global variable at 0x8009A000.
Parameters are given from a global structureReturn value depends on the content of the message data.  '''Opcode 0x10''' Load and start playing new [[FF7/PSX/Sound/AKAO sequence|AKAO sequence]]
Returns: 0 for success, 1 for already loaded, and -1 for invalid signature
 
 
'''Opcode 0x92'''
 
Set value to the condition variable used by Opcode 0xEF.
|-
|0x8002E1A8
|void _AkaoDispatchMessages(void)
|
|-
|0x8002E23C
|void _AkaoWriteSpuRegisters(int voiceNum, struct AkaoSpuVoiceAttr *attr)
|
|-
|0x8002E478
|void _AkaoDspOnTick(struct AkaoPlayerTrack *track, struct AkaoPlayer *player, int voiceMask)
|
|-
|0x8002ED34
|void _AkaoCalculateVolumeAndPitch(struct AkaoPlayerTrack *track, int voiceMask, int voiceNum)
|
|-
|0x8002F24C
|void _AkaoCalculateVolumeAndPitch2(struct AkaoPlayerTrack *track, int voiceMask)
|
|-
|0x8002F738
|void _AkaoDspOverlayVoice(struct AkaoPlayerTrack *track, int unknownVoiceMask, int voiceNum)
|
|-
|0x8002F848
|void _AkaoDspMain(void)
|
|-
|0x8002FF4C
|void _AkaoSpuNoiseVoice(void)
|
|-
|0x80030038
|void _AkaoSpuReverbVoice(void)
|
|-
|0x80030148
|void _AkaoSpuPitchLFOVoice(void)
|
|-
|0x80030234
|int _AkaoCallback_AkaoTimerCallback(void)|Callback Sound callback event for sound, registered that is periodically triggered by OpenEvent BIOS functionroot counter 2|-|0x800308D4|void _AkaoMain(void)|
|-
|0x80030E7C
|void _AkaoDispatchVoice(struct MusicPlayerTrack AkaoPlayerTrack *track, void struct AkaoPlayer *a1player, int a2voiceMask)
|Dispatch voice opcodes until the next note or end of track
|-
|0x80031820
|void AkaoSetInstrument(struct AkaoPlayerTrack *track, unsigned short progNumber)
|
|-
|0x800318BC
|int _AkaoReadNextNote(struct AkaoPlayerTrack *track)
|
|-
|0x80031A70
|int _AkaoFindNextEndPoint(struct AkaoPlayerTrack *track)
|
|-
|0x80049548
|void (* const MESSAGE_HANDLERS[256])(struct AkaoMessage *)
|
|-
|0x80049948
|-
|0x80049AA8
|void (* const VOICE_OPCODES[0x60])(struct MusicPlayerTrack AkaoPlayerTrack *, void struct AkaoPlayer *, int)
|Address table for voice opcodes 0xa0-0xff
|-
|0x80049C28
|const unsigned short DELTA_TIME_TABLE[11];
|
|-
|0x80049C44
|const unsigned short VOLUME_TABLE_L[256128]
|See [[FF7/PSX/Sound/Opcodes/0xa8aa|Opcode 0xAA]] for volume balance calculation
|-
|0x80049E44
|const unsigned short VOLUME_TABLE_R[256128]
|See [[FF7/PSX/Sound/Opcodes/0xa8aa|Opcode 0xAA]] for volume balance calculation
|-
|0x8004A5CC
|const short *LFO_FORMS[16]
|
|-
|0x8004A60C
|const unsigned char EMPTY_ADPCM[32]
|
|-
|0x80063010
|int g_AkaoNumQueuedMessages
|
|-
|0x80081DC8
|AkaoMessage g_AkaoMessageQueue[]
|
|-
|0x80083580
|unsigned char g_AkaoSeqData[]
|RAM area to load AKAO sequence data
|-
|0x8009A000
|AkaoMessage g_AkaoMessage
|Message data to be posted. Processed by the function 0x8002DA7C
|}
= Structures =
[[FF7/PSX/Sound/INSTRx.DAT|struct AkaoInstrumentAttr]]
 
[[FF7/PSX/Sound/INSTRx.ALL|struct AkaoSampleSet]]
 
[[FF7/PSX/Sound/AKAO sequence|struct AkaoSeqHeader, struct AkaoDrumKeyAttr]]
 
struct AkaoMessage // 36 bytes long
{
uint16_t opcode;
uint16_t reserved;
uint32_t data[8];
};
struct AkaoSpuVoiceAttr
{
uint32_t addr; // 0x08: waveform data start address (SPU address)
uint32_t loop_addr; // 0x0c: loop start address (SPU address)
uint32_t a_mode; // 0x10: ADSR: attack rate mode uint32_t s_mode; // 0x14: ADSR: sustain rate mode uint32_t r_mode // 0x18: ADSR: release rate mode
uint16_t pitch; // 0x1c: pitch
uint16_t ar; // 0x1e: ADSR: attack rate
uint16_t reverb_depth_slide_length; // 0x50: length of reverb depth slide
uint16_t noise_clock; // 0x52: noise clock frequency
uint16_t field_54; // 0x54: unknown(can be altered by opcode 0xF3)
uint16_t beats_per_measure; // 0x56: beats per measure
uint16_t beat; // 0x58: current beat
AkaoDrumKeyAttr *drum_addr; // 0x14
int16_t *vibrato_lfo_addr; // 0x18
int16_t *tremolo_lfo_addr; // 0x1C0x1c
int16_t *pan_lfo_addr; // 0x20
uint32_t overlay_voice_num; // 0x24
uint32_t alternate_voice_num; // 0x28
uint32_t master_volume; // 0x2C0x2c
uint32_t pitch_of_note; // 0x30
int32_t pitch_bend_slide_amplitude; // 0x34
uint16_t voice_effect_flags; // 0x38
uint16_t field_3A; // 0x3A0x3a uint16_t field_3C; // 0x3C0x3c uint16_t field_3E; // 0x3E0x3e
uint32_t field_40; // 0x40
uint32_t volume; // 0x44
int32_t volume_slope; // 0x48
int32_t pitch_bend_slope; // 0x4C0x4c
uint16_t field_50; // 0x50
uint16_t field_52; // 0x52
uint8_t gate_time_counter; // 0x57
uint16_t instrument; // 0x58
uint16_t field_5A; // 0x5A0x5a uint16_t volume_slide_length_counter; // 0x5C0x5c uint16_t overlay_balance_slide_length_counter; // 0x5E0x5e
uint16_t pan; // 0x60
uint16_t pan_slide_length; // 0x62
uint16_t octave; // 0x66
uint16_t pitch_slide_length; // 0x68
uint16_t previous_note_number; // 0x6A0x6a uint16_t portamento_speed; // 0x6C0x6c uint16_t legato_flags; // 0x6E0x6e
uint16_t field_70; // 0x70
uint16_t vibrato_lfo_delayvibrato_delay; // 0x72
uint16_t vibrato_delay_counter; // 0x74
uint16_t vibrato_rate; // 0x76
uint16_t vibrato_rate_counter; // 0x78
uint16_t vibrato_form; // 0x7A0x7a uint16_t vibrato_max_amplitude; // 0x7C0x7c uint16_t vibrato_depth; // 0x7E0x7e
uint16_t vibrato_depth_slide_length_counter; // 0x80
int16_t vibrato_depth_slope; // 0x82
uint16_t tremolo_delay; // 0x86
uint16_t tremolo_delay_counter; // 0x88
uint16_t tremolo_rate; // 0x8A0x8a uint16_t tremolo_rate_counter; // 0x8C0x8c uint16_t tremolo_form; // 0x8E0x8e
uint16_t tremolo_depth; // 0x90
uint16_t tremolo_depth_slide_length_counter; // 0x92
uint16_t field_96; // 0x96
uint16_t pan_lfo_rate; // 0x98
uint16_t pan_lfo_rate_counter; // 0x9A0x9a uint16_t pan_lfo_form; // 0x9C0x9c uint16_t pan_lfo_depth; // 0x9E0x9e uint16_t pan_lfo_depth_slide_length_counter; // 0xA00xa0 int16_t pan_lfo_slope; // 0xA20xa2 uint16_t noise_on_off_delay_counter; // 0xA40xa4 uint16_t pitchmod_on_off_delay_counter; // 0xA60xa6 uint8_t field_A8[16]; // 0xA80xa8 uint16_t loop_layer; // 0xB80xb8 uint16_t loop_counts[4]; // 0xBA0xba uint16_t previous_delta_time; // 0xC20xc2 uint16_t forced_delta_time; // 0xC40xc4 uint16_t overlay_balance; // 0xC60xc6 int16_t overlay_balance_slope; // 0xC80xc8 int16_t pan_slope; // 0xCA0xca int16_t transpose; // 0xCC0xcc int16_t tuning; // 0xCE0xce uint16_t note; // 0xD00xd0 int16_t pitch_slide_amount; // 0xD20xd2 int16_t previous_transpose; // 0xD40xd4 int16_t vibrato_lfo_amplitude; // 0xD60xd6 int16_t tremolo_lfo_amplitude; // 0xD80xd8 int16_t pan_lfo_amplitude; // 0xDA0xda AkaoSpuVoiceAttr spu_attr; // 0xDC0xdc
};
112
edits