summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/berry_blender.s447
-rw-r--r--data/data2.s1299
-rw-r--r--data/maps.s10
-rw-r--r--data/rom4.s66
-rw-r--r--data/tilesets.s8
-rw-r--r--data/tilesets/headers.inc116
-rw-r--r--data/trade.s774
-rw-r--r--ld_script.txt6
-rw-r--r--src/new_game.c10
9 files changed, 1378 insertions, 1358 deletions
diff --git a/data/berry_blender.s b/data/berry_blender.s
new file mode 100644
index 000000000..d346ab9cd
--- /dev/null
+++ b/data/berry_blender.s
@@ -0,0 +1,447 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08215C0C:: @ 8215C0C
+ .incbin "graphics/berry_blender/center.gbapal"
+
+ .align 2
+gUnknown_08215C2C:: @ 8215C2C
+ .incbin "graphics/berry_blender/center_map.bin"
+
+ .align 2
+gUnknown_0821602C:: @ 821602C
+ .incbin "graphics/berry_blender/outer.gbapal"
+
+ .incbin "graphics/unused/unknown/821604C.gbapal"
+
+ .space 0x1C0
+
+ .string "▶$"
+ .string " $"
+ .string "カッコイ$" @ "cool" (missing an イ at the end)
+ .string "カワイイ$" @ "cute"
+ .string "ウツクシ$" @ "beautiful" (missing an イ at the end)
+ .string "カシコイ$" @ "smart"
+ .string "タクマシ$" @ "tough" (missing an イ at the end)
+
+gUnknown_08216249:: @ 8216249
+ .string "\p$"
+
+@ unreferenced
+@ These appear to be the first names of four people who worked on the game.
+ .string "てつじ$", 10 @ Tetsuji (Ohta)
+ .string "あきと$", 10 @ Akito (Mori)
+ .string "シゲル$", 10 @ Shigeru (Ohmori)
+ .string "ヨシノリ$", 10 @ Yoshinori (Matsuda)
+
+UnknownText_2Pok:
+ .string "2Pok$"
+UnknownText_3Pok:
+ .string "3Pok$"
+UnknownText_4Pok:
+ .string "4Pok$"
+
+ .align 2
+gUnknown_08216284:: @ 8216284
+ .4byte UnknownText_2Pok
+ .4byte UnknownText_3Pok
+ .4byte UnknownText_4Pok
+
+@ unreferenced
+ .string "1P$", 4
+ .string "2P$", 4
+ .string "3P$", 4
+ .string "4P$", 4
+
+UnknownText_Mister:
+ .string "MISTER$"
+UnknownText_Laddie:
+ .string "LADDIE$"
+UnknownText_Lassie:
+ .string "LASSIE$"
+
+ .align 2
+gUnknown_082162B8:: @ 82162B8
+ .4byte UnknownText_Mister
+ .4byte UnknownText_Laddie
+ .4byte UnknownText_Lassie
+
+gUnknown_082162C4:: @ 82162C4
+ .string "{COLOR RED}$"
+
+gUnknown_082162C8:: @ 82162C8
+ .string "\n$"
+
+ .string " $"
+
+gUnknown_082162CC:: @ 82162CC
+ .byte -1, -1
+ .byte 1, -1
+ .byte -1, 1
+ .byte 1, 1
+
+gUnknown_082162D4:: @ 82162D4
+ .byte 2, 6
+ .byte 23, 6
+ .byte 2, 12
+ .byte 23, 12
+ .byte 1, 6
+ .byte 22, 6
+ .byte 1, 12
+ .byte 22, 12
+
+gUnknown_082162E4:: @ 82162E4
+ .byte 72, 32
+ .byte 168, 32
+ .byte 72, 128
+ .byte 168, 128
+
+gUnknown_082162EC:: @ 82162EC
+ .byte -1, 0, 1, -1
+ .byte -1, 0, 1, 2
+ .byte 0, 1, 2, 3
+
+ .align 1
+gUnknown_082162F8:: @ 82162F8
+ .2byte 0x0000, 0xC000, 0x4000, 0x8000
+
+gUnknown_08216300:: @ 8216300
+ .byte 1
+ .byte 1
+ .byte 0
+
+gUnknown_08216303:: @ 8216303
+ .byte 32
+ .byte 224
+ .byte 96
+ .byte 160
+ .byte 0
+
+ .align 2
+gUnknown_08216308:: @ 8216308
+ .4byte sub_804F8C8
+ .4byte sub_804F9F4
+ .4byte sub_804FB1C
+
+ .align 2
+gOamData_8216314:: @ 8216314
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821631C:: @ 821631C
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216324:: @ 8216324
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821632C:: @ 821632C
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216334:: @ 8216334
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821633C:: @ 821633C
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216350:: @ 8216350
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216364:: @ 8216364
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216378:: @ 8216378
+ obj_image_anim_frame 48, 2
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821638C:: @ 821638C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216394:: @ 8216394
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821639C:: @ 821639C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82163A4:: @ 82163A4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82163AC:: @ 82163AC
+ .4byte gSpriteAnim_821631C
+ .4byte gSpriteAnim_8216324
+ .4byte gSpriteAnim_821632C
+ .4byte gSpriteAnim_8216334
+ .4byte gSpriteAnim_821633C
+ .4byte gSpriteAnim_8216350
+ .4byte gSpriteAnim_8216364
+ .4byte gSpriteAnim_8216378
+ .4byte gSpriteAnim_821638C
+ .4byte gSpriteAnim_8216394
+ .4byte gSpriteAnim_821639C
+ .4byte gSpriteAnim_82163A4
+
+ .align 2
+gUnknown_082163DC:: @ 82163DC
+ obj_tiles gBerryBlenderArrowTiles, 0x800, 46545
+
+ .align 2
+gUnknown_082163E4:: @ 82163E4
+ obj_pal gBerryBlenderMiscPalette, 46546
+
+ .align 2
+gUnknown_082163EC:: @ 82163EC
+ obj_pal gBerryBlenderArrowPalette, 12312
+
+ .align 2
+gSpriteTemplate_82163F4:: @ 82163F4
+ spr_template 46545, 12312, gOamData_8216314, gSpriteAnimTable_82163AC, NULL, gDummySpriteAffineAnimTable, sub_8051C04
+
+ .align 2
+gOamData_821640C:: @ 821640C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8216414:: @ 8216414
+ obj_image_anim_frame 0, 20
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821641C:: @ 821641C
+ obj_image_anim_frame 4, 20, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216424:: @ 8216424
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821643C:: @ 821643C
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216444:: @ 8216444
+ .4byte gSpriteAnim_8216414
+ .4byte gSpriteAnim_821641C
+ .4byte gSpriteAnim_8216424
+ .4byte gSpriteAnim_821643C
+
+ .align 2
+gUnknown_08216454:: @ 8216454
+ obj_tiles gBerryBlenderMarubatsuTiles, 0x200, 48888
+
+ .align 2
+gSpriteTemplate_821645C:: @ 821645C
+ spr_template 48888, 46546, gOamData_821640C, gSpriteAnimTable_8216444, NULL, gDummySpriteAffineAnimTable, sub_8051650
+
+ .align 2
+gOamData_8216474:: @ 8216474
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821647C:: @ 821647C
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 3, 5
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216494:: @ 8216494
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164AC:: @ 82164AC
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 2, 2
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 3, 3
+ obj_image_anim_frame 2, 2
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164D0:: @ 82164D0
+ obj_image_anim_frame 5, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164D8:: @ 82164D8
+ obj_image_anim_frame 6, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82164E0:: @ 82164E0
+ .4byte gSpriteAnim_821647C
+ .4byte gSpriteAnim_8216494
+ .4byte gSpriteAnim_82164AC
+ .4byte gSpriteAnim_82164D0
+ .4byte gSpriteAnim_82164D8
+
+ .align 2
+gUnknown_082164F4:: @ 82164F4
+ obj_tiles gBerryBlenderParticlesTiles, 0xE0, 23456
+
+ .align 2
+gSpriteTemplate_82164FC:: @ 82164FC
+ spr_template 23456, 46546, gOamData_8216474, gSpriteAnimTable_82164E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_8216514:: @ 8216514
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821651C:: @ 821651C
+ obj_image_anim_frame 32, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216524:: @ 8216524
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821652C:: @ 821652C
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216534:: @ 8216534
+ .4byte gSpriteAnim_821651C
+ .4byte gSpriteAnim_8216524
+ .4byte gSpriteAnim_821652C
+
+ .align 2
+gUnknown_08216540:: @ 8216540
+ obj_tiles gBerryBlenderCountdownNumbersTiles, 0x600, 12345
+
+ .align 2
+gSpriteTemplate_8216548:: @ 8216548
+ spr_template 12345, 46546, gOamData_8216514, gSpriteAnimTable_8216534, NULL, gDummySpriteAffineAnimTable, sub_805181C
+
+ .align 2
+gOamData_8216560:: @ 8216560
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8216568:: @ 8216568
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216570:: @ 8216570
+ .4byte gSpriteAnim_8216568
+
+ .align 2
+gUnknown_08216574:: @ 8216574
+ obj_tiles gBerryBlenderStartTiles, 0x400, 12346
+
+ .align 2
+gSpriteTemplate_821657C:: @ 821657C
+ spr_template 12346, 46546, gOamData_8216560, gSpriteAnimTable_8216570, NULL, gDummySpriteAffineAnimTable, sub_80518CC
+
+ .align 1
+gUnknown_08216594:: @ 8216594
+ .2byte -10, 20, 10, 2, 1
+ .2byte 250, 20, 10, -2, 1
+ .2byte -10, 140, 10, 2, -1
+ .2byte 250, 140, 10, -2, -1
+
+gUnknown_082165BC:: @ 82165BC
+ .byte 4, 3, 2
+ .byte 0, 4, 3
+ .byte 1, 0, 4
+ .byte 2, 1, 0
+ .byte 3, 2, 1
+ .byte 0, 2, 3
+ .byte 1, 3, 4
+ .byte 2, 4, 0
+ .byte 3, 0, 1
+ .byte 4, 1, 2
+
+gUnknown_082165DA:: @ 82165DA
+ .byte 1, 1, 2, 3, 4
+
+gUnknown_082165DF:: @ 82165DF
+ .byte 0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15
+
+gUnknown_082165E9:: @ 82165E9
+ .byte 6, 6, 6, 6, 5
+
+gUnknown_082165EE:: @ 82165EE
+ .byte 3, 3, 3, 2, 2
+
+gUnknown_082165F3:: @ 82165F3
+ .byte 3, 3, 3, 3, 2
+
+gUnknown_082165F8:: @ 82165F8
+ .string " $"
+
+gOtherText_BPMAndDash:: @ 82165FA
+ .string "BPM$"
+ .string "-$"
+
+gUnknown_08216600:: @ 8216600
+ .string "\n$"
+
+ .string "\n$"
diff --git a/data/data2.s b/data/data2.s
index fe6d607e9..1ba00a93e 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -2638,1302 +2638,3 @@ gSpriteTemplate_820AAB4:: @ 820AAB4
spr_template 55009, 55009, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
spr_template 55010, 55010, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
spr_template 55011, 55011, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
-
- .align 2
- .byte 0x90, 0x08, 0x00, 0x00
- .byte 0xC0, 0x3A, 0x00, 0x00
- .byte 0x1C, 0x00, 0x00, 0x00
- .byte 0x30, 0x05, 0x00, 0x00
- .byte 0x24, 0x00, 0x00, 0x00
- .byte 0x64, 0x00, 0x00, 0x00
- .byte 0xD8, 0x04, 0x00, 0x00
-
- .align 1
-gTradeMovesBoxTilemap:: @ 820ABF0
- .incbin "graphics/trade/moves_box_map.bin"
-
- .align 1
-gTradePartyBoxTilemap:: @ 820ADEE
- .incbin "graphics/trade/party_box_map.bin"
-
- .align 2
-gTradeStripesBG2Tilemap:: @ 820AFEC
- .incbin "graphics/trade/stripes_bg2_map.bin"
-
- .align 2
-gTradeStripesBG3Tilemap:: @ 820B7EC
- .incbin "graphics/trade/stripes_bg3_map.bin"
-
- .align 2
-gOamData_820BFEC:: @ 820BFEC
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_820BFF4:: @ 820BFF4
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820BFFC:: @ 820BFFC
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C004:: @ 820C004
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C00C:: @ 820C00C
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C014:: @ 820C014
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C01C:: @ 820C01C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_820C024:: @ 820C024
- .4byte gSpriteAnim_820BFF4
- .4byte gSpriteAnim_820BFFC
- .4byte gSpriteAnim_820C004
- .4byte gSpriteAnim_820C00C
- .4byte gSpriteAnim_820C014
- .4byte gSpriteAnim_820C01C
-
- .align 2
-TradeScreenTextPalette: @ 820C03C
- .incbin "graphics/trade/text1.gbapal"
- .incbin "graphics/trade/text2.gbapal" @ unused?
-
- .align 2
-gUnknown_0820C07C:: @ 820C07C
- obj_tiles 0x0201d000, 256, 0x00c8
- obj_tiles 0x0201d100, 256, 0x00c9
- obj_tiles 0x0201d200, 256, 0x00ca
- obj_tiles 0x0201d300, 256, 0x00cb
- obj_tiles 0x0201d400, 256, 0x00cc
- obj_tiles 0x0201d500, 256, 0x00cd
- obj_tiles 0x0201d600, 256, 0x00ce
- obj_tiles 0x0201d700, 256, 0x00cf
- obj_tiles 0x0201d800, 256, 0x00d0
- obj_tiles 0x0201d900, 256, 0x00d1
- obj_tiles 0x0201da00, 256, 0x00d2
- obj_tiles 0x0201db00, 256, 0x00d3
- obj_tiles 0x0201dc00, 256, 0x00d4
-
- .align 2
-gSpritePalette_TradeScreenText:: @ 820C0E4
- obj_pal TradeScreenTextPalette, 4925
-
- .align 2
-gSpriteTemplate_820C0EC:: @ 820C0EC
- spr_template 200, 4925, gOamData_820BFEC, gSpriteAnimTable_820C024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_820C104:: @ 820C104
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_820C10C:: @ 820C10C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C114:: @ 820C114
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_820C11C:: @ 820C11C
- .4byte gSpriteAnim_820C10C
- .4byte gSpriteAnim_820C114
-
- .align 2
-gUnknown_0820C124:: @ 820C124
- obj_tiles gUnknown_08EA1DEC, 0x800, 300
-
- .align 2
-gUnknown_0820C12C:: @ 820C12C
- obj_pal gUnknown_08EA0328, 2345
-
- .align 2
-gSpriteTemplate_820C134:: @ 820C134
- spr_template 300, 2345, gOamData_820C104, gSpriteAnimTable_820C11C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0820C14C:: @ 820C14C
- .4byte TradeText_Cancel
- .4byte TradeText_ChoosePoke
- .4byte TradeText_Summary1
- .4byte TradeText_Trade1
- .4byte TradeText_CancelTradePrompt
- .4byte TradeText_PressBToExit
-
-@ This is used to determine the next mon to select when the D-Pad is
-@ pressed in a given direction.
-@ Note that the mons are laid out like this.
-@ 0-5 are the player's party and 6-11 are the trading partner's party.
-@ 12 is the cancel button.
-@ 0 1 6 7
-@ 2 3 8 9
-@ 4 5 10 11
-@ 12
-gTradeNextSelectedMonTable:: @ 820C164
- @ 0
- .byte 4, 2, 12, 12, 0, 0 @ up
- .byte 2, 4, 12, 12, 0, 0 @ down
- .byte 7, 6, 1, 0, 0, 0 @ left
- .byte 1, 6, 7, 0, 0, 0 @ right
- @ 1
- .byte 5, 3, 12, 12, 0, 0 @ up
- .byte 3, 5, 12, 12, 0, 0 @ down
- .byte 0, 7, 6, 1, 0, 0 @ left
- .byte 6, 7, 0, 1, 0, 0 @ right
- @ 2
- .byte 0, 0, 0, 0, 0, 0 @ up
- .byte 4, 0, 0, 0, 0, 0 @ down
- .byte 9, 8, 7, 6, 0, 0 @ left
- .byte 3, 1, 0, 0, 0, 0 @ right
- @ 3
- .byte 1, 1, 1, 1, 0, 0 @ up
- .byte 5, 1, 1, 1, 0, 0 @ down
- .byte 2, 9, 8, 7, 0, 0 @ left
- .byte 8, 9, 6, 6, 0, 0 @ right
- @ 4
- .byte 2, 2, 2, 2, 0, 0 @ up
- .byte 0, 0, 0, 0, 0, 0 @ down
- .byte 11, 10, 9, 8, 7, 6 @ left
- .byte 5, 3, 1, 0, 0, 0 @ right
- @ 5
- .byte 3, 3, 3, 3, 0, 0 @ up
- .byte 1, 1, 1, 1, 0, 0 @ down
- .byte 4, 4, 4, 4, 0, 0 @ left
- .byte 10, 8, 6, 0, 0, 0 @ right
- @ 6
- .byte 10, 8, 12, 0, 0, 0 @ up
- .byte 8, 10, 12, 0, 0, 0 @ down
- .byte 1, 0, 0, 0, 0, 0 @ left
- .byte 7, 0, 1, 0, 0, 0 @ right
- @ 7
- .byte 12, 0, 0, 0, 0, 0 @ up
- .byte 9, 12, 0, 0, 0, 0 @ down
- .byte 6, 0, 0, 0, 0, 0 @ left
- .byte 0, 0, 0, 0, 0, 0 @ right
- @ 8
- .byte 6, 0, 0, 0, 0, 0 @ up
- .byte 10, 6, 0, 0, 0, 0 @ down
- .byte 3, 2, 1, 0, 0, 0 @ left
- .byte 9, 7, 0, 0, 0, 0 @ right
- @ 9
- .byte 7, 0, 0, 0, 0, 0 @ up
- .byte 11, 12, 0, 0, 0, 0 @ down
- .byte 8, 0, 0, 0, 0, 0 @ left
- .byte 2, 1, 0, 0, 0, 0 @ right
- @ 10
- .byte 8, 0, 0, 0, 0, 0 @ up
- .byte 6, 0, 0, 0, 0, 0 @ down
- .byte 5, 4, 3, 2, 1, 0 @ left
- .byte 11, 9, 7, 0, 0, 0 @ right
- @ 11
- .byte 9, 0, 0, 0, 0, 0 @ up
- .byte 12, 0, 0, 0, 0, 0 @ down
- .byte 10, 0, 0, 0, 0, 0 @ left
- .byte 4, 2, 0, 0, 0, 0 @ right
- @ 12
- .byte 11, 9, 7, 6, 0, 0 @ up
- .byte 7, 6, 0, 0, 0, 0 @ down
- .byte 12, 0, 0, 0, 0, 0 @ left
- .byte 12, 0, 0, 0, 0, 0 @ right
-
-@ The coordinates are in units of tiles.
-@ These are used for both mon icons and the selected mon cursor,
-@ but the origins of the coordinates differ.
-gTradeMonSpriteCoords:: @ 820C29C
- @ left-side party
- .byte 1, 5
- .byte 8, 5
- .byte 1, 10
- .byte 8, 10
- .byte 1, 15
- .byte 8, 15
-
- @ right-side party
- .byte 16, 5
- .byte 23, 5
- .byte 16, 10
- .byte 23, 10
- .byte 16, 15
- .byte 23, 15
-
- @ cancel button
- .byte 23, 18
-
-gTradeLevelDisplayCoords:: @ 820C2B6
- @ left-side party
- .byte 5, 4
- .byte 12, 4
- .byte 5, 9
- .byte 12, 9
- .byte 5, 14
- .byte 12, 14
-
- @ right-side party
- .byte 20, 4
- .byte 27, 4
- .byte 20, 9
- .byte 27, 9
- .byte 20, 14
- .byte 27, 14
-
-gTradeMonBoxCoords:: @ 820C2CE
- @ left-side party
- .byte 1, 3
- .byte 8, 3
- .byte 1, 8
- .byte 8, 8
- .byte 1, 13
- .byte 8, 13
-
- @ right-side party
- .byte 16, 3
- .byte 23, 3
- .byte 16, 8
- .byte 23, 8
- .byte 16, 13
- .byte 23, 13
-
-gTradeUnknownSpriteCoords:: @ 820C2E6
- .byte 59, 10
- .byte 179, 10
- .byte 59, 10
- .byte 179, 10
-
- .align 2
-gUnknown_0820C2F0:: @ 820C2F0
- .4byte TradeText_LinkStandby
- .4byte TradeText_TradeCancelled
- .4byte TradeText_OnlyPoke
- .4byte TradeText_NonTradablePoke
- .4byte TradeText_WaitingForFriend
- .4byte TradeText_WantToTrade
-
-gTradeMessageWindowRects:: @ 820C308
- .byte 8, 7, 22, 12
- .byte 8, 7, 22, 12
- .byte 6, 7, 24, 12
- .byte 6, 7, 24, 12
- .byte 8, 7, 22, 12
- .byte 7, 7, 23, 12
-
- .align 2
-gUnknown_0820C320:: @ 820C320
- .4byte TradeText_Summary2, sub_804A9F4 @unknown
- .4byte TradeText_Trade2, sub_804AA00
-
-gUnknown_0820C330:: @ 820C330
- .byte 0, 14
- .byte 15, 29
-
-gUnknown_0820C334:: @ 820C334
- .byte 3, 5
- .byte 3, 7
- .byte 18, 5
- .byte 18, 7
-
-gOtherText_Terminator::
- .string "$"
-
-gOtherText_MaleSymbol3:: @ 820C33D
- .string "♂$"
-
-gOtherText_FemaleSymbol3:: @ 820C33F
- .string "♀$"
-
-gOtherText_GenderlessSymbol:: @ 820C341
- .string "$$"
-
- .align 2
- .4byte gTileBuffer
-
-@ Unused debug strings?
- .string "かいめの そうしん$", 13
- .string "かいめの じゅしん$", 13
- .string "ポケモンアイコンセット$", 13
- .string "OBJテキストセット$", 13
- .string "セルセット$", 13
- .string "OBJテキストADD$", 13
- .string "システムメッセージADD$", 13
- .string "はいけいセット$", 13
-
-@ Shedinja's Japanese name
-@ sub_8048D44 compares a pokemon name with this string
-gUnknown_0820C3B0:: @ 820C3B0
- .string "ヌケニン$"
-
- .string "こうかんせいりつ $" @ trade completed
- .string "だめだたらしいよ $" @ it's no good (trade failed maybe?)
-
-gUnknown_0820C3D1:: @ 820C3D1
- .byte 4, 3
- .byte 19, 3
-
- .align 2
-gTradeBallPalette:: @ 820C3D8
- .incbin "graphics/trade/ball.gbapal"
-
- .align 2
-gTradeBallTiles:: @ 820C3F8
- .incbin "graphics/trade/ball.4bpp"
-
- .align 2
-gUnknown_0820C9F8:: @ 820C9F8
- .incbin "graphics/trade/unknown.gbapal"
- .incbin "graphics/trade/gba.gbapal"
- .incbin "graphics/trade/shadow.gbapal"
- .space 32
- .incbin "graphics/trade/misc.gbapal"
-
- .align 2
-gUnknown_0820CA98:: @ 820CA98
- .incbin "graphics/trade/gba.4bpp"
- .incbin "graphics/trade/shadow.4bpp"
-
- .align 2
-gUnknown_0820DD98:: @ 820DD98
- .incbin "graphics/trade/pokeball_symbol.8bpp"
-
- .align 2
-gUnknown_0820F798:: @ 820F798
- .incbin "graphics/trade/shadow_map.bin"
-
- .align 2
-gUnknown_08210798:: @ 8210798
- .incbin "graphics/trade/gba_map.bin"
-
- .align 2
-gUnknown_08211798:: @ 8211798
- .incbin "graphics/trade/cable_closeup_map.bin"
-
- .align 2
-gUnknown_08211F98:: @ 8211F98
- .incbin "graphics/trade/pokeball_symbol_map.bin"
-
- .incbin "graphics/unused/unknown/8212098.gbapal"
-
- .align 2
-gTradeCableEndPalette:: @ 82120B8
- .incbin "graphics/trade/cable_end.gbapal"
-
- .incbin "graphics/unused/unknown/82120D8.gbapal"
-
- .space 32
-
- .align 2
-gTradeGlowPalette:: @ 8212118
- .incbin "graphics/trade/glow.gbapal"
-
- .align 2
-gTradeGlow1Tiles:: @ 8212138
- .incbin "graphics/trade/glow1.4bpp"
-
- .align 2
-gTradeGlow2Tiles:: @ 8212338
- .incbin "graphics/trade/glow2.4bpp"
-
- .align 2
-gTradeCableEndTiles:: @ 8212538
- .incbin "graphics/trade/cable_end.4bpp"
-
- .align 2
-gTradeGBAScreenTiles:: @ 8212738
- .incbin "graphics/trade/gba_screen.4bpp"
-
- .align 2
-gUnknown_08213738:: @ 8213738
- .incbin "graphics/trade/gba_affine.8bpp"
-
- .align 2
-gUnknown_08215778:: @ 8215778
- .incbin "graphics/trade/gba_affine_map.bin"
-
- .align 2
-gOamData_8215878:: @ 8215878
- .2byte 0x0100
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8215880:: @ 8215880
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 20, 3
- obj_image_anim_frame 24, 3
- obj_image_anim_frame 28, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 36, 3
- obj_image_anim_frame 40, 3
- obj_image_anim_frame 44, 3
- obj_image_anim_loop 1
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82158BC:: @ 82158BC
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 20, 3
- obj_image_anim_frame 24, 3
- obj_image_anim_frame 28, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 36, 3
- obj_image_anim_frame 40, 3
- obj_image_anim_frame 44, 3
- obj_image_anim_loop 2
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82158F8:: @ 82158F8
- .4byte gSpriteAnim_8215880
- .4byte gSpriteAnim_82158BC
-
- .align 2
-gSpriteAffineAnim_8215900:: @ 8215900
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8215910:: @ 8215910
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8215920:: @ 8215920
- obj_rot_scal_anim_frame 0x60, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
- obj_rot_scal_anim_frame 0x8, 0x0, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8215940:: @ 8215940
- .4byte gSpriteAffineAnim_8215900
- .4byte gSpriteAffineAnim_8215910
- .4byte gSpriteAffineAnim_8215920
-
- .align 2
-gUnknown_0821594C:: @ 821594C
- obj_tiles gTradeBallTiles, 0x600, 5557
-
- .align 2
-gUnknown_08215954:: @ 8215954
- obj_pal gTradeBallPalette, 5558
-
- .align 2
-gSpriteTemplate_821595C:: @ 821595C
- spr_template 5557, 5558, gOamData_8215878, gSpriteAnimTable_82158F8, NULL, gSpriteAffineAnimTable_8215940, sub_804D6BC
-
- .align 2
-gOamData_8215974:: @ 8215974
- .2byte 0x0500
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821597C:: @ 821597C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215984:: @ 8215984
- .4byte gSpriteAnim_821597C
-
- .align 2
-gSpriteAffineAnim_8215988:: @ 8215988
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 5
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 5
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_82159A0:: @ 82159A0
- .4byte gSpriteAffineAnim_8215988
-
- .align 2
-gUnknown_082159A4:: @ 82159A4
- obj_tiles gTradeGlow1Tiles, 0x200, 5550
-
- .align 2
-gUnknown_082159AC:: @ 82159AC
- obj_pal gTradeGlowPalette, 5551
-
- .align 2
-gUnknown_082159B4:: @ 82159B4
- obj_pal gTradeCableEndPalette, 5555
-
- .align 2
-gSpriteTemplate_82159BC:: @ 82159BC
- spr_template 5550, 5551, gOamData_8215974, gSpriteAnimTable_8215984, NULL, gSpriteAffineAnimTable_82159A0, sub_804B058
-
- .align 2
-gOamData_82159D4:: @ 82159D4
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_82159DC:: @ 82159DC
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82159E4:: @ 82159E4
- obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82159EC:: @ 82159EC
- .4byte gSpriteAnim_82159DC
- .4byte gSpriteAnim_82159E4
-
- .align 2
-gUnknown_082159F4:: @ 82159F4
- obj_tiles gTradeGlow2Tiles, 0x300, 5552
-
- .align 2
-gSpriteTemplate_82159FC:: @ 82159FC
- spr_template 5552, 5551, gOamData_82159D4, gSpriteAnimTable_82159EC, NULL, gDummySpriteAffineAnimTable, sub_804B07C
-
- .align 2
-gOamData_8215A14:: @ 8215A14
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8215A1C:: @ 8215A1C
- obj_image_anim_frame 0, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215A24:: @ 8215A24
- .4byte gSpriteAnim_8215A1C
-
- .align 2
-gUnknown_08215A28:: @ 8215A28
- obj_tiles gTradeCableEndTiles, 0x100, 5554
-
- .align 2
-gSpriteTemplate_8215A30:: @ 8215A30
- spr_template 5554, 5555, gOamData_8215A14, gSpriteAnimTable_8215A24, NULL, gDummySpriteAffineAnimTable, sub_804B0BC
-
- .align 2
-gOamData_8215A48:: @ 8215A48
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8215A50:: @ 8215A50
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 96, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215A74:: @ 8215A74
- .4byte gSpriteAnim_8215A50
-
- .align 2
-gUnknown_08215A78:: @ 8215A78
- obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
-
- .align 2
-gSpriteTemplate_8215A80:: @ 8215A80
- spr_template 5556, 5555, gOamData_8215A48, gSpriteAnimTable_8215A74, NULL, gDummySpriteAffineAnimTable, sub_804B104
-
- .align 1
-gTradeGlow2PaletteAnimTable:: @ 8215A98
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7FFF
-
- .align 2
-gSpriteAffineAnim_8215AB0:: @ 8215AB0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
- .4byte gSpriteAffineAnim_8215AB0
-
-@ 8215AC4
- .include "data/ingame_trades.inc"
-
-gTradeBallVerticalVelocityTable:: @ 8215BA0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 3
- .byte 3
- .byte 4
- .byte 4
- .byte 4
- .byte 4
- .byte -4
- .byte -4
- .byte -4
- .byte -3
- .byte -3
- .byte -3
- .byte -3
- .byte -2
- .byte -2
- .byte -2
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 3
- .byte 3
- .byte 4
- .byte 4
- .byte 4
- .byte 4
- .byte -4
- .byte -3
- .byte -3
- .byte -2
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 4
- .byte -4
- .byte -3
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 2
- .byte 3
-
- .align 2
-gUnknown_08215C0C:: @ 8215C0C
- .incbin "graphics/berry_blender/center.gbapal"
-
- .align 2
-gUnknown_08215C2C:: @ 8215C2C
- .incbin "graphics/berry_blender/center_map.bin"
-
- .align 2
-gUnknown_0821602C:: @ 821602C
- .incbin "graphics/berry_blender/outer.gbapal"
-
- .incbin "graphics/unused/unknown/821604C.gbapal"
-
- .space 0x1C0
-
- .string "▶$"
- .string " $"
- .string "カッコイ$" @ "cool" (missing an イ at the end)
- .string "カワイイ$" @ "cute"
- .string "ウツクシ$" @ "beautiful" (missing an イ at the end)
- .string "カシコイ$" @ "smart"
- .string "タクマシ$" @ "tough" (missing an イ at the end)
-
-gUnknown_08216249:: @ 8216249
- .string "\p$"
-
-@ unreferenced
-@ These appear to be the first names of four people who worked on the game.
- .string "てつじ$", 10 @ Tetsuji (Ohta)
- .string "あきと$", 10 @ Akito (Mori)
- .string "シゲル$", 10 @ Shigeru (Ohmori)
- .string "ヨシノリ$", 10 @ Yoshinori (Matsuda)
-
-UnknownText_2Pok:
- .string "2Pok$"
-UnknownText_3Pok:
- .string "3Pok$"
-UnknownText_4Pok:
- .string "4Pok$"
-
- .align 2
-gUnknown_08216284:: @ 8216284
- .4byte UnknownText_2Pok
- .4byte UnknownText_3Pok
- .4byte UnknownText_4Pok
-
-@ unreferenced
- .string "1P$", 4
- .string "2P$", 4
- .string "3P$", 4
- .string "4P$", 4
-
-UnknownText_Mister:
- .string "MISTER$"
-UnknownText_Laddie:
- .string "LADDIE$"
-UnknownText_Lassie:
- .string "LASSIE$"
-
- .align 2
-gUnknown_082162B8:: @ 82162B8
- .4byte UnknownText_Mister
- .4byte UnknownText_Laddie
- .4byte UnknownText_Lassie
-
-gUnknown_082162C4:: @ 82162C4
- .string "{COLOR RED}$"
-
-gUnknown_082162C8:: @ 82162C8
- .string "\n$"
-
- .string " $"
-
-gUnknown_082162CC:: @ 82162CC
- .byte -1, -1
- .byte 1, -1
- .byte -1, 1
- .byte 1, 1
-
-gUnknown_082162D4:: @ 82162D4
- .byte 2, 6
- .byte 23, 6
- .byte 2, 12
- .byte 23, 12
- .byte 1, 6
- .byte 22, 6
- .byte 1, 12
- .byte 22, 12
-
-gUnknown_082162E4:: @ 82162E4
- .byte 72, 32
- .byte 168, 32
- .byte 72, 128
- .byte 168, 128
-
-gUnknown_082162EC:: @ 82162EC
- .byte -1, 0, 1, -1
- .byte -1, 0, 1, 2
- .byte 0, 1, 2, 3
-
- .align 1
-gUnknown_082162F8:: @ 82162F8
- .2byte 0x0000, 0xC000, 0x4000, 0x8000
-
-gUnknown_08216300:: @ 8216300
- .byte 1
- .byte 1
- .byte 0
-
-gUnknown_08216303:: @ 8216303
- .byte 32
- .byte 224
- .byte 96
- .byte 160
- .byte 0
-
- .align 2
-gUnknown_08216308:: @ 8216308
- .4byte sub_804F8C8
- .4byte sub_804F9F4
- .4byte sub_804FB1C
-
- .align 2
-gOamData_8216314:: @ 8216314
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821631C:: @ 821631C
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216324:: @ 8216324
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821632C:: @ 821632C
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216334:: @ 8216334
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821633C:: @ 821633C
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216350:: @ 8216350
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216364:: @ 8216364
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216378:: @ 8216378
- obj_image_anim_frame 48, 2
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821638C:: @ 821638C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216394:: @ 8216394
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821639C:: @ 821639C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82163A4:: @ 82163A4
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82163AC:: @ 82163AC
- .4byte gSpriteAnim_821631C
- .4byte gSpriteAnim_8216324
- .4byte gSpriteAnim_821632C
- .4byte gSpriteAnim_8216334
- .4byte gSpriteAnim_821633C
- .4byte gSpriteAnim_8216350
- .4byte gSpriteAnim_8216364
- .4byte gSpriteAnim_8216378
- .4byte gSpriteAnim_821638C
- .4byte gSpriteAnim_8216394
- .4byte gSpriteAnim_821639C
- .4byte gSpriteAnim_82163A4
-
- .align 2
-gUnknown_082163DC:: @ 82163DC
- obj_tiles gBerryBlenderArrowTiles, 0x800, 46545
-
- .align 2
-gUnknown_082163E4:: @ 82163E4
- obj_pal gBerryBlenderMiscPalette, 46546
-
- .align 2
-gUnknown_082163EC:: @ 82163EC
- obj_pal gBerryBlenderArrowPalette, 12312
-
- .align 2
-gSpriteTemplate_82163F4:: @ 82163F4
- spr_template 46545, 12312, gOamData_8216314, gSpriteAnimTable_82163AC, NULL, gDummySpriteAffineAnimTable, sub_8051C04
-
- .align 2
-gOamData_821640C:: @ 821640C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8216414:: @ 8216414
- obj_image_anim_frame 0, 20
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821641C:: @ 821641C
- obj_image_anim_frame 4, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216424:: @ 8216424
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821643C:: @ 821643C
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216444:: @ 8216444
- .4byte gSpriteAnim_8216414
- .4byte gSpriteAnim_821641C
- .4byte gSpriteAnim_8216424
- .4byte gSpriteAnim_821643C
-
- .align 2
-gUnknown_08216454:: @ 8216454
- obj_tiles gBerryBlenderMarubatsuTiles, 0x200, 48888
-
- .align 2
-gSpriteTemplate_821645C:: @ 821645C
- spr_template 48888, 46546, gOamData_821640C, gSpriteAnimTable_8216444, NULL, gDummySpriteAffineAnimTable, sub_8051650
-
- .align 2
-gOamData_8216474:: @ 8216474
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821647C:: @ 821647C
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 3, 5
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216494:: @ 8216494
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 2, 4
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 2, 4
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164AC:: @ 82164AC
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 1, 2
- obj_image_anim_frame 2, 2
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 3, 3
- obj_image_anim_frame 2, 2
- obj_image_anim_frame 1, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164D0:: @ 82164D0
- obj_image_anim_frame 5, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164D8:: @ 82164D8
- obj_image_anim_frame 6, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82164E0:: @ 82164E0
- .4byte gSpriteAnim_821647C
- .4byte gSpriteAnim_8216494
- .4byte gSpriteAnim_82164AC
- .4byte gSpriteAnim_82164D0
- .4byte gSpriteAnim_82164D8
-
- .align 2
-gUnknown_082164F4:: @ 82164F4
- obj_tiles gBerryBlenderParticlesTiles, 0xE0, 23456
-
- .align 2
-gSpriteTemplate_82164FC:: @ 82164FC
- spr_template 23456, 46546, gOamData_8216474, gSpriteAnimTable_82164E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_8216514:: @ 8216514
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821651C:: @ 821651C
- obj_image_anim_frame 32, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216524:: @ 8216524
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821652C:: @ 821652C
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216534:: @ 8216534
- .4byte gSpriteAnim_821651C
- .4byte gSpriteAnim_8216524
- .4byte gSpriteAnim_821652C
-
- .align 2
-gUnknown_08216540:: @ 8216540
- obj_tiles gBerryBlenderCountdownNumbersTiles, 0x600, 12345
-
- .align 2
-gSpriteTemplate_8216548:: @ 8216548
- spr_template 12345, 46546, gOamData_8216514, gSpriteAnimTable_8216534, NULL, gDummySpriteAffineAnimTable, sub_805181C
-
- .align 2
-gOamData_8216560:: @ 8216560
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8216568:: @ 8216568
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216570:: @ 8216570
- .4byte gSpriteAnim_8216568
-
- .align 2
-gUnknown_08216574:: @ 8216574
- obj_tiles gBerryBlenderStartTiles, 0x400, 12346
-
- .align 2
-gSpriteTemplate_821657C:: @ 821657C
- spr_template 12346, 46546, gOamData_8216560, gSpriteAnimTable_8216570, NULL, gDummySpriteAffineAnimTable, sub_80518CC
-
- .align 1
-gUnknown_08216594:: @ 8216594
- .2byte -10, 20, 10, 2, 1
- .2byte 250, 20, 10, -2, 1
- .2byte -10, 140, 10, 2, -1
- .2byte 250, 140, 10, -2, -1
-
-gUnknown_082165BC:: @ 82165BC
- .byte 4, 3, 2
- .byte 0, 4, 3
- .byte 1, 0, 4
- .byte 2, 1, 0
- .byte 3, 2, 1
- .byte 0, 2, 3
- .byte 1, 3, 4
- .byte 2, 4, 0
- .byte 3, 0, 1
- .byte 4, 1, 2
-
-gUnknown_082165DA:: @ 82165DA
- .byte 1, 1, 2, 3, 4
-
-gUnknown_082165DF:: @ 82165DF
- .byte 0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15
-
-gUnknown_082165E9:: @ 82165E9
- .byte 6, 6, 6, 6, 5
-
-gUnknown_082165EE:: @ 82165EE
- .byte 3, 3, 3, 2, 2
-
-gUnknown_082165F3:: @ 82165F3
- .byte 3, 3, 3, 3, 2
-
-gUnknown_082165F8:: @ 82165F8
- .string " $"
-
-gOtherText_BPMAndDash:: @ 82165FA
- .string "BPM$"
- .string "-$"
-
-gUnknown_08216600:: @ 8216600
- .string "\n$"
-
- .string "\n$"
-
-@ used to initialize part of save block 1 when starting a new game
- .align 2
-gUnknown_08216604:: @ 8216604
- .space 11
- .byte 0xFF
- .space 10
- .byte 0xFF
- .space 9
-
- .align 2
-gDummyWarpData:: @ 8216624
- .byte -1
- .byte -1
- .byte -1
- .space 1
- .2byte -1
- .2byte -1
-
-@ unused, unknown data
- .byte 0xB0, 0x04, 0x00, 0x00
- .byte 0x10, 0x0E, 0x00, 0x00
- .byte 0xB0, 0x04, 0x00, 0x00
- .byte 0x60, 0x09, 0x00, 0x00
- .byte 0x32, 0x00, 0x00, 0x00
- .byte 0x50, 0x00, 0x00, 0x00
- .byte 0xD4, 0xFF, 0xFF, 0xFF
- .byte 0x2C, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0821664C:: @ 821664C
- .4byte 0, 0
- .4byte 0, 1
- .4byte 0, -1
- .4byte -1, 0
- .4byte 1, 0
- .4byte -1, 1
- .4byte 1, 1
- .4byte -1, -1
- .4byte 1, -1
-
- .align 2
-gUnknown_08216694:: @ 8216694
- .4byte REG_WIN0H
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
- .align 2
-gUnknown_082166A0:: @ 82166A0
- .4byte sub_8055C68
- .4byte sub_8055C88
- .4byte sub_8055C8C
-
- .align 2
-gUnknown_082166AC:: @ 82166AC
- .4byte sub_8055CAC
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CAC
- .4byte sub_8055CAC
- .4byte sub_8055D18
- .4byte sub_8055D18
- .4byte sub_8055D18
- .4byte sub_8055D18
-
- .align 2
-gUnknown_082166D8:: @ 82166D8
- .4byte sub_8055D30
- .4byte sub_8055D38
-
-@ 82166E0
- .include "data/tilesets/graphics.inc"
-
-@ 8259C1C
- .include "data/tilesets/metatiles.inc"
-
-@ 8286CF4
- .include "data/tilesets/headers.inc"
-
- .include "data/maps/_assets.inc"
- .include "data/maps/attributes_table.inc"
- .include "data/maps/headers.inc"
- .include "data/maps/_groups.inc"
- .include "data/maps/connections.inc"
diff --git a/data/maps.s b/data/maps.s
new file mode 100644
index 000000000..a8074c02a
--- /dev/null
+++ b/data/maps.s
@@ -0,0 +1,10 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/maps/_assets.inc"
+ .include "data/maps/attributes_table.inc"
+ .include "data/maps/headers.inc"
+ .include "data/maps/_groups.inc"
+ .include "data/maps/connections.inc"
diff --git a/data/rom4.s b/data/rom4.s
new file mode 100644
index 000000000..6f883c64c
--- /dev/null
+++ b/data/rom4.s
@@ -0,0 +1,66 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gDummyWarpData:: @ 8216624
+ .byte -1
+ .byte -1
+ .byte -1
+ .space 1
+ .2byte -1
+ .2byte -1
+
+@ unused, unknown data
+ .byte 0xB0, 0x04, 0x00, 0x00
+ .byte 0x10, 0x0E, 0x00, 0x00
+ .byte 0xB0, 0x04, 0x00, 0x00
+ .byte 0x60, 0x09, 0x00, 0x00
+ .byte 0x32, 0x00, 0x00, 0x00
+ .byte 0x50, 0x00, 0x00, 0x00
+ .byte 0xD4, 0xFF, 0xFF, 0xFF
+ .byte 0x2C, 0x00, 0x00, 0x00
+
+ .align 2
+gUnknown_0821664C:: @ 821664C
+ .4byte 0, 0
+ .4byte 0, 1
+ .4byte 0, -1
+ .4byte -1, 0
+ .4byte 1, 0
+ .4byte -1, 1
+ .4byte 1, 1
+ .4byte -1, -1
+ .4byte 1, -1
+
+ .align 2
+gUnknown_08216694:: @ 8216694
+ .4byte REG_WIN0H
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+
+ .align 2
+gUnknown_082166A0:: @ 82166A0
+ .4byte sub_8055C68
+ .4byte sub_8055C88
+ .4byte sub_8055C8C
+
+ .align 2
+gUnknown_082166AC:: @ 82166AC
+ .4byte sub_8055CAC
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CAC
+ .4byte sub_8055CAC
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+
+ .align 2
+gUnknown_082166D8:: @ 82166D8
+ .4byte sub_8055D30
+ .4byte sub_8055D38
diff --git a/data/tilesets.s b/data/tilesets.s
new file mode 100644
index 000000000..443686234
--- /dev/null
+++ b/data/tilesets.s
@@ -0,0 +1,8 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/tilesets/graphics.inc"
+ .include "data/tilesets/metatiles.inc"
+ .include "data/tilesets/headers.inc"
diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc
index 69e11ac20..8965b1025 100644
--- a/data/tilesets/headers.inc
+++ b/data/tilesets/headers.inc
@@ -1,6 +1,6 @@
.align 2
-gTileset_General: @ 8286CF4
+gTileset_General:: @ 8286CF4
.byte TRUE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -12,7 +12,7 @@ gTileset_General: @ 8286CF4
.align 2
-gTileset_Petalburg: @ 8286D0C
+gTileset_Petalburg:: @ 8286D0C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -24,7 +24,7 @@ gTileset_Petalburg: @ 8286D0C
.align 2
-gTileset_Rustboro: @ 8286D24
+gTileset_Rustboro:: @ 8286D24
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -36,7 +36,7 @@ gTileset_Rustboro: @ 8286D24
.align 2
-gTileset_Dewford: @ 8286D3C
+gTileset_Dewford:: @ 8286D3C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -48,7 +48,7 @@ gTileset_Dewford: @ 8286D3C
.align 2
-gTileset_Slateport: @ 8286D54
+gTileset_Slateport:: @ 8286D54
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -60,7 +60,7 @@ gTileset_Slateport: @ 8286D54
.align 2
-gTileset_Mauville: @ 8286D6C
+gTileset_Mauville:: @ 8286D6C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -72,7 +72,7 @@ gTileset_Mauville: @ 8286D6C
.align 2
-gTileset_Lavaridge: @ 8286D84
+gTileset_Lavaridge:: @ 8286D84
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -84,7 +84,7 @@ gTileset_Lavaridge: @ 8286D84
.align 2
-gTileset_Fallarbor: @ 8286D9C
+gTileset_Fallarbor:: @ 8286D9C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -96,7 +96,7 @@ gTileset_Fallarbor: @ 8286D9C
.align 2
-gTileset_Fortree: @ 8286DB4
+gTileset_Fortree:: @ 8286DB4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -108,7 +108,7 @@ gTileset_Fortree: @ 8286DB4
.align 2
-gTileset_Lilycove: @ 8286DCC
+gTileset_Lilycove:: @ 8286DCC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -120,7 +120,7 @@ gTileset_Lilycove: @ 8286DCC
.align 2
-gTileset_Mossdeep: @ 8286DE4
+gTileset_Mossdeep:: @ 8286DE4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -132,7 +132,7 @@ gTileset_Mossdeep: @ 8286DE4
.align 2
-gTileset_EverGrande: @ 8286DFC
+gTileset_EverGrande:: @ 8286DFC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -144,7 +144,7 @@ gTileset_EverGrande: @ 8286DFC
.align 2
-gTileset_Pacifidlog: @ 8286E14
+gTileset_Pacifidlog:: @ 8286E14
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -156,7 +156,7 @@ gTileset_Pacifidlog: @ 8286E14
.align 2
-gTileset_Sootopolis: @ 8286E2C
+gTileset_Sootopolis:: @ 8286E2C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -168,7 +168,7 @@ gTileset_Sootopolis: @ 8286E2C
.align 2
-gTileset_Building: @ 8286E44
+gTileset_Building:: @ 8286E44
.byte TRUE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -180,7 +180,7 @@ gTileset_Building: @ 8286E44
.align 2
-gTileset_Shop: @ 8286E5C
+gTileset_Shop:: @ 8286E5C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -192,7 +192,7 @@ gTileset_Shop: @ 8286E5C
.align 2
-gTileset_PokemonCenter: @ 8286E74
+gTileset_PokemonCenter:: @ 8286E74
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -204,7 +204,7 @@ gTileset_PokemonCenter: @ 8286E74
.align 2
-gTileset_Cave: @ 8286E8C
+gTileset_Cave:: @ 8286E8C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -216,7 +216,7 @@ gTileset_Cave: @ 8286E8C
.align 2
-gTileset_PokemonSchool: @ 8286EA4
+gTileset_PokemonSchool:: @ 8286EA4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -228,7 +228,7 @@ gTileset_PokemonSchool: @ 8286EA4
.align 2
-gTileset_PokemonFanClub: @ 8286EBC
+gTileset_PokemonFanClub:: @ 8286EBC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -240,7 +240,7 @@ gTileset_PokemonFanClub: @ 8286EBC
.align 2
-gTileset_Unused1: @ 8286ED4
+gTileset_Unused1:: @ 8286ED4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -252,7 +252,7 @@ gTileset_Unused1: @ 8286ED4
.align 2
-gTileset_MeteorFalls: @ 8286EEC
+gTileset_MeteorFalls:: @ 8286EEC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -264,7 +264,7 @@ gTileset_MeteorFalls: @ 8286EEC
.align 2
-gTileset_OceanicMuseum: @ 8286F04
+gTileset_OceanicMuseum:: @ 8286F04
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -276,7 +276,7 @@ gTileset_OceanicMuseum: @ 8286F04
.align 2
-gTileset_CableClub: @ 8286F1C
+gTileset_CableClub:: @ 8286F1C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -288,7 +288,7 @@ gTileset_CableClub: @ 8286F1C
.align 2
-gTileset_SeashoreHouse: @ 8286F34
+gTileset_SeashoreHouse:: @ 8286F34
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -300,7 +300,7 @@ gTileset_SeashoreHouse: @ 8286F34
.align 2
-gTileset_PrettyPetalFlowerShop: @ 8286F4C
+gTileset_PrettyPetalFlowerShop:: @ 8286F4C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -312,7 +312,7 @@ gTileset_PrettyPetalFlowerShop: @ 8286F4C
.align 2
-gTileset_PokemonDayCare: @ 8286F64
+gTileset_PokemonDayCare:: @ 8286F64
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -324,7 +324,7 @@ gTileset_PokemonDayCare: @ 8286F64
.align 2
-gTileset_Facility: @ 8286F7C
+gTileset_Facility:: @ 8286F7C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -336,7 +336,7 @@ gTileset_Facility: @ 8286F7C
.align 2
-gTileset_BikeShop: @ 8286F94
+gTileset_BikeShop:: @ 8286F94
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -348,7 +348,7 @@ gTileset_BikeShop: @ 8286F94
.align 2
-gTileset_RusturfTunnel: @ 8286FAC
+gTileset_RusturfTunnel:: @ 8286FAC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -360,7 +360,7 @@ gTileset_RusturfTunnel: @ 8286FAC
.align 2
-gTileset_SecretBaseBrownCave: @ 8286FC4
+gTileset_SecretBaseBrownCave:: @ 8286FC4
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -372,7 +372,7 @@ gTileset_SecretBaseBrownCave: @ 8286FC4
.align 2
-gTileset_SecretBaseTree: @ 8286FDC
+gTileset_SecretBaseTree:: @ 8286FDC
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -384,7 +384,7 @@ gTileset_SecretBaseTree: @ 8286FDC
.align 2
-gTileset_SecretBaseShrub: @ 8286FF4
+gTileset_SecretBaseShrub:: @ 8286FF4
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -396,7 +396,7 @@ gTileset_SecretBaseShrub: @ 8286FF4
.align 2
-gTileset_SecretBaseBlueCave: @ 828700C
+gTileset_SecretBaseBlueCave:: @ 828700C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -408,7 +408,7 @@ gTileset_SecretBaseBlueCave: @ 828700C
.align 2
-gTileset_SecretBaseYellowCave: @ 8287024
+gTileset_SecretBaseYellowCave:: @ 8287024
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -420,7 +420,7 @@ gTileset_SecretBaseYellowCave: @ 8287024
.align 2
-gTileset_SecretBaseRedCave: @ 828703C
+gTileset_SecretBaseRedCave:: @ 828703C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -432,7 +432,7 @@ gTileset_SecretBaseRedCave: @ 828703C
.align 2
-gTileset_InsideOfTruck: @ 8287054
+gTileset_InsideOfTruck:: @ 8287054
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -444,7 +444,7 @@ gTileset_InsideOfTruck: @ 8287054
.align 2
-gTileset_Unused2: @ 828706C
+gTileset_Unused2:: @ 828706C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -456,7 +456,7 @@ gTileset_Unused2: @ 828706C
.align 2
-gTileset_Contest: @ 8287084
+gTileset_Contest:: @ 8287084
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -468,7 +468,7 @@ gTileset_Contest: @ 8287084
.align 2
-gTileset_LilycoveMuseum: @ 828709C
+gTileset_LilycoveMuseum:: @ 828709C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -480,7 +480,7 @@ gTileset_LilycoveMuseum: @ 828709C
.align 2
-gTileset_BrendansMaysHouse: @ 82870B4
+gTileset_BrendansMaysHouse:: @ 82870B4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -492,7 +492,7 @@ gTileset_BrendansMaysHouse: @ 82870B4
.align 2
-gTileset_Lab: @ 82870CC
+gTileset_Lab:: @ 82870CC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -504,7 +504,7 @@ gTileset_Lab: @ 82870CC
.align 2
-gTileset_Underwater: @ 82870E4
+gTileset_Underwater:: @ 82870E4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -516,7 +516,7 @@ gTileset_Underwater: @ 82870E4
.align 2
-gTileset_PetalburgGym: @ 82870FC
+gTileset_PetalburgGym:: @ 82870FC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -528,7 +528,7 @@ gTileset_PetalburgGym: @ 82870FC
.align 2
-gTileset_SootopolisGym: @ 8287114
+gTileset_SootopolisGym:: @ 8287114
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -540,7 +540,7 @@ gTileset_SootopolisGym: @ 8287114
.align 2
-gTileset_GenericBuilding: @ 828712C
+gTileset_GenericBuilding:: @ 828712C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -552,7 +552,7 @@ gTileset_GenericBuilding: @ 828712C
.align 2
-gTileset_MauvilleGameCorner: @ 8287144
+gTileset_MauvilleGameCorner:: @ 8287144
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -564,7 +564,7 @@ gTileset_MauvilleGameCorner: @ 8287144
.align 2
-gTileset_RustboroGym: @ 828715C
+gTileset_RustboroGym:: @ 828715C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -576,7 +576,7 @@ gTileset_RustboroGym: @ 828715C
.align 2
-gTileset_DewfordGym: @ 8287174
+gTileset_DewfordGym:: @ 8287174
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -588,7 +588,7 @@ gTileset_DewfordGym: @ 8287174
.align 2
-gTileset_MauvilleGym: @ 828718C
+gTileset_MauvilleGym:: @ 828718C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -600,7 +600,7 @@ gTileset_MauvilleGym: @ 828718C
.align 2
-gTileset_LavaridgeGym: @ 82871A4
+gTileset_LavaridgeGym:: @ 82871A4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -612,7 +612,7 @@ gTileset_LavaridgeGym: @ 82871A4
.align 2
-gTileset_TrickHousePuzzle: @ 82871BC
+gTileset_TrickHousePuzzle:: @ 82871BC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -624,7 +624,7 @@ gTileset_TrickHousePuzzle: @ 82871BC
.align 2
-gTileset_FortreeGym: @ 82871D4
+gTileset_FortreeGym:: @ 82871D4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -636,7 +636,7 @@ gTileset_FortreeGym: @ 82871D4
.align 2
-gTileset_MossdeepGym: @ 82871EC
+gTileset_MossdeepGym:: @ 82871EC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -648,7 +648,7 @@ gTileset_MossdeepGym: @ 82871EC
.align 2
-gTileset_Ship: @ 8287204
+gTileset_Ship:: @ 8287204
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -660,7 +660,7 @@ gTileset_Ship: @ 8287204
.align 2
-gTileset_SecretBase: @ 828721C
+gTileset_SecretBase:: @ 828721C
.byte FALSE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -672,7 +672,7 @@ gTileset_SecretBase: @ 828721C
.align 2
-gTileset_EliteFour: @ 8287234
+gTileset_EliteFour:: @ 8287234
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -684,7 +684,7 @@ gTileset_EliteFour: @ 8287234
.align 2
-gTileset_BattleTower: @ 828724C
+gTileset_BattleTower:: @ 828724C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
diff --git a/data/trade.s b/data/trade.s
new file mode 100644
index 000000000..8f96a72b1
--- /dev/null
+++ b/data/trade.s
@@ -0,0 +1,774 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+ .byte 0x90, 0x08, 0x00, 0x00
+ .byte 0xC0, 0x3A, 0x00, 0x00
+ .byte 0x1C, 0x00, 0x00, 0x00
+ .byte 0x30, 0x05, 0x00, 0x00
+ .byte 0x24, 0x00, 0x00, 0x00
+ .byte 0x64, 0x00, 0x00, 0x00
+ .byte 0xD8, 0x04, 0x00, 0x00
+
+ .align 1
+gTradeMovesBoxTilemap:: @ 820ABF0
+ .incbin "graphics/trade/moves_box_map.bin"
+
+ .align 1
+gTradePartyBoxTilemap:: @ 820ADEE
+ .incbin "graphics/trade/party_box_map.bin"
+
+ .align 2
+gTradeStripesBG2Tilemap:: @ 820AFEC
+ .incbin "graphics/trade/stripes_bg2_map.bin"
+
+ .align 2
+gTradeStripesBG3Tilemap:: @ 820B7EC
+ .incbin "graphics/trade/stripes_bg3_map.bin"
+
+ .align 2
+gOamData_820BFEC:: @ 820BFEC
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_820BFF4:: @ 820BFF4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820BFFC:: @ 820BFFC
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C004:: @ 820C004
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C00C:: @ 820C00C
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C014:: @ 820C014
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C01C:: @ 820C01C
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_820C024:: @ 820C024
+ .4byte gSpriteAnim_820BFF4
+ .4byte gSpriteAnim_820BFFC
+ .4byte gSpriteAnim_820C004
+ .4byte gSpriteAnim_820C00C
+ .4byte gSpriteAnim_820C014
+ .4byte gSpriteAnim_820C01C
+
+ .align 2
+TradeScreenTextPalette: @ 820C03C
+ .incbin "graphics/trade/text1.gbapal"
+ .incbin "graphics/trade/text2.gbapal" @ unused?
+
+ .align 2
+gUnknown_0820C07C:: @ 820C07C
+ obj_tiles 0x0201d000, 256, 0x00c8
+ obj_tiles 0x0201d100, 256, 0x00c9
+ obj_tiles 0x0201d200, 256, 0x00ca
+ obj_tiles 0x0201d300, 256, 0x00cb
+ obj_tiles 0x0201d400, 256, 0x00cc
+ obj_tiles 0x0201d500, 256, 0x00cd
+ obj_tiles 0x0201d600, 256, 0x00ce
+ obj_tiles 0x0201d700, 256, 0x00cf
+ obj_tiles 0x0201d800, 256, 0x00d0
+ obj_tiles 0x0201d900, 256, 0x00d1
+ obj_tiles 0x0201da00, 256, 0x00d2
+ obj_tiles 0x0201db00, 256, 0x00d3
+ obj_tiles 0x0201dc00, 256, 0x00d4
+
+ .align 2
+gSpritePalette_TradeScreenText:: @ 820C0E4
+ obj_pal TradeScreenTextPalette, 4925
+
+ .align 2
+gSpriteTemplate_820C0EC:: @ 820C0EC
+ spr_template 200, 4925, gOamData_820BFEC, gSpriteAnimTable_820C024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_820C104:: @ 820C104
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_820C10C:: @ 820C10C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C114:: @ 820C114
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_820C11C:: @ 820C11C
+ .4byte gSpriteAnim_820C10C
+ .4byte gSpriteAnim_820C114
+
+ .align 2
+gUnknown_0820C124:: @ 820C124
+ obj_tiles gUnknown_08EA1DEC, 0x800, 300
+
+ .align 2
+gUnknown_0820C12C:: @ 820C12C
+ obj_pal gUnknown_08EA0328, 2345
+
+ .align 2
+gSpriteTemplate_820C134:: @ 820C134
+ spr_template 300, 2345, gOamData_820C104, gSpriteAnimTable_820C11C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_0820C14C:: @ 820C14C
+ .4byte TradeText_Cancel
+ .4byte TradeText_ChoosePoke
+ .4byte TradeText_Summary1
+ .4byte TradeText_Trade1
+ .4byte TradeText_CancelTradePrompt
+ .4byte TradeText_PressBToExit
+
+@ This is used to determine the next mon to select when the D-Pad is
+@ pressed in a given direction.
+@ Note that the mons are laid out like this.
+@ 0-5 are the player's party and 6-11 are the trading partner's party.
+@ 12 is the cancel button.
+@ 0 1 6 7
+@ 2 3 8 9
+@ 4 5 10 11
+@ 12
+gTradeNextSelectedMonTable:: @ 820C164
+ @ 0
+ .byte 4, 2, 12, 12, 0, 0 @ up
+ .byte 2, 4, 12, 12, 0, 0 @ down
+ .byte 7, 6, 1, 0, 0, 0 @ left
+ .byte 1, 6, 7, 0, 0, 0 @ right
+ @ 1
+ .byte 5, 3, 12, 12, 0, 0 @ up
+ .byte 3, 5, 12, 12, 0, 0 @ down
+ .byte 0, 7, 6, 1, 0, 0 @ left
+ .byte 6, 7, 0, 1, 0, 0 @ right
+ @ 2
+ .byte 0, 0, 0, 0, 0, 0 @ up
+ .byte 4, 0, 0, 0, 0, 0 @ down
+ .byte 9, 8, 7, 6, 0, 0 @ left
+ .byte 3, 1, 0, 0, 0, 0 @ right
+ @ 3
+ .byte 1, 1, 1, 1, 0, 0 @ up
+ .byte 5, 1, 1, 1, 0, 0 @ down
+ .byte 2, 9, 8, 7, 0, 0 @ left
+ .byte 8, 9, 6, 6, 0, 0 @ right
+ @ 4
+ .byte 2, 2, 2, 2, 0, 0 @ up
+ .byte 0, 0, 0, 0, 0, 0 @ down
+ .byte 11, 10, 9, 8, 7, 6 @ left
+ .byte 5, 3, 1, 0, 0, 0 @ right
+ @ 5
+ .byte 3, 3, 3, 3, 0, 0 @ up
+ .byte 1, 1, 1, 1, 0, 0 @ down
+ .byte 4, 4, 4, 4, 0, 0 @ left
+ .byte 10, 8, 6, 0, 0, 0 @ right
+ @ 6
+ .byte 10, 8, 12, 0, 0, 0 @ up
+ .byte 8, 10, 12, 0, 0, 0 @ down
+ .byte 1, 0, 0, 0, 0, 0 @ left
+ .byte 7, 0, 1, 0, 0, 0 @ right
+ @ 7
+ .byte 12, 0, 0, 0, 0, 0 @ up
+ .byte 9, 12, 0, 0, 0, 0 @ down
+ .byte 6, 0, 0, 0, 0, 0 @ left
+ .byte 0, 0, 0, 0, 0, 0 @ right
+ @ 8
+ .byte 6, 0, 0, 0, 0, 0 @ up
+ .byte 10, 6, 0, 0, 0, 0 @ down
+ .byte 3, 2, 1, 0, 0, 0 @ left
+ .byte 9, 7, 0, 0, 0, 0 @ right
+ @ 9
+ .byte 7, 0, 0, 0, 0, 0 @ up
+ .byte 11, 12, 0, 0, 0, 0 @ down
+ .byte 8, 0, 0, 0, 0, 0 @ left
+ .byte 2, 1, 0, 0, 0, 0 @ right
+ @ 10
+ .byte 8, 0, 0, 0, 0, 0 @ up
+ .byte 6, 0, 0, 0, 0, 0 @ down
+ .byte 5, 4, 3, 2, 1, 0 @ left
+ .byte 11, 9, 7, 0, 0, 0 @ right
+ @ 11
+ .byte 9, 0, 0, 0, 0, 0 @ up
+ .byte 12, 0, 0, 0, 0, 0 @ down
+ .byte 10, 0, 0, 0, 0, 0 @ left
+ .byte 4, 2, 0, 0, 0, 0 @ right
+ @ 12
+ .byte 11, 9, 7, 6, 0, 0 @ up
+ .byte 7, 6, 0, 0, 0, 0 @ down
+ .byte 12, 0, 0, 0, 0, 0 @ left
+ .byte 12, 0, 0, 0, 0, 0 @ right
+
+@ The coordinates are in units of tiles.
+@ These are used for both mon icons and the selected mon cursor,
+@ but the origins of the coordinates differ.
+gTradeMonSpriteCoords:: @ 820C29C
+ @ left-side party
+ .byte 1, 5
+ .byte 8, 5
+ .byte 1, 10
+ .byte 8, 10
+ .byte 1, 15
+ .byte 8, 15
+
+ @ right-side party
+ .byte 16, 5
+ .byte 23, 5
+ .byte 16, 10
+ .byte 23, 10
+ .byte 16, 15
+ .byte 23, 15
+
+ @ cancel button
+ .byte 23, 18
+
+gTradeLevelDisplayCoords:: @ 820C2B6
+ @ left-side party
+ .byte 5, 4
+ .byte 12, 4
+ .byte 5, 9
+ .byte 12, 9
+ .byte 5, 14
+ .byte 12, 14
+
+ @ right-side party
+ .byte 20, 4
+ .byte 27, 4
+ .byte 20, 9
+ .byte 27, 9
+ .byte 20, 14
+ .byte 27, 14
+
+gTradeMonBoxCoords:: @ 820C2CE
+ @ left-side party
+ .byte 1, 3
+ .byte 8, 3
+ .byte 1, 8
+ .byte 8, 8
+ .byte 1, 13
+ .byte 8, 13
+
+ @ right-side party
+ .byte 16, 3
+ .byte 23, 3
+ .byte 16, 8
+ .byte 23, 8
+ .byte 16, 13
+ .byte 23, 13
+
+gTradeUnknownSpriteCoords:: @ 820C2E6
+ .byte 59, 10
+ .byte 179, 10
+ .byte 59, 10
+ .byte 179, 10
+
+ .align 2
+gUnknown_0820C2F0:: @ 820C2F0
+ .4byte TradeText_LinkStandby
+ .4byte TradeText_TradeCancelled
+ .4byte TradeText_OnlyPoke
+ .4byte TradeText_NonTradablePoke
+ .4byte TradeText_WaitingForFriend
+ .4byte TradeText_WantToTrade
+
+gTradeMessageWindowRects:: @ 820C308
+ .byte 8, 7, 22, 12
+ .byte 8, 7, 22, 12
+ .byte 6, 7, 24, 12
+ .byte 6, 7, 24, 12
+ .byte 8, 7, 22, 12
+ .byte 7, 7, 23, 12
+
+ .align 2
+gUnknown_0820C320:: @ 820C320
+ .4byte TradeText_Summary2, sub_804A9F4 @unknown
+ .4byte TradeText_Trade2, sub_804AA00
+
+gUnknown_0820C330:: @ 820C330
+ .byte 0, 14
+ .byte 15, 29
+
+gUnknown_0820C334:: @ 820C334
+ .byte 3, 5
+ .byte 3, 7
+ .byte 18, 5
+ .byte 18, 7
+
+gOtherText_Terminator::
+ .string "$"
+
+gOtherText_MaleSymbol3:: @ 820C33D
+ .string "♂$"
+
+gOtherText_FemaleSymbol3:: @ 820C33F
+ .string "♀$"
+
+gOtherText_GenderlessSymbol:: @ 820C341
+ .string "$$"
+
+ .align 2
+ .4byte gTileBuffer
+
+@ Unused debug strings?
+ .string "かいめの そうしん$", 13
+ .string "かいめの じゅしん$", 13
+ .string "ポケモンアイコンセット$", 13
+ .string "OBJテキストセット$", 13
+ .string "セルセット$", 13
+ .string "OBJテキストADD$", 13
+ .string "システムメッセージADD$", 13
+ .string "はいけいセット$", 13
+
+@ Shedinja's Japanese name
+@ sub_8048D44 compares a pokemon name with this string
+gUnknown_0820C3B0:: @ 820C3B0
+ .string "ヌケニン$"
+
+ .string "こうかんせいりつ $" @ trade completed
+ .string "だめだたらしいよ $" @ it's no good (trade failed maybe?)
+
+gUnknown_0820C3D1:: @ 820C3D1
+ .byte 4, 3
+ .byte 19, 3
+
+ .align 2
+gTradeBallPalette:: @ 820C3D8
+ .incbin "graphics/trade/ball.gbapal"
+
+ .align 2
+gTradeBallTiles:: @ 820C3F8
+ .incbin "graphics/trade/ball.4bpp"
+
+ .align 2
+gUnknown_0820C9F8:: @ 820C9F8
+ .incbin "graphics/trade/unknown.gbapal"
+ .incbin "graphics/trade/gba.gbapal"
+ .incbin "graphics/trade/shadow.gbapal"
+ .space 32
+ .incbin "graphics/trade/misc.gbapal"
+
+ .align 2
+gUnknown_0820CA98:: @ 820CA98
+ .incbin "graphics/trade/gba.4bpp"
+ .incbin "graphics/trade/shadow.4bpp"
+
+ .align 2
+gUnknown_0820DD98:: @ 820DD98
+ .incbin "graphics/trade/pokeball_symbol.8bpp"
+
+ .align 2
+gUnknown_0820F798:: @ 820F798
+ .incbin "graphics/trade/shadow_map.bin"
+
+ .align 2
+gUnknown_08210798:: @ 8210798
+ .incbin "graphics/trade/gba_map.bin"
+
+ .align 2
+gUnknown_08211798:: @ 8211798
+ .incbin "graphics/trade/cable_closeup_map.bin"
+
+ .align 2
+gUnknown_08211F98:: @ 8211F98
+ .incbin "graphics/trade/pokeball_symbol_map.bin"
+
+ .incbin "graphics/unused/unknown/8212098.gbapal"
+
+ .align 2
+gTradeCableEndPalette:: @ 82120B8
+ .incbin "graphics/trade/cable_end.gbapal"
+
+ .incbin "graphics/unused/unknown/82120D8.gbapal"
+
+ .space 32
+
+ .align 2
+gTradeGlowPalette:: @ 8212118
+ .incbin "graphics/trade/glow.gbapal"
+
+ .align 2
+gTradeGlow1Tiles:: @ 8212138
+ .incbin "graphics/trade/glow1.4bpp"
+
+ .align 2
+gTradeGlow2Tiles:: @ 8212338
+ .incbin "graphics/trade/glow2.4bpp"
+
+ .align 2
+gTradeCableEndTiles:: @ 8212538
+ .incbin "graphics/trade/cable_end.4bpp"
+
+ .align 2
+gTradeGBAScreenTiles:: @ 8212738
+ .incbin "graphics/trade/gba_screen.4bpp"
+
+ .align 2
+gUnknown_08213738:: @ 8213738
+ .incbin "graphics/trade/gba_affine.8bpp"
+
+ .align 2
+gUnknown_08215778:: @ 8215778
+ .incbin "graphics/trade/gba_affine_map.bin"
+
+ .align 2
+gOamData_8215878:: @ 8215878
+ .2byte 0x0100
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8215880:: @ 8215880
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 20, 3
+ obj_image_anim_frame 24, 3
+ obj_image_anim_frame 28, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 36, 3
+ obj_image_anim_frame 40, 3
+ obj_image_anim_frame 44, 3
+ obj_image_anim_loop 1
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82158BC:: @ 82158BC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 20, 3
+ obj_image_anim_frame 24, 3
+ obj_image_anim_frame 28, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 36, 3
+ obj_image_anim_frame 40, 3
+ obj_image_anim_frame 44, 3
+ obj_image_anim_loop 2
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82158F8:: @ 82158F8
+ .4byte gSpriteAnim_8215880
+ .4byte gSpriteAnim_82158BC
+
+ .align 2
+gSpriteAffineAnim_8215900:: @ 8215900
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8215910:: @ 8215910
+ obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8215920:: @ 8215920
+ obj_rot_scal_anim_frame 0x60, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
+ obj_rot_scal_anim_frame 0x8, 0x0, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8215940:: @ 8215940
+ .4byte gSpriteAffineAnim_8215900
+ .4byte gSpriteAffineAnim_8215910
+ .4byte gSpriteAffineAnim_8215920
+
+ .align 2
+gUnknown_0821594C:: @ 821594C
+ obj_tiles gTradeBallTiles, 0x600, 5557
+
+ .align 2
+gUnknown_08215954:: @ 8215954
+ obj_pal gTradeBallPalette, 5558
+
+ .align 2
+gSpriteTemplate_821595C:: @ 821595C
+ spr_template 5557, 5558, gOamData_8215878, gSpriteAnimTable_82158F8, NULL, gSpriteAffineAnimTable_8215940, sub_804D6BC
+
+ .align 2
+gOamData_8215974:: @ 8215974
+ .2byte 0x0500
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821597C:: @ 821597C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215984:: @ 8215984
+ .4byte gSpriteAnim_821597C
+
+ .align 2
+gSpriteAffineAnim_8215988:: @ 8215988
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 5
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 5
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_82159A0:: @ 82159A0
+ .4byte gSpriteAffineAnim_8215988
+
+ .align 2
+gUnknown_082159A4:: @ 82159A4
+ obj_tiles gTradeGlow1Tiles, 0x200, 5550
+
+ .align 2
+gUnknown_082159AC:: @ 82159AC
+ obj_pal gTradeGlowPalette, 5551
+
+ .align 2
+gUnknown_082159B4:: @ 82159B4
+ obj_pal gTradeCableEndPalette, 5555
+
+ .align 2
+gSpriteTemplate_82159BC:: @ 82159BC
+ spr_template 5550, 5551, gOamData_8215974, gSpriteAnimTable_8215984, NULL, gSpriteAffineAnimTable_82159A0, sub_804B058
+
+ .align 2
+gOamData_82159D4:: @ 82159D4
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_82159DC:: @ 82159DC
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82159E4:: @ 82159E4
+ obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82159EC:: @ 82159EC
+ .4byte gSpriteAnim_82159DC
+ .4byte gSpriteAnim_82159E4
+
+ .align 2
+gUnknown_082159F4:: @ 82159F4
+ obj_tiles gTradeGlow2Tiles, 0x300, 5552
+
+ .align 2
+gSpriteTemplate_82159FC:: @ 82159FC
+ spr_template 5552, 5551, gOamData_82159D4, gSpriteAnimTable_82159EC, NULL, gDummySpriteAffineAnimTable, sub_804B07C
+
+ .align 2
+gOamData_8215A14:: @ 8215A14
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8215A1C:: @ 8215A1C
+ obj_image_anim_frame 0, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215A24:: @ 8215A24
+ .4byte gSpriteAnim_8215A1C
+
+ .align 2
+gUnknown_08215A28:: @ 8215A28
+ obj_tiles gTradeCableEndTiles, 0x100, 5554
+
+ .align 2
+gSpriteTemplate_8215A30:: @ 8215A30
+ spr_template 5554, 5555, gOamData_8215A14, gSpriteAnimTable_8215A24, NULL, gDummySpriteAffineAnimTable, sub_804B0BC
+
+ .align 2
+gOamData_8215A48:: @ 8215A48
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8215A50:: @ 8215A50
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 96, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215A74:: @ 8215A74
+ .4byte gSpriteAnim_8215A50
+
+ .align 2
+gUnknown_08215A78:: @ 8215A78
+ obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
+
+ .align 2
+gSpriteTemplate_8215A80:: @ 8215A80
+ spr_template 5556, 5555, gOamData_8215A48, gSpriteAnimTable_8215A74, NULL, gDummySpriteAffineAnimTable, sub_804B104
+
+ .align 1
+gTradeGlow2PaletteAnimTable:: @ 8215A98
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+
+ .align 2
+gSpriteAffineAnim_8215AB0:: @ 8215AB0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
+ .4byte gSpriteAffineAnim_8215AB0
+
+@ 8215AC4
+ .include "data/ingame_trades.inc"
+
+gTradeBallVerticalVelocityTable:: @ 8215BA0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte -4
+ .byte -4
+ .byte -4
+ .byte -3
+ .byte -3
+ .byte -3
+ .byte -3
+ .byte -2
+ .byte -2
+ .byte -2
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte -4
+ .byte -3
+ .byte -3
+ .byte -2
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte -4
+ .byte -3
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 3
diff --git a/ld_script.txt b/ld_script.txt
index b601efe66..32a0dbfc7 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -257,6 +257,12 @@ SECTIONS {
src/link.o(.rodata);
src/rtc.o(.rodata);
data/data2.o(.rodata);
+ data/trade.o(.rodata);
+ data/berry_blender.o(.rodata);
+ src/new_game.o(.rodata);
+ data/rom4.o(.rodata);
+ data/tilesets.o(.rodata);
+ data/maps.o(.rodata);
src/fieldmap.o(.rodata);
data/metatile_behavior.o(.rodata);
data/field_door.o(.rodata);
diff --git a/src/new_game.c b/src/new_game.c
index d63e50236..fa1894086 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -18,7 +18,15 @@ extern u8 gUnknown_03005CE8;
extern u16 gSaveFileStatus;
extern u8 gUnknown_0819FA81[];
-extern const struct SB1_2EFC_Struct gUnknown_08216604;
+
+const struct SB1_2EFC_Struct gUnknown_08216604 =
+{
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ }
+};
void write_word_to_mem(u32 a1, u8 *a2)
{