Reformat to something more readable for me :3
Build libsm64 / Build libsm64 for linux (push) Failing after 29s
Build libsm64 / Build libsm64 for web (push) Failing after 31s
Build libsm64 / Build libsm64 for windows (push) Failing after 23s

This commit is contained in:
2026-05-24 11:31:35 -05:00
parent 4328104536
commit da3d3b9727
141 changed files with 29855 additions and 20635 deletions
+136 -116
View File
@@ -98,168 +98,188 @@
* Data Structures.
*/
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int gain:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int gain: 16;
unsigned int addr;
} Aadpcm;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int gain:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int gain: 16;
unsigned int addr;
} Apolef;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int pad1:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int pad1: 16;
unsigned int addr;
} Aenvelope;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:8;
unsigned int dmem:16;
unsigned int pad2:16;
unsigned int count:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 8;
unsigned int dmem: 16;
unsigned int pad2: 16;
unsigned int count: 16;
} Aclearbuff;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:8;
unsigned int pad2:16;
unsigned int inL:16;
unsigned int inR:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 8;
unsigned int pad2: 16;
unsigned int inL: 16;
unsigned int inR: 16;
} Ainterleave;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:24;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 24;
unsigned int addr;
} Aloadbuff;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int pad1:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int pad1: 16;
unsigned int addr;
} Aenvmixer;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int gain:16;
unsigned int dmemi:16;
unsigned int dmemo:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int gain: 16;
unsigned int dmemi: 16;
unsigned int dmemo: 16;
} Amixer;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int dmem2:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int dmem2: 16;
unsigned int addr;
} Apan;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int pitch:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int pitch: 16;
unsigned int addr;
} Aresample;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int pad1:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int pad1: 16;
unsigned int addr;
} Areverb;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:24;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 24;
unsigned int addr;
} Asavebuff;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:24;
unsigned int pad2:2;
unsigned int number:4;
unsigned int base:24;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 24;
unsigned int pad2: 2;
unsigned int number: 4;
unsigned int base: 24;
} Asegment;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int dmemin:16;
unsigned int dmemout:16;
unsigned int count:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int dmemin: 16;
unsigned int dmemout: 16;
unsigned int count: 16;
} Asetbuff;
typedef struct {
unsigned int cmd:8;
unsigned int flags:8;
unsigned int vol:16;
unsigned int voltgt:16;
unsigned int volrate:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int flags: 8;
unsigned int vol: 16;
unsigned int voltgt: 16;
unsigned int volrate: 16;
} Asetvol;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:8;
unsigned int dmemin:16;
unsigned int dmemout:16;
unsigned int count:16;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 8;
unsigned int dmemin: 16;
unsigned int dmemout: 16;
unsigned int count: 16;
} Admemmove;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:8;
unsigned int count:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 8;
unsigned int count: 16;
unsigned int addr;
} Aloadadpcm;
typedef struct {
unsigned int cmd:8;
unsigned int pad1:8;
unsigned int pad2:16;
unsigned int addr;
typedef struct
{
unsigned int cmd: 8;
unsigned int pad1: 8;
unsigned int pad2: 16;
unsigned int addr;
} Asetloop;
/*
* Generic Acmd Packet
*/
typedef struct {
typedef struct
{
uintptr_t w0;
uintptr_t w1;
} Awords;
typedef union {
Awords words;
typedef union
{
Awords words;
#if IS_BIG_ENDIAN && !IS_64_BIT
Aadpcm adpcm;
Apolef polef;
Aclearbuff clearbuff;
Aenvelope envelope;
Ainterleave interleave;
Aloadbuff loadbuff;
Aenvmixer envmixer;
Aresample resample;
Areverb reverb;
Asavebuff savebuff;
Asegment segment;
Asetbuff setbuff;
Asetvol setvol;
Admemmove dmemmove;
Aloadadpcm loadadpcm;
Amixer mixer;
Asetloop setloop;
Aadpcm adpcm;
Apolef polef;
Aclearbuff clearbuff;
Aenvelope envelope;
Ainterleave interleave;
Aloadbuff loadbuff;
Aenvmixer envmixer;
Aresample resample;
Areverb reverb;
Asavebuff savebuff;
Asegment segment;
Asetbuff setbuff;
Asetvol setvol;
Admemmove dmemmove;
Aloadadpcm loadadpcm;
Amixer mixer;
Asetloop setloop;
#endif
long long int force_union_align; /* dummy, force alignment */
long long int force_union_align; /* dummy, force alignment */
} Acmd;
/*
File diff suppressed because it is too large Load Diff
+18 -7
View File
@@ -6,18 +6,29 @@
typedef struct
{
u8 *offset __attribute__((aligned (8)));
s32 len __attribute__((aligned (8)));
u8 *offset __attribute__((aligned (8)
)
);
s32 len __attribute__((aligned (8)
)
);
} ALSeqData;
typedef struct
{
unsigned short revision;
unsigned short seqCount;
unsigned int pad;
unsigned short revision;
unsigned short seqCount;
unsigned int pad;
ALSeqData seqArray[1];
} __attribute__((aligned (16))) ALSeqFile;
} __attribute__((aligned (16)
void alSeqFileNew(ALSeqFile *f, u8 *base);
)
)
ALSeqFile;
void alSeqFileNew(ALSeqFile * f, u8 * base);
#endif
+207 -199
View File
@@ -32,7 +32,9 @@
#define _OS_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -49,15 +51,17 @@ extern "C" {
/*
* Structure for device manager block
*/
typedef struct {
s32 active; /* Status flag */
OSThread *thread; /* Calling thread */
OSMesgQueue *cmdQueue; /* Command queue */
OSMesgQueue *evtQueue; /* Event queue */
OSMesgQueue *acsQueue; /* Access queue */
/* Raw DMA routine */
s32 (*dma)(s32, u32, void *, u32);
s32 (*edma)(OSPiHandle *, s32, u32, void *, u32);
typedef struct
{
s32 active; /* Status flag */
OSThread *thread; /* Calling thread */
OSMesgQueue *cmdQueue; /* Command queue */
OSMesgQueue *evtQueue; /* Event queue */
OSMesgQueue *acsQueue; /* Access queue */
/* Raw DMA routine */
s32 (*dma)(s32, u32, void *, u32);
s32 (*edma)(OSPiHandle *, s32, u32, void *, u32);
} OSDevMgr;
/*
@@ -65,40 +69,42 @@ typedef struct {
*/
typedef struct {
int status;
OSMesgQueue *queue;
int channel;
u8 id[32];
u8 label[32];
int version;
int dir_size;
int inode_table; /* block location */
int minode_table; /* mirrioring inode_table */
int dir_table; /* block location */
int inode_start_page; /* page # */
u8 banks;
u8 activebank;
typedef struct
{
int status;
OSMesgQueue *queue;
int channel;
u8 id[32];
u8 label[32];
int version;
int dir_size;
int inode_table; /* block location */
int minode_table; /* mirrioring inode_table */
int dir_table; /* block location */
int inode_start_page; /* page # */
u8 banks;
u8 activebank;
} OSPfs;
typedef struct {
u32 file_size; /* bytes */
u32 game_code;
u16 company_code;
char ext_name[4];
char game_name[16];
typedef struct
{
u32 file_size; /* bytes */
u32 game_code;
u16 company_code;
char ext_name[4];
char game_name[16];
} OSPfsState;
/*
* Structure for Profiler
* Structure for Profiler
*/
typedef struct {
u16 *histo_base; /* histogram base */
u32 histo_size; /* histogram size */
u32 *text_start; /* start of text segment */
u32 *text_end; /* end of text segment */
typedef struct
{
u16 *histo_base; /* histogram base */
u32 histo_size; /* histogram size */
u32 *text_start; /* start of text segment */
u32 *text_end; /* end of text segment */
} OSProf;
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
@@ -239,7 +245,7 @@ typedef struct {
#define OS_MIN_STACKSIZE 72
/*
* Values for osTvType
* Values for osTvType
*/
#define OS_TV_PAL 0
#define OS_TV_NTSC 1
@@ -321,8 +327,8 @@ typedef struct {
#define OS_VI_BIT_NTSC 0x0400
#define OS_VI_BIT_PAL 0x0800
/*
* Leo Disk
/*
* Leo Disk
*/
/* transfer mode */
@@ -347,7 +353,7 @@ typedef struct {
#ifdef _HW_VERSION_1
#define CONT_FRAME_ERROR 0x2
#define CONT_COLLISION_ERROR 0x1
#endif
#endif
/* Controller type */
@@ -431,9 +437,9 @@ typedef struct {
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
/* different one */
/* different one */
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
@@ -514,66 +520,65 @@ extern u64 osClockRate;
* Extern variables
*
*/
extern OSViMode osViModeTable[]; /* Global VI mode table */
extern OSViMode osViModeTable[]; /* Global VI mode table */
extern OSViMode osViModeNtscLpn1; /* Individual VI NTSC modes */
extern OSViMode osViModeNtscLpf1;
extern OSViMode osViModeNtscLan1;
extern OSViMode osViModeNtscLaf1;
extern OSViMode osViModeNtscLpn2;
extern OSViMode osViModeNtscLpf2;
extern OSViMode osViModeNtscLan2;
extern OSViMode osViModeNtscLaf2;
extern OSViMode osViModeNtscHpn1;
extern OSViMode osViModeNtscHpf1;
extern OSViMode osViModeNtscHan1;
extern OSViMode osViModeNtscHaf1;
extern OSViMode osViModeNtscHpn2;
extern OSViMode osViModeNtscHpf2;
extern OSViMode osViModeNtscLpn1; /* Individual VI NTSC modes */
extern OSViMode osViModeNtscLpf1;
extern OSViMode osViModeNtscLan1;
extern OSViMode osViModeNtscLaf1;
extern OSViMode osViModeNtscLpn2;
extern OSViMode osViModeNtscLpf2;
extern OSViMode osViModeNtscLan2;
extern OSViMode osViModeNtscLaf2;
extern OSViMode osViModeNtscHpn1;
extern OSViMode osViModeNtscHpf1;
extern OSViMode osViModeNtscHan1;
extern OSViMode osViModeNtscHaf1;
extern OSViMode osViModeNtscHpn2;
extern OSViMode osViModeNtscHpf2;
extern OSViMode osViModePalLpn1; /* Individual VI PAL modes */
extern OSViMode osViModePalLpf1;
extern OSViMode osViModePalLan1;
extern OSViMode osViModePalLaf1;
extern OSViMode osViModePalLpn2;
extern OSViMode osViModePalLpf2;
extern OSViMode osViModePalLan2;
extern OSViMode osViModePalLaf2;
extern OSViMode osViModePalHpn1;
extern OSViMode osViModePalHpf1;
extern OSViMode osViModePalHan1;
extern OSViMode osViModePalHaf1;
extern OSViMode osViModePalHpn2;
extern OSViMode osViModePalHpf2;
extern OSViMode osViModePalLpn1; /* Individual VI PAL modes */
extern OSViMode osViModePalLpf1;
extern OSViMode osViModePalLan1;
extern OSViMode osViModePalLaf1;
extern OSViMode osViModePalLpn2;
extern OSViMode osViModePalLpf2;
extern OSViMode osViModePalLan2;
extern OSViMode osViModePalLaf2;
extern OSViMode osViModePalHpn1;
extern OSViMode osViModePalHpf1;
extern OSViMode osViModePalHan1;
extern OSViMode osViModePalHaf1;
extern OSViMode osViModePalHpn2;
extern OSViMode osViModePalHpf2;
extern OSViMode osViModeMpalLpn1; /* Individual VI MPAL modes */
extern OSViMode osViModeMpalLpf1;
extern OSViMode osViModeMpalLan1;
extern OSViMode osViModeMpalLaf1;
extern OSViMode osViModeMpalLpn2;
extern OSViMode osViModeMpalLpf2;
extern OSViMode osViModeMpalLan2;
extern OSViMode osViModeMpalLaf2;
extern OSViMode osViModeMpalHpn1;
extern OSViMode osViModeMpalHpf1;
extern OSViMode osViModeMpalHan1;
extern OSViMode osViModeMpalHaf1;
extern OSViMode osViModeMpalHpn2;
extern OSViMode osViModeMpalHpf2;
extern OSViMode osViModeMpalLpn1; /* Individual VI MPAL modes */
extern OSViMode osViModeMpalLpf1;
extern OSViMode osViModeMpalLan1;
extern OSViMode osViModeMpalLaf1;
extern OSViMode osViModeMpalLpn2;
extern OSViMode osViModeMpalLpf2;
extern OSViMode osViModeMpalLan2;
extern OSViMode osViModeMpalLaf2;
extern OSViMode osViModeMpalHpn1;
extern OSViMode osViModeMpalHpf1;
extern OSViMode osViModeMpalHan1;
extern OSViMode osViModeMpalHaf1;
extern OSViMode osViModeMpalHpn2;
extern OSViMode osViModeMpalHpf2;
extern s32 osRomType; /* Bulk or cartridge ROM. 0=cartridge 1=bulk */
extern u32 osRomBase; /* Rom base address of the game image */
extern u32 osTvType; /* 0 = PAL, 1 = NTSC, 2 = MPAL */
extern u32 osResetType; /* 0 = cold reset, 1 = NMI */
extern s32 osCicId;
extern s32 osVersion;
extern u32 osMemSize; /* Memory Size */
extern s32 osAppNMIBuffer[];
extern OSIntMask __OSGlobalIntMask; /* global interrupt mask */
extern OSPiHandle *__osPiTable; /* The head of OSPiHandle link list */
extern OSPiHandle *__osDiskHandle; /* For exceptasm to get disk info*/
extern s32 osRomType; /* Bulk or cartridge ROM. 0=cartridge 1=bulk */
extern u32 osRomBase; /* Rom base address of the game image */
extern u32 osTvType; /* 0 = PAL, 1 = NTSC, 2 = MPAL */
extern u32 osResetType; /* 0 = cold reset, 1 = NMI */
extern s32 osCicId;
extern s32 osVersion;
extern u32 osMemSize; /* Memory Size */
extern s32 osAppNMIBuffer[];
extern OSIntMask __OSGlobalIntMask; /* global interrupt mask */
extern OSPiHandle *__osPiTable; /* The head of OSPiHandle link list */
extern OSPiHandle *__osDiskHandle; /* For exceptasm to get disk info*/
/**************************************************************************
@@ -584,58 +589,59 @@ extern OSPiHandle *__osDiskHandle; /* For exceptasm to get disk info*/
/* Thread operations */
extern void osCreateThread(OSThread *, OSId, void (*)(void *),
void *, void *, OSPri);
extern void osDestroyThread(OSThread *);
extern void osYieldThread(void);
extern void osStartThread(OSThread *);
extern void osStopThread(OSThread *);
extern OSId osGetThreadId(OSThread *);
extern void osSetThreadPri(OSThread *, OSPri);
extern OSPri osGetThreadPri(OSThread *);
extern void osCreateThread(
OSThread *, OSId, void (*)(void *),
void *, void *, OSPri);
extern void osDestroyThread(OSThread *);
extern void osYieldThread(void);
extern void osStartThread(OSThread *);
extern void osStopThread(OSThread *);
extern OSId osGetThreadId(OSThread *);
extern void osSetThreadPri(OSThread *, OSPri);
extern OSPri osGetThreadPri(OSThread *);
/* Message operations */
extern void osCreateMesgQueue(OSMesgQueue *, OSMesg *, s32);
extern s32 osSendMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osJamMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32);
extern void osCreateMesgQueue(OSMesgQueue *, OSMesg *, s32);
extern s32 osSendMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osJamMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32);
/* Event operations */
extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg);
extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg);
/* Interrupt operations */
extern OSIntMask osGetIntMask(void);
extern OSIntMask osSetIntMask(OSIntMask);
extern OSIntMask osGetIntMask(void);
extern OSIntMask osSetIntMask(OSIntMask);
/* RDB port operations */
extern void osInitRdb(u8 *sendBuf, u32 sendSize);
extern void osInitRdb(u8 *sendBuf, u32 sendSize);
/* Cache operations and macros */
extern void osInvalDCache(void *, size_t);
extern void osInvalICache(void *, size_t);
extern void osWritebackDCache(void *, size_t);
extern void osWritebackDCacheAll(void);
extern void osInvalDCache(void *, size_t);
extern void osInvalICache(void *, size_t);
extern void osWritebackDCache(void *, size_t);
extern void osWritebackDCacheAll(void);
#define OS_DCACHE_ROUNDUP_ADDR(x) (void *)(((((u32)(x)+0xf)/0x10)*0x10))
#define OS_DCACHE_ROUNDUP_SIZE(x) (u32)(((((u32)(x)+0xf)/0x10)*0x10))
/* TLB management routines */
extern void osMapTLB(s32, OSPageMask, void *, u32, u32, s32);
extern void osMapTLBRdb(void);
extern void osUnmapTLB(s32);
extern void osUnmapTLBAll(void);
extern void osSetTLBASID(s32);
extern void osMapTLB(s32, OSPageMask, void *, u32, u32, s32);
extern void osMapTLBRdb(void);
extern void osUnmapTLB(s32);
extern void osUnmapTLBAll(void);
extern void osSetTLBASID(s32);
/* Address translation routines and macros */
extern u32 osVirtualToPhysical(void *);
extern void * osPhysicalToVirtual(u32);
extern u32 osVirtualToPhysical(void *);
extern void *osPhysicalToVirtual(u32);
#define OS_K0_TO_PHYSICAL(x) (u32)(((char *)(x)-0x80000000))
#define OS_K1_TO_PHYSICAL(x) (u32)(((char *)(x)-0xa0000000))
@@ -646,66 +652,68 @@ extern void * osPhysicalToVirtual(u32);
/* I/O operations */
/* Audio interface (Ai) */
extern u32 osAiGetStatus(void);
extern u32 osAiGetLength(void);
extern s32 osAiSetFrequency(u32);
extern s32 osAiSetNextBuffer(void *, u32);
extern u32 osAiGetStatus(void);
extern u32 osAiGetLength(void);
extern s32 osAiSetFrequency(u32);
extern s32 osAiSetNextBuffer(void *, u32);
/* Display processor interface (Dp) */
extern u32 osDpGetStatus(void);
extern void osDpSetStatus(u32);
extern void osDpGetCounters(u32 *);
extern s32 osDpSetNextBuffer(void *, u64);
extern u32 osDpGetStatus(void);
extern void osDpSetStatus(u32);
extern void osDpGetCounters(u32 *);
extern s32 osDpSetNextBuffer(void *, u64);
/* Peripheral interface (Pi) */
extern u32 osPiGetStatus(void);
extern s32 osPiGetDeviceType(void);
extern s32 osPiRawWriteIo(u32, u32);
extern s32 osPiRawReadIo(u32, u32 *);
extern s32 osPiRawStartDma(s32, u32, void *, u32);
extern s32 osPiWriteIo(u32, u32);
extern s32 osPiReadIo(u32, u32 *);
extern s32 osPiStartDma(OSIoMesg *, s32, s32, u32, void *, u32,
OSMesgQueue *);
extern void osCreatePiManager(OSPri, OSMesgQueue *, OSMesg *, s32);
extern u32 osPiGetStatus(void);
extern s32 osPiGetDeviceType(void);
extern s32 osPiRawWriteIo(u32, u32);
extern s32 osPiRawReadIo(u32, u32 *);
extern s32 osPiRawStartDma(s32, u32, void *, u32);
extern s32 osPiWriteIo(u32, u32);
extern s32 osPiReadIo(u32, u32 *);
extern s32 osPiStartDma(
OSIoMesg *, s32, s32, u32, void *, u32,
OSMesgQueue *);
extern void osCreatePiManager(OSPri, OSMesgQueue *, OSMesg *, s32);
/* Video interface (Vi) */
extern u32 osViGetStatus(void);
extern u32 osViGetCurrentMode(void);
extern u32 osViGetCurrentLine(void);
extern u32 osViGetCurrentField(void);
extern void *osViGetCurrentFramebuffer(void);
extern void *osViGetNextFramebuffer(void);
extern void osViSetXScale(f32);
extern void osViSetYScale(f32);
extern void osViSetSpecialFeatures(u32);
extern void osViSetMode(OSViMode *);
extern void osViSetEvent(OSMesgQueue *, OSMesg, u32);
extern void osViSwapBuffer(void *);
extern void osViBlack(u8);
extern void osViFade(u8, u16);
extern void osViRepeatLine(u8);
extern void osCreateViManager(OSPri);
extern u32 osViGetStatus(void);
extern u32 osViGetCurrentMode(void);
extern u32 osViGetCurrentLine(void);
extern u32 osViGetCurrentField(void);
extern void *osViGetCurrentFramebuffer(void);
extern void *osViGetNextFramebuffer(void);
extern void osViSetXScale(f32);
extern void osViSetYScale(f32);
extern void osViSetSpecialFeatures(u32);
extern void osViSetMode(OSViMode *);
extern void osViSetEvent(OSMesgQueue *, OSMesg, u32);
extern void osViSwapBuffer(void *);
extern void osViBlack(u8);
extern void osViFade(u8, u16);
extern void osViRepeatLine(u8);
extern void osCreateViManager(OSPri);
/* Timer interface */
extern OSTime osGetTime(void);
extern void osSetTime(OSTime);
extern u32 osSetTimer(OSTimer *, OSTime, OSTime,
OSMesgQueue *, OSMesg);
extern int osStopTimer(OSTimer *);
extern OSTime osGetTime(void);
extern void osSetTime(OSTime);
extern u32 osSetTimer(
OSTimer *, OSTime, OSTime,
OSMesgQueue *, OSMesg);
extern int osStopTimer(OSTimer *);
/* Controller interface */
extern s32 osContInit(OSMesgQueue *, u8 *, OSContStatus *);
extern s32 osContReset(OSMesgQueue *, OSContStatus *);
extern s32 osContStartQuery(OSMesgQueue *);
extern s32 osContStartReadData(OSMesgQueue *);
extern s32 osContInit(OSMesgQueue *, u8 *, OSContStatus *);
extern s32 osContReset(OSMesgQueue *, OSContStatus *);
extern s32 osContStartQuery(OSMesgQueue *);
extern s32 osContStartReadData(OSMesgQueue *);
#ifndef _HW_VERSION_1
extern s32 osContSetCh(u8);
extern s32 osContSetCh(u8);
#endif
extern void osContGetQuery(OSContStatus *);
extern void osContGetReadData(OSContPad *);
extern void osContGetQuery(OSContStatus *);
extern void osContGetReadData(OSContPad *);
/* file system interface */
@@ -746,50 +754,50 @@ extern OSPiHandle *osLeoDiskInit(void);
extern OSPiHandle *osDriveRomInit(void);
extern s32 osEPiDeviceType(OSPiHandle *, OSPiInfo *);
extern s32 osEPiRawWriteIo(OSPiHandle *, u32 , u32);
extern s32 osEPiRawReadIo(OSPiHandle *, u32 , u32 *);
extern s32 osEPiRawStartDma(OSPiHandle *, s32 , u32 , void *, u32 );
extern s32 osEPiWriteIo(OSPiHandle *, u32 , u32 );
extern s32 osEPiReadIo(OSPiHandle *, u32 , u32 *);
extern s32 osEPiRawWriteIo(OSPiHandle *, u32, u32);
extern s32 osEPiRawReadIo(OSPiHandle *, u32, u32 *);
extern s32 osEPiRawStartDma(OSPiHandle *, s32, u32, void *, u32);
extern s32 osEPiWriteIo(OSPiHandle *, u32, u32);
extern s32 osEPiReadIo(OSPiHandle *, u32, u32 *);
extern s32 osEPiStartDma(OSPiHandle *, OSIoMesg *, s32);
extern s32 osEPiLinkHandle(OSPiHandle *);
/* Profiler Interface */
extern void osProfileInit(OSProf *, u32 profcnt);
extern void osProfileStart(u32);
extern void osProfileFlush(void);
extern void osProfileStop(void);
extern void osProfileInit(OSProf *, u32 profcnt);
extern void osProfileStart(u32);
extern void osProfileFlush(void);
extern void osProfileStop(void);
/* Game <> Host data transfer functions */
extern s32 osTestHost(void);
extern void osReadHost(void *, u32);
extern void osWriteHost(void *, u32);
extern void osAckRamromRead(void);
extern void osAckRamromWrite(void);
extern s32 osTestHost(void);
extern void osReadHost(void *, u32);
extern void osWriteHost(void *, u32);
extern void osAckRamromRead(void);
extern void osAckRamromWrite(void);
/* byte string operations */
extern void bcopy(const void *, void *, size_t);
extern int bcmp(const void *, const void *, int);
extern void bzero(void *, size_t);
extern void bcopy(const void *, void *, size_t);
extern int bcmp(const void *, const void *, int);
extern void bzero(void *, size_t);
/* Miscellaneous operations */
extern void osInitialize(void);
extern u32 osGetCount(void);
extern void osExit(void);
extern u32 osGetMemSize(void);
extern void osInitialize(void);
extern u32 osGetCount(void);
extern void osExit(void);
extern u32 osGetMemSize(void);
/* Printf */
extern int sprintf(char *s, const char *fmt, ...);
extern void osSyncPrintf(const char *fmt, ...);
extern void osAsyncPrintf(const char *fmt, ...);
extern int osSyncGetChars(char *buf);
extern int osAsyncGetChars(char *buf);
extern int sprintf(char *s, const char *fmt, ...);
extern void osSyncPrintf(const char *fmt, ...);
extern void osAsyncPrintf(const char *fmt, ...);
extern int osSyncGetChars(char *buf);
extern int osAsyncGetChars(char *buf);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+7 -5
View File
@@ -31,7 +31,9 @@
#define _OS_AI_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -77,10 +79,10 @@ extern "C" {
*/
/* Audio interface (Ai) */
extern u32 osAiGetStatus(void);
extern u32 osAiGetLength(void);
extern s32 osAiSetFrequency(u32);
extern s32 osAiSetNextBuffer(void *, u32);
extern u32 osAiGetStatus(void);
extern u32 osAiGetLength(void);
extern s32 osAiSetFrequency(u32);
extern s32 osAiSetNextBuffer(void *, u32);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+7 -5
View File
@@ -31,7 +31,9 @@
#define _OS_CACHE_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -81,10 +83,10 @@ extern "C" {
/* Cache operations and macros */
extern void osInvalDCache(void *, size_t);
extern void osInvalICache(void *, size_t);
extern void osWritebackDCache(void *, size_t);
extern void osWritebackDCacheAll(void);
extern void osInvalDCache(void *, size_t);
extern void osInvalICache(void *, size_t);
extern void osWritebackDCache(void *, size_t);
extern void osWritebackDCacheAll(void);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+24 -19
View File
@@ -31,7 +31,9 @@
#define _OS_CONT_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -47,28 +49,31 @@ extern "C" {
*/
/*
* Structure for controllers
* Structure for controllers
*/
typedef struct {
u16 type; /* Controller Type */
u8 status; /* Controller status */
u8 errnum;
}OSContStatus;
typedef struct
{
u16 type; /* Controller Type */
u8 status; /* Controller status */
u8 errnum;
} OSContStatus;
typedef struct {
u16 button;
s8 stick_x; /* -80 <= stick_x <= 80 */
s8 stick_y; /* -80 <= stick_y <= 80 */
u8 errnum;
typedef struct
{
u16 button;
s8 stick_x; /* -80 <= stick_x <= 80 */
s8 stick_y; /* -80 <= stick_y <= 80 */
u8 errnum;
} OSContPad;
typedef struct {
void *address; /* Ram pad Address: 11 bits */
u8 databuffer[32]; /* address of the data buffer */
u8 addressCrc; /* CRC code for address */
u8 dataCrc; /* CRC code for data */
u8 errnum;
typedef struct
{
void *address; /* Ram pad Address: 11 bits */
u8 databuffer[32]; /* address of the data buffer */
u8 addressCrc; /* CRC code for address */
u8 dataCrc; /* CRC code for data */
u8 errnum;
} OSContRamIo;
@@ -96,7 +101,7 @@ typedef struct {
#ifdef _HW_VERSION_1
#define CONT_FRAME_ERROR 0x2
#define CONT_COLLISION_ERROR 0x1
#endif
#endif
/* Controller type */
+3 -1
View File
@@ -31,7 +31,9 @@
#define _OS_EEPROM_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
+5 -3
View File
@@ -31,7 +31,9 @@
#define _OS_EXCEPTION_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -106,8 +108,8 @@ typedef u32 OSHWIntr;
/* Interrupt operations */
extern OSIntMask osGetIntMask(void);
extern OSIntMask osSetIntMask(OSIntMask);
extern OSIntMask osGetIntMask(void);
extern OSIntMask osSetIntMask(OSIntMask);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+1
View File
@@ -8,6 +8,7 @@
// Old deprecated functions from strings.h, replaced by memcpy/memset.
extern void bcopy(const void *, void *, size_t);
extern void bzero(void *, size_t);
#endif
+17 -14
View File
@@ -31,7 +31,9 @@
#define _OS_MESSAGE_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -50,20 +52,21 @@ typedef u32 OSEvent;
/*
* Structure for message
*/
typedef void * OSMesg;
typedef void *OSMesg;
/*
* Structure for message queue
*/
typedef struct OSMesgQueue_s {
OSThread *mtqueue; /* Queue to store threads blocked
typedef struct OSMesgQueue_s
{
OSThread *mtqueue; /* Queue to store threads blocked
on empty mailboxes (receive) */
OSThread *fullqueue; /* Queue to store threads blocked
OSThread *fullqueue; /* Queue to store threads blocked
on full mailboxes (send) */
s32 validCount; /* Contains number of valid message */
s32 first; /* Points to first valid message */
s32 msgCount; /* Contains total # of messages */
OSMesg *msg; /* Points to message buffer array */
s32 validCount; /* Contains number of valid message */
s32 first; /* Points to first valid message */
s32 msgCount; /* Contains total # of messages */
OSMesg *msg; /* Points to message buffer array */
} OSMesgQueue;
@@ -145,14 +148,14 @@ typedef struct OSMesgQueue_s {
/* Message operations */
extern void osCreateMesgQueue(OSMesgQueue *, OSMesg *, s32);
extern s32 osSendMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osJamMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32);
extern void osCreateMesgQueue(OSMesgQueue *, OSMesg *, s32);
extern s32 osSendMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osJamMesg(OSMesgQueue *, OSMesg, s32);
extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32);
/* Event operations */
extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg);
extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+1
View File
@@ -4,6 +4,7 @@
/* Miscellaneous OS functions */
void osInitialize(void);
u32 osGetCount(void);
uintptr_t osVirtualToPhysical(void *);
+40 -24
View File
@@ -6,10 +6,11 @@
/* Types */
typedef struct {
#if !defined(VERSION_EU)
typedef struct
{
#if !defined(VERSION_EU)
u32 errStatus;
#endif
#endif
void *dramAddr;
void *C2Addr;
u32 sectorSize;
@@ -17,21 +18,23 @@ typedef struct {
u32 C1ErrSector[4];
} __OSBlockInfo;
typedef struct {
u32 cmdType; // 0
u16 transferMode; // 4
u16 blockNum; // 6
s32 sectorNum; // 8
typedef struct
{
u32 cmdType; // 0
u16 transferMode; // 4
u16 blockNum; // 6
s32 sectorNum; // 8
uintptr_t devAddr; // c
#if defined(VERSION_EU)
#if defined(VERSION_EU)
u32 errStatus; //error status added moved to blockinfo
#endif
u32 bmCtlShadow; // 10
u32 seqCtlShadow; // 14
#endif
u32 bmCtlShadow; // 10
u32 seqCtlShadow; // 14
__OSBlockInfo block[2]; // 18
} __OSTranxInfo;
typedef struct OSPiHandle_s {
typedef struct OSPiHandle_s
{
struct OSPiHandle_s *next;
u8 type;
u8 latency;
@@ -44,26 +47,33 @@ typedef struct OSPiHandle_s {
__OSTranxInfo transferInfo;
} OSPiHandle;
typedef struct {
typedef struct
{
u8 type;
uintptr_t address;
} OSPiInfo;
typedef struct {
typedef struct
{
u16 type;
u8 pri;
u8 status;
OSMesgQueue *retQueue;
} OSIoMesgHdr;
typedef struct {
/*0x00*/ OSIoMesgHdr hdr;
/*0x08*/ void *dramAddr;
/*0x0C*/ uintptr_t devAddr;
/*0x10*/ size_t size;
#if defined(VERSION_EU) || defined(VERSION_SH)
typedef struct
{
/*0x00*/
OSIoMesgHdr hdr;
/*0x08*/
void *dramAddr;
/*0x0C*/
uintptr_t devAddr;
/*0x10*/
size_t size;
#if defined(VERSION_EU) || defined(VERSION_SH)
OSPiHandle *piHandle; // from the official definition
#endif
#endif
} OSIoMesg;
/* Definitions */
@@ -76,13 +86,19 @@ typedef struct {
/* Functions */
s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr,
size_t nbytes, OSMesgQueue *mq);
s32 osPiStartDma(
OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr,
size_t nbytes, OSMesgQueue *mq);
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt);
OSMesgQueue *osPiGetCmdQueue(void);
s32 osPiWriteIo(uintptr_t devAddr, u32 data);
s32 osPiReadIo(uintptr_t devAddr, u32 *data);
s32 osPiRawStartDma(s32 dir, u32 cart_addr, void *dram_addr, size_t size);
s32 osEPiRawStartDma(OSPiHandle *piHandle, s32 dir, u32 cart_addr, void *dram_addr, size_t size);
#endif
+7 -5
View File
@@ -31,7 +31,9 @@
#define _OS_RDP_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -77,10 +79,10 @@ extern "C" {
*/
/* Display processor interface (Dp) */
extern u32 osDpGetStatus(void);
extern void osDpSetStatus(u32);
extern void osDpGetCounters(u32 *);
extern s32 osDpSetNextBuffer(void *, u64);
extern u32 osDpGetStatus(void);
extern void osDpSetStatus(u32);
extern void osDpGetCounters(u32 *);
extern s32 osDpSetNextBuffer(void *, u64);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+47 -20
View File
@@ -23,20 +23,31 @@ typedef s32 OSId;
typedef union
{
struct {f32 f_odd; f32 f_even;} f;
struct
{
f32 f_odd;
f32 f_even;
} f;
} __OSfp;
typedef struct
{
/* registers */
/*0x20*/ u64 at, v0, v1, a0, a1, a2, a3;
/*0x58*/ u64 t0, t1, t2, t3, t4, t5, t6, t7;
/*0x98*/ u64 s0, s1, s2, s3, s4, s5, s6, s7;
/*0xD8*/ u64 t8, t9, gp, sp, s8, ra;
/*0x108*/ u64 lo, hi;
/*0x118*/ u32 sr, pc, cause, badvaddr, rcp;
/*0x12C*/ u32 fpcsr;
__OSfp fp0, fp2, fp4, fp6, fp8, fp10, fp12, fp14;
/*0x20*/
u64 at, v0, v1, a0, a1, a2, a3;
/*0x58*/
u64 t0, t1, t2, t3, t4, t5, t6, t7;
/*0x98*/
u64 s0, s1, s2, s3, s4, s5, s6, s7;
/*0xD8*/
u64 t8, t9, gp, sp, s8, ra;
/*0x108*/
u64 lo, hi;
/*0x118*/
u32 sr, pc, cause, badvaddr, rcp;
/*0x12C*/
u32 fpcsr;
__OSfp fp0, fp2, fp4, fp6, fp8, fp10, fp12, fp14;
__OSfp fp16, fp18, fp20, fp22, fp24, fp26, fp28, fp30;
} __OSThreadContext;
@@ -49,27 +60,43 @@ typedef struct
typedef struct OSThread_s
{
/*0x00*/ struct OSThread_s *next;
/*0x04*/ OSPri priority;
/*0x08*/ struct OSThread_s **queue;
/*0x0C*/ struct OSThread_s *tlnext;
/*0x10*/ u16 state;
/*0x12*/ u16 flags;
/*0x14*/ OSId id;
/*0x18*/ int fp;
/*0x1C*/ __OSThreadprofile_s *thprof;
/*0x20*/ __OSThreadContext context;
/*0x00*/
struct OSThread_s *next;
/*0x04*/
OSPri priority;
/*0x08*/
struct OSThread_s **queue;
/*0x0C*/
struct OSThread_s *tlnext;
/*0x10*/
u16 state;
/*0x12*/
u16 flags;
/*0x14*/
OSId id;
/*0x18*/
int fp;
/*0x1C*/
__OSThreadprofile_s *thprof;
/*0x20*/
__OSThreadContext context;
} OSThread;
/* Functions */
void osCreateThread(OSThread *thread, OSId id, void (*entry)(void *),
void osCreateThread(
OSThread *thread, OSId id, void (*entry)(void *),
void *arg, void *sp, OSPri pri);
OSId osGetThreadId(OSThread *thread);
OSPri osGetThreadPri(OSThread *thread);
void osSetThreadPri(OSThread *thread, OSPri pri);
void osStartThread(OSThread *thread);
void osStopThread(OSThread *thread);
#endif
+2
View File
@@ -21,7 +21,9 @@ typedef u64 OSTime;
/* Functions */
OSTime osGetTime(void);
void osSetTime(OSTime time);
u32 osSetTimer(OSTimer *, OSTime, OSTime, OSMesgQueue *, OSMesg);
#endif
+8 -6
View File
@@ -31,7 +31,9 @@
#define _OS_TLB_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
extern "C"
{
#endif
#include "ultratypes.h"
@@ -91,11 +93,11 @@ typedef u32 OSPageMask;
/* TLB management routines */
extern void osMapTLB(s32, OSPageMask, void *, u32, u32, s32);
extern void osMapTLBRdb(void);
extern void osUnmapTLB(s32);
extern void osUnmapTLBAll(void);
extern void osSetTLBASID(s32);
extern void osMapTLB(s32, OSPageMask, void *, u32, u32, s32);
extern void osMapTLBRdb(void);
extern void osUnmapTLB(s32);
extern void osUnmapTLBAll(void);
extern void osSetTLBASID(s32);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
+32 -14
View File
@@ -58,26 +58,44 @@ typedef struct
typedef struct
{
/* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10
/* 0x02 */ u16 retraceCount;
/* 0x04 */ void* buffer;
/* 0x08 */ OSViMode *modep;
/* 0x0c */ u32 features;
/* 0x10 */ OSMesgQueue *mq;
/* 0x14 */ OSMesg *msg;
/* 0x18 */ u32 unk18;
/* 0x1c */ u32 unk1c;
/* 0x20 */ u32 unk20;
/* 0x24 */ f32 unk24;
/* 0x28 */ u16 unk28;
/* 0x2c */ u32 unk2c;
/* 0x00 */
u16 unk00; //some kind of flags. swap buffer sets to 0x10
/* 0x02 */
u16 retraceCount;
/* 0x04 */
void *buffer;
/* 0x08 */
OSViMode *modep;
/* 0x0c */
u32 features;
/* 0x10 */
OSMesgQueue *mq;
/* 0x14 */
OSMesg *msg;
/* 0x18 */
u32 unk18;
/* 0x1c */
u32 unk1c;
/* 0x20 */
u32 unk20;
/* 0x24 */
f32 unk24;
/* 0x28 */
u16 unk28;
/* 0x2c */
u32 unk2c;
} OSViContext;
void osCreateViManager(OSPri pri);
void osViSetMode(OSViMode *mode);
void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount);
void osViBlack(u8 active);
void osViSetSpecialFeatures(u32 func);
void osViSwapBuffer(void *vaddr);
@@ -111,7 +129,7 @@ void osViSwapBuffer(void *vaddr);
#define OS_VI_PAL_HPN2 26
#define OS_VI_PAL_HPF2 27
extern OSViMode osViModeTable[]; /* Global VI mode table */
extern OSViMode osViModeTable[]; /* Global VI mode table */
#endif
+37 -17
View File
@@ -70,32 +70,49 @@
typedef struct
{
/*0x00*/ u32 type;
/*0x04*/ u32 flags;
/*0x00*/
u32 type;
/*0x04*/
u32 flags;
/*0x08*/ u64 *ucode_boot;
/*0x0C*/ u32 ucode_boot_size;
/*0x08*/
u64 *ucode_boot;
/*0x0C*/
u32 ucode_boot_size;
/*0x10*/ u64 *ucode;
/*0x14*/ u32 ucode_size;
/*0x10*/
u64 *ucode;
/*0x14*/
u32 ucode_size;
/*0x18*/ u64 *ucode_data;
/*0x1C*/ u32 ucode_data_size;
/*0x18*/
u64 *ucode_data;
/*0x1C*/
u32 ucode_data_size;
/*0x20*/ u64 *dram_stack;
/*0x24*/ u32 dram_stack_size;
/*0x20*/
u64 *dram_stack;
/*0x24*/
u32 dram_stack_size;
/*0x28*/ u64 *output_buff;
/*0x2C*/ u64 *output_buff_size;
/*0x28*/
u64 *output_buff;
/*0x2C*/
u64 *output_buff_size;
/*0x30*/ u64 *data_ptr;
/*0x34*/ u32 data_size;
/*0x30*/
u64 *data_ptr;
/*0x34*/
u32 data_size;
/*0x38*/ u64 *yield_data_ptr;
/*0x3C*/ u32 yield_data_size;
/*0x38*/
u64 *yield_data_ptr;
/*0x3C*/
u32 yield_data_size;
} OSTask_t; // size = 0x40
typedef union {
typedef union
{
OSTask_t t;
long long int force_structure_alignment;
} OSTask;
@@ -109,8 +126,11 @@ typedef u32 OSYieldResult;
osSpTaskStartGo(p);
void osSpTaskLoad(OSTask *task);
void osSpTaskStartGo(OSTask *task);
void osSpTaskYield(void);
OSYieldResult osSpTaskYielded(OSTask *task);
#endif
+12 -12
View File
@@ -1,32 +1,32 @@
#ifndef _ULTRA64_TYPES_H_
#define _ULTRA64_TYPES_H_
#ifndef NULL
#define NULL (void *)0
#ifndef nullptr
#define nullptr (void *)0
#endif
#define TRUE 1
#define FALSE 0
typedef signed char s8;
typedef unsigned char u8;
typedef signed short int s16;
typedef unsigned short int u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long int s64;
typedef signed char s8;
typedef unsigned char u8;
typedef signed short int s16;
typedef unsigned short int u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long int s64;
typedef unsigned long long int u64;
typedef volatile u8 vu8;
typedef volatile u8 vu8;
typedef volatile u16 vu16;
typedef volatile u32 vu32;
typedef volatile u64 vu64;
typedef volatile s8 vs8;
typedef volatile s8 vs8;
typedef volatile s16 vs16;
typedef volatile s32 vs32;
typedef volatile s64 vs64;
typedef float f32;
typedef float f32;
typedef double f64;
#ifdef TARGET_N64
+426 -213
View File
@@ -117,47 +117,72 @@
#define SOUND_ACTION_HANGING_STEP SOUND_ARG_LOAD(0, 4, 0x2D, 0xA0, 8)
#define SOUND_ACTION_QUICKSAND_STEP SOUND_ARG_LOAD(0, 4, 0x2E, 0x00, 8)
#define SOUND_ACTION_METAL_STEP_TIPTOE SOUND_ARG_LOAD(0, 4, 0x2F, 0x90, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN430 SOUND_ARG_LOAD(0, 4, 0x30, 0xC0, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN431 SOUND_ARG_LOAD(0, 4, 0x31, 0x60, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN432 SOUND_ARG_LOAD(0, 4, 0x32, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN430 SOUND_ARG_LOAD(0, 4, 0x30, 0xC0, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN431 SOUND_ARG_LOAD(0, 4, 0x31, 0x60, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN432 SOUND_ARG_LOAD(0, 4, 0x32, 0x80, 8)
#define SOUND_ACTION_SWIM SOUND_ARG_LOAD(0, 4, 0x33, 0x80, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN434 SOUND_ARG_LOAD(0, 4, 0x34, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN434 SOUND_ARG_LOAD(0, 4, 0x34, 0x80, 8)
#define SOUND_ACTION_THROW SOUND_ARG_LOAD(0, 4, 0x35, 0x80, 8)
#define SOUND_ACTION_KEY_SWISH SOUND_ARG_LOAD(0, 4, 0x36, 0x80, 8)
#define SOUND_ACTION_SPIN SOUND_ARG_LOAD(0, 4, 0x37, 0x80, 8)
#define SOUND_ACTION_TWIRL SOUND_ARG_LOAD(0, 4, 0x38, 0x80, 8) // same sound as spin
/* not verified */ #define SOUND_ACTION_CLIMB_UP_TREE SOUND_ARG_LOAD(0, 4, 0x3A, 0x80, 8)
/* not verified */ #define SOUND_ACTION_CLIMB_DOWN_TREE 0x003B
/* not verified */ #define SOUND_ACTION_UNK3C 0x003C
/* not verified */ #define SOUND_ACTION_UNKNOWN43D SOUND_ARG_LOAD(0, 4, 0x3D, 0x80, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN43E SOUND_ARG_LOAD(0, 4, 0x3E, 0x80, 8)
/* not verified */ #define SOUND_ACTION_PAT_BACK SOUND_ARG_LOAD(0, 4, 0x3F, 0x80, 8)
/* not verified */
#define SOUND_ACTION_CLIMB_UP_TREE SOUND_ARG_LOAD(0, 4, 0x3A, 0x80, 8)
/* not verified */
#define SOUND_ACTION_CLIMB_DOWN_TREE 0x003B
/* not verified */
#define SOUND_ACTION_UNK3C 0x003C
/* not verified */
#define SOUND_ACTION_UNKNOWN43D SOUND_ARG_LOAD(0, 4, 0x3D, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN43E SOUND_ARG_LOAD(0, 4, 0x3E, 0x80, 8)
/* not verified */
#define SOUND_ACTION_PAT_BACK SOUND_ARG_LOAD(0, 4, 0x3F, 0x80, 8)
#define SOUND_ACTION_BRUSH_HAIR SOUND_ARG_LOAD(0, 4, 0x40, 0x80, 8)
/* not verified */ #define SOUND_ACTION_CLIMB_UP_POLE SOUND_ARG_LOAD(0, 4, 0x41, 0x80, 8)
/* not verified */
#define SOUND_ACTION_CLIMB_UP_POLE SOUND_ARG_LOAD(0, 4, 0x41, 0x80, 8)
#define SOUND_ACTION_METAL_BONK SOUND_ARG_LOAD(0, 4, 0x42, 0x80, 8)
#define SOUND_ACTION_UNSTUCK_FROM_GROUND SOUND_ARG_LOAD(0, 4, 0x43, 0x80, 8)
/* not verified */ #define SOUND_ACTION_HIT SOUND_ARG_LOAD(0, 4, 0x44, 0xC0, 8)
/* not verified */ #define SOUND_ACTION_HIT_2 SOUND_ARG_LOAD(0, 4, 0x44, 0xB0, 8)
/* not verified */ #define SOUND_ACTION_HIT_3 SOUND_ARG_LOAD(0, 4, 0x44, 0xA0, 8)
/* not verified */
#define SOUND_ACTION_HIT SOUND_ARG_LOAD(0, 4, 0x44, 0xC0, 8)
/* not verified */
#define SOUND_ACTION_HIT_2 SOUND_ARG_LOAD(0, 4, 0x44, 0xB0, 8)
/* not verified */
#define SOUND_ACTION_HIT_3 SOUND_ARG_LOAD(0, 4, 0x44, 0xA0, 8)
#define SOUND_ACTION_BONK SOUND_ARG_LOAD(0, 4, 0x45, 0xA0, 8)
#define SOUND_ACTION_SHRINK_INTO_BBH SOUND_ARG_LOAD(0, 4, 0x46, 0xA0, 8)
#define SOUND_ACTION_SWIM_FAST SOUND_ARG_LOAD(0, 4, 0x47, 0xA0, 8)
#define SOUND_ACTION_METAL_JUMP_WATER SOUND_ARG_LOAD(0, 4, 0x50, 0x90, 8)
#define SOUND_ACTION_METAL_LAND_WATER SOUND_ARG_LOAD(0, 4, 0x51, 0x90, 8)
#define SOUND_ACTION_METAL_STEP_WATER SOUND_ARG_LOAD(0, 4, 0x52, 0x90, 8)
/* not verified */ #define SOUND_ACTION_UNK53 0x0053
/* not verified */ #define SOUND_ACTION_UNK54 0x0054
/* not verified */ #define SOUND_ACTION_UNK55 0x0055
/* not verified */ #define SOUND_ACTION_FLYING_FAST SOUND_ARG_LOAD(0, 4, 0x56, 0x80, 8) // "swoop"?
/* not verified */
#define SOUND_ACTION_UNK53 0x0053
/* not verified */
#define SOUND_ACTION_UNK54 0x0054
/* not verified */
#define SOUND_ACTION_UNK55 0x0055
/* not verified */
#define SOUND_ACTION_FLYING_FAST SOUND_ARG_LOAD(0, 4, 0x56, 0x80, 8) // "swoop"?
#define SOUND_ACTION_TELEPORT SOUND_ARG_LOAD(0, 4, 0x57, 0xC0, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN458 SOUND_ARG_LOAD(0, 4, 0x58, 0xA0, 8)
/* not verified */ #define SOUND_ACTION_BOUNCE_OFF_OBJECT SOUND_ARG_LOAD(0, 4, 0x59, 0xB0, 8)
/* not verified */ #define SOUND_ACTION_SIDE_FLIP_UNK SOUND_ARG_LOAD(0, 4, 0x5A, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN458 SOUND_ARG_LOAD(0, 4, 0x58, 0xA0, 8)
/* not verified */
#define SOUND_ACTION_BOUNCE_OFF_OBJECT SOUND_ARG_LOAD(0, 4, 0x59, 0xB0, 8)
/* not verified */
#define SOUND_ACTION_SIDE_FLIP_UNK SOUND_ARG_LOAD(0, 4, 0x5A, 0x80, 8)
#define SOUND_ACTION_READ_SIGN SOUND_ARG_LOAD(0, 4, 0x5B, 0xFF, 8)
/* not verified */ #define SOUND_ACTION_UNKNOWN45C SOUND_ARG_LOAD(0, 4, 0x5C, 0x80, 8)
/* not verified */ #define SOUND_ACTION_UNK5D 0x005D
/* not verified */ #define SOUND_ACTION_INTRO_UNK45E SOUND_ARG_LOAD(0, 4, 0x5E, 0x80, 8)
/* not verified */ #define SOUND_ACTION_INTRO_UNK45F SOUND_ARG_LOAD(0, 4, 0x5F, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNKNOWN45C SOUND_ARG_LOAD(0, 4, 0x5C, 0x80, 8)
/* not verified */
#define SOUND_ACTION_UNK5D 0x005D
/* not verified */
#define SOUND_ACTION_INTRO_UNK45E SOUND_ARG_LOAD(0, 4, 0x5E, 0x80, 8)
/* not verified */
#define SOUND_ACTION_INTRO_UNK45F SOUND_ARG_LOAD(0, 4, 0x5F, 0x80, 8)
/* Moving Sound Effects */
@@ -180,27 +205,45 @@
/* Mario Sound Effects */
// A random number 0-2 is added to the sound ID before playing, producing Yah/Wah/Hoo
#define SOUND_MARIO_YAH_WAH_HOO SOUND_ARG_LOAD(2, 4, 0x00, 0x80, 8)
/* not verified */ #define SOUND_MARIO_HOOHOO SOUND_ARG_LOAD(2, 4, 0x03, 0x80, 8)
/* not verified */ #define SOUND_MARIO_YAHOO SOUND_ARG_LOAD(2, 4, 0x04, 0x80, 8)
/* not verified */ #define SOUND_MARIO_UH SOUND_ARG_LOAD(2, 4, 0x05, 0x80, 8)
/* not verified */ #define SOUND_MARIO_HRMM SOUND_ARG_LOAD(2, 4, 0x06, 0x80, 8)
/* not verified */ #define SOUND_MARIO_WAH2 SOUND_ARG_LOAD(2, 4, 0x07, 0x80, 8)
/* not verified */ #define SOUND_MARIO_WHOA SOUND_ARG_LOAD(2, 4, 0x08, 0xC0, 8)
/* not verified */ #define SOUND_MARIO_EEUH SOUND_ARG_LOAD(2, 4, 0x09, 0x80, 8)
/* not verified */ #define SOUND_MARIO_ATTACKED SOUND_ARG_LOAD(2, 4, 0x0A, 0xFF, 8)
/* not verified */ #define SOUND_MARIO_OOOF SOUND_ARG_LOAD(2, 4, 0x0B, 0x80, 8)
/* not verified */ #define SOUND_MARIO_OOOF2 SOUND_ARG_LOAD(2, 4, 0x0B, 0xD0, 8)
/* not verified */
#define SOUND_MARIO_HOOHOO SOUND_ARG_LOAD(2, 4, 0x03, 0x80, 8)
/* not verified */
#define SOUND_MARIO_YAHOO SOUND_ARG_LOAD(2, 4, 0x04, 0x80, 8)
/* not verified */
#define SOUND_MARIO_UH SOUND_ARG_LOAD(2, 4, 0x05, 0x80, 8)
/* not verified */
#define SOUND_MARIO_HRMM SOUND_ARG_LOAD(2, 4, 0x06, 0x80, 8)
/* not verified */
#define SOUND_MARIO_WAH2 SOUND_ARG_LOAD(2, 4, 0x07, 0x80, 8)
/* not verified */
#define SOUND_MARIO_WHOA SOUND_ARG_LOAD(2, 4, 0x08, 0xC0, 8)
/* not verified */
#define SOUND_MARIO_EEUH SOUND_ARG_LOAD(2, 4, 0x09, 0x80, 8)
/* not verified */
#define SOUND_MARIO_ATTACKED SOUND_ARG_LOAD(2, 4, 0x0A, 0xFF, 8)
/* not verified */
#define SOUND_MARIO_OOOF SOUND_ARG_LOAD(2, 4, 0x0B, 0x80, 8)
/* not verified */
#define SOUND_MARIO_OOOF2 SOUND_ARG_LOAD(2, 4, 0x0B, 0xD0, 8)
#define SOUND_MARIO_HERE_WE_GO SOUND_ARG_LOAD(2, 4, 0x0C, 0x80, 8)
/* not verified */ #define SOUND_MARIO_YAWNING SOUND_ARG_LOAD(2, 4, 0x0D, 0x80, 8)
/* not verified */
#define SOUND_MARIO_YAWNING SOUND_ARG_LOAD(2, 4, 0x0D, 0x80, 8)
#define SOUND_MARIO_SNORING1 SOUND_ARG_LOAD(2, 4, 0x0E, 0x80, 8)
#define SOUND_MARIO_SNORING2 SOUND_ARG_LOAD(2, 4, 0x0F, 0x80, 8)
/* not verified */ #define SOUND_MARIO_WAAAOOOW SOUND_ARG_LOAD(2, 4, 0x10, 0xC0, 8)
/* not verified */ #define SOUND_MARIO_HAHA SOUND_ARG_LOAD(2, 4, 0x11, 0x80, 8)
/* not verified */ #define SOUND_MARIO_HAHA_2 SOUND_ARG_LOAD(2, 4, 0x11, 0xF0, 8)
/* not verified */ #define SOUND_MARIO_UH2 SOUND_ARG_LOAD(2, 4, 0x13, 0xD0, 8)
/* not verified */ #define SOUND_MARIO_UH2_2 SOUND_ARG_LOAD(2, 4, 0x13, 0x80, 8)
/* not verified */ #define SOUND_MARIO_ON_FIRE SOUND_ARG_LOAD(2, 4, 0x14, 0xA0, 8)
/* not verified */ #define SOUND_MARIO_DYING SOUND_ARG_LOAD(2, 4, 0x15, 0xFF, 8)
/* not verified */
#define SOUND_MARIO_WAAAOOOW SOUND_ARG_LOAD(2, 4, 0x10, 0xC0, 8)
/* not verified */
#define SOUND_MARIO_HAHA SOUND_ARG_LOAD(2, 4, 0x11, 0x80, 8)
/* not verified */
#define SOUND_MARIO_HAHA_2 SOUND_ARG_LOAD(2, 4, 0x11, 0xF0, 8)
/* not verified */
#define SOUND_MARIO_UH2 SOUND_ARG_LOAD(2, 4, 0x13, 0xD0, 8)
/* not verified */
#define SOUND_MARIO_UH2_2 SOUND_ARG_LOAD(2, 4, 0x13, 0x80, 8)
/* not verified */
#define SOUND_MARIO_ON_FIRE SOUND_ARG_LOAD(2, 4, 0x14, 0xA0, 8)
/* not verified */
#define SOUND_MARIO_DYING SOUND_ARG_LOAD(2, 4, 0x15, 0xFF, 8)
#define SOUND_MARIO_PANTING_COLD SOUND_ARG_LOAD(2, 4, 0x16, 0x80, 8)
// A random number 0-2 is added to the sound ID before playing
@@ -245,147 +288,268 @@
/* General Sound Effects */
#define SOUND_GENERAL_ACTIVATE_CAP_SWITCH SOUND_ARG_LOAD(3, 0, 0x00, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_FLAME_OUT SOUND_ARG_LOAD(3, 0, 0x03, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_OPEN_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x04, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_CLOSE_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x05, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_OPEN_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x06, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_CLOSE_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x07, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_BUBBLES 0x3008
/* not verified */ #define SOUND_GENERAL_MOVING_WATER SOUND_ARG_LOAD(3, 0, 0x09, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_SWISH_WATER SOUND_ARG_LOAD(3, 0, 0x0A, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_BUBBLE SOUND_ARG_LOAD(3, 0, 0x0B, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_FLAME_OUT SOUND_ARG_LOAD(3, 0, 0x03, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_OPEN_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x04, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_CLOSE_WOOD_DOOR SOUND_ARG_LOAD(3, 0, 0x05, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_OPEN_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x06, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_CLOSE_IRON_DOOR SOUND_ARG_LOAD(3, 0, 0x07, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_BUBBLES 0x3008
/* not verified */
#define SOUND_GENERAL_MOVING_WATER SOUND_ARG_LOAD(3, 0, 0x09, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_SWISH_WATER SOUND_ARG_LOAD(3, 0, 0x0A, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_QUIET_BUBBLE SOUND_ARG_LOAD(3, 0, 0x0B, 0x00, 8)
#define SOUND_GENERAL_VOLCANO_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x0C, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_BUBBLE2 SOUND_ARG_LOAD(3, 0, 0x0D, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_QUIET_BUBBLE2 SOUND_ARG_LOAD(3, 0, 0x0D, 0x00, 8)
#define SOUND_GENERAL_CASTLE_TRAP_OPEN SOUND_ARG_LOAD(3, 0, 0x0E, 0x80, 8)
#define SOUND_GENERAL_WALL_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x0F, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_COIN SOUND_ARG_LOAD(3, 8, 0x11, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_COIN_WATER SOUND_ARG_LOAD(3, 8, 0x12, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_SHORT_STAR SOUND_ARG_LOAD(3, 0, 0x16, 0x00, 9)
/* not verified */ #define SOUND_GENERAL_BIG_CLOCK SOUND_ARG_LOAD(3, 0, 0x17, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_LOUD_POUND 0x3018 // _TERRAIN?
/* not verified */ #define SOUND_GENERAL_LOUD_POUND2 0x3019
/* not verified */ #define SOUND_GENERAL_SHORT_POUND1 0x301A
/* not verified */ #define SOUND_GENERAL_SHORT_POUND2 0x301B
/* not verified */ #define SOUND_GENERAL_SHORT_POUND3 0x301C
/* not verified */ #define SOUND_GENERAL_SHORT_POUND4 0x301D
/* not verified */ #define SOUND_GENERAL_SHORT_POUND5 0x301E
/* not verified */ #define SOUND_GENERAL_SHORT_POUND6 0x301F
/* not verified */
#define SOUND_GENERAL_COIN SOUND_ARG_LOAD(3, 8, 0x11, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_COIN_WATER SOUND_ARG_LOAD(3, 8, 0x12, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_SHORT_STAR SOUND_ARG_LOAD(3, 0, 0x16, 0x00, 9)
/* not verified */
#define SOUND_GENERAL_BIG_CLOCK SOUND_ARG_LOAD(3, 0, 0x17, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_LOUD_POUND 0x3018 // _TERRAIN?
/* not verified */
#define SOUND_GENERAL_LOUD_POUND2 0x3019
/* not verified */
#define SOUND_GENERAL_SHORT_POUND1 0x301A
/* not verified */
#define SOUND_GENERAL_SHORT_POUND2 0x301B
/* not verified */
#define SOUND_GENERAL_SHORT_POUND3 0x301C
/* not verified */
#define SOUND_GENERAL_SHORT_POUND4 0x301D
/* not verified */
#define SOUND_GENERAL_SHORT_POUND5 0x301E
/* not verified */
#define SOUND_GENERAL_SHORT_POUND6 0x301F
#define SOUND_GENERAL_OPEN_CHEST SOUND_ARG_LOAD(3, 1, 0x20, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL1 SOUND_ARG_LOAD(3, 1, 0x22, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_BOX_LANDING SOUND_ARG_LOAD(3, 0, 0x24, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BOX_LANDING_2 SOUND_ARG_LOAD(3, 2, 0x24, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN1 SOUND_ARG_LOAD(3, 0, 0x25, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN1_2 SOUND_ARG_LOAD(3, 2, 0x25, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL2 SOUND_ARG_LOAD(3, 0, 0x26, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_CLAM_SHELL3 SOUND_ARG_LOAD(3, 0, 0x27, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_CLAM_SHELL1 SOUND_ARG_LOAD(3, 1, 0x22, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_BOX_LANDING SOUND_ARG_LOAD(3, 0, 0x24, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BOX_LANDING_2 SOUND_ARG_LOAD(3, 2, 0x24, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN1 SOUND_ARG_LOAD(3, 0, 0x25, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN1_2 SOUND_ARG_LOAD(3, 2, 0x25, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_CLAM_SHELL2 SOUND_ARG_LOAD(3, 0, 0x26, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_CLAM_SHELL3 SOUND_ARG_LOAD(3, 0, 0x27, 0x40, 8)
#ifdef VERSION_JP
#define SOUND_GENERAL_PAINTING_EJECT SOUND_ARG_LOAD(3, 8, 0x28, 0x00, 8)
#else
#define SOUND_GENERAL_PAINTING_EJECT SOUND_ARG_LOAD(3, 9, 0x28, 0x00, 8)
#endif
#define SOUND_GENERAL_LEVEL_SELECT_CHANGE SOUND_ARG_LOAD(3, 0, 0x2B, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_PLATFORM SOUND_ARG_LOAD(3, 0, 0x2D, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_PLATFORM SOUND_ARG_LOAD(3, 0, 0x2D, 0x80, 8)
#define SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION SOUND_ARG_LOAD(3, 0, 0x2E, 0x20, 8)
#define SOUND_GENERAL_BOWSER_BOMB_EXPLOSION SOUND_ARG_LOAD(3, 1, 0x2F, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_COIN_SPURT SOUND_ARG_LOAD(3, 0, 0x30, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_COIN_SPURT_2 SOUND_ARG_LOAD(3, 8, 0x30, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_COIN_SPURT_EU SOUND_ARG_LOAD(3, 8, 0x30, 0x20, 8)
/* not verified */
#define SOUND_GENERAL_COIN_SPURT SOUND_ARG_LOAD(3, 0, 0x30, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_COIN_SPURT_2 SOUND_ARG_LOAD(3, 8, 0x30, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_COIN_SPURT_EU SOUND_ARG_LOAD(3, 8, 0x30, 0x20, 8)
/* not verified */ #define SOUND_GENERAL_EXPLOSION6 0x3031
/* not verified */ #define SOUND_GENERAL_UNK32 0x3032
/* not verified */ #define SOUND_GENERAL_BOAT_TILT1 SOUND_ARG_LOAD(3, 0, 0x34, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_BOAT_TILT2 SOUND_ARG_LOAD(3, 0, 0x35, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_COIN_DROP SOUND_ARG_LOAD(3, 0, 0x36, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN3 SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN3_2 SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_EXPLOSION6 0x3031
/* not verified */
#define SOUND_GENERAL_UNK32 0x3032
/* not verified */
#define SOUND_GENERAL_BOAT_TILT1 SOUND_ARG_LOAD(3, 0, 0x34, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_BOAT_TILT2 SOUND_ARG_LOAD(3, 0, 0x35, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_COIN_DROP SOUND_ARG_LOAD(3, 0, 0x36, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN3_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN3 SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN3_2 SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8)
#define SOUND_GENERAL_PENDULUM_SWING SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP1 SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CHAIN_CHOMP2 SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_CHAIN_CHOMP1 SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_CHAIN_CHOMP2 SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8)
#define SOUND_GENERAL_DOOR_TURN_KEY SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_MOVING_IN_SAND SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN4_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNKNOWN4 SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_MOVING_IN_SAND SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN4_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNKNOWN4 SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8)
#define SOUND_GENERAL_MOVING_PLATFORM_SWITCH SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_CAGE_OPEN SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND1 SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_BREAK_BOX SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_CAGE_OPEN SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8)
/* not verified */
#define SOUND_GENERAL_QUIET_POUND1_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_QUIET_POUND1 SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_BREAK_BOX SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8)
#define SOUND_GENERAL_DOOR_INSERT_KEY SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_QUIET_POUND2 SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BIG_POUND SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNK45 SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNK46_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x46, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_UNK46 SOUND_ARG_LOAD(3, 0, 0x46, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_CANNON_UP SOUND_ARG_LOAD(3, 0, 0x47, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_GRINDEL_ROLL SOUND_ARG_LOAD(3, 0, 0x48, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_EXPLOSION7 0x3049
/* not verified */ #define SOUND_GENERAL_SHAKE_COFFIN 0x304A
/* not verified */ #define SOUND_GENERAL_RACE_GUN_SHOT SOUND_ARG_LOAD(3, 1, 0x4D, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_STAR_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x4E, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_STAR_DOOR_CLOSE SOUND_ARG_LOAD(3, 0, 0x4F, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_POUND_ROCK SOUND_ARG_LOAD(3, 0, 0x56, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_STAR_APPEARS SOUND_ARG_LOAD(3, 0, 0x57, 0xFF, 9)
/* not verified */
#define SOUND_GENERAL_QUIET_POUND2 SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BIG_POUND SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNK45 SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNK46_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x46, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_UNK46 SOUND_ARG_LOAD(3, 0, 0x46, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_CANNON_UP SOUND_ARG_LOAD(3, 0, 0x47, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_GRINDEL_ROLL SOUND_ARG_LOAD(3, 0, 0x48, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_EXPLOSION7 0x3049
/* not verified */
#define SOUND_GENERAL_SHAKE_COFFIN 0x304A
/* not verified */
#define SOUND_GENERAL_RACE_GUN_SHOT SOUND_ARG_LOAD(3, 1, 0x4D, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_STAR_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x4E, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_STAR_DOOR_CLOSE SOUND_ARG_LOAD(3, 0, 0x4F, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_POUND_ROCK SOUND_ARG_LOAD(3, 0, 0x56, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_STAR_APPEARS SOUND_ARG_LOAD(3, 0, 0x57, 0xFF, 9)
#define SOUND_GENERAL_COLLECT_1UP SOUND_ARG_LOAD(3, 0, 0x58, 0xFF, 8)
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x5A, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS SOUND_ARG_LOAD(3, 0, 0x5A, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO SOUND_ARG_LOAD(3, 1, 0x5A, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BUTTON_PRESS_2 SOUND_ARG_LOAD(3, 1, 0x5A, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_ELEVATOR_MOVE SOUND_ARG_LOAD(3, 0, 0x5B, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_ELEVATOR_MOVE_2 SOUND_ARG_LOAD(3, 1, 0x5B, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_SWISH_AIR SOUND_ARG_LOAD(3, 0, 0x5C, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_SWISH_AIR_2 SOUND_ARG_LOAD(3, 1, 0x5C, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_HAUNTED_CHAIR SOUND_ARG_LOAD(3, 0, 0x5D, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_SOFT_LANDING SOUND_ARG_LOAD(3, 0, 0x5E, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_HAUNTED_CHAIR_MOVE SOUND_ARG_LOAD(3, 0, 0x5F, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BOWSER_PLATFORM SOUND_ARG_LOAD(3, 0, 0x62, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_BOWSER_PLATFORM_2 SOUND_ARG_LOAD(3, 1, 0x62, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_HEART_SPIN SOUND_ARG_LOAD(3, 0, 0x64, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_POUND_WOOD_POST SOUND_ARG_LOAD(3, 0, 0x65, 0xC0, 8)
/* not verified */ #define SOUND_GENERAL_WATER_LEVEL_TRIG SOUND_ARG_LOAD(3, 0, 0x66, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_SWITCH_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x67, 0xA0, 8)
/* not verified */ #define SOUND_GENERAL_RED_COIN SOUND_ARG_LOAD(3, 0, 0x68, 0x90, 8)
/* not verified */ #define SOUND_GENERAL_BIRDS_FLY_AWAY SOUND_ARG_LOAD(3, 0, 0x69, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_METAL_POUND SOUND_ARG_LOAD(3, 0, 0x6B, 0x80, 8)
/* not verified */ #define SOUND_GENERAL_BOING1 SOUND_ARG_LOAD(3, 0, 0x6C, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_BOING2_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x6D, 0x20, 8)
/* not verified */ #define SOUND_GENERAL_BOING2 SOUND_ARG_LOAD(3, 0, 0x6D, 0x40, 8)
/* not verified */ #define SOUND_GENERAL_YOSHI_WALK SOUND_ARG_LOAD(3, 0, 0x6E, 0x20, 8)
/* not verified */ #define SOUND_GENERAL_ENEMY_ALERT1 SOUND_ARG_LOAD(3, 0, 0x6F, 0x30, 8)
/* not verified */ #define SOUND_GENERAL_YOSHI_TALK SOUND_ARG_LOAD(3, 0, 0x70, 0x30, 8)
/* not verified */ #define SOUND_GENERAL_SPLATTERING SOUND_ARG_LOAD(3, 0, 0x71, 0x30, 8)
/* not verified */ #define SOUND_GENERAL_BOING3 0x3072
/* not verified */ #define SOUND_GENERAL_GRAND_STAR SOUND_ARG_LOAD(3, 0, 0x73, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_GRAND_STAR_JUMP SOUND_ARG_LOAD(3, 0, 0x74, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_BOAT_ROCK SOUND_ARG_LOAD(3, 0, 0x75, 0x00, 8)
/* not verified */ #define SOUND_GENERAL_VANISH_SFX SOUND_ARG_LOAD(3, 0, 0x76, 0x20, 8)
/* not verified */
#define SOUND_GENERAL_BUTTON_PRESS_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x5A, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BUTTON_PRESS SOUND_ARG_LOAD(3, 0, 0x5A, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO SOUND_ARG_LOAD(3, 1, 0x5A, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BUTTON_PRESS_2 SOUND_ARG_LOAD(3, 1, 0x5A, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_ELEVATOR_MOVE SOUND_ARG_LOAD(3, 0, 0x5B, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_ELEVATOR_MOVE_2 SOUND_ARG_LOAD(3, 1, 0x5B, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_SWISH_AIR SOUND_ARG_LOAD(3, 0, 0x5C, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_SWISH_AIR_2 SOUND_ARG_LOAD(3, 1, 0x5C, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_HAUNTED_CHAIR SOUND_ARG_LOAD(3, 0, 0x5D, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_SOFT_LANDING SOUND_ARG_LOAD(3, 0, 0x5E, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_HAUNTED_CHAIR_MOVE SOUND_ARG_LOAD(3, 0, 0x5F, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BOWSER_PLATFORM SOUND_ARG_LOAD(3, 0, 0x62, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_BOWSER_PLATFORM_2 SOUND_ARG_LOAD(3, 1, 0x62, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_HEART_SPIN SOUND_ARG_LOAD(3, 0, 0x64, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_POUND_WOOD_POST SOUND_ARG_LOAD(3, 0, 0x65, 0xC0, 8)
/* not verified */
#define SOUND_GENERAL_WATER_LEVEL_TRIG SOUND_ARG_LOAD(3, 0, 0x66, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_SWITCH_DOOR_OPEN SOUND_ARG_LOAD(3, 0, 0x67, 0xA0, 8)
/* not verified */
#define SOUND_GENERAL_RED_COIN SOUND_ARG_LOAD(3, 0, 0x68, 0x90, 8)
/* not verified */
#define SOUND_GENERAL_BIRDS_FLY_AWAY SOUND_ARG_LOAD(3, 0, 0x69, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_METAL_POUND SOUND_ARG_LOAD(3, 0, 0x6B, 0x80, 8)
/* not verified */
#define SOUND_GENERAL_BOING1 SOUND_ARG_LOAD(3, 0, 0x6C, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_BOING2_LOWPRIO SOUND_ARG_LOAD(3, 0, 0x6D, 0x20, 8)
/* not verified */
#define SOUND_GENERAL_BOING2 SOUND_ARG_LOAD(3, 0, 0x6D, 0x40, 8)
/* not verified */
#define SOUND_GENERAL_YOSHI_WALK SOUND_ARG_LOAD(3, 0, 0x6E, 0x20, 8)
/* not verified */
#define SOUND_GENERAL_ENEMY_ALERT1 SOUND_ARG_LOAD(3, 0, 0x6F, 0x30, 8)
/* not verified */
#define SOUND_GENERAL_YOSHI_TALK SOUND_ARG_LOAD(3, 0, 0x70, 0x30, 8)
/* not verified */
#define SOUND_GENERAL_SPLATTERING SOUND_ARG_LOAD(3, 0, 0x71, 0x30, 8)
/* not verified */
#define SOUND_GENERAL_BOING3 0x3072
/* not verified */
#define SOUND_GENERAL_GRAND_STAR SOUND_ARG_LOAD(3, 0, 0x73, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_GRAND_STAR_JUMP SOUND_ARG_LOAD(3, 0, 0x74, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_BOAT_ROCK SOUND_ARG_LOAD(3, 0, 0x75, 0x00, 8)
/* not verified */
#define SOUND_GENERAL_VANISH_SFX SOUND_ARG_LOAD(3, 0, 0x76, 0x20, 8)
/* Environment Sound Effects */
/* not verified */ #define SOUND_ENV_WATERFALL1 SOUND_ARG_LOAD(4, 0, 0x00, 0x00, 0)
/* not verified */ #define SOUND_ENV_WATERFALL2 SOUND_ARG_LOAD(4, 0, 0x01, 0x00, 0)
/* not verified */ #define SOUND_ENV_ELEVATOR1 SOUND_ARG_LOAD(4, 0, 0x02, 0x00, 0)
/* not verified */ #define SOUND_ENV_DRONING1 SOUND_ARG_LOAD(4, 1, 0x03, 0x00, 0)
/* not verified */ #define SOUND_ENV_DRONING2 SOUND_ARG_LOAD(4, 0, 0x04, 0x00, 0)
/* not verified */ #define SOUND_ENV_WIND1 SOUND_ARG_LOAD(4, 0, 0x05, 0x00, 0)
/* not verified */ #define SOUND_ENV_MOVING_SAND_SNOW 0x4006
/* not verified */ #define SOUND_ENV_UNK07 0x4007
/* not verified */ #define SOUND_ENV_ELEVATOR2 SOUND_ARG_LOAD(4, 0, 0x08, 0x00, 0)
/* not verified */ #define SOUND_ENV_WATER SOUND_ARG_LOAD(4, 0, 0x09, 0x00, 0)
/* not verified */ #define SOUND_ENV_UNKNOWN2 SOUND_ARG_LOAD(4, 0, 0x0A, 0x00, 0)
/* not verified */ #define SOUND_ENV_BOAT_ROCKING1 SOUND_ARG_LOAD(4, 0, 0x0B, 0x00, 0)
/* not verified */ #define SOUND_ENV_ELEVATOR3 SOUND_ARG_LOAD(4, 0, 0x0C, 0x00, 0)
/* not verified */ #define SOUND_ENV_ELEVATOR4 SOUND_ARG_LOAD(4, 0, 0x0D, 0x00, 0)
/* not verified */ #define SOUND_ENV_ELEVATOR4_2 SOUND_ARG_LOAD(4, 1, 0x0D, 0x00, 0)
/* not verified */ #define SOUND_ENV_MOVINGSAND SOUND_ARG_LOAD(4, 0, 0x0E, 0x00, 0)
/* not verified */ #define SOUND_ENV_MERRY_GO_ROUND_CREAKING SOUND_ARG_LOAD(4, 0, 0x0F, 0x40, 0)
/* not verified */ #define SOUND_ENV_WIND2 SOUND_ARG_LOAD(4, 0, 0x10, 0x80, 0)
/* not verified */ #define SOUND_ENV_UNK12 0x4012
/* not verified */ #define SOUND_ENV_SLIDING SOUND_ARG_LOAD(4, 0, 0x13, 0x00, 0)
/* not verified */ #define SOUND_ENV_STAR SOUND_ARG_LOAD(4, 0, 0x14, 0x00, 1)
/* not verified */ #define SOUND_ENV_UNKNOWN4 SOUND_ARG_LOAD(4, 1, 0x15, 0x00, 0)
/* not verified */ #define SOUND_ENV_WATER_DRAIN SOUND_ARG_LOAD(4, 1, 0x16, 0x00, 0)
/* not verified */ #define SOUND_ENV_METAL_BOX_PUSH SOUND_ARG_LOAD(4, 0, 0x17, 0x80, 0)
/* not verified */ #define SOUND_ENV_SINK_QUICKSAND SOUND_ARG_LOAD(4, 0, 0x18, 0x80, 0)
/* not verified */
#define SOUND_ENV_WATERFALL1 SOUND_ARG_LOAD(4, 0, 0x00, 0x00, 0)
/* not verified */
#define SOUND_ENV_WATERFALL2 SOUND_ARG_LOAD(4, 0, 0x01, 0x00, 0)
/* not verified */
#define SOUND_ENV_ELEVATOR1 SOUND_ARG_LOAD(4, 0, 0x02, 0x00, 0)
/* not verified */
#define SOUND_ENV_DRONING1 SOUND_ARG_LOAD(4, 1, 0x03, 0x00, 0)
/* not verified */
#define SOUND_ENV_DRONING2 SOUND_ARG_LOAD(4, 0, 0x04, 0x00, 0)
/* not verified */
#define SOUND_ENV_WIND1 SOUND_ARG_LOAD(4, 0, 0x05, 0x00, 0)
/* not verified */
#define SOUND_ENV_MOVING_SAND_SNOW 0x4006
/* not verified */
#define SOUND_ENV_UNK07 0x4007
/* not verified */
#define SOUND_ENV_ELEVATOR2 SOUND_ARG_LOAD(4, 0, 0x08, 0x00, 0)
/* not verified */
#define SOUND_ENV_WATER SOUND_ARG_LOAD(4, 0, 0x09, 0x00, 0)
/* not verified */
#define SOUND_ENV_UNKNOWN2 SOUND_ARG_LOAD(4, 0, 0x0A, 0x00, 0)
/* not verified */
#define SOUND_ENV_BOAT_ROCKING1 SOUND_ARG_LOAD(4, 0, 0x0B, 0x00, 0)
/* not verified */
#define SOUND_ENV_ELEVATOR3 SOUND_ARG_LOAD(4, 0, 0x0C, 0x00, 0)
/* not verified */
#define SOUND_ENV_ELEVATOR4 SOUND_ARG_LOAD(4, 0, 0x0D, 0x00, 0)
/* not verified */
#define SOUND_ENV_ELEVATOR4_2 SOUND_ARG_LOAD(4, 1, 0x0D, 0x00, 0)
/* not verified */
#define SOUND_ENV_MOVINGSAND SOUND_ARG_LOAD(4, 0, 0x0E, 0x00, 0)
/* not verified */
#define SOUND_ENV_MERRY_GO_ROUND_CREAKING SOUND_ARG_LOAD(4, 0, 0x0F, 0x40, 0)
/* not verified */
#define SOUND_ENV_WIND2 SOUND_ARG_LOAD(4, 0, 0x10, 0x80, 0)
/* not verified */
#define SOUND_ENV_UNK12 0x4012
/* not verified */
#define SOUND_ENV_SLIDING SOUND_ARG_LOAD(4, 0, 0x13, 0x00, 0)
/* not verified */
#define SOUND_ENV_STAR SOUND_ARG_LOAD(4, 0, 0x14, 0x00, 1)
/* not verified */
#define SOUND_ENV_UNKNOWN4 SOUND_ARG_LOAD(4, 1, 0x15, 0x00, 0)
/* not verified */
#define SOUND_ENV_WATER_DRAIN SOUND_ARG_LOAD(4, 1, 0x16, 0x00, 0)
/* not verified */
#define SOUND_ENV_METAL_BOX_PUSH SOUND_ARG_LOAD(4, 0, 0x17, 0x80, 0)
/* not verified */
#define SOUND_ENV_SINK_QUICKSAND SOUND_ARG_LOAD(4, 0, 0x18, 0x80, 0)
/* Object Sound Effects */
#define SOUND_OBJ_SUSHI_SHARK_WATER_SOUND SOUND_ARG_LOAD(5, 0, 0x00, 0x80, 8)
@@ -400,45 +564,69 @@
#define SOUND_OBJ_BOO_BOUNCE_TOP SOUND_ARG_LOAD(5, 0, 0x0A, 0x00, 8)
#define SOUND_OBJ_BOO_LAUGH_SHORT SOUND_ARG_LOAD(5, 0, 0x0B, 0x00, 8)
#define SOUND_OBJ_THWOMP SOUND_ARG_LOAD(5, 0, 0x0C, 0xA0, 8)
/* not verified */ #define SOUND_OBJ_CANNON1 SOUND_ARG_LOAD(5, 0, 0x0D, 0xF0, 8)
/* not verified */ #define SOUND_OBJ_CANNON2 SOUND_ARG_LOAD(5, 0, 0x0E, 0xF0, 8)
/* not verified */ #define SOUND_OBJ_CANNON3 SOUND_ARG_LOAD(5, 0, 0x0F, 0xF0, 8)
/* not verified */ #define SOUND_OBJ_JUMP_WALK_WATER 0x5012
/* not verified */ #define SOUND_OBJ_UNKNOWN2 SOUND_ARG_LOAD(5, 0, 0x13, 0x00, 8)
/* not verified */
#define SOUND_OBJ_CANNON1 SOUND_ARG_LOAD(5, 0, 0x0D, 0xF0, 8)
/* not verified */
#define SOUND_OBJ_CANNON2 SOUND_ARG_LOAD(5, 0, 0x0E, 0xF0, 8)
/* not verified */
#define SOUND_OBJ_CANNON3 SOUND_ARG_LOAD(5, 0, 0x0F, 0xF0, 8)
/* not verified */
#define SOUND_OBJ_JUMP_WALK_WATER 0x5012
/* not verified */
#define SOUND_OBJ_UNKNOWN2 SOUND_ARG_LOAD(5, 0, 0x13, 0x00, 8)
#define SOUND_OBJ_MRI_DEATH SOUND_ARG_LOAD(5, 0, 0x14, 0x00, 8)
/* not verified */ #define SOUND_OBJ_POUNDING1 SOUND_ARG_LOAD(5, 0, 0x15, 0x50, 8)
/* not verified */ #define SOUND_OBJ_POUNDING1_HIGHPRIO SOUND_ARG_LOAD(5, 0, 0x15, 0x80, 8)
/* not verified */
#define SOUND_OBJ_POUNDING1 SOUND_ARG_LOAD(5, 0, 0x15, 0x50, 8)
/* not verified */
#define SOUND_OBJ_POUNDING1_HIGHPRIO SOUND_ARG_LOAD(5, 0, 0x15, 0x80, 8)
#define SOUND_OBJ_WHOMP_LOWPRIO SOUND_ARG_LOAD(5, 0, 0x16, 0x60, 8)
#define SOUND_OBJ_KING_BOBOMB SOUND_ARG_LOAD(5, 0, 0x16, 0x80, 8)
/* not verified */ #define SOUND_OBJ_BULLY_METAL SOUND_ARG_LOAD(5, 0, 0x17, 0x80, 8)
/* not verified */ #define SOUND_OBJ_BULLY_EXPLODE SOUND_ARG_LOAD(5, 0, 0x18, 0xA0, 8)
/* not verified */ #define SOUND_OBJ_BULLY_EXPLODE_2 SOUND_ARG_LOAD(5, 1, 0x18, 0xA0, 8)
/* not verified */ #define SOUND_OBJ_POUNDING_CANNON SOUND_ARG_LOAD(5, 0, 0x1A, 0x50, 8)
/* not verified */ #define SOUND_OBJ_BULLY_WALK SOUND_ARG_LOAD(5, 0, 0x1B, 0x30, 8)
/* not verified */ #define SOUND_OBJ_UNKNOWN3 SOUND_ARG_LOAD(5, 0, 0x1D, 0x80, 8)
/* not verified */ #define SOUND_OBJ_UNKNOWN4 SOUND_ARG_LOAD(5, 0, 0x1E, 0xA0, 8)
/* not verified */
#define SOUND_OBJ_BULLY_METAL SOUND_ARG_LOAD(5, 0, 0x17, 0x80, 8)
/* not verified */
#define SOUND_OBJ_BULLY_EXPLODE SOUND_ARG_LOAD(5, 0, 0x18, 0xA0, 8)
/* not verified */
#define SOUND_OBJ_BULLY_EXPLODE_2 SOUND_ARG_LOAD(5, 1, 0x18, 0xA0, 8)
/* not verified */
#define SOUND_OBJ_POUNDING_CANNON SOUND_ARG_LOAD(5, 0, 0x1A, 0x50, 8)
/* not verified */
#define SOUND_OBJ_BULLY_WALK SOUND_ARG_LOAD(5, 0, 0x1B, 0x30, 8)
/* not verified */
#define SOUND_OBJ_UNKNOWN3 SOUND_ARG_LOAD(5, 0, 0x1D, 0x80, 8)
/* not verified */
#define SOUND_OBJ_UNKNOWN4 SOUND_ARG_LOAD(5, 0, 0x1E, 0xA0, 8)
#define SOUND_OBJ_BABY_PENGUIN_DIVE SOUND_ARG_LOAD(5, 0, 0x1F, 0x40, 8)
#define SOUND_OBJ_GOOMBA_WALK SOUND_ARG_LOAD(5, 0, 0x20, 0x00, 8)
#define SOUND_OBJ_UKIKI_CHATTER_LONG SOUND_ARG_LOAD(5, 0, 0x21, 0x00, 8)
#define SOUND_OBJ_MONTY_MOLE_ATTACK SOUND_ARG_LOAD(5, 0, 0x22, 0x00, 8)
#define SOUND_OBJ_EVIL_LAKITU_THROW SOUND_ARG_LOAD(5, 0, 0x22, 0x20, 8)
/* not verified */ #define SOUND_OBJ_UNK23 0x5023
/* not verified */
#define SOUND_OBJ_UNK23 0x5023
#define SOUND_OBJ_DYING_ENEMY1 SOUND_ARG_LOAD(5, 0, 0x24, 0x40, 8)
/* not verified */ #define SOUND_OBJ_CANNON4 SOUND_ARG_LOAD(5, 0, 0x25, 0x40, 8)
/* not verified */ #define SOUND_OBJ_DYING_ENEMY2 0x5026
/* not verified */
#define SOUND_OBJ_CANNON4 SOUND_ARG_LOAD(5, 0, 0x25, 0x40, 8)
/* not verified */
#define SOUND_OBJ_DYING_ENEMY2 0x5026
#define SOUND_OBJ_BOBOMB_WALK SOUND_ARG_LOAD(5, 0, 0x27, 0x00, 8)
/* not verified */ #define SOUND_OBJ_SOMETHING_LANDING SOUND_ARG_LOAD(5, 0, 0x28, 0x80, 8)
/* not verified */ #define SOUND_OBJ_DIVING_IN_WATER SOUND_ARG_LOAD(5, 0, 0x29, 0xA0, 8)
/* not verified */ #define SOUND_OBJ_SNOW_SAND1 SOUND_ARG_LOAD(5, 0, 0x2A, 0x00, 8)
/* not verified */ #define SOUND_OBJ_SNOW_SAND2 SOUND_ARG_LOAD(5, 0, 0x2B, 0x00, 8)
/* not verified */
#define SOUND_OBJ_SOMETHING_LANDING SOUND_ARG_LOAD(5, 0, 0x28, 0x80, 8)
/* not verified */
#define SOUND_OBJ_DIVING_IN_WATER SOUND_ARG_LOAD(5, 0, 0x29, 0xA0, 8)
/* not verified */
#define SOUND_OBJ_SNOW_SAND1 SOUND_ARG_LOAD(5, 0, 0x2A, 0x00, 8)
/* not verified */
#define SOUND_OBJ_SNOW_SAND2 SOUND_ARG_LOAD(5, 0, 0x2B, 0x00, 8)
#define SOUND_OBJ_DEFAULT_DEATH SOUND_ARG_LOAD(5, 0, 0x2C, 0x80, 8)
#define SOUND_OBJ_BIG_PENGUIN_YELL SOUND_ARG_LOAD(5, 0, 0x2D, 0x00, 8)
#define SOUND_OBJ_WATER_BOMB_BOUNCING SOUND_ARG_LOAD(5, 0, 0x2E, 0x80, 8)
#define SOUND_OBJ_GOOMBA_ALERT SOUND_ARG_LOAD(5, 0, 0x2F, 0x00, 8)
#define SOUND_OBJ_WIGGLER_JUMP SOUND_ARG_LOAD(5, 0, 0x2F, 0x60, 8)
/* not verified */ #define SOUND_OBJ_STOMPED SOUND_ARG_LOAD(5, 0, 0x30, 0x80, 8)
/* not verified */ #define SOUND_OBJ_UNKNOWN6 SOUND_ARG_LOAD(5, 0, 0x31, 0x00, 8)
/* not verified */ #define SOUND_OBJ_DIVING_INTO_WATER SOUND_ARG_LOAD(5, 0, 0x32, 0x40, 8)
/* not verified */
#define SOUND_OBJ_STOMPED SOUND_ARG_LOAD(5, 0, 0x30, 0x80, 8)
/* not verified */
#define SOUND_OBJ_UNKNOWN6 SOUND_ARG_LOAD(5, 0, 0x31, 0x00, 8)
/* not verified */
#define SOUND_OBJ_DIVING_INTO_WATER SOUND_ARG_LOAD(5, 0, 0x32, 0x40, 8)
#define SOUND_OBJ_PIRANHA_PLANT_SHRINK SOUND_ARG_LOAD(5, 0, 0x33, 0x40, 8)
#define SOUND_OBJ_KOOPA_THE_QUICK_WALK SOUND_ARG_LOAD(5, 0, 0x34, 0x20, 8)
#define SOUND_OBJ_KOOPA_WALK SOUND_ARG_LOAD(5, 0, 0x35, 0x00, 8)
@@ -451,39 +639,52 @@
#define SOUND_OBJ_UKIKI_STEP_LEAVES SOUND_ARG_LOAD(5, 0, 0x3C, 0x00, 8)
#define SOUND_OBJ_KOOPA_TALK SOUND_ARG_LOAD(5, 0, 0x3D, 0xA0, 8)
#define SOUND_OBJ_KOOPA_DAMAGE SOUND_ARG_LOAD(5, 0, 0x3E, 0xA0, 8)
/* not verified */ #define SOUND_OBJ_KLEPTO1 SOUND_ARG_LOAD(5, 0, 0x3F, 0x40, 8)
/* not verified */ #define SOUND_OBJ_KLEPTO2 SOUND_ARG_LOAD(5, 0, 0x40, 0x60, 8)
/* not verified */
#define SOUND_OBJ_KLEPTO1 SOUND_ARG_LOAD(5, 0, 0x3F, 0x40, 8)
/* not verified */
#define SOUND_OBJ_KLEPTO2 SOUND_ARG_LOAD(5, 0, 0x40, 0x60, 8)
#define SOUND_OBJ_KING_BOBOMB_TALK SOUND_ARG_LOAD(5, 0, 0x41, 0x00, 8)
#define SOUND_OBJ_KING_BOBOMB_JUMP SOUND_ARG_LOAD(5, 0, 0x46, 0x80, 8)
#define SOUND_OBJ_KING_WHOMP_DEATH SOUND_ARG_LOAD(5, 1, 0x47, 0xC0, 8)
#define SOUND_OBJ_BOO_LAUGH_LONG SOUND_ARG_LOAD(5, 0, 0x48, 0x00, 8)
/* not verified */ #define SOUND_OBJ_EEL SOUND_ARG_LOAD(5, 0, 0x4A, 0x00, 8)
/* not verified */ #define SOUND_OBJ_EEL_2 SOUND_ARG_LOAD(5, 2, 0x4A, 0x00, 8)
/* not verified */
#define SOUND_OBJ_EEL SOUND_ARG_LOAD(5, 0, 0x4A, 0x00, 8)
/* not verified */
#define SOUND_OBJ_EEL_2 SOUND_ARG_LOAD(5, 2, 0x4A, 0x00, 8)
#define SOUND_OBJ_EYEROK_SHOW_EYE SOUND_ARG_LOAD(5, 2, 0x4B, 0x00, 8)
#define SOUND_OBJ_MR_BLIZZARD_ALERT SOUND_ARG_LOAD(5, 0, 0x4C, 0x00, 8)
#define SOUND_OBJ_SNUFIT_SHOOT SOUND_ARG_LOAD(5, 0, 0x4D, 0x00, 8)
#define SOUND_OBJ_SKEETER_WALK SOUND_ARG_LOAD(5, 0, 0x4E, 0x00, 8)
/* not verified */ #define SOUND_OBJ_WALKING_WATER SOUND_ARG_LOAD(5, 0, 0x4F, 0x00, 8)
/* not verified */
#define SOUND_OBJ_WALKING_WATER SOUND_ARG_LOAD(5, 0, 0x4F, 0x00, 8)
#define SOUND_OBJ_BIRD_CHIRP3 SOUND_ARG_LOAD(5, 0, 0x51, 0x40, 0)
#define SOUND_OBJ_PIRANHA_PLANT_APPEAR SOUND_ARG_LOAD(5, 0, 0x54, 0x20, 8)
#define SOUND_OBJ_FLAME_BLOWN SOUND_ARG_LOAD(5, 0, 0x55, 0x80, 8)
#define SOUND_OBJ_MAD_PIANO_CHOMPING SOUND_ARG_LOAD(5, 2, 0x56, 0x40, 8)
#define SOUND_OBJ_BOBOMB_BUDDY_TALK SOUND_ARG_LOAD(5, 0, 0x58, 0x40, 8)
/* not verified */ #define SOUND_OBJ_SPINY_UNK59 SOUND_ARG_LOAD(5, 0, 0x59, 0x10, 8)
/* not verified */
#define SOUND_OBJ_SPINY_UNK59 SOUND_ARG_LOAD(5, 0, 0x59, 0x10, 8)
#define SOUND_OBJ_WIGGLER_HIGH_PITCH SOUND_ARG_LOAD(5, 0, 0x5C, 0x40, 8)
#define SOUND_OBJ_HEAVEHO_TOSSED SOUND_ARG_LOAD(5, 0, 0x5D, 0x40, 8)
/* not verified */ #define SOUND_OBJ_WIGGLER_DEATH 0x505E
/* not verified */
#define SOUND_OBJ_WIGGLER_DEATH 0x505E
#define SOUND_OBJ_BOWSER_INTRO_LAUGH SOUND_ARG_LOAD(5, 0, 0x5F, 0x80, 9)
/* not verified */ #define SOUND_OBJ_ENEMY_DEATH_HIGH SOUND_ARG_LOAD(5, 0, 0x60, 0xB0, 8)
/* not verified */ #define SOUND_OBJ_ENEMY_DEATH_LOW SOUND_ARG_LOAD(5, 0, 0x61, 0xB0, 8)
/* not verified */
#define SOUND_OBJ_ENEMY_DEATH_HIGH SOUND_ARG_LOAD(5, 0, 0x60, 0xB0, 8)
/* not verified */
#define SOUND_OBJ_ENEMY_DEATH_LOW SOUND_ARG_LOAD(5, 0, 0x61, 0xB0, 8)
#define SOUND_OBJ_SWOOP_DEATH SOUND_ARG_LOAD(5, 0, 0x62, 0xB0, 8)
#define SOUND_OBJ_KOOPA_FLYGUY_DEATH SOUND_ARG_LOAD(5, 0, 0x63, 0xB0, 8)
#define SOUND_OBJ_POKEY_DEATH SOUND_ARG_LOAD(5, 0, 0x63, 0xC0, 8)
/* not verified */ #define SOUND_OBJ_SNOWMAN_BOUNCE SOUND_ARG_LOAD(5, 0, 0x64, 0xC0, 8)
/* not verified */
#define SOUND_OBJ_SNOWMAN_BOUNCE SOUND_ARG_LOAD(5, 0, 0x64, 0xC0, 8)
#define SOUND_OBJ_SNOWMAN_EXPLODE SOUND_ARG_LOAD(5, 0, 0x65, 0xD0, 8)
/* not verified */ #define SOUND_OBJ_POUNDING_LOUD SOUND_ARG_LOAD(5, 0, 0x68, 0x40, 8)
/* not verified */ #define SOUND_OBJ_MIPS_RABBIT SOUND_ARG_LOAD(5, 0, 0x6A, 0x00, 8)
/* not verified */ #define SOUND_OBJ_MIPS_RABBIT_WATER SOUND_ARG_LOAD(5, 0, 0x6C, 0x00, 8)
/* not verified */
#define SOUND_OBJ_POUNDING_LOUD SOUND_ARG_LOAD(5, 0, 0x68, 0x40, 8)
/* not verified */
#define SOUND_OBJ_MIPS_RABBIT SOUND_ARG_LOAD(5, 0, 0x6A, 0x00, 8)
/* not verified */
#define SOUND_OBJ_MIPS_RABBIT_WATER SOUND_ARG_LOAD(5, 0, 0x6C, 0x00, 8)
#define SOUND_OBJ_EYEROK_EXPLODE SOUND_ARG_LOAD(5, 0, 0x6D, 0x00, 8)
#define SOUND_OBJ_CHUCKYA_DEATH SOUND_ARG_LOAD(5, 1, 0x6E, 0x00, 8)
#define SOUND_OBJ_WIGGLER_TALK SOUND_ARG_LOAD(5, 0, 0x6F, 0x00, 8)
@@ -511,7 +712,8 @@
/* Menu Sound Effects */
#define SOUND_MENU_CHANGE_SELECT SOUND_ARG_LOAD(7, 0, 0x00, 0xF8, 8)
/* not verified */ #define SOUND_MENU_REVERSE_PAUSE 0x7001
/* not verified */
#define SOUND_MENU_REVERSE_PAUSE 0x7001
#define SOUND_MENU_PAUSE SOUND_ARG_LOAD(7, 0, 0x02, 0xF0, 8)
#define SOUND_MENU_PAUSE_HIGHPRIO SOUND_ARG_LOAD(7, 0, 0x02, 0xFF, 8)
#define SOUND_MENU_PAUSE_2 SOUND_ARG_LOAD(7, 0, 0x03, 0xFF, 8)
@@ -523,28 +725,39 @@
#define SOUND_MENU_LET_GO_MARIO_FACE SOUND_ARG_LOAD(7, 0, 0x09, 0x00, 8)
#define SOUND_MENU_HAND_APPEAR SOUND_ARG_LOAD(7, 0, 0x0A, 0x00, 8)
#define SOUND_MENU_HAND_DISAPPEAR SOUND_ARG_LOAD(7, 0, 0x0B, 0x00, 8)
/* not verified */ #define SOUND_MENU_UNK0C SOUND_ARG_LOAD(7, 0, 0x0C, 0x00, 8)
/* not verified */ #define SOUND_MENU_POWER_METER SOUND_ARG_LOAD(7, 0, 0x0D, 0x00, 8)
/* not verified */
#define SOUND_MENU_UNK0C SOUND_ARG_LOAD(7, 0, 0x0C, 0x00, 8)
/* not verified */
#define SOUND_MENU_POWER_METER SOUND_ARG_LOAD(7, 0, 0x0D, 0x00, 8)
#define SOUND_MENU_CAMERA_BUZZ SOUND_ARG_LOAD(7, 0, 0x0E, 0x00, 8)
#define SOUND_MENU_CAMERA_TURN SOUND_ARG_LOAD(7, 0, 0x0F, 0x00, 8)
/* not verified */ #define SOUND_MENU_UNK10 0x7010
/* not verified */
#define SOUND_MENU_UNK10 0x7010
#define SOUND_MENU_CLICK_FILE_SELECT SOUND_ARG_LOAD(7, 0, 0x11, 0x00, 8)
/* not verified */ #define SOUND_MENU_MESSAGE_NEXT_PAGE SOUND_ARG_LOAD(7, 0, 0x13, 0x00, 8)
/* not verified */
#define SOUND_MENU_MESSAGE_NEXT_PAGE SOUND_ARG_LOAD(7, 0, 0x13, 0x00, 8)
#define SOUND_MENU_COIN_ITS_A_ME_MARIO SOUND_ARG_LOAD(7, 0, 0x14, 0x00, 8)
#define SOUND_MENU_YOSHI_GAIN_LIVES SOUND_ARG_LOAD(7, 0, 0x15, 0x00, 8)
#define SOUND_MENU_ENTER_PIPE SOUND_ARG_LOAD(7, 0, 0x16, 0xA0, 8)
#define SOUND_MENU_EXIT_PIPE SOUND_ARG_LOAD(7, 0, 0x17, 0xA0, 8)
#define SOUND_MENU_BOWSER_LAUGH SOUND_ARG_LOAD(7, 0, 0x18, 0x80, 8)
#define SOUND_MENU_ENTER_HOLE SOUND_ARG_LOAD(7, 1, 0x19, 0x80, 8)
/* not verified */ #define SOUND_MENU_CLICK_CHANGE_VIEW SOUND_ARG_LOAD(7, 0, 0x1A, 0x80, 8)
/* not verified */ #define SOUND_MENU_CAMERA_UNUSED1 0x701B
/* not verified */ #define SOUND_MENU_CAMERA_UNUSED2 0x701C
/* not verified */ #define SOUND_MENU_MARIO_CASTLE_WARP SOUND_ARG_LOAD(7, 0, 0x1D, 0xB0, 8)
/* not verified */
#define SOUND_MENU_CLICK_CHANGE_VIEW SOUND_ARG_LOAD(7, 0, 0x1A, 0x80, 8)
/* not verified */
#define SOUND_MENU_CAMERA_UNUSED1 0x701B
/* not verified */
#define SOUND_MENU_CAMERA_UNUSED2 0x701C
/* not verified */
#define SOUND_MENU_MARIO_CASTLE_WARP SOUND_ARG_LOAD(7, 0, 0x1D, 0xB0, 8)
#define SOUND_MENU_STAR_SOUND SOUND_ARG_LOAD(7, 0, 0x1E, 0xFF, 8)
#define SOUND_MENU_THANK_YOU_PLAYING_MY_GAME SOUND_ARG_LOAD(7, 0, 0x1F, 0xFF, 8)
/* not verified */ #define SOUND_MENU_READ_A_SIGN 0x7020
/* not verified */ #define SOUND_MENU_EXIT_A_SIGN 0x7021
/* not verified */ #define SOUND_MENU_MARIO_CASTLE_WARP2 SOUND_ARG_LOAD(7, 0, 0x22, 0x20, 8)
/* not verified */
#define SOUND_MENU_READ_A_SIGN 0x7020
/* not verified */
#define SOUND_MENU_EXIT_A_SIGN 0x7021
/* not verified */
#define SOUND_MENU_MARIO_CASTLE_WARP2 SOUND_ARG_LOAD(7, 0, 0x22, 0x20, 8)
#define SOUND_MENU_STAR_SOUND_OKEY_DOKEY SOUND_ARG_LOAD(7, 0, 0x23, 0xFF, 8)
#define SOUND_MENU_STAR_SOUND_LETS_A_GO SOUND_ARG_LOAD(7, 0, 0x24, 0xFF, 8)
+1 -1
View File
@@ -357,7 +357,7 @@
CMD_BBH(0x19, 0x00, background), \
CMD_PTR(function)
#define GEO_BACKGROUND_COLOR(background) \
GEO_BACKGROUND(background, NULL)
GEO_BACKGROUND(background, nullptr)
/**
* 0x1A: No operation
+430 -209
View File
@@ -5,215 +5,436 @@
enum MarioAnimID
{
/* 0x00 */ MARIO_ANIM_SLOW_LEDGE_GRAB,
/* 0x01 */ MARIO_ANIM_FALL_OVER_BACKWARDS,
/* 0x02 */ MARIO_ANIM_BACKWARD_AIR_KB,
/* 0x03 */ MARIO_ANIM_DYING_ON_BACK,
/* 0x04 */ MARIO_ANIM_BACKFLIP,
/* 0x05 */ MARIO_ANIM_CLIMB_UP_POLE,
/* 0x06 */ MARIO_ANIM_GRAB_POLE_SHORT,
/* 0x07 */ MARIO_ANIM_GRAB_POLE_SWING_PART1,
/* 0x08 */ MARIO_ANIM_GRAB_POLE_SWING_PART2,
/* 0x09 */ MARIO_ANIM_HANDSTAND_IDLE,
/* 0x0A */ MARIO_ANIM_HANDSTAND_JUMP,
/* 0x0B */ MARIO_ANIM_START_HANDSTAND,
/* 0x0C */ MARIO_ANIM_RETURN_FROM_HANDSTAND,
/* 0x0D */ MARIO_ANIM_IDLE_ON_POLE,
/* 0x0E */ MARIO_ANIM_A_POSE,
/* 0x0F */ MARIO_ANIM_SKID_ON_GROUND,
/* 0x10 */ MARIO_ANIM_STOP_SKID,
/* 0x11 */ MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP,
/* 0x12 */ MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP,
/* 0x13 */ MARIO_ANIM_FAST_LONGJUMP,
/* 0x14 */ MARIO_ANIM_SLOW_LONGJUMP,
/* 0x15 */ MARIO_ANIM_AIRBORNE_ON_STOMACH,
/* 0x16 */ MARIO_ANIM_WALK_WITH_LIGHT_OBJ,
/* 0x17 */ MARIO_ANIM_RUN_WITH_LIGHT_OBJ,
/* 0x18 */ MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ,
/* 0x19 */ MARIO_ANIM_SHIVERING_WARMING_HAND,
/* 0x1A */ MARIO_ANIM_SHIVERING_RETURN_TO_IDLE,
/* 0x1B */ MARIO_ANIM_SHIVERING,
/* 0x1C */ MARIO_ANIM_CLIMB_DOWN_LEDGE,
/* 0x1D */ MARIO_ANIM_CREDITS_WAVING,
/* 0x1E */ MARIO_ANIM_CREDITS_LOOK_UP,
/* 0x1F */ MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP,
/* 0x20 */ MARIO_ANIM_CREDITS_RAISE_HAND,
/* 0x21 */ MARIO_ANIM_CREDITS_LOWER_HAND,
/* 0x22 */ MARIO_ANIM_CREDITS_TAKE_OFF_CAP,
/* 0x23 */ MARIO_ANIM_CREDITS_START_WALK_LOOK_UP,
/* 0x24 */ MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN,
/* 0x25 */ MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN,
/* 0x26 */ MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF,
/* 0x27 */ MARIO_ANIM_CREDITS_PEACE_SIGN,
/* 0x28 */ MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST,
/* 0x29 */ MARIO_ANIM_FIRE_LAVA_BURN,
/* 0x2A */ MARIO_ANIM_WING_CAP_FLY,
/* 0x2B */ MARIO_ANIM_HANG_ON_OWL,
/* 0x2C */ MARIO_ANIM_LAND_ON_STOMACH,
/* 0x2D */ MARIO_ANIM_AIR_FORWARD_KB,
/* 0x2E */ MARIO_ANIM_DYING_ON_STOMACH,
/* 0x2F */ MARIO_ANIM_SUFFOCATING,
/* 0x30 */ MARIO_ANIM_COUGHING,
/* 0x31 */ MARIO_ANIM_THROW_CATCH_KEY,
/* 0x32 */ MARIO_ANIM_DYING_FALL_OVER,
/* 0x33 */ MARIO_ANIM_IDLE_ON_LEDGE,
/* 0x34 */ MARIO_ANIM_FAST_LEDGE_GRAB,
/* 0x35 */ MARIO_ANIM_HANG_ON_CEILING,
/* 0x36 */ MARIO_ANIM_PUT_CAP_ON,
/* 0x37 */ MARIO_ANIM_TAKE_CAP_OFF_THEN_ON,
/* 0x38 */ MARIO_ANIM_QUICKLY_PUT_CAP_ON, // unused
/* 0x39 */ MARIO_ANIM_HEAD_STUCK_IN_GROUND,
/* 0x3A */ MARIO_ANIM_GROUND_POUND_LANDING,
/* 0x3B */ MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND,
/* 0x3C */ MARIO_ANIM_START_GROUND_POUND,
/* 0x3D */ MARIO_ANIM_GROUND_POUND,
/* 0x3E */ MARIO_ANIM_BOTTOM_STUCK_IN_GROUND,
/* 0x3F */ MARIO_ANIM_IDLE_WITH_LIGHT_OBJ,
/* 0x40 */ MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ,
/* 0x41 */ MARIO_ANIM_JUMP_WITH_LIGHT_OBJ,
/* 0x42 */ MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ,
/* 0x43 */ MARIO_ANIM_FALL_WITH_LIGHT_OBJ,
/* 0x44 */ MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ,
/* 0x45 */ MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ,
/* 0x46 */ MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ,
/* 0x47 */ MARIO_ANIM_RIDING_SHELL,
/* 0x48 */ MARIO_ANIM_WALKING,
/* 0x49 */ MARIO_ANIM_FORWARD_FLIP, // unused
/* 0x4A */ MARIO_ANIM_JUMP_RIDING_SHELL,
/* 0x4B */ MARIO_ANIM_LAND_FROM_DOUBLE_JUMP,
/* 0x4C */ MARIO_ANIM_DOUBLE_JUMP_FALL,
/* 0x4D */ MARIO_ANIM_SINGLE_JUMP,
/* 0x4E */ MARIO_ANIM_LAND_FROM_SINGLE_JUMP,
/* 0x4F */ MARIO_ANIM_AIR_KICK,
/* 0x50 */ MARIO_ANIM_DOUBLE_JUMP_RISE,
/* 0x51 */ MARIO_ANIM_START_FORWARD_SPINNING, // unused
/* 0x52 */ MARIO_ANIM_THROW_LIGHT_OBJECT,
/* 0x53 */ MARIO_ANIM_FALL_FROM_SLIDE_KICK,
/* 0x54 */ MARIO_ANIM_BEND_KNESS_RIDING_SHELL, // unused
/* 0x55 */ MARIO_ANIM_LEGS_STUCK_IN_GROUND,
/* 0x56 */ MARIO_ANIM_GENERAL_FALL,
/* 0x57 */ MARIO_ANIM_GENERAL_LAND,
/* 0x58 */ MARIO_ANIM_BEING_GRABBED,
/* 0x59 */ MARIO_ANIM_GRAB_HEAVY_OBJECT,
/* 0x5A */ MARIO_ANIM_SLOW_LAND_FROM_DIVE,
/* 0x5B */ MARIO_ANIM_FLY_FROM_CANNON,
/* 0x5C */ MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT,
/* 0x5D */ MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT,
/* 0x5E */ MARIO_ANIM_MISSING_CAP,
/* 0x5F */ MARIO_ANIM_PULL_DOOR_WALK_IN,
/* 0x60 */ MARIO_ANIM_PUSH_DOOR_WALK_IN,
/* 0x61 */ MARIO_ANIM_UNLOCK_DOOR,
/* 0x62 */ MARIO_ANIM_START_REACH_POCKET, // unused, reaching keys maybe?
/* 0x63 */ MARIO_ANIM_REACH_POCKET, // unused
/* 0x64 */ MARIO_ANIM_STOP_REACH_POCKET, // unused
/* 0x65 */ MARIO_ANIM_GROUND_THROW,
/* 0x66 */ MARIO_ANIM_GROUND_KICK,
/* 0x67 */ MARIO_ANIM_FIRST_PUNCH,
/* 0x68 */ MARIO_ANIM_SECOND_PUNCH,
/* 0x69 */ MARIO_ANIM_FIRST_PUNCH_FAST,
/* 0x6A */ MARIO_ANIM_SECOND_PUNCH_FAST,
/* 0x6B */ MARIO_ANIM_PICK_UP_LIGHT_OBJ,
/* 0x6C */ MARIO_ANIM_PUSHING,
/* 0x6D */ MARIO_ANIM_START_RIDING_SHELL,
/* 0x6E */ MARIO_ANIM_PLACE_LIGHT_OBJ,
/* 0x6F */ MARIO_ANIM_FORWARD_SPINNING,
/* 0x70 */ MARIO_ANIM_BACKWARD_SPINNING,
/* 0x71 */ MARIO_ANIM_BREAKDANCE,
/* 0x72 */ MARIO_ANIM_RUNNING,
/* 0x73 */ MARIO_ANIM_RUNNING_UNUSED, // unused duplicate, originally part 2?
/* 0x74 */ MARIO_ANIM_SOFT_BACK_KB,
/* 0x75 */ MARIO_ANIM_SOFT_FRONT_KB,
/* 0x76 */ MARIO_ANIM_DYING_IN_QUICKSAND,
/* 0x77 */ MARIO_ANIM_IDLE_IN_QUICKSAND,
/* 0x78 */ MARIO_ANIM_MOVE_IN_QUICKSAND,
/* 0x79 */ MARIO_ANIM_ELECTROCUTION,
/* 0x7A */ MARIO_ANIM_SHOCKED,
/* 0x7B */ MARIO_ANIM_BACKWARD_KB,
/* 0x7C */ MARIO_ANIM_FORWARD_KB,
/* 0x7D */ MARIO_ANIM_IDLE_HEAVY_OBJ,
/* 0x7E */ MARIO_ANIM_STAND_AGAINST_WALL,
/* 0x7F */ MARIO_ANIM_SIDESTEP_LEFT,
/* 0x80 */ MARIO_ANIM_SIDESTEP_RIGHT,
/* 0x81 */ MARIO_ANIM_START_SLEEP_IDLE,
/* 0x82 */ MARIO_ANIM_START_SLEEP_SCRATCH,
/* 0x83 */ MARIO_ANIM_START_SLEEP_YAWN,
/* 0x84 */ MARIO_ANIM_START_SLEEP_SITTING,
/* 0x85 */ MARIO_ANIM_SLEEP_IDLE,
/* 0x86 */ MARIO_ANIM_SLEEP_START_LYING,
/* 0x87 */ MARIO_ANIM_SLEEP_LYING,
/* 0x88 */ MARIO_ANIM_DIVE,
/* 0x89 */ MARIO_ANIM_SLIDE_DIVE,
/* 0x8A */ MARIO_ANIM_GROUND_BONK,
/* 0x8B */ MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ,
/* 0x8C */ MARIO_ANIM_SLIDE_KICK,
/* 0x8D */ MARIO_ANIM_CROUCH_FROM_SLIDE_KICK,
/* 0x8E */ MARIO_ANIM_SLIDE_MOTIONLESS, // unused
/* 0x8F */ MARIO_ANIM_STOP_SLIDE,
/* 0x90 */ MARIO_ANIM_FALL_FROM_SLIDE,
/* 0x91 */ MARIO_ANIM_SLIDE,
/* 0x92 */ MARIO_ANIM_TIPTOE,
/* 0x93 */ MARIO_ANIM_TWIRL_LAND,
/* 0x94 */ MARIO_ANIM_TWIRL,
/* 0x95 */ MARIO_ANIM_START_TWIRL,
/* 0x96 */ MARIO_ANIM_STOP_CROUCHING,
/* 0x97 */ MARIO_ANIM_START_CROUCHING,
/* 0x98 */ MARIO_ANIM_CROUCHING,
/* 0x99 */ MARIO_ANIM_CRAWLING,
/* 0x9A */ MARIO_ANIM_STOP_CRAWLING,
/* 0x9B */ MARIO_ANIM_START_CRAWLING,
/* 0x9C */ MARIO_ANIM_SUMMON_STAR,
/* 0x9D */ MARIO_ANIM_RETURN_STAR_APPROACH_DOOR,
/* 0x9E */ MARIO_ANIM_BACKWARDS_WATER_KB,
/* 0x9F */ MARIO_ANIM_SWIM_WITH_OBJ_PART1,
/* 0xA0 */ MARIO_ANIM_SWIM_WITH_OBJ_PART2,
/* 0xA1 */ MARIO_ANIM_FLUTTERKICK_WITH_OBJ,
/* 0xA2 */ MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, // either swimming or flutterkicking
/* 0xA3 */ MARIO_ANIM_STOP_GRAB_OBJ_WATER,
/* 0xA4 */ MARIO_ANIM_WATER_IDLE_WITH_OBJ,
/* 0xA5 */ MARIO_ANIM_DROWNING_PART1,
/* 0xA6 */ MARIO_ANIM_DROWNING_PART2,
/* 0xA7 */ MARIO_ANIM_WATER_DYING,
/* 0xA8 */ MARIO_ANIM_WATER_FORWARD_KB,
/* 0xA9 */ MARIO_ANIM_FALL_FROM_WATER,
/* 0xAA */ MARIO_ANIM_SWIM_PART1,
/* 0xAB */ MARIO_ANIM_SWIM_PART2,
/* 0xAC */ MARIO_ANIM_FLUTTERKICK,
/* 0xAD */ MARIO_ANIM_WATER_ACTION_END, // either swimming or flutterkicking
/* 0xAE */ MARIO_ANIM_WATER_PICK_UP_OBJ,
/* 0xAF */ MARIO_ANIM_WATER_GRAB_OBJ_PART2,
/* 0xB0 */ MARIO_ANIM_WATER_GRAB_OBJ_PART1,
/* 0xB1 */ MARIO_ANIM_WATER_THROW_OBJ,
/* 0xB2 */ MARIO_ANIM_WATER_IDLE,
/* 0xB3 */ MARIO_ANIM_WATER_STAR_DANCE,
/* 0xB4 */ MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE,
/* 0xB5 */ MARIO_ANIM_GRAB_BOWSER,
/* 0xB6 */ MARIO_ANIM_SWINGING_BOWSER,
/* 0xB7 */ MARIO_ANIM_RELEASE_BOWSER,
/* 0xB8 */ MARIO_ANIM_HOLDING_BOWSER,
/* 0xB9 */ MARIO_ANIM_HEAVY_THROW,
/* 0xBA */ MARIO_ANIM_WALK_PANTING,
/* 0xBB */ MARIO_ANIM_WALK_WITH_HEAVY_OBJ,
/* 0xBC */ MARIO_ANIM_TURNING_PART1,
/* 0xBD */ MARIO_ANIM_TURNING_PART2,
/* 0xBE */ MARIO_ANIM_SLIDEFLIP_LAND,
/* 0XBF */ MARIO_ANIM_SLIDEFLIP,
/* 0xC0 */ MARIO_ANIM_TRIPLE_JUMP_LAND,
/* 0xC1 */ MARIO_ANIM_TRIPLE_JUMP,
/* 0xC2 */ MARIO_ANIM_FIRST_PERSON,
/* 0xC3 */ MARIO_ANIM_IDLE_HEAD_LEFT,
/* 0xC4 */ MARIO_ANIM_IDLE_HEAD_RIGHT,
/* 0xC5 */ MARIO_ANIM_IDLE_HEAD_CENTER,
/* 0xC6 */ MARIO_ANIM_HANDSTAND_LEFT,
/* 0xC7 */ MARIO_ANIM_HANDSTAND_RIGHT,
/* 0xC8 */ MARIO_ANIM_WAKE_FROM_SLEEP,
/* 0xC9 */ MARIO_ANIM_WAKE_FROM_LYING,
/* 0xCA */ MARIO_ANIM_START_TIPTOE,
/* 0xCB */ MARIO_ANIM_SLIDEJUMP, // pole jump and wall kick
/* 0xCC */ MARIO_ANIM_START_WALLKICK,
/* 0xCD */ MARIO_ANIM_STAR_DANCE,
/* 0xCE */ MARIO_ANIM_RETURN_FROM_STAR_DANCE,
/* 0xCF */ MARIO_ANIM_FORWARD_SPINNING_FLIP,
/* 0xD0 */ MARIO_ANIM_TRIPLE_JUMP_FLY
/* 0x00 */
MARIO_ANIM_SLOW_LEDGE_GRAB,
/* 0x01 */
MARIO_ANIM_FALL_OVER_BACKWARDS,
/* 0x02 */
MARIO_ANIM_BACKWARD_AIR_KB,
/* 0x03 */
MARIO_ANIM_DYING_ON_BACK,
/* 0x04 */
MARIO_ANIM_BACKFLIP,
/* 0x05 */
MARIO_ANIM_CLIMB_UP_POLE,
/* 0x06 */
MARIO_ANIM_GRAB_POLE_SHORT,
/* 0x07 */
MARIO_ANIM_GRAB_POLE_SWING_PART1,
/* 0x08 */
MARIO_ANIM_GRAB_POLE_SWING_PART2,
/* 0x09 */
MARIO_ANIM_HANDSTAND_IDLE,
/* 0x0A */
MARIO_ANIM_HANDSTAND_JUMP,
/* 0x0B */
MARIO_ANIM_START_HANDSTAND,
/* 0x0C */
MARIO_ANIM_RETURN_FROM_HANDSTAND,
/* 0x0D */
MARIO_ANIM_IDLE_ON_POLE,
/* 0x0E */
MARIO_ANIM_A_POSE,
/* 0x0F */
MARIO_ANIM_SKID_ON_GROUND,
/* 0x10 */
MARIO_ANIM_STOP_SKID,
/* 0x11 */
MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP,
/* 0x12 */
MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP,
/* 0x13 */
MARIO_ANIM_FAST_LONGJUMP,
/* 0x14 */
MARIO_ANIM_SLOW_LONGJUMP,
/* 0x15 */
MARIO_ANIM_AIRBORNE_ON_STOMACH,
/* 0x16 */
MARIO_ANIM_WALK_WITH_LIGHT_OBJ,
/* 0x17 */
MARIO_ANIM_RUN_WITH_LIGHT_OBJ,
/* 0x18 */
MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ,
/* 0x19 */
MARIO_ANIM_SHIVERING_WARMING_HAND,
/* 0x1A */
MARIO_ANIM_SHIVERING_RETURN_TO_IDLE,
/* 0x1B */
MARIO_ANIM_SHIVERING,
/* 0x1C */
MARIO_ANIM_CLIMB_DOWN_LEDGE,
/* 0x1D */
MARIO_ANIM_CREDITS_WAVING,
/* 0x1E */
MARIO_ANIM_CREDITS_LOOK_UP,
/* 0x1F */
MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP,
/* 0x20 */
MARIO_ANIM_CREDITS_RAISE_HAND,
/* 0x21 */
MARIO_ANIM_CREDITS_LOWER_HAND,
/* 0x22 */
MARIO_ANIM_CREDITS_TAKE_OFF_CAP,
/* 0x23 */
MARIO_ANIM_CREDITS_START_WALK_LOOK_UP,
/* 0x24 */
MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN,
/* 0x25 */
MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN,
/* 0x26 */
MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF,
/* 0x27 */
MARIO_ANIM_CREDITS_PEACE_SIGN,
/* 0x28 */
MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST,
/* 0x29 */
MARIO_ANIM_FIRE_LAVA_BURN,
/* 0x2A */
MARIO_ANIM_WING_CAP_FLY,
/* 0x2B */
MARIO_ANIM_HANG_ON_OWL,
/* 0x2C */
MARIO_ANIM_LAND_ON_STOMACH,
/* 0x2D */
MARIO_ANIM_AIR_FORWARD_KB,
/* 0x2E */
MARIO_ANIM_DYING_ON_STOMACH,
/* 0x2F */
MARIO_ANIM_SUFFOCATING,
/* 0x30 */
MARIO_ANIM_COUGHING,
/* 0x31 */
MARIO_ANIM_THROW_CATCH_KEY,
/* 0x32 */
MARIO_ANIM_DYING_FALL_OVER,
/* 0x33 */
MARIO_ANIM_IDLE_ON_LEDGE,
/* 0x34 */
MARIO_ANIM_FAST_LEDGE_GRAB,
/* 0x35 */
MARIO_ANIM_HANG_ON_CEILING,
/* 0x36 */
MARIO_ANIM_PUT_CAP_ON,
/* 0x37 */
MARIO_ANIM_TAKE_CAP_OFF_THEN_ON,
/* 0x38 */
MARIO_ANIM_QUICKLY_PUT_CAP_ON,
// unused
/* 0x39 */
MARIO_ANIM_HEAD_STUCK_IN_GROUND,
/* 0x3A */
MARIO_ANIM_GROUND_POUND_LANDING,
/* 0x3B */
MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND,
/* 0x3C */
MARIO_ANIM_START_GROUND_POUND,
/* 0x3D */
MARIO_ANIM_GROUND_POUND,
/* 0x3E */
MARIO_ANIM_BOTTOM_STUCK_IN_GROUND,
/* 0x3F */
MARIO_ANIM_IDLE_WITH_LIGHT_OBJ,
/* 0x40 */
MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ,
/* 0x41 */
MARIO_ANIM_JUMP_WITH_LIGHT_OBJ,
/* 0x42 */
MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ,
/* 0x43 */
MARIO_ANIM_FALL_WITH_LIGHT_OBJ,
/* 0x44 */
MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ,
/* 0x45 */
MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ,
/* 0x46 */
MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ,
/* 0x47 */
MARIO_ANIM_RIDING_SHELL,
/* 0x48 */
MARIO_ANIM_WALKING,
/* 0x49 */
MARIO_ANIM_FORWARD_FLIP,
// unused
/* 0x4A */
MARIO_ANIM_JUMP_RIDING_SHELL,
/* 0x4B */
MARIO_ANIM_LAND_FROM_DOUBLE_JUMP,
/* 0x4C */
MARIO_ANIM_DOUBLE_JUMP_FALL,
/* 0x4D */
MARIO_ANIM_SINGLE_JUMP,
/* 0x4E */
MARIO_ANIM_LAND_FROM_SINGLE_JUMP,
/* 0x4F */
MARIO_ANIM_AIR_KICK,
/* 0x50 */
MARIO_ANIM_DOUBLE_JUMP_RISE,
/* 0x51 */
MARIO_ANIM_START_FORWARD_SPINNING,
// unused
/* 0x52 */
MARIO_ANIM_THROW_LIGHT_OBJECT,
/* 0x53 */
MARIO_ANIM_FALL_FROM_SLIDE_KICK,
/* 0x54 */
MARIO_ANIM_BEND_KNESS_RIDING_SHELL,
// unused
/* 0x55 */
MARIO_ANIM_LEGS_STUCK_IN_GROUND,
/* 0x56 */
MARIO_ANIM_GENERAL_FALL,
/* 0x57 */
MARIO_ANIM_GENERAL_LAND,
/* 0x58 */
MARIO_ANIM_BEING_GRABBED,
/* 0x59 */
MARIO_ANIM_GRAB_HEAVY_OBJECT,
/* 0x5A */
MARIO_ANIM_SLOW_LAND_FROM_DIVE,
/* 0x5B */
MARIO_ANIM_FLY_FROM_CANNON,
/* 0x5C */
MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT,
/* 0x5D */
MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT,
/* 0x5E */
MARIO_ANIM_MISSING_CAP,
/* 0x5F */
MARIO_ANIM_PULL_DOOR_WALK_IN,
/* 0x60 */
MARIO_ANIM_PUSH_DOOR_WALK_IN,
/* 0x61 */
MARIO_ANIM_UNLOCK_DOOR,
/* 0x62 */
MARIO_ANIM_START_REACH_POCKET,
// unused, reaching keys maybe?
/* 0x63 */
MARIO_ANIM_REACH_POCKET,
// unused
/* 0x64 */
MARIO_ANIM_STOP_REACH_POCKET,
// unused
/* 0x65 */
MARIO_ANIM_GROUND_THROW,
/* 0x66 */
MARIO_ANIM_GROUND_KICK,
/* 0x67 */
MARIO_ANIM_FIRST_PUNCH,
/* 0x68 */
MARIO_ANIM_SECOND_PUNCH,
/* 0x69 */
MARIO_ANIM_FIRST_PUNCH_FAST,
/* 0x6A */
MARIO_ANIM_SECOND_PUNCH_FAST,
/* 0x6B */
MARIO_ANIM_PICK_UP_LIGHT_OBJ,
/* 0x6C */
MARIO_ANIM_PUSHING,
/* 0x6D */
MARIO_ANIM_START_RIDING_SHELL,
/* 0x6E */
MARIO_ANIM_PLACE_LIGHT_OBJ,
/* 0x6F */
MARIO_ANIM_FORWARD_SPINNING,
/* 0x70 */
MARIO_ANIM_BACKWARD_SPINNING,
/* 0x71 */
MARIO_ANIM_BREAKDANCE,
/* 0x72 */
MARIO_ANIM_RUNNING,
/* 0x73 */
MARIO_ANIM_RUNNING_UNUSED,
// unused duplicate, originally part 2?
/* 0x74 */
MARIO_ANIM_SOFT_BACK_KB,
/* 0x75 */
MARIO_ANIM_SOFT_FRONT_KB,
/* 0x76 */
MARIO_ANIM_DYING_IN_QUICKSAND,
/* 0x77 */
MARIO_ANIM_IDLE_IN_QUICKSAND,
/* 0x78 */
MARIO_ANIM_MOVE_IN_QUICKSAND,
/* 0x79 */
MARIO_ANIM_ELECTROCUTION,
/* 0x7A */
MARIO_ANIM_SHOCKED,
/* 0x7B */
MARIO_ANIM_BACKWARD_KB,
/* 0x7C */
MARIO_ANIM_FORWARD_KB,
/* 0x7D */
MARIO_ANIM_IDLE_HEAVY_OBJ,
/* 0x7E */
MARIO_ANIM_STAND_AGAINST_WALL,
/* 0x7F */
MARIO_ANIM_SIDESTEP_LEFT,
/* 0x80 */
MARIO_ANIM_SIDESTEP_RIGHT,
/* 0x81 */
MARIO_ANIM_START_SLEEP_IDLE,
/* 0x82 */
MARIO_ANIM_START_SLEEP_SCRATCH,
/* 0x83 */
MARIO_ANIM_START_SLEEP_YAWN,
/* 0x84 */
MARIO_ANIM_START_SLEEP_SITTING,
/* 0x85 */
MARIO_ANIM_SLEEP_IDLE,
/* 0x86 */
MARIO_ANIM_SLEEP_START_LYING,
/* 0x87 */
MARIO_ANIM_SLEEP_LYING,
/* 0x88 */
MARIO_ANIM_DIVE,
/* 0x89 */
MARIO_ANIM_SLIDE_DIVE,
/* 0x8A */
MARIO_ANIM_GROUND_BONK,
/* 0x8B */
MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ,
/* 0x8C */
MARIO_ANIM_SLIDE_KICK,
/* 0x8D */
MARIO_ANIM_CROUCH_FROM_SLIDE_KICK,
/* 0x8E */
MARIO_ANIM_SLIDE_MOTIONLESS,
// unused
/* 0x8F */
MARIO_ANIM_STOP_SLIDE,
/* 0x90 */
MARIO_ANIM_FALL_FROM_SLIDE,
/* 0x91 */
MARIO_ANIM_SLIDE,
/* 0x92 */
MARIO_ANIM_TIPTOE,
/* 0x93 */
MARIO_ANIM_TWIRL_LAND,
/* 0x94 */
MARIO_ANIM_TWIRL,
/* 0x95 */
MARIO_ANIM_START_TWIRL,
/* 0x96 */
MARIO_ANIM_STOP_CROUCHING,
/* 0x97 */
MARIO_ANIM_START_CROUCHING,
/* 0x98 */
MARIO_ANIM_CROUCHING,
/* 0x99 */
MARIO_ANIM_CRAWLING,
/* 0x9A */
MARIO_ANIM_STOP_CRAWLING,
/* 0x9B */
MARIO_ANIM_START_CRAWLING,
/* 0x9C */
MARIO_ANIM_SUMMON_STAR,
/* 0x9D */
MARIO_ANIM_RETURN_STAR_APPROACH_DOOR,
/* 0x9E */
MARIO_ANIM_BACKWARDS_WATER_KB,
/* 0x9F */
MARIO_ANIM_SWIM_WITH_OBJ_PART1,
/* 0xA0 */
MARIO_ANIM_SWIM_WITH_OBJ_PART2,
/* 0xA1 */
MARIO_ANIM_FLUTTERKICK_WITH_OBJ,
/* 0xA2 */
MARIO_ANIM_WATER_ACTION_END_WITH_OBJ,
// either swimming or flutterkicking
/* 0xA3 */
MARIO_ANIM_STOP_GRAB_OBJ_WATER,
/* 0xA4 */
MARIO_ANIM_WATER_IDLE_WITH_OBJ,
/* 0xA5 */
MARIO_ANIM_DROWNING_PART1,
/* 0xA6 */
MARIO_ANIM_DROWNING_PART2,
/* 0xA7 */
MARIO_ANIM_WATER_DYING,
/* 0xA8 */
MARIO_ANIM_WATER_FORWARD_KB,
/* 0xA9 */
MARIO_ANIM_FALL_FROM_WATER,
/* 0xAA */
MARIO_ANIM_SWIM_PART1,
/* 0xAB */
MARIO_ANIM_SWIM_PART2,
/* 0xAC */
MARIO_ANIM_FLUTTERKICK,
/* 0xAD */
MARIO_ANIM_WATER_ACTION_END,
// either swimming or flutterkicking
/* 0xAE */
MARIO_ANIM_WATER_PICK_UP_OBJ,
/* 0xAF */
MARIO_ANIM_WATER_GRAB_OBJ_PART2,
/* 0xB0 */
MARIO_ANIM_WATER_GRAB_OBJ_PART1,
/* 0xB1 */
MARIO_ANIM_WATER_THROW_OBJ,
/* 0xB2 */
MARIO_ANIM_WATER_IDLE,
/* 0xB3 */
MARIO_ANIM_WATER_STAR_DANCE,
/* 0xB4 */
MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE,
/* 0xB5 */
MARIO_ANIM_GRAB_BOWSER,
/* 0xB6 */
MARIO_ANIM_SWINGING_BOWSER,
/* 0xB7 */
MARIO_ANIM_RELEASE_BOWSER,
/* 0xB8 */
MARIO_ANIM_HOLDING_BOWSER,
/* 0xB9 */
MARIO_ANIM_HEAVY_THROW,
/* 0xBA */
MARIO_ANIM_WALK_PANTING,
/* 0xBB */
MARIO_ANIM_WALK_WITH_HEAVY_OBJ,
/* 0xBC */
MARIO_ANIM_TURNING_PART1,
/* 0xBD */
MARIO_ANIM_TURNING_PART2,
/* 0xBE */
MARIO_ANIM_SLIDEFLIP_LAND,
/* 0XBF */
MARIO_ANIM_SLIDEFLIP,
/* 0xC0 */
MARIO_ANIM_TRIPLE_JUMP_LAND,
/* 0xC1 */
MARIO_ANIM_TRIPLE_JUMP,
/* 0xC2 */
MARIO_ANIM_FIRST_PERSON,
/* 0xC3 */
MARIO_ANIM_IDLE_HEAD_LEFT,
/* 0xC4 */
MARIO_ANIM_IDLE_HEAD_RIGHT,
/* 0xC5 */
MARIO_ANIM_IDLE_HEAD_CENTER,
/* 0xC6 */
MARIO_ANIM_HANDSTAND_LEFT,
/* 0xC7 */
MARIO_ANIM_HANDSTAND_RIGHT,
/* 0xC8 */
MARIO_ANIM_WAKE_FROM_SLEEP,
/* 0xC9 */
MARIO_ANIM_WAKE_FROM_LYING,
/* 0xCA */
MARIO_ANIM_START_TIPTOE,
/* 0xCB */
MARIO_ANIM_SLIDEJUMP,
// pole jump and wall kick
/* 0xCC */
MARIO_ANIM_START_WALLKICK,
/* 0xCD */
MARIO_ANIM_STAR_DANCE,
/* 0xCE */
MARIO_ANIM_RETURN_FROM_STAR_DANCE,
/* 0xCF */
MARIO_ANIM_FORWARD_SPINNING_FLIP,
/* 0xD0 */
MARIO_ANIM_TRIPLE_JUMP_FLY
};
#endif // MARIO_ANIMATION_IDS_H
+50 -23
View File
@@ -5,41 +5,68 @@
enum MarioEyesGSCId
{
/*0x00*/ MARIO_EYES_BLINK,
/*0x01*/ MARIO_EYES_OPEN,
/*0x02*/ MARIO_EYES_HALF_CLOSED,
/*0x03*/ MARIO_EYES_CLOSED,
/*0x04*/ MARIO_EYES_LOOK_LEFT, // unused
/*0x05*/ MARIO_EYES_LOOK_RIGHT, // unused
/*0x06*/ MARIO_EYES_LOOK_UP, // unused
/*0x07*/ MARIO_EYES_LOOK_DOWN, // unused
/*0x08*/ MARIO_EYES_DEAD
/*0x00*/
MARIO_EYES_BLINK,
/*0x01*/
MARIO_EYES_OPEN,
/*0x02*/
MARIO_EYES_HALF_CLOSED,
/*0x03*/
MARIO_EYES_CLOSED,
/*0x04*/
MARIO_EYES_LOOK_LEFT,
// unused
/*0x05*/
MARIO_EYES_LOOK_RIGHT,
// unused
/*0x06*/
MARIO_EYES_LOOK_UP,
// unused
/*0x07*/
MARIO_EYES_LOOK_DOWN,
// unused
/*0x08*/
MARIO_EYES_DEAD
};
enum MarioHandGSCId
{
/*0x00*/ MARIO_HAND_FISTS,
/*0x01*/ MARIO_HAND_OPEN,
/*0x02*/ MARIO_HAND_PEACE_SIGN,
/*0x03*/ MARIO_HAND_HOLDING_CAP,
/*0x04*/ MARIO_HAND_HOLDING_WING_CAP,
/*0x05*/ MARIO_HAND_RIGHT_OPEN
/*0x00*/
MARIO_HAND_FISTS,
/*0x01*/
MARIO_HAND_OPEN,
/*0x02*/
MARIO_HAND_PEACE_SIGN,
/*0x03*/
MARIO_HAND_HOLDING_CAP,
/*0x04*/
MARIO_HAND_HOLDING_WING_CAP,
/*0x05*/
MARIO_HAND_RIGHT_OPEN
};
enum MarioCapGSCId
{
/*0x00*/ MARIO_HAS_DEFAULT_CAP_ON,
/*0x01*/ MARIO_HAS_DEFAULT_CAP_OFF,
/*0x02*/ MARIO_HAS_WING_CAP_ON,
/*0x03*/ MARIO_HAS_WING_CAP_OFF // unused
/*0x00*/
MARIO_HAS_DEFAULT_CAP_ON,
/*0x01*/
MARIO_HAS_DEFAULT_CAP_OFF,
/*0x02*/
MARIO_HAS_WING_CAP_ON,
/*0x03*/
MARIO_HAS_WING_CAP_OFF // unused
};
enum MarioGrabPosGSCId
{
/*0x00*/ GRAB_POS_NULL,
/*0x01*/ GRAB_POS_LIGHT_OBJ,
/*0x02*/ GRAB_POS_HEAVY_OBJ,
/*0x03*/ GRAB_POS_BOWSER
/*0x00*/
GRAB_POS_NULL,
/*0x01*/
GRAB_POS_LIGHT_OBJ,
/*0x02*/
GRAB_POS_HEAVY_OBJ,
/*0x03*/
GRAB_POS_BOWSER
};
#endif // MARIO_GEO_SWITCH_CASE_IDS_H
+2 -2
View File
@@ -586,7 +586,7 @@
#define /*0x0F4*/ oKickableBoardF4 OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oKickableBoardF8 OBJECT_FIELD_S32(0x1C)
/* King Bob-omb */
/* King Bob-omb */
#define /*0x088*/ oKingBobombUnk88 OBJECT_FIELD_S32(0x00)
#define /*0x0F8*/ oKingBobombUnkF8 OBJECT_FIELD_S32(0x1C)
#define /*0x0FC*/ oKingBobombUnkFC OBJECT_FIELD_S32(0x1D)
@@ -686,7 +686,7 @@
/* Mips */
#define /*0x0F4*/ oMipsStarStatus OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oMipsStartWaypointIndex OBJECT_FIELD_S32(0x1C)
// 0x1D-0x21 reserved for pathing
// 0x1D-0x21 reserved for pathing
#define /*0x1AC*/ oMipsForwardVelocity OBJECT_FIELD_F32(0x49)
/* Moneybag */
+72 -36
View File
@@ -3,42 +3,78 @@
#define SEQ_VARIATION 0x80
enum SeqId {
SEQ_SOUND_PLAYER, // 0x00
SEQ_EVENT_CUTSCENE_COLLECT_STAR, // 0x01
SEQ_MENU_TITLE_SCREEN, // 0x02
SEQ_LEVEL_GRASS, // 0x03
SEQ_LEVEL_INSIDE_CASTLE, // 0x04
SEQ_LEVEL_WATER, // 0x05
SEQ_LEVEL_HOT, // 0x06
SEQ_LEVEL_BOSS_KOOPA, // 0x07
SEQ_LEVEL_SNOW, // 0x08
SEQ_LEVEL_SLIDE, // 0x09
SEQ_LEVEL_SPOOKY, // 0x0A
SEQ_EVENT_PIRANHA_PLANT, // 0x0B
SEQ_LEVEL_UNDERGROUND, // 0x0C
SEQ_MENU_STAR_SELECT, // 0x0D
SEQ_EVENT_POWERUP, // 0x0E
SEQ_EVENT_METAL_CAP, // 0x0F
SEQ_EVENT_KOOPA_MESSAGE, // 0x10
SEQ_LEVEL_KOOPA_ROAD, // 0x11
SEQ_EVENT_HIGH_SCORE, // 0x12
SEQ_EVENT_MERRY_GO_ROUND, // 0x13
SEQ_EVENT_RACE, // 0x14
SEQ_EVENT_CUTSCENE_STAR_SPAWN, // 0x15
SEQ_EVENT_BOSS, // 0x16
SEQ_EVENT_CUTSCENE_COLLECT_KEY, // 0x17
SEQ_EVENT_ENDLESS_STAIRS, // 0x18
SEQ_LEVEL_BOSS_KOOPA_FINAL, // 0x19
SEQ_EVENT_CUTSCENE_CREDITS, // 0x1A
SEQ_EVENT_SOLVE_PUZZLE, // 0x1B
SEQ_EVENT_TOAD_MESSAGE, // 0x1C
SEQ_EVENT_PEACH_MESSAGE, // 0x1D
SEQ_EVENT_CUTSCENE_INTRO, // 0x1E
SEQ_EVENT_CUTSCENE_VICTORY, // 0x1F
SEQ_EVENT_CUTSCENE_ENDING, // 0x20
SEQ_MENU_FILE_SELECT, // 0x21
SEQ_EVENT_CUTSCENE_LAKITU, // 0x22 (not in JP)
enum SeqId
{
SEQ_SOUND_PLAYER,
// 0x00
SEQ_EVENT_CUTSCENE_COLLECT_STAR,
// 0x01
SEQ_MENU_TITLE_SCREEN,
// 0x02
SEQ_LEVEL_GRASS,
// 0x03
SEQ_LEVEL_INSIDE_CASTLE,
// 0x04
SEQ_LEVEL_WATER,
// 0x05
SEQ_LEVEL_HOT,
// 0x06
SEQ_LEVEL_BOSS_KOOPA,
// 0x07
SEQ_LEVEL_SNOW,
// 0x08
SEQ_LEVEL_SLIDE,
// 0x09
SEQ_LEVEL_SPOOKY,
// 0x0A
SEQ_EVENT_PIRANHA_PLANT,
// 0x0B
SEQ_LEVEL_UNDERGROUND,
// 0x0C
SEQ_MENU_STAR_SELECT,
// 0x0D
SEQ_EVENT_POWERUP,
// 0x0E
SEQ_EVENT_METAL_CAP,
// 0x0F
SEQ_EVENT_KOOPA_MESSAGE,
// 0x10
SEQ_LEVEL_KOOPA_ROAD,
// 0x11
SEQ_EVENT_HIGH_SCORE,
// 0x12
SEQ_EVENT_MERRY_GO_ROUND,
// 0x13
SEQ_EVENT_RACE,
// 0x14
SEQ_EVENT_CUTSCENE_STAR_SPAWN,
// 0x15
SEQ_EVENT_BOSS,
// 0x16
SEQ_EVENT_CUTSCENE_COLLECT_KEY,
// 0x17
SEQ_EVENT_ENDLESS_STAIRS,
// 0x18
SEQ_LEVEL_BOSS_KOOPA_FINAL,
// 0x19
SEQ_EVENT_CUTSCENE_CREDITS,
// 0x1A
SEQ_EVENT_SOLVE_PUZZLE,
// 0x1B
SEQ_EVENT_TOAD_MESSAGE,
// 0x1C
SEQ_EVENT_PEACH_MESSAGE,
// 0x1D
SEQ_EVENT_CUTSCENE_INTRO,
// 0x1E
SEQ_EVENT_CUTSCENE_VICTORY,
// 0x1F
SEQ_EVENT_CUTSCENE_ENDING,
// 0x20
SEQ_MENU_FILE_SELECT,
// 0x21
SEQ_EVENT_CUTSCENE_LAKITU,
// 0x22 (not in JP)
SEQ_COUNT
};
+2 -3
View File
@@ -1,7 +1,8 @@
#ifndef SPECIAL_PRESET_NAMES_H
#define SPECIAL_PRESET_NAMES_H
enum SpecialPresets {
enum SpecialPresets
{
special_null_start,
special_yellow_coin,
special_yellow_coin_2,
@@ -43,7 +44,6 @@ enum SpecialPresets {
special_rotating_counter_clockwise,
special_wf_tumbling_bridge,
special_large_bomp,
special_level_geo_03 = 0x65,
special_level_geo_04,
special_level_geo_05,
@@ -86,7 +86,6 @@ enum SpecialPresets {
special_1star_door,
special_3star_door,
special_key_door,
special_null_end = 0xFF
};
+311 -160
View File
@@ -14,26 +14,33 @@
// avoid on modern GCC. This only impacts -O2 and can matter for both the function
// itself and functions that call it.
#ifdef AVOID_UB
#define BAD_RETURN(cmd) void
#define BAD_RETURN(cmd) void
#else
#define BAD_RETURN(cmd) cmd
#define BAD_RETURN(cmd) cmd
#endif
struct Controller
{
/*0x00*/ s16 rawStickX; //
/*0x02*/ s16 rawStickY; //
/*0x04*/ float stickX; // [-64, 64] positive is right
/*0x08*/ float stickY; // [-64, 64] positive is up
/*0x0C*/ float stickMag; // distance from center [0, 64]
/*0x10*/ u16 buttonDown;
/*0x12*/ u16 buttonPressed;
///*0x14*/ OSContStatus *statusData;
/*0x00*/
s16 rawStickX; //
/*0x02*/
s16 rawStickY; //
/*0x04*/
float stickX; // [-64, 64] positive is right
/*0x08*/
float stickY; // [-64, 64] positive is up
/*0x0C*/
float stickMag; // distance from center [0, 64]
/*0x10*/
u16 buttonDown;
/*0x12*/
u16 buttonPressed;
///*0x14*/ OSContStatus *statusData;
///*0x18*/ OSContPad *controllerData;
#ifdef VERSION_SH
/*0x1C*/ int port;
#endif
#ifdef VERSION_SH
/*0x1C*/ int port;
#endif
};
typedef f32 Vec2f[2];
@@ -54,7 +61,8 @@ typedef s16 Trajectory;
typedef s16 PaintingData;
typedef uintptr_t BehaviorScript;
enum SpTaskState {
enum SpTaskState
{
SPTASK_STATE_NOT_STARTED,
SPTASK_STATE_RUNNING,
SPTASK_STATE_INTERRUPTED,
@@ -64,10 +72,14 @@ enum SpTaskState {
struct SPTask
{
/*0x00*/ OSTask task;
/*0x40*/ OSMesgQueue *msgqueue;
/*0x44*/ OSMesg msg;
/*0x48*/ enum SpTaskState state;
/*0x00*/
OSTask task;
/*0x40*/
OSMesgQueue *msgqueue;
/*0x44*/
OSMesg msg;
/*0x48*/
enum SpTaskState state;
}; // size = 0x4C, align = 0x8
struct VblankHandler
@@ -85,53 +97,87 @@ struct VblankHandler
#define ANIM_FLAG_6 (1 << 6) // 0x40
#define ANIM_FLAG_7 (1 << 7) // 0x80
struct Animation {
/*0x00*/ s16 flags;
/*0x02*/ s16 animYTransDivisor;
/*0x04*/ s16 startFrame;
/*0x06*/ s16 loopStart;
/*0x08*/ s16 loopEnd; /*0x0A*/ s16 unusedBoneCount;
/*0x0C*/ s16 *values;
/*0x10*/ u16 *index;
/*0x14*/ u32 length; // only used with Mario animations to determine how much to load. 0 otherwise.
struct Animation
{
/*0x00*/
s16 flags;
/*0x02*/
s16 animYTransDivisor;
/*0x04*/
s16 startFrame;
/*0x06*/
s16 loopStart;
/*0x08*/
s16 loopEnd; /*0x0A*/
s16 unusedBoneCount;
/*0x0C*/
s16 *values;
/*0x10*/
u16 *index;
/*0x14*/
u32 length; // only used with Mario animations to determine how much to load. 0 otherwise.
};
#define ANIMINDEX_NUMPARTS(animindex) (sizeof(animindex) / sizeof(u16) / 6 - 1)
struct GraphNode
{
/*0x00*/ s16 type; // structure type
/*0x02*/ s16 flags; // hi = drawing layer, lo = rendering modes
/*0x04*/ struct GraphNode *prev;
/*0x08*/ struct GraphNode *next;
/*0x0C*/ struct GraphNode *parent;
/*0x10*/ struct GraphNode *children;
/*0x00*/
s16 type; // structure type
/*0x02*/
s16 flags; // hi = drawing layer, lo = rendering modes
/*0x04*/
struct GraphNode *prev;
/*0x08*/
struct GraphNode *next;
/*0x0C*/
struct GraphNode *parent;
/*0x10*/
struct GraphNode *children;
};
struct AnimInfo
{
/*0x00 0x38*/ s16 animID;
/*0x02 0x3A*/ s16 animYTrans;
/*0x04 0x3C*/ struct Animation *curAnim;
/*0x08 0x40*/ s16 animFrame;
/*0x0A 0x42*/ u16 animTimer;
/*0x0C 0x44*/ s32 animFrameAccelAssist;
/*0x10 0x48*/ s32 animAccel;
/*0x00 0x38*/
s16 animID;
/*0x02 0x3A*/
s16 animYTrans;
/*0x04 0x3C*/
struct Animation *curAnim;
/*0x08 0x40*/
s16 animFrame;
/*0x0A 0x42*/
u16 animTimer;
/*0x0C 0x44*/
s32 animFrameAccelAssist;
/*0x10 0x48*/
s32 animAccel;
};
struct GraphNodeObject
{
/*0x00*/ struct GraphNode node;
/*0x14*/ struct GraphNode *sharedChild;
/*0x18*/ s8 areaIndex;
/*0x19*/ s8 activeAreaIndex;
/*0x1A*/ Vec3s angle;
/*0x20*/ Vec3f pos;
/*0x2C*/ Vec3f scale;
/*0x38*/ struct AnimInfo animInfo;
/*0x4C*/ struct SpawnInfo *unk4C;
/*0x50*/ Mat4 *throwMatrix; // matrix ptr
/*0x54*/ Vec3f cameraToObject;
/*0x00*/
struct GraphNode node;
/*0x14*/
struct GraphNode *sharedChild;
/*0x18*/
s8 areaIndex;
/*0x19*/
s8 activeAreaIndex;
/*0x1A*/
Vec3s angle;
/*0x20*/
Vec3f pos;
/*0x2C*/
Vec3f scale;
/*0x38*/
struct AnimInfo animInfo;
/*0x4C*/
struct SpawnInfo *unk4C;
/*0x50*/
Mat4 *throwMatrix; // matrix ptr
/*0x54*/
Vec3f cameraToObject;
};
struct ObjectNode
@@ -146,13 +192,21 @@ struct ObjectNode
struct Object
{
/*0x000*/ struct ObjectNode header;
/*0x068*/ struct Object *parentObj;
/*0x06C*/ struct Object *prevObj;
/*0x070*/ u32 collidedObjInteractTypes;
/*0x074*/ s16 activeFlags;
/*0x076*/ s16 numCollidedObjs;
/*0x078*/ struct Object *collidedObjs[4];
/*0x000*/
struct ObjectNode header;
/*0x068*/
struct Object *parentObj;
/*0x06C*/
struct Object *prevObj;
/*0x070*/
u32 collidedObjInteractTypes;
/*0x074*/
s16 activeFlags;
/*0x076*/
s16 numCollidedObjs;
/*0x078*/
struct Object *collidedObjs[4];
/*0x088*/
union
{
@@ -161,7 +215,7 @@ struct Object
s32 asS32[0x50];
s16 asS16[0x50][2];
f32 asF32[0x50];
#if !IS_64_BIT
#if !IS_64_BIT
s16 *asS16P[0x50];
s32 *asS32P[0x50];
struct Animation **asAnims[0x50];
@@ -171,10 +225,11 @@ struct Object
struct SM64SurfaceCollisionData *asSurface[0x50];
void *asVoidPtr[0x50];
const void *asConstVoidPtr[0x50];
#endif
#endif
} rawData;
#if IS_64_BIT
union {
#if IS_64_BIT
union
{
s16 *asS16P[0x50];
s32 *asS32P[0x50];
struct Animation **asAnims[0x50];
@@ -185,37 +240,63 @@ struct Object
void *asVoidPtr[0x50];
const void *asConstVoidPtr[0x50];
} ptrData;
#endif
/*0x1C8*/ u32 unused1;
/*0x1CC*/ const BehaviorScript *curBhvCommand;
/*0x1D0*/ u32 bhvStackIndex;
/*0x1D4*/ uintptr_t bhvStack[8];
/*0x1F4*/ s16 bhvDelayTimer;
/*0x1F6*/ s16 respawnInfoType;
/*0x1F8*/ f32 hitboxRadius;
/*0x1FC*/ f32 hitboxHeight;
/*0x200*/ f32 hurtboxRadius;
/*0x204*/ f32 hurtboxHeight;
/*0x208*/ f32 hitboxDownOffset;
/*0x20C*/ const BehaviorScript *behavior;
/*0x210*/ u32 unused2;
/*0x214*/ struct SM64SurfaceObjectTransform *platform; // libsm64: type change from Object*
/*0x218*/ void *collisionData;
/*0x21C*/ Mat4 transform;
/*0x25C*/ void *respawnInfo;
#endif
/*0x1C8*/
u32 unused1;
/*0x1CC*/
const BehaviorScript *curBhvCommand;
/*0x1D0*/
u32 bhvStackIndex;
/*0x1D4*/
uintptr_t bhvStack[8];
/*0x1F4*/
s16 bhvDelayTimer;
/*0x1F6*/
s16 respawnInfoType;
/*0x1F8*/
f32 hitboxRadius;
/*0x1FC*/
f32 hitboxHeight;
/*0x200*/
f32 hurtboxRadius;
/*0x204*/
f32 hurtboxHeight;
/*0x208*/
f32 hitboxDownOffset;
/*0x20C*/
const BehaviorScript *behavior;
/*0x210*/
u32 unused2;
/*0x214*/
struct SM64SurfaceObjectTransform *platform; // libsm64: type change from Object*
/*0x218*/
void *collisionData;
/*0x21C*/
Mat4 transform;
/*0x25C*/
void *respawnInfo;
};
struct ObjectHitbox
{
/*0x00*/ u32 interactType;
/*0x04*/ u8 downOffset;
/*0x05*/ s8 damageOrCoinValue;
/*0x06*/ s8 health;
/*0x07*/ s8 numLootCoins;
/*0x08*/ s16 radius;
/*0x0A*/ s16 height;
/*0x0C*/ s16 hurtboxRadius;
/*0x0E*/ s16 hurtboxHeight;
/*0x00*/
u32 interactType;
/*0x04*/
u8 downOffset;
/*0x05*/
s8 damageOrCoinValue;
/*0x06*/
s8 health;
/*0x07*/
s8 numLootCoins;
/*0x08*/
s16 radius;
/*0x0A*/
s16 height;
/*0x0C*/
s16 hurtboxRadius;
/*0x0E*/
s16 hurtboxHeight;
};
struct Waypoint
@@ -226,17 +307,28 @@ struct Waypoint
struct MarioBodyState
{
/*0x00*/ u32 action;
/*0x04*/ s8 capState; /// see MarioCapGSCId
/*0x05*/ s8 eyeState;
/*0x06*/ s8 handState;
/*0x07*/ s8 wingFlutter; /// whether Mario's wing cap wings are fluttering
/*0x08*/ s16 modelState;
/*0x0A*/ s8 grabPos;
/*0x0B*/ u8 punchState; /// 2 bits for type of punch, 6 bits for punch animation timer
/*0x0C*/ Vec3s torsoAngle;
/*0x12*/ Vec3s headAngle;
/*0x18*/ Vec3f heldObjLastPosition; /// also known as HOLP
/*0x00*/
u32 action;
/*0x04*/
s8 capState; /// see MarioCapGSCId
/*0x05*/
s8 eyeState;
/*0x06*/
s8 handState;
/*0x07*/
s8 wingFlutter; /// whether Mario's wing cap wings are fluttering
/*0x08*/
s16 modelState;
/*0x0A*/
s8 grabPos;
/*0x0B*/
u8 punchState; /// 2 bits for type of punch, 6 bits for punch animation timer
/*0x0C*/
Vec3s torsoAngle;
/*0x12*/
Vec3s headAngle;
/*0x18*/
Vec3f heldObjLastPosition; /// also known as HOLP
u8 padding[4];
};
@@ -263,66 +355,125 @@ struct MarioAnimation
struct MarioState
{
/*0x00*/ u16 unk00;
/*0x02*/ u16 input;
/*0x04*/ u32 flags;
/*0x08*/ u32 particleFlags;
/*0x0C*/ u32 action;
/*0x10*/ u32 prevAction;
/*0x14*/ u32 terrainSoundAddend;
/*0x18*/ u16 actionState;
/*0x1A*/ u16 actionTimer;
/*0x1C*/ u32 actionArg;
/*0x20*/ f32 intendedMag;
/*0x24*/ s16 intendedYaw;
/*0x26*/ s16 invincTimer;
/*0x28*/ u8 framesSinceA;
/*0x29*/ u8 framesSinceB;
/*0x2A*/ u8 wallKickTimer;
/*0x2B*/ u8 doubleJumpTimer;
/*0x2C*/ Vec3s faceAngle;
/*0x32*/ Vec3s angleVel;
/*0x38*/ s16 slideYaw;
/*0x3A*/ s16 twirlYaw;
/*0x3C*/ Vec3f pos;
/*0x48*/ Vec3f vel;
/*0x54*/ f32 forwardVel;
/*0x58*/ f32 slideVelX;
/*0x5C*/ f32 slideVelZ;
/*0x60*/ struct SM64SurfaceCollisionData *wall;
/*0x64*/ struct SM64SurfaceCollisionData *ceil;
/*0x68*/ struct SM64SurfaceCollisionData *floor;
/*0x6C*/ f32 ceilHeight;
/*0x70*/ f32 floorHeight;
/*0x74*/ s16 floorAngle;
/*0x76*/ s32 waterLevel; // libsm64: 32 bit (address offsets after this are wrong)
/*0x78*/ struct Object *interactObj;
/*0x7C*/ struct Object *heldObj;
/*0x80*/ struct Object *usedObj;
/*0x84*/ struct Object *riddenObj;
/*0x88*/ struct Object *marioObj;
/*0x8C*/ struct SpawnInfo *spawnInfo;
/*0x90*/ struct Area *area;
// /*0x94*/ struct PlayerCameraState *statusForCamera;
/*0x98*/ struct MarioBodyState *marioBodyState;
/*0x9C*/ struct Controller *controller;
/*0xA0*/ struct MarioAnimation *animation;
/*0xA4*/ u32 collidedObjInteractTypes;
/*0xA8*/ s16 numCoins;
/*0xAA*/ s16 numStars;
/*0xAC*/ s8 numKeys; // Unused key mechanic
/*0xAD*/ s8 numLives;
/*0xAE*/ s16 health;
/*0xB0*/ s16 unkB0;
/*0xB2*/ u8 hurtCounter;
/*0xB3*/ u8 healCounter;
/*0xB4*/ u8 squishTimer;
/*0xB5*/ u8 fadeWarpOpacity;
/*0xB6*/ u16 capTimer;
/*0xB8*/ s16 prevNumStarsForDialog;
/*0xBC*/ f32 peakHeight;
/*0xC0*/ f32 quicksandDepth;
/*0xC4*/ f32 unkC4;
/*0x00*/
u16 unk00;
/*0x02*/
u16 input;
/*0x04*/
u32 flags;
/*0x08*/
u32 particleFlags;
/*0x0C*/
u32 action;
/*0x10*/
u32 prevAction;
/*0x14*/
u32 terrainSoundAddend;
/*0x18*/
u16 actionState;
/*0x1A*/
u16 actionTimer;
/*0x1C*/
u32 actionArg;
/*0x20*/
f32 intendedMag;
/*0x24*/
s16 intendedYaw;
/*0x26*/
s16 invincTimer;
/*0x28*/
u8 framesSinceA;
/*0x29*/
u8 framesSinceB;
/*0x2A*/
u8 wallKickTimer;
/*0x2B*/
u8 doubleJumpTimer;
/*0x2C*/
Vec3s faceAngle;
/*0x32*/
Vec3s angleVel;
/*0x38*/
s16 slideYaw;
/*0x3A*/
s16 twirlYaw;
/*0x3C*/
Vec3f pos;
/*0x48*/
Vec3f vel;
/*0x54*/
f32 forwardVel;
/*0x58*/
f32 slideVelX;
/*0x5C*/
f32 slideVelZ;
/*0x60*/
struct SM64SurfaceCollisionData *wall;
/*0x64*/
struct SM64SurfaceCollisionData *ceil;
/*0x68*/
struct SM64SurfaceCollisionData *floor;
/*0x6C*/
f32 ceilHeight;
/*0x70*/
f32 floorHeight;
/*0x74*/
s16 floorAngle;
/*0x76*/
s32 waterLevel; // libsm64: 32 bit (address offsets after this are wrong)
/*0x78*/
struct Object *interactObj;
/*0x7C*/
struct Object *heldObj;
/*0x80*/
struct Object *usedObj;
/*0x84*/
struct Object *riddenObj;
/*0x88*/
struct Object *marioObj;
/*0x8C*/
struct SpawnInfo *spawnInfo;
/*0x90*/
struct Area *area;
// /*0x94*/ struct PlayerCameraState *statusForCamera;
/*0x98*/
struct MarioBodyState *marioBodyState;
/*0x9C*/
struct Controller *controller;
/*0xA0*/
struct MarioAnimation *animation;
/*0xA4*/
u32 collidedObjInteractTypes;
/*0xA8*/
s16 numCoins;
/*0xAA*/
s16 numStars;
/*0xAC*/
s8 numKeys; // Unused key mechanic
/*0xAD*/
s8 numLives;
/*0xAE*/
s16 health;
/*0xB0*/
s16 unkB0;
/*0xB2*/
u8 hurtCounter;
/*0xB3*/
u8 healCounter;
/*0xB4*/
u8 squishTimer;
/*0xB5*/
u8 fadeWarpOpacity;
/*0xB6*/
u16 capTimer;
/*0xB8*/
s16 prevNumStarsForDialog;
/*0xBC*/
f32 peakHeight;
/*0xC0*/
f32 quicksandDepth;
/*0xC4*/
f32 unkC4;
u16 curTerrain; // libsm64: added field
s32 gasLevel; // libsm64: added field