mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-10 22:31:52 -04:00
80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
#ifndef _DOLPHIN_GBAPRIV
|
|
#define _DOLPHIN_GBAPRIV
|
|
|
|
#include "dolphin/dsp.h"
|
|
#include "dolphin/gba/GBA.h"
|
|
#include "dolphin/os/OS.h"
|
|
#include "global.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void (*GBATransferCallback)(s32 chan);
|
|
|
|
typedef struct GBASecParam {
|
|
/* 0x00 */ u8 readbuf[4];
|
|
/* 0x04 */ s32 paletteColor;
|
|
/* 0x08 */ s32 paletteSpeed;
|
|
/* 0x0C */ s32 length;
|
|
/* 0x10 */ u32* out;
|
|
/* 0x14 */ u8 _padding0[12];
|
|
/* 0x20 */ u32 keyA;
|
|
/* 0x24 */ s32 keyB;
|
|
/* 0x28 */ u8 _padding1[24];
|
|
} GBASecParam ALIGN_DECL(32); // Size: 0x40
|
|
|
|
typedef struct GBABootInfo {
|
|
/* 0x00 */ s32 paletteColor;
|
|
/* 0x04 */ s32 paletteSpeed;
|
|
/* 0x08 */ u8* programp;
|
|
/* 0x0C */ s32 length;
|
|
/* 0x10 */ u8* status;
|
|
/* 0x14 */ GBACallback callback;
|
|
/* 0x18 */ u8 readbuf[4];
|
|
/* 0x1C */ u8 writebuf[4];
|
|
/* 0x20 */ int i;
|
|
/* 0x24 */ OSTick start;
|
|
/* 0x28 */ OSTime begin;
|
|
/* 0x30 */ int firstXfer;
|
|
/* 0x34 */ int curOffset;
|
|
/* 0x38 */ u32 crc;
|
|
/* 0x3C */ u32 dummyWord[7];
|
|
/* 0x58 */ u32 keyA;
|
|
/* 0x5C */ s32 keyB;
|
|
/* 0x60 */ u32 initialCode;
|
|
/* 0x64 */ int realLength;
|
|
} GBABootInfo; // Size: 0x68
|
|
|
|
typedef struct GBAControl {
|
|
/* 0x000 */ u8 output[5];
|
|
/* 0x005 */ u8 input[5];
|
|
/* 0x00C */ s32 outputBytes;
|
|
/* 0x010 */ s32 inputBytes;
|
|
/* 0x014 */ u8* status;
|
|
/* 0x018 */ u8* ptr;
|
|
/* 0x01C */ GBACallback callback;
|
|
/* 0x020 */ s32 ret;
|
|
/* 0x024 */ OSThreadQueue threadQueue;
|
|
/* 0x030 */ OSTime delay;
|
|
/* 0x038 */ GBATransferCallback proc;
|
|
/* 0x040 */ GBABootInfo bootInfo;
|
|
/* 0x0A8 */ DSPTaskInfo task;
|
|
/* 0x0F8 */ GBASecParam* param;
|
|
} GBAControl; // Size: 0x100
|
|
|
|
extern GBAControl __GBA[4];
|
|
extern BOOL __GBAReset;
|
|
|
|
void __GBAHandler(s32 chan, u32 error, OSContext* context);
|
|
void __GBASyncCallback(s32 chan, s32 ret);
|
|
s32 __GBASync(s32 chan);
|
|
OSTime __GBASetDelay(s32 chan, OSTime delay);
|
|
s32 __GBATransfer(s32 chan, s32 w1, s32 w2, GBATransferCallback callback);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _DOLPHIN_GBAPRIV
|