From 8fcf5bf1f74873f49b792d3e3f661a2e7feda673 Mon Sep 17 00:00:00 2001 From: Xavier ASUS Date: Fri, 30 Nov 2018 01:34:40 +0100 Subject: Removed SIO interrupt (it caused VBlank ISR not to be triggered). Added Gfx wait on LoadMenuEnd(). Otherwise, some levels would not start after loading all required files. Also, added GPU wait on Menu.c before entering the main loop. An invalid index inside sound table was being accessed when creating an arrival flight. This made the game crash only under real hardware. Other minor changes and fixes. --- Source/MemCard.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Source/MemCard.c') diff --git a/Source/MemCard.c b/Source/MemCard.c index e1c4c7e..991ac97 100644 --- a/Source/MemCard.c +++ b/Source/MemCard.c @@ -409,7 +409,7 @@ bool MemCardGetBlockStateFileName(TYPE_BLOCK_DATA * ptrBlockData) { memset(ptrBlockData->FileName, 0 , MEMCARD_FILENAME_SIZE); - memcpy(ptrBlockData->FileName, &DataBuffer[0x0A], MEMCARD_FILENAME_SIZE); + memmove(ptrBlockData->FileName, &DataBuffer[0x0A], MEMCARD_FILENAME_SIZE); Serial_printf("File name: %s\n", ptrBlockData->FileName); } @@ -492,7 +492,7 @@ bool MemCardGetInitialFrameInfo(TYPE_BLOCK_DATA * ptrBlockData) for (i = 0; i < ptrBlockData->IconNumber; i++) { - memcpy(ptrBlockData->CLUT[i],&DataBuffer[0x60], MEMCARD_CLUT_SIZE); + memmove(ptrBlockData->CLUT[i],&DataBuffer[0x60], MEMCARD_CLUT_SIZE); } return true; @@ -526,8 +526,8 @@ bool MemCardGetIconFrameInfo(TYPE_BLOCK_DATA * ptrBlockData) for (i = 0; i < MEMCARD_NUMBER_OF_ICONS; i++) { - memcpy(ptrBlockData->CLUT[i], ptrReferenceBlock->CLUT[i], MEMCARD_CLUT_SIZE); - memcpy(ptrBlockData->Icons[i], ptrReferenceBlock->Icons[i], MEMCARD_ICON_SIZE); + memmove(ptrBlockData->CLUT[i], ptrReferenceBlock->CLUT[i], MEMCARD_CLUT_SIZE); + memmove(ptrBlockData->Icons[i], ptrReferenceBlock->Icons[i], MEMCARD_ICON_SIZE); } if (ptrBlockData->BlockCount == LAST_BLOCK) @@ -553,7 +553,7 @@ bool MemCardGetIconFrameInfo(TYPE_BLOCK_DATA * ptrBlockData) return false; } - memcpy(ptrBlockData->Icons[i - 1 /* ICON_FRAME_# - 1 */], DataBuffer, MEMCARD_SECTOR_SIZE); + memmove(ptrBlockData->Icons[i - 1 /* ICON_FRAME_# - 1 */], DataBuffer, MEMCARD_SECTOR_SIZE); for (j = 0; j < MEMCARD_SECTOR_SIZE; j++) { -- cgit v1.2.3