summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-x[-rw-r--r--]asmdiff.sh0
-rwxr-xr-xinclude/ewram.h430
-rw-r--r--ld_script.txt2
-rw-r--r--shared_syms.txt1
-rw-r--r--src/battle/battle_2.c8
-rw-r--r--src/battle/battle_7.c16
-rw-r--r--src/debug/matsuda_debug_menu.c34
-rw-r--r--src/engine/link.c2
-rw-r--r--src/engine/main.c1
-rw-r--r--src/engine/mystery_event_menu.c4
-rw-r--r--src/engine/save_failed_screen.c2
-rw-r--r--src/engine/trade.c10
-rw-r--r--src/engine/trainer_card.c2
-rw-r--r--src/field/berry_tag_screen.c22
-rw-r--r--src/field/decoration.c2
-rw-r--r--src/field/region_map.c2
-rw-r--r--src/field/slot_machine.c4
-rw-r--r--src/scene/berry_blender.c4
-rw-r--r--src/scene/intro.c10
20 files changed, 278 insertions, 280 deletions
diff --git a/Makefile b/Makefile
index f471a1626..a42a06898 100644
--- a/Makefile
+++ b/Makefile
@@ -161,7 +161,7 @@ build/$1/ld_script.ld: ld_script.txt build/$1/sym_bss.ld build/$1/sym_common.ld
cd build/$1 && sed -f ../../ld_script.sed ../../ld_script.txt | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" >ld_script.ld
poke$1.elf: build/$1/ld_script.ld $$($1_OBJS)
- cd build/$1 && $$(LD) -T ld_script.ld -T ../../shared_syms.txt -Map ../../poke$1.map -o ../../$$@ $$($1_OBJS_REL) ../../$$(LIBGCC)
+ cd build/$1 && $$(LD) -T ld_script.ld -Map ../../poke$1.map -o ../../$$@ $$($1_OBJS_REL) ../../$$(LIBGCC)
poke$1.gba: %.gba: %.elf
$$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $$< $$@
diff --git a/asmdiff.sh b/asmdiff.sh
index a4b465b6e..a4b465b6e 100644..100755
--- a/asmdiff.sh
+++ b/asmdiff.sh
diff --git a/include/ewram.h b/include/ewram.h
index b5acbc8ed..93fba80f8 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -1,227 +1,227 @@
#ifndef GUARD_EWRAM_H
#define GUARD_EWRAM_H
-extern u8 ewram[];
-#define ewram_addr 0x02000000 // used in ewram addr hacks
+extern u8 gSharedMem[];
+#define ewram_addr 0x02000000 // used in gSharedMem addr hacks
// Note: we have duplicate ewram labels because its clear some memory
// regions overlap others but have different definitions. Until some
// dupes can be determined to be the same, they will be deliberate
// seperated.
-#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x0))
-#define ewram0_2 (*(struct Struct2000000 *)(ewram + 0x0))
-#define namingScreenData (*(struct NamingScreenData *)(ewram + 0x0))
-#define ewramBerryPic (ewram + 0x0)
-#define ewram0_3 (*(struct UnknownStruct3 *)(ewram + 0x0))
-#define ewram0_4 (*(struct Unk2000000 *)(ewram + 0x0))
-#define ewram0_5 (*(struct UnkStruct *)(ewram + 0x0))
-#define eMatsudaDebugVar (ewram[0x0])
-#define eBrendanSprite (ewram + 0x0)
-#define ewram0_6 (u32)(&ewram[0])
-#define ewram0_7 (&ewram[0])
-#define eSaveSection (struct SaveSection *)(ewram + 0x0)
-#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4))
-#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520))
-#define eMaySprite (ewram + 0x800)
-#define ewram888 (ewram + 0x888)
-#define ewramBlankMapName (ewram + 0xA48)
-#define ewramA6E (ewram[0xA6E])
-#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x1000))
-#define ewramBerryPicTemp (ewram + 0x1000)
-#define EWRAM_1000 (*(struct Struct2001000 *)(ewram + 0x1000))
-#define gUnk20011fa (u8 *)(&ewram[0x11FA])
-#define gUnk2002694 (u8 *)(&ewram[0x2694])
-#define gUnk20026A6 (u8 *)(&ewram[0x26A6])
-#define gUnk20026e4 (u8 *)(&ewram[0x26E4])
-#define ewram4000 (ewram + 0x4000)
-#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000))
-#define ARRAY_2007800 ((struct EasyChatPair *)(ewram + 0x7800))
-#define ARRAY_2007900 ((struct EasyChatPair *)(ewram + 0x7900))
-#define ewram_2008000 (*(struct PlayerRecords *)(ewram + 0x08000))
-#define ewram8000 (&ewram[0x8000])
-#define ewram8800 (&ewram[0x8800])
-#define ewram9000 (&ewram[0x9000])
+#define BATTLE_STRUCT ((struct BattleStruct *) (gSharedMem + 0x0))
+#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
+#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
+#define ewramBerryPic (gSharedMem + 0x0)
+#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0))
+#define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0))
+#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0))
+#define eMatsudaDebugVar (gSharedMem[0x0])
+#define eBrendanSprite (gSharedMem + 0x0)
+#define ewram0_6 (u32)(&gSharedMem[0])
+#define ewram0_7 (&gSharedMem[0])
+#define eSaveSection (struct SaveSection *)(gSharedMem + 0x0)
+#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
+#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
+#define eMaySprite (gSharedMem + 0x800)
+#define ewram888 (gSharedMem + 0x888)
+#define ewramBlankMapName (gSharedMem + 0xA48)
+#define ewramA6E (gSharedMem[0xA6E])
+#define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000))
+#define ewramBerryPicTemp (gSharedMem + 0x1000)
+#define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000))
+#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA])
+#define gUnk2002694 (u8 *)(&gSharedMem[0x2694])
+#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6])
+#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4])
+#define ewram4000 (gSharedMem + 0x4000)
+#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000))
+#define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800))
+#define ARRAY_2007900 ((struct EasyChatPair *)(gSharedMem + 0x7900))
+#define ewram_2008000 (*(struct PlayerRecords *)(gSharedMem + 0x08000))
+#define ewram8000 (&gSharedMem[0x8000])
+#define ewram8800 (&gSharedMem[0x8800])
+#define ewram9000 (&gSharedMem[0x9000])
#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this.
-#define ewram9800 (&ewram[0x9800])
-#define ewramA000 (&ewram[0xA000])
-#define ewramA800 (&ewram[0xA800])
-#define ewramB000 (&ewram[0xB000])
-#define ewramB800 (&ewram[0xB800])
-#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000))
-#define ewramC000 (&ewram[0xC000])
-#define ewramC03C (&ewram[0xC03C])
-#define ewramC800 (&ewram[0xC800])
-#define ewramD000 (&ewram[0xD000])
-#define ewramD800 (&ewram[0xD800])
-#define ewramE000 (&ewram[0xE000])
-#define ewramE800 (&ewram[0xE800])
-#define ewramF000 (&ewram[0xF000])
-#define ewramF800 (&ewram[0xF800])
-#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000))
-#define ewram10000 (&ewram[0x10000])
-#define ewram10800 (&ewram[0x10800])
-#define ewram11000 (&ewram[0x11000])
-#define ewram11800 (&ewram[0x11800])
-#define ewram13000 (&ewram[0x13000])
-#define EWRAM_14000 ((u8 *)(ewram + 0x14000))
-#define ewram14000 (&ewram[0x14000])
-#define ewram14000arr(i, data) (ewram[0x14000 + i + data])
-#define ewram14004arr(i, data) (ewram[0x14004 + i + data])
-#define ewram14008arr(i, data) (ewram[0x14008 + data + i])
-#define ewram14800 (&ewram[0x14800])
-#define EWRAM_14800 ((u16 *)(ewram + 0x14800))
-#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800)))
-#define EWRAM_15000 ((u8 *)(ewram + 0x15000))
-#define ewram15000 (&ewram[0x15000])
-#define ewram15000arr(i, data) (ewram[0x15000 + data + i])
-#define ewram15800 (&ewram[0x15800])
-#define ewram15DDE (ewram[0x15DDE])
-#define ewram15DDF (ewram[0x15DDF])
-#define ewram15DE0 ((*(struct ContestEntry*)(ewram + 0x15DE0)))
-#define ewram15E00 ((*(struct Unk2015E00*)(ewram + 0x15E00)))
-#define ewram16000 (ewram[0x16000])
-#define ewram16001 (ewram[0x16001])
-#define ewram16002 (ewram[0x16002])
-#define ewram16003 (ewram[0x16003])
-#define ewram16004arr(i, bank) (ewram[0x16004 + i + bank * 2])
-#define ewram1600C (ewram[0x1600C])
-#define ewram1600E (ewram[0x1600E])
-#define ewram16010arr(bank) (ewram[0x16010 + bank])
-#define ewram1601B (ewram[0x1601B])
-#define eDynamicMoveType (ewram[0x1601C])
-#define eDmgMultiplier (ewram[0x1601F])
-#define ewram16020 ((u8 *)(ewram + 0x16020))
-#define ewram16020arr(i) (ewram[0x16020 + i])
-#define ewram16054 (ewram[0x16054])
-#define ewram16056 (ewram[0x16056])
-#define ewram16058 (ewram[0x16058])
-#define ewram16059 (ewram[0x16059])
-#define ewram16060(bank) (ewram[0x16060 + bank])
-#define BATTLE_PARTY_ID(bank) (ewram[0x16064 + bank])
-#define ewram16064 (&ewram[0x16064])
-#define ewram16064arr(bank) (ewram[0x16064 + bank])
-#define ewram16068arr(i) (ewram[0x16068 + i])
-#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
-#define ewram1606Carr(i, a) (ewram[0x1606C + i + a * 3])
-#define ewram16078 (ewram[0x16078])
-#define ewram16084 (ewram[0x16084])
-#define ewram16086 (ewram[0x16086])
-#define ewram16087 (ewram[0x16087])
-#define ewram16088 (ewram[0x16088])
-#define ewram16088_2 (*(u8 *)(ewram + 0x16088))
-#define ewram16089 (ewram[0x16089])
-#define ewram16089_2 (*(u8 *)(ewram + 0x16089))
-#define ewram1608Carr(bank) (ewram[0x1608C + bank])
-#define EWRAM_1609D (ewram[0x1609D])
-#define ewram160A1 (ewram[0x160A1])
-#define ewram160A6 (ewram[0x160A6])
-#define ewram160A8 (ewram[0x160A8])
-#define ewram160A9 (ewram[0x160A9])
-#define ewram160AA (ewram[0x160AA])
-#define ewram160AB (ewram[0x160AB])
-#define ewram160AC ((u8 *)(ewram + 0x160AC))
-#define ewram160ACarr(i) (ewram[0x160AC + i])
-#define ewram160ACarr2(i, bank) (ewram[0x160AC + i + bank * 2])
-#define ewram160BC ((u16 *)(ewram + 0x160BC)) // hp
-#define ewram160BCarr(bank) (ewram[0x160BC + bank * 2])
-#define ewram160C0 (ewram[0x160C0])
-#define ewram160C2_Flags ((u16 *)(ewram + 0x160C2))
-#define ewram160C4_Callback ((MainCallback *)(ewram + 0x160C4))
-#define ewram160C8 (ewram[0x160C8])
-#define ewram160C8arr(bank) (ewram[0x160C8 + (bank / 2)])
-#define ewram160C9 (ewram[0x160C9])
-#define ewram160CB (ewram[0x160CB])
-#define ewram160CC ((u8 *)(ewram + 0x160CC))
-#define ewram160CCarr(i) (ewram[0x160CC + i])
-#define USED_HELD_ITEM(bank) ((((u16*)(&ewram[0x160CC + bank * 2]))))
-#define USED_HELD_ITEMS(bank) (*(u16 *)&ewram[0x160CC + 2 * (bank)])
-#define ewram160D4(bank) (ewram[0x160D4 + (bank / 2) * 2])
-#define ewram160DD (ewram[0x160DD])
-#define ewram160E0(i) (ewram[0x160E0 + i])
-#define ewram160E6 (ewram[0x160E6])
-#define CHOICED_MOVE(bank) (((u16*)(&ewram[0x160E8 + bank * 2])))
-#define ewram160E8 ((u8 *)(ewram + 0x160E8))
-#define ewram160E8arr(i) (ewram[0x160E8 + i])
-#define ewram160E8arr2(i, bank) (ewram[0x160E8 + i + bank * 2])
-#define ewram160F0 ((u8 *)(ewram + 0x160F0))
-#define ewram160F0arr(i) (ewram[0x160F0 + i])
-#define ewram160F8 (ewram[0x160F8])
-#define ewram160F9 (ewram[0x160F9])
-#define eStatHp (ewram[0x160FA])
-#define ewram160FB (ewram[0x160FB])
-#define ewram16100 ((u8 *)(ewram + 0x16100))
-#define ewram16100arr(i) (ewram[0x16100 + i])
-#define ewram16100arr2(i, bank) (ewram[0x16100 + i + bank * 4])
-#define ewram16108 ((u8 *)(ewram + 0x16108))
-#define ewram16108arr(i) (ewram[0x16108 + i])
-#define ewram16110 (ewram[0x16110])
-#define ewram16111 (ewram[0x16111])
-#define ewram16113 (ewram[0x16113])
-#define ewram16400 (ewram + 0x16400)
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
-#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
-#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
-#define AI_ARRAY_160CC(i) (ewram[0x160CC + i * 2])
-#define eLearnMoveStruct (struct LearnMoveStruct *)(ewram + 0x17000)
-#define eSecretBaseRecord ((struct SecretBaseRecord *)(ewram + 0x17000))
-#define ewram17002 (&ewram[0x17002])
-#define eFlashFireArr (*(struct Struct2017100 *)(ewram + 0x17100))
-#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110))
-#define ewram17130 (ewram[0x17130])
-#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140))
-#define ewram17160 (ewram[0x17160])
-#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800))
-#define EWRAM_17800 ((struct UnknownStruct1 *)(ewram + 0x17800))
-#define eTransformStatuses ((struct TransformStatus *)(ewram + 0x17800))
-#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810))
-#define EWRAM_17810 ((struct UnknownStruct3 *)(ewram + 0x17810))
-#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840))
-#define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850))
-#define ewram_2018000 (*(struct PlayerRecords *)(ewram + 0x18000))
-#define EWRAM_18000 ((u16 *)(ewram + 0x18000))
-#define ewram18000 ((u16 *)(ewram + 0x18000))
-#define ewram18000_2 (&ewram[0x18000])
-#define ewram18000_3 *(struct Pokemon **)(ewram + 0x18000)
-#define eBerryBlenderData (struct BerryBlenderData*)(&ewram[0x18000])
-#define eEggHatchData (struct EggHatchData*)(&ewram[0x18000])
-#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(ewram + 0x18000))
-#define ewram18300 ((u16 *)(ewram + 0x18300))
-#define ewram18800 (&ewram[0x18800])
-#define ewram19000 (&ewram[0x19000])
-#define EWRAM_19348 (*(u16 *)(ewram + 0x19348))
-#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348))
-#define ewram19800 (&ewram[0x19800])
-#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
-#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
+#define ewram9800 (&gSharedMem[0x9800])
+#define ewramA000 (&gSharedMem[0xA000])
+#define ewramA800 (&gSharedMem[0xA800])
+#define ewramB000 (&gSharedMem[0xB000])
+#define ewramB800 (&gSharedMem[0xB800])
+#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
+#define ewramC000 (&gSharedMem[0xC000])
+#define ewramC03C (&gSharedMem[0xC03C])
+#define ewramC800 (&gSharedMem[0xC800])
+#define ewramD000 (&gSharedMem[0xD000])
+#define ewramD800 (&gSharedMem[0xD800])
+#define ewramE000 (&gSharedMem[0xE000])
+#define ewramE800 (&gSharedMem[0xE800])
+#define ewramF000 (&gSharedMem[0xF000])
+#define ewramF800 (&gSharedMem[0xF800])
+#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
+#define ewram10000 (&gSharedMem[0x10000])
+#define ewram10800 (&gSharedMem[0x10800])
+#define ewram11000 (&gSharedMem[0x11000])
+#define ewram11800 (&gSharedMem[0x11800])
+#define ewram13000 (&gSharedMem[0x13000])
+#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
+#define ewram14000 (&gSharedMem[0x14000])
+#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data])
+#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data])
+#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i])
+#define ewram14800 (&gSharedMem[0x14800])
+#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800))
+#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800)))
+#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000))
+#define ewram15000 (&gSharedMem[0x15000])
+#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
+#define ewram15800 (&gSharedMem[0x15800])
+#define ewram15DDE (gSharedMem[0x15DDE])
+#define ewram15DDF (gSharedMem[0x15DDF])
+#define ewram15DE0 ((*(struct ContestEntry*)(gSharedMem + 0x15DE0)))
+#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00)))
+#define ewram16000 (gSharedMem[0x16000])
+#define ewram16001 (gSharedMem[0x16001])
+#define ewram16002 (gSharedMem[0x16002])
+#define ewram16003 (gSharedMem[0x16003])
+#define ewram16004arr(i, bank) (gSharedMem[0x16004 + i + bank * 2])
+#define ewram1600C (gSharedMem[0x1600C])
+#define ewram1600E (gSharedMem[0x1600E])
+#define ewram16010arr(bank) (gSharedMem[0x16010 + bank])
+#define ewram1601B (gSharedMem[0x1601B])
+#define eDynamicMoveType (gSharedMem[0x1601C])
+#define eDmgMultiplier (gSharedMem[0x1601F])
+#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
+#define ewram16020arr(i) (gSharedMem[0x16020 + i])
+#define ewram16054 (gSharedMem[0x16054])
+#define ewram16056 (gSharedMem[0x16056])
+#define ewram16058 (gSharedMem[0x16058])
+#define ewram16059 (gSharedMem[0x16059])
+#define ewram16060(bank) (gSharedMem[0x16060 + bank])
+#define BATTLE_PARTY_ID(bank) (gSharedMem[0x16064 + bank])
+#define ewram16064 (&gSharedMem[0x16064])
+#define ewram16064arr(bank) (gSharedMem[0x16064 + bank])
+#define ewram16068arr(i) (gSharedMem[0x16068 + i])
+#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever.
+#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3])
+#define ewram16078 (gSharedMem[0x16078])
+#define ewram16084 (gSharedMem[0x16084])
+#define ewram16086 (gSharedMem[0x16086])
+#define ewram16087 (gSharedMem[0x16087])
+#define ewram16088 (gSharedMem[0x16088])
+#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
+#define ewram16089 (gSharedMem[0x16089])
+#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
+#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank])
+#define EWRAM_1609D (gSharedMem[0x1609D])
+#define ewram160A1 (gSharedMem[0x160A1])
+#define ewram160A6 (gSharedMem[0x160A6])
+#define ewram160A8 (gSharedMem[0x160A8])
+#define ewram160A9 (gSharedMem[0x160A9])
+#define ewram160AA (gSharedMem[0x160AA])
+#define ewram160AB (gSharedMem[0x160AB])
+#define ewram160AC ((u8 *)(gSharedMem + 0x160AC))
+#define ewram160ACarr(i) (gSharedMem[0x160AC + i])
+#define ewram160ACarr2(i, bank) (gSharedMem[0x160AC + i + bank * 2])
+#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp
+#define ewram160BCarr(bank) (gSharedMem[0x160BC + bank * 2])
+#define ewram160C0 (gSharedMem[0x160C0])
+#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2))
+#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4))
+#define ewram160C8 (gSharedMem[0x160C8])
+#define ewram160C8arr(bank) (gSharedMem[0x160C8 + (bank / 2)])
+#define ewram160C9 (gSharedMem[0x160C9])
+#define ewram160CB (gSharedMem[0x160CB])
+#define ewram160CC ((u8 *)(gSharedMem + 0x160CC))
+#define ewram160CCarr(i) (gSharedMem[0x160CC + i])
+#define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2]))))
+#define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)])
+#define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2])
+#define ewram160DD (gSharedMem[0x160DD])
+#define ewram160E0(i) (gSharedMem[0x160E0 + i])
+#define ewram160E6 (gSharedMem[0x160E6])
+#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2])))
+#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
+#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
+#define ewram160E8arr2(i, bank) (gSharedMem[0x160E8 + i + bank * 2])
+#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
+#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
+#define ewram160F8 (gSharedMem[0x160F8])
+#define ewram160F9 (gSharedMem[0x160F9])
+#define eStatHp (gSharedMem[0x160FA])
+#define ewram160FB (gSharedMem[0x160FB])
+#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
+#define ewram16100arr(i) (gSharedMem[0x16100 + i])
+#define ewram16100arr2(i, bank) (gSharedMem[0x16100 + i + bank * 4])
+#define ewram16108 ((u8 *)(gSharedMem + 0x16108))
+#define ewram16108arr(i) (gSharedMem[0x16108 + i])
+#define ewram16110 (gSharedMem[0x16110])
+#define ewram16111 (gSharedMem[0x16111])
+#define ewram16113 (gSharedMem[0x16113])
+#define ewram16400 (gSharedMem + 0x16400)
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
+#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (gSharedMem + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
+#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
+#define eLearnMoveStruct (struct LearnMoveStruct *)(gSharedMem + 0x17000)
+#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
+#define ewram17002 (&gSharedMem[0x17002])
+#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100))
+#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (gSharedMem + 0x17110))
+#define ewram17130 (gSharedMem[0x17130])
+#define B_FUNCTION_STACK ((struct funcStack *) (gSharedMem + 0x17140))
+#define ewram17160 (gSharedMem[0x17160])
+#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
+#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800))
+#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800))
+#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810))
+#define EWRAM_17810 ((struct UnknownStruct3 *)(gSharedMem + 0x17810))
+#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
+#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
+#define ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000))
+#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000_2 (&gSharedMem[0x18000])
+#define ewram18000_3 *(struct Pokemon **)(gSharedMem + 0x18000)
+#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000])
+#define eEggHatchData (struct EggHatchData*)(&gSharedMem[0x18000])
+#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(gSharedMem + 0x18000))
+#define ewram18300 ((u16 *)(gSharedMem + 0x18300))
+#define ewram18800 (&gSharedMem[0x18800])
+#define ewram19000 (&gSharedMem[0x19000])
+#define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348))
+#define ewram19348 (*(struct Struct2019348 *)(gSharedMem + 0x19348))
+#define ewram19800 (&gSharedMem[0x19800])
+#define ewram1B000 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
+#define ewram1B000_alt (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
#define EWRAM_1B000 ewram1B000_alt // FIXME
-#define EWRAM_1B000_2 (*(struct Struct201B000 *)(ewram + 0x1B000))
-#define EWRAM_1C000 (*(struct Struct201C000 *)(ewram + 0x1C000))
-#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
-#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000)) // FIXME, names too similar
-#define eHallOfFameMons1 (struct HallofFameMons*)(&ewram[0x1C000])
-#define EWRAM_1C800 (*(struct Unk201C800 *)(ewram + 0x1C800))
-#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000))
-#define ewram1D000_2 ((u16 *)(ewram + 0x1D000))
-#define ewram1D400 ((u16 *)(ewram + 0x1D400))
-#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
-#define ewram1E000(i) (ewram[0x1E000 + i])
-#define eHallOfFameMons2 (struct HallofFameMons*)(&ewram[0x1E000])
-#define eHallOfFame (struct HallOfFame *)(ewram + 0x1E000)
-#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000))
-#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800))
-#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
-#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
-#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000))
-#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800))
-#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00))
-#define eMailboxInfo (*(struct MailboxStruct *)(ewram + 0x1FE00))
-#define eCutGrassSpriteArray (ewram + 0x1FFF0) // 8 sprite IDs
-#define ewram1FFFC (ewram[0x1FFFC])
-#define ewram1FFFD (ewram[0x1FFFD])
-#define gHelperState (ewram[0x1FFFE])
-#define ewram1FFFE (ewram[0x1FFFE])
-#define gReshowState (ewram[0x1FFFF])
-#define ewramBagSetupStep (ewram[0x1FFFF])
-#define ewram1FFFF (ewram[0x1FFFF])
+#define EWRAM_1B000_2 (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
+#define EWRAM_1C000 (*(struct Struct201C000 *)(gSharedMem + 0x1C000))
+#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
+#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
+#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800))
+#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
+#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
+#define ewram1D400 ((u16 *)(gSharedMem + 0x1D400))
+#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewram1E000(i) (gSharedMem[0x1E000 + i])
+#define eHallOfFameMons2 (struct HallofFameMons*)(&gSharedMem[0x1E000])
+#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
+#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
+#define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800))
+#define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000))
+#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
+#define HALL_OF_FAME_SHEET_2 ((u8 *)(gSharedMem + 0x1F000))
+#define EWRAM_1F800 ((u16 *)(gSharedMem + 0x1F800))
+#define ewram1FE00 (*(struct Unk201FE00 *)(gSharedMem + 0x1FE00))
+#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00))
+#define eCutGrassSpriteArray (gSharedMem + 0x1FFF0) // 8 sprite IDs
+#define ewram1FFFC (gSharedMem[0x1FFFC])
+#define ewram1FFFD (gSharedMem[0x1FFFD])
+#define gHelperState (gSharedMem[0x1FFFE])
+#define ewram1FFFE (gSharedMem[0x1FFFE])
+#define gReshowState (gSharedMem[0x1FFFF])
+#define ewramBagSetupStep (gSharedMem[0x1FFFF])
+#define ewram1FFFF (gSharedMem[0x1FFFF])
#endif
diff --git a/ld_script.txt b/ld_script.txt
index 52006a040..e208d5749 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -9,8 +9,6 @@ SECTIONS {
ewram (NOLOAD) :
ALIGN(4)
{
- . = 0x20000;
-
<EWRAM>
. = 0x40000;
diff --git a/shared_syms.txt b/shared_syms.txt
deleted file mode 100644
index 1422fe418..000000000
--- a/shared_syms.txt
+++ /dev/null
@@ -1 +0,0 @@
-ewram = 0x2000000; \ No newline at end of file
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index 4b75818b6..14afc1537 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -510,7 +510,7 @@ void sub_800F02C(void)
if (gUnknown_02023A00[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(ewram, gUnknown_02023A00, 0x60);
+ memcpy(gSharedMem, gUnknown_02023A00, 0x60);
}
void sub_800F104(void)
@@ -534,7 +534,7 @@ void sub_800F104(void)
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x60);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
gBattleCommunication[0]++;
}
break;
@@ -597,7 +597,7 @@ void sub_800F298(void)
BATTLE_STRUCT->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x20);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
gBattleCommunication[0]++;
}
break;
@@ -863,7 +863,7 @@ void sub_800F828(struct Sprite *sprite)
void sub_800F838(struct Sprite *sprite)
{
- u16 *arr = (u16 *)ewram;
+ u16 *arr = (u16 *)gSharedMem;
switch (sprite->data0)
{
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index 2a335ea63..ceac8ff24 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -293,9 +293,9 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
@@ -345,9 +345,9 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
@@ -680,8 +680,8 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + a * 16;
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 32);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
u16 *paletteSrc = (u16 *)ewram16400; // TODO: avoid casting?
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index ab96ada23..3378e4e0a 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -414,14 +414,14 @@ void sub_80AA280(u8 var) // no?
u8 i;
FillWindowRect_DefaultPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3);
- StringCopy(ewram, gMatsudaDebugMenu_StartText);
- StringAppend(ewram, &gUnknown_0203857D[var][0]);
+ StringCopy(gSharedMem, gMatsudaDebugMenu_StartText);
+ StringAppend(gSharedMem, &gUnknown_0203857D[var][0]);
for (i = 0; i < 4; i++)
{
if (var == i)
{
- sub_8003460(&gMenuWindow, ewram, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ sub_8003460(&gMenuWindow, gSharedMem, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
}
else
{
@@ -433,38 +433,38 @@ void sub_80AA280(u8 var) // no?
static void sub_80AA340(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
}
static void sub_80AA388(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
}
static void sub_80AA3D0(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
}
static void sub_80AA418(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
}
static void sub_80AA460(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
}
static void sub_80AA4A8(u8 var)
{
- ConvertIntToDecimalStringN(ewram, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
+ ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
}
static void sub_80AA4F0(u8 var1, u8 var2)
@@ -489,8 +489,8 @@ static void sub_80AA614(u8 var1, u8 var2)
{
u16 var = sub_80AE770(var1, var2);
- ConvertIntToDecimalStringN(ewram, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, ewram, 0xE2, 3, 0xC);
+ ConvertIntToDecimalStringN(gSharedMem, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, gSharedMem, 0xE2, 3, 0xC);
}
void sub_80AA658(u8 var)
diff --git a/src/engine/link.c b/src/engine/link.c
index c526baec7..002d397d2 100644
--- a/src/engine/link.c
+++ b/src/engine/link.c
@@ -506,7 +506,7 @@ static void ProcessRecvCmds(u8 unusedParam)
case 0x8888:
if (sBlockRecv[i].size > BLOCK_BUFFER_SIZE)
{
- u16 *buffer = (u16 *)ewram;
+ u16 *buffer = (u16 *)gSharedMem;
u16 j;
for (j = 0; j < CMD_LENGTH - 1; j++)
buffer[(sBlockRecv[i].pos / 2) + j] = gRecvCmds[j + 1][i];
diff --git a/src/engine/main.c b/src/engine/main.c
index d7c11b6c8..ea381cb31 100644
--- a/src/engine/main.c
+++ b/src/engine/main.c
@@ -70,6 +70,7 @@ bool8 gLinkVSyncDisabled;
u32 IntrMain_Buffer[0x200];
u8 gPcmDmaCounter;
+EWRAM_DATA u8 gSharedMem[0x20000] = {0};
EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL;
static void UpdateLinkAndCallCallbacks(void);
diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index 38912be86..a472eea3b 100644
--- a/src/engine/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
@@ -286,8 +286,8 @@ static void CB2_MysteryEventMenu(void)
case 11:
if (gReceivedRemoteLinkPlayers)
break;
- unkVal = RunMysteryEventScript(ewram);
- CpuFill32(0, ewram, 0x7D4);
+ unkVal = RunMysteryEventScript(gSharedMem);
+ CpuFill32(0, gSharedMem, 0x7D4);
if (!GetEventLoadMessage(gStringVar4, unkVal))
TrySavingData(NORMAL_SAVE);
gMain.state++;
diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c
index 06505c0c2..ba2d46546 100644
--- a/src/engine/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
@@ -266,7 +266,7 @@ static void VBlankCB_UpdateClockGraphics(void)
static bool8 VerifySectorWipe(u16 sector)
{
- u32 *ptr = (u32 *)&ewram;
+ u32 *ptr = (u32 *)&gSharedMem;
u16 i;
ReadFlash(sector, 0, ptr, 4096);
diff --git a/src/engine/trade.c b/src/engine/trade.c
index 63571ecac..7477b05ac 100644
--- a/src/engine/trade.c
+++ b/src/engine/trade.c
@@ -4000,7 +4000,7 @@ static void sub_804B2D0(u8 whichParty, u8 a1)
case 0:
species = GetMonData(pokemon, MON_DATA_SPECIES2);
personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)ewram, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gSharedMem, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
LoadCompressedObjectPalette(GetMonSpritePalStruct(pokemon));
gUnknown_03004828->tradeSpecies[whichParty] = species;
break;
@@ -4727,12 +4727,12 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->bg1hofs = 0;
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5);
LZDecompressVram(gUnknown_08D00000, BG_CHAR_ADDR(0));
- CpuCopy16(gUnknown_08D00524, buffer = (u16 *)ewram, 0x1000);
+ CpuCopy16(gUnknown_08D00524, buffer = (u16 *)gSharedMem, 0x1000);
LoadCompressedPalette(gUnknown_08D004E0, 0x70, 0x20);
FillPalette(0, 0, 2);
for (i = 0; i < 0x280; i ++)
buffer[i] |= 0x7000;
- DmaCopy16Defvars(3, ewram, BG_SCREEN_ADDR(5), 0x500);
+ DmaCopy16Defvars(3, gSharedMem, BG_SCREEN_ADDR(5), 0x500);
MenuZeroFillWindowRect(2, 15, 27, 18);
break;
case 6:
@@ -5704,8 +5704,8 @@ void sub_804E22C(void)
const u16 *src;
u16 *dest;
LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
- CpuCopy16(gUnknown_08D00524, ewram, 0x1000);
- src = (const u16 *)ewram;
+ CpuCopy16(gUnknown_08D00524, gSharedMem, 0x1000);
+ src = (const u16 *)gSharedMem;
dest = BG_SCREEN_ADDR(5);
DmaCopy16(3, src, dest, 0x500)
LoadCompressedPalette(gUnknown_08D004E0, 0, 32);
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index ef960c162..025d19ffc 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -68,7 +68,7 @@ extern const u16 gUnknown_083B5F8C[][4];
const u8 gBadgesTiles[] = INCBIN_U8("graphics/trainer_card/badges.4bpp");
// XXX: what is this?
-u8 *const ewram_ = ewram;
+u8 *const ewram_ = gSharedMem;
bool8 sub_8093864(struct Task *);
bool8 sub_80938A8(struct Task *);
diff --git a/src/field/berry_tag_screen.c b/src/field/berry_tag_screen.c
index 8241fe657..55405138d 100644
--- a/src/field/berry_tag_screen.c
+++ b/src/field/berry_tag_screen.c
@@ -28,7 +28,7 @@ struct Struct2000000
/*0x1FFFF*/ u8 var_1FFFF;
};
-extern struct Struct2000000 ewram;
+extern struct Struct2000000 gSharedMem;
extern u16 gUnknown_030041B4;
static EWRAM_DATA u8 gUnknown_0203932C = 0;
@@ -119,13 +119,13 @@ static bool8 sub_8146058(void)
case 5:
if (!MultistepInitMenuWindowContinue())
break;
- ewram.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
gMain.state += 1;
break;
case 6:
if (!sub_81462B8())
break;
- ewram.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
gMain.state += 1;
break;
case 7:
@@ -191,19 +191,19 @@ bool8 sub_81462B8(void)
u16 i;
void *addr;
- switch (ewram.var_1FFFF)
+ switch (gSharedMem.var_1FFFF)
{
case 0:
LZDecompressVram(gBerryCheck_Gfx, (void *)VRAM);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 1:
LZDecompressVram(gUnknown_08E788E4, (void *)VRAM + 0x2800);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 2:
LZDecompressVram(gUnknown_08E78A84, (void *)VRAM + 0x3000);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 3:
for (i = 0; i < 0x400; i++)
@@ -215,19 +215,19 @@ bool8 sub_81462B8(void)
}
addr = (void *)(VRAM + 0x3800);
DmaCopy16(3, gBGTilemapBuffers[2], addr, 0x800);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 4:
LoadCompressedPalette(gBerryCheck_Pal, 0, 96 * 2);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 5:
LoadCompressedObjectPic(&gUnknown_083C1F74);
- ewram.var_1FFFF += 1;
+ gSharedMem.var_1FFFF += 1;
break;
case 6:
LoadCompressedObjectPalette(&gUnknown_083C1F7C);
- ewram.var_1FFFF = 0;
+ gSharedMem.var_1FFFF = 0;
return TRUE;
}
diff --git a/src/field/decoration.c b/src/field/decoration.c
index 924c94b59..bdeaaf91d 100644
--- a/src/field/decoration.c
+++ b/src/field/decoration.c
@@ -1556,7 +1556,7 @@ const struct SpriteTemplate gSpriteTemplate_83ECA88 = {
const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C};
-u8 *const unref_label_083ECAA8[] = {ewram};
+u8 *const unref_label_083ECAA8[] = {gSharedMem};
// text
diff --git a/src/field/region_map.c b/src/field/region_map.c
index b5a3de563..d643c373d 100644
--- a/src/field/region_map.c
+++ b/src/field/region_map.c
@@ -1426,7 +1426,7 @@ static const struct UnknownStruct4 sUnknown_083E79C0[1] =
};
// XXX: what is this?
-static u8 *const ewram_ = ewram;
+static u8 *const ewram_ = gSharedMem;
static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons_Pal, 2};
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 4d97ccb51..d6b20feaa 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -15,7 +15,7 @@ struct UnkStruct1 {
/*0x02*/ s16 unk02;
};
-extern struct UnkStruct2000000 ewram;
+extern struct UnkStruct2000000 gSharedMem;
extern struct UnkStruct1 *gUnknown_083ED048[];
extern const u16 gPalette_83EDE24[];
@@ -40,7 +40,7 @@ void sub_8104CAC(u8 arg0) {
sub_8104DA4();
- task = &gTasks[ewram.unk3D];
+ task = &gTasks[gSharedMem.unk3D];
task->data[1] = arg0;
i = 0;
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index b5d36ad1e..398f62833 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -3710,7 +3710,7 @@ static void sub_80527BC(void)
gUnknown_020297E0 = 0;
gUnknown_020297DC = 2;
for (i = 0; i < 200; i++)
- ewram[i] = 0;
+ gSharedMem[i] = 0;
gUnknown_020297E8 = 0;
}
for (i = 0; i < 100; i++)
@@ -3719,7 +3719,7 @@ static void sub_80527BC(void)
gUnknown_020297E0++;
else
{
- u16* ewramPtr = ((u16*)(ewram));
+ u16* ewramPtr = ((u16*)(gSharedMem));
ewramPtr[gUnknown_020297E4] = gUnknown_020297E0;
gUnknown_020297E4++;
gUnknown_020297E0 = 0;
diff --git a/src/scene/intro.c b/src/scene/intro.c
index 04173b86a..c4bb1f9ea 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -1208,7 +1208,7 @@ static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
}
// TODO: use ewram define instead
-extern u8 ewram[][32];
+extern u8 gSharedMem[][32];
static void Task_IntroLoadPart3Streaks(u8 taskId)
{
@@ -1218,12 +1218,12 @@ static void Task_IntroLoadPart3Streaks(u8 taskId)
intro_reset_and_hide_bgs();
for (i = 0; i < 32; i++)
{
- ewram[0][i] = 0;
- ewram[1][i] = 17;
- ewram[2][i] = 34;
+ gSharedMem[0][i] = 0;
+ gSharedMem[1][i] = 17;
+ gSharedMem[2][i] = 34;
}
vram = (void *)VRAM;
- DmaCopy16(3, ewram, vram, 0x60);
+ DmaCopy16(3, gSharedMem, vram, 0x60);
for (i = 0; i < 0x280; i++)
((u16 *)(VRAM + 0x3000))[i] = 0xF001;
for (i = 0; i < 0x80; i++)