diff options
-rw-r--r-- | asm/save.s | 18 | ||||
-rw-r--r-- | asm/save_failed_screen.s | 2 | ||||
-rw-r--r-- | common_syms/agb_flash.txt | 10 | ||||
-rw-r--r-- | data/sound_data.s | 2 | ||||
-rw-r--r-- | ewram_syms.txt | 0 | ||||
-rw-r--r-- | iwram_syms.txt | 14 | ||||
-rw-r--r-- | src/gpu_regs.c | 70 | ||||
-rw-r--r-- | src/malloc.c | 26 | ||||
-rw-r--r-- | sym_bss.txt | 35 | ||||
-rw-r--r-- | sym_common.txt | 30 |
10 files changed, 76 insertions, 131 deletions
diff --git a/asm/save.s b/asm/save.s index 0ed93c614..9330cc552 100644 --- a/asm/save.s +++ b/asm/save.s @@ -9,7 +9,7 @@ calls_flash_erase_block: @ 8152650 push {r4,r5,lr} movs r4, 0 - ldr r5, =gUnknown_03007860 + ldr r5, =EraseFlashSector _08152656: ldr r1, [r5] adds r0, r4, 0 @@ -572,7 +572,7 @@ _08152B22: ldr r2, =0x00000ff6 adds r1, r2 strh r0, [r1] - ldr r0, =gUnknown_03007860 + ldr r0, =EraseFlashSector ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 @@ -580,7 +580,7 @@ _08152B22: movs r4, 0 ldr r7, =0x00000ff7 mov r9, r7 - ldr r7, =gUnknown_03007854 + ldr r7, =ProgramFlashByte b _08152B82 .pool _08152B7C: @@ -612,7 +612,7 @@ _08152BA0: _08152BB0: movs r6, 0x1 movs r4, 0 - ldr r1, =gUnknown_03007854 + ldr r1, =ProgramFlashByte mov r9, r1 ldr r7, =0x00000ff9 b _08152BCA @@ -690,7 +690,7 @@ sav12_xor_get: @ 8152C20 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gUnknown_03007854 + ldr r0, =ProgramFlashByte ldr r1, =0x00000ff8 ldr r3, [r0] adds r0, r4, 0 @@ -751,7 +751,7 @@ sub_8152CAC: @ 8152CAC adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 - ldr r3, =gUnknown_03007854 + ldr r3, =ProgramFlashByte ldr r1, =0x00000ff8 ldr r0, =gUnknown_03006204 ldr r0, [r0] @@ -815,7 +815,7 @@ sub_8152D44: @ 8152D44 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gUnknown_03007854 + ldr r0, =ProgramFlashByte ldr r1, =0x00000ff8 ldr r3, [r0] adds r0, r4, 0 @@ -1390,7 +1390,7 @@ _0815322C: .4byte _08153244 _08153244: movs r4, 0x1C - ldr r5, =gUnknown_03007860 + ldr r5, =EraseFlashSector _08153248: ldr r1, [r5] adds r0, r4, 0 @@ -1460,7 +1460,7 @@ _081532DE: .pool _081532F8: movs r4, 0x1C - ldr r5, =gUnknown_03007860 + ldr r5, =EraseFlashSector _081532FC: ldr r1, [r5] adds r0, r4, 0 diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index 75a853293..c4a6a9c46 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -633,7 +633,7 @@ sub_8179554: @ 8179554 movs r0, 0 ldr r1, =0x00000fff mov r8, r1 - ldr r7, =gUnknown_03007854 + ldr r7, =ProgramFlashByte _08179566: movs r4, 0 adds r5, r0, 0x1 diff --git a/common_syms/agb_flash.txt b/common_syms/agb_flash.txt new file mode 100644 index 000000000..cb421ec80 --- /dev/null +++ b/common_syms/agb_flash.txt @@ -0,0 +1,10 @@ +gFlashTimeoutFlag +PollFlashStatus +WaitForFlashWrite +ProgramFlashSector +gFlash +ProgramFlashByte +gFlashNumRemainingBytes +EraseFlashChip +EraseFlashSector +gFlashMaxTime diff --git a/data/sound_data.s b/data/sound_data.s index 1de5125ed..b90c6f449 100644 --- a/data/sound_data.s +++ b/data/sound_data.s @@ -31,4 +31,4 @@ gUnknown_086B49C0:: @ 86B49C0 .incbin "baserom.gba", 0x6b49c0, 0x30 gUnknown_086B49F0:: @ 86B49F0 - .incbin "baserom.gba", 0x6b49f0, 0x2ee6e0 + .incbin "baserom.gba", 0x6b49f0, 0x2ee660 diff --git a/ewram_syms.txt b/ewram_syms.txt deleted file mode 100644 index e69de29bb..000000000 --- a/ewram_syms.txt +++ /dev/null diff --git a/iwram_syms.txt b/iwram_syms.txt deleted file mode 100644 index 48398ad64..000000000 --- a/iwram_syms.txt +++ /dev/null @@ -1,14 +0,0 @@ -gHeapStart = 0x03000004; -gHeapSize = 0x03000008; - -gDma3Requests = 0x03000010; -gDma3ManagerLocked = 0x03000810; -gDma3RequestCursor = 0x03000811; - -gGpuRegBuffer = 0x03000818; -gGpuRegWaitingList = 0x03000878; -gGpuRegBufferLocked = 0x030008D8; -gShouldSyncRegIE = 0x030008D9; -gRegIE = 0x030008DA; - -gTasks = 0x3005E00; diff --git a/src/gpu_regs.c b/src/gpu_regs.c index e2eb77240..be1f153d4 100644 --- a/src/gpu_regs.c +++ b/src/gpu_regs.c @@ -2,16 +2,16 @@ #define GPU_REG_BUF_SIZE 0x60 -#define GPU_REG_BUF(offset) (*(u16 *)(&gGpuRegBuffer[offset])) +#define GPU_REG_BUF(offset) (*(u16 *)(&sGpuRegBuffer[offset])) #define GPU_REG(offset) (*(vu16 *)(REG_BASE + offset)) #define EMPTY_SLOT 0xFF -extern u8 gGpuRegBuffer[GPU_REG_BUF_SIZE]; -extern u8 gGpuRegWaitingList[GPU_REG_BUF_SIZE]; -extern bool8 gGpuRegBufferLocked; -extern bool8 gShouldSyncRegIE; -extern u16 gRegIE; +static u8 sGpuRegBuffer[GPU_REG_BUF_SIZE]; +static u8 sGpuRegWaitingList[GPU_REG_BUF_SIZE]; +static bool8 sGpuRegBufferLocked; +static bool8 sShouldSyncRegIE; +static u16 sRegIE; static void CopyBufferedValueToGpuReg(u8 regOffset); static void SyncRegIE(); @@ -22,13 +22,13 @@ void InitGpuRegManager() s32 i; for (i = 0; i < GPU_REG_BUF_SIZE; i++) { - gGpuRegBuffer[i] = 0; - gGpuRegWaitingList[i] = EMPTY_SLOT; + sGpuRegBuffer[i] = 0; + sGpuRegWaitingList[i] = EMPTY_SLOT; } - gGpuRegBufferLocked = FALSE; - gShouldSyncRegIE = FALSE; - gRegIE = 0; + sGpuRegBufferLocked = FALSE; + sShouldSyncRegIE = FALSE; + sRegIE = 0; } static void CopyBufferedValueToGpuReg(u8 regOffset) @@ -43,15 +43,15 @@ static void CopyBufferedValueToGpuReg(u8 regOffset) void CopyBufferedValuesToGpuRegs() { - if (!gGpuRegBufferLocked) { + if (!sGpuRegBufferLocked) { s32 i; for (i = 0; i < GPU_REG_BUF_SIZE; i++) { - u8 regOffset = gGpuRegWaitingList[i]; + u8 regOffset = sGpuRegWaitingList[i]; if (regOffset == EMPTY_SLOT) return; CopyBufferedValueToGpuReg(regOffset); - gGpuRegWaitingList[i] = EMPTY_SLOT; + sGpuRegWaitingList[i] = EMPTY_SLOT; } } } @@ -71,17 +71,17 @@ void SetGpuReg(u8 regOffset, u16 value) } else { s32 i; - gGpuRegBufferLocked = TRUE; + sGpuRegBufferLocked = TRUE; - for (i = 0; i < GPU_REG_BUF_SIZE && gGpuRegWaitingList[i] != EMPTY_SLOT; i++) { - if (gGpuRegWaitingList[i] == regOffset) { - gGpuRegBufferLocked = FALSE; + for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { + if (sGpuRegWaitingList[i] == regOffset) { + sGpuRegBufferLocked = FALSE; return; } } - gGpuRegWaitingList[i] = regOffset; - gGpuRegBufferLocked = FALSE; + sGpuRegWaitingList[i] = regOffset; + sGpuRegBufferLocked = FALSE; } } } @@ -97,17 +97,17 @@ void SetGpuReg_ForcedBlank(u8 regOffset, u16 value) } else { s32 i; - gGpuRegBufferLocked = TRUE; + sGpuRegBufferLocked = TRUE; - for (i = 0; i < GPU_REG_BUF_SIZE && gGpuRegWaitingList[i] != EMPTY_SLOT; i++) { - if (gGpuRegWaitingList[i] == regOffset) { - gGpuRegBufferLocked = FALSE; + for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { + if (sGpuRegWaitingList[i] == regOffset) { + sGpuRegBufferLocked = FALSE; return; } } - gGpuRegWaitingList[i] = regOffset; - gGpuRegBufferLocked = FALSE; + sGpuRegWaitingList[i] = regOffset; + sGpuRegBufferLocked = FALSE; } } } @@ -137,29 +137,29 @@ void ClearGpuRegBits(u8 regOffset, u16 mask) static void SyncRegIE() { - if (gShouldSyncRegIE) { + if (sShouldSyncRegIE) { u16 temp = REG_IME; REG_IME = 0; - REG_IE = gRegIE; + REG_IE = sRegIE; REG_IME = temp; - gShouldSyncRegIE = FALSE; + sShouldSyncRegIE = FALSE; } } void EnableInterrupts(u16 mask) { - gRegIE |= mask; - gShouldSyncRegIE = TRUE; + sRegIE |= mask; + sShouldSyncRegIE = TRUE; SyncRegIE(); - UpdateRegDispstatIntrBits(gRegIE); + UpdateRegDispstatIntrBits(sRegIE); } void DisableInterrupts(u16 mask) { - gRegIE &= ~mask; - gShouldSyncRegIE = TRUE; + sRegIE &= ~mask; + sShouldSyncRegIE = TRUE; SyncRegIE(); - UpdateRegDispstatIntrBits(gRegIE); + UpdateRegDispstatIntrBits(sRegIE); } static void UpdateRegDispstatIntrBits(u16 regIE) diff --git a/src/malloc.c b/src/malloc.c index c93e096c2..fd9dc616a 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -1,7 +1,7 @@ #include "global.h" -extern void *gHeapStart; -extern u32 gHeapSize; +static void *sHeapStart; +static u32 sHeapSize; #define MALLOC_SYSTEM_ID 0xA3A3 @@ -15,10 +15,10 @@ struct MemBlock { // Size of the block (not including this header struct). u32 size; - // Previous block pointer. Equals gHeapStart if this is the first block. + // Previous block pointer. Equals sHeapStart if this is the first block. struct MemBlock *prev; - // Next block pointer. Equals gHeapStart if this is the last block. + // Next block pointer. Equals sHeapStart if this is the last block. struct MemBlock *next; // Data in the memory block. (Arrays of length 0 are a GNU extension.) @@ -169,40 +169,40 @@ bool32 CheckMemBlockInternal(void *heapStart, void *pointer) void InitHeap(void *heapStart, u32 heapSize) { - gHeapStart = heapStart; - gHeapSize = heapSize; + sHeapStart = heapStart; + sHeapSize = heapSize; PutFirstMemBlockHeader(heapStart, heapSize); } void *Alloc(u32 size) { - AllocInternal(gHeapStart, size); + AllocInternal(sHeapStart, size); } void *AllocZeroed(u32 size) { - AllocZeroedInternal(gHeapStart, size); + AllocZeroedInternal(sHeapStart, size); } void Free(void *pointer) { - FreeInternal(gHeapStart, pointer); + FreeInternal(sHeapStart, pointer); } bool32 CheckMemBlock(void *pointer) { - return CheckMemBlockInternal(gHeapStart, pointer); + return CheckMemBlockInternal(sHeapStart, pointer); } bool32 CheckHeap() { - struct MemBlock *pos = (struct MemBlock *)gHeapStart; + struct MemBlock *pos = (struct MemBlock *)sHeapStart; do { - if (!CheckMemBlockInternal(gHeapStart, pos->data)) + if (!CheckMemBlockInternal(sHeapStart, pos->data)) return FALSE; pos = pos->next; - } while (pos != (struct MemBlock *)gHeapStart); + } while (pos != (struct MemBlock *)sHeapStart); return TRUE; } diff --git a/sym_bss.txt b/sym_bss.txt index 99c33b586..717a78c77 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -1,12 +1,9 @@ gUnknown_03000000: @ 3000000 .space 0x4 -gHeapStart: @ 3000004 - .space 0x4 - -gHeapSize: @ 3000008 - .space 0x8 + .include "src/malloc.o" + .align 4 gDma3Requests: @ 3000010 .space 0xC @@ -25,21 +22,9 @@ gDma3ManagerLocked: @ 3000810 gDma3RequestCursor: @ 3000811 .space 0x7 -gGpuRegBuffer: @ 3000818 - .space 0x60 - -gGpuRegWaitingList: @ 3000878 - .space 0x60 - -gGpuRegBufferLocked: @ 30008D8 - .space 0x1 - -gShouldSyncRegIE: @ 30008D9 - .space 0x1 - -gRegIE: @ 30008DA - .space 0x6 + .include "src/gpu_regs.o" + .align 4 gUnknown_030008E0: @ 30008E0 .space 0x18 @@ -511,20 +496,12 @@ gUnknown_030012FC: @ 30012FC gUnknown_03001300: @ 3001300 .space 0x770 -gUnknown_03001A70: @ 3001A70 - .space 0x2 + .include "src/agb_flash.o" -gUnknown_03001A72: @ 3001A72 .space 0x2 -gUnknown_03001A74: @ 3001A74 - .space 0x4 - -gUnknown_03001A78: @ 3001A78 - .space 0x6 - gUnknown_03001A7E: @ 3001A7E - .space 0x02 + .space 0x2 .include "tools/agbcc/lib/libgcc.a:dp-bit.o" .include "tools/agbcc/lib/libgcc.a:fp-bit.o" diff --git a/sym_common.txt b/sym_common.txt index d9a227e4f..d7d605314 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -548,35 +548,7 @@ gUnknown_030077F0: @ 30077F0 gUnknown_03007800: @ 3007800 .space 0x40 -gUnknown_03007840: @ 3007840 - .space 0x4 - -gUnknown_03007844: @ 3007844 - .space 0x4 - -gUnknown_03007848: @ 3007848 - .space 0x4 - -gUnknown_0300784C: @ 300784C - .space 0x4 - -gUnknown_03007850: @ 3007850 - .space 0x4 - -gUnknown_03007854: @ 3007854 - .space 0x4 - -gUnknown_03007858: @ 3007858 - .space 0x4 - -gUnknown_0300785C: @ 300785C - .space 0x4 - -gUnknown_03007860: @ 3007860 - .space 0x4 - -gUnknown_03007864: @ 3007864 - .space 0x4 + .include "agb_flash.o" gUnknown_03007868: @ 3007868 .space 0x8 |