Skip to content

Commit de6cea5

Browse files
committed
isavegame progress
1 parent 3513c15 commit de6cea5

File tree

2 files changed

+264
-33
lines changed

2 files changed

+264
-33
lines changed

include/dolphin/dolphin.h

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,8 @@ void VIWaitForRetrace();
241241
#define CARD_MAX_FILE 127
242242
#define CARD_ICON_MAX 8
243243

244+
typedef void (*CARDCallback)(s32 chan, s32 result);
245+
244246
typedef struct CARDFileInfo
245247
{
246248
/*0x00*/ s32 chan;
@@ -256,6 +258,12 @@ typedef struct CARDFileInfo
256258
#define CARD_ATTR_GLOBAL 0x20u
257259
#define CARD_ATTR_COMPANY 0x40u
258260

261+
#define CARD_STAT_SPEED_END 0
262+
#define CARD_STAT_SPEED_FAST 1
263+
#define CARD_STAT_SPEED_MIDDLE 2
264+
#define CARD_STAT_SPEED_SLOW 3
265+
#define CARD_STAT_SPEED_MASK 3
266+
259267
#define CARD_RESULT_UNLOCKED 1
260268
#define CARD_RESULT_READY 0
261269
#define CARD_RESULT_BUSY -1
@@ -274,13 +282,56 @@ typedef struct CARDFileInfo
274282
#define CARD_RESULT_CANCELED -14
275283
#define CARD_RESULT_FATAL_ERROR -128
276284

285+
#define CARD_ICON_WIDTH 32
286+
#define CARD_ICON_HEIGHT 32
287+
288+
#define CARD_BANNER_WIDTH 96
289+
#define CARD_BANNER_HEIGHT 32
290+
291+
#define CARD_STAT_ICON_NONE 0
292+
#define CARD_STAT_ICON_C8 1
293+
#define CARD_STAT_ICON_RGB5A3 2
294+
#define CARD_STAT_ICON_MASK 3
295+
296+
#define CARD_STAT_BANNER_NONE 0
297+
#define CARD_STAT_BANNER_C8 1
298+
#define CARD_STAT_BANNER_RGB5A3 2
299+
#define CARD_STAT_BANNER_MASK 3
300+
301+
#define CARD_ENCODE_ANSI 0
302+
#define CARD_ENCODE_SJIS 1
303+
304+
#define CARD_STAT_ANIM_LOOP 0x00
305+
#define CARD_STAT_ANIM_BOUNCE 0x04
306+
#define CARD_STAT_ANIM_MASK 0x04
307+
308+
#define CARDGetDirCheck(dir) ((CARDDirCheck*)&(dir)[CARD_MAX_FILE])
309+
#define CARDGetBannerFormat(stat) (((stat)->bannerFormat) & CARD_STAT_BANNER_MASK)
310+
#define CARDGetIconAnim(stat) (((stat)->bannerFormat) & CARD_STAT_ANIM_MASK)
311+
#define CARDGetIconFormat(stat, n) (((stat)->iconFormat >> (2 * (n))) & CARD_STAT_ICON_MASK)
312+
#define CARDGetIconSpeed(stat, n) (((stat)->iconSpeed >> (2 * (n))) & CARD_STAT_SPEED_MASK)
313+
#define CARDSetBannerFormat(stat, f) \
314+
((stat)->bannerFormat = (u8)(((stat)->bannerFormat & ~CARD_STAT_BANNER_MASK) | (f)))
315+
#define CARDSetIconAnim(stat, f) \
316+
((stat)->bannerFormat = (u8)(((stat)->bannerFormat & ~CARD_STAT_ANIM_MASK) | (f)))
317+
#define CARDSetIconFormat(stat, n, f) \
318+
((stat)->iconFormat = \
319+
(u16)(((stat)->iconFormat & ~(CARD_STAT_ICON_MASK << (2 * (n)))) | ((f) << (2 * (n)))))
320+
#define CARDSetIconSpeed(stat, n, f) \
321+
((stat)->iconSpeed = \
322+
(u16)(((stat)->iconSpeed & ~(CARD_STAT_SPEED_MASK << (2 * (n)))) | ((f) << (2 * (n)))))
323+
#define CARDSetIconAddress(stat, addr) ((stat)->iconAddr = (u32)(addr))
324+
#define CARDSetCommentAddress(stat, addr) ((stat)->commentAddr = (u32)(addr))
325+
#define CARDGetFileNo(fileInfo) ((fileInfo)->fileNo)
326+
277327
// CARDBios.h
278328
void CARDInit(void);
279329
s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed);
280330
s32 CARDGetEncoding(s32 chan, u16* encode);
281331
s32 CARDGetSectorSize(s32 chan, u32* size);
282332
// CARDMount.h
283333
s32 CARDProbeEx(s32 chan, s32* memSize, s32* sectorSize);
334+
s32 CARDMount(s32 chan, void* workArea, CARDCallback detachCallback);
284335
s32 CARDUnmount(s32 chan);
285336
// CARDCheck.h
286337
s32 CARDCheckEx(s32 chan, s32* xferBytes);
@@ -312,6 +363,8 @@ s32 CARDOpen(s32 chan, char* fileName, CARDFileInfo* fileInfo);
312363
s32 CARDClose(CARDFileInfo* fileInfo);
313364
// CARDNet
314365
s32 CARDSetAttributes(s32 chan, s32 fileNo, u8 attr);
366+
// CARDFormat
367+
s32 CARDFormat(s32 chan);
315368

316369
#ifdef __cplusplus
317370
}

0 commit comments

Comments
 (0)