summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/bag.s431
-rw-r--r--asm/trainer_pokemon_sprites.s (renamed from asm/battle_dome_cards.s)0
-rw-r--r--data/bag/bag_window_pal.pal19
-rw-r--r--data/data_83FECCC.s29
-rw-r--r--data/trainer_pokemon_sprites.s25
-rw-r--r--include/bag.h4
-rw-r--r--include/item_menu.h12
-rw-r--r--ld_script.txt5
-rw-r--r--src/bag.c243
-rw-r--r--sym_ewram.txt5
10 files changed, 312 insertions, 461 deletions
diff --git a/asm/bag.s b/asm/bag.s
deleted file mode 100644
index 702de4e4a..000000000
--- a/asm/bag.s
+++ /dev/null
@@ -1,431 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810B858
-sub_810B858: @ 810B858
- push {r4,lr}
- ldr r0, _0810B86C @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x3
- beq _0810B874
- ldr r0, _0810B870 @ =gUnknown_84530C4
- bl InitWindows
- b _0810B87A
- .align 2, 0
-_0810B86C: .4byte gUnknown_203ACFC
-_0810B870: .4byte gUnknown_84530C4
-_0810B874:
- ldr r0, _0810B8E4 @ =gUnknown_84530E4
- bl InitWindows
-_0810B87A:
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x64
- movs r2, 0xE0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x6D
- movs r2, 0xD0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0x81
- movs r2, 0xC0
- bl sub_814FF2C
- ldr r0, _0810B8E8 @ =gUnknown_8453098
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_0810B8A8:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810B8A8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0
- ldr r3, _0810B8EC @ =gUnknown_203AD34
- movs r2, 0xFF
-_0810B8CC:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _0810B8CC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B8E4: .4byte gUnknown_84530E4
-_0810B8E8: .4byte gUnknown_8453098
-_0810B8EC: .4byte gUnknown_203AD34
- thumb_func_end sub_810B858
-
- thumb_func_start sub_810B8F0
-sub_810B8F0: @ 810B8F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _0810B954 @ =gUnknown_84530B8
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B954: .4byte gUnknown_84530B8
- thumb_func_end sub_810B8F0
-
- thumb_func_start sub_810B958
-sub_810B958: @ 810B958
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x48
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0810B990 @ =gUnknown_84530B8
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B990: .4byte gUnknown_84530B8
- thumb_func_end sub_810B958
-
- thumb_func_start sub_810B994
-sub_810B994: @ 810B994
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x81
- movs r3, 0xC
- bl SetWindowBorderStyle
- ldr r4, _0810B9D8 @ =gUnknown_84162E8
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r3, 0x40
- subs r3, r0
- lsrs r3, 1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B9D8: .4byte gUnknown_84162E8
- thumb_func_end sub_810B994
-
- thumb_func_start sub_810B9DC
-sub_810B9DC: @ 810B9DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r6, _0810BA10 @ =gUnknown_203AD34
- adds r4, r5, r6
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810BA2A
- adds r0, r5, r1
- lsls r0, 3
- ldr r1, _0810BA14 @ =gUnknown_8453104
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- cmp r5, 0x6
- beq _0810BA18
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x64
- movs r3, 0xE
- bl SetWindowBorderStyle
- b _0810BA24
- .align 2, 0
-_0810BA10: .4byte gUnknown_203AD34
-_0810BA14: .4byte gUnknown_8453104
-_0810BA18:
- ldrb r0, [r6, 0x6]
- movs r1, 0
- movs r2, 0x81
- movs r3, 0xC
- bl SetWindowBorderStyle
-_0810BA24:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_0810BA2A:
- ldr r0, _0810BA38 @ =gUnknown_203AD34
- adds r0, r5, r0
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA38: .4byte gUnknown_203AD34
- thumb_func_end sub_810B9DC
-
- thumb_func_start sub_810BA3C
-sub_810BA3C: @ 810BA3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810BA6C @ =gUnknown_203AD34
- adds r4, r0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BA6C: .4byte gUnknown_203AD34
- thumb_func_end sub_810BA3C
-
- thumb_func_start sub_810BA70
-sub_810BA70: @ 810BA70
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0810BA94 @ =gUnknown_203AD34
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810BA8C
- lsls r0, r1, 3
- ldr r1, _0810BA98 @ =gUnknown_8453104
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
-_0810BA8C:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA94: .4byte gUnknown_203AD34
-_0810BA98: .4byte gUnknown_8453104
- thumb_func_end sub_810BA70
-
- thumb_func_start sub_810BA9C
-sub_810BA9C: @ 810BA9C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BAD4 @ =gUnknown_203AD34
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0810BACE
- movs r1, 0
- bl sub_810F260
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
-_0810BACE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD4: .4byte gUnknown_203AD34
- thumb_func_end sub_810BA9C
-
- thumb_func_start sub_810BAD8
-sub_810BAD8: @ 810BAD8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BAE4 @ =gUnknown_203AD34
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810BAE4: .4byte gUnknown_203AD34
- thumb_func_end sub_810BAD8
-
- thumb_func_start sub_810BAE8
-sub_810BAE8: @ 810BAE8
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BB10 @ =gUnknown_845311C
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x64
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB10: .4byte gUnknown_845311C
- thumb_func_end sub_810BAE8
-
- thumb_func_start sub_810BB14
-sub_810BB14: @ 810BB14
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BB3C @ =gUnknown_8453124
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x64
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB3C: .4byte gUnknown_8453124
- thumb_func_end sub_810BB14
-
- thumb_func_start sub_810BB40
-sub_810BB40: @ 810BB40
- push {r4,lr}
- movs r0, 0x2
- movs r1, 0
- bl sub_810B9DC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810BB70 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0xC
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810BB40
-
- thumb_func_start sub_810BB74
-sub_810BB74: @ 810BB74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- movs r2, 0xE
- bl DrawTextBorderOuter
- pop {r0}
- bx r0
- thumb_func_end sub_810BB74
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_dome_cards.s b/asm/trainer_pokemon_sprites.s
index 3ff8f9318..3ff8f9318 100644
--- a/asm/battle_dome_cards.s
+++ b/asm/trainer_pokemon_sprites.s
diff --git a/data/bag/bag_window_pal.pal b/data/bag/bag_window_pal.pal
new file mode 100644
index 000000000..426ea279e
--- /dev/null
+++ b/data/bag/bag_window_pal.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+255 255 255
+255 255 255
+98 98 98
+213 213 205
+230 8 8
+255 189 115
+32 156 8
+148 246 148
+49 82 205
+164 197 246
+0 0 0
+0 0 0
+0 0 0
+255 156 148
+255 255 255
+189 90 82
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index a855e5f7f..3bdef180f 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -1,3 +1,5 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
.section .rodata
.align 2
@@ -3079,33 +3081,6 @@ gUnknown_8453092:: @ 8453092
gUnknown_8453094:: @ 8453094
.incbin "baserom.gba", 0x453094, 0x4
-gUnknown_8453098:: @ 8453098
- .incbin "baserom.gba", 0x453098, 0x20
-
-gUnknown_84530B8:: @ 84530B8
- .incbin "baserom.gba", 0x4530B8, 0xC
-
-gUnknown_84530C4:: @ 84530C4
- .incbin "baserom.gba", 0x4530C4, 0x20
-
-gUnknown_84530E4:: @ 84530E4
- .incbin "baserom.gba", 0x4530E4, 0x20
-
-gUnknown_8453104:: @ 8453104
- .incbin "baserom.gba", 0x453104, 0x18
-
-gUnknown_845311C:: @ 845311C
- .incbin "baserom.gba", 0x45311C, 0x8
-
-gUnknown_8453124:: @ 8453124
- .incbin "baserom.gba", 0x453124, 0x54
-
-gUnknown_8453178:: @ 8453178
- .incbin "baserom.gba", 0x453178, 0xC
-
-gUnknown_8453184:: @ 8453184
- .incbin "baserom.gba", 0x453184, 0x8
-
.section .rodata.8453F6C
// item_pc.o
diff --git a/data/trainer_pokemon_sprites.s b/data/trainer_pokemon_sprites.s
new file mode 100644
index 000000000..6d5477040
--- /dev/null
+++ b/data/trainer_pokemon_sprites.s
@@ -0,0 +1,25 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+ .section .rodata
+
+ .align 2
+gUnknown_845312C:: @ 845312C
+ window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x02a2
+ window_template 0x00, 0x06, 0x0f, 0x0e, 0x04, 0x0c, 0x02a2
+ window_template 0x00, 0x06, 0x0f, 0x0f, 0x04, 0x0c, 0x02da
+ window_template 0x00, 0x06, 0x0f, 0x10, 0x04, 0x0c, 0x0316
+ window_template 0x00, 0x06, 0x0f, 0x17, 0x04, 0x0c, 0x0356
+ window_template 0x00, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x020a
+ window_template 0x00, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x020a
+ window_template 0x00, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x020a
+ window_template 0x00, 0x16, 0x0b, 0x07, 0x08, 0x0f, 0x020a
+
+gUnknown_8453174::
+ .byte 16, 8, 4, 0
+
+ .align 2
+gUnknown_8453178:: @ 8453178
+ .space 12
+
+gUnknown_8453184:: @ 8453184
+ .byte 0, 0, 0, 0xc0, 0, 0, 0, 0
diff --git a/include/bag.h b/include/bag.h
new file mode 100644
index 000000000..fe29149e9
--- /dev/null
+++ b/include/bag.h
@@ -0,0 +1,4 @@
+#ifndef GUARD_BAG_H
+#define GUARD_BAG_H
+
+#endif //GUARD_BAG_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 9ebe3918a..efd0066ed 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -7,6 +7,18 @@
// Exported RAM declarations
+struct BagStruct
+{
+ void (*bagCallback)(void);
+ u8 location;
+ u8 pocket;
+ u16 unk6;
+ u8 cursorPosition[6];
+ u8 scrollPosition[6];
+};
+
+extern struct BagStruct gUnknown_203ACFC;
+
extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
diff --git a/ld_script.txt b/ld_script.txt
index 53385c39f..ece412fc7 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -212,8 +212,9 @@ SECTIONS {
asm/list_menu.o(.text);
asm/item_menu.o(.text);
asm/save_location.o(.text);
+ src/bag.o(.text);
asm/bag.o(.text);
- asm/battle_dome_cards.o(.text);
+ asm/trainer_pokemon_sprites.o(.text);
asm/unk_810C3A4.o(.text);
src/vs_seeker.o(.text);
asm/item_pc.o(.text);
@@ -389,6 +390,8 @@ SECTIONS {
data/data_83F5738.o(.rodata);
src/save.o(.rodata);
data/data_83FECCC.o(.rodata);
+ src/bag.o(.rodata);
+ data/trainer_pokemon_sprites.o(.rodata);
src/vs_seeker.o(.rodata);
data/data_83FECCC.o(.rodata.8453F6C);
src/quest_log.o(.rodata);
diff --git a/src/bag.c b/src/bag.c
new file mode 100644
index 000000000..003b30e8a
--- /dev/null
+++ b/src/bag.c
@@ -0,0 +1,243 @@
+#include "global.h"
+#include "task.h"
+#include "palette.h"
+#include "item_menu.h"
+#include "text.h"
+#include "window.h"
+#include "text_window.h"
+#include "menu_helpers.h"
+#include "menu.h"
+#include "money.h"
+#include "bag.h"
+
+extern const u8 gUnknown_84162E8[];
+
+const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
+const struct TextColor gUnknown_84530B8[] = {
+ {0, 1, 2},
+ {0, 2, 3},
+ {0, 3, 2},
+ {0, 8, 9}
+};
+const struct WindowTemplate gUnknown_84530C4[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 0x0b,
+ .tilemapTop = 0x01,
+ .width = 0x12,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x008a
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x05,
+ .tilemapTop = 0x0e,
+ .width = 0x19,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0162
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x09,
+ .height = 0x02,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x01f8
+ }, DUMMY_WIN_TEMPLATE
+};
+const struct WindowTemplate gUnknown_84530E4[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 0x0b,
+ .tilemapTop = 0x01,
+ .width = 0x12,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x008a
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x05,
+ .tilemapTop = 0x0e,
+ .width = 0x19,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0162
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x08,
+ .height = 0x02,
+ .paletteNum = 0x0C,
+ .baseBlock = 0x01f8
+ }, DUMMY_WIN_TEMPLATE
+};
+const struct WindowTemplate gUnknown_8453104[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 15,
+ .width = 5,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x242
+ }, {
+ .priority = 0,
+ .tilemapLeft = 17,
+ .tilemapTop = 9,
+ .width = 12,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x242
+ }, {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 8,
+ .height = 3,
+ .paletteNum = 0xC,
+ .baseBlock = 0x272
+ }
+};
+
+const struct WindowTemplate gUnknown_845311C = {
+ .priority = 0,
+ .tilemapLeft = 23,
+ .tilemapTop = 15,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
+};
+
+const struct WindowTemplate gUnknown_8453124 = {
+ .priority = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 9,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
+};
+
+EWRAM_DATA u8 gUnknown_203AD34[11] = {};
+
+void sub_810B858(void)
+{
+ u8 i;
+
+ if (gUnknown_203ACFC.location != 3)
+ InitWindows(gUnknown_84530C4);
+ else
+ InitWindows(gUnknown_84530E4);
+ DeactivateAllTextPrinters();
+ sub_815001C(0, 0x64, 0xE0);
+ sub_814FEAC(0, 0x6D, 0xD0);
+ sub_814FF2C(0, 0x81, 0xC0);
+ LoadPalette(gUnknown_8453098, 0xF0, 0x20);
+ for (i = 0; i < 3; i++)
+ {
+ FillWindowPixelBuffer(i, 0x00);
+ PutWindowTilemap(i);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ for (i = 0; i < 11; i++)
+ {
+ gUnknown_203AD34[i] = 0xFF;
+ }
+}
+
+void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
+{
+ AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_84530B8[colorIdx], speed, str);
+}
+
+void sub_810B958(const u8 * str)
+{
+ u32 x = 0x48 - GetStringWidth(1, str, 0);
+ box_print(2, 1, x / 2, 1, &gUnknown_84530B8[0], 0, str);
+}
+
+void sub_810B994(void)
+{
+ u32 x;
+ SetWindowBorderStyle(2, FALSE, 0x081, 0x0C);
+ x = 0x40 - GetStringWidth(0, gUnknown_84162E8, 0);
+ AddTextPrinterParameterized(2, 0, gUnknown_84162E8, x / 2, 1, 0, NULL);
+}
+
+u8 sub_810B9DC(u8 a0, u8 a1)
+{
+ if (gUnknown_203AD34[a0] == 0xFF)
+ {
+ gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
+ if (a0 != 6)
+ {
+ SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
+ }
+ else
+ {
+ SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ }
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BA3C(u8 a0)
+{
+ sub_810F4D8(gUnknown_203AD34[a0], FALSE);
+ ClearWindowTilemap(gUnknown_203AD34[a0]);
+ RemoveWindow(gUnknown_203AD34[a0]);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gUnknown_203AD34[a0] = 0xFF;
+}
+
+u8 sub_810BA70(u8 a0)
+{
+ if (gUnknown_203AD34[a0] == 0xFF)
+ {
+ gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]);
+ }
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BA9C(u8 a0)
+{
+ if (gUnknown_203AD34[a0] != 0xFF)
+ {
+ sub_810F260(gUnknown_203AD34[a0], FALSE);
+ ClearWindowTilemap(gUnknown_203AD34[a0]);
+ RemoveWindow(gUnknown_203AD34[a0]);
+ PutWindowTilemap(1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gUnknown_203AD34[a0] = 0xFF;
+
+ }
+}
+
+u8 sub_810BAD8(u8 a0)
+{
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs);
+}
+
+void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs);
+}
+
+void sub_810BB40(void)
+{
+ PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
+}
+
+void sub_810BB74(u8 windowId)
+{
+ DrawTextBorderOuter(windowId, 0x064, 0x0E);
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 016de3ab7..f301d9cc4 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1343,9 +1343,10 @@ gUnknown_203AD2C: @ 203AD2C
gSpecialVar_ItemId: @ 203AD30
.space 0x4
-gUnknown_203AD34: @ 203AD34
- .space 0xC
+ .align 2
+ .include "src/bag.o"
+ .align 2
gUnknown_203AD40: @ 203AD40
.space 0x18