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 // Size of 1 Quest Log
9#define SAVEDATA_NUM 3 // Max number of Quest Logs
10#define SECTOR_SIZE 0x2000 // MemCard sector size
11#define CARD_FILE_SIZE 0x8000 // MemCard file size
12#define SAVEDATA_VERSION 6 // Save Data version
13
14#define SAVEFILE_SIZE (SAVEDATA_SIZE * SAVEDATA_NUM)
15
17public:
32
49
63
65
66 void ThdInit();
67 void main();
68 void update();
69 void load();
70 void restore();
71 s32 LoadSync(void* i_buffer, u32 i_size, u32 i_position);
72 void save(void* i_buffer, u32 i_size, u32 i_position);
73 void store();
74 s32 SaveSync();
76 void command_format();
77 void format();
79 void attach();
80 void command_attach();
81 void detach();
82 s32 mount();
83 s32 loadfile();
85 void setCardState(s32);
86
87 #if PLATFORM_WII || PLATFORM_SHIELD
88 void loadNAND();
89 void restoreNAND();
90 s32 LoadSyncNAND(void* i_buffer, u32 i_size, u32 i_position);
91 void saveNAND(void* i_buffer, u32 i_size, u32 i_position);
92 void storeNAND();
94 void storeSetUpNAND();
95 void setNandState(s32);
99 #endif
100
104 void setCopyToPos(u8 i_pos) { mCopyToPos = i_pos; }
106 void setDataVersion(u32 version) { mDataVersion = version; }
107 void getCardStatus(s32 fileNo, CARDStat* stat) { CARDGetStatus(mChannel, fileNo, stat); }
108 void setCardStatus(s32 fileNo, CARDStat* stat) { CARDSetStatus(mChannel, fileNo, stat); }
109 void setSerialNo() {
110 u64 serial_no;
111 CARDGetSerialNo(mChannel, &serial_no);
112 mSerialNo = serial_no;
113 }
114
115 /* 0x0000 */ u8 mData[SAVEFILE_SIZE];
116 /* 0x1FBC */ u8 mChannel;
117 /* 0x1FBD */ u8 mCopyToPos;
118 /* 0x1FBE */ u8 mProbeStat;
119 /* 0x1FC0 */ s32 mCardCommand;
120 /* 0x1FC4 */ s32 mCardState;
121 /* 0x1FC8 */ s32 field_0x1fc8;
122 /* 0x1FCC */ OSMutex mMutex;
123 /* 0x1FE4 */ OSCond mCond;
124 /* 0x1FEC */ s32 mNandState;
125 /* 0x1FF0 */ u64 mSerialNo;
126 /* 0x1FF8 */ u32 mDataVersion;
127}; // Size: 0x2000
128
130
131static int mDoMemCd_main(void*);
132
134
138
139inline void mDoMemCd_ThdInit() {
141}
142
146
150
151inline void mDoMemCd_save(void* i_data, u32 param_1, u32 param_2) {
152 g_mDoMemCd_control.save(i_data,param_1,param_2);
153}
154
158
162
165}
166
167inline void mDoMemCd_Load() {
169}
170
171inline void mDoMemCd_setCopyToPos(u8 i_pos) {
173}
174
175inline u32 mDoMemCd_getStatus(u32 param_0) {
176 return g_mDoMemCd_control.getStatus(param_0);
177}
178
179inline u32 mDoMemCd_LoadSync(void* i_buffer, u32 i_size, u32 i_position) {
180 return g_mDoMemCd_control.LoadSync(i_buffer, i_size, i_position);
181}
182
186
187inline void mDoMemCd_setDataVersion(u32 i_version) {
189}
190
194
195inline void mDoMemCd_getCardStatus(s32 fileNo, CARDStat* stat) {
196 g_mDoMemCd_control.getCardStatus(fileNo, stat);
197}
198
199inline void mDoMemCd_setCardStatus(s32 fileNo, CARDStat* stat) {
200 g_mDoMemCd_control.setCardStatus(fileNo, stat);
201}
202
203inline void mDoMemCd_UpDate() {
205}
206
207#if PLATFORM_WII || PLATFORM_SHIELD
208inline void mDoMemCd_saveNAND(void* data, u32 length, u32 position) {
209 g_mDoMemCd_control.saveNAND(data, length, position);
210}
211
215
216inline u32 mDoMemCd_LoadSyncNAND(void* i_buffer, u32 i_size, u32 i_position) {
217 return g_mDoMemCd_control.LoadSyncNAND(i_buffer, i_size, i_position);
218}
219
223
227
231#endif
232
233#endif /* M_DO_M_DO_MEMCARD_H */
Definition m_Do_MemCard.h:16
void save(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:231
s32 LoadSync(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:209
void setCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:108
void storeNAND()
Definition m_Do_MemCard.cpp:625
OSMutex mMutex
Definition m_Do_MemCard.h:122
void saveNAND(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:613
s32 loadfile()
Definition m_Do_MemCard.cpp:500
s32 checkspaceNAND()
Definition m_Do_MemCard.cpp:835
void update()
Definition m_Do_MemCard.cpp:148
u8 getProbeStat()
Definition m_Do_MemCard.h:102
void load()
Definition m_Do_MemCard.cpp:176
void restore()
Definition m_Do_MemCard.cpp:186
Command_e
Definition m_Do_MemCard.h:18
@ COMM_RESTORE_NAND_e
Definition m_Do_MemCard.h:27
@ COMM_STORE_e
Definition m_Do_MemCard.h:21
@ COMM_DETACH_e
Definition m_Do_MemCard.h:24
@ COMM_NONE_e
Definition m_Do_MemCard.h:19
@ COMM_STORE_NAND_e
Definition m_Do_MemCard.h:28
@ COMM_ATTACH_e
Definition m_Do_MemCard.h:23
@ COMM_STORE_SETUP_NAND_e
Definition m_Do_MemCard.h:29
@ COMM_RESTORE_e
Definition m_Do_MemCard.h:20
@ COMM_FORMAT_e
Definition m_Do_MemCard.h:22
void ThdInit()
Definition m_Do_MemCard.cpp:74
void main()
Definition m_Do_MemCard.cpp:95
bool isCardCommNone()
Definition m_Do_MemCard.h:101
u32 getStatusNAND()
Definition m_Do_MemCard.cpp:761
u32 getDataVersion()
Definition m_Do_MemCard.h:105
s32 FormatSync()
Definition m_Do_MemCard.cpp:387
u8 mCopyToPos
Definition m_Do_MemCard.h:117
void setCopyToPos(u8 i_pos)
Definition m_Do_MemCard.h:104
void storeSetUpNAND()
Definition m_Do_MemCard.cpp:706
s32 mount()
Definition m_Do_MemCard.cpp:462
void format()
Definition m_Do_MemCard.cpp:370
s32 mNandState
Definition m_Do_MemCard.h:124
void attach()
Definition m_Do_MemCard.cpp:410
s32 field_0x1fc8
Definition m_Do_MemCard.h:121
void clearProbeStat()
Definition m_Do_MemCard.h:103
void store()
Definition m_Do_MemCard.cpp:242
mDoMemCd_Ctrl_c()
Definition m_Do_MemCard.cpp:62
u8 mProbeStat
Definition m_Do_MemCard.h:118
u64 mSerialNo
Definition m_Do_MemCard.h:125
void setDataVersion(u32 version)
Definition m_Do_MemCard.h:106
void getCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:107
void loadNAND()
Definition m_Do_MemCard.cpp:559
u8 mData[SAVEFILE_SIZE]
Definition m_Do_MemCard.h:115
void setNandState(s32)
Definition m_Do_MemCard.cpp:730
void detach()
Definition m_Do_MemCard.cpp:455
s32 mCardState
Definition m_Do_MemCard.h:120
CardState_e
Definition m_Do_MemCard.h:33
@ CARD_STATE_13_e
Definition m_Do_MemCard.h:47
@ CARD_STATE_WRONG_DEVICE_e
Definition m_Do_MemCard.h:44
@ CARD_STATE_READY_e
Definition m_Do_MemCard.h:35
@ CARD_STATE_FORMAT_e
Definition m_Do_MemCard.h:39
@ CARD_STATE_WRONG_SECTORSIZE_e
Definition m_Do_MemCard.h:45
@ CARD_STATE_INSSPACE_e
Definition m_Do_MemCard.h:42
@ CARD_STATE_FATAL_ERROR_e
Definition m_Do_MemCard.h:46
@ CARD_STATE_NO_CARD_e
Definition m_Do_MemCard.h:34
@ CARD_STATE_NOENT_e
Definition m_Do_MemCard.h:43
@ CARD_STATE_BROKEN_e
Definition m_Do_MemCard.h:41
@ CARD_STATE_WRONG_ENCODING_e
Definition m_Do_MemCard.h:40
@ CARD_STATE_NO_FILE_e
Definition m_Do_MemCard.h:36
@ CARD_STATE_WRITE_e
Definition m_Do_MemCard.h:38
@ CARD_STATE_READ_e
Definition m_Do_MemCard.h:37
void setSerialNo()
Definition m_Do_MemCard.h:109
s32 SaveSync()
Definition m_Do_MemCard.cpp:283
u8 mChannel
Definition m_Do_MemCard.h:116
u32 getStatus(u32)
Definition m_Do_MemCard.cpp:306
void restoreNAND()
Definition m_Do_MemCard.cpp:568
NANDState_e
Definition m_Do_MemCard.h:50
@ NAND_STATE_READY_e
Definition m_Do_MemCard.h:52
@ NAND_STATE_10_e
Definition m_Do_MemCard.h:61
@ NAND_STATE_FORMAT_e
Definition m_Do_MemCard.h:56
@ NAND_STATE_NO_FILE_e
Definition m_Do_MemCard.h:53
@ NAND_STATE_INSSPACE_e
Definition m_Do_MemCard.h:58
@ NAND_STATE_NOENT_e
Definition m_Do_MemCard.h:59
@ NAND_STATE_READ_e
Definition m_Do_MemCard.h:54
@ NAND_STATE_BROKEN_e
Definition m_Do_MemCard.h:57
@ NAND_STATE_FATAL_ERROR_e
Definition m_Do_MemCard.h:60
@ NAND_STATE_WRITE_e
Definition m_Do_MemCard.h:55
@ NAND_STATE_AUTHENTICATION_e
Definition m_Do_MemCard.h:51
s32 checkspace()
Definition m_Do_MemCard.cpp:513
s32 chekNANDFile()
Definition m_Do_MemCard.cpp:807
s32 LoadSyncNAND(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.cpp:592
void command_format()
Definition m_Do_MemCard.cpp:361
s32 SaveSyncNAND()
Definition m_Do_MemCard.cpp:684
s32 mCardCommand
Definition m_Do_MemCard.h:119
void setCardState(s32)
Definition m_Do_MemCard.cpp:533
OSCond mCond
Definition m_Do_MemCard.h:123
u32 mDataVersion
Definition m_Do_MemCard.h:126
void command_attach()
Definition m_Do_MemCard.cpp:446
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
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:155
void mDoMemCd_ThdInit()
Definition m_Do_MemCard.h:139
void mDoMemCd_setSerialNo()
Definition m_Do_MemCard.h:191
static int mDoMemCd_main(void *)
void mDoMemCd_clearProbeStat()
Definition m_Do_MemCard.h:147
s32 mDoMemCd_FormatSync()
Definition m_Do_MemCard.h:159
mDoMemCd_Ctrl_c g_mDoMemCd_control
Definition m_Do_MemCard.cpp:857
u32 mDoMemCd_getStatus(u32 param_0)
Definition m_Do_MemCard.h:175
u8 mDoMemCd_getProbeStat()
Definition m_Do_MemCard.h:143
void mDoMemCd_setDataVersion(u32 i_version)
Definition m_Do_MemCard.h:187
s32 mDoMemCd_SaveSyncNAND()
Definition m_Do_MemCard.h:212
s32 mDoMemCd_SaveSync()
Definition m_Do_MemCard.h:163
void mDoMemCd_getCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:195
STATIC_ASSERT(sizeof(mDoMemCd_Ctrl_c)==8192)
void mDoMemCd_LoadNAND()
Definition m_Do_MemCard.h:224
s32 mDoMemCd_checkNANDFile()
Definition m_Do_MemCard.h:228
u32 mDoMemCd_LoadSyncNAND(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.h:216
void mDoMemCd_save(void *i_data, u32 param_1, u32 param_2)
Definition m_Do_MemCard.h:151
void mDoMemCd_setCopyToPos(u8 i_pos)
Definition m_Do_MemCard.h:171
void mDoMemCd_setCardStatus(s32 fileNo, CARDStat *stat)
Definition m_Do_MemCard.h:199
u32 mDoMemCd_getStatusNAND()
Definition m_Do_MemCard.h:220
bool mDoMemCd_isCardCommNone()
Definition m_Do_MemCard.h:135
void mDoMemCd_saveNAND(void *data, u32 length, u32 position)
Definition m_Do_MemCard.h:208
u32 mDoMemCd_LoadSync(void *i_buffer, u32 i_size, u32 i_position)
Definition m_Do_MemCard.h:179
u32 mDoMemCd_getDataVersion()
Definition m_Do_MemCard.h:183
void mDoMemCd_UpDate()
Definition m_Do_MemCard.h:203
void mDoMemCd_Load()
Definition m_Do_MemCard.h:167
Definition card.h:113
Definition OSMutex.h:20
Definition OSMutex.h:13