summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'src/code')
-rw-r--r--src/code/sys_flashrom.c42
-rw-r--r--src/code/z_sram_NES.c89
2 files changed, 65 insertions, 66 deletions
diff --git a/src/code/sys_flashrom.c b/src/code/sys_flashrom.c
index 27d7c61fd..1fda1365d 100644
--- a/src/code/sys_flashrom.c
+++ b/src/code/sys_flashrom.c
@@ -18,7 +18,6 @@ STACK(sSysFlashromStack, 0x1000);
StackEntry sSysFlashromStackInfo;
OSThread sSysFlashromThread;
FlashromRequest sFlashromRequest;
-OSMesg sSysFlashromMsgBuf[1];
s32 SysFlashrom_IsInit(void) {
return sFlashromIsInit;
@@ -78,7 +77,7 @@ s32 SysFlashrom_InitFlash(void) {
return 0;
}
-s32 SysFlashrom_ReadData(void* addr, u32 pageNum, u32 pageCount) {
+s32 SysFlashrom_Read(void* addr, u32 pageNum, u32 pageCount) {
OSIoMesg msg;
if (!SysFlashrom_IsInit()) {
@@ -113,7 +112,7 @@ s32 SysFlashrom_ExecWrite(void* addr, u32 pageNum, u32 pageCount) {
for (i = 0; i < pageCount; i++) {
osFlashWriteBuffer(&msg, OS_MESG_PRI_NORMAL, (u8*)addr + i * FLASH_BLOCK_SIZE, &sFlashromMesgQueue);
osRecvMesg(&sFlashromMesgQueue, NULL, OS_MESG_BLOCK);
- result = osFlashWriteArray(i + pageNum);
+ result = osFlashWriteArray(pageNum + i);
if (result != 0) {
return result;
}
@@ -164,7 +163,7 @@ s32 SysFlashrom_NeedsToErase(void* data, void* addr, u32 pageCount) {
return true;
}
-s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
+s32 SysFlashrom_Write(void* addr, u32 pageNum, u32 pageCount) {
void* data;
size_t size;
s32 ret;
@@ -177,7 +176,7 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
if (data == NULL) {
ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount);
} else {
- SysFlashrom_ReadData(data, pageNum, pageCount);
+ SysFlashrom_Read(data, pageNum, pageCount);
if (bcmp(data, addr, size) == 0) {
ret = 0;
} else {
@@ -188,7 +187,7 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
ret = SysFlashrom_AttemptWrite(addr, pageNum, pageCount);
}
if (ret == 0) {
- SysFlashrom_ReadData(data, pageNum, pageCount);
+ SysFlashrom_Read(data, pageNum, pageCount);
if (bcmp(data, addr, size) == 0) {
ret = 0;
} else {
@@ -204,27 +203,28 @@ s32 SysFlashrom_WriteData(void* addr, u32 pageNum, u32 pageCount) {
void SysFlashrom_ThreadEntry(void* arg) {
FlashromRequest* req = (FlashromRequest*)arg;
- switch (req->requestType) {
+ switch (req->type) {
case FLASHROM_REQUEST_WRITE:
- req->response = SysFlashrom_WriteData(req->addr, req->pageNum, req->pageCount);
- osSendMesg(&req->messageQueue, (OSMesg)req->response, OS_MESG_BLOCK);
+ req->response = SysFlashrom_Write(req->addr, req->pageNum, req->pageCount);
+ osSendMesg(&req->queue, (OSMesg)req->response, OS_MESG_BLOCK);
break;
case FLASHROM_REQUEST_READ:
- req->response = SysFlashrom_ReadData(req->addr, req->pageNum, req->pageCount);
- osSendMesg(&req->messageQueue, (OSMesg)req->response, OS_MESG_BLOCK);
+ req->response = SysFlashrom_Read(req->addr, req->pageNum, req->pageCount);
+ osSendMesg(&req->queue, (OSMesg)req->response, OS_MESG_BLOCK);
break;
}
}
-void SysFlashrom_WriteDataAsync(u8* addr, u32 pageNum, u32 pageCount) {
+void SysFlashrom_WriteAsync(void* addr, u32 pageNum, u32 pageCount) {
FlashromRequest* req = &sFlashromRequest;
+
if (SysFlashrom_IsInit()) {
- req->requestType = FLASHROM_REQUEST_WRITE;
+ req->type = FLASHROM_REQUEST_WRITE;
req->addr = addr;
req->pageNum = pageNum;
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,
"sys_flashrom");
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) {
- OSMesgQueue* queue = &sFlashromRequest.messageQueue;
+ FlashromRequest* req = &sFlashromRequest;
if (!SysFlashrom_IsInit()) {
return -1;
}
- return MQ_IS_FULL(queue);
+ return MQ_IS_FULL(&req->queue);
}
s32 SysFlashrom_AwaitResult(void) {
+ FlashromRequest* req = &sFlashromRequest;
+
if (!SysFlashrom_IsInit()) {
return -1;
}
- osRecvMesg(&sFlashromRequest.messageQueue, NULL, OS_MESG_BLOCK);
+ osRecvMesg(&req->queue, NULL, OS_MESG_BLOCK);
osDestroyThread(&sSysFlashromThread);
StackCheck_Cleanup(&sSysFlashromStackInfo);
- return sFlashromRequest.response;
+ return req->response;
}
-void SysFlashrom_WriteDataSync(void* addr, u32 pageNum, u32 pageCount) {
- SysFlashrom_WriteDataAsync(addr, pageNum, pageCount);
+void SysFlashrom_WriteSync(void* addr, u32 pageNum, u32 pageCount) {
+ SysFlashrom_WriteAsync(addr, pageNum, pageCount);
SysFlashrom_AwaitResult();
}
diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c
index c09db9c78..c6790a1a5 100644
--- a/src/code/z_sram_NES.c
+++ b/src/code/z_sram_NES.c
@@ -1170,15 +1170,15 @@ void Sram_ResetSaveFromMoonCrash(SramContext* sramCtx) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
- gFlashSaveNumPages[gSaveContext.fileNum * 2]) != 0) {
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
- gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
+ gFlashSaveNumPages[gSaveContext.fileNum * 2]) != 0) {
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
+ gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
}
Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save));
if (CHECK_NEWF(gSaveContext.save.saveInfo.playerData.newf)) {
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
- gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2 + 1],
+ gFlashSaveNumPages[gSaveContext.fileNum * 2 + 1]);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, sizeof(Save));
}
gSaveContext.save.cutsceneIndex = cutsceneIndex;
@@ -1235,29 +1235,27 @@ void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
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]) {
phi_t1 = gSaveContext.fileNum + 2;
phi_t1 *= 2;
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1],
- gFlashSaveNumPages[phi_t1 + 1]);
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]);
}
} else {
phi_t1 = gSaveContext.fileNum;
phi_t1 *= 2;
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1],
- gFlashSaveNumPages[phi_t1 + 1]);
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1], gFlashSaveNumPages[phi_t1]) != 0) {
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[phi_t1 + 1], gFlashSaveNumPages[phi_t1 + 1]);
}
}
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[phi_t1]);
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]);
}
}
@@ -1407,12 +1405,12 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
phi_s2 = false;
sp6E = 0;
// 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
sp6E = 1;
// read backup save from flash
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
- gFlashSaveNumPages[sp64 + 1]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1], gFlashSaveNumPages[sp64 + 1]) !=
+ 0) {
// backup save didn't work
phi_s2 = true;
}
@@ -1449,8 +1447,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// read backup save from flash
phi_s2 = false;
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
- gFlashSaveNumPages[sp64 + 1]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
+ gFlashSaveNumPages[sp64 + 1]) != 0) {
// backup save didn't work
phi_s2 = true;
}
@@ -1514,8 +1512,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// main save
oldCheckSum = gSaveContext.save.saveInfo.checksum;
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
- gFlashSaveNumPages[sp64 + 1]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
+ gFlashSaveNumPages[sp64 + 1]) != 0) {
phi_s2 = 1;
} else {
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) ||
(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(&sramCtx->saveBuf[0x2000], &gSaveContext.save, sizeof(Save));
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSpecialSaveNumPages[sp64]);
@@ -1563,8 +1561,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
phi_s2 = false;
// read backup save from flash
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
- gFlashSaveNumPages[sp64 + 1]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
+ gFlashSaveNumPages[sp64 + 1]) != 0) {
// backup save didn't work
phi_s2 = true;
}
@@ -1628,8 +1626,8 @@ void func_801457CC(GameState* gameState, SramContext* sramCtx) {
// main save
oldCheckSum = gSaveContext.save.saveInfo.checksum;
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
- gFlashSaveNumPages[sp64 + 1]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64 + 1],
+ gFlashSaveNumPages[sp64 + 1]) != 0) {
phi_s2 = 1;
} else {
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) ||
(oldCheckSum != phi_s2)) {
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashSaveStartPages[sp64],
- gFlashSaveNumPages[sp64]);
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]);
Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, gFlashSaveSizes[sp64]);
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64], gFlashSaveNumPages[sp64]);
Sram_SyncWriteToFlash(sramCtx, gFlashSaveStartPages[sp64 + 1],
@@ -1740,11 +1737,11 @@ void Sram_CopySave(FileSelectState* fileSelect2, SramContext* sramCtx) {
// clear buffer
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
// read to buffer
- if (SysFlashrom_ReadData(&sramCtx->saveBuf[0], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2],
- gFlashSaveNumPages[fileSelect->selectedFileIndex * 2])) {}
+ if (SysFlashrom_Read(&sramCtx->saveBuf[0], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2],
+ gFlashSaveNumPages[fileSelect->selectedFileIndex * 2])) {}
- if (SysFlashrom_ReadData(&sramCtx->saveBuf[0x2000], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2 + 1],
- gFlashSaveNumPages[fileSelect->selectedFileIndex * 2 + 1])) {}
+ if (SysFlashrom_Read(&sramCtx->saveBuf[0x2000], gFlashSaveStartPages[fileSelect->selectedFileIndex * 2 + 1],
+ gFlashSaveNumPages[fileSelect->selectedFileIndex * 2 + 1])) {}
// copy buffer to save context
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) {
sramCtx->curPage = curPage;
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.isOwlSave = false;
func_80145698(sramCtx);
- SysFlashrom_WriteDataSync(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
- gFlashSpecialSaveNumPages[gSaveContext.fileNum * 2]);
+ SysFlashrom_WriteSync(sramCtx->saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
+ gFlashSpecialSaveNumPages[gSaveContext.fileNum * 2]);
}
/**
@@ -1910,8 +1907,8 @@ void Sram_SaveSpecialNewDay(PlayState* play) {
gSaveContext.save.day = day;
gSaveContext.save.time = time;
gSaveContext.save.cutsceneIndex = cutsceneIndex;
- SysFlashrom_WriteDataSync(play->sramCtx.saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
- gFlashSaveNumPages[gSaveContext.fileNum * 2]);
+ SysFlashrom_WriteSync(play->sramCtx.saveBuf, gFlashSaveStartPages[gSaveContext.fileNum * 2],
+ gFlashSaveNumPages[gSaveContext.fileNum * 2]);
}
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) {
// async flash write
- SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages);
+ SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage, sramCtx->numPages);
sramCtx->startWriteOsTime = osGetTime();
sramCtx->status = 2;
@@ -1952,7 +1949,7 @@ void Sram_SetFlashPagesOwlSave(SramContext* sramCtx, s32 curPage, s32 numPages)
}
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->status = 7;
@@ -1962,10 +1959,10 @@ void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx) {
if (sramCtx->status == 7) {
if (SysFlashrom_IsBusy() != 0) { // Is task running
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;
} else {
- SysFlashrom_WriteDataAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages);
+ SysFlashrom_WriteAsync(sramCtx->saveBuf, sramCtx->curPage + 0x80, sramCtx->numPages);
sramCtx->status = 8;
}
}
@@ -1984,7 +1981,7 @@ void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx) {
gSaveContext.save.isOwlSave = false;
gSaveContext.save.saveInfo.checksum = 0;
// 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));
}
}
@@ -2027,11 +2024,11 @@ void func_80147414(SramContext* sramCtx, s32 fileNum, s32 arg2) {
bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE);
// Read save file
- if (SysFlashrom_ReadData(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2],
- gFlashOwlSaveNumPages[fileNum * 2]) != 0) {
+ if (SysFlashrom_Read(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2], gFlashOwlSaveNumPages[fileNum * 2]) !=
+ 0) {
// If failed, read backup save file
- SysFlashrom_ReadData(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2 + 1],
- gFlashOwlSaveNumPages[fileNum * 2 + 1]);
+ SysFlashrom_Read(sramCtx->saveBuf, gFlashOwlSaveStartPages[fileNum * 2 + 1],
+ gFlashOwlSaveNumPages[fileNum * 2 + 1]);
}
// Copy buffer to save context