23#define HSD_CARD_MAX_FILES 9
297 int file_flags,
u8* data);
315 const char* comment,
void* banner,
void*
icons,
320 void* banner,
void*
icons,
static void callback(HSD_GObj *gobj)
Definition ftdonkeyspeciallw.c:90
state
Definition gm_1BFA.c:18
char filename[]
Definition lbcardgame.c:121
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
unsigned char u8
Definition types.h:5
static CSSIcon icons[25+1]
Definition mncharsel.c:142
void hsd_803B24E4(CardState *state, int chan, int sector_size, void *work_buf)
Definition card.c:5306
#define HSD_CARD_MAX_FILES
Definition card.h:23
int hsd_803B2674(CardState *state)
Definition card.c:5374
HSD_CardResult
Definition card.h:8
@ HSD_CardResult_UnkN261
Definition card.h:14
@ HSD_CardResult_UnkN1
Definition card.h:10
@ HSD_CardResult_UnkN2
Definition card.h:11
@ HSD_CardResult_UnkN3
Definition card.h:12
@ HSD_CardResult_Ok
Definition card.h:9
@ HSD_CardResult_UnkN4
Definition card.h:13
int hsd_803AC340(CardIconInfo *icon_info)
Definition card.c:1629
void hsd_803AC3E0(CardState *state, int file_idx, int file_size, int file_flags, u8 *data)
Definition card.c:1671
void hsd_803B2374(void)
Definition card.c:5290
int hsd_803B2A4C(CardState *state, int file_idx, u8 *buf, CardCallback callback)
Queues a logical-file write from the borrowed source buffer.
Definition card.c:5517
CardBannerFormat
Definition card.h:17
@ CardBanner_Large
RGB5A3 color.
Definition card.h:20
@ CardBanner_None
Definition card.h:18
@ CardBanner_Small
Indexed color, including its palette.
Definition card.h:19
CardActiveType
What the queued commands complete; its callback runs when the ring drains.
Definition card.h:271
@ CARD_ACTIVE_WRITE_FILE
file_flags 0
Definition card.h:274
@ CARD_ACTIVE_READ_FILE
Definition card.h:273
@ CARD_ACTIVE_WRITE_FILE_1_2
Writes files with file_flags 1 or 2.
Definition card.h:278
@ CARD_ACTIVE_WRITE_FILE_3
file_flags 3
Definition card.h:280
@ CARD_ACTIVE_SET_STATUS
Definition card.h:286
@ CARD_ACTIVE_OPEN_OR_READ_HEADER
Set by fn_803ADE4C (open file) and fn_803B26CC (read header).
Definition card.h:283
@ CARD_ACTIVE_CREATE_FILE
Definition card.h:285
@ CARD_ACTIVE_NONE
Definition card.h:272
void(* CardCallback)(int file_idx, int result)
Completion callback: (file index or 0, result).
Definition card.h:68
int hsd_803B286C(CardState *state, const char *filename, const char *comment, void *banner, void *icons, CardCallback callback)
Queues file creation.
Definition card.c:5439
int hsd_803B29D8(CardState *state, int file_idx, u8 *buf, CardCallback callback)
Queues a logical-file read into the borrowed destination buffer.
Definition card.c:5492
int hsd_SetCardIconInfo(CardState *state, CardIconInfo *icon_info)
Definition card.c:5549
int hsd_803B27F4(CardState *state, void *comment, void *banner, void *icons, CardCallback callback)
Queues a header read into the non-NULL destination buffers.
Definition card.c:5413
CardRequestType
Requests queued by hsd_3B27.c and started by fn_803AA790.
Definition card.h:208
@ CARD_REQ_WRITE_FILE
Definition card.h:211
@ CARD_REQ_OPEN_FILE
Definition card.h:216
@ CARD_REQ_SET_STATUS
Rewrites the comment/banner/icons header if it changed, then CARDSetStatus.
Definition card.h:215
@ CARD_REQ_READ_HEADER
Reads the header sectors back into the caller's buffers.
Definition card.h:218
@ CARD_REQ_NONE
Definition card.h:209
@ CARD_REQ_READ_FILE
Definition card.h:210
@ CARD_REQ_CREATE_FILE
Definition card.h:212
int hsd_803B2928(CardState *state, const char *comment, void *banner, void *icons, CardCallback callback)
Queues a header/status update.
Definition card.c:5466
void hsd_803AAA48(void)
Drives queued requests and commands until idle or waiting for CARD I/O.
Definition card.c:976
CardCmdType
Ring commands run by hsd_803AAA48; asynchronous CARD operations are completed by hsd_803A949C.
Definition card.h:73
@ CARD_CMD_CLEAR_BUF
Definition card.h:78
@ CARD_CMD_SCAN_BLOCK
Reads one block's header into block_ids/block_seqs and merges its file table into file_flags/file_siz...
Definition card.h:91
@ CARD_CMD_UNK_0x03
No producer or handler identified.
Definition card.h:77
@ CARD_CMD_READ_SECTOR
Definition card.h:95
@ CARD_CMD_CHECK_VERIFIED
After queued verification, changes result 2 to 0 and otherwise sets result 1.
Definition card.h:82
@ CARD_CMD_SET_STATUS
Definition card.h:84
@ CARD_CMD_WRITE_SECTOR
Definition card.h:96
@ CARD_CMD_VERIFY_BLOCK
Definition card.h:79
@ CARD_CMD_READ_HEADER
Definition card.h:87
@ CARD_CMD_NONE
Definition card.h:74
@ CARD_CMD_WRITE_HEADER
Definition card.h:85
@ CARD_CMD_WRITE_BLOCK
Definition card.h:75
@ CARD_CMD_GET_STATUS
Definition card.h:88
@ CARD_CMD_REPAIR
fn_803AD16C: mark stale copies negative; for file_flags 0 files also clear surplus copies and rebuild...
Definition card.h:94
@ CARD_CMD_READ_BLOCK
Definition card.h:76
@ CARD_CMD_VERIFY_HEADER
Definition card.h:86
@ CARD_CMD_CREATE_FILE
Definition card.h:83
@ CARD_CMD_SCAN_FILE
Queues header validation and CARD_CMD_SCAN_BLOCK for each block, followed by CARD_CMD_REPAIR.
Definition card.h:99
int hsd_803B2550(CardState *state, const char *filename, CardCallback callback)
Definition card.c:5315
CARD_CMD_CLEAR_BUF: memset(data, 0, size).
Definition card.h:152
s32 xC
Definition card.h:156
s32 x4
Definition card.h:154
void * data
Definition card.h:157
s32 x14
Definition card.h:158
s32 x8
Definition card.h:155
s32 size
Definition card.h:159
s32 x0
Definition card.h:153
One entry of the command ring hsd_804D1148.
Definition card.h:190
CardState * state
Definition card.h:192
union CardCmd::CardCmd_x8 x8
CardCmdType type
Definition card.h:191
CARD_CMD_CREATE_FILE.
Definition card.h:163
s32 size
Definition card.h:165
const char * filename
Definition card.h:164
CARD_REQ_CREATE_FILE.
Definition card.h:228
void * banner
Definition card.h:230
void * icons
Definition card.h:231
const char * filename
Definition card.h:229
CARD_REQ_READ_FILE, CARD_REQ_WRITE_FILE.
Definition card.h:222
s32 file_idx
Definition card.h:223
u8 * buf
Definition card.h:224
CARD_CMD_GET_STATUS.
Definition card.h:185
s32 file_no
Definition card.h:186
u8 icon_format[8]
Definition card.h:28
u8 icon_speed[8]
Definition card.h:29
u8 banner_format
Definition card.h:26
u8 unused
Definition card.h:27
CARD_REQ_OPEN_FILE.
Definition card.h:242
s32 file_no
Definition card.h:243
CARD_CMD_READ_BLOCK, CARD_CMD_SCAN_BLOCK: phys 0 shares the last header sector.
Definition card.h:117
s32 x0
Definition card.h:118
s32 phys
Definition card.h:120
s32 size
Definition card.h:124
s32 x4
Definition card.h:119
void * data
Definition card.h:122
s32 offset
Definition card.h:123
s32 xC
Definition card.h:121
One entry of the request queue hsd_804D2348.
Definition card.h:255
CardCallback callback
Definition card.h:265
union CardRequest::CardRequest_x8 x8
CardState * state
Definition card.h:257
CardRequestType type
Definition card.h:256
CARD_CMD_READ_SECTOR, CARD_CMD_WRITE_SECTOR: transfer through sector_buf.
Definition card.h:142
s32 x0
Definition card.h:143
s32 phys
Definition card.h:144
s32 block_id
Definition card.h:145
s32 seq
Definition card.h:146
void * x10
Definition card.h:147
s32 offset
Definition card.h:148
One CARD file containing up to nine logical files.
Definition card.h:36
u8 * file_data[HSD_CARD_MAX_FILES]
Definition card.h:48
s32 block_seqs[64]
Definition card.h:55
char comment[64]
Definition card.h:56
CARDStat stat
Definition card.h:58
s32 chan
Definition card.h:38
u8 digest[0x30]
Definition card.h:59
u8 pad_94[0xDC]
Definition card.h:49
CARDFileInfo file_info
Definition card.h:40
u32 header_size
Bytes of comment + banner + icons; the 0x30-byte digest follows.
Definition card.h:44
int file_flags[HSD_CARD_MAX_FILES]
Definition card.h:46
CardIconInfo icon_info
Definition card.h:57
s32 file_no
Definition card.h:41
u8 * sector_buf
Definition card.h:37
int file_sizes[HSD_CARD_MAX_FILES]
Definition card.h:47
s32 num_blocks
Physical blocks 1..num_blocks each fill a sector; block 0 shares the last header sector.
Definition card.h:63
u32 sector_size
Definition card.h:39
s32 block_ids[64]
Block id stored in each physical block; negated = stale copy, -0x7FFF = free.
Definition card.h:53
CARD_REQ_SET_STATUS.
Definition card.h:235
void * banner
Definition card.h:237
s32 x0
Definition card.h:236
void * icons
Definition card.h:238
CARD_CMD_VERIFY_BLOCK: compare the block header and data against block_id/seq/data.
Definition card.h:129
s32 offset
Definition card.h:135
s32 seq
Definition card.h:133
s32 x4
Definition card.h:131
s32 block_id
Definition card.h:132
void * data
Definition card.h:134
s32 size
Definition card.h:136
s32 x0
Definition card.h:130
CARD_CMD_WRITE_BLOCK: 0x20-byte block header followed by size bytes of data; the remaining bytes in t...
Definition card.h:104
s32 offset
Definition card.h:110
s32 file_idx
Definition card.h:105
s32 phys
Definition card.h:106
s32 block_id
Definition card.h:107
s32 seq
Definition card.h:108
void * data
Definition card.h:109
s32 size
Definition card.h:111
CardGetStatusArgs get_status
Definition card.h:202
CardReadHeaderArgs read_header
Definition card.h:201
CardReadArgs read
Definition card.h:195
CardCreateArgs create
Definition card.h:199
CardVerifyArgs verify
Definition card.h:196
CardHeaderArgs header
Definition card.h:200
CardSectorArgs sector
Definition card.h:197
CardClearArgs clear
Definition card.h:198
CardWriteArgs write
Definition card.h:194
CardStatusReqArgs status
Definition card.h:261
CardOpenReqArgs open
Definition card.h:262
CardHeaderReqArgs header
Definition card.h:263
CardFileReqArgs file
Definition card.h:259
CardCreateReqArgs create
Definition card.h:260