summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/save.s18
-rw-r--r--asm/save_failed_screen.s2
-rw-r--r--common_syms/agb_flash.txt10
-rw-r--r--data/sound_data.s2
-rw-r--r--ewram_syms.txt0
-rw-r--r--iwram_syms.txt14
-rw-r--r--src/gpu_regs.c70
-rw-r--r--src/malloc.c26
-rw-r--r--sym_bss.txt35
-rw-r--r--sym_common.txt30
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