Skip to content

Commit 1b54a46

Browse files
committed
Add CardMgrWork struct
1 parent d6f53fc commit 1b54a46

File tree

3 files changed

+42
-5
lines changed

3 files changed

+42
-5
lines changed

ttyd-tools/rel/include/ttyd/cardmgr.h

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,48 @@
11
#pragma once
22

3+
#include "gc/card.h"
4+
35
#include <cstdint>
46

57
namespace ttyd::cardmgr {
68

9+
struct CardMgrWork
10+
{
11+
uint16_t wFlags;
12+
uint16_t unk_2;
13+
void *workArea;
14+
int32_t memCardSlot;
15+
uint32_t unk_C;
16+
uint32_t unk_10;
17+
uint32_t unk_14;
18+
uint32_t unk_18;
19+
gc::card::CARDFileInfo fileInfo;
20+
gc::card::CARDStat stat;
21+
uint32_t code; // Return value from CARD functions
22+
uint32_t unk_A0;
23+
uint32_t unk_A4;
24+
void *fileData; // Place where all 4 files are loaded to for the file select menu
25+
void *unk_AC;
26+
void *unk_B0;
27+
uint32_t unk_B4;
28+
uint32_t unk_B8;
29+
uint32_t unk_BC;
30+
uint32_t unk_C0;
31+
uint32_t unk_C4;
32+
uint32_t unk_C8;
33+
uint32_t unk_CC;
34+
uint32_t unk_D0;
35+
uint32_t unk_D4;
36+
uint32_t unk_D8;
37+
uint32_t unk_DC;
38+
uint32_t unk_E0;
39+
uint32_t unk_E4;
40+
uint32_t unk_E8;
41+
uint32_t unk_EC;
42+
} __attribute__((__packed__));
43+
44+
static_assert(sizeof(CardMgrWork) == 0xF0);
45+
746
extern "C" {
847

948
// memcard_open
@@ -35,7 +74,7 @@ extern "C" {
3574
// cardBufReset
3675
// cardGetFilePtr
3776

38-
extern void *cardMgrWorkPointer;
77+
extern CardMgrWork *cardMgrWorkPointer;
3978

4079
}
4180

ttyd-tools/rel/source/global.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace mod {
55

6-
const char *VersionNumber = "v3.0.51";
6+
const char *VersionNumber = "v3.0.52d";
77

88
const char *RootLines[] =
99
{

ttyd-tools/rel/source/memcard.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ int32_t checkForMemoryCard()
3838

3939
int32_t mountCard()
4040
{
41-
void *WorkArea = *reinterpret_cast<uint32_t **>(
42-
reinterpret_cast<uint32_t>(ttyd::cardmgr::cardMgrWorkPointer) + 0x4);
43-
41+
void *WorkArea = ttyd::cardmgr::cardMgrWorkPointer->workArea;
4442
int32_t ReturnCode = gc::card::CARDMountAsync(CARD_SLOT_A, WorkArea, nullptr, nullptr);
4543
return finishAsyncFunction(ReturnCode);
4644
}

0 commit comments

Comments
 (0)