Small sys_flashrom clean up (#1795)

* sys_flashrom cleanup

* Remove uncessary data word from function names

* format
This commit is contained in:
Derek Hensley 2025-02-21 17:00:11 -08:00 committed by GitHub
parent 6f626d9186
commit 8d9750652e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 80 additions and 80 deletions

View File

@ -4,13 +4,14 @@
#include "ultra64.h" #include "ultra64.h"
typedef struct FlashromRequest { typedef struct FlashromRequest {
/* 0x00 */ s32 requestType; /* 0x00 */ s32 type;
/* 0x04 */ s32 response; /* 0x04 */ s32 response;
/* 0x08 */ void* addr; /* 0x08 */ void* addr;
/* 0x0C */ s32 pageNum; /* 0x0C */ u32 pageNum;
/* 0x10 */ s32 pageCount; /* 0x10 */ u32 pageCount;
/* 0x14 */ OSMesgQueue messageQueue; /* 0x14 */ OSMesgQueue queue;
} FlashromRequest; // size = 0x2C /* 0x2C */ OSMesg msgBuf[1];
} FlashromRequest; // size = 0x30
#define FLASHROM_REQUEST_WRITE 1 #define FLASHROM_REQUEST_WRITE 1
#define FLASHROM_REQUEST_READ 2 #define FLASHROM_REQUEST_READ 2
@ -18,10 +19,10 @@ typedef struct FlashromRequest {
#define FLASH_TYPE_MAGIC 0x11118001 #define FLASH_TYPE_MAGIC 0x11118001
s32 SysFlashrom_InitFlash(void); s32 SysFlashrom_InitFlash(void);
s32 SysFlashrom_ReadData(void* addr, u32 pageNum, u32 pageCount); s32 SysFlashrom_Read(void* addr, u32 pageNum, u32 pageCount);
void SysFlashrom_WriteDataAsync(u8* addr, u32 pageNum, u32 pageCount); void SysFlashrom_WriteAsync(void* addr, u32 pageNum, u32 pageCount);
s32 SysFlashrom_IsBusy(void); s32 SysFlashrom_IsBusy(void);
s32 SysFlashrom_AwaitResult(void); s32 SysFlashrom_AwaitResult(void);
void SysFlashrom_WriteDataSync(void* addr, u32 pageNum, u32 pageCount); void SysFlashrom_WriteSync(void* addr, u32 pageNum, u32 pageCount);
#endif #endif

View File

@ -18,7 +18,6 @@ STACK(sSysFlashromStack, 0x1000);
StackEntry sSysFlashromStackInfo; StackEntry sSysFlashromStackInfo;
OSThread sSysFlashromThread; OSThread sSysFlashromThread;
FlashromRequest sFlashromRequest; FlashromRequest sFlashromRequest;
OSMesg sSysFlashromMsgBuf[1];
s32 SysFlashrom_IsInit(void) { s32 SysFlashrom_IsInit(void) {
return sFlashromIsInit; return sFlashromIsInit;
@ -78,7 +77,7 @@ s32 SysFlashrom_InitFlash(void) {
return 0; return 0;
} }
s32 SysFlashrom_ReadData(void* addr, u32 pageNum, u32 pageCount) { s32 SysFlashrom_Read(void* addr, u32 pageNum, u32 pageCount) {
OSIoMesg msg; OSIoMesg msg;
if (!SysFlashrom_IsInit()) { if (!SysFlashrom_IsInit()) {
@ -113,7 +112,7 @@ s32 SysFlashrom_ExecWrite(void* addr, u32 pageNum, u32 pageCount) {
for (i = 0; i < pageCount; i++) { for (i = 0; i < pageCount; i++) {
osFlashWriteBuffer(&msg, OS_MESG_PRI_NORMAL, (u8*)addr + i * FLASH_BLOCK_SIZE, &sFlashromMesgQueue); osFlashWriteBuffer(&msg, OS_MESG_PRI_NORMAL, (u8*)addr + i * FLASH_BLOCK_SIZE, &sFlashromMesgQueue);
osRecvMesg(&sFlashromMesgQueue, NULL, OS_MESG_BLOCK); osRecvMesg(&sFlashromMesgQueue, NULL, OS_MESG_BLOCK);
result = osFlashWriteArray(i + pageNum); result = osFlashWriteArray(pageNum + i);
if (result != 0) { if (result != 0) {
return result; return result;
} }
@ -164,7 +163,7 @@ s32 SysFlashrom_NeedsToErase(void* data, void* addr, u32 pageCount) {
return true; return true;
} }
s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) { s32 SysFlashrom_Write(void* addr, u32 pageNum, u32 pageCount) {
void* data; void* data;
size_t size; size_t size;
s32 ret; s32 ret;
@ -177,7 +176,7 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
if (data == NULL) { if (data == NULL) {
ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount); ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount);
} else { } else {
SysFlashrom_ReadData(data, pageNum, pageCount); SysFlashrom_Read(data, pageNum, pageCount);
if (bcmp(data, addr, size) == 0) { if (bcmp(data, addr, size) == 0) {
ret = 0; ret = 0;
} else { } else {
@ -188,7 +187,7 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount); ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount);
} }
if (ret == 0) { if (ret == 0) {
SysFlashrom_ReadData(data, pageNum, pageCount); SysFlashrom_Read(data, pageNum, pageCount);
if (bcmp(data, addr, size) == 0) { if (bcmp(data, addr, size) == 0) {
ret = 0; ret = 0;
} else { } else {
@ -204,27 +203,28 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
void SysFlashrom_ThreadEntry(void* arg) { void SysFlashrom_ThreadEntry(void* arg) {
FlashromRequest* req = (FlashromRequest*)arg; FlashromRequest* req = (FlashromRequest*)arg;
switch (req->requestType) { switch (req->type) {
case FLASHROM_REQUEST_WRITE: case FLASHROM_REQUEST_WRITE:
req->response = SysFlashrom_WriteData(req->addr, req->pageNum, req->pageCount); req->response = SysFlashrom_Write(req->addr, req->pageNum, req->pageCount);
osSendMesg(&req->messageQueue, (OSMesg)req->response, OS_MESG_BLOCK); osSendMesg(&req->queue, (OSMesg)req->response, OS_MESG_BLOCK);
break; break;
case FLASHROM_REQUEST_READ: case FLASHROM_REQUEST_READ:
req->response = SysFlashrom_ReadData(req->addr, req->pageNum, req->pageCount); req->response = SysFlashrom_Read(req->addr, req->pageNum, req->pageCount);
osSendMesg(&req->messageQueue, (OSMesg)req->response, OS_MESG_BLOCK); osSendMesg(&req->queue, (OSMesg)req->response, OS_MESG_BLOCK);
break; break;
} }
} }
void SysFlashrom_WriteDataAsync(u8* addr, u32 pageNum, u32 pageCount) { void SysFlashrom_WriteAsync(void* addr, u32 pageNum, u32 pageCount) {
FlashromRequest* req = &sFlashromRequest; FlashromRequest* req = &sFlashromRequest;
if (SysFlashrom_IsInit()) { if (SysFlashrom_IsInit()) {
req->requestType = FLASHROM_REQUEST_WRITE; req->type = FLASHROM_REQUEST_WRITE;
req->addr = addr; req->addr = addr;
req->pageNum = pageNum; req->pageNum = pageNum;
req->pageCount = pageCount; req->pageCount = pageCount;
osCreateMesgQueue(&req->messageQueue, sSysFlashromMsgBuf, ARRAY_COUNT(sSysFlashromMsgBuf)); osCreateMesgQueue(&req->queue, req->msgBuf, ARRAY_COUNT(req->msgBuf));
StackCheck_Init(&sSysFlashromStackInfo, sSysFlashromStack, STACK_TOP(sSysFlashromStack), 0, 0x100, StackCheck_Init(&sSysFlashromStackInfo, sSysFlashromStack, STACK_TOP(sSysFlashromStack), 0, 0x100,
"sys_flashrom"); "sys_flashrom");
osCreateThread(&sSysFlashromThread, Z_THREAD_ID_FLASHROM, SysFlashrom_ThreadEntry, req, osCreateThread(&sSysFlashromThread, Z_THREAD_ID_FLASHROM, SysFlashrom_ThreadEntry, req,
@ -234,25 +234,27 @@ void SysFlashrom_WriteDataAsync(u8* addr, u32 pageNum, u32 pageCount) {
} }
s32 SysFlashrom_IsBusy(void) { s32 SysFlashrom_IsBusy(void) {
OSMesgQueue* queue = &sFlashromRequest.messageQueue; FlashromRequest* req = &sFlashromRequest;
if (!SysFlashrom_IsInit()) { if (!SysFlashrom_IsInit()) {
return -1; return -1;
} }
return MQ_IS_FULL(queue); return MQ_IS_FULL(&req->queue);
} }
s32 SysFlashrom_AwaitResult(void) { s32 SysFlashrom_AwaitResult(void) {
FlashromRequest* req = &sFlashromRequest;
if (!SysFlashrom_IsInit()) { if (!SysFlashrom_IsInit()) {
return -1; return -1;
} }
osRecvMesg(&sFlashromRequest.messageQueue, NULL, OS_MESG_BLOCK); osRecvMesg(&req->queue, NULL, OS_MESG_BLOCK);
osDestroyThread(&sSysFlashromThread); osDestroyThread(&sSysFlashromThread);
StackCheck_Cleanup(&sSysFlashromStackInfo); StackCheck_Cleanup(&sSysFlashromStackInfo);
return sFlashromRequest.response; return req->response;
} }
void SysFlashrom_WriteDataSync(void* addr, u32 pageNum, u32 pageCount) { void SysFlashrom_WriteSync(void* addr, u32 pageNum, u32 pageCount) {
SysFlashrom_WriteDataAsync(addr, pageNum, pageCount); SysFlashrom_WriteAsync(addr, pageNum, pageCount);
SysFlashrom_AwaitResult(); SysFlashrom_AwaitResult();
} }

View File

@ -1170,15 +1170,15 @@ void Sram_ResetSaveFromMoonCrash(SramContext* sramCtx) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
gFlashSaveNumPages[gSaveContext.fileNum * 2]) != 0) { gFlashSaveNumPages[gSaveContext.fileNum * 2]) != 0) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1], SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]); gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
} }
Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save)); Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save));
if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf)) { if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf)) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1], SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]); gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, sizeof(Save)); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, sizeof(Save));
} }
gSaveContext.save.cutsceneIndex = cutsceneIndex; gSaveContext.save.cutsceneIndex = cutsceneIndex;
@ -1235,29 +1235,27 @@ void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
if (gSaveContext.fileNum == 0xFF) { if (gSaveContext.fileNum == 0xFF) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[0], gFlashSaveNumPages[0]); SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[0], gFlashSaveNumPages[0]);
} else if (fileSelect->isOwlSave[gSaveContext.fileNum + 2]) { } else if (fileSelect->isOwlSave[gSaveContext.fileNum + 2]) {
phi_t1 = gSaveContext.fileNum + 2; phi_t1 = gSaveContext.fileNum + 2;
phi_t1 *= 2; phi_t1 *= 2;
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) { if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]);
gFlashSaveNumPages[phi_t1 + 1]);
} }
} else { } else {
phi_t1 = gSaveContext.fileNum; phi_t1 = gSaveContext.fileNum;
phi_t1 *= 2; phi_t1 *= 2;
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) { if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]);
gFlashSaveNumPages[phi_t1 + 1]);
} }
} }
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[phi_t1]); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[phi_t1]);
if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf)) { if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf)) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]); SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[phi_t1]); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[phi_t1]);
} }
} }
@ -1407,12 +1405,12 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
phi_s2 = false; phi_s2 = false;
sp6E = 0; sp6E = 0;
// read main save from flash // read main save from flash
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]) != 0) { if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]) != 0) {
// main save didn't work // main save didn't work
sp6E = 1; sp6E = 1;
// read backup save from flash // read backup save from flash
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], gFlashSaveNumPages[sp64 + 1]) !=
gFlashSaveNumPages[sp64 + 1]) != 0) { 0) {
// backup save didn't work // backup save didn't work
phi_s2 = true; phi_s2 = true;
} }
@ -1449,8 +1447,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// read backup save from flash // read backup save from flash
phi_s2 = false; phi_s2 = false;
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
gFlashSaveNumPages[sp64 + 1]) != 0) { gFlashSaveNumPages[sp64 + 1]) != 0) {
// backup save didn't work // backup save didn't work
phi_s2 = true; phi_s2 = true;
} }
@ -1514,8 +1512,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// main save // main save
oldCheckSum = gSaveContext.save.saveInfo.checksum; oldCheckSum = gSaveContext.save.saveInfo.checksum;
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
gFlashSaveNumPages[sp64 + 1]) != 0) { gFlashSaveNumPages[sp64 + 1]) != 0) {
phi_s2 = 1; phi_s2 = 1;
} else { } else {
Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save)); Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save));
@ -1526,7 +1524,7 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf) || (sp7A != phi_s2) || if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf) || (sp7A != phi_s2) ||
(oldCheckSum != phi_s2)) { (oldCheckSum != phi_s2)) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]); SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]);
Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save)); Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save));
Lib_MemCpy(&sramCtx->saveBuf[0x2000], &gSaveContext.save, sizeof(Save)); Lib_MemCpy(&sramCtx->saveBuf[0x2000], &gSaveContext.save, sizeof(Save));
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSpecialSaveNumPages[sp64]); Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSpecialSaveNumPages[sp64]);
@ -1563,8 +1561,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
phi_s2 = false; phi_s2 = false;
// read backup save from flash // read backup save from flash
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
gFlashSaveNumPages[sp64 + 1]) != 0) { gFlashSaveNumPages[sp64 + 1]) != 0) {
// backup save didn't work // backup save didn't work
phi_s2 = true; phi_s2 = true;
} }
@ -1628,8 +1626,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// main save // main save
oldCheckSum = gSaveContext.save.saveInfo.checksum; oldCheckSum = gSaveContext.save.saveInfo.checksum;
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
gFlashSaveNumPages[sp64 + 1]) != 0) { gFlashSaveNumPages[sp64 + 1]) != 0) {
phi_s2 = 1; phi_s2 = 1;
} else { } else {
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[sp64]); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[sp64]);
@ -1640,8 +1638,7 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf) || (sp7A != phi_s2) || if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf) || (sp7A != phi_s2) ||
(oldCheckSum != phi_s2)) { (oldCheckSum != phi_s2)) {
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64], SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]);
gFlashSaveNumPages[sp64]);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[sp64]); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[sp64]);
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]); Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]);
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64 + 1], Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64 + 1],
@ -1740,11 +1737,11 @@ void Sram_CopySave(FileSelectState* fileSelect2, SramContext* sramCtx) {
// clear buffer // clear buffer
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
// read to buffer // read to buffer
if (SysFlashrom_ReadData(&sramCtx->saveBuf[0], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2], if (SysFlashrom_Read(&sramCtx->saveBuf[0], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2],
gFlashSaveNumPages[fileSelect->selectedFileIndex * 2])) {} gFlashSaveNumPages[fileSelect->selectedFileIndex * 2])) {}
if (SysFlashrom_ReadData(&sramCtx->saveBuf[0x2000], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2 + 1], if (SysFlashrom_Read(&sramCtx->saveBuf[0x2000], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2 + 1],
gFlashSaveNumPages[fileSelect->selectedFileIndex * 2 + 1])) {} gFlashSaveNumPages[fileSelect->selectedFileIndex * 2 + 1])) {}
// copy buffer to save context // copy buffer to save context
Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save)); Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save));
@ -1875,7 +1872,7 @@ void Sram_Alloc(GameState* gameState, SramContext* sramCtx) {
void Sram_SyncWriteToFlash(SramContext* sramCtx, s32 curPage, s32 numPages) { void Sram_SyncWriteToFlash(SramContext* sramCtx, s32 curPage, s32 numPages) {
sramCtx->curPage = curPage; sramCtx->curPage = curPage;
sramCtx->numPages = numPages; sramCtx->numPages = numPages;
SysFlashrom_WriteDataSync(sramCtx->saveBuf, curPage, numPages); SysFlashrom_WriteSync(sramCtx->saveBuf, curPage, numPages);
} }
/** /**
@ -1888,8 +1885,8 @@ void Sram_SaveSpecialEnterClockTown(PlayState* play) {
gSaveContext.save.isFirstCycle = true; gSaveContext.save.isFirstCycle = true;
gSaveContext.save.isOwlSave = false; gSaveContext.save.isOwlSave = false;
func_80145698(sramCtx); func_80145698(sramCtx);
SysFlashrom_WriteDataSync(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2], SysFlashrom_WriteSync(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
gFlashSpecialSaveNumPages[gSaveContext.fileNum * 2]); gFlashSpecialSaveNumPages[gSaveContext.fileNum * 2]);
} }
/** /**
@ -1910,8 +1907,8 @@ void Sram_SaveSpecialNewDay(PlayState* play) {
gSaveContext.save.day = day; gSaveContext.save.day = day;
gSaveContext.save.time = time; gSaveContext.save.time = time;
gSaveContext.save.cutsceneIndex = cutsceneIndex; gSaveContext.save.cutsceneIndex = cutsceneIndex;
SysFlashrom_WriteDataSync(play->sramCtx.saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2], SysFlashrom_WriteSync(play->sramCtx.saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
gFlashSaveNumPages[gSaveContext.fileNum * 2]); gFlashSaveNumPages[gSaveContext.fileNum * 2]);
} }
void Sram_SetFlashPagesDefault(SramContext* sramCtx, u32 curPage, u32 numPages) { void Sram_SetFlashPagesDefault(SramContext* sramCtx, u32 curPage, u32 numPages) {
@ -1922,7 +1919,7 @@ void Sram_SetFlashPagesDefault(SramContext* sramCtx, u32 curPage, u32 numPages)
void Sram_StartWriteToFlashDefault(SramContext* sramCtx) { void Sram_StartWriteToFlashDefault(SramContext* sramCtx) {
// async flash write // async flash write
SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages); SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages);
sramCtx->startWriteOsTime = osGetTime(); sramCtx->startWriteOsTime = osGetTime();
sramCtx->status = 2; sramCtx->status = 2;
@ -1952,7 +1949,7 @@ void Sram_SetFlashPagesOwlSave(SramContext* sramCtx, s32 curPage, s32 numPages)
} }
void Sram_StartWriteToFlashOwlSave(SramContext* sramCtx) { void Sram_StartWriteToFlashOwlSave(SramContext* sramCtx) {
SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages); SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages);
sramCtx->startWriteOsTime = osGetTime(); sramCtx->startWriteOsTime = osGetTime();
sramCtx->status = 7; sramCtx->status = 7;
@ -1962,10 +1959,10 @@ void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx) {
if (sramCtx->status == 7) { if (sramCtx->status == 7) {
if (SysFlashrom_IsBusy() != 0) { // Is task running if (SysFlashrom_IsBusy() != 0) { // Is task running
if (SysFlashrom_AwaitResult() == 0) { // Wait for task done if (SysFlashrom_AwaitResult() == 0) { // Wait for task done
SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages); SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages);
sramCtx->status = 8; sramCtx->status = 8;
} else { } else {
SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages); SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages);
sramCtx->status = 8; sramCtx->status = 8;
} }
} }
@ -1984,7 +1981,7 @@ void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx) {
gSaveContext.save.isOwlSave = false; gSaveContext.save.isOwlSave = false;
gSaveContext.save.saveInfo.checksum = 0; gSaveContext.save.saveInfo.checksum = 0;
// flash read to buffer then copy to save context // flash read to buffer then copy to save context
SysFlashrom_ReadData(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages); SysFlashrom_Read(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, offsetof(SaveContext, fileNum)); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, offsetof(SaveContext, fileNum));
} }
} }
@ -2027,11 +2024,11 @@ void func_80147414(SramContext* sramCtx, s32 fileNum, s32 arg2) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
// Read save file // Read save file
if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2], if (SysFlashrom_Read(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2], gFlashOwlSaveNumPages[fileNum * 2]) !=
gFlashOwlSaveNumPages[fileNum * 2]) != 0) { 0) {
// If failed, read backup save file // If failed, read backup save file
SysFlashrom_ReadData(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2 + 1], SysFlashrom_Read(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2 + 1],
gFlashOwlSaveNumPages[fileNum * 2 + 1]); gFlashOwlSaveNumPages[fileNum * 2 + 1]);
} }
// Copy buffer to save context // Copy buffer to save context

View File

@ -3451,17 +3451,17 @@
0x801857D0:("SysFlashrom_GetVendorStr",), 0x801857D0:("SysFlashrom_GetVendorStr",),
0x80185864:("SysFlashrom_CheckFlashType",), 0x80185864:("SysFlashrom_CheckFlashType",),
0x80185908:("SysFlashrom_InitFlash",), 0x80185908:("SysFlashrom_InitFlash",),
0x80185968:("SysFlashrom_ReadData",), 0x80185968:("SysFlashrom_Read",),
0x801859F0:("SysFlashrom_EraseSector",), 0x801859F0:("SysFlashrom_EraseSector",),
0x80185A2C:("SysFlashrom_ExecWrite",), 0x80185A2C:("SysFlashrom_ExecWrite",),
0x80185B1C:("SysFlashrom_AttemptWrite",), 0x80185B1C:("SysFlashrom_AttemptWrite",),
0x80185BE4:("SysFlashrom_NeedsToErase",), 0x80185BE4:("SysFlashrom_NeedsToErase",),
0x80185C24:("func_80185C24",), 0x80185C24:("func_80185C24",),
0x80185D40:("SysFlashrom_ThreadEntry",), 0x80185D40:("SysFlashrom_ThreadEntry",),
0x80185DDC:("SysFlashrom_WriteDataAsync",), 0x80185DDC:("SysFlashrom_WriteAsync",),
0x80185EC4:("SysFlashrom_IsBusy",), 0x80185EC4:("SysFlashrom_IsBusy",),
0x80185F04:("SysFlashrom_AwaitResult",), 0x80185F04:("SysFlashrom_AwaitResult",),
0x80185F64:("SysFlashrom_WriteDataSync",), 0x80185F64:("SysFlashrom_WriteSync",),
0x80185F90:("Kanji_OffsetFromShiftJIS",), 0x80185F90:("Kanji_OffsetFromShiftJIS",),
0x80186A70:("osFlashGetAddr",), 0x80186A70:("osFlashGetAddr",),
0x80186AB8:("osFlashReInit",), 0x80186AB8:("osFlashReInit",),

View File

@ -2966,17 +2966,17 @@ asm/non_matchings/code/sys_flashrom/SysFlashrom_IsInit.s,SysFlashrom_IsInit,0x80
asm/non_matchings/code/sys_flashrom/SysFlashrom_GetVendorStr.s,SysFlashrom_GetVendorStr,0x801857D0,0x25 asm/non_matchings/code/sys_flashrom/SysFlashrom_GetVendorStr.s,SysFlashrom_GetVendorStr,0x801857D0,0x25
asm/non_matchings/code/sys_flashrom/SysFlashrom_CheckFlashType.s,SysFlashrom_CheckFlashType,0x80185864,0x29 asm/non_matchings/code/sys_flashrom/SysFlashrom_CheckFlashType.s,SysFlashrom_CheckFlashType,0x80185864,0x29
asm/non_matchings/code/sys_flashrom/SysFlashrom_InitFlash.s,SysFlashrom_InitFlash,0x80185908,0x18 asm/non_matchings/code/sys_flashrom/SysFlashrom_InitFlash.s,SysFlashrom_InitFlash,0x80185908,0x18
asm/non_matchings/code/sys_flashrom/SysFlashrom_ReadData.s,SysFlashrom_ReadData,0x80185968,0x22 asm/non_matchings/code/sys_flashrom/SysFlashrom_Read.s,SysFlashrom_Read,0x80185968,0x22
asm/non_matchings/code/sys_flashrom/SysFlashrom_EraseSector.s,SysFlashrom_EraseSector,0x801859F0,0xF asm/non_matchings/code/sys_flashrom/SysFlashrom_EraseSector.s,SysFlashrom_EraseSector,0x801859F0,0xF
asm/non_matchings/code/sys_flashrom/SysFlashrom_ExecWrite.s,SysFlashrom_ExecWrite,0x80185A2C,0x3C asm/non_matchings/code/sys_flashrom/SysFlashrom_ExecWrite.s,SysFlashrom_ExecWrite,0x80185A2C,0x3C
asm/non_matchings/code/sys_flashrom/SysFlashrom_AttemptWrite.s,SysFlashrom_AttemptWrite,0x80185B1C,0x32 asm/non_matchings/code/sys_flashrom/SysFlashrom_AttemptWrite.s,SysFlashrom_AttemptWrite,0x80185B1C,0x32
asm/non_matchings/code/sys_flashrom/SysFlashrom_NeedsToErase.s,SysFlashrom_NeedsToErase,0x80185BE4,0x10 asm/non_matchings/code/sys_flashrom/SysFlashrom_NeedsToErase.s,SysFlashrom_NeedsToErase,0x80185BE4,0x10
asm/non_matchings/code/sys_flashrom/func_80185C24.s,func_80185C24,0x80185C24,0x47 asm/non_matchings/code/sys_flashrom/func_80185C24.s,func_80185C24,0x80185C24,0x47
asm/non_matchings/code/sys_flashrom/SysFlashrom_ThreadEntry.s,SysFlashrom_ThreadEntry,0x80185D40,0x27 asm/non_matchings/code/sys_flashrom/SysFlashrom_ThreadEntry.s,SysFlashrom_ThreadEntry,0x80185D40,0x27
asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteDataAsync.s,SysFlashrom_WriteDataAsync,0x80185DDC,0x3A asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteAsync.s,SysFlashrom_WriteAsync,0x80185DDC,0x3A
asm/non_matchings/code/sys_flashrom/SysFlashrom_IsBusy.s,SysFlashrom_IsBusy,0x80185EC4,0x10 asm/non_matchings/code/sys_flashrom/SysFlashrom_IsBusy.s,SysFlashrom_IsBusy,0x80185EC4,0x10
asm/non_matchings/code/sys_flashrom/SysFlashrom_AwaitResult.s,SysFlashrom_AwaitResult,0x80185F04,0x18 asm/non_matchings/code/sys_flashrom/SysFlashrom_AwaitResult.s,SysFlashrom_AwaitResult,0x80185F04,0x18
asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteDataSync.s,SysFlashrom_WriteDataSync,0x80185F64,0xB asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteSync.s,SysFlashrom_WriteSync,0x80185F64,0xB
asm/non_matchings/code/kanread/Kanji_OffsetFromShiftJIS.s,Kanji_OffsetFromShiftJIS,0x80185F90,0x26 asm/non_matchings/code/kanread/Kanji_OffsetFromShiftJIS.s,Kanji_OffsetFromShiftJIS,0x80185F90,0x26
asm/non_matchings/code/osFlash/func_80186A70.s,func_80186A70,0x80186A70,0x12 asm/non_matchings/code/osFlash/func_80186A70.s,func_80186A70,0x80186A70,0x12
asm/non_matchings/code/osFlash/func_80186AB8.s,func_80186AB8,0x80186AB8,0x1C asm/non_matchings/code/osFlash/func_80186AB8.s,func_80186AB8,0x80186AB8,0x1C

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2966 asm/non_matchings/code/sys_flashrom/SysFlashrom_GetVendorStr.s SysFlashrom_GetVendorStr 0x801857D0 0x25
2967 asm/non_matchings/code/sys_flashrom/SysFlashrom_CheckFlashType.s SysFlashrom_CheckFlashType 0x80185864 0x29
2968 asm/non_matchings/code/sys_flashrom/SysFlashrom_InitFlash.s SysFlashrom_InitFlash 0x80185908 0x18
2969 asm/non_matchings/code/sys_flashrom/SysFlashrom_ReadData.s asm/non_matchings/code/sys_flashrom/SysFlashrom_Read.s SysFlashrom_ReadData SysFlashrom_Read 0x80185968 0x22
2970 asm/non_matchings/code/sys_flashrom/SysFlashrom_EraseSector.s SysFlashrom_EraseSector 0x801859F0 0xF
2971 asm/non_matchings/code/sys_flashrom/SysFlashrom_ExecWrite.s SysFlashrom_ExecWrite 0x80185A2C 0x3C
2972 asm/non_matchings/code/sys_flashrom/SysFlashrom_AttemptWrite.s SysFlashrom_AttemptWrite 0x80185B1C 0x32
2973 asm/non_matchings/code/sys_flashrom/SysFlashrom_NeedsToErase.s SysFlashrom_NeedsToErase 0x80185BE4 0x10
2974 asm/non_matchings/code/sys_flashrom/func_80185C24.s func_80185C24 0x80185C24 0x47
2975 asm/non_matchings/code/sys_flashrom/SysFlashrom_ThreadEntry.s SysFlashrom_ThreadEntry 0x80185D40 0x27
2976 asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteDataAsync.s asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteAsync.s SysFlashrom_WriteDataAsync SysFlashrom_WriteAsync 0x80185DDC 0x3A
2977 asm/non_matchings/code/sys_flashrom/SysFlashrom_IsBusy.s SysFlashrom_IsBusy 0x80185EC4 0x10
2978 asm/non_matchings/code/sys_flashrom/SysFlashrom_AwaitResult.s SysFlashrom_AwaitResult 0x80185F04 0x18
2979 asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteDataSync.s asm/non_matchings/code/sys_flashrom/SysFlashrom_WriteSync.s SysFlashrom_WriteDataSync SysFlashrom_WriteSync 0x80185F64 0xB
2980 asm/non_matchings/code/kanread/Kanji_OffsetFromShiftJIS.s Kanji_OffsetFromShiftJIS 0x80185F90 0x26
2981 asm/non_matchings/code/osFlash/func_80186A70.s func_80186A70 0x80186A70 0x12
2982 asm/non_matchings/code/osFlash/func_80186AB8.s func_80186AB8 0x80186AB8 0x1C