more misc. cleanup (#2232)

This commit is contained in:
Caroline Madsen
2024-10-31 20:36:11 -04:00
committed by GitHub
parent 30777a85b5
commit 09423b6fa0
121 changed files with 2254 additions and 17343 deletions
+133 -47
View File
@@ -7,43 +7,14 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "stdio.h"
#include "d/d_com_inf_game.h"
#include "d/d_save.h"
#include "dolphin/card.h"
#include "m_Do/m_Do_MemCard.h"
//
// Forward References:
//
extern "C" void mDoMemCdRWm_Store__FP12CARDFileInfoPvUl();
extern "C" void mDoMemCdRWm_Restore__FP12CARDFileInfoPvUl();
extern "C" static void mDoMemCdRWm_BuildHeader__FP22mDoMemCdRWm_HeaderData();
extern "C" static void mDoMemCdRWm_SetCardStat__FP12CARDFileInfo();
extern "C" static void mDoMemCdRWm_CheckCardStat__FP12CARDFileInfo();
extern "C" static void mDoMemCdRWm_CalcCheckSum__FPvUl();
extern "C" static void mDoMemCdRWm_CalcCheckSumGameData__FPvUl();
extern "C" void mDoMemCdRWm_TestCheckSumGameData__FPv();
extern "C" void mDoMemCdRWm_SetCheckSumGameData__FPUcUc();
extern "C" extern char const* const m_Do_m_Do_MemCardRWmng__stringBase0;
//
// External References:
//
extern "C" void _savegpr_20();
extern "C" void _savegpr_28();
extern "C" void _restgpr_20();
extern "C" void _restgpr_28();
//
// Declarations:
//
/* ############################################################################################## */
/* 803ECF40-803F0F40 019C60 4000+00 2/2 0/0 0/0 .bss sTmpBuf */
static u8 sTmpBuf[0x4000];
/* 80017498-8001769C 011DD8 0204+00 0/0 1/1 0/0 .text mDoMemCdRWm_Store__FP12CARDFileInfoPvUl */
#ifdef NONMATCHING
s32 mDoMemCdRWm_Store(CARDFileInfo* file, void* data, u32 length) {
mDoMemCdRWm_BuildHeader((mDoMemCdRWm_HeaderData*)sTmpBuf);
@@ -66,12 +37,20 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* file, void* data, u32 length) {
}
}
struct data_s {
int field_0x0;
int field_0x4;
u8 mData[0x1FF4];
u32 mChecksum;
};
memset(sTmpBuf, 0, sizeof(sTmpBuf));
*(int*)(sTmpBuf + 4) = 6;
memcpy(sTmpBuf + 8, data, length);
*(int*)(sTmpBuf) = 0;
u32 checksum = mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC);
*(u32*)(sTmpBuf + 0x1FFC) = checksum;
data_s* tmp_data = (data_s*)sTmpBuf;
tmp_data->field_0x4 = 6;
memcpy(tmp_data->mData, data, length);
tmp_data->field_0x0 = 0;
u32 checksum = mDoMemCdRWm_CalcCheckSum(tmp_data, 0x1FFC);
tmp_data->mChecksum = checksum;
card_state = CARDWrite(file, sTmpBuf, sizeof(sTmpBuf) / 2, 0x4000);
if (card_state != CARD_RESULT_READY) {
@@ -103,15 +82,76 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* file, void* data, u32 length) {
mDoMemCdRWm_SetCardStat(file);
return card_state;
}
#else
s32 mDoMemCdRWm_Store(CARDFileInfo* param_0, void* param_1, u32 param_2) {
// NONMATCHING
}
#endif
/* 8001769C-8001787C 011FDC 01E0+00 0/0 1/1 0/0 .text mDoMemCdRWm_Restore__FP12CARDFileInfoPvUl */
s32 mDoMemCdRWm_Restore(CARDFileInfo* param_0, void* param_1, u32 param_2) {
// NONMATCHING
s32 mDoMemCdRWm_Restore(CARDFileInfo* file, void* data, u32 length) {
BOOL rewrite = FALSE;
struct save_data_s {
u8 field_0x0[4];
u32 mDataVersion;
u8 mSave1[QUEST_LOG_SIZE];
u8 mSave2[QUEST_LOG_SIZE];
u8 mSave3[QUEST_LOG_SIZE];
};
save_data_s* saves = (save_data_s*)sTmpBuf;
save_data_s* backup_saves = (save_data_s*)(sTmpBuf + sizeof(sTmpBuf) / 2);
s32 card_state = CARDRead(file, saves, sizeof(sTmpBuf) / 2, 0x4000);
if (card_state != CARD_RESULT_READY) {
return card_state;
}
BOOL test_save1 = mDoMemCdRWm_TestCheckSumGameData(saves->mSave1);
BOOL test_save2 = mDoMemCdRWm_TestCheckSumGameData(saves->mSave2);
BOOL test_save3 = mDoMemCdRWm_TestCheckSumGameData(saves->mSave3);
card_state = CARDRead(file, backup_saves, sizeof(sTmpBuf) / 2, 0x6000);
if (card_state != CARD_RESULT_READY) {
return card_state;
}
BOOL test_backup1 = mDoMemCdRWm_TestCheckSumGameData(backup_saves->mSave1);
BOOL test_backup2 = mDoMemCdRWm_TestCheckSumGameData(backup_saves->mSave2);
BOOL test_backup3 = mDoMemCdRWm_TestCheckSumGameData(backup_saves->mSave3);
if (!test_save1 && test_backup1) {
memcpy(saves->mSave1, backup_saves->mSave1, QUEST_LOG_SIZE);
rewrite = TRUE;
}
if (!test_save2 && test_backup2) {
memcpy(saves->mSave2, backup_saves->mSave2, QUEST_LOG_SIZE);
rewrite = TRUE;
}
if (!test_save3 && test_backup3) {
memcpy(saves->mSave3, backup_saves->mSave3, QUEST_LOG_SIZE);
rewrite = TRUE;
}
if (!mDoMemCdRWm_CheckCardStat(file)) {
return CARD_RESULT_FATAL_ERROR;
}
if (rewrite) {
card_state = CARDWrite(file, saves, sizeof(sTmpBuf) / 2, 0x4000);
if (card_state != CARD_RESULT_READY) {
return card_state;
}
card_state = CARDWrite(file, saves, sizeof(sTmpBuf) / 2, 0x6000);
if (card_state != CARD_RESULT_READY) {
return card_state;
}
}
memcpy(data, saves->mSave1, length);
mDoMemCd_setDataVersion(saves->mDataVersion);
mDoMemCd_setSerialNo();
return CARD_RESULT_READY;
}
/* 8001787C-800179E4 0121BC 0168+00 1/1 0/0 0/0 .text
@@ -141,14 +181,60 @@ static void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData* header) {
}
/* 800179E4-80017B4C 012324 0168+00 1/1 0/0 0/0 .text mDoMemCdRWm_SetCardStat__FP12CARDFileInfo */
static void mDoMemCdRWm_SetCardStat(CARDFileInfo* param_0) {
// NONMATCHING
static void mDoMemCdRWm_SetCardStat(CARDFileInfo* file) {
CARDStat stat;
mDoMemCd_getCardStatus(file->fileNo, &stat);
stat.iconAddr = 0;
stat.commentAddr = 0x2400;
CARDSetBannerFormat(&stat, CARD_STAT_BANNER_C8);
CARDSetIconAnim(&stat, CARD_STAT_ANIM_BOUNCE);
CARDSetIconFormat(&stat, 0, CARD_STAT_ICON_C8);
CARDSetIconFormat(&stat, 1, CARD_STAT_ICON_C8);
CARDSetIconFormat(&stat, 2, CARD_STAT_ICON_C8);
CARDSetIconFormat(&stat, 3, CARD_STAT_ICON_C8);
CARDSetIconFormat(&stat, 4, CARD_STAT_ICON_C8);
CARDSetIconFormat(&stat, 5, CARD_STAT_ICON_NONE);
CARDSetIconFormat(&stat, 6, CARD_STAT_ICON_NONE);
CARDSetIconFormat(&stat, 7, CARD_STAT_ICON_NONE);
CARDSetIconSpeed(&stat, 0, CARD_STAT_SPEED_FAST);
CARDSetIconSpeed(&stat, 1, CARD_STAT_SPEED_FAST);
CARDSetIconSpeed(&stat, 2, CARD_STAT_SPEED_FAST);
CARDSetIconSpeed(&stat, 3, CARD_STAT_SPEED_FAST);
CARDSetIconSpeed(&stat, 4, CARD_STAT_SPEED_FAST);
CARDSetIconSpeed(&stat, 5, CARD_STAT_SPEED_END);
CARDSetIconSpeed(&stat, 6, CARD_STAT_SPEED_END);
CARDSetIconSpeed(&stat, 7, CARD_STAT_SPEED_END);
mDoMemCd_setCardStatus(file->fileNo, &stat);
}
/* 80017B4C-80017C74 01248C 0128+00 2/2 0/0 0/0 .text mDoMemCdRWm_CheckCardStat__FP12CARDFileInfo
*/
static BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo* param_0) {
// NONMATCHING
static BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo* file) {
CARDStat stat;
mDoMemCd_getCardStatus(file->fileNo, &stat);
if (stat.iconAddr != 0 || stat.commentAddr != 0x2400
|| CARDGetBannerFormat(&stat) != CARD_STAT_BANNER_C8
|| CARDGetIconAnim(&stat) != CARD_STAT_ANIM_BOUNCE
|| CARDGetIconFormat(&stat, 0) != CARD_STAT_ICON_C8
|| CARDGetIconFormat(&stat, 1) != CARD_STAT_ICON_C8
|| CARDGetIconFormat(&stat, 2) != CARD_STAT_ICON_C8
|| CARDGetIconFormat(&stat, 3) != CARD_STAT_ICON_C8
|| CARDGetIconFormat(&stat, 4) != CARD_STAT_ICON_C8
|| CARDGetIconFormat(&stat, 5) != CARD_STAT_ICON_NONE
|| CARDGetIconFormat(&stat, 6) != CARD_STAT_ICON_NONE
|| CARDGetIconFormat(&stat, 7) != CARD_STAT_ICON_NONE
|| CARDGetIconSpeed(&stat, 0) != CARD_STAT_SPEED_FAST
|| CARDGetIconSpeed(&stat, 1) != CARD_STAT_SPEED_FAST
|| CARDGetIconSpeed(&stat, 2) != CARD_STAT_SPEED_FAST
|| CARDGetIconSpeed(&stat, 3) != CARD_STAT_SPEED_FAST
|| CARDGetIconSpeed(&stat, 4) != CARD_STAT_SPEED_FAST
|| CARDGetIconSpeed(&stat, 5) != CARD_STAT_SPEED_END
|| CARDGetIconSpeed(&stat, 6) != CARD_STAT_SPEED_END
|| CARDGetIconSpeed(&stat, 7) != CARD_STAT_SPEED_END)
{
return FALSE;
}
return TRUE;
}
/* 80017C74-80017CB4 0125B4 0040+00 1/1 0/0 0/0 .text mDoMemCdRWm_CalcCheckSum__FPvUl */
@@ -200,4 +286,4 @@ void mDoMemCdRWm_SetCheckSumGameData(u8* data, u8 dataNum) {
*(u64*)(file_ptr + 0xA8C) = mDoMemCdRWm_CalcCheckSumGameData(file_ptr, 0xA8C);
}
/* 80374408-80374408 000A68 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80374408-80374408 000A68 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+50 -1816
View File
File diff suppressed because it is too large Load Diff
-18
View File
@@ -12,7 +12,6 @@
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_menu_collect.h"
#include "dol2asm.h"
#include "f_ap/f_ap_game.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_machine.h"
@@ -23,8 +22,6 @@
#include "JSystem/JUtility/JUTConsole.h"
#include "JSystem/JFramework/JFWSystem.h"
extern "C" u8 m_bloom__13mDoGph_gInf_c[20]; // needed for sinit for now
/* 80007D9C-80007E44 0026DC 00A8+00 1/1 0/0 0/0 .text createTimg__FUsUsUl */
static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
u32 bufferSize = GXGetTexBufferSize(width, height, format, GX_FALSE, 0) + 0x20;
@@ -1148,18 +1145,3 @@ int mDoGph_Create() {
mDoExt_restoreCurrentHeap();
return 1;
}
/* 8000B1D0-8000B1E4 005B10 0014+00 0/0 1/0 0/0 .text __sinit_m_Do_graphic_cpp */
void __sinit_m_Do_graphic_cpp(){// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x8000B1D0, __sinit_m_Do_graphic_cpp);
#pragma pop
/* 8000B1E4-8000B1EC 005B24 0008+00 0/0 1/0 0/0 .text getAtnActorID__9daPy_py_cCFv */
// s32 daPy_py_c::getAtnActorID() const {
extern "C" s32 getAtnActorID__9daPy_py_cCFv() {
return -1;
}
+9 -126
View File
@@ -15,7 +15,7 @@
#include "SSystem/SComponent/c_malloc.h"
#include "SSystem/SComponent/c_math.h"
#include "SSystem/SComponent/c_API_controller_pad.h"
#include "dol2asm.h"
#include "base/PPCArch.h"
#include "m_Do/m_Do_DVDError.h"
#include "m_Do/m_Do_MemCard.h"
#include "m_Do/m_Do_Reset.h"
@@ -24,110 +24,6 @@
#include "m_Do/m_Do_machine_exception.h"
#include "m_Do/m_Do_main.h"
//
// Forward References:
//
extern "C" static void myGetHeapTypeByString__FP7JKRHeap();
extern "C" static void myMemoryErrorRoutine__FPvUli();
extern "C" void myHeapCheckRecursive__FP7JKRHeap();
extern "C" void mDoMch_HeapCheckAll__Fv();
extern "C" static s8 developKeyCheck__FUlUl(u32, u32);
extern "C" bool mDoMch_IsProgressiveMode__Fv();
extern "C" bool exceptionReadPad__FPUlPUl(u32*, u32*);
extern "C" void exceptionRestart__Fv();
extern "C" void myExceptionCallback__FUsP9OSContextUlUl();
extern "C" static void fault_callback_scroll__FUsP9OSContextUlUl();
extern "C" static void my_PrintHeap__FPCcUl();
extern "C" void my_SysPrintHeap__FPCcPvUl();
extern "C" void mDoMch_Create__Fv();
extern "C" extern char const* const m_Do_m_Do_machine__stringBase0;
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
//
// External References:
//
extern "C" void mDoExt_createAssertHeap__FP7JKRHeap();
extern "C" void mDoExt_createDbPrintHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getDbPrintHeap__Fv();
extern "C" void mDoExt_createGameHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getGameHeap__Fv();
extern "C" void mDoExt_createZeldaHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getZeldaHeap__Fv();
extern "C" void mDoExt_createCommandHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getCommandHeap__Fv();
extern "C" void mDoExt_createArchiveHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getArchiveHeap__Fv();
extern "C" void mDoExt_createJ2dHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getJ2dHeap__Fv();
extern "C" void mDoRst_reset__FiUli();
extern "C" void create__9mDoDvdThdFl();
extern "C" void mDoDvdErr_ThdInit__Fv();
extern "C" void ThdInit__15mDoMemCd_Ctrl_cFv();
extern "C" void init__3cMlFP7JKRHeap();
extern "C" void cM_initRnd__Fiii();
extern "C" void firstInit__9JFWSystemFv();
extern "C" void init__9JFWSystemFv();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void getFreeSize__7JKRHeapFv();
extern "C" void getTotalFreeSize__7JKRHeapFv();
extern "C" void setErrorFlag__7JKRHeapFb();
extern "C" void setErrorHandler__7JKRHeapFPFPvUli_v();
extern "C" void* __nw__FUl();
extern "C" void __ct__9JKRThreadFP8OSThreadi();
extern "C" void createManager__15JKRThreadSwitchFP7JKRHeap();
extern "C" void setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap();
extern "C" void start__10JUTDbPrintFP7JUTFontP7JKRHeap();
extern "C" void __ct__10JUTGamePadFQ210JUTGamePad8EPadPort();
extern "C" void __dt__10JUTGamePadFv();
extern "C" void isEnablePad__12JUTExceptionCFv();
extern "C" void readPad__12JUTExceptionFPUlPUl();
extern "C" void waitTime__12JUTExceptionFl();
extern "C" void setPreUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v();
extern "C" void setPostUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v();
extern "C" void appendMapFile__12JUTExceptionFPCc();
extern "C" void setVisible__12JUTAssertionFb();
extern "C" void destroyManager__8JUTVideoFv();
extern "C" void print_f__10JUTConsoleFPCce();
extern "C" void print__10JUTConsoleFPCc();
extern "C" void scroll__10JUTConsoleFi();
extern "C" void getUsedLine__10JUTConsoleCFv();
extern "C" void getLineOffset__10JUTConsoleCFv();
extern "C" void drawDirect__17JUTConsoleManagerCFb();
extern "C" void setDirectConsole__17JUTConsoleManagerFP10JUTConsole();
extern "C" void PPCHalt();
extern "C" u32 OSGetProgressiveMode();
extern "C" void OSSetProgressiveMode(u32);
extern "C" u32 VIGetDTVStatus();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" extern s8 data_80450580;
extern "C" extern s8 developmentMode__7mDoMain;
extern "C" u32 memMargin__7mDoMain;
extern "C" u32 maxStdHeaps__Q29JFWSystem11CSetUpParam;
extern "C" u32 sysHeapSize__Q29JFWSystem11CSetUpParam;
extern "C" u32 fifoBufSize__Q29JFWSystem11CSetUpParam;
extern "C" u32 aramAudioBufSize__Q29JFWSystem11CSetUpParam;
extern "C" u32 aramGraphBufSize__Q29JFWSystem11CSetUpParam;
extern "C" void* renderMode__Q29JFWSystem11CSetUpParam;
extern "C" u32 sSZSBufferSize__7JKRAram[1 + 1 /* padding */];
extern "C" u32 sSZSBufferSize__12JKRDvdRipper;
extern "C" u32 sSZSBufferSize__16JKRDvdAramRipper;
extern "C" u8 sHungUpTime__7mDoMain[4];
extern "C" extern u8 data_80450B14[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 systemHeap__9JFWSystem[4];
extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sSystemHeap__7JKRHeap[4];
extern "C" u8 sRootHeap__7JKRHeap[4];
extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */];
//
// Declarations:
//
/* 80450BF0-80450BF4 0000F0 0004+00 1/1 0/0 0/0 .sbss None */
static u8 mDebugFill;
@@ -500,12 +396,13 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
} while (true);
}
// originally used in my_PrintHeap, but the function body was removed in retail
const char* my_PrintHeapSring = "\x1B[32m%-24s = size=%d KB\n\x1B[m";
static void dummy_string() {
DEAD_STRING("\x1B[32m%-24s = size=%d KB\n\x1B[m");
}
/* 8000BCF4-8000BCF8 006634 0004+00 1/1 0/0 0/0 .text my_PrintHeap__FPCcUl */
static void my_PrintHeap(char const* heapName, u32 heapSize) {
return;
/* empty function */
}
/* 8000BCF8-8000BD44 006638 004C+00 1/1 0/0 0/0 .text my_SysPrintHeap__FPCcPvUl */
@@ -514,20 +411,6 @@ void my_SysPrintHeap(char const* message, void* start, u32 size) {
(u32)start + size, size / 1024);
}
/* ############################################################################################## */
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037403D = "アリーナ";
SECTION_DEAD static char const* const stringBase_80374046 = "システムヒープ";
SECTION_DEAD static char const* const stringBase_80374055 = "コマンドヒープ";
SECTION_DEAD static char const* const stringBase_80374064 = "アーカイブヒープ";
SECTION_DEAD static char const* const stringBase_80374075 = "J2D用ヒープ";
SECTION_DEAD static char const* const stringBase_80374084 = "ゲームヒープ";
SECTION_DEAD static char const* const stringBase_80374091 = "ゼルダヒープ";
SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/frameworkF.map";
#pragma pop
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
extern GXRenderModeObj g_ntscZeldaIntDf = {
VI_TVMODE_NTSC_INT,
@@ -643,7 +526,7 @@ int mDoMch_Create() {
JKRHeap::getRootHeap()->setErrorFlag(true);
JFWSystem::getSystemHeap()->setErrorFlag(true);
JKRHeap* rootHeap = JKRHeap::getRootHeap();
JKRHeap* rootHeap = JKRGetRootHeap();
// Command Heap size: 4 KB
my_SysPrintHeap("コマンドヒープ", mDoExt_createCommandHeap(0x1000, rootHeap), 0x1000);
@@ -656,13 +539,13 @@ int mDoMch_Create() {
// Game Heap size: 4408 KB
my_SysPrintHeap("ゲームヒープ", mDoExt_createGameHeap(0x44E000, rootHeap), 0x44E000);
JKRHeap* sysHeap = JKRHeap::getSystemHeap();
JKRHeap* sysHeap = JKRGetSystemHeap();
u32 zeldaHeapSize = sysHeap->getFreeSize() - 0x10000;
JKRHeap* zeldaHeap = mDoExt_createZeldaHeap(zeldaHeapSize, sysHeap);
my_SysPrintHeap("ゼルダヒープ", zeldaHeap, zeldaHeapSize);
zeldaHeap->becomeCurrentHeap();
JKRAramStream::setTransBuffer(NULL, 0x2000, JKRHeap::getSystemHeap());
JKRAramStream::setTransBuffer(NULL, 0x2000, JKRGetSystemHeap());
JKRThreadSwitch::createManager(NULL);
JKRThread* thread = new JKRThread(OSGetCurrentThread(), 0);
@@ -683,4 +566,4 @@ int mDoMch_Create() {
mDoDvdErr_ThdInit();
mDoMemCd_ThdInit();
return 1;
}
}