diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2021-07-03 17:25:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 17:25:05 -0400 |
commit | 585d92f298e1edd8f756f8362de45c9fadc6fcab (patch) | |
tree | 2e3b17d37c4782f575329fc0fbe1f7bd406e6bad /src/agb_flash.c | |
parent | 558097f42326f19044a6351004468a46d6ee0b38 (diff) | |
parent | ff94d49a45ef605cfaed1268aa5a230958e25cd9 (diff) |
Merge pull request #445 from Kurausukun/ubfix
Port UBFIX Macro and Some Usages from Emerald
Diffstat (limited to 'src/agb_flash.c')
-rw-r--r-- | src/agb_flash.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/agb_flash.c b/src/agb_flash.c index bdbfcb294..0b454a41a 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -127,7 +127,9 @@ void SetReadFlash1(u16 *dest) } } -void ReadFlash_Core(u8 *src, u8 *dest, u32 size) + +// Using volatile here to make sure the flash memory will ONLY be read as bytes, to prevent any compiler optimizations. +void ReadFlash_Core(vu8 *src, u8 *dest, u32 size) { while (size-- != 0) { @@ -142,7 +144,7 @@ void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size) vu16 readFlash_Core_Buffer[0x40]; vu16 *funcSrc; vu16 *funcDest; - void (*readFlash_Core)(u8 *, u8 *, u32); + void (*readFlash_Core)(vu8 *, u8 *, u32); REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; @@ -164,7 +166,7 @@ void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size) i--; } - readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; |