mirror of https://github.com/zeldaret/mm.git
190 lines
4.2 KiB
C
190 lines
4.2 KiB
C
#ifndef _ABI_H_
|
|
#define _ABI_H_
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int gain : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aadpcm;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int gain : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Apolef;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int pad1 : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aenvelope;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 8;
|
|
/* 0x2 */ unsigned int dmem : 16;
|
|
/* 0x4 */ unsigned int pad2 : 16;
|
|
/* 0x6 */ unsigned int count : 16;
|
|
} Aclearbuff;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 8;
|
|
/* 0x2 */ unsigned int pad2 : 16;
|
|
/* 0x4 */ unsigned int inL : 16;
|
|
/* 0x6 */ unsigned int inR : 16;
|
|
} Ainterleave;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 24;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aloadbuff;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int pad1 : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aenvmixer;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int gain : 16;
|
|
/* 0x4 */ unsigned int dmemi : 16;
|
|
/* 0x6 */ unsigned int dmemo : 16;
|
|
} Amixer;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int dmem2 : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Apan;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int pitch : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aresample;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int pad1 : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Areverb;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 24;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Asavebuff;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 24;
|
|
/* 0x4 */ unsigned int pad2 : 2;
|
|
/* 0x4 */ unsigned int number : 4;
|
|
/* 0x4 */ unsigned int base : 24;
|
|
} Asegment;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int dmemin : 16;
|
|
/* 0x4 */ unsigned int dmemout : 16;
|
|
/* 0x6 */ unsigned int count : 16;
|
|
} Asetbuff;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int flags : 8;
|
|
/* 0x2 */ unsigned int vol : 16;
|
|
/* 0x4 */ unsigned int voltgt : 16;
|
|
/* 0x6 */ unsigned int volrate : 16;
|
|
} Asetvol;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 8;
|
|
/* 0x2 */ unsigned int dmemin : 16;
|
|
/* 0x4 */ unsigned int dmemout : 16;
|
|
/* 0x6 */ unsigned int count : 16;
|
|
} Admemmove;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 8;
|
|
/* 0x2 */ unsigned int count : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Aloadadpcm;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int cmd : 8;
|
|
/* 0x1 */ unsigned int pad1 : 8;
|
|
/* 0x2 */ unsigned int pad2 : 16;
|
|
/* 0x4 */ unsigned int addr;
|
|
} Asetloop;
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ unsigned int w0;
|
|
/* 0x4 */ unsigned int w1;
|
|
} Awords;
|
|
|
|
|
|
typedef union {
|
|
/* 0x0 */ Awords words;
|
|
/* 0x0 */ Aadpcm adpcm;
|
|
/* 0x0 */ Apolef polef;
|
|
/* 0x0 */ Aclearbuff clearbuff;
|
|
/* 0x0 */ Aenvelope envelope;
|
|
/* 0x0 */ Ainterleave interleave;
|
|
/* 0x0 */ Aloadbuff loadbuff;
|
|
/* 0x0 */ Aenvmixer envmixer;
|
|
/* 0x0 */ Aresample resample;
|
|
/* 0x0 */ Areverb reverb;
|
|
/* 0x0 */ Asavebuff savebuff;
|
|
/* 0x0 */ Asegment segment;
|
|
/* 0x0 */ Asetbuff setbuff;
|
|
/* 0x0 */ Asetvol setvol;
|
|
/* 0x0 */ Admemmove dmemmove;
|
|
/* 0x0 */ Aloadadpcm loadadpcm;
|
|
/* 0x0 */ Amixer mixer;
|
|
/* 0x0 */ Asetloop setloop;
|
|
/* 0x0 */ long long force_union_align;
|
|
} Acmd;
|
|
|
|
typedef short ADPCM_STATE[16];
|
|
|
|
typedef short POLEF_STATE[4];
|
|
|
|
typedef short RESAMPLE_STATE[16];
|
|
|
|
typedef short ENVMIX_STATE[40];
|
|
|
|
#endif
|