Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
m_Do_MemCard.h
Go to the documentation of this file.
1#ifndef M_DO_M_DO_MEMCARD_H
2#define M_DO_M_DO_MEMCARD_H
3
4#include <dolphin/card.h>
5#include <dolphin/os.h>
6#include "global.h"
7
8#define SAVEDATA_SIZE 0xA94
9#define SECTOR_SIZE 0x2000
10#define SAVEDATA_FILE_SIZE 0x8000
11#define SAVEDATA_VERSION 6
12
14public:
23
40
42
43 void ThdInit();
44 void main();
45 void update();
46 void load();
47 void restore();
48 s32 LoadSync(void* i_buffer, u32 i_size, u32 i_position);
49 void save(void* i_buffer, u32 i_size, u32 i_position);
50 void store();
51 s32 SaveSync();
53 void command_format();
54 void format();
56 void attach();
57 void command_attach();
58 void detach();
59 s32 mount();
60 s32 loadfile();
62 void setCardState(s32);
63
66 void clearProbeStat() { mProbeStat = 2; }
67 void setCopyToPos(u8 i_pos) { mCopyToPos = i_pos; }
69 void setDataVersion(u32 version) { mDataVersion = version; }
70 void getCardStatus(s32 fileNo, CARDStat* stat) { CARDGetStatus(mChannel, fileNo, stat); }
71 void setCardStatus(s32 fileNo, CARDStat* stat) { CARDSetStatus(mChannel, fileNo, stat); }
72 void setSerialNo() {
73 u64 serial_no;
74 CARDGetSerialNo(mChannel, &serial_no);
75 mSerialNo = serial_no;
76 }
77
78 /* 0x0000 */ u8 mData[SAVEDATA_SIZE * 3];
79 /* 0x1FBC */ u8 mChannel;
80 /* 0x1FBD */ u8 mCopyToPos;
81 /* 0x1FBE */ u8 mProbeStat;
82 /* 0x1FC0 */ s32 mCardCommand;
83 /* 0x1FC4 */ s32 mCardState;
84 /* 0x1FC8 */ s32 field_0x1fc8;
85 /* 0x1FCC */ OSMutex mMutex;
86 /* 0x1FE4 */ OSCond mCond;
87 /* 0x1FEC */ u32 mNandState;
88 /* 0x1FF0 */ u64 mSerialNo;
89 /* 0x1FF8 */ u32 mDataVersion;
90}; // Size: 0x2000
91
93
94static int mDoMemCd_main(void*);
95
97
101
102inline void mDoMemCd_ThdInit() {
104}
105
109
113
114inline void mDoMemCd_save(void* i_data, u32 param_1, u32 param_2) {
115 g_mDoMemCd_control.save(i_data,param_1,param_2);
116}
117
121
125
128}
129
130inline void mDoMemCd_Load() {
132}
133
134inline void mDoMemCd_setCopyToPos(u8 i_pos) {
136}
137
138inline u32 mDoMemCd_getStatus(u8 param_0) {
139 return g_mDoMemCd_control.getStatus(param_0);
140}
141
142inline u32 mDoMemCd_LoadSync(void* i_buffer, u32 i_size, u32 i_position) {
143 return g_mDoMemCd_control.LoadSync(i_buffer, i_size, i_position);
144}
145
149
150inline void mDoMemCd_setDataVersion(u32 i_version) {
152}
153
157
158inline void mDoMemCd_getCardStatus(s32 fileNo, CARDStat* stat) {
159 g_mDoMemCd_control.getCardStatus(fileNo, stat);
160}
161
162inline void mDoMemCd_setCardStatus(s32 fileNo, CARDStat* stat) {
163 g_mDoMemCd_control.setCardStatus(fileNo, stat);
164}
165
166inline void mDoMemCd_UpDate() {
168}
169
170#endif /* M_DO_M_DO_MEMCARD_H */
s32 CARDGetSerialNo(s32 chan, u64 *serialNo)
Definition CARDNet.c:20
s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat *stat)
Definition CARDStat.c:63
s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat *stat)
Definition CARDStat.c:149
Definition m_Do_MemCard.h:13
void save(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:157
s32 LoadSync(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:135
void setCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:71
OSMutex mMutex
Definition m_Do_MemCard.h:85
s32 loadfile()
Definition m_Do_MemCard.cpp:418
void update()
Definition m_Do_MemCard.cpp:78
u8 getProbeStat()
Definition m_Do_MemCard.h:65
void load()
Definition m_Do_MemCard.cpp:104
void restore()
Definition m_Do_MemCard.cpp:113
Command_e
Definition m_Do_MemCard.h:15
@ COMM_STORE_e
Definition m_Do_MemCard.h:18
@ COMM_DETACH_e
Definition m_Do_MemCard.h:21
@ COMM_NONE_e
Definition m_Do_MemCard.h:16
@ COMM_ATTACH_e
Definition m_Do_MemCard.h:20
@ COMM_RESTORE_e
Definition m_Do_MemCard.h:17
@ COMM_FORMAT_e
Definition m_Do_MemCard.h:19
void ThdInit()
Definition m_Do_MemCard.cpp:26
void main()
Definition m_Do_MemCard.cpp:46
bool isCardCommNone()
Definition m_Do_MemCard.h:64
u32 getDataVersion()
Definition m_Do_MemCard.h:68
s32 FormatSync()
Definition m_Do_MemCard.cpp:306
u8 mCopyToPos
Definition m_Do_MemCard.h:80
void setCopyToPos(u8 i_pos)
Definition m_Do_MemCard.h:67
s32 mount()
Definition m_Do_MemCard.cpp:380
void format()
Definition m_Do_MemCard.cpp:290
void attach()
Definition m_Do_MemCard.cpp:328
s32 field_0x1fc8
Definition m_Do_MemCard.h:84
void clearProbeStat()
Definition m_Do_MemCard.h:66
void store()
Definition m_Do_MemCard.cpp:167
mDoMemCd_Ctrl_c()
Definition m_Do_MemCard.cpp:20
u8 mProbeStat
Definition m_Do_MemCard.h:81
u64 mSerialNo
Definition m_Do_MemCard.h:88
void setDataVersion(u32 version)
Definition m_Do_MemCard.h:69
void getCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:70
void detach()
Definition m_Do_MemCard.cpp:373
s32 mCardState
Definition m_Do_MemCard.h:83
u8 mData[SAVEDATA_SIZE *3]
Definition m_Do_MemCard.h:78
CardState_e
Definition m_Do_MemCard.h:24
@ CARD_STATE_13_e
Definition m_Do_MemCard.h:38
@ CARD_STATE_WRONG_DEVICE_e
Definition m_Do_MemCard.h:35
@ CARD_STATE_READY_e
Definition m_Do_MemCard.h:26
@ CARD_STATE_FORMAT_e
Definition m_Do_MemCard.h:30
@ CARD_STATE_WRONG_SECTORSIZE_e
Definition m_Do_MemCard.h:36
@ CARD_STATE_INSSPACE_e
Definition m_Do_MemCard.h:33
@ CARD_STATE_FATAL_ERROR_e
Definition m_Do_MemCard.h:37
@ CARD_STATE_NO_CARD_e
Definition m_Do_MemCard.h:25
@ CARD_STATE_NOENT_e
Definition m_Do_MemCard.h:34
@ CARD_STATE_BROKEN_e
Definition m_Do_MemCard.h:32
@ CARD_STATE_WRONG_ENCODING_e
Definition m_Do_MemCard.h:31
@ CARD_STATE_NO_FILE_e
Definition m_Do_MemCard.h:27
@ CARD_STATE_WRITE_e
Definition m_Do_MemCard.h:29
@ CARD_STATE_READ_e
Definition m_Do_MemCard.h:28
void setSerialNo()
Definition m_Do_MemCard.h:72
s32 SaveSync()
Definition m_Do_MemCard.cpp:203
u8 mChannel
Definition m_Do_MemCard.h:79
u32 getStatus(u32)
Definition m_Do_MemCard.cpp:227
s32 checkspace()
Definition m_Do_MemCard.cpp:432
void command_format()
Definition m_Do_MemCard.cpp:282
s32 mCardCommand
Definition m_Do_MemCard.h:82
void setCardState(s32)
Definition m_Do_MemCard.cpp:452
u32 mNandState
Definition m_Do_MemCard.h:87
OSCond mCond
Definition m_Do_MemCard.h:86
u32 mDataVersion
Definition m_Do_MemCard.h:89
void command_attach()
Definition m_Do_MemCard.cpp:364
unsigned long u32
Definition types.h:12
unsigned long long int u64
Definition types.h:14
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
void mDoMemCd_Format()
Definition m_Do_MemCard.h:118
void mDoMemCd_ThdInit()
Definition m_Do_MemCard.h:102
void mDoMemCd_setSerialNo()
Definition m_Do_MemCard.h:154
static int mDoMemCd_main(void *)
void mDoMemCd_clearProbeStat()
Definition m_Do_MemCard.h:110
s32 mDoMemCd_FormatSync()
Definition m_Do_MemCard.h:122
mDoMemCd_Ctrl_c g_mDoMemCd_control
Definition m_Do_MemCard.cpp:476
u8 mDoMemCd_getProbeStat()
Definition m_Do_MemCard.h:106
void mDoMemCd_setDataVersion(u32 i_version)
Definition m_Do_MemCard.h:150
s32 mDoMemCd_SaveSync()
Definition m_Do_MemCard.h:126
void mDoMemCd_getCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:158
STATIC_ASSERT(sizeof(mDoMemCd_Ctrl_c)==8192)
u32 mDoMemCd_getStatus(u8 param_0)
Definition m_Do_MemCard.h:138
void mDoMemCd_save(void *i_data, u32 param_1, u32 param_2)
Definition m_Do_MemCard.h:114
void mDoMemCd_setCopyToPos(u8 i_pos)
Definition m_Do_MemCard.h:134
void mDoMemCd_setCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:162
bool mDoMemCd_isCardCommNone()
Definition m_Do_MemCard.h:98
u32 mDoMemCd_LoadSync(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.h:142
u32 mDoMemCd_getDataVersion()
Definition m_Do_MemCard.h:146
void mDoMemCd_UpDate()
Definition m_Do_MemCard.h:166
void mDoMemCd_Load()
Definition m_Do_MemCard.h:130
Definition card.h:110
Definition OSMutex.h:20
Definition OSMutex.h:13