summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/fldeff_80C5CD4.s2766
-rwxr-xr-xasm/fldeff_berrytree.s164
-rwxr-xr-xasm/fldeff_decoration.s907
-rwxr-xr-xasm/fldeff_pc.s190
-rwxr-xr-xasm/fldeff_poison.s99
-rwxr-xr-xasm/fldeff_recordmixing.s94
-rwxr-xr-xasm/fldeff_secretpower.s640
-rwxr-xr-xasm/pc_screen_effect.s726
-rw-r--r--data-de/text/battle_strings.inc2315
-rw-r--r--data/battle_message.s131
-rw-r--r--data/cable_club.s32
-rw-r--r--data/field_door.s416
-rwxr-xr-xdata/fldeff_decoration.s36
-rw-r--r--data/fldeff_flash.s71
-rwxr-xr-xdata/fldeff_recordmixing.s45
-rwxr-xr-x[-rw-r--r--]data/fldeff_secretpower.s (renamed from data/fldeff_80C5CD4.s)112
-rw-r--r--data/main_menu.s59
-rw-r--r--data/map_events.s13
-rwxr-xr-xdata/maps/events/Route124_DivingTreasureHuntersHouse.inc12
-rw-r--r--data/matsuda_debug_menu.s201
-rw-r--r--data/money.s31
-rw-r--r--data/mori_debug_menu.s72
-rwxr-xr-xdata/pc_screen_effect.s43
-rw-r--r--data/reset_rtc_screen.s67
-rw-r--r--data/text/battle_strings.inc1830
-rw-r--r--data/text_window.s31
-rw-r--r--data/tileset_anim.s637
-rw-r--r--data/tv.s205
-rwxr-xr-xgraphics/birch_speech/blank_pal.pal11
-rw-r--r--include/field_door.h4
-rw-r--r--include/matsuda_debug_menu.h26
-rw-r--r--include/mori_debug_menu.h16
-rw-r--r--include/moves.h710
-rwxr-xr-xinclude/region_map_sections.h60
-rw-r--r--include/text_window.h4
-rw-r--r--include/tv.h2
-rw-r--r--ld_script.txt37
-rw-r--r--src/battle/battle_4.c24
-rw-r--r--src/battle/battle_controller_player.c41
-rw-r--r--src/battle/battle_controller_safari.c8
-rw-r--r--src/battle/battle_controller_wally.c8
-rw-r--r--src/battle/battle_message.c340
-rwxr-xr-xsrc/data/battle_strings_de.h1612
-rwxr-xr-xsrc/data/battle_strings_en.h1612
-rw-r--r--src/debug/matsuda_debug_menu.c250
-rw-r--r--src/debug/mori_debug_menu.c67
-rw-r--r--src/engine/cable_club.c21
-rw-r--r--src/engine/main_menu.c53
-rw-r--r--src/engine/reset_rtc_screen.c123
-rw-r--r--src/engine/text_window.c76
-rw-r--r--src/engine/tileset_anim.c425
-rw-r--r--src/field/battle_tower.c40
-rw-r--r--src/field/field_door.c411
-rw-r--r--src/field/field_specials.c2
-rw-r--r--src/field/fldeff_flash.c40
-rw-r--r--src/field/money.c49
-rw-r--r--src/field/tv.c368
-rw-r--r--src/pokemon/mon_markings.c4
-rw-r--r--src/pokemon/pokemon_3.c16
-rw-r--r--src/scene/evolution_scene.c16
61 files changed, 8679 insertions, 9744 deletions
diff --git a/Makefile b/Makefile
index a42a06898..856fca65d 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
-CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror
+CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno-trigraphs
LD := $(DEVKITARM)/bin/arm-none-eabi-ld
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
deleted file mode 100644
index 011ce6427..000000000
--- a/asm/fldeff_80C5CD4.s
+++ /dev/null
@@ -1,2766 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C5CD4
-sub_80C5CD4: @ 80C5CD4
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5D64 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5D68 @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5D70 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x1
- strh r0, [r7, 0xC]
- strh r6, [r7, 0xA]
- strh r6, [r7, 0x8]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5D4E
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5D4E:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5D58
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5D58:
- ldr r0, _080C5D74 @ =gUnknown_020387EC
- str r7, [r0]
- movs r4, 0
- ldr r5, _080C5D78 @ =gSprites
- b _080C5D94
- .align 2, 0
-_080C5D64: .4byte gUnknown_083D1898
-_080C5D68: .4byte gUnknown_083D18A0
-_080C5D6C: .4byte gSpriteTemplate_83D18A8
-_080C5D70: .4byte 0xffff0000
-_080C5D74: .4byte gUnknown_020387EC
-_080C5D78: .4byte gSprites
-_080C5D7C:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r7, 0x4]
- cmp r4, 0x3
- bhi _080C5D8C
- negs r1, r1
-_080C5D8C:
- strh r1, [r0, 0x2E]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080C5D94:
- cmp r4, 0x7
- bhi _080C5DB2
- lsls r1, r4, 5
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080C5D7C
-_080C5DB2:
- ldr r1, _080C5DC8 @ =REG_BLDCNT
- movs r0, 0xBF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5DC8: .4byte REG_BLDCNT
- thumb_func_end sub_80C5CD4
-
- thumb_func_start sub_80C5DCC
-sub_80C5DCC: @ 80C5DCC
- push {r4,lr}
- ldr r4, _080C5E10 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- bne _080C5DF0
- ldr r0, [r1, 0x10]
- ldr r2, _080C5E14 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5E18 @ =sub_80C603C
- bl sub_80C61B0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5DF0:
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x7
- bls _080C5E0A
- ldrh r0, [r1, 0x6]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- bgt _080C5E1C
-_080C5E0A:
- movs r0, 0
- b _080C5E2E
- .align 2, 0
-_080C5E10: .4byte gUnknown_020387EC
-_080C5E14: .4byte 0x0000ffff
-_080C5E18: .4byte sub_80C603C
-_080C5E1C:
- movs r0, 0x50
- strh r0, [r1, 0xC]
- ldr r0, _080C5E34 @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- bl ClearGpuRegBits
- movs r0, 0x1
-_080C5E2E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5E34: .4byte REG_BLDCNT
- thumb_func_end sub_80C5DCC
-
- thumb_func_start sub_80C5E38
-sub_80C5E38: @ 80C5E38
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5EC8 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5ECC @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5ED4 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x50
- strh r0, [r7, 0xC]
- strh r6, [r7, 0x8]
- strh r6, [r7, 0xA]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5EB2
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5EB2:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5EBC
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5EBC:
- ldr r0, _080C5ED8 @ =gUnknown_020387EC
- str r7, [r0]
- movs r5, 0
- ldr r6, _080C5EDC @ =gSprites
- b _080C5F4A
- .align 2, 0
-_080C5EC8: .4byte gUnknown_083D1898
-_080C5ECC: .4byte gUnknown_083D18A0
-_080C5ED0: .4byte gSpriteTemplate_83D18C0
-_080C5ED4: .4byte 0xffff0000
-_080C5ED8: .4byte gUnknown_020387EC
-_080C5EDC: .4byte gSprites
-_080C5EE0:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- strh r0, [r1, 0x2E]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, _080C5EF4 @ =gSprites
- b _080C5F2A
- .align 2, 0
-_080C5EF4: .4byte gSprites
-_080C5EF8:
- lsls r1, r5, 21
- movs r0, 0x80
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080C5F6E
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- negs r0, r0
- strh r0, [r1, 0x2E]
- ldr r0, _080C5F88 @ =0x0000ffff
- strh r0, [r1, 0x30]
- ldr r1, _080C5F8C @ =gSprites
- lsls r4, r5, 5
-_080C5F2A:
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- movs r2, 0
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x36]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080C5F4A:
- cmp r5, 0x7
- bhi _080C5F6E
- cmp r5, 0x3
- bhi _080C5EF8
- lsls r4, r5, 5
- adds r1, r4, 0
- subs r1, 0x70
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080C5EE0
-_080C5F6E:
- ldr r1, _080C5F90 @ =REG_BLDCNT
- movs r0, 0xFF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080C5F94 @ =sub_80C6078
- bl sub_80C61B0
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5F88: .4byte 0x0000ffff
-_080C5F8C: .4byte gSprites
-_080C5F90: .4byte REG_BLDCNT
-_080C5F94: .4byte sub_80C6078
- thumb_func_end sub_80C5E38
-
- thumb_func_start sub_80C5F98
-sub_80C5F98: @ 80C5F98
- push {r4,lr}
- ldr r4, _080C5FB0 @ =gUnknown_020387EC
- ldr r2, [r4]
- ldrh r0, [r2, 0x8]
- cmp r0, 0x1
- beq _080C5FEC
- cmp r0, 0x1
- bgt _080C5FB4
- cmp r0, 0
- beq _080C5FBA
- b _080C602C
- .align 2, 0
-_080C5FB0: .4byte gUnknown_020387EC
-_080C5FB4:
- cmp r0, 0x2
- beq _080C6008
- b _080C602C
-_080C5FBA:
- ldrh r0, [r2, 0xC]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _080C6034
- ldr r0, [r2, 0x10]
- ldr r2, _080C5FE4 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5FE8 @ =sub_80C603C
- bl SetHBlankCallback
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _080C6000
- .align 2, 0
-_080C5FE4: .4byte 0x0000ffff
-_080C5FE8: .4byte sub_80C603C
-_080C5FEC:
- ldrh r0, [r2, 0xA]
- cmp r0, 0x8
- bne _080C6034
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, [r4]
-_080C6000:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C6034
-_080C6008:
- ldr r0, _080C6030 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- bl ClearGpuRegBits
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C602C:
- movs r0, 0x1
- b _080C6036
- .align 2, 0
-_080C6030: .4byte REG_BLDCNT
-_080C6034:
- movs r0, 0
-_080C6036:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5F98
-
- thumb_func_start sub_80C603C
-sub_80C603C: @ 80C603C
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C6060 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r3, 0xFF
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x50
- bne _080C6068
- ldr r1, _080C6064 @ =REG_BLDCNT
- movs r0, 0x8F
- strh r0, [r1]
- b _080C606C
- .align 2, 0
-_080C6060: .4byte REG_VCOUNT
-_080C6064: .4byte REG_BLDCNT
-_080C6068:
- ldr r0, _080C6074 @ =REG_BLDCNT
- strh r3, [r0]
-_080C606C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6074: .4byte REG_BLDCNT
- thumb_func_end sub_80C603C
-
- thumb_func_start sub_80C6078
-sub_80C6078: @ 80C6078
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C60B0 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080C60B4 @ =gUnknown_020387EC
- ldr r0, [r0]
- movs r3, 0xC
- ldrsh r2, [r0, r3]
- movs r0, 0x50
- subs r0, r2
- cmp r1, r0
- ble _080C60BC
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- cmp r1, r0
- bge _080C60BC
- ldr r1, _080C60B8 @ =REG_BLDY
- movs r0, 0
- b _080C60C0
- .align 2, 0
-_080C60B0: .4byte REG_VCOUNT
-_080C60B4: .4byte gUnknown_020387EC
-_080C60B8: .4byte REG_BLDY
-_080C60BC:
- ldr r1, _080C60C8 @ =REG_BLDY
- movs r0, 0x10
-_080C60C0:
- strh r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C60C8: .4byte REG_BLDY
- thumb_func_end sub_80C6078
-
- thumb_func_start sub_80C60CC
-sub_80C60CC: @ 80C60CC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bls _080C611C
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _080C6124 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080C611C
- ldrh r0, [r1]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- ldr r2, _080C6128 @ =0x0000ffff
- movs r1, 0
- bl BlendPalettes
- ldr r0, _080C612C @ =sub_80C6078
- bl SetHBlankCallback
-_080C611C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6124: .4byte gUnknown_020387EC
-_080C6128: .4byte 0x0000ffff
-_080C612C: .4byte sub_80C6078
- thumb_func_end sub_80C60CC
-
- thumb_func_start sub_80C6130
-sub_80C6130: @ 80C6130
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080C61AA
- ldr r1, _080C6184 @ =gUnknown_020387EC
- ldr r0, [r1]
- movs r3, 0xC
- ldrsh r4, [r0, r3]
- adds r5, r1, 0
- cmp r4, 0x1
- bne _080C61AA
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bhi _080C616C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080C616C:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080C6188
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- blt _080C6196
- b _080C6194
- .align 2, 0
-_080C6184: .4byte gUnknown_020387EC
-_080C6188:
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bgt _080C6196
-_080C6194:
- strh r4, [r2, 0x36]
-_080C6196:
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080C61AA
- ldr r0, [r5]
- ldrh r1, [r0, 0xA]
- adds r1, 0x1
- strh r1, [r0, 0xA]
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
-_080C61AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6130
-
- thumb_func_start sub_80C61B0
-sub_80C61B0: @ 80C61B0
- push {r4-r6,lr}
- ldr r2, _080C61F0 @ =INTR_CHECK
- ldrh r1, [r2]
- movs r5, 0x2
- orrs r1, r5
- strh r1, [r2]
- ldr r3, _080C61F4 @ =REG_DISPSTAT
- ldrh r1, [r3]
- movs r2, 0x10
- orrs r1, r2
- strh r1, [r3]
- ldr r4, _080C61F8 @ =0x04000208
- ldrh r2, [r4]
- movs r6, 0
- strh r6, [r4]
- ldr r3, _080C61FC @ =0x04000200
- ldrh r1, [r3]
- orrs r1, r5
- strh r1, [r3]
- strh r2, [r4]
- ldr r2, _080C6200 @ =gMain
- ldrh r1, [r2, 0x1C]
- orrs r1, r5
- ldrh r3, [r2, 0x1C]
- orrs r1, r6
- strh r1, [r2, 0x1C]
- bl SetHBlankCallback
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C61F0: .4byte INTR_CHECK
-_080C61F4: .4byte REG_DISPSTAT
-_080C61F8: .4byte 0x04000208
-_080C61FC: .4byte 0x04000200
-_080C6200: .4byte gMain
- thumb_func_end sub_80C61B0
-
- thumb_func_start ClearGpuRegBits
-ClearGpuRegBits: @ 80C6204
- push {r4,r5,lr}
- ldr r3, _080C6248 @ =INTR_CHECK
- ldrh r1, [r3]
- ldr r2, _080C624C @ =0x0000fffd
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r3, _080C6250 @ =REG_DISPSTAT
- ldrh r1, [r3]
- ldr r0, _080C6254 @ =0x0000ffef
- ands r0, r1
- strh r0, [r3]
- ldr r4, _080C6258 @ =0x04000208
- ldrh r3, [r4]
- movs r0, 0
- strh r0, [r4]
- ldr r5, _080C625C @ =0x04000200
- ldrh r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r5]
- strh r3, [r4]
- ldr r0, _080C6260 @ =gMain
- ldrh r1, [r0, 0x1C]
- ands r2, r1
- ldrh r1, [r0, 0x1C]
- strh r2, [r0, 0x1C]
- movs r0, 0
- bl SetHBlankCallback
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6248: .4byte INTR_CHECK
-_080C624C: .4byte 0x0000fffd
-_080C6250: .4byte REG_DISPSTAT
-_080C6254: .4byte 0x0000ffef
-_080C6258: .4byte 0x04000208
-_080C625C: .4byte 0x04000200
-_080C6260: .4byte gMain
- thumb_func_end ClearGpuRegBits
-
- thumb_func_start sub_80C6264
-sub_80C6264: @ 80C6264
- push {lr}
- ldr r0, _080C6278 @ =gUnknown_0203923C
- ldr r1, _080C627C @ =gMapHeader
- ldr r1, [r1, 0x4]
- bl sub_80BBFD8
- bl sub_80BB5E4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6278: .4byte gUnknown_0203923C
-_080C627C: .4byte gMapHeader
- thumb_func_end sub_80C6264
-
- thumb_func_start sub_80C6280
-sub_80C6280: @ 80C6280
- push {lr}
- ldr r1, _080C6294 @ =gFieldEffectArguments
- ldr r0, [r1, 0x4]
- cmp r0, 0x2
- beq _080C62AA
- cmp r0, 0x2
- bgt _080C6298
- cmp r0, 0x1
- beq _080C62A2
- b _080C62BE
- .align 2, 0
-_080C6294: .4byte gFieldEffectArguments
-_080C6298:
- cmp r0, 0x3
- beq _080C62AE
- cmp r0, 0x4
- beq _080C62B8
- b _080C62BE
-_080C62A2:
- movs r0, 0x8
- str r0, [r1, 0x14]
- movs r0, 0x28
- b _080C62BC
-_080C62AA:
- movs r0, 0x8
- b _080C62BA
-_080C62AE:
- movs r0, 0x8
- negs r0, r0
- str r0, [r1, 0x14]
- movs r0, 0x18
- b _080C62BC
-_080C62B8:
- movs r0, 0x18
-_080C62BA:
- str r0, [r1, 0x14]
-_080C62BC:
- str r0, [r1, 0x18]
-_080C62BE:
- pop {r0}
- bx r0
- thumb_func_end sub_80C6280
-
- thumb_func_start SetUpFieldMove_SecretPower
-SetUpFieldMove_SecretPower: @ 80C62C4
- push {r4,lr}
- bl sub_80BB63C
- ldr r0, _080C6318 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080C636E
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C636E
- ldr r4, _080C631C @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseCave
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6330
- bl sub_80C6264
- ldr r1, _080C6320 @ =gFieldCallback
- ldr r0, _080C6324 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6328 @ =gUnknown_03005CE4
- ldr r0, _080C632C @ =sub_80C639C
- b _080C6380
- .align 2, 0
-_080C6318: .4byte gScriptResult
-_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gFieldCallback
-_080C6324: .4byte FieldCallback_Teleport
-_080C6328: .4byte gUnknown_03005CE4
-_080C632C: .4byte sub_80C639C
-_080C6330:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6360
- bl sub_80C6264
- ldr r1, _080C6350 @ =gFieldCallback
- ldr r0, _080C6354 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6358 @ =gUnknown_03005CE4
- ldr r0, _080C635C @ =sub_80C64A8
- b _080C6380
- .align 2, 0
-_080C6350: .4byte gFieldCallback
-_080C6354: .4byte FieldCallback_Teleport
-_080C6358: .4byte gUnknown_03005CE4
-_080C635C: .4byte sub_80C64A8
-_080C6360:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseShrub
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C6372
-_080C636E:
- movs r0, 0
- b _080C6384
-_080C6372:
- bl sub_80C6264
- ldr r1, _080C638C @ =gFieldCallback
- ldr r0, _080C6390 @ =FieldCallback_Teleport
- str r0, [r1]
- ldr r1, _080C6394 @ =gUnknown_03005CE4
- ldr r0, _080C6398 @ =sub_80C660C
-_080C6380:
- str r0, [r1]
- movs r0, 0x1
-_080C6384:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C638C: .4byte gFieldCallback
-_080C6390: .4byte FieldCallback_Teleport
-_080C6394: .4byte gUnknown_03005CE4
-_080C6398: .4byte sub_80C660C
- thumb_func_end SetUpFieldMove_SecretPower
-
- thumb_func_start sub_80C639C
-sub_80C639C: @ 80C639C
- push {lr}
- ldr r1, _080C63B0 @ =gFieldEffectArguments
- ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C63B8 @ =gUnknown_081A2CE6
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C63B0: .4byte gFieldEffectArguments
-_080C63B4: .4byte gLastFieldPokeMenuOpened
-_080C63B8: .4byte gUnknown_081A2CE6
- thumb_func_end sub_80C639C
-
- thumb_func_start FldEff_UseSecretPowerCave
-FldEff_UseSecretPowerCave: @ 80C63BC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C63E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C63E4 @ =sub_80C63E8
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C63E0: .4byte gTasks
-_080C63E4: .4byte sub_80C63E8
- thumb_func_end FldEff_UseSecretPowerCave
-
- thumb_func_start sub_80C63E8
-sub_80C63E8: @ 80C63E8
- push {lr}
- movs r0, 0xB
- bl FieldEffectActiveListRemove
- movs r0, 0x37
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C63E8
-
- thumb_func_start FldEff_SecretPowerCave
-FldEff_SecretPowerCave: @ 80C63FC
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C643C @ =gSpriteTemplate_83D2614
- ldr r3, _080C6440 @ =gSprites
- ldr r1, _080C6444 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6448 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C643C: .4byte gSpriteTemplate_83D2614
-_080C6440: .4byte gSprites
-_080C6444: .4byte gPlayerAvatar
-_080C6448: .4byte gFieldEffectArguments
- thumb_func_end FldEff_SecretPowerCave
-
- thumb_func_start sub_80C644C
-sub_80C644C: @ 80C644C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x83
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C6464 @ =sub_80C6468
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6464: .4byte sub_80C6468
- thumb_func_end sub_80C644C
-
- thumb_func_start sub_80C6468
-sub_80C6468: @ 80C6468
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C6488
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6490
- bl sub_80BB800
- b _080C6490
-_080C6488:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6494 @ =sub_80C6498
- str r0, [r1, 0x1C]
-_080C6490:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6494: .4byte sub_80C6498
- thumb_func_end sub_80C6468
-
- thumb_func_start sub_80C6498
-sub_80C6498: @ 80C6498
- push {lr}
- movs r1, 0x37
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6498
-
- thumb_func_start sub_80C64A8
-sub_80C64A8: @ 80C64A8
- push {lr}
- ldr r1, _080C64BC @ =gFieldEffectArguments
- ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C64C4 @ =gUnknown_081A2D3E
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C64BC: .4byte gFieldEffectArguments
-_080C64C0: .4byte gLastFieldPokeMenuOpened
-_080C64C4: .4byte gUnknown_081A2D3E
- thumb_func_end sub_80C64A8
-
- thumb_func_start FldEff_UseSecretPowerTree
-FldEff_UseSecretPowerTree: @ 80C64C8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C64EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C64F0 @ =sub_80C64F4
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C64EC: .4byte gTasks
-_080C64F0: .4byte sub_80C64F4
- thumb_func_end FldEff_UseSecretPowerTree
-
- thumb_func_start sub_80C64F4
-sub_80C64F4: @ 80C64F4
- push {lr}
- movs r0, 0x1A
- bl FieldEffectActiveListRemove
- movs r0, 0x38
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C64F4
-
- thumb_func_start FldEff_SecretPowerTree
-FldEff_SecretPowerTree: @ 80C6508
- push {r4,lr}
- ldr r1, _080C6580 @ =gUnknown_0203923C
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r2, r0, 0
- ldr r1, _080C6584 @ =0x00000fff
- adds r0, r1, 0
- ands r2, r0
- cmp r2, 0x96
- bne _080C652A
- ldr r1, _080C6588 @ =gFieldEffectArguments
- movs r0, 0
- str r0, [r1, 0x1C]
-_080C652A:
- cmp r2, 0x9C
- bne _080C6534
- ldr r1, _080C6588 @ =gFieldEffectArguments
- movs r0, 0x2
- str r0, [r1, 0x1C]
-_080C6534:
- bl sub_80C6280
- ldr r0, _080C658C @ =gSpriteTemplate_83D262C
- ldr r3, _080C6590 @ =gSprites
- ldr r1, _080C6594 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6588 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- ldr r0, [r4, 0x1C]
- cmp r0, 0x1
- beq _080C6572
- cmp r0, 0x3
- bne _080C6576
-_080C6572:
- bl sub_80BB800
-_080C6576:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6580: .4byte gUnknown_0203923C
-_080C6584: .4byte 0x00000fff
-_080C6588: .4byte gFieldEffectArguments
-_080C658C: .4byte gSpriteTemplate_83D262C
-_080C6590: .4byte gSprites
-_080C6594: .4byte gPlayerAvatar
- thumb_func_end FldEff_SecretPowerTree
-
- thumb_func_start sub_80C6598
-sub_80C6598: @ 80C6598
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x9B
- bl PlaySE
- ldr r0, _080C65BC @ =gFieldEffectArguments
- ldr r1, [r0, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2A
- movs r0, 0
- strb r1, [r2]
- strh r0, [r4, 0x2E]
- ldr r0, _080C65C0 @ =sub_80C65C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65BC: .4byte gFieldEffectArguments
-_080C65C0: .4byte sub_80C65C4
- thumb_func_end sub_80C6598
-
- thumb_func_start sub_80C65C4
-sub_80C65C4: @ 80C65C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080C65EE
- ldr r0, _080C65F4 @ =gFieldEffectArguments
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080C65E2
- cmp r0, 0x2
- bne _080C65E6
-_080C65E2:
- bl sub_80BB800
-_080C65E6:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C65F8 @ =sub_80C65FC
- str r0, [r4, 0x1C]
-_080C65EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65F4: .4byte gFieldEffectArguments
-_080C65F8: .4byte sub_80C65FC
- thumb_func_end sub_80C65C4
-
- thumb_func_start sub_80C65FC
-sub_80C65FC: @ 80C65FC
- push {lr}
- movs r1, 0x38
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C65FC
-
- thumb_func_start sub_80C660C
-sub_80C660C: @ 80C660C
- push {lr}
- ldr r1, _080C6620 @ =gFieldEffectArguments
- ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C6628 @ =gUnknown_081A2D96
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C6620: .4byte gFieldEffectArguments
-_080C6624: .4byte gLastFieldPokeMenuOpened
-_080C6628: .4byte gUnknown_081A2D96
- thumb_func_end sub_80C660C
-
- thumb_func_start FldEff_UseSecretPowerShrub
-FldEff_UseSecretPowerShrub: @ 80C662C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6650 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C6654 @ =sub_80C6658
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C6650: .4byte gTasks
-_080C6654: .4byte sub_80C6658
- thumb_func_end FldEff_UseSecretPowerShrub
-
- thumb_func_start sub_80C6658
-sub_80C6658: @ 80C6658
- push {lr}
- movs r0, 0x1B
- bl FieldEffectActiveListRemove
- movs r0, 0x39
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C6658
-
- thumb_func_start FldEff_SecretPowerShrub
-FldEff_SecretPowerShrub: @ 80C666C
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C66AC @ =gSpriteTemplate_83D2644
- ldr r3, _080C66B0 @ =gSprites
- ldr r1, _080C66B4 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C66B8 @ =gFieldEffectArguments
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C66AC: .4byte gSpriteTemplate_83D2644
-_080C66B0: .4byte gSprites
-_080C66B4: .4byte gPlayerAvatar
-_080C66B8: .4byte gFieldEffectArguments
- thumb_func_end FldEff_SecretPowerShrub
-
- thumb_func_start sub_80C66BC
-sub_80C66BC: @ 80C66BC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA9
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C66D4 @ =sub_80C66D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C66D4: .4byte sub_80C66D8
- thumb_func_end sub_80C66BC
-
- thumb_func_start sub_80C66D8
-sub_80C66D8: @ 80C66D8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C66F8
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6700
- bl sub_80BB800
- b _080C6700
-_080C66F8:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6704 @ =sub_80C6708
- str r0, [r1, 0x1C]
-_080C6700:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6704: .4byte sub_80C6708
- thumb_func_end sub_80C66D8
-
- thumb_func_start sub_80C6708
-sub_80C6708: @ 80C6708
- push {lr}
- movs r1, 0x39
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6708
-
- thumb_func_start FldEff_PCTurnOn
-FldEff_PCTurnOn: @ 80C6718
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C6758 @ =sub_80C6760
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C675C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r4]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6758: .4byte sub_80C6760
-_080C675C: .4byte gTasks
- thumb_func_end FldEff_PCTurnOn
-
- thumb_func_start sub_80C6760
-sub_80C6760: @ 80C6760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C6788 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- subs r0, 0x4
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bhi _080C682E
- lsls r0, 2
- ldr r1, _080C678C @ =_080C6790
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6788: .4byte gTasks + 0x8
-_080C678C: .4byte _080C6790
- .align 2, 0
-_080C6790:
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C6800
-_080C67D4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- b _080C67EE
-_080C67E2:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x88
- lsls r2, 2
-_080C67EE:
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- b _080C682E
-_080C6800:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- movs r0, 0x3D
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080C6834
-_080C682E:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
-_080C6834:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6760
-
- thumb_func_start sub_80C683C
-sub_80C683C: @ 80C683C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080C6874 @ =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080C6878
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- b _080C6888
- .align 2, 0
-_080C6874: .4byte 0x00004054
-_080C6878:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _080C68A0 @ =0x00000e21
- bl MapGridSetMetatileIdAt
-_080C6888:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68A0: .4byte 0x00000e21
- thumb_func_end sub_80C683C
-
- thumb_func_start sub_80C68A4
-sub_80C68A4: @ 80C68A4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080C68E4 @ =sub_80C68EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C68E8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68E4: .4byte sub_80C68EC
-_080C68E8: .4byte gTasks
- thumb_func_end sub_80C68A4
-
- thumb_func_start sub_80C68EC
-sub_80C68EC: @ 80C68EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C690C @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- bne _080C6910
- movs r0, 0
- b _080C6912
- .align 2, 0
-_080C690C: .4byte gTasks + 0x8
-_080C6910:
- adds r0, r1, 0x1
-_080C6912:
- strh r0, [r4, 0x6]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080C6964
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _080C692C
- movs r2, 0
- ldrsh r0, [r4, r2]
- bl DoBalloonSoundEffect
-_080C692C:
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x8]
- ldrh r3, [r4]
- adds r2, r3
- lsls r2, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x3
- bne _080C6960
- adds r0, r5, 0
- bl DestroyTask
- b _080C6964
-_080C6960:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_080C6964:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C68EC
-
- thumb_func_start DoBalloonSoundEffect
-DoBalloonSoundEffect: @ 80C696C
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 2
- cmp r1, r0
- beq _080C6998
- cmp r1, r0
- bgt _080C6988
- movs r0, 0x8A
- lsls r0, 2
- cmp r1, r0
- beq _080C69B0
- b _080C69B6
-_080C6988:
- movs r0, 0xCF
- lsls r0, 2
- cmp r1, r0
- beq _080C69A0
- adds r0, 0x4
- cmp r1, r0
- beq _080C69A8
- b _080C69B6
-_080C6998:
- movs r0, 0x4A
- bl PlaySE
- b _080C69B6
-_080C69A0:
- movs r0, 0x4B
- bl PlaySE
- b _080C69B6
-_080C69A8:
- movs r0, 0x4C
- bl PlaySE
- b _080C69B6
-_080C69B0:
- movs r0, 0x4E
- bl PlaySE
-_080C69B6:
- pop {r0}
- bx r0
- thumb_func_end DoBalloonSoundEffect
-
- thumb_func_start FldEff_Nop47
-FldEff_Nop47: @ 80C69BC
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop47
-
- thumb_func_start FldEff_Nop48
-FldEff_Nop48: @ 80C69C0
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop48
-
- thumb_func_start sub_80C69C4
-sub_80C69C4: @ 80C69C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x4D
- bl PlaySE
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- ldr r2, _080C6A0C @ =0x00000276
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- subs r6, r4, 0x1
- ldr r2, _080C6A10 @ =0x0000026e
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r6, 0
- bl CurrentMapDrawMetatileAt
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6A0C: .4byte 0x00000276
-_080C6A10: .4byte 0x0000026e
- thumb_func_end sub_80C69C4
-
- thumb_func_start sub_80C6A14
-sub_80C6A14: @ 80C6A14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6A44 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- bne _080C6A48
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- movs r3, 0xC
- ldrsh r1, [r1, r3]
- bl sub_80C69C4
- adds r0, r4, 0
- bl DestroyTask
- b _080C6A4C
- .align 2, 0
-_080C6A44: .4byte gTasks
-_080C6A48:
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
-_080C6A4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6A14
-
- thumb_func_start sub_80C6A54
-sub_80C6A54: @ 80C6A54
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r7, r5, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6A7C
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r4, 16
- asrs r1, 16
- bl sub_80C69C4
- b _080C6A9E
-_080C6A7C:
- cmp r0, 0x2
- bne _080C6A9E
- ldr r0, _080C6AA4 @ =sub_80C6A14
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6AA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r7, [r1, 0xA]
- strh r6, [r1, 0xC]
-_080C6A9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6AA4: .4byte sub_80C6A14
-_080C6AA8: .4byte gTasks
- thumb_func_end sub_80C6A54
-
- thumb_func_start Task_DecorationSoundEffect
-Task_DecorationSoundEffect: @ 80C6AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6AE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- beq _080C6AC8
- b _080C6C26
-_080C6AC8:
- ldr r2, _080C6AE8 @ =0xfffffd88
- adds r0, r2, 0
- ldrh r1, [r1, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- bls _080C6ADA
- b _080C6C1E
-_080C6ADA:
- lsls r0, 2
- ldr r1, _080C6AEC @ =_080C6AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6AE4: .4byte gTasks
-_080C6AE8: .4byte 0xfffffd88
-_080C6AEC: .4byte _080C6AF0
- .align 2, 0
-_080C6AF0:
- .4byte _080C6BE0
- .4byte _080C6BE8
- .4byte _080C6BF0
- .4byte _080C6BF8
- .4byte _080C6C00
- .4byte _080C6C08
- .4byte _080C6C10
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C18
-_080C6BE0:
- movs r0, 0x3E
- bl PlaySE
- b _080C6C1E
-_080C6BE8:
- movs r0, 0x3F
- bl PlaySE
- b _080C6C1E
-_080C6BF0:
- movs r0, 0x40
- bl PlaySE
- b _080C6C1E
-_080C6BF8:
- movs r0, 0x41
- bl PlaySE
- b _080C6C1E
-_080C6C00:
- movs r0, 0x42
- bl PlaySE
- b _080C6C1E
-_080C6C08:
- movs r0, 0x43
- bl PlaySE
- b _080C6C1E
-_080C6C10:
- movs r0, 0x44
- bl PlaySE
- b _080C6C1E
-_080C6C18:
- movs r0, 0x45
- bl PlaySE
-_080C6C1E:
- adds r0, r4, 0
- bl DestroyTask
- b _080C6C2A
-_080C6C26:
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
-_080C6C2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Task_DecorationSoundEffect
-
- thumb_func_start DoDecorationSoundEffect
-DoDecorationSoundEffect: @ 80C6C30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _080C6C5C @ =Task_DecorationSoundEffect
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6C60 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r0, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6C5C: .4byte Task_DecorationSoundEffect
-_080C6C60: .4byte gTasks
- thumb_func_end DoDecorationSoundEffect
-
- thumb_func_start SpriteCB_YellowCave4Sparkle
-SpriteCB_YellowCave4Sparkle: @ 80C6C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080C6C7C
- movs r0, 0xC3
- bl PlaySE
-_080C6C7C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1F
- ble _080C6C8A
- adds r0, r4, 0
- bl DestroySprite
-_080C6C8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_YellowCave4Sparkle
-
- thumb_func_start DoYellowCave4Sparkle
-DoYellowCave4Sparkle: @ 80C6C90
- push {r4,lr}
- sub sp, 0x4
- ldr r3, _080C6D28 @ =gMapObjects
- ldr r2, _080C6D2C @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080C6D1E
- ldr r3, _080C6D34 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r3
- movs r0, 0x3E
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle
- str r0, [r2]
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080C6D1E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6D28: .4byte gMapObjects
-_080C6D2C: .4byte gPlayerAvatar
-_080C6D30: .4byte gFieldEffectObjectTemplatePointers
-_080C6D34: .4byte gSprites
-_080C6D38: .4byte SpriteCB_YellowCave4Sparkle
- thumb_func_end DoYellowCave4Sparkle
-
- thumb_func_start FldEff_SandPillar
-FldEff_SandPillar: @ 80C6D3C
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, _080C6D78 @ =gFieldEffectArguments
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r1, 0x14]
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [r1, 0x18]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080C6DBC
- cmp r0, 0x2
- bgt _080C6D7C
- cmp r0, 0x1
- beq _080C6D86
- b _080C6E4C
- .align 2, 0
-_080C6D78: .4byte gFieldEffectArguments
-_080C6D7C:
- cmp r0, 0x3
- beq _080C6DEC
- cmp r0, 0x4
- beq _080C6E24
- b _080C6E4C
-_080C6D86:
- ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DB4 @ =gSprites
- ldr r1, _080C6DB8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x20
- movs r3, 0
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6DB0: .4byte gSpriteTemplate_83D26A0
-_080C6DB4: .4byte gSprites
-_080C6DB8: .4byte gPlayerAvatar
-_080C6DBC:
- ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DE4 @ =gSprites
- ldr r1, _080C6DE8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- b _080C6E0C
- .align 2, 0
-_080C6DE0: .4byte gSpriteTemplate_83D26A0
-_080C6DE4: .4byte gSprites
-_080C6DE8: .4byte gPlayerAvatar
-_080C6DEC:
- ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E18 @ =gSprites
- ldr r1, _080C6E1C @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- ldr r3, _080C6E20 @ =0xfff80000
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
-_080C6E0C:
- movs r3, 0x94
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6E14: .4byte gSpriteTemplate_83D26A0
-_080C6E18: .4byte gSprites
-_080C6E1C: .4byte gPlayerAvatar
-_080C6E20: .4byte 0xfff80000
-_080C6E24:
- ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E5C @ =gSprites
- ldr r1, _080C6E60 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0xC0
- lsls r3, 13
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
- movs r3, 0x94
- bl CreateSprite
-_080C6E4C:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6E58: .4byte gSpriteTemplate_83D26A0
-_080C6E5C: .4byte gSprites
-_080C6E60: .4byte gPlayerAvatar
- thumb_func_end FldEff_SandPillar
-
- thumb_func_start SpriteCB_SandPillar_0
-SpriteCB_SandPillar_0: @ 80C6E64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x83
- bl PlaySE
- ldr r4, _080C6E90 @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl MapGridGetMetatileIdAt
- ldr r1, _080C6E94 @ =0x00000286
- cmp r0, r1
- bne _080C6E9C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- ldr r2, _080C6E98 @ =0x00000e02
- bl MapGridSetMetatileIdAt
- b _080C6EAA
- .align 2, 0
-_080C6E90: .4byte gFieldEffectArguments
-_080C6E94: .4byte 0x00000286
-_080C6E98: .4byte 0x00000e02
-_080C6E9C:
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- movs r2, 0xA1
- lsls r2, 2
- bl MapGridSetMetatileIdAt
-_080C6EAA:
- ldr r4, _080C6ED8 @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6EDC @ =0x0000020a
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl CurrentMapDrawMetatileAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6ED8: .4byte gFieldEffectArguments
-_080C6EDC: .4byte 0x0000020a
-_080C6EE0: .4byte SpriteCB_SandPillar_1
- thumb_func_end SpriteCB_SandPillar_0
-
- thumb_func_start SpriteCB_SandPillar_1
-SpriteCB_SandPillar_1: @ 80C6EE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x11
- bgt _080C6EF8
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080C6F14
-_080C6EF8:
- ldr r4, _080C6F1C @ =gFieldEffectArguments
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6F20 @ =0x00000e8c
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2
- str r0, [r5, 0x1C]
-_080C6F14:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6F1C: .4byte gFieldEffectArguments
-_080C6F20: .4byte 0x00000e8c
-_080C6F24: .4byte SpriteCB_SandPillar_2
- thumb_func_end SpriteCB_SandPillar_1
-
- thumb_func_start SpriteCB_SandPillar_2
-SpriteCB_SandPillar_2: @ 80C6F28
- push {lr}
- movs r1, 0x34
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_SandPillar_2
-
- thumb_func_start GetShieldToyTVDecorationInfo
-GetShieldToyTVDecorationInfo: @ 80C6F38
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080C6F70 @ =0x000002f5
- cmp r1, r0
- beq _080C6FE8
- cmp r1, r0
- bgt _080C6F74
- subs r0, 0x17
- cmp r1, r0
- beq _080C6FB0
- adds r0, 0x16
- cmp r1, r0
- beq _080C6FDC
- b _080C6FFA
- .align 2, 0
-_080C6F70: .4byte 0x000002f5
-_080C6F74:
- ldr r0, _080C6F9C @ =0x000002f6
- cmp r1, r0
- beq _080C6FF4
- adds r0, 0x40
- cmp r1, r0
- bne _080C6FFA
- ldr r0, _080C6FA0 @ =gStringVar1
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FA4 @ =gStringVar2
- ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank
- bl StringCopy
- ldr r1, _080C6FAC @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6F9C: .4byte 0x000002f6
-_080C6FA0: .4byte gStringVar1
-_080C6FA4: .4byte gStringVar2
-_080C6FA8: .4byte gSecretBaseText_GoldRank
-_080C6FAC: .4byte gScriptResult
-_080C6FB0:
- ldr r0, _080C6FCC @ =gStringVar1
- movs r1, 0x32
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FD0 @ =gStringVar2
- ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank
- bl StringCopy
- ldr r1, _080C6FD8 @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6FCC: .4byte gStringVar1
-_080C6FD0: .4byte gStringVar2
-_080C6FD4: .4byte gSecretBaseText_SilverRank
-_080C6FD8: .4byte gScriptResult
-_080C6FDC:
- ldr r1, _080C6FE4 @ =gScriptResult
- movs r0, 0x1
- b _080C6FF8
- .align 2, 0
-_080C6FE4: .4byte gScriptResult
-_080C6FE8:
- ldr r1, _080C6FF0 @ =gScriptResult
- movs r0, 0x2
- b _080C6FF8
- .align 2, 0
-_080C6FF0: .4byte gScriptResult
-_080C6FF4:
- ldr r1, _080C7004 @ =gScriptResult
- movs r0, 0x3
-_080C6FF8:
- strh r0, [r1]
-_080C6FFA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7004: .4byte gScriptResult
- thumb_func_end GetShieldToyTVDecorationInfo
-
- thumb_func_start Task_FieldPoisonEffect
-Task_FieldPoisonEffect: @ 80C7008
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080C702C @ =gTasks + 0x8
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C7046
- cmp r0, 0x1
- bgt _080C7030
- cmp r0, 0
- beq _080C7036
- b _080C7062
- .align 2, 0
-_080C702C: .4byte gTasks + 0x8
-_080C7030:
- cmp r0, 0x2
- beq _080C705A
- b _080C7062
-_080C7036:
- ldrh r0, [r1, 0x2]
- adds r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080C7062
- b _080C7052
-_080C7046:
- ldrh r0, [r1, 0x2]
- subs r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080C7062
-_080C7052:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080C7062
-_080C705A:
- adds r0, r2, 0
- bl DestroyTask
- b _080C706C
-_080C7062:
- ldr r2, _080C7070 @ =REG_MOSAIC
- ldrh r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- strh r0, [r2]
-_080C706C:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7070: .4byte REG_MOSAIC
- thumb_func_end Task_FieldPoisonEffect
-
- thumb_func_start DoFieldPoisonEffect
-DoFieldPoisonEffect: @ 80C7074
- push {lr}
- movs r0, 0x4F
- bl PlaySE
- ldr r0, _080C7088 @ =Task_FieldPoisonEffect
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C7088: .4byte Task_FieldPoisonEffect
- thumb_func_end DoFieldPoisonEffect
-
- thumb_func_start FieldPoisonEffectIsRunning
-FieldPoisonEffectIsRunning: @ 80C708C
- push {lr}
- ldr r0, _080C709C @ =Task_FieldPoisonEffect
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C709C: .4byte Task_FieldPoisonEffect
- thumb_func_end FieldPoisonEffectIsRunning
-
- thumb_func_start Task_WateringBerryTreeAnim_0
-Task_WateringBerryTreeAnim_0: @ 80C70A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C70B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C70B4: .4byte gTasks
-_080C70B8: .4byte Task_WateringBerryTreeAnim_1
- thumb_func_end Task_WateringBerryTreeAnim_0
-
- thumb_func_start Task_WateringBerryTreeAnim_1
-Task_WateringBerryTreeAnim_1: @ 80C70BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7120 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7124 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C70E8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C711A
-_080C70E8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059D08
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _080C7128 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2
- str r1, [r0]
-_080C711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7120: .4byte gPlayerAvatar
-_080C7124: .4byte gMapObjects
-_080C7128: .4byte gTasks
-_080C712C: .4byte Task_WateringBerryTreeAnim_2
- thumb_func_end Task_WateringBerryTreeAnim_1
-
- thumb_func_start Task_WateringBerryTreeAnim_2
-Task_WateringBerryTreeAnim_2: @ 80C7130
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C7184 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7188 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C7194
- ldr r1, _080C718C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080C7190
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- b _080C7194
- .align 2, 0
-_080C7184: .4byte gPlayerAvatar
-_080C7188: .4byte gMapObjects
-_080C718C: .4byte gTasks
-_080C7190:
- ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3
- str r0, [r2]
-_080C7194:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C719C: .4byte Task_WateringBerryTreeAnim_3
- thumb_func_end Task_WateringBerryTreeAnim_2
-
- thumb_func_start Task_WateringBerryTreeAnim_3
-Task_WateringBerryTreeAnim_3: @ 80C71A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80597D0
- lsls r0, 24
- lsrs r0, 24
- bl SetPlayerAvatarTransitionFlags
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Task_WateringBerryTreeAnim_3
-
- thumb_func_start DoWateringBerryTreeAnim
-DoWateringBerryTreeAnim: @ 80C71C4
- push {lr}
- ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C71D4: .4byte Task_WateringBerryTreeAnim_0
- thumb_func_end DoWateringBerryTreeAnim
-
- thumb_func_start CreateRecordMixingSprite
-CreateRecordMixingSprite: @ 80C71D8
- push {r4,r5,lr}
- ldr r0, _080C722C @ =gUnknown_083D2878
- bl LoadSpritePalette
- ldr r0, _080C7230 @ =gSpriteTemplate_83D2894
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7238
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080C7234 @ =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r0, 0x10
- movs r1, 0xD
- bl sub_8060388
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- adds r0, r5, 0
- b _080C723A
- .align 2, 0
-_080C722C: .4byte gUnknown_083D2878
-_080C7230: .4byte gSpriteTemplate_83D2894
-_080C7234: .4byte gSprites
-_080C7238:
- movs r0, 0x40
-_080C723A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateRecordMixingSprite
-
- thumb_func_start DestroyRecordMixingSprite
-DestroyRecordMixingSprite: @ 80C7240
- push {r4-r7,lr}
- ldr r4, _080C7274 @ =gSprites
- adds r7, r4, 0
- movs r6, 0
- movs r5, 0x3F
-_080C724A:
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r6, r0
- ldr r1, [r0]
- ldr r0, _080C7278 @ =gSpriteTemplate_83D2894
- cmp r1, r0
- bne _080C7264
- adds r0, r4, 0
- bl FreeSpritePalette
- adds r0, r4, 0
- bl DestroySprite
-_080C7264:
- adds r4, 0x44
- adds r6, 0x44
- subs r5, 0x1
- cmp r5, 0
- bge _080C724A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7274: .4byte gSprites
-_080C7278: .4byte gSpriteTemplate_83D2894
- thumb_func_end DestroyRecordMixingSprite
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_berrytree.s b/asm/fldeff_berrytree.s
new file mode 100755
index 000000000..a36ba0519
--- /dev/null
+++ b/asm/fldeff_berrytree.s
@@ -0,0 +1,164 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start Task_WateringBerryTreeAnim_0
+Task_WateringBerryTreeAnim_0: @ 80C70A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C70B4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C70B4: .4byte gTasks
+_080C70B8: .4byte Task_WateringBerryTreeAnim_1
+ thumb_func_end Task_WateringBerryTreeAnim_0
+
+ thumb_func_start Task_WateringBerryTreeAnim_1
+Task_WateringBerryTreeAnim_1: @ 80C70BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7120 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7124 @ =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C70E8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C711A
+_080C70E8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D08
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r1, _080C7128 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2
+ str r1, [r0]
+_080C711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7120: .4byte gPlayerAvatar
+_080C7124: .4byte gMapObjects
+_080C7128: .4byte gTasks
+_080C712C: .4byte Task_WateringBerryTreeAnim_2
+ thumb_func_end Task_WateringBerryTreeAnim_1
+
+ thumb_func_start Task_WateringBerryTreeAnim_2
+Task_WateringBerryTreeAnim_2: @ 80C7130
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C7184 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7188 @ =gMapObjects
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7194
+ ldr r1, _080C718C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080C7190
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ b _080C7194
+ .align 2, 0
+_080C7184: .4byte gPlayerAvatar
+_080C7188: .4byte gMapObjects
+_080C718C: .4byte gTasks
+_080C7190:
+ ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3
+ str r0, [r2]
+_080C7194:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C719C: .4byte Task_WateringBerryTreeAnim_3
+ thumb_func_end Task_WateringBerryTreeAnim_2
+
+ thumb_func_start Task_WateringBerryTreeAnim_3
+Task_WateringBerryTreeAnim_3: @ 80C71A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80597D0
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPlayerAvatarTransitionFlags
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_WateringBerryTreeAnim_3
+
+ thumb_func_start DoWateringBerryTreeAnim
+DoWateringBerryTreeAnim: @ 80C71C4
+ push {lr}
+ ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C71D4: .4byte Task_WateringBerryTreeAnim_0
+ thumb_func_end DoWateringBerryTreeAnim
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_decoration.s b/asm/fldeff_decoration.s
new file mode 100755
index 000000000..38c5a6e61
--- /dev/null
+++ b/asm/fldeff_decoration.s
@@ -0,0 +1,907 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C68A4
+sub_80C68A4: @ 80C68A4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080C68E4 @ =sub_80C68EC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C68E8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68E4: .4byte sub_80C68EC
+_080C68E8: .4byte gTasks
+ thumb_func_end sub_80C68A4
+
+ thumb_func_start sub_80C68EC
+sub_80C68EC: @ 80C68EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C690C @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ bne _080C6910
+ movs r0, 0
+ b _080C6912
+ .align 2, 0
+_080C690C: .4byte gTasks + 0x8
+_080C6910:
+ adds r0, r1, 0x1
+_080C6912:
+ strh r0, [r4, 0x6]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080C6964
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _080C692C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ bl DoBalloonSoundEffect
+_080C692C:
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x8]
+ ldrh r3, [r4]
+ adds r2, r3
+ lsls r2, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x3
+ bne _080C6960
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6964
+_080C6960:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_080C6964:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C68EC
+
+ thumb_func_start DoBalloonSoundEffect
+DoBalloonSoundEffect: @ 80C696C
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C6998
+ cmp r1, r0
+ bgt _080C6988
+ movs r0, 0x8A
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69B0
+ b _080C69B6
+_080C6988:
+ movs r0, 0xCF
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69A0
+ adds r0, 0x4
+ cmp r1, r0
+ beq _080C69A8
+ b _080C69B6
+_080C6998:
+ movs r0, 0x4A
+ bl PlaySE
+ b _080C69B6
+_080C69A0:
+ movs r0, 0x4B
+ bl PlaySE
+ b _080C69B6
+_080C69A8:
+ movs r0, 0x4C
+ bl PlaySE
+ b _080C69B6
+_080C69B0:
+ movs r0, 0x4E
+ bl PlaySE
+_080C69B6:
+ pop {r0}
+ bx r0
+ thumb_func_end DoBalloonSoundEffect
+
+ thumb_func_start FldEff_Nop47
+FldEff_Nop47: @ 80C69BC
+ movs r0, 0
+ bx lr
+ thumb_func_end FldEff_Nop47
+
+ thumb_func_start FldEff_Nop48
+FldEff_Nop48: @ 80C69C0
+ movs r0, 0
+ bx lr
+ thumb_func_end FldEff_Nop48
+
+ thumb_func_start sub_80C69C4
+sub_80C69C4: @ 80C69C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x4D
+ bl PlaySE
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ ldr r2, _080C6A0C @ =0x00000276
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ subs r6, r4, 0x1
+ ldr r2, _080C6A10 @ =0x0000026e
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CurrentMapDrawMetatileAt
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6A0C: .4byte 0x00000276
+_080C6A10: .4byte 0x0000026e
+ thumb_func_end sub_80C69C4
+
+ thumb_func_start sub_80C6A14
+sub_80C6A14: @ 80C6A14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6A44 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ bne _080C6A48
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ movs r3, 0xC
+ ldrsh r1, [r1, r3]
+ bl sub_80C69C4
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6A4C
+ .align 2, 0
+_080C6A44: .4byte gTasks
+_080C6A48:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+_080C6A4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6A14
+
+ thumb_func_start sub_80C6A54
+sub_80C6A54: @ 80C6A54
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r7, r5, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6A7C
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ asrs r1, 16
+ bl sub_80C69C4
+ b _080C6A9E
+_080C6A7C:
+ cmp r0, 0x2
+ bne _080C6A9E
+ ldr r0, _080C6AA4 @ =sub_80C6A14
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6AA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r7, [r1, 0xA]
+ strh r6, [r1, 0xC]
+_080C6A9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6AA4: .4byte sub_80C6A14
+_080C6AA8: .4byte gTasks
+ thumb_func_end sub_80C6A54
+
+ thumb_func_start Task_DecorationSoundEffect
+Task_DecorationSoundEffect: @ 80C6AAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6AE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ beq _080C6AC8
+ b _080C6C26
+_080C6AC8:
+ ldr r2, _080C6AE8 @ =0xfffffd88
+ adds r0, r2, 0
+ ldrh r1, [r1, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ bls _080C6ADA
+ b _080C6C1E
+_080C6ADA:
+ lsls r0, 2
+ ldr r1, _080C6AEC @ =_080C6AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6AE4: .4byte gTasks
+_080C6AE8: .4byte 0xfffffd88
+_080C6AEC: .4byte _080C6AF0
+ .align 2, 0
+_080C6AF0:
+ .4byte _080C6BE0
+ .4byte _080C6BE8
+ .4byte _080C6BF0
+ .4byte _080C6BF8
+ .4byte _080C6C00
+ .4byte _080C6C08
+ .4byte _080C6C10
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C18
+_080C6BE0:
+ movs r0, 0x3E
+ bl PlaySE
+ b _080C6C1E
+_080C6BE8:
+ movs r0, 0x3F
+ bl PlaySE
+ b _080C6C1E
+_080C6BF0:
+ movs r0, 0x40
+ bl PlaySE
+ b _080C6C1E
+_080C6BF8:
+ movs r0, 0x41
+ bl PlaySE
+ b _080C6C1E
+_080C6C00:
+ movs r0, 0x42
+ bl PlaySE
+ b _080C6C1E
+_080C6C08:
+ movs r0, 0x43
+ bl PlaySE
+ b _080C6C1E
+_080C6C10:
+ movs r0, 0x44
+ bl PlaySE
+ b _080C6C1E
+_080C6C18:
+ movs r0, 0x45
+ bl PlaySE
+_080C6C1E:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6C2A
+_080C6C26:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_080C6C2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_DecorationSoundEffect
+
+ thumb_func_start DoDecorationSoundEffect
+DoDecorationSoundEffect: @ 80C6C30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _080C6C5C @ =Task_DecorationSoundEffect
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6C60 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6C5C: .4byte Task_DecorationSoundEffect
+_080C6C60: .4byte gTasks
+ thumb_func_end DoDecorationSoundEffect
+
+ thumb_func_start SpriteCB_YellowCave4Sparkle
+SpriteCB_YellowCave4Sparkle: @ 80C6C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080C6C7C
+ movs r0, 0xC3
+ bl PlaySE
+_080C6C7C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1F
+ ble _080C6C8A
+ adds r0, r4, 0
+ bl DestroySprite
+_080C6C8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_YellowCave4Sparkle
+
+ thumb_func_start DoYellowCave4Sparkle
+DoYellowCave4Sparkle: @ 80C6C90
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r3, _080C6D28 @ =gMapObjects
+ ldr r2, _080C6D2C @ =gPlayerAvatar
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x12]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers
+ ldr r0, [r0, 0x58]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080C6D1E
+ ldr r3, _080C6D34 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r3
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080C6D1E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6D28: .4byte gMapObjects
+_080C6D2C: .4byte gPlayerAvatar
+_080C6D30: .4byte gFieldEffectObjectTemplatePointers
+_080C6D34: .4byte gSprites
+_080C6D38: .4byte SpriteCB_YellowCave4Sparkle
+ thumb_func_end DoYellowCave4Sparkle
+
+ thumb_func_start FldEff_SandPillar
+FldEff_SandPillar: @ 80C6D3C
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r1, _080C6D78 @ =gFieldEffectArguments
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r1, 0x14]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [r1, 0x18]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080C6DBC
+ cmp r0, 0x2
+ bgt _080C6D7C
+ cmp r0, 0x1
+ beq _080C6D86
+ b _080C6E4C
+ .align 2, 0
+_080C6D78: .4byte gFieldEffectArguments
+_080C6D7C:
+ cmp r0, 0x3
+ beq _080C6DEC
+ cmp r0, 0x4
+ beq _080C6E24
+ b _080C6E4C
+_080C6D86:
+ ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6DB4 @ =gSprites
+ ldr r1, _080C6DB8 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x20
+ movs r3, 0
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6DB0: .4byte gSpriteTemplate_83D26A0
+_080C6DB4: .4byte gSprites
+_080C6DB8: .4byte gPlayerAvatar
+_080C6DBC:
+ ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6DE4 @ =gSprites
+ ldr r1, _080C6DE8 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ b _080C6E0C
+ .align 2, 0
+_080C6DE0: .4byte gSpriteTemplate_83D26A0
+_080C6DE4: .4byte gSprites
+_080C6DE8: .4byte gPlayerAvatar
+_080C6DEC:
+ ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6E18 @ =gSprites
+ ldr r1, _080C6E1C @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ ldr r3, _080C6E20 @ =0xfff80000
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+_080C6E0C:
+ movs r3, 0x94
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6E14: .4byte gSpriteTemplate_83D26A0
+_080C6E18: .4byte gSprites
+_080C6E1C: .4byte gPlayerAvatar
+_080C6E20: .4byte 0xfff80000
+_080C6E24:
+ ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6E5C @ =gSprites
+ ldr r1, _080C6E60 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0xC0
+ lsls r3, 13
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+ movs r3, 0x94
+ bl CreateSprite
+_080C6E4C:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6E58: .4byte gSpriteTemplate_83D26A0
+_080C6E5C: .4byte gSprites
+_080C6E60: .4byte gPlayerAvatar
+ thumb_func_end FldEff_SandPillar
+
+ thumb_func_start SpriteCB_SandPillar_0
+SpriteCB_SandPillar_0: @ 80C6E64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ ldr r4, _080C6E90 @ =gFieldEffectArguments
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080C6E94 @ =0x00000286
+ cmp r0, r1
+ bne _080C6E9C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ ldr r2, _080C6E98 @ =0x00000e02
+ bl MapGridSetMetatileIdAt
+ b _080C6EAA
+ .align 2, 0
+_080C6E90: .4byte gFieldEffectArguments
+_080C6E94: .4byte 0x00000286
+_080C6E98: .4byte 0x00000e02
+_080C6E9C:
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ movs r2, 0xA1
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+_080C6EAA:
+ ldr r4, _080C6ED8 @ =gFieldEffectArguments
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6EDC @ =0x0000020a
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl CurrentMapDrawMetatileAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6ED8: .4byte gFieldEffectArguments
+_080C6EDC: .4byte 0x0000020a
+_080C6EE0: .4byte SpriteCB_SandPillar_1
+ thumb_func_end SpriteCB_SandPillar_0
+
+ thumb_func_start SpriteCB_SandPillar_1
+SpriteCB_SandPillar_1: @ 80C6EE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x11
+ bgt _080C6EF8
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080C6F14
+_080C6EF8:
+ ldr r4, _080C6F1C @ =gFieldEffectArguments
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6F20 @ =0x00000e8c
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2
+ str r0, [r5, 0x1C]
+_080C6F14:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6F1C: .4byte gFieldEffectArguments
+_080C6F20: .4byte 0x00000e8c
+_080C6F24: .4byte SpriteCB_SandPillar_2
+ thumb_func_end SpriteCB_SandPillar_1
+
+ thumb_func_start SpriteCB_SandPillar_2
+SpriteCB_SandPillar_2: @ 80C6F28
+ push {lr}
+ movs r1, 0x34
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_SandPillar_2
+
+ thumb_func_start GetShieldToyTVDecorationInfo
+GetShieldToyTVDecorationInfo: @ 80C6F38
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080C6F70 @ =0x000002f5
+ cmp r1, r0
+ beq _080C6FE8
+ cmp r1, r0
+ bgt _080C6F74
+ subs r0, 0x17
+ cmp r1, r0
+ beq _080C6FB0
+ adds r0, 0x16
+ cmp r1, r0
+ beq _080C6FDC
+ b _080C6FFA
+ .align 2, 0
+_080C6F70: .4byte 0x000002f5
+_080C6F74:
+ ldr r0, _080C6F9C @ =0x000002f6
+ cmp r1, r0
+ beq _080C6FF4
+ adds r0, 0x40
+ cmp r1, r0
+ bne _080C6FFA
+ ldr r0, _080C6FA0 @ =gStringVar1
+ movs r1, 0x64
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FA4 @ =gStringVar2
+ ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank
+ bl StringCopy
+ ldr r1, _080C6FAC @ =gScriptResult
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6F9C: .4byte 0x000002f6
+_080C6FA0: .4byte gStringVar1
+_080C6FA4: .4byte gStringVar2
+_080C6FA8: .4byte gSecretBaseText_GoldRank
+_080C6FAC: .4byte gScriptResult
+_080C6FB0:
+ ldr r0, _080C6FCC @ =gStringVar1
+ movs r1, 0x32
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FD0 @ =gStringVar2
+ ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank
+ bl StringCopy
+ ldr r1, _080C6FD8 @ =gScriptResult
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6FCC: .4byte gStringVar1
+_080C6FD0: .4byte gStringVar2
+_080C6FD4: .4byte gSecretBaseText_SilverRank
+_080C6FD8: .4byte gScriptResult
+_080C6FDC:
+ ldr r1, _080C6FE4 @ =gScriptResult
+ movs r0, 0x1
+ b _080C6FF8
+ .align 2, 0
+_080C6FE4: .4byte gScriptResult
+_080C6FE8:
+ ldr r1, _080C6FF0 @ =gScriptResult
+ movs r0, 0x2
+ b _080C6FF8
+ .align 2, 0
+_080C6FF0: .4byte gScriptResult
+_080C6FF4:
+ ldr r1, _080C7004 @ =gScriptResult
+ movs r0, 0x3
+_080C6FF8:
+ strh r0, [r1]
+_080C6FFA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7004: .4byte gScriptResult
+ thumb_func_end GetShieldToyTVDecorationInfo
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_pc.s b/asm/fldeff_pc.s
new file mode 100755
index 000000000..32afe2050
--- /dev/null
+++ b/asm/fldeff_pc.s
@@ -0,0 +1,190 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FldEff_PCTurnOn
+FldEff_PCTurnOn: @ 80C6718
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r0, _080C6758 @ =sub_80C6760
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C675C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r4]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6758: .4byte sub_80C6760
+_080C675C: .4byte gTasks
+ thumb_func_end FldEff_PCTurnOn
+
+ thumb_func_start sub_80C6760
+sub_80C6760: @ 80C6760
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C6788 @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x4
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bhi _080C682E
+ lsls r0, 2
+ ldr r1, _080C678C @ =_080C6790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6788: .4byte gTasks + 0x8
+_080C678C: .4byte _080C6790
+ .align 2, 0
+_080C6790:
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C6800
+_080C67D4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ b _080C67EE
+_080C67E2:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x88
+ lsls r2, 2
+_080C67EE:
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080C682E
+_080C6800:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0x3D
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6834
+_080C682E:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+_080C6834:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6760
+
+ thumb_func_start sub_80C683C
+sub_80C683C: @ 80C683C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080C6874 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C6878
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ b _080C6888
+ .align 2, 0
+_080C6874: .4byte 0x00004054
+_080C6878:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _080C68A0 @ =0x00000e21
+ bl MapGridSetMetatileIdAt
+_080C6888:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68A0: .4byte 0x00000e21
+ thumb_func_end sub_80C683C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_poison.s b/asm/fldeff_poison.s
new file mode 100755
index 000000000..e76ccba05
--- /dev/null
+++ b/asm/fldeff_poison.s
@@ -0,0 +1,99 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start Task_FieldPoisonEffect
+Task_FieldPoisonEffect: @ 80C7008
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080C702C @ =gTasks + 0x8
+ adds r1, r0, r1
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C7046
+ cmp r0, 0x1
+ bgt _080C7030
+ cmp r0, 0
+ beq _080C7036
+ b _080C7062
+ .align 2, 0
+_080C702C: .4byte gTasks + 0x8
+_080C7030:
+ cmp r0, 0x2
+ beq _080C705A
+ b _080C7062
+_080C7036:
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080C7062
+ b _080C7052
+_080C7046:
+ ldrh r0, [r1, 0x2]
+ subs r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C7062
+_080C7052:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080C7062
+_080C705A:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C706C
+_080C7062:
+ ldr r2, _080C7070 @ =REG_MOSAIC
+ ldrh r1, [r1, 0x2]
+ lsls r0, r1, 4
+ orrs r0, r1
+ strh r0, [r2]
+_080C706C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7070: .4byte REG_MOSAIC
+ thumb_func_end Task_FieldPoisonEffect
+
+ thumb_func_start DoFieldPoisonEffect
+DoFieldPoisonEffect: @ 80C7074
+ push {lr}
+ movs r0, 0x4F
+ bl PlaySE
+ ldr r0, _080C7088 @ =Task_FieldPoisonEffect
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7088: .4byte Task_FieldPoisonEffect
+ thumb_func_end DoFieldPoisonEffect
+
+ thumb_func_start FieldPoisonEffectIsRunning
+FieldPoisonEffectIsRunning: @ 80C708C
+ push {lr}
+ ldr r0, _080C709C @ =Task_FieldPoisonEffect
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C709C: .4byte Task_FieldPoisonEffect
+ thumb_func_end FieldPoisonEffectIsRunning
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_recordmixing.s b/asm/fldeff_recordmixing.s
new file mode 100755
index 000000000..8c79cdef8
--- /dev/null
+++ b/asm/fldeff_recordmixing.s
@@ -0,0 +1,94 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CreateRecordMixingSprite
+CreateRecordMixingSprite: @ 80C71D8
+ push {r4,r5,lr}
+ ldr r0, _080C722C @ =gUnknown_083D2878
+ bl LoadSpritePalette
+ ldr r0, _080C7230 @ =gSpriteTemplate_83D2894
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7238
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080C7234 @ =gSprites
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r0, 0x10
+ movs r1, 0xD
+ bl sub_8060388
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ adds r0, r5, 0
+ b _080C723A
+ .align 2, 0
+_080C722C: .4byte gUnknown_083D2878
+_080C7230: .4byte gSpriteTemplate_83D2894
+_080C7234: .4byte gSprites
+_080C7238:
+ movs r0, 0x40
+_080C723A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end CreateRecordMixingSprite
+
+ thumb_func_start DestroyRecordMixingSprite
+DestroyRecordMixingSprite: @ 80C7240
+ push {r4-r7,lr}
+ ldr r4, _080C7274 @ =gSprites
+ adds r7, r4, 0
+ movs r6, 0
+ movs r5, 0x3F
+_080C724A:
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldr r1, [r0]
+ ldr r0, _080C7278 @ =gSpriteTemplate_83D2894
+ cmp r1, r0
+ bne _080C7264
+ adds r0, r4, 0
+ bl FreeSpritePalette
+ adds r0, r4, 0
+ bl DestroySprite
+_080C7264:
+ adds r4, 0x44
+ adds r6, 0x44
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C724A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7274: .4byte gSprites
+_080C7278: .4byte gSpriteTemplate_83D2894
+ thumb_func_end DestroyRecordMixingSprite
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_secretpower.s b/asm/fldeff_secretpower.s
new file mode 100755
index 000000000..a8e9b5883
--- /dev/null
+++ b/asm/fldeff_secretpower.s
@@ -0,0 +1,640 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C6264
+sub_80C6264: @ 80C6264
+ push {lr}
+ ldr r0, _080C6278 @ =gUnknown_0203923C
+ ldr r1, _080C627C @ =gMapHeader
+ ldr r1, [r1, 0x4]
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6278: .4byte gUnknown_0203923C
+_080C627C: .4byte gMapHeader
+ thumb_func_end sub_80C6264
+
+ thumb_func_start sub_80C6280
+sub_80C6280: @ 80C6280
+ push {lr}
+ ldr r1, _080C6294 @ =gFieldEffectArguments
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080C62AA
+ cmp r0, 0x2
+ bgt _080C6298
+ cmp r0, 0x1
+ beq _080C62A2
+ b _080C62BE
+ .align 2, 0
+_080C6294: .4byte gFieldEffectArguments
+_080C6298:
+ cmp r0, 0x3
+ beq _080C62AE
+ cmp r0, 0x4
+ beq _080C62B8
+ b _080C62BE
+_080C62A2:
+ movs r0, 0x8
+ str r0, [r1, 0x14]
+ movs r0, 0x28
+ b _080C62BC
+_080C62AA:
+ movs r0, 0x8
+ b _080C62BA
+_080C62AE:
+ movs r0, 0x8
+ negs r0, r0
+ str r0, [r1, 0x14]
+ movs r0, 0x18
+ b _080C62BC
+_080C62B8:
+ movs r0, 0x18
+_080C62BA:
+ str r0, [r1, 0x14]
+_080C62BC:
+ str r0, [r1, 0x18]
+_080C62BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6280
+
+ thumb_func_start SetUpFieldMove_SecretPower
+SetUpFieldMove_SecretPower: @ 80C62C4
+ push {r4,lr}
+ bl sub_80BB63C
+ ldr r0, _080C6318 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080C636E
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C636E
+ ldr r4, _080C631C @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSecretBaseCave
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6330
+ bl sub_80C6264
+ ldr r1, _080C6320 @ =gFieldCallback
+ ldr r0, _080C6324 @ =FieldCallback_Teleport
+ str r0, [r1]
+ ldr r1, _080C6328 @ =gUnknown_03005CE4
+ ldr r0, _080C632C @ =sub_80C639C
+ b _080C6380
+ .align 2, 0
+_080C6318: .4byte gScriptResult
+_080C631C: .4byte gUnknown_0203923C
+_080C6320: .4byte gFieldCallback
+_080C6324: .4byte FieldCallback_Teleport
+_080C6328: .4byte gUnknown_03005CE4
+_080C632C: .4byte sub_80C639C
+_080C6330:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSecretBaseTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6360
+ bl sub_80C6264
+ ldr r1, _080C6350 @ =gFieldCallback
+ ldr r0, _080C6354 @ =FieldCallback_Teleport
+ str r0, [r1]
+ ldr r1, _080C6358 @ =gUnknown_03005CE4
+ ldr r0, _080C635C @ =sub_80C64A8
+ b _080C6380
+ .align 2, 0
+_080C6350: .4byte gFieldCallback
+_080C6354: .4byte FieldCallback_Teleport
+_080C6358: .4byte gUnknown_03005CE4
+_080C635C: .4byte sub_80C64A8
+_080C6360:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSecretBaseShrub
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C6372
+_080C636E:
+ movs r0, 0
+ b _080C6384
+_080C6372:
+ bl sub_80C6264
+ ldr r1, _080C638C @ =gFieldCallback
+ ldr r0, _080C6390 @ =FieldCallback_Teleport
+ str r0, [r1]
+ ldr r1, _080C6394 @ =gUnknown_03005CE4
+ ldr r0, _080C6398 @ =sub_80C660C
+_080C6380:
+ str r0, [r1]
+ movs r0, 0x1
+_080C6384:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C638C: .4byte gFieldCallback
+_080C6390: .4byte FieldCallback_Teleport
+_080C6394: .4byte gUnknown_03005CE4
+_080C6398: .4byte sub_80C660C
+ thumb_func_end SetUpFieldMove_SecretPower
+
+ thumb_func_start sub_80C639C
+sub_80C639C: @ 80C639C
+ push {lr}
+ ldr r1, _080C63B0 @ =gFieldEffectArguments
+ ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C63B8 @ =gUnknown_081A2CE6
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C63B0: .4byte gFieldEffectArguments
+_080C63B4: .4byte gLastFieldPokeMenuOpened
+_080C63B8: .4byte gUnknown_081A2CE6
+ thumb_func_end sub_80C639C
+
+ thumb_func_start FldEff_UseSecretPowerCave
+FldEff_UseSecretPowerCave: @ 80C63BC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C63E0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C63E4 @ =sub_80C63E8
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C63E0: .4byte gTasks
+_080C63E4: .4byte sub_80C63E8
+ thumb_func_end FldEff_UseSecretPowerCave
+
+ thumb_func_start sub_80C63E8
+sub_80C63E8: @ 80C63E8
+ push {lr}
+ movs r0, 0xB
+ bl FieldEffectActiveListRemove
+ movs r0, 0x37
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C63E8
+
+ thumb_func_start FldEff_SecretPowerCave
+FldEff_SecretPowerCave: @ 80C63FC
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C643C @ =gSpriteTemplate_83D2614
+ ldr r3, _080C6440 @ =gSprites
+ ldr r1, _080C6444 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6448 @ =gFieldEffectArguments
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C643C: .4byte gSpriteTemplate_83D2614
+_080C6440: .4byte gSprites
+_080C6444: .4byte gPlayerAvatar
+_080C6448: .4byte gFieldEffectArguments
+ thumb_func_end FldEff_SecretPowerCave
+
+ thumb_func_start sub_80C644C
+sub_80C644C: @ 80C644C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C6464 @ =sub_80C6468
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6464: .4byte sub_80C6468
+ thumb_func_end sub_80C644C
+
+ thumb_func_start sub_80C6468
+sub_80C6468: @ 80C6468
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C6488
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6490
+ bl sub_80BB800
+ b _080C6490
+_080C6488:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6494 @ =sub_80C6498
+ str r0, [r1, 0x1C]
+_080C6490:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6494: .4byte sub_80C6498
+ thumb_func_end sub_80C6468
+
+ thumb_func_start sub_80C6498
+sub_80C6498: @ 80C6498
+ push {lr}
+ movs r1, 0x37
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6498
+
+ thumb_func_start sub_80C64A8
+sub_80C64A8: @ 80C64A8
+ push {lr}
+ ldr r1, _080C64BC @ =gFieldEffectArguments
+ ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C64C4 @ =gUnknown_081A2D3E
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C64BC: .4byte gFieldEffectArguments
+_080C64C0: .4byte gLastFieldPokeMenuOpened
+_080C64C4: .4byte gUnknown_081A2D3E
+ thumb_func_end sub_80C64A8
+
+ thumb_func_start FldEff_UseSecretPowerTree
+FldEff_UseSecretPowerTree: @ 80C64C8
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C64EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C64F0 @ =sub_80C64F4
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C64EC: .4byte gTasks
+_080C64F0: .4byte sub_80C64F4
+ thumb_func_end FldEff_UseSecretPowerTree
+
+ thumb_func_start sub_80C64F4
+sub_80C64F4: @ 80C64F4
+ push {lr}
+ movs r0, 0x1A
+ bl FieldEffectActiveListRemove
+ movs r0, 0x38
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C64F4
+
+ thumb_func_start FldEff_SecretPowerTree
+FldEff_SecretPowerTree: @ 80C6508
+ push {r4,lr}
+ ldr r1, _080C6580 @ =gUnknown_0203923C
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r2, r0, 0
+ ldr r1, _080C6584 @ =0x00000fff
+ adds r0, r1, 0
+ ands r2, r0
+ cmp r2, 0x96
+ bne _080C652A
+ ldr r1, _080C6588 @ =gFieldEffectArguments
+ movs r0, 0
+ str r0, [r1, 0x1C]
+_080C652A:
+ cmp r2, 0x9C
+ bne _080C6534
+ ldr r1, _080C6588 @ =gFieldEffectArguments
+ movs r0, 0x2
+ str r0, [r1, 0x1C]
+_080C6534:
+ bl sub_80C6280
+ ldr r0, _080C658C @ =gSpriteTemplate_83D262C
+ ldr r3, _080C6590 @ =gSprites
+ ldr r1, _080C6594 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6588 @ =gFieldEffectArguments
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0x1
+ beq _080C6572
+ cmp r0, 0x3
+ bne _080C6576
+_080C6572:
+ bl sub_80BB800
+_080C6576:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6580: .4byte gUnknown_0203923C
+_080C6584: .4byte 0x00000fff
+_080C6588: .4byte gFieldEffectArguments
+_080C658C: .4byte gSpriteTemplate_83D262C
+_080C6590: .4byte gSprites
+_080C6594: .4byte gPlayerAvatar
+ thumb_func_end FldEff_SecretPowerTree
+
+ thumb_func_start sub_80C6598
+sub_80C6598: @ 80C6598
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x9B
+ bl PlaySE
+ ldr r0, _080C65BC @ =gFieldEffectArguments
+ ldr r1, [r0, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r0, 0
+ strb r1, [r2]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65C0 @ =sub_80C65C4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65BC: .4byte gFieldEffectArguments
+_080C65C0: .4byte sub_80C65C4
+ thumb_func_end sub_80C6598
+
+ thumb_func_start sub_80C65C4
+sub_80C65C4: @ 80C65C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080C65EE
+ ldr r0, _080C65F4 @ =gFieldEffectArguments
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080C65E2
+ cmp r0, 0x2
+ bne _080C65E6
+_080C65E2:
+ bl sub_80BB800
+_080C65E6:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65F8 @ =sub_80C65FC
+ str r0, [r4, 0x1C]
+_080C65EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65F4: .4byte gFieldEffectArguments
+_080C65F8: .4byte sub_80C65FC
+ thumb_func_end sub_80C65C4
+
+ thumb_func_start sub_80C65FC
+sub_80C65FC: @ 80C65FC
+ push {lr}
+ movs r1, 0x38
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C65FC
+
+ thumb_func_start sub_80C660C
+sub_80C660C: @ 80C660C
+ push {lr}
+ ldr r1, _080C6620 @ =gFieldEffectArguments
+ ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C6628 @ =gUnknown_081A2D96
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6620: .4byte gFieldEffectArguments
+_080C6624: .4byte gLastFieldPokeMenuOpened
+_080C6628: .4byte gUnknown_081A2D96
+ thumb_func_end sub_80C660C
+
+ thumb_func_start FldEff_UseSecretPowerShrub
+FldEff_UseSecretPowerShrub: @ 80C662C
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6650 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C6654 @ =sub_80C6658
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6650: .4byte gTasks
+_080C6654: .4byte sub_80C6658
+ thumb_func_end FldEff_UseSecretPowerShrub
+
+ thumb_func_start sub_80C6658
+sub_80C6658: @ 80C6658
+ push {lr}
+ movs r0, 0x1B
+ bl FieldEffectActiveListRemove
+ movs r0, 0x39
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6658
+
+ thumb_func_start FldEff_SecretPowerShrub
+FldEff_SecretPowerShrub: @ 80C666C
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C66AC @ =gSpriteTemplate_83D2644
+ ldr r3, _080C66B0 @ =gSprites
+ ldr r1, _080C66B4 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C66B8 @ =gFieldEffectArguments
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C66AC: .4byte gSpriteTemplate_83D2644
+_080C66B0: .4byte gSprites
+_080C66B4: .4byte gPlayerAvatar
+_080C66B8: .4byte gFieldEffectArguments
+ thumb_func_end FldEff_SecretPowerShrub
+
+ thumb_func_start sub_80C66BC
+sub_80C66BC: @ 80C66BC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA9
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C66D4 @ =sub_80C66D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C66D4: .4byte sub_80C66D8
+ thumb_func_end sub_80C66BC
+
+ thumb_func_start sub_80C66D8
+sub_80C66D8: @ 80C66D8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C66F8
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6700
+ bl sub_80BB800
+ b _080C6700
+_080C66F8:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6704 @ =sub_80C6708
+ str r0, [r1, 0x1C]
+_080C6700:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6704: .4byte sub_80C6708
+ thumb_func_end sub_80C66D8
+
+ thumb_func_start sub_80C6708
+sub_80C6708: @ 80C6708
+ push {lr}
+ movs r1, 0x39
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6708
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s
new file mode 100755
index 000000000..d549d85e1
--- /dev/null
+++ b/asm/pc_screen_effect.s
@@ -0,0 +1,726 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C5CD4
+sub_80C5CD4: @ 80C5CD4
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5D64 @ =gUnknown_083D1898
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5D68 @ =gUnknown_083D18A0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5D70 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0xA]
+ strh r6, [r7, 0x8]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5D4E
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5D4E:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5D58
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5D58:
+ ldr r0, _080C5D74 @ =gUnknown_020387EC
+ str r7, [r0]
+ movs r4, 0
+ ldr r5, _080C5D78 @ =gSprites
+ b _080C5D94
+ .align 2, 0
+_080C5D64: .4byte gUnknown_083D1898
+_080C5D68: .4byte gUnknown_083D18A0
+_080C5D6C: .4byte gSpriteTemplate_83D18A8
+_080C5D70: .4byte 0xffff0000
+_080C5D74: .4byte gUnknown_020387EC
+_080C5D78: .4byte gSprites
+_080C5D7C:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r7, 0x4]
+ cmp r4, 0x3
+ bhi _080C5D8C
+ negs r1, r1
+_080C5D8C:
+ strh r1, [r0, 0x2E]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080C5D94:
+ cmp r4, 0x7
+ bhi _080C5DB2
+ lsls r1, r4, 5
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080C5D7C
+_080C5DB2:
+ ldr r1, _080C5DC8 @ =REG_BLDCNT
+ movs r0, 0xBF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5DC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5CD4
+
+ thumb_func_start sub_80C5DCC
+sub_80C5DCC: @ 80C5DCC
+ push {r4,lr}
+ ldr r4, _080C5E10 @ =gUnknown_020387EC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ bne _080C5DF0
+ ldr r0, [r1, 0x10]
+ ldr r2, _080C5E14 @ =0x0000ffff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5E18 @ =sub_80C603C
+ bl sub_80C61B0
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5DF0:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x7
+ bls _080C5E0A
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ bgt _080C5E1C
+_080C5E0A:
+ movs r0, 0
+ b _080C5E2E
+ .align 2, 0
+_080C5E10: .4byte gUnknown_020387EC
+_080C5E14: .4byte 0x0000ffff
+_080C5E18: .4byte sub_80C603C
+_080C5E1C:
+ movs r0, 0x50
+ strh r0, [r1, 0xC]
+ ldr r0, _080C5E34 @ =REG_BLDCNT
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ bl ClearGpuRegBits
+ movs r0, 0x1
+_080C5E2E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5E34: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5DCC
+
+ thumb_func_start sub_80C5E38
+sub_80C5E38: @ 80C5E38
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5EC8 @ =gUnknown_083D1898
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5ECC @ =gUnknown_083D18A0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5ED4 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x50
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0x8]
+ strh r6, [r7, 0xA]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5EB2
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5EB2:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5EBC
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5EBC:
+ ldr r0, _080C5ED8 @ =gUnknown_020387EC
+ str r7, [r0]
+ movs r5, 0
+ ldr r6, _080C5EDC @ =gSprites
+ b _080C5F4A
+ .align 2, 0
+_080C5EC8: .4byte gUnknown_083D1898
+_080C5ECC: .4byte gUnknown_083D18A0
+_080C5ED0: .4byte gSpriteTemplate_83D18C0
+_080C5ED4: .4byte 0xffff0000
+_080C5ED8: .4byte gUnknown_020387EC
+_080C5EDC: .4byte gSprites
+_080C5EE0:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ strh r0, [r1, 0x2E]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5EF4 @ =gSprites
+ b _080C5F2A
+ .align 2, 0
+_080C5EF4: .4byte gSprites
+_080C5EF8:
+ lsls r1, r5, 21
+ movs r0, 0x80
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080C5F6E
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C5F88 @ =0x0000ffff
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5F8C @ =gSprites
+ lsls r4, r5, 5
+_080C5F2A:
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x36]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C5F4A:
+ cmp r5, 0x7
+ bhi _080C5F6E
+ cmp r5, 0x3
+ bhi _080C5EF8
+ lsls r4, r5, 5
+ adds r1, r4, 0
+ subs r1, 0x70
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080C5EE0
+_080C5F6E:
+ ldr r1, _080C5F90 @ =REG_BLDCNT
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080C5F94 @ =sub_80C6078
+ bl sub_80C61B0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5F88: .4byte 0x0000ffff
+_080C5F8C: .4byte gSprites
+_080C5F90: .4byte REG_BLDCNT
+_080C5F94: .4byte sub_80C6078
+ thumb_func_end sub_80C5E38
+
+ thumb_func_start sub_80C5F98
+sub_80C5F98: @ 80C5F98
+ push {r4,lr}
+ ldr r4, _080C5FB0 @ =gUnknown_020387EC
+ ldr r2, [r4]
+ ldrh r0, [r2, 0x8]
+ cmp r0, 0x1
+ beq _080C5FEC
+ cmp r0, 0x1
+ bgt _080C5FB4
+ cmp r0, 0
+ beq _080C5FBA
+ b _080C602C
+ .align 2, 0
+_080C5FB0: .4byte gUnknown_020387EC
+_080C5FB4:
+ cmp r0, 0x2
+ beq _080C6008
+ b _080C602C
+_080C5FBA:
+ ldrh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _080C6034
+ ldr r0, [r2, 0x10]
+ ldr r2, _080C5FE4 @ =0x0000ffff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5FE8 @ =sub_80C603C
+ bl SetHBlankCallback
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080C6000
+ .align 2, 0
+_080C5FE4: .4byte 0x0000ffff
+_080C5FE8: .4byte sub_80C603C
+_080C5FEC:
+ ldrh r0, [r2, 0xA]
+ cmp r0, 0x8
+ bne _080C6034
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, [r4]
+_080C6000:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C6034
+_080C6008:
+ ldr r0, _080C6030 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ bl ClearGpuRegBits
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C602C:
+ movs r0, 0x1
+ b _080C6036
+ .align 2, 0
+_080C6030: .4byte REG_BLDCNT
+_080C6034:
+ movs r0, 0
+_080C6036:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5F98
+
+ thumb_func_start sub_80C603C
+sub_80C603C: @ 80C603C
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C6060 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r3, 0xFF
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x50
+ bne _080C6068
+ ldr r1, _080C6064 @ =REG_BLDCNT
+ movs r0, 0x8F
+ strh r0, [r1]
+ b _080C606C
+ .align 2, 0
+_080C6060: .4byte REG_VCOUNT
+_080C6064: .4byte REG_BLDCNT
+_080C6068:
+ ldr r0, _080C6074 @ =REG_BLDCNT
+ strh r3, [r0]
+_080C606C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6074: .4byte REG_BLDCNT
+ thumb_func_end sub_80C603C
+
+ thumb_func_start sub_80C6078
+sub_80C6078: @ 80C6078
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C60B0 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080C60B4 @ =gUnknown_020387EC
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r2, [r0, r3]
+ movs r0, 0x50
+ subs r0, r2
+ cmp r1, r0
+ ble _080C60BC
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ cmp r1, r0
+ bge _080C60BC
+ ldr r1, _080C60B8 @ =REG_BLDY
+ movs r0, 0
+ b _080C60C0
+ .align 2, 0
+_080C60B0: .4byte REG_VCOUNT
+_080C60B4: .4byte gUnknown_020387EC
+_080C60B8: .4byte REG_BLDY
+_080C60BC:
+ ldr r1, _080C60C8 @ =REG_BLDY
+ movs r0, 0x10
+_080C60C0:
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C60C8: .4byte REG_BLDY
+ thumb_func_end sub_80C6078
+
+ thumb_func_start sub_80C60CC
+sub_80C60CC: @ 80C60CC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bls _080C611C
+ adds r0, r2, 0
+ bl DestroySprite
+ ldr r4, _080C6124 @ =gUnknown_020387EC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080C611C
+ ldrh r0, [r1]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ ldr r2, _080C6128 @ =0x0000ffff
+ movs r1, 0
+ bl BlendPalettes
+ ldr r0, _080C612C @ =sub_80C6078
+ bl SetHBlankCallback
+_080C611C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6124: .4byte gUnknown_020387EC
+_080C6128: .4byte 0x0000ffff
+_080C612C: .4byte sub_80C6078
+ thumb_func_end sub_80C60CC
+
+ thumb_func_start sub_80C6130
+sub_80C6130: @ 80C6130
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080C61AA
+ ldr r1, _080C6184 @ =gUnknown_020387EC
+ ldr r0, [r1]
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ adds r5, r1, 0
+ cmp r4, 0x1
+ bne _080C61AA
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080C616C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080C616C:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080C6188
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ blt _080C6196
+ b _080C6194
+ .align 2, 0
+_080C6184: .4byte gUnknown_020387EC
+_080C6188:
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bgt _080C6196
+_080C6194:
+ strh r4, [r2, 0x36]
+_080C6196:
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080C61AA
+ ldr r0, [r5]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x1
+ strh r1, [r0, 0xA]
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+_080C61AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6130
+
+ thumb_func_start sub_80C61B0
+sub_80C61B0: @ 80C61B0
+ push {r4-r6,lr}
+ ldr r2, _080C61F0 @ =INTR_CHECK
+ ldrh r1, [r2]
+ movs r5, 0x2
+ orrs r1, r5
+ strh r1, [r2]
+ ldr r3, _080C61F4 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ movs r2, 0x10
+ orrs r1, r2
+ strh r1, [r3]
+ ldr r4, _080C61F8 @ =0x04000208
+ ldrh r2, [r4]
+ movs r6, 0
+ strh r6, [r4]
+ ldr r3, _080C61FC @ =0x04000200
+ ldrh r1, [r3]
+ orrs r1, r5
+ strh r1, [r3]
+ strh r2, [r4]
+ ldr r2, _080C6200 @ =gMain
+ ldrh r1, [r2, 0x1C]
+ orrs r1, r5
+ ldrh r3, [r2, 0x1C]
+ orrs r1, r6
+ strh r1, [r2, 0x1C]
+ bl SetHBlankCallback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C61F0: .4byte INTR_CHECK
+_080C61F4: .4byte REG_DISPSTAT
+_080C61F8: .4byte 0x04000208
+_080C61FC: .4byte 0x04000200
+_080C6200: .4byte gMain
+ thumb_func_end sub_80C61B0
+
+ thumb_func_start ClearGpuRegBits
+ClearGpuRegBits: @ 80C6204
+ push {r4,r5,lr}
+ ldr r3, _080C6248 @ =INTR_CHECK
+ ldrh r1, [r3]
+ ldr r2, _080C624C @ =0x0000fffd
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r3, _080C6250 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ ldr r0, _080C6254 @ =0x0000ffef
+ ands r0, r1
+ strh r0, [r3]
+ ldr r4, _080C6258 @ =0x04000208
+ ldrh r3, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r5, _080C625C @ =0x04000200
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r0, _080C6260 @ =gMain
+ ldrh r1, [r0, 0x1C]
+ ands r2, r1
+ ldrh r1, [r0, 0x1C]
+ strh r2, [r0, 0x1C]
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6248: .4byte INTR_CHECK
+_080C624C: .4byte 0x0000fffd
+_080C6250: .4byte REG_DISPSTAT
+_080C6254: .4byte 0x0000ffef
+_080C6258: .4byte 0x04000208
+_080C625C: .4byte 0x04000200
+_080C6260: .4byte gMain
+ thumb_func_end ClearGpuRegBits
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/data-de/text/battle_strings.inc b/data-de/text/battle_strings.inc
deleted file mode 100644
index 0df0e87b4..000000000
--- a/data-de/text/battle_strings.inc
+++ /dev/null
@@ -1,2315 +0,0 @@
-BattleText_UnknownString:
- .string "{STRING 33}$"
-BattleText_GainExpPoints:
- .string "{STRING 0} erhält{PLAYER}\n"
- .string "{STRING 42} E-Punkte!\p"
- .string "$"
-BattleText_Terminator:
- .string "$"
-BattleText_BoostedExp:
- .string " spezielle$"
-BattleText_GrewLevel:
- .string "{STRING 0} erreicht\n"
- .string "Lv. {PLAYER}!{UNKNOWN_A}\p"
- .string "$"
-BattleText_LearnedMove:
- .string "{STRING 0} erlernt\n"
- .string "{PLAYER}!{UNKNOWN_A}\p"
- .string "$"
-BattleText_TryingToLearnMove:
- .string "{STRING 0} versucht,\n"
- .string "{PLAYER} zu lernen.\p"
- .string "$"
-BattleText_CantLearnMore:
- .string "Aber {STRING 0} kann nicht\n"
- .string "mehr als vier Attacken erlernen.\p"
- .string "$"
-BattleText_DeleteMove:
- .string "Soll eine Attacke zu Gunsten von\n"
- .string "{PLAYER} vergessen werden?$"
-BattleText_DeletedMove:
- .string "{STRING 0} hat\n"
- .string "{PLAYER} vergessen!\p"
- .string "$"
-BattleText_StopLearning:
- .string "{PAUSE 32}{PLAYER}\n"
- .string "nicht erlernen?$"
-BattleText_DidNotLearn:
- .string "{STRING 0} hat {PLAYER}\n"
- .string "nicht erlernt.\p"
- .string "$"
-BattleText_UseNext:
- .string "Nächstes POKéMON einsetzen?$"
-BattleText_AttackMissed:
- .string "Attacke von {EVIL_LEGENDARY}\n"
- .string "ging daneben!$"
-BattleText_ProtectedItself:
- .string "{GOOD_LEGENDARY}\n"
- .string "schützt sich selbst!$"
-BattleText_AvoidedDamage:
- .string "{GOOD_LEGENDARY} vermeidet\n"
- .string "Schaden mit {STRING 22}!$"
-BattleText_GroundMoveNegate:
- .string "{GOOD_LEGENDARY} wehrt BODEN-\n"
- .string "Attacken mit {STRING 22} ab!$"
-BattleText_AvoidedAttack:
- .string "{GOOD_LEGENDARY} wehrt die\n"
- .string "Attacke ab!$"
-BattleText_DoesntAffect:
- .string "Es hat keine Wirkung auf\n"
- .string "{GOOD_LEGENDARY}...$"
-BattleText_AttackingFainted:
- .string "{EVIL_LEGENDARY}\n"
- .string "wurde besiegt!\p"
- .string "$"
-BattleText_DefendingFainted:
- .string "{GOOD_LEGENDARY}\n"
- .string "wurde besiegt!\p"
- .string "$"
-BattleText_WinningPrize:
- .string "{STRING 32} gewinnt ¥{STRING 0}!\p"
- .string "$"
-BattleText_OutOfUsablePoke:
- .string "{STRING 32} hat kein\n"
- .string "kampffähiges POKéMON mehr!\p"
- .string "$"
-BattleText_WhitedOut:
- .string "{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}$"
-BattleText_PreventEscape:
- .string "{STRING 16} verhindert\n"
- .string "eine Flucht mit {STRING 23}!\p"
- .string "$"
-BattleText_CantEscape:
- .string "Flucht unmöglich!\p"
- .string "$"
-BattleText_AttackingCantEscape:
- .string "{EVIL_LEGENDARY}\n"
- .string "kann nicht fliehen!$"
-BattleText_HitMulti:
- .string "{STRING 0}-mal getroffen!$"
-BattleText_FellAsleep:
- .string "{STRING 14}\n"
- .string "ist eingeschlafen!$"
-BattleText_MadeAsleep:
- .string "{STRING 23} von\n"
- .string "{STRING 16} lässt\l"
- .string "{STRING 14} einschlafen!$"
-BattleText_DefendingAsleep:
- .string "{GOOD_LEGENDARY} schläft\n"
- .string "bereits!$"
-BattleText_AttackingAsleep:
- .string "{EVIL_LEGENDARY} schläft\n"
- .string "bereits!$"
-BattleText_WasntAffected:
- .string "{GOOD_LEGENDARY}\n"
- .string "ist unversehrt!$"
-BattleText_Poisoned:
- .string "{STRING 14}\n"
- .string "wurde vergiftet!$"
-BattleText_Poisoned2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} vergiftete\l"
- .string "{STRING 14}!$"
-BattleText_PoisonHurt:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "Gift verletzt!$"
-BattleText_AlreadyPoisoned:
- .string "{GOOD_LEGENDARY} ist bereits\n"
- .string "vergiftet.$"
-BattleText_BadlyPoisoned:
- .string "{STRING 14} wurde schwer\n"
- .string "vergiftet!$"
-BattleText_EnergyDrained:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "Energie abgesaugt!$"
-BattleText_Burned:
- .string "{STRING 14} brennt!$"
-BattleText_Burned2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verbrennt\l"
- .string "{STRING 14}!$"
-BattleText_BurnHurt:
- .string "Die Verbrennung schadet\n"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_AlreadyBurned:
- .string "{GOOD_LEGENDARY} brennt\n"
- .string "bereits.$"
-BattleText_Frozen:
- .string "{STRING 14} erstarrt\n"
- .string "zu Eis!$"
-BattleText_Frozen2:
- .string "{STRING 14} wurde durch\n"
- .string "{STRING 23} von\l"
- .string "{STRING 16} eingefroren!$"
-BattleText_FrozenSolid:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "eingefroren!$"
-BattleText_DefendingDefrosted:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "aufgetaut!$"
-BattleText_AttackingDefrosted:
- .string "{EVIL_LEGENDARY} wurde\n"
- .string "aufgetaut!$"
-BattleText_Defrosted:
- .string "{EVIL_LEGENDARY} wurde\n"
- .string "durch {STRING 17} aufgetaut!$"
-BattleText_Paralyzed:
- .string "{STRING 14} ist\n"
- .string "paralysiert! Es greift\l"
- .string "eventuell nicht an!$"
-BattleText_Paralyzed2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} paralysierte\p"
- .string "{STRING 14}!\n"
- .string "Es greift eventuell nicht an!$"
-BattleText_Paralyzed3:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "paralysiert! Es kann\l"
- .string "nicht angreifen!$"
-BattleText_AlreadyParalyzed:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "bereits paralysiert!$"
-BattleText_ParalysisHealed:
- .string "{GOOD_LEGENDARY} wurde von der\n"
- .string "Paralyse geheilt!$"
-BattleText_DreamEaten:
- .string "Der Traum von {GOOD_LEGENDARY}\n"
- .string "wurde gefressen!$"
-BattleText_AttackingStatNoHigher:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} kann nicht\l"
- .string "mehr erhöht werden!$"
-BattleText_DefendingStatNoHigher:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} kann nicht\l"
- .string "weiter gesenkt werden!$"
-BattleText_StoppedWorking:
- .string "{STRING 0} in deinem Team\n"
- .string "funktioniert nicht mehr!$"
-BattleText_StoppedWorking2:
- .string "{STRING 0} des Gegners\n"
- .string "funktioniert nicht mehr!$"
-BattleText_Confused:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "verwirrt!$"
-BattleText_ConfusionSnapOut:
- .string "{EVIL_LEGENDARY} ist nicht\n"
- .string "mehr verwirrt!$"
-BattleText_BecameConfused:
- .string "{STRING 14} wurde\n"
- .string "verwirrt!$"
-BattleText_AlreadyConfused:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "bereits verwirrt!$"
-BattleText_FellLove:
- .string "{GOOD_LEGENDARY}\n"
- .string "hat sich verliebt!$"
-BattleText_InLoveWith:
- .string "{EVIL_LEGENDARY} hat sich in\n"
- .string "{STRING 16} verliebt!$"
-BattleText_ImmobilizedBy:
- .string "{EVIL_LEGENDARY} ist starr\n"
- .string "vor Liebe!$"
-BattleText_BlownAway:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "weggeweht!$"
-BattleText_TypeTransform:
- .string "{EVIL_LEGENDARY} verwandelt\n"
- .string "sich zu Typ {STRING 0}!$"
-BattleText_Flinched:
- .string "{EVIL_LEGENDARY} schreckt\n"
- .string "zurück!$"
-BattleText_RegainedHealth:
- .string "{GOOD_LEGENDARY} erholt sich!$"
-BattleText_HPFull:
- .string "{GOOD_LEGENDARY} hat alle KP!$"
-BattleText_RaisedSpDef:
- .string "{STRING 17} von\n"
- .string "{STRING 38} erhöht\l"
- .string "die SP. VER.$"
-BattleText_RaisedSpDefLittle:
- .string "Die SP. VER. wird etwas durch\n"
- .string "{STRING 17} von\l"
- .string "{STRING 38} erhöht.$"
-BattleText_RaisedDefense:
- .string "{STRING 17} von\n"
- .string "{STRING 38}\l"
- .string "erhöht die VERTEIDIGUNG!$"
-BattleText_RaisedDefenseLittle:
- .string "{STRING 17} von\n"
- .string "{STRING 38}\l"
- .string "erhöht etwas die VERTEIDIGUNG!$"
-BattleText_CoveredVeil:
- .string "{STRING 38} wird von\n"
- .string "einem Schleier umhüllt!$"
-BattleText_SafeguardActive:
- .string "{GOOD_LEGENDARY} wird durch\n"
- .string "BODYGUARD geschützt!$"
-BattleText_SafeguardFaded:
- .string "BODYGUARD von\n"
- .string "{STRING 40} lässt nach!$"
-BattleText_WentToSleep:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "eingeschlafen!$"
-BattleText_SpeltHealthy:
- .string "{EVIL_LEGENDARY} schläft und\n"
- .string "erholt sich!$"
-BattleText_WhipWhirlwind:
- .string "{EVIL_LEGENDARY} entfacht\n"
- .string "einen Wirbelwind!$"
-BattleText_TookSunlight:
- .string "{EVIL_LEGENDARY} absorbiert\n"
- .string "Sonnenlicht!$"
-BattleText_LoweredHead:
- .string "{EVIL_LEGENDARY} zieht seinen\n"
- .string "Kopf ein!$"
-BattleText_IsGlowing:
- .string "{EVIL_LEGENDARY} leuchtet!$"
-BattleText_FlewHigh:
- .string "{EVIL_LEGENDARY} fliegt\n"
- .string "hoch empor!$"
-BattleText_DugHole:
- .string "{EVIL_LEGENDARY} gräbt sich\n"
- .string "ein!$"
-BattleText_HidUnderwater:
- .string "{EVIL_LEGENDARY} taucht\n"
- .string "unter!$"
-BattleText_SprangUp:
- .string "{EVIL_LEGENDARY} springt auf!$"
-BattleText_SqueezedBind:
- .string "{EVIL_LEGENDARY} setzt bei\n"
- .string "{GOOD_LEGENDARY}\l"
- .string "KLAMMERGRIFF ein!$"
-BattleText_TrappedVortex:
- .string "{GOOD_LEGENDARY} wurde in\n"
- .string "einem Strudel gefangen!$"
-BattleText_SandTombTrapped:
- .string "{GOOD_LEGENDARY} wurde durch\n"
- .string "SANDGRAB gefangen!$"
-BattleText_Wrapped:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "{EVIL_LEGENDARY} umWICKELt!$"
-BattleText_Clamped:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "{EVIL_LEGENDARY} geSCHNAPPT!$"
-BattleText_HurtBy:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "{STRING 0} verletzt!$"
-BattleText_FreedFrom:
- .string "{EVIL_LEGENDARY} wurde von\n"
- .string "{STRING 0} befreit!$"
-BattleText_KeptGoingCrash:
- .string "{EVIL_LEGENDARY} macht weiter\n"
- .string "und bricht zusammen!$"
-
-gUnknown_083FEE5D:: @ 83FEE5D
-BattleText_MistShroud:
- .string "{STRING 38} wird in\n"
- .string "WEISSNEBEL gehüllt!$"
-BattleText_MistProtect:
- .string "{STRING 16} wird durch\n"
- .string "WEISSNEBEL geschützt!$"
-
-gUnknown_083FEE92:: @ 83FEE92
-BattleText_GetPumped:
- .string "{EVIL_LEGENDARY} pumpt\n"
- .string "sich auf!$"
-BattleText_HitRecoil:
- .string "{EVIL_LEGENDARY} wurde vom\n"
- .string "Rückstoß getroffen!$"
-BattleText_ProtectedItself2:
- .string "{EVIL_LEGENDARY} schützt\n"
- .string "sich selbst!$"
-BattleText_SandBuffeted:
- .string "{EVIL_LEGENDARY} wird vom\n"
- .string "Sandsturm getroffen!$"
-BattleText_HailStricken:
- .string "{EVIL_LEGENDARY} wird vom\n"
- .string "HAGELSTURM getroffen!$"
-BattleText_WoreOff:
- .string "{STRING 0} von\n"
- .string "{STRING 36} lässt nach!$"
-BattleText_WasSeeded:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "bepflanzt!$"
-BattleText_EvadedAttack:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "ausgewichen!$"
-BattleText_HealthSapped:
- .string "EGELSAMEN schadet\n"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_FastAsleep:
- .string "{EVIL_LEGENDARY} schläft tief\n"
- .string "und fest.$"
-BattleText_WokeUp:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "aufgewacht!$"
-BattleText_UproarAwake:
- .string "AUFRUHR von {STRING 16}\n"
- .string "hält es wach!$"
-BattleText_UproarWoke:
- .string "{EVIL_LEGENDARY} wird durch\n"
- .string "AUFRUHR wach!$"
-BattleText_UproarCaused:
- .string "{EVIL_LEGENDARY} verursacht\n"
- .string "AUFRUHR!$"
-BattleText_UproarMaking:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "einen AUFRUHR!$"
-BattleText_CalmedDown:
- .string "{EVIL_LEGENDARY}\n"
- .string "beruhigt sich.$"
-BattleText_UproarCantSleep:
- .string "{GOOD_LEGENDARY} kann bei dem\n"
- .string "AUFRUHR nicht schlafen!$"
-BattleText_Stockpiled:
- .string "{EVIL_LEGENDARY} HORTET\n"
- .string "{STRING 0}!$"
-BattleText_StockpiledCant:
- .string "{EVIL_LEGENDARY} kann nicht\n"
- .string "weiter HORTEN!$"
-BattleText_UproarCantSleep2:
- .string "{GOOD_LEGENDARY} kann bei dem\n"
- .string "AUFRUHR nicht schlafen!$"
-BattleText_UproarKeptAwake:
- .string "Aber der AUFRUHR hält\n"
- .string "{GOOD_LEGENDARY} wach!$"
-BattleText_StayedAwake:
- .string "{GOOD_LEGENDARY} hält sich mit\n"
- .string "{STRING 22} wach!$"
-BattleText_StoringEnergy:
- .string "{EVIL_LEGENDARY} speichert\n"
- .string "Energie!$"
-BattleText_UnleashedEnergy:
- .string "{EVIL_LEGENDARY} erzeugt\n"
- .string "Energie!$"
-BattleText_FatigueConfuse:
- .string "{EVIL_LEGENDARY} ist vor\n"
- .string "Erschöpfung verwirrt!$"
-BattleText_PickedUpYen:
- .string "{STRING 32} hebt\n"
- .string "¥{STRING 0} auf!\p"
- .string "$"
-BattleText_Unaffected:
- .string "{GOOD_LEGENDARY} ist\n"
- .string "unversehrt!$"
-BattleText_Transformed:
- .string "{EVIL_LEGENDARY} verwandelt\n"
- .string "sich in {STRING 0}!$"
-BattleText_SubMade:
- .string "{EVIL_LEGENDARY} setzt einen\n"
- .string "DELEGATOR ein!$"
-BattleText_SubAlready:
- .string "{EVIL_LEGENDARY} hat bereits\n"
- .string "einen DELEGATOR!$"
-BattleText_SubTookDamage:
- .string "Der DELEGATOR steckt den\n"
- .string "Schlag für {GOOD_LEGENDARY}\l"
- .string "ein!\p"
- .string "$"
-BattleText_SubFaded:
- .string "DELEGATOR von\n"
- .string "{GOOD_LEGENDARY} lässt nach!\p"
- .string "$"
-BattleText_MustRecharge:
- .string "{EVIL_LEGENDARY} muss sich\n"
- .string "wieder aufladen!$"
-BattleText_RageBuilding:
- .string "{GOOD_LEGENDARY} verfällt in\n"
- .string "RASEREI!$"
-BattleText_MoveWasDisabled:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY}\l"
- .string "wurde blockiert!$"
-BattleText_DisabledNoMore:
- .string "{EVIL_LEGENDARY} ist nicht\n"
- .string "mehr blockiert!$"
-BattleText_EncoreGot:
- .string "{GOOD_LEGENDARY} gibt\n"
- .string "eine ZUGABE!$"
-BattleText_EncoreEnded:
- .string "ZUGABE von {EVIL_LEGENDARY}\n"
- .string "ist beendet!$"
-BattleText_TookAim:
- .string "{EVIL_LEGENDARY} zielt\n"
- .string "auf {GOOD_LEGENDARY}!$"
-BattleText_SketchedMove:
- .string "{EVIL_LEGENDARY} setzt\n"
- .string "NACHAHMER bei {STRING 0} ein!$"
-BattleText_DestinyBondTake:
- .string "{EVIL_LEGENDARY} versucht den\n"
- .string "Gegner mit sich zu nehmen!$"
-BattleText_DestinyBondTaken:
- .string "{GOOD_LEGENDARY} nimmt\n"
- .string "{EVIL_LEGENDARY} mit sich!$"
-BattleText_ReducedBy:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} wird um\l"
- .string "{PLAYER} reduziert!$"
-BattleText_StoleSomething:
- .string "{EVIL_LEGENDARY} stiehlt\n"
- .string "{STRING 19} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_CantEscapeNow:
- .string "{GOOD_LEGENDARY} kann\n"
- .string "nicht fliehen!$"
-BattleText_NightmareStart:
- .string "{GOOD_LEGENDARY} bekommt\n"
- .string "NACHTMAHR!$"
-BattleText_NightmareLock:
- .string "{EVIL_LEGENDARY} ist in\n"
- .string "NACHTMAHR gefangen!$"
-BattleText_CurseLay:
- .string "{EVIL_LEGENDARY} nimmt einen\n"
- .string "Teil seiner KP und legt einen\l"
- .string "FLUCH auf {GOOD_LEGENDARY}!$"
-BattleText_CurseAfflict:
- .string "{EVIL_LEGENDARY} wurde durch\n"
- .string "FLUCH verletzt!$"
-BattleText_SpikesScattered:
- .string "POKéMON-Team von {STRING 37}\n"
- .string "verteilt STACHELN um sich!$"
-BattleText_SpikesHurt:
- .string "{STRING 16} wurde durch\n"
- .string "STACHLER verletzt!$"
-BattleText_IdentifiedPoke:
- .string "{EVIL_LEGENDARY} erkennt\n"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_PerishSongFell:
- .string "ABGESANG von {EVIL_LEGENDARY}\n"
- .string "steht bei {STRING 0}!$"
-BattleText_BracedItself:
- .string "{EVIL_LEGENDARY} macht sich\n"
- .string "bereit!$"
-BattleText_EnduredHit:
- .string "{GOOD_LEGENDARY} setzt\n"
- .string "AUSDAUER ein!$"
-BattleText_MagnitudeCount:
- .string "INTENSITÄT {STRING 0}!$"
-BattleText_CutHPMaxATK:
- .string "{EVIL_LEGENDARY} nutzt seine\n"
- .string "KP und hebt den ANGR-Wert!$"
-BattleText_CopyStatChanges:
- .string "{EVIL_LEGENDARY} kopiert die\n"
- .string "Statusveränderungen\l"
- .string "von {GOOD_LEGENDARY}!$"
-BattleText_GotFreeFrom:
- .string "{EVIL_LEGENDARY} befreit\n"
- .string "sich von {STRING 0}\l"
- .string "von {GOOD_LEGENDARY}!$"
-BattleText_LeechShed:
- .string "{EVIL_LEGENDARY} befreit sich\n"
- .string "von EGELSAMEN!$"
-BattleText_SpikesBlownAway:
- .string "{EVIL_LEGENDARY} blies den\n"
- .string "STACHLER weg!$"
-BattleText_FledBattle:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "geflüchtet!$"
-BattleText_ForesawAttack:
- .string "{EVIL_LEGENDARY} sah eine\n"
- .string "Attacke voraus!$"
-BattleText_TookAttack:
- .string "{GOOD_LEGENDARY} wurde von\n"
- .string "der Attacke {STRING 0} getroffen!$"
-BattleText_ChoseDestiny:
- .string "{EVIL_LEGENDARY} wählte\n"
- .string "{STRING 17} als Vorhersehung aus!$"
-BattleText_PokeAttack:
- .string "Angriff von {STRING 0}!$"
-BattleText_CenterAttention:
- .string "{EVIL_LEGENDARY} zieht alle\n"
- .string "Aufmerksamkeit auf sich!$"
-BattleText_ChargingPower:
- .string "{EVIL_LEGENDARY} lädt\n"
- .string "sich auf!$"
-BattleText_NaturePower:
- .string "NATUR-KRAFT wurde zu\n"
- .string "{STRING 17}!$"
-BattleText_StatusNormal:
- .string "Status von {EVIL_LEGENDARY}\n"
- .string "wird normal!$"
-BattleText_TormentSubject:
- .string "{GOOD_LEGENDARY} wird von\n"
- .string "FOLTERKNECHT unterworfen!$"
-BattleText_TightenFocus:
- .string "{EVIL_LEGENDARY} verstärkt\n"
- .string "seinen Fokus!$"
-BattleText_TauntFell:
- .string "{GOOD_LEGENDARY} fällt auf\n"
- .string "VERHÖHNER herein!$"
-BattleText_ReadyToHelp:
- .string "{EVIL_LEGENDARY} will\n"
- .string "{GOOD_LEGENDARY} helfen!$"
-BattleText_SwitchedItems:
- .string "{EVIL_LEGENDARY} tauscht\n"
- .string "Items mit anderem PKMN!$"
-BattleText_Obtained1:
- .string "{EVIL_LEGENDARY} erhält\n"
- .string "{STRING 0}.$"
-BattleText_Obtained2:
- .string "{GOOD_LEGENDARY} erhält\n"
- .string "{PLAYER}.$"
-BattleText_Obtained3:
- .string "{EVIL_LEGENDARY} erhält\n"
- .string "{STRING 0}.\p"
- .string "{GOOD_LEGENDARY} erhält\n"
- .string "{PLAYER}.$"
-BattleText_CopiedObject:
- .string "{EVIL_LEGENDARY}\n"
- .string "kopiert {STRING 22} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_WishMade:
- .string "{EVIL_LEGENDARY} spricht einen\n"
- .string "WUNSCHTRAUM aus!$"
-BattleText_WishTrue:
- .string "WUNSCHTRAUM von\n"
- .string "{STRING 0} erfüllt sich!$"
-BattleText_PlantedRoots:
- .string "{EVIL_LEGENDARY} pflanzt seine\n"
- .string "Wurzeln!$"
-BattleText_AbsorbNutrients:
- .string "{EVIL_LEGENDARY} nimmt über\n"
- .string "seine Wurzeln Nährstoffe auf!$"
-BattleText_AnchoredItself:
- .string "{GOOD_LEGENDARY}\n"
- .string "verankert sich mit seinen Wurzeln!$"
-BattleText_DrowsyMade:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "{GOOD_LEGENDARY} schläfrig!$"
-BattleText_KnockedOffItem:
- .string "{EVIL_LEGENDARY}\n"
- .string "entreißt {STRING 19} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_AbilitySwap:
- .string "{EVIL_LEGENDARY} tauscht die\n"
- .string "Fähigkeiten mit einem PKMN!$"
-BattleText_SealedMove:
- .string "{EVIL_LEGENDARY} versiegelt\n"
- .string "die Attacke/n des Gegners!$"
-BattleText_GrudgeBear:
- .string "{EVIL_LEGENDARY} möchte, dass\n"
- .string "der Gegner ein NACHSPIEL erträgt!$"
-BattleText_GrudgeLosePP:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} hat aufgrund\l"
- .string "von NACHSPIEL alle AP verloren!$"
-BattleText_ShroudedItself:
- .string "{EVIL_LEGENDARY} verhüllt sich\n"
- .string "selbst in {STRING 17}!$"
-BattleText_MagicCoatBounce:
- .string "{STRING 17} von\n"
- .string "{EVIL_LEGENDARY} prallte am\l"
- .string "MAGIEMANTEL ab!$"
-BattleText_AwaitMove:
- .string "{EVIL_LEGENDARY} wartet auf\n"
- .string "eine gegnerische Attacke!$"
-BattleText_SnatchedMove:
- .string "{GOOD_LEGENDARY} ÜBERNAHM\n"
- .string "Attacke von {STRING 16}!$"
-BattleText_ElecWeakened:
- .string "Die Stärke der Elektrizität\n"
- .string "wurde geschwächt!$"
-BattleText_FireWeakened:
- .string "Die Stärke des Feuers\n"
- .string "wurde geschwächt!$"
-BattleText_FoundOne:
- .string "{EVIL_LEGENDARY} hat 1\n"
- .string "{STRING 19} gefunden!$"
-BattleText_SoothingAroma:
- .string "Ein wohltuendes Aroma\n"
- .string "breitet sich aus!$"
-BattleText_CantUseItems:
- .string "Hier können Items nicht eingesetzt\n"
- .string "werden.{PAUSE 64}$"
-BattleText_UnknownString2:
- .string "Für {STRING 16} war\n"
- .string "{STRING 19} {STRING 0}$"
-BattleText_HustleUse:
- .string "{STRING 16} setzt\n"
- .string "{STRING 19} ein, um zu drängeln!$"
-BattleText_LostFocus:
- .string "{EVIL_LEGENDARY} hat seinen\n"
- .string "Fokus verloren und kann\l"
- .string "nicht angreifen!$"
-BattleText_DraggedOut:
- .string "{GOOD_LEGENDARY} wurde\n"
- .string "auserwählt!\p"
- .string "$"
-BattleText_BrokeWall:
- .string "Die Mauer brach zusammen!$"
-BattleText_NoEffect:
- .string "Es ist wirkungslos!$"
-BattleText_NoMovesLeft:
- .string "{STRING 15} hat keine\n"
- .string "Attacken mehr übrig!\p"
- .string "$"
-BattleText_MoveIsDisabled:
- .string "{STRING 17} von\n"
- .string "{STRING 15} ist blockiert!\p"
- .string "$"
-BattleText_TormentNoUse:
- .string "{STRING 15} kann\n"
- .string "aufgrund von FOLTERKNECHT\p"
- .string "die Attacke nicht 2-mal\n"
- .string "hintereinander einsetzen!$"
-BattleText_TauntNoUse:
- .string "{STRING 15} kann\n"
- .string "{STRING 17} nach VERHÖHNER\l"
- .string "nicht einsetzen!\p"
- .string "$"
-BattleText_SealedNoUse:
- .string "{STRING 15} kann die ver-\n"
- .string "siegelte Attacke {STRING 17}\l"
- .string "nicht einsetzen!\p"
- .string "$"
-BattleText_RainMade:
- .string "{STRING 23} von\n"
- .string "{STRING 16} lässt\l"
- .string "es regnen!$"
-BattleText_SpeedRisen:
- .string "{STRING 23} von\n"
- .string "{STRING 16} erhöht\l"
- .string "seine INIT.!$"
-BattleText_ProtectedBy:
- .string "{GOOD_LEGENDARY} wurde durch\n"
- .string "{STRING 22} geschützt!$"
-BattleText_PreventedBy:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} hindert\p"
- .string "{EVIL_LEGENDARY} daran,\n"
- .string "{STRING 17} einzusetzen!$"
-BattleText_HPRestoredUsing:
- .string "{GOOD_LEGENDARY} füllt KP mit\n"
- .string "Hilfe von {STRING 22} auf!$"
-BattleText_MadeUseless:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} hebt die\l"
- .string "Wirkung von {STRING 17} auf!$"
-BattleText_MadeType:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht es zu\l"
- .string "einem {STRING 0}-Typ!$"
-BattleText_PreventedPara:
- .string "{STRING 22} von\n"
- .string "{STRING 14} verhindert\l"
- .string "eine Paralyse!$"
-BattleText_PreventedRomance:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verhindert\l"
- .string "eine Romanze!$"
-BattleText_PreventedPoison:
- .string "{STRING 22} von\n"
- .string "{STRING 14} verhindert\l"
- .string "eine Vergiftung!$"
-BattleText_PreventedConfusion:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verhindert\l"
- .string "Verwirrung!$"
-BattleText_RaisedFirePower:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} erhöht die\l"
- .string "FEUER-Kraft!$"
-BattleText_AnchorsItself:
- .string "{GOOD_LEGENDARY} verankert\n"
- .string "sich mit Hilfe von {STRING 22}!$"
-BattleText_CutsAttack:
- .string "{STRING 23} von\n"
- .string "{STRING 16} vermindert\l"
- .string "ANGRIFF von {GOOD_LEGENDARY}!$"
-BattleText_PreventedStatLoss:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verhindert\l"
- .string "Statusveränderungen!$"
-BattleText_HurtOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} verletzt\l"
- .string "{EVIL_LEGENDARY}!$"
-BattleText_Traced:
- .string "FÄHRTE von\n"
- .string "{STRING 16}\p"
- .string "erkennt {PLAYER}\n"
- .string "von {STRING 0}!$"
-BattleText_PreventedBurn:
- .string "{STRING 24} von\n"
- .string "{STRING 14} verhindert\l"
- .string "Verbrennung!$"
-BattleText_BlocksOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} blockiert\l"
- .string "{STRING 17}!$"
-BattleText_BlocksOther2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} blockiert\l"
- .string "{STRING 17}!$"
-BattleText_RestoredHPByItem:
- .string "{STRING 21} von\n"
- .string "{EVIL_LEGENDARY} füllt\l"
- .string "einige KP auf!$"
-BattleText_WhipSandstorm:
- .string "{STRING 23} von\n"
- .string "{STRING 16} entfacht\l"
- .string "einen Sandsturm!$"
-BattleText_SunIntensified:
- .string "{STRING 23} von\n"
- .string "{STRING 16} intensiviert\l"
- .string "die Sonnenstrahlen!$"
-BattleText_PreventedLoss:
- .string "{STRING 23} von\n"
- .string "{STRING 16} verhindert \l"
- .string "den Verlust von {STRING 0}!$"
-BattleText_InfatuatedPoke:
- .string "{EVIL_LEGENDARY} ist vernarrt\n"
- .string "in {STRING 22} von\l"
- .string "{GOOD_LEGENDARY}!$"
-BattleText_MadeIneffective:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht\l"
- .string "{STRING 17} wirkungslos!$"
-BattleText_CuredProblem:
- .string "{STRING 23} von\n"
- .string "{STRING 16} heilte sein\l"
- .string "Problem mit {STRING 0}!$"
-BattleText_OozeSuckup:
- .string "Es saugte\n"
- .string "KLOAKENSOSSE auf!$"
-BattleText_Transformed2:
- .string "{STRING 16}\n"
- .string "verwandelte sich!$"
-BattleText_TookAttack2:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} übernahm\l"
- .string "den Angriff!$"
-
-gUnknown_083FFCCA:: @ 83FFCCA
-BattleText_PreventedSwitch::
- .string "{STRING 20} von\n"
- .string "{STRING 0} verhindert\p"
- .string "Wechsel!\p"
- .string "$"
-BattleText_PreventedOther:
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} macht\p"
- .string "{STRING 0} von\n"
- .string "{STRING 16} wirkungslos!$"
-BattleText_MadeIneffective2:
- .string "{STRING 23} von\n"
- .string "{STRING 16} machte\l"
- .string "es wirkungslos!$"
-BattleText_PreventedFlinching:
- .string "{STRING 24} von\n"
- .string "{STRING 14} verhindert\l"
- .string "ein Zurückschrecken!$"
-BattleText_PreventedOther2:
- .string "{STRING 21} von\n"
- .string "{EVIL_LEGENDARY} macht\p"
- .string "{STRING 22} von\n"
- .string "{GOOD_LEGENDARY} wirkungslos!$"
-BattleText_CuredOfProblem:
- .string "{STRING 23} von\n"
- .string "{STRING 16} heilte sein\l"
- .string "Problem mit {STRING 0}!$"
-BattleText_NoEffectOn:
- .string "{STRING 23} von\n"
- .string "{STRING 16} hat keine\l"
- .string "Wirkung auf {STRING 14}!$"
-BattleText_Sharply:
- .string "steigt stark!$"
-
-gUnknown_083FFDB3:: @ 83FFDB3
-BattleText_Rose:
- .string "steigt.$"
-BattleText_Harshly:
- .string "sinkt stark!$"
-BattleText_Fell:
- .string "sinkt.$"
-BattleText_UnknownString7:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} {PLAYER}$"
-
-gUnknown_083FFDD3:: @ 83FFDD3
-BattleText_UnknownString3:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} {PLAYER}$"
-BattleText_UnknownString4:
- .string "{STRING 19}: {STRING 0} von\n"
- .string "{STRING 16} {PLAYER}$"
-BattleText_UnknownString5:
- .string "{STRING 0} von\n"
- .string "{EVIL_LEGENDARY} {PLAYER}$"
-BattleText_UnknownString6:
- .string "{STRING 0} von\n"
- .string "{GOOD_LEGENDARY} {PLAYER}$"
-BattleText_StatNoHigher:
- .string "Status von {EVIL_LEGENDARY}\n"
- .string "kann nicht weiter erhöht werden!$"
-BattleText_StatNoLower:
- .string "Status von {GOOD_LEGENDARY}\n"
- .string "kann nicht weiter sinken!$"
-BattleText_Critical:
- .string "Ein Volltreffer!$"
-BattleText_GrandSlam:
- .string "Ein K.O.-Treffer!$"
-BattleText_MoveForget123:
- .string "{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n"
- .string "{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p"
- .string "$"
-BattleText_MoveForgetAnd:
- .string "Und...\p"
- .string "$"
-BattleText_CantForgetHM:
- .string "VM-Attacken können jetzt \n"
- .string "nicht vergessen werden.\p"
- .string "$"
-BattleText_NotEffective:
- .string "Das ist nicht sehr effektiv...$"
-BattleText_SuperEffective:
- .string "Das ist sehr effektiv!$"
-
-gUnknown_083FFEFC:: @ 83FFEFC
-BattleText_GotAwaySafely:
- .string "{PLAY_SE 0x11 0x00}Du bist entkommen!\p"
- .string "$"
-BattleText_FledUsingItem:
- .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n"
- .string "durch Einsatz von {STRING 19}!\p"
- .string "$"
-BattleText_FledUsingOther:
- .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n"
- .string "durch Einsatz von {STRING 21}!\p"
- .string "$"
-BattleText_FledWild:
- .string "{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!$"
-
-gUnknown_083FFF56:: @ 83FFF56
-BattleText_PlayerDefeatedTrainer:
- .string "Spieler besiegte\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFF6A:: @ 83FFF6A
-BattleText_PlayerDefeatedTrainers:
- .string "Spieler besiegte\n"
- .string "{STRING 30} und {STRING 29}!$"
-
-gUnknown_083FFF81:: @ 83FFF81
-BattleText_PlayerLostTrainer:
- .string "Spieler verlor gegen\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFF99:: @ 83FFF99
-BattleText_PlayerLostTrainers:
- .string "Spieler verlor gegen\n"
- .string "{STRING 30} und {STRING 29}!$"
-
-gUnknown_083FFFB3:: @ 83FFFB3
-BattleText_PlayerTiedTrainer:
- .string "Patt zwischen Spieler und\n"
- .string "{STRING 29}!$"
-
-gUnknown_083FFFCB:: @ 83FFFCB
-BattleText_PlayerTiedTrainers:
- .string "Patt zwischen Spieler, {STRING 30}\n"
- .string "und {STRING 29}!$"
-
-gUnknown_083FFFEA:: @ 83FFFEA
-BattleText_FledSingle:
- .string "{PLAY_SE 0x11 0x00}{STRING 29} floh!$"
-
-gUnknown_083FFFF7:: @ 83FFFF7
-BattleText_FledDouble:
- .string "{PLAY_SE 0x11 0x00}{STRING 29} und\n"
- .string "{STRING 30} flohen!$"
-BattleText_NoRunning:
- .string "Du kannst aus TRAINER-Kämpfen\n"
- .string "nicht fliehen!\p"
- .string "$"
-BattleText_CantEscape2:
- .string "Flucht unmöglich!\p"
- .string "$"
-BattleText_BirchDontLeaveMe:
- .string "PROF. BIRK: Du... Du kannst mich doch\n"
- .string "nicht einfach im Stich lassen!\p"
- .string "$"
-BattleText_Nothing:
- .string "Nichts geschieht!$"
-BattleText_Failed:
- .string "Es schlug fehl!$"
-BattleText_HurtItself:
- .string "Es hat sich vor Verwirrung\n"
- .string "selbst verletzt!$"
-BattleText_MirrorFail:
- .string "Der SPIEGELTRICK schlug fehl!$"
-BattleText_RainStart:
- .string "Es fängt an zu regnen!$"
-BattleText_PourStart:
- .string "Ein Wolkenbruch!$"
-BattleText_RainCont1:
- .string "Es regnet weiter.$"
-BattleText_PourCont:
- .string "Der Wolkenbruch hält an.$"
-BattleText_RainStop:
- .string "Es hat aufgehört zu regnen.$"
-BattleText_SandBrewed:
- .string "Ein Sandsturm kommt auf!$"
-BattleText_SandRages:
- .string "Der Sandsturm tobt.$"
-BattleText_SandSubsided:
- .string "Der Sandsturm legt sich.$"
-BattleText_SunBright:
- .string "Das Sonnenlicht wird stärker!$"
-BattleText_SunStrong:
- .string "Gleißendes Sonnenlicht!$"
-BattleText_SunFaded:
- .string "Das Sonnenlicht lässt nach!$"
-BattleText_HailStart:
- .string "Es fängt an zu hageln!$"
-BattleText_HailCont:
- .string "Es hagelt!$"
-BattleText_HailStop:
- .string "Es hat aufgehört zu hageln.$"
-BattleText_SpitUpFail:
- .string "Aber es konnte nichts\n"
- .string "ENTFESSELN!$"
-BattleText_SwallowFail:
- .string "Aber es konnte nichts\n"
- .string "VERZEHREN!$"
-BattleText_WindHeatWave:
- .string "Der Wind wurde zu einer\n"
- .string "HITZEWELLE!$"
-BattleText_StatElim:
- .string "Alle Statusveränderungen wurden\n"
- .string "entfernt!$"
-BattleText_CoinScatter:
- .string "Es liegen überall Münzen verstreut!$"
-BattleText_SubWeak:
- .string "Zu schwach, um einen DELEGATOR\n"
- .string "einzusetzen!$"
-BattleText_PainSplit:
- .string "Die Kontrahenten teilen\n"
- .string "ihr Leid!$"
-BattleText_BellChime:
- .string "Eine Glocke läutet!$"
-BattleText_PerishSong:
- .string "Alle betroffenen POKéMON werden\n"
- .string "in 3 Runden K.O. gehen!$"
-BattleText_NoPP1:
- .string "Es sind keine AP mehr für\n"
- .string "diese Attacke übrig!\p"
- .string "$"
-BattleText_NoPP2:
- .string "Aber es waren keine AP mehr\n"
- .string "für diese Attacke übrig!$"
-BattleText_IgnoredOrdersSLP:
- .string "{EVIL_LEGENDARY} ignoriert die\n"
- .string "Befehle. Es schläft!$"
-BattleText_IgnoredOrders:
- .string "{EVIL_LEGENDARY} ignoriert den\n"
- .string "Befehl!$"
-BattleText_BeganNap:
- .string "{EVIL_LEGENDARY} macht\n"
- .string "ein Nickerchen!$"
-BattleText_LoafingAround:
- .string "{EVIL_LEGENDARY} faulenzt!$"
-BattleText_WontObey:
- .string "{EVIL_LEGENDARY} ist\n"
- .string "ungehorsam!$"
-BattleText_TurnedAway:
- .string "{EVIL_LEGENDARY} wendet\n"
- .string "sich ab!$"
-BattleText_NotNotice:
- .string "{EVIL_LEGENDARY} gibt vor,\n"
- .string "nichts zu bemerken!$"
-BattleText_WillSwitch:
- .string "Als Nächstes wird {PLAYER} von\n"
- .string "{STRING 25} {STRING 26} eingesetzt.\p"
- .string "Wird {STRING 32} das\n"
- .string "POKéMON wechseln?$"
-BattleText_LearnedMove2:
- .string "{EVIL_LEGENDARY} hat\n"
- .string "{STRING 0} gelernt!$"
-BattleText_PlayerDefeatedTrainer2:
- .string "Spieler besiegte\n"
- .string "{STRING 25} {STRING 26}!\p"
- .string "$"
-BattleText_CreptCloser:
- .string "{STRING 32} schleicht sich näher an\n"
- .string "{STR_VAR_2} heran!$"
-BattleText_CantGetCloser:
- .string "{STRING 32} kann nicht näher herangehen!$"
-BattleText_WatchingCarefully:
- .string "{STR_VAR_2} beobachtet\n"
- .string "alles aufmerksam!$"
-BattleText_CuriousAbout:
- .string "{STR_VAR_2} ist\n"
- .string "neugierig auf {STRING 0}!$"
-BattleText_EnthralledBy:
- .string "{STR_VAR_2} ist begeistert\n"
- .string "von {STRING 0}!$"
-BattleText_IgnoredThing:
- .string "{STR_VAR_2} ignoriert\n"
- .string "{STRING 0} völlig!$"
-BattleText_ThrewBlock:
- .string "{STRING 32} wirft {STR_VAR_2} einen\n"
- .string "{POKEBLOCK} zu!$"
-BattleText_SafariOver:
- .string "{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\n"
- .string "SAFARIBÄLLE mehr! Game over!\p"
- .string "$"
-
-gUnknown_08400555:: @ 8400555
-BattleText_WildAppeared1:
- .string "Ein wildes {STR_VAR_2} erscheint!\p"
- .string "$"
-
-gUnknown_08400568:: @ 8400568
-BattleText_WildAppeared2:
- .string "Ein wildes {STR_VAR_2} erscheint!\p"
- .string "$"
-
-gUnknown_0840057B:: @ 840057B
-BattleText_WildAppeared3:
- .string "Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}$"
-
-gUnknown_08400590:: @ 8400590
-BattleText_WildDoubleAppeared:
- .string "Ein wildes {KUN} und\n"
- .string "ein wildes {STR_VAR_2} erscheinen!\p"
- .string "$"
-
-gUnknown_084005AA:: @ 84005AA
-BattleText_SingleWantToBattle1:
- .string "Eine Herausforderung von\n"
- .string "{STRING 25} {STRING 26}!\p"
- .string "$"
-
-gUnknown_084005C7:: @ 84005C7
-BattleText_SingleWantToBattle2:
- .string "Eine Herausforderung von\n"
- .string "{STRING 29}!$"
-
-gUnknown_084005DB:: @ 84005DB
-BattleText_DoubleWantToBattle:
- .string "{STRING 29} und {STRING 30}\n"
- .string "möchten kämpfen!$"
-
-gUnknown_084005F5:: @ 84005F5
-BattleText_SentOutSingle1:
- .string "{STR_VAR_2} wird von\n"
- .string "{STRING 25} {STRING 26} in den\l"
- .string "Kampf geschickt!$"
-
-gUnknown_08400608:: @ 8400608
-BattleText_SentOutDouble1:
- .string "{STR_VAR_2} und {KUN}\n"
- .string "werden von\p"
- .string "{STRING 25} {STRING 26}\n"
- .string "in den Kampf geschickt!$"
-
-gUnknown_08400622:: @ 8400622
-BattleText_SentOutSingle2:
- .string "{STRING 0} wird von\n"
- .string "{STRING 25} {STRING 26}\l"
- .string "in den Kampf geschickt!$"
-
-gUnknown_08400635:: @ 8400635
-BattleText_SentOutSingle3:
- .string "{STRING 29} schickt\n"
- .string "{STR_VAR_2} in den Kampf!$"
-
-gUnknown_08400645:: @ 8400645
-BattleText_SentOutDouble2:
- .string "{STRING 29} schickt\n"
- .string "{STR_VAR_2} und {KUN}!$"
-
-gUnknown_0840065C:: @ 840065C
-BattleText_SentOutDouble3:
- .string "{STRING 29} schickt\n"
- .string "{VERSION}!\p"
- .string "{STRING 30} schickt\n"
- .string "{GOOD_TEAM}!$"
-
-gUnknown_0840067C:: @ 840067C
-BattleText_SentOutSingle4:
- .string "{STRING 29} schickt\n"
- .string "{STRING 0}!$"
-
-gUnknown_0840068C:: @ 840068C
-BattleText_SentOutSingle5:
- .string "{STRING 31} schickt\n"
- .string "{STRING 0}!$"
-
-gUnknown_0840069C:: @ 840069C
-BattleText_SentOutSingle6:
- .string "Los! {STR_VAR_1}!$"
-
-gUnknown_084006A4:: @ 84006A4
-BattleText_SentOutDouble4:
- .string "Los! {STR_VAR_1} und\n"
- .string "{STR_VAR_3}!$"
-
-gUnknown_084006B3:: @ 84006B3
-BattleText_SentOutSingle7:
- .string "Los! {STRING 0}!$"
-
-gUnknown_084006BB:: @ 84006BB
-BattleText_SentOutSingle8:
- .string "Du schaffst es! {STRING 0}!$"
-
-gUnknown_084006C6:: @ 84006C6
-BattleText_SentOutSingle9:
- .string "Streng dich an, {STRING 0}!$"
-
-gUnknown_084006D5:: @ 84006D5
-BattleText_SentOutSingle10:
- .string "Mach es fertig!\n"
- .string "Los, {STRING 0}!$"
-
-gUnknown_084006F1:: @ 84006F1
-BattleText_SentOutSingle11:
- .string "{STRING 28} schickt\n"
- .string "{EVIL_TEAM}!\p"
- .string "Los! {RIVAL}!$"
-
-gUnknown_08400709:: @ 8400709
-BattleText_ComeBackSingle1:
- .string "{STRING 0}, genug!\n"
- .string "Komm zurück!$"
-
-gUnknown_08400727:: @ 8400727
-BattleText_ComeBackSingle2:
- .string "{STRING 0}, komm zurück!$"
-
-gUnknown_08400736:: @ 8400736
-BattleText_ComeBackSingle3:
- .string "{STRING 0}, O.K.!\n"
- .string "Komm zurück!$"
-
-gUnknown_08400749:: @ 8400749
-BattleText_ComeBackSingle4:
- .string "{STRING 0}, gut!\n"
- .string "Komm zurück!$"
-
-gUnknown_0840075E:: @ 840075E
-BattleText_WithdrewPoke1:
- .string "{STRING 0} wurde\n"
- .string "von {STRING 25} {STRING 26}\l"
- .string "zurückgerufen!$"
-
-gUnknown_08400771:: @ 8400771
-BattleText_WithdrewPoke2:
- .string "{STRING 29} ruft\n"
- .string "{STRING 0} zurück!$"
-
-gUnknown_08400781:: @ 8400781
-BattleText_WithdrewPoke3:
- .string "{STRING 31} ruft\n"
- .string "{STRING 0} zurück!$"
-
-gUnknown_08400791:: @ 8400791
-BattleText_Wild:
- .string " (Wild)$"
-
-gUnknown_08400797:: @ 8400797
-BattleText_Foe:
- .string " (Gegner)$"
-
-gUnknown_0840079C:: @ 840079C
-BattleText_Foe2:
- .string "Gegner$"
-
-gUnknown_084007A1:: @ 84007A1
-BattleText_Ally:
- .string "Anwender$"
-
-gUnknown_084007A7:: @ 84007A7
-BattleText_Foe3:
- .string "Gegner$"
-
-gUnknown_084007AC:: @ 84007AC
-BattleText_Ally2:
- .string "Anwender$"
-
-gUnknown_084007B2:: @ 84007B2
-BattleText_Foe4:
- .string "Gegner$"
-
-gUnknown_084007B7:: @ 84007B7
-BattleText_Ally3:
- .string "Anwender$"
-
-gUnknown_084007BD:: @ 84007BD
-BattleText_OpponentUsedMove:
- .string "{EVIL_LEGENDARY} setzt\n"
- .string "{PLAYER} ein!$"
-
-gUnknown_084007C8:: @ 84007C8
-BattleText_Exclamation2:
- .string "$"
-
-gUnknown_084007CA:: @ 84007CA
-BattleText_Exclamation3:
- .string "$"
-
-gUnknown_084007CC:: @ 84007CC
-BattleText_Exclamation4:
- .string "$"
-
-gUnknown_084007CE:: @ 84007CE
-BattleText_Exclamation5:
- .string "$"
-
-gUnknown_084007D0:: @ 84007D0
-BattleText_Exclamation:
- .string "$"
-
-BattleStatText_HP: @ 84007D2
- .string "KP$"
-
-BattleStatText_Attack: @ 84007D5
- .string "ANGRIFF$"
-
-BattleStatText_Defense: @ 84007DC
- .string "VERT.$"
-
-BattleStatText_Speed: @ 84007E4
- .string "INIT.$"
-
-BattleStatText_SpAtk: @ 84007EA
- .string "SP.ANG.$"
-
-BattleStatText_SpDef: @ 84007F2
- .string "SP.VER.$"
-
-BattleStatText_Accuracy: @ 84007FA
- .string "GENAUIGKEIT$"
-
-BattleStatText_Evasion: @ 8400803
- .string "FLUCHTWERT$"
-
-ContestStatText_TooSpicy: @ 840080F
- .string "zu scharf!$"
-
-ContestStatText_TooDry: @ 840081E
- .string "zu trocken!$"
-
-ContestStatText_TooSweet: @ 840082B
- .string "zu süß!$"
-
-ContestStatText_TooBitter: @ 840083A
- .string "zu bitter!$"
-
-ContestStatText_TooSour: @ 840084A
- .string "zu sauer!$"
-BattleText_Used1:
- .string "{STRING 32} setzt\n"
- .string "{STRING 19} ein!$"
-BattleText_TutorialUsed:
- .string "HEIKO setzt\n"
- .string "{STRING 19} ein!$"
-BattleText_Used2:
- .string "{STRING 19} wird von\n"
- .string "{STRING 25} {STRING 26} eingesetzt!$"
-BattleText_BlockBall:
- .string "Der TRAINER hat den BALL abgeblockt!$"
-BattleText_DontBeAThief:
- .string "Sei kein Dieb!$"
-BattleText_DodgeBall:
- .string "Es ist dem BALL ausgewichen! Dieses\n"
- .string "POKéMON kann nicht gefangen werden!$"
-BattleText_MissPoke:
- .string "Du hast das POKéMON verfehlt!$"
-BattleText_BallBrokeOhNo:
- .string "Mist!\n"
- .string "Das POKéMON hat sich befreit!$"
-BattleText_BallBrokeAppeared:
- .string "Oh!\n"
- .string "Fast hätte es geklappt!$"
-BattleText_BallBrokeAlmost:
- .string "Mist!\n"
- .string "Das war knapp!$"
-BattleText_BallBrokeSoClose:
- .string "Verflixt!\n"
- .string "Es hätte beinahe geklappt!$"
-BattleText_BallCaught1:
- .string "Toll!\n"
- .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p"
- .string "$"
-BattleText_BallCaught2:
- .string "Toll!\n"
- .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}$"
-BattleText_GiveNickname:
- .string "Möchtest du dem {STR_VAR_2}\n"
- .string "einen Spitznamen geben?$"
-BattleText_SentToPC:
- .string "{STR_VAR_2} wurde auf\n"
- .string "{STRING 35} PC übertragen.$"
-
-gUnknown_084009ED:: @ 84009ED
-BattleText_Someone:
- .string "einen$"
-
-gUnknown_084009F7:: @ 84009F7
-BattleText_Lanette:
- .string "LANETTES$"
-BattleText_AddedToDex:
- .string "Für {STR_VAR_2} wurde ein Eintrag\n"
- .string "im POKéDEX angelegt.\p"
- .string "$"
-BattleText_Raining:
- .string "Es regnet.$"
-BattleText_Sandstorm:
- .string "Ein Sandsturm tobt.$"
-BattleText_BoxFull:
- .string "Die BOXEN sind voll!\n"
- .string "Du kannst keines mehr fangen!\p"
- .string "$"
-
-gUnknown_08400A78:: @ 8400A78
-BattleText_EnigmaBerry:
- .string "ENIGMABEERE$"
-
-gUnknown_08400A85:: @ 8400A85
-BattleText_Berry:
- .string "{STR_VAR_1}BEERE$"
-BattleText_CuredParalysis:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Paralyse!$"
-BattleText_CuredPoison:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Vergiftung!$"
-BattleText_CuredBurn:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "heilte die Verbrennung!$"
-BattleText_CuredFreeze:
- .string "{STRING 19} von\n"
- .string "{STRING 16} taute es auf!$"
-BattleText_CuredSleep:
- .string "{STRING 19} von\n"
- .string "{STRING 16} \l"
- .string "weckte es auf!$"
-BattleText_CuredConfusion:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "hebt die Verwirrung auf!$"
-BattleText_CuredStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16} \l"
- .string "heilte sein {STRING 0}-Problem!$"
-BattleText_NormalizedStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16} normalisierte\l"
- .string "seine Statuswerte!$"
-BattleText_RestoredHealth:
- .string "{STRING 19} füllte\n"
- .string "KP von {STRING 16} auf!$"
-BattleText_RestoredPP:
- .string "{STRING 19} von\n"
- .string "{STRING 16} füllte AP von\l"
- .string "{STRING 0} auf!$"
-BattleText_RestoredStatus:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\p"
- .string "stellte seine\n"
- .string "Statuswerte wieder her!$"
-BattleText_RestoredHPLittle:
- .string "{STRING 19} von\n"
- .string "{STRING 16}\l"
- .string "füllte einige KP auf!$"
-BattleText_ChoiceBand:
- .string "{STRING 19} erlaubt\n"
- .string "nur den Einsatz von {STRING 17}!\p"
- .string "$"
-BattleText_FocusSash:
- .string "{GOOD_LEGENDARY} hält\n"
- .string "mit Hilfe von\l"
- .string "{STRING 19} durch!$"
-BattleText_Terminator2:
- .string "$"
-BattleText_WallyBall:
- .string "Nun muss man einen BALL werfen, oder?\n"
- .string "Ich... Ich werde mein Bestes geben!$"
-
-gUnknown_08400C4A:: @ 8400C4A
-BattleText_StartEvo:
- .string "Hey?\n"
- .string "{STR_VAR_1} entwickelt sich!$"
-
-gUnknown_08400C60:: @ 8400C60
-BattleText_FinishEvo:
- .string "Glückwunsch! Dein {STR_VAR_1}\n"
- .string "wurde zu {STR_VAR_2}!{UNKNOWN_A}\p"
- .string "$"
-
-gUnknown_08400C8D:: @ 8400C8D
-BattleText_StopEvo:
- .string "Hm? Die Entwicklung\n"
- .string "wurde abgebrochen!\p"
- .string "$"
-
-gUnknown_08400CA8:: @ 8400CA8
-BattleText_OtherMenu:
- .string "Was soll\n"
- .string "{STRING 15} tun?$"
-
-gUnknown_08400CBB:: @ 8400CBB
-BattleText_PlayerMenu:
- .string "Was wird {STRING 32}\n"
- .string "tun?$"
-
-gUnknown_08400CCC:: @ 8400CCC
-BattleText_WallyMenu:
- .string "Was wird\n"
- .string "HEIKO tun?$"
-
-gUnknown_08400CE0:: @ 8400CE0
-BattleText_LinkStandby:
- .string "{PAUSE 16}Verbindung...$"
-
-gUnknown_08400CF3:: @ 8400CF3
-BattleText_MenuOptions:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\n"
- .string "POKéMON{CLEAR_TO 46}FLUCHT$"
-
-gUnknown_08400D15:: @ 8400D15
-BattleText_MenuOptionsSafari:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\n"
- .string "NÄHER{CLEAR_TO 46}FLUCHT$"
-
-gUnknown_08400D38:: @ 8400D38
-BattleText_PP:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\n"
- .string "TYP/$"
-
-gUnknown_08400D49:: @ 8400D49
-BattleText_Format:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-
-gUnknown_08400D52:: @ 8400D52
-BattleText_ForgetMove:
- .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?$"
-
-gUnknown_08400D7A:: @ 8400D7A
-BattleText_YesNo:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\n"
- .string "Nein$"
-
-gUnknown_08400D89:: @ 8400D89
-BattleText_SwitchWhich:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\n"
- .string "Wohin?$"
-
-gUnknown_08400D9F:: @ 8400D9F
-BattleText_Format2:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-BattleText_RightArrow:
- .string "{RIGHT_ARROW}$"
-
-gUnknown_08400DAA:: @ 8400DAA
-BattleText_Plus:
- .string "+$"
-
-gUnknown_08400DAC:: @ 8400DAC
-BattleText_Dash:
- .string "-$"
-BattleText_HP:
- .string "KP $"
-BattleText_Attack:
- .string "ANGR. $"
-BattleText_Defense:
- .string "VERT.$"
-BattleText_SpAtk:
- .string "SP.ANG.$"
-BattleText_SpDef:
- .string "SP.VER.$"
-
-gUnknown_08400DD6:: @ 8400DD6
-BattleText_SafariBalls::
- .string "{HIGHLIGHT RED}SAFARIBÄLLE$"
-
-gUnknown_08400DE6:: @ 8400DE6
-BattleText_SafariBallsLeft::
- .string "{HIGHLIGHT RED}Übrig: $"
-
-gUnknown_08400DF0:: @ 8400DF0
-BattleText_HighlightRed::
- .string "{HIGHLIGHT RED}$"
-
-BattleText_Sleep::
- .string "Schlaf$"
-BattleText_PoisonStatus::
- .string "Gift$"
-BattleText_Burn::
- .string "Verbrennung$"
-BattleText_Paralysis::
- .string "Paralyse$"
-BattleText_IceStatus::
- .string "Eis$"
-BattleText_Confusion::
- .string "Verwirrung$"
-BattleText_Love::
- .string "Liebe$"
-
-gUnknown_08400E23:: @ 8400E23
-BattleText_Format3:
- .string " und $"
-
-gUnknown_08400E29:: @ 8400E29
-BattleText_Format4:
- .string ", $"
-
-gUnknown_08400E2C:: @ 8400E2C
-BattleText_Format5:
- .string " $"
-
-gUnknown_08400E2E:: @ 8400E2E
-BattleText_Format6:
- .string "\l"
- .string "$"
-
-gUnknown_08400E30:: @ 8400E30
-BattleText_Format7:
- .string "\n"
- .string "$"
-
-gUnknown_08400E32:: @ 8400E32
-BattleText_Format8:
- .string "sind$"
-
-gUnknown_08400E36:: @ 8400E36
-BattleText_Format9:
- .string "sind$"
-
-gBadEggNickname:: @ 8400E3A
- .string "Schl. EI$"
-
-gUnknown_08400E42:: @ 8400E42
-BattleText_Wally::
- .string "HEIKO$"
-
-BattleText_Win:: @ 8400E48
- .string "{HIGHLIGHT TRANSPARENT}Sieg$"
-
-BattleText_Loss:: @ 8400E4F
- .string "{HIGHLIGHT TRANSPARENT}Ndrl.$"
-
-BattleText_Tie:: @ 8400E57
- .string "{HIGHLIGHT TRANSPARENT}Patt$"
-
-gUnknown_08400E5E:: @ 8400E5E
-BattleText_Format10:
- .string " ist$"
-
-gUnknown_08400E62:: @ 8400E62
-BattleText_Format11:
- .string "$"
-BattleText_Normal:
- .string "eine NORMALE Att.$"
-BattleText_Fighting:
- .string "eine KAMPF-Att.$"
-BattleText_Flying:
- .string "eine FLUG-Att.$"
-BattleText_Poison:
- .string "eine GIFT-Att.$"
-BattleText_Ground:
- .string "eine BODEN-Att.$"
-BattleText_Rock:
- .string "eine GESTEINS-Att.$"
-BattleText_Bug:
- .string "eine KÄFER-Att.$"
-BattleText_Ghost:
- .string "eine GEIST-Att.$"
-BattleText_Steel:
- .string "eine STAHL-Att.$"
-BattleText_Typeless:
- .string "eine ???-Attacke$"
-BattleText_Fire:
- .string "eine FEUER-Att.$"
-BattleText_Water:
- .string "eine WASSER-Att.$"
-BattleText_Grass:
- .string "eine PFLANZEN-Att.$"
-BattleText_Electric:
- .string "eine ELEKTRO-Att.$"
-BattleText_Psychic:
- .string "eine PSYCHO-Att.$"
-BattleText_Ice:
- .string "eine EIS-Att.$"
-BattleText_Dragon:
- .string "eine DRACHEN-Att.$"
-BattleText_Dark:
- .string "eine UNLICHT-Att.$"
-
- .align 2
-gUnknown_08400F58:: @ 8400F58
- .4byte BattleStatText_HP
- .4byte BattleStatText_Attack
- .4byte BattleStatText_Defense
- .4byte BattleStatText_Speed
- .4byte BattleStatText_SpAtk
- .4byte BattleStatText_SpDef
- .4byte BattleStatText_Accuracy
- .4byte BattleStatText_Evasion
-
- .align 2
-gUnknown_08400F78:: @ 8400F78
- .4byte ContestStatText_TooSpicy
- .4byte ContestStatText_TooDry
- .4byte ContestStatText_TooSweet
- .4byte ContestStatText_TooBitter
- .4byte ContestStatText_TooSour
-
- .align 2
-gBattleStringsTable:: @ 8400F8C
- .4byte BattleText_UnknownString
- .4byte BattleText_GainExpPoints
- .4byte BattleText_GrewLevel
- .4byte BattleText_LearnedMove
- .4byte BattleText_TryingToLearnMove
- .4byte BattleText_CantLearnMore
- .4byte BattleText_DeleteMove
- .4byte BattleText_DeletedMove
- .4byte BattleText_StopLearning
- .4byte BattleText_DidNotLearn
- .4byte BattleText_LearnedMove2
- .4byte BattleText_AttackMissed
- .4byte BattleText_ProtectedItself
- .4byte BattleText_StatNoHigher
- .4byte BattleText_AvoidedDamage
- .4byte BattleText_DoesntAffect
- .4byte BattleText_AttackingFainted
- .4byte BattleText_DefendingFainted
- .4byte BattleText_WinningPrize
- .4byte BattleText_OutOfUsablePoke
- .4byte BattleText_WhitedOut
- .4byte BattleText_PreventEscape
- .4byte BattleText_HitMulti
- .4byte BattleText_FellAsleep
- .4byte BattleText_MadeAsleep
- .4byte BattleText_DefendingAsleep
- .4byte BattleText_AttackingAsleep
- .4byte BattleText_WasntAffected
- .4byte BattleText_Poisoned
- .4byte BattleText_Poisoned2
- .4byte BattleText_PoisonHurt
- .4byte BattleText_AlreadyPoisoned
- .4byte BattleText_BadlyPoisoned
- .4byte BattleText_EnergyDrained
- .4byte BattleText_Burned
- .4byte BattleText_Burned2
- .4byte BattleText_BurnHurt
- .4byte BattleText_Frozen
- .4byte BattleText_Frozen2
- .4byte BattleText_FrozenSolid
- .4byte BattleText_DefendingDefrosted
- .4byte BattleText_AttackingDefrosted
- .4byte BattleText_Defrosted
- .4byte BattleText_Paralyzed
- .4byte BattleText_Paralyzed2
- .4byte BattleText_Paralyzed3
- .4byte BattleText_AlreadyParalyzed
- .4byte BattleText_ParalysisHealed
- .4byte BattleText_DreamEaten
- .4byte BattleText_AttackingStatNoHigher
- .4byte BattleText_DefendingStatNoHigher
- .4byte BattleText_StoppedWorking
- .4byte BattleText_StoppedWorking2
- .4byte BattleText_Confused
- .4byte BattleText_ConfusionSnapOut
- .4byte BattleText_BecameConfused
- .4byte BattleText_AlreadyConfused
- .4byte BattleText_FellLove
- .4byte BattleText_InLoveWith
- .4byte BattleText_ImmobilizedBy
- .4byte BattleText_BlownAway
- .4byte BattleText_TypeTransform
- .4byte BattleText_Flinched
- .4byte BattleText_RegainedHealth
- .4byte BattleText_HPFull
- .4byte BattleText_RaisedSpDef
- .4byte BattleText_RaisedDefense
- .4byte BattleText_CoveredVeil
- .4byte BattleText_SafeguardActive
- .4byte BattleText_SafeguardFaded
- .4byte BattleText_WentToSleep
- .4byte BattleText_SpeltHealthy
- .4byte BattleText_WhipWhirlwind
- .4byte BattleText_TookSunlight
- .4byte BattleText_LoweredHead
- .4byte BattleText_IsGlowing
- .4byte BattleText_FlewHigh
- .4byte BattleText_DugHole
- .4byte BattleText_SqueezedBind
- .4byte BattleText_TrappedVortex
- .4byte BattleText_Wrapped
- .4byte BattleText_Clamped
- .4byte BattleText_HurtBy
- .4byte BattleText_FreedFrom
- .4byte BattleText_KeptGoingCrash
- .4byte BattleText_MistShroud
- .4byte BattleText_MistProtect
- .4byte BattleText_GetPumped
- .4byte BattleText_HitRecoil
- .4byte BattleText_ProtectedItself2
- .4byte BattleText_SandBuffeted
- .4byte BattleText_HailStricken
- .4byte BattleText_WasSeeded
- .4byte BattleText_EvadedAttack
- .4byte BattleText_HealthSapped
- .4byte BattleText_FastAsleep
- .4byte BattleText_WokeUp
- .4byte BattleText_UproarAwake
- .4byte BattleText_UproarWoke
- .4byte BattleText_UproarCaused
- .4byte BattleText_UproarMaking
- .4byte BattleText_CalmedDown
- .4byte BattleText_UproarCantSleep
- .4byte BattleText_Stockpiled
- .4byte BattleText_StockpiledCant
- .4byte BattleText_UproarCantSleep2
- .4byte BattleText_UproarKeptAwake
- .4byte BattleText_StayedAwake
- .4byte BattleText_StoringEnergy
- .4byte BattleText_UnleashedEnergy
- .4byte BattleText_FatigueConfuse
- .4byte BattleText_PickedUpYen
- .4byte BattleText_Unaffected
- .4byte BattleText_Transformed
- .4byte BattleText_SubMade
- .4byte BattleText_SubAlready
- .4byte BattleText_SubTookDamage
- .4byte BattleText_SubFaded
- .4byte BattleText_MustRecharge
- .4byte BattleText_RageBuilding
- .4byte BattleText_MoveWasDisabled
- .4byte BattleText_MoveIsDisabled
- .4byte BattleText_DisabledNoMore
- .4byte BattleText_EncoreGot
- .4byte BattleText_EncoreEnded
- .4byte BattleText_TookAim
- .4byte BattleText_SketchedMove
- .4byte BattleText_DestinyBondTake
- .4byte BattleText_DestinyBondTaken
- .4byte BattleText_ReducedBy
- .4byte BattleText_StoleSomething
- .4byte BattleText_CantEscapeNow
- .4byte BattleText_NightmareStart
- .4byte BattleText_NightmareLock
- .4byte BattleText_CurseLay
- .4byte BattleText_CurseAfflict
- .4byte BattleText_SpikesScattered
- .4byte BattleText_SpikesHurt
- .4byte BattleText_IdentifiedPoke
- .4byte BattleText_PerishSongFell
- .4byte BattleText_BracedItself
- .4byte BattleText_EnduredHit
- .4byte BattleText_MagnitudeCount
- .4byte BattleText_CutHPMaxATK
- .4byte BattleText_CopyStatChanges
- .4byte BattleText_GotFreeFrom
- .4byte BattleText_LeechShed
- .4byte BattleText_SpikesBlownAway
- .4byte BattleText_FledBattle
- .4byte BattleText_ForesawAttack
- .4byte BattleText_TookAttack
- .4byte BattleText_PokeAttack
- .4byte BattleText_CenterAttention
- .4byte BattleText_ChargingPower
- .4byte BattleText_NaturePower
- .4byte BattleText_StatusNormal
- .4byte BattleText_NoMovesLeft
- .4byte BattleText_TormentSubject
- .4byte BattleText_TormentNoUse
- .4byte BattleText_TightenFocus
- .4byte BattleText_TauntFell
- .4byte BattleText_TauntNoUse
- .4byte BattleText_ReadyToHelp
- .4byte BattleText_SwitchedItems
- .4byte BattleText_CopiedObject
- .4byte BattleText_WishMade
- .4byte BattleText_WishTrue
- .4byte BattleText_PlantedRoots
- .4byte BattleText_AbsorbNutrients
- .4byte BattleText_AnchoredItself
- .4byte BattleText_DrowsyMade
- .4byte BattleText_KnockedOffItem
- .4byte BattleText_AbilitySwap
- .4byte BattleText_SealedMove
- .4byte BattleText_SealedNoUse
- .4byte BattleText_GrudgeBear
- .4byte BattleText_GrudgeLosePP
- .4byte BattleText_ShroudedItself
- .4byte BattleText_MagicCoatBounce
- .4byte BattleText_AwaitMove
- .4byte BattleText_SnatchedMove
- .4byte BattleText_RainMade
- .4byte BattleText_SpeedRisen
- .4byte BattleText_ProtectedBy
- .4byte BattleText_PreventedBy
- .4byte BattleText_HPRestoredUsing
- .4byte BattleText_MadeType
- .4byte BattleText_PreventedPara
- .4byte BattleText_PreventedRomance
- .4byte BattleText_PreventedPoison
- .4byte BattleText_PreventedConfusion
- .4byte BattleText_RaisedFirePower
- .4byte BattleText_AnchorsItself
- .4byte BattleText_CutsAttack
- .4byte BattleText_PreventedStatLoss
- .4byte BattleText_HurtOther
- .4byte BattleText_Traced
- .4byte BattleText_Sharply
- .4byte BattleText_Rose
- .4byte BattleText_Harshly
- .4byte BattleText_Fell
- .4byte BattleText_UnknownString7
- .4byte BattleText_UnknownString3
- .4byte BattleText_UnknownString5
- .4byte BattleText_UnknownString6
- .4byte BattleText_Critical
- .4byte BattleText_GrandSlam
- .4byte BattleText_MoveForget123
- .4byte BattleText_MoveForgetAnd
- .4byte BattleText_NotEffective
- .4byte BattleText_SuperEffective
- .4byte BattleText_GotAwaySafely
- .4byte BattleText_FledWild
- .4byte BattleText_NoRunning
- .4byte BattleText_CantEscape2
- .4byte BattleText_BirchDontLeaveMe
- .4byte BattleText_Nothing
- .4byte BattleText_Failed
- .4byte BattleText_HurtItself
- .4byte BattleText_MirrorFail
- .4byte BattleText_RainStart
- .4byte BattleText_PourStart
- .4byte BattleText_RainCont1
- .4byte BattleText_PourCont
- .4byte BattleText_RainStop
- .4byte BattleText_SandBrewed
- .4byte BattleText_SandRages
- .4byte BattleText_SandSubsided
- .4byte BattleText_SunBright
- .4byte BattleText_SunStrong
- .4byte BattleText_SunFaded
- .4byte BattleText_HailStart
- .4byte BattleText_HailCont
- .4byte BattleText_HailStop
- .4byte BattleText_SpitUpFail
- .4byte BattleText_SwallowFail
- .4byte BattleText_WindHeatWave
- .4byte BattleText_StatElim
- .4byte BattleText_CoinScatter
- .4byte BattleText_SubWeak
- .4byte BattleText_PainSplit
- .4byte BattleText_BellChime
- .4byte BattleText_PerishSong
- .4byte BattleText_NoPP1
- .4byte BattleText_NoPP2
- .4byte BattleText_Used1
- .4byte BattleText_TutorialUsed
- .4byte BattleText_BlockBall
- .4byte BattleText_DontBeAThief
- .4byte BattleText_DodgeBall
- .4byte BattleText_MissPoke
- .4byte BattleText_BallBrokeOhNo
- .4byte BattleText_BallBrokeAppeared
- .4byte BattleText_BallBrokeAlmost
- .4byte BattleText_BallBrokeSoClose
- .4byte BattleText_BallCaught1
- .4byte BattleText_BallCaught2
- .4byte BattleText_GiveNickname
- .4byte BattleText_SentToPC
- .4byte BattleText_AddedToDex
- .4byte BattleText_Raining
- .4byte BattleText_Sandstorm
- .4byte BattleText_CantEscape
- .4byte BattleText_IgnoredOrdersSLP
- .4byte BattleText_IgnoredOrders
- .4byte BattleText_BeganNap
- .4byte BattleText_LoafingAround
- .4byte BattleText_WontObey
- .4byte BattleText_TurnedAway
- .4byte BattleText_NotNotice
- .4byte BattleText_WillSwitch
- .4byte BattleText_CreptCloser
- .4byte BattleText_CantGetCloser
- .4byte BattleText_WatchingCarefully
- .4byte BattleText_CuriousAbout
- .4byte BattleText_EnthralledBy
- .4byte BattleText_IgnoredThing
- .4byte BattleText_ThrewBlock
- .4byte BattleText_SafariOver
- .4byte BattleText_CuredParalysis
- .4byte BattleText_CuredPoison
- .4byte BattleText_CuredBurn
- .4byte BattleText_CuredFreeze
- .4byte BattleText_CuredSleep
- .4byte BattleText_CuredConfusion
- .4byte BattleText_CuredStatus
- .4byte BattleText_RestoredHealth
- .4byte BattleText_RestoredPP
- .4byte BattleText_RestoredStatus
- .4byte BattleText_RestoredHPLittle
- .4byte BattleText_ChoiceBand
- .4byte BattleText_FocusSash
- .4byte BattleText_Terminator2 @ terminator?
- .4byte BattleText_PreventedBurn
- .4byte BattleText_BlocksOther
- .4byte BattleText_RestoredHPByItem
- .4byte BattleText_WhipSandstorm
- .4byte BattleText_PreventedLoss
- .4byte BattleText_InfatuatedPoke
- .4byte BattleText_MadeIneffective
- .4byte BattleText_CuredProblem
- .4byte BattleText_OozeSuckup
- .4byte BattleText_Transformed2
- .4byte BattleText_ElecWeakened
- .4byte BattleText_FireWeakened
- .4byte BattleText_HidUnderwater
- .4byte BattleText_SprangUp
- .4byte BattleText_CantForgetHM
- .4byte BattleText_FoundOne
- .4byte BattleText_PlayerDefeatedTrainer2
- .4byte BattleText_SoothingAroma
- .4byte BattleText_CantUseItems
- .4byte BattleText_UnknownString2
- .4byte BattleText_UnknownString4
- .4byte BattleText_HustleUse
- .4byte BattleText_MadeUseless
- .4byte BattleText_SandTombTrapped @ sand tomb
- .4byte BattleText_Terminator
- .4byte BattleText_BoostedExp
- .4byte BattleText_SunIntensified
- .4byte BattleText_GroundMoveNegate
- .4byte BattleText_WallyBall
- .4byte BattleText_TookAttack2
- .4byte BattleText_ChoseDestiny
- .4byte BattleText_LostFocus
- .4byte BattleText_UseNext
- .4byte BattleText_FledUsingItem
- .4byte BattleText_FledUsingOther
- .4byte BattleText_DraggedOut
- .4byte BattleText_PreventedOther
- .4byte BattleText_NormalizedStatus
- .4byte BattleText_Used2
- .4byte BattleText_BoxFull
- .4byte BattleText_AvoidedAttack
- .4byte BattleText_MadeIneffective2
- .4byte BattleText_PreventedFlinching
- .4byte BattleText_AlreadyBurned
- .4byte BattleText_StatNoLower
- .4byte BattleText_BlocksOther2
- .4byte BattleText_WoreOff
- .4byte BattleText_RaisedDefenseLittle
- .4byte BattleText_RaisedSpDefLittle
- .4byte BattleText_BrokeWall
- .4byte BattleText_PreventedOther2
- .4byte BattleText_CuredOfProblem
- .4byte BattleText_AttackingCantEscape
- .4byte BattleText_Obtained1
- .4byte BattleText_Obtained2
- .4byte BattleText_Obtained3
- .4byte BattleText_NoEffect
- .4byte BattleText_NoEffectOn
-
- .align 1
-gMissStrings:: @ 8401508
-@ Each entry refers to a text pointer in gUnknown_08400F8C, but the values are offset
-@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the
-@ 11th entry in the pointer table.
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_ProtectedItself
- .2byte BATTLE_TEXT_AvoidedAttack
- .2byte BATTLE_TEXT_AvoidedDamage
- .2byte BATTLE_TEXT_GroundMoveNegate
-
-BattleTextList_401512:: @ 8401512
- .2byte BATTLE_TEXT_CantEscape2
- .2byte BATTLE_TEXT_BirchDontLeaveMe
- .2byte BATTLE_TEXT_PreventEscape
- .2byte BATTLE_TEXT_CantEscape
- .2byte BATTLE_TEXT_AttackingCantEscape
-
-BattleTextList_40151C:: @ 840151C
- .2byte BATTLE_TEXT_RainStart
- .2byte BATTLE_TEXT_PourStart
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_SandBrewed
- .2byte BATTLE_TEXT_SunBright
- .2byte BATTLE_TEXT_HailStart
-
-BattleTextList_401528:: @ 8401528
- .2byte BATTLE_TEXT_SandRages
- .2byte BATTLE_TEXT_HailCont
-
-BattleTextList_40152C:: @ 840152C
- .2byte BATTLE_TEXT_SandBuffeted
- .2byte BATTLE_TEXT_HailStricken
-
-BattleTextList_401530:: @ 8401530
- .2byte BATTLE_TEXT_SandSubsided
- .2byte BATTLE_TEXT_HailStop
-
-BattleTextList_401534:: @ 8401534
- .2byte BATTLE_TEXT_RainCont1
- .2byte BATTLE_TEXT_PourCont
- .2byte BATTLE_TEXT_RainStop
-
-BattleTextList_40153A:: @ 840153A
- .2byte BATTLE_TEXT_ProtectedItself2
- .2byte BATTLE_TEXT_BracedItself
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_401540:: @ 8401540
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_RaisedDefense
- .2byte BATTLE_TEXT_RaisedDefenseLittle
- .2byte BATTLE_TEXT_RaisedSpDef
- .2byte BATTLE_TEXT_RaisedSpDefLittle
- .2byte BATTLE_TEXT_CoveredVeil
-
-BattleTextList_40154C:: @ 840154C
- .2byte BATTLE_TEXT_WasSeeded
- .2byte BATTLE_TEXT_EvadedAttack
- .2byte BATTLE_TEXT_DoesntAffect
- .2byte BATTLE_TEXT_HealthSapped
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_401556:: @ 8401556
- .2byte BATTLE_TEXT_WentToSleep
- .2byte BATTLE_TEXT_SpeltHealthy
-
-BattleTextList_40155A:: @ 840155A
- .2byte BATTLE_TEXT_UproarMaking
- .2byte BATTLE_TEXT_CalmedDown
-
-BattleTextList_40155E:: @ 840155E
- .2byte BATTLE_TEXT_Stockpiled
- .2byte BATTLE_TEXT_StockpiledCant
-
-BattleTextList_401562:: @ 8401562
- .2byte BATTLE_TEXT_WokeUp
- .2byte BATTLE_TEXT_UproarWoke
-
-BattleTextList_401566:: @ 8401566
- .2byte BATTLE_TEXT_SwallowFail
- .2byte BATTLE_TEXT_HPFull
-
-BattleTextList_40156A:: @ 840156A
- .2byte BATTLE_TEXT_UproarCantSleep2
- .2byte BATTLE_TEXT_UproarKeptAwake
- .2byte BATTLE_TEXT_StayedAwake
-
-BattleTextList_401570:: @ 8401570
- .2byte BATTLE_TEXT_UnknownString7
- .2byte BATTLE_TEXT_UnknownString3
- .2byte BATTLE_TEXT_AttackingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
- .2byte BATTLE_TEXT_UnknownString4
- .2byte BATTLE_TEXT_HustleUse
-
-BattleTextList_40157C:: @ 840157C
- .2byte BATTLE_TEXT_UnknownString5
- .2byte BATTLE_TEXT_UnknownString6
- .2byte BATTLE_TEXT_DefendingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
-
-BattleTextList_401584:: @ 8401584
- .2byte BATTLE_TEXT_WhipWhirlwind
- .2byte BATTLE_TEXT_TookSunlight
- .2byte BATTLE_TEXT_LoweredHead
- .2byte BATTLE_TEXT_IsGlowing
- .2byte BATTLE_TEXT_FlewHigh
- .2byte BATTLE_TEXT_DugHole
- .2byte BATTLE_TEXT_HidUnderwater
- .2byte BATTLE_TEXT_SprangUp
-
-BattleTextList_401594:: @ 8401594
- .2byte BATTLE_TEXT_SqueezedBind
- .2byte BATTLE_TEXT_Wrapped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_Clamped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_SandTombTrapped
-
-BattleTextList_4015A0:: @ 84015A0
- .2byte BATTLE_TEXT_MistShroud
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A4:: @ 84015A4
- .2byte BATTLE_TEXT_GetPumped
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A8:: @ 84015A8
- .2byte BATTLE_TEXT_Transformed
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015AC:: @ 84015AC
- .2byte BATTLE_TEXT_SubMade
- .2byte BATTLE_TEXT_SubWeak
-
-BattleTextList_4015B0:: @ 84015B0
- .2byte BATTLE_TEXT_Poisoned
- .2byte BATTLE_TEXT_Poisoned2
-
-BattleTextList_4015B4:: @ 84015B4
- .2byte BATTLE_TEXT_Paralyzed
- .2byte BATTLE_TEXT_Paralyzed2
-
-BattleTextList_4015B8:: @ 84015B8
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_MadeAsleep
-
-BattleTextList_4015BC:: @ 84015BC
- .2byte BATTLE_TEXT_Burned
- .2byte BATTLE_TEXT_Burned2
-
-BattleTextList_4015C0:: @ 84015C0
- .2byte BATTLE_TEXT_Frozen
- .2byte BATTLE_TEXT_Frozen2
-
-BattleTextList_4015C4:: @ 84015C4
- .2byte BATTLE_TEXT_AttackingDefrosted
- .2byte BATTLE_TEXT_Defrosted
-
-BattleTextList_4015C8:: @ 84015C8
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_Unaffected
- .2byte BATTLE_TEXT_FellLove
- .2byte BATTLE_TEXT_InfatuatedPoke
-
-BattleTextList_4015D0:: @ 84015D0
- .2byte BATTLE_TEXT_EnergyDrained
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_4015D4:: @ 84015D4
- .2byte BATTLE_TEXT_ElecWeakened
- .2byte BATTLE_TEXT_FireWeakened
-
-BattleTextList_4015D8:: @ 84015D8
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_SoothingAroma
-
-BattleTextList_4015E2:: @ 84015E2
- .2byte BATTLE_TEXT_ForesawAttack
- .2byte BATTLE_TEXT_ChoseDestiny
-
-BattleTextList_4015E6:: @ 84015E6
- .2byte BATTLE_TEXT_BallBrokeOhNo
- .2byte BATTLE_TEXT_BallBrokeAppeared
- .2byte BATTLE_TEXT_BallBrokeAlmost
- .2byte BATTLE_TEXT_BallBrokeSoClose
-
-BattleTextList_4015EE:: @ 84015EE
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Sandstorm
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_SunStrong
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
-
-BattleTextList_40160E:: @ 840160E
- .2byte BATTLE_TEXT_LoafingAround
- .2byte BATTLE_TEXT_WontObey
- .2byte BATTLE_TEXT_TurnedAway
- .2byte BATTLE_TEXT_NotNotice
-
-BattleTextList_401616:: @ 8401616
- .2byte BATTLE_TEXT_CreptCloser
- .2byte BATTLE_TEXT_CantGetCloser
-
-BattleTextList_40161A:: @ 840161A
- .2byte BATTLE_TEXT_CuriousAbout
- .2byte BATTLE_TEXT_EnthralledBy
- .2byte BATTLE_TEXT_IgnoredThing
-
-BattleTextList_401620:: @ 8401620
- .2byte BATTLE_TEXT_CuredConfusion
- .2byte BATTLE_TEXT_CuredParalysis
- .2byte BATTLE_TEXT_CuredFreeze
- .2byte BATTLE_TEXT_CuredBurn
- .2byte BATTLE_TEXT_CuredPoison
- .2byte BATTLE_TEXT_CuredSleep
-
-BattleTextList_40162C:: @ 840162C
- .2byte BATTLE_TEXT_CuredStatus
- .2byte BATTLE_TEXT_NormalizedStatus
-
-BattleTextList_401630:: @ 8401630
- .2byte BATTLE_TEXT_PreventedBurn
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401636:: @ 8401636
- .2byte BATTLE_TEXT_PreventedPara
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_40163C:: @ 840163C
- .2byte BATTLE_TEXT_PreventedPoison
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401642:: @ 8401642
- .2byte BATTLE_TEXT_Obtained1
- .2byte BATTLE_TEXT_Obtained2
- .2byte BATTLE_TEXT_Obtained3
-
-BattleTextList_401648:: @ 8401648
- .2byte BATTLE_TEXT_RaisedFirePower
- .2byte BATTLE_TEXT_MadeIneffective
-
-gTrappingMoves:: @ 840164C
- .2byte BATTLE_TEXT_StopLearning
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_SpeltHealthy
- .2byte BATTLE_TEXT_SubTookDamage
- .2byte BATTLE_TEXT_CoinScatter
- .2byte BATTLE_TEXT_SandTombTrapped
- .2byte 0xFFFF
-
- .align 2
-gUnknown_0840165C:: @ 840165C
- .4byte BattleText_HP
- .4byte BattleText_SpAtk
- .4byte BattleText_Attack
- .4byte BattleText_SpDef
- .4byte BattleText_Defense
- .4byte BattleStatText_Speed
-
- .align 2
-gUnknown_08401674:: @ 8401674
- .4byte BattleText_Normal
- .4byte BattleText_Fighting
- .4byte BattleText_Flying
- .4byte BattleText_Poison
- .4byte BattleText_Ground
- .4byte BattleText_Rock
- .4byte BattleText_Bug
- .4byte BattleText_Ghost
- .4byte BattleText_Steel
- .4byte BattleText_Typeless
- .4byte BattleText_Fire
- .4byte BattleText_Water
- .4byte BattleText_Grass
- .4byte BattleText_Electric
- .4byte BattleText_Psychic
- .4byte BattleText_Ice
- .4byte BattleText_Dragon
- .4byte BattleText_Dark
diff --git a/data/battle_message.s b/data/battle_message.s
deleted file mode 100644
index 0ad61bfc0..000000000
--- a/data/battle_message.s
+++ /dev/null
@@ -1,131 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .include "data/text/battle_strings.inc"
-
- .align 1
-gUnknown_084016BC:: @ 84016BC
- .2byte 0xE
- .2byte 0x46
- .2byte 0x4A
- .2byte 0x6A
- .2byte 0x6B
- .2byte 0x6C
- .2byte 0x6E
- .2byte 0x6F
- .2byte 0x79
- .2byte 0x7B
- .2byte 0x7D
- .2byte 0x94
- .2byte 0x96
- .2byte 0x97
- .2byte 0x9B
- .2byte 0x9C
- .2byte 0x9F
- .2byte 0xA4
- .2byte 0xAA
- .2byte 0xAD
- .2byte 0xB6
- .2byte 0xBF
- .2byte 0xCB
- .2byte 0xCD
- .2byte 0xCF
- .2byte 0xD6
- .2byte 0xED
- .2byte 0xF4
- .2byte 0xF5
- .2byte 0x10A
- .2byte 0x10F
- .2byte 0x112
- .2byte 0x113
- .2byte 0x11A
- .2byte 0x125
- .2byte 0x136
- .2byte 0x13C
- .2byte 0x140
- .2byte 0x149
- .2byte 0x14A
- .2byte 0x14E
- .2byte 0x154
- .2byte 0x0
- .2byte 0x64
- .2byte 0x69
- .2byte 0x75
- .2byte 0x85
- .2byte 0xAF
- .2byte 0x10D
- .2byte 0x153
- .2byte 0x0
- .2byte 0x60
- .2byte 0x61
- .2byte 0x66
- .2byte 0x68
- .2byte 0x8C
- .2byte 0x90
- .2byte 0xA5
- .2byte 0xB8
- .2byte 0x10C
- .2byte 0x111
- .2byte 0x118
- .2byte 0x119
- .2byte 0x129
- .2byte 0x12A
- .2byte 0x12C
- .2byte 0x139
- .2byte 0x15A
- .2byte 0x15B
- .2byte 0x0
- .2byte 0x1
- .2byte 0xA
- .2byte 0xB
- .2byte 0x11
- .2byte 0x13
- .2byte 0x14
- .2byte 0x15
- .2byte 0x1E
- .2byte 0x23
- .2byte 0x25
- .2byte 0x27
- .2byte 0x2B
- .2byte 0x2C
- .2byte 0x2D
- .2byte 0x2E
- .2byte 0x2F
- .2byte 0x40
- .2byte 0x47
- .2byte 0x51
- .2byte 0x59
- .2byte 0x5A
- .2byte 0x5B
- .2byte 0x5C
- .2byte 0x67
- .2byte 0x76
- .2byte 0x7A
- .2byte 0x80
- .2byte 0x84
- .2byte 0x8B
- .2byte 0x91
- .2byte 0xA3
- .2byte 0xA9
- .2byte 0xAB
- .2byte 0xAE
- .2byte 0xC1
- .2byte 0xCC
- .2byte 0xD5
- .2byte 0xF9
- .2byte 0xFD
- .2byte 0xFF
- .2byte 0x100
- .2byte 0x103
- .2byte 0x104
- .2byte 0x110
- .2byte 0x11B
- .2byte 0x141
- .2byte 0x157
- .2byte 0x0
-
- .align 2
-gUnknown_084017A8:: @ 84017A8
- .4byte -1, -1
diff --git a/data/cable_club.s b/data/cable_club.s
deleted file mode 100644
index f0ced6292..000000000
--- a/data/cable_club.s
+++ /dev/null
@@ -1,32 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-.ifdef ENGLISH
-TrainerCardColorName_Bronze:
- .string "BRONZE$", 7
-TrainerCardColorName_Copper:
- .string "COPPER$", 7
-TrainerCardColorName_Silver:
- .string "SILVER$", 7
-TrainerCardColorName_Gold:
- .string "GOLD$", 7
-.else
-TrainerCardColorName_Bronze:
- .string "BRONZE$", 7
-TrainerCardColorName_Copper:
- .string "KUPFER$", 7
-TrainerCardColorName_Silver:
- .string "SILBER$", 7
-TrainerCardColorName_Gold:
- .string "GOLD$", 7
-.endif
-
-
- .align 2
-gTrainerCardColorNames:: @ 839B21C
- .4byte TrainerCardColorName_Bronze
- .4byte TrainerCardColorName_Copper
- .4byte TrainerCardColorName_Silver
- .4byte TrainerCardColorName_Gold
diff --git a/data/field_door.s b/data/field_door.s
deleted file mode 100644
index d7ccdd2d4..000000000
--- a/data/field_door.s
+++ /dev/null
@@ -1,416 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-DoorAnimTiles_04: @ 8308F1C
- .incbin "graphics/door_anims/04/0.4bpp"
- .incbin "graphics/door_anims/04/1.4bpp"
- .incbin "graphics/door_anims/04/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_05: @ 830923C
- .incbin "graphics/door_anims/05/0.4bpp"
- .incbin "graphics/door_anims/05/1.4bpp"
- .incbin "graphics/door_anims/05/2.4bpp"
-
- .align 2
-DoorAnimTiles_08: @ 830953C
- .incbin "graphics/door_anims/08/0.4bpp"
- .incbin "graphics/door_anims/08/1.4bpp"
- .incbin "graphics/door_anims/08/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_15: @ 830985C
- .incbin "graphics/door_anims/15/0.4bpp"
- .incbin "graphics/door_anims/15/1.4bpp"
- .incbin "graphics/door_anims/15/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_16: @ 8309B7C
- .incbin "graphics/door_anims/16/0.4bpp"
- .incbin "graphics/door_anims/16/1.4bpp"
- .incbin "graphics/door_anims/16/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_00: @ 8309E9C
- .incbin "graphics/door_anims/00/0.4bpp"
- .incbin "graphics/door_anims/00/1.4bpp"
- .incbin "graphics/door_anims/00/2.4bpp"
-
- .align 2
-DoorAnimTiles_01: @ 830A19C
- .incbin "graphics/door_anims/01/0.4bpp"
- .incbin "graphics/door_anims/01/1.4bpp"
- .incbin "graphics/door_anims/01/2.4bpp"
-
- .align 2
-DoorAnimTiles_02: @ 830A49C
- .incbin "graphics/door_anims/02/0.4bpp"
- .incbin "graphics/door_anims/02/1.4bpp"
- .incbin "graphics/door_anims/02/2.4bpp"
-
- .align 2
-DoorAnimTiles_03: @ 830A79C
- .incbin "graphics/door_anims/03/0.4bpp"
- .incbin "graphics/door_anims/03/1.4bpp"
- .incbin "graphics/door_anims/03/2.4bpp"
-
- .align 2
-DoorAnimTiles_06: @ 830AA9C
- .incbin "graphics/door_anims/06/0.4bpp"
- .incbin "graphics/door_anims/06/1.4bpp"
- .incbin "graphics/door_anims/06/2.4bpp"
-
- .align 2
-DoorAnimTiles_07: @ 830AD9C
- .incbin "graphics/door_anims/07/0.4bpp"
- .incbin "graphics/door_anims/07/1.4bpp"
- .incbin "graphics/door_anims/07/2.4bpp"
-
- .align 2
-DoorAnimTiles_09: @ 830B09C
- .incbin "graphics/door_anims/09/0.4bpp"
- .incbin "graphics/door_anims/09/1.4bpp"
- .incbin "graphics/door_anims/09/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_10: @ 830B3BC
- .incbin "graphics/door_anims/10/0.4bpp"
- .incbin "graphics/door_anims/10/1.4bpp"
- .incbin "graphics/door_anims/10/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_11: @ 830B6DC
- .incbin "graphics/door_anims/11/0.4bpp"
- .incbin "graphics/door_anims/11/1.4bpp"
- .incbin "graphics/door_anims/11/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_12: @ 830B9FC
- .incbin "graphics/door_anims/12/0.4bpp"
- .incbin "graphics/door_anims/12/1.4bpp"
- .incbin "graphics/door_anims/12/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_13: @ 830BD1C
- .incbin "graphics/door_anims/13/0.4bpp"
- .incbin "graphics/door_anims/13/1.4bpp"
- .incbin "graphics/door_anims/13/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_14: @ 830C03C
- .incbin "graphics/door_anims/14/0.4bpp"
- .incbin "graphics/door_anims/14/1.4bpp"
- .incbin "graphics/door_anims/14/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_17: @ 830C35C
- .incbin "graphics/door_anims/17/0.4bpp"
- .incbin "graphics/door_anims/17/1.4bpp"
- .incbin "graphics/door_anims/17/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_18: @ 830C67C
- .incbin "graphics/door_anims/18/0.4bpp"
- .incbin "graphics/door_anims/18/1.4bpp"
- .incbin "graphics/door_anims/18/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_19: @ 830C99C
- .incbin "graphics/door_anims/19/0.4bpp"
- .incbin "graphics/door_anims/19/1.4bpp"
- .incbin "graphics/door_anims/19/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_20: @ 830CCBC
- .incbin "graphics/door_anims/20/0.4bpp"
- .incbin "graphics/door_anims/20/1.4bpp"
- .incbin "graphics/door_anims/20/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_21: @ 830CFDC
- .incbin "graphics/door_anims/21/0.4bpp"
- .incbin "graphics/door_anims/21/1.4bpp"
- .incbin "graphics/door_anims/21/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_22: @ 830D2FC
- .incbin "graphics/door_anims/22/0.4bpp"
- .incbin "graphics/door_anims/22/1.4bpp"
- .incbin "graphics/door_anims/22/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_23: @ 830D61C
- .incbin "graphics/door_anims/23/0.4bpp"
- .incbin "graphics/door_anims/23/1.4bpp"
- .incbin "graphics/door_anims/23/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_24: @ 830D93C
- .incbin "graphics/door_anims/24/0.4bpp"
- .incbin "graphics/door_anims/24/1.4bpp"
- .incbin "graphics/door_anims/24/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_25: @ 830DC5C
- .incbin "graphics/door_anims/25/0.4bpp"
- .incbin "graphics/door_anims/25/1.4bpp"
- .incbin "graphics/door_anims/25/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_26: @ 830DF7C
- .incbin "graphics/door_anims/26/0.4bpp"
- .incbin "graphics/door_anims/26/1.4bpp"
- .incbin "graphics/door_anims/26/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_27: @ 830E29C
- .incbin "graphics/door_anims/27/0.4bpp"
- .incbin "graphics/door_anims/27/1.4bpp"
- .incbin "graphics/door_anims/27/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_28: @ 830E5BC
- .incbin "graphics/door_anims/28/0.4bpp"
- .incbin "graphics/door_anims/28/1.4bpp"
- .incbin "graphics/door_anims/28/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_29: @ 830E8DC
- .incbin "graphics/door_anims/29/0.4bpp"
- .incbin "graphics/door_anims/29/1.4bpp"
- .incbin "graphics/door_anims/29/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_30: @ 830EBFC
- .incbin "graphics/door_anims/30/0.4bpp"
- .incbin "graphics/door_anims/30/1.4bpp"
- .incbin "graphics/door_anims/30/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_31: @ 830EF1C
- .incbin "graphics/door_anims/31/0.4bpp"
- .incbin "graphics/door_anims/31/1.4bpp"
- .incbin "graphics/door_anims/31/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_32: @ 830F23C
- .incbin "graphics/door_anims/32/0.4bpp"
- .incbin "graphics/door_anims/32/1.4bpp"
- .incbin "graphics/door_anims/32/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_33: @ 830F55C
- .incbin "graphics/door_anims/33/0.4bpp"
- .incbin "graphics/door_anims/33/1.4bpp"
- .incbin "graphics/door_anims/33/2.4bpp"
-
- .space 32
-
-gDoorOpenAnimFrames:: @ 830F87C
- door_anim_frame 4, -1
- door_anim_frame 4, 0
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0x200
- door_anim_frame 0, 0
-
-gDoorCloseAnimFrames:: @ 830F890
- door_anim_frame 4, 0x200
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0
- door_anim_frame 4, -1
- door_anim_frame 0, 0
-
-DoorAnimPalettes_830F8A4:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8AC:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8B4:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F8BC:
- .byte 0, 0, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8C4:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F8CC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8D4:
- .byte 11, 11, 11, 11, 11, 11, 11, 11
-
-DoorAnimPalettes_830F8DC:
- .byte 10, 10, 10, 10, 10, 10, 10, 10
-
-DoorAnimPalettes_830F8E4:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F8EC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8F4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F8FC:
- .byte 9, 9, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F904:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F90C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F914:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F91C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F924:
- .byte 0, 0, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F92C:
- .byte 6, 6, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F934:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F93C:
- .byte 6, 6, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F944:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F94C:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F954:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F95C:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F964:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F96C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F974:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F97C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F984:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F98C:
- .byte 11, 11, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F994:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F99C:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F9A4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F9AC:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
- .align 2
-gDoorAnimGraphicsTable:: @ 830F9B4
- door_anim_gfx 0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4
- door_anim_gfx 0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC
- door_anim_gfx 0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4
- door_anim_gfx 0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC
- door_anim_gfx 0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4
- door_anim_gfx 0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC
- door_anim_gfx 0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4
- door_anim_gfx 0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC
- door_anim_gfx 0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4
- door_anim_gfx 0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4
- door_anim_gfx 0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934
- door_anim_gfx 0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C
- door_anim_gfx 0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C
- door_anim_gfx 0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924
- door_anim_gfx 0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C
- door_anim_gfx 0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC
- door_anim_gfx 0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944
- door_anim_gfx 0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC
- door_anim_gfx 0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914
- door_anim_gfx 0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C
- door_anim_gfx 0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904
- door_anim_gfx 0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C
- door_anim_gfx 0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954
- door_anim_gfx 0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C
- door_anim_gfx 0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964
- door_anim_gfx 0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C
- door_anim_gfx 0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974
- door_anim_gfx 0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C
- door_anim_gfx 0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984
- door_anim_gfx 0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C
- door_anim_gfx 0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994
- door_anim_gfx 0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C
- door_anim_gfx 0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4
- door_anim_gfx 0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC
- door_anim_gfx 0, 0, 0, 0
diff --git a/data/fldeff_decoration.s b/data/fldeff_decoration.s
new file mode 100755
index 000000000..2081679cd
--- /dev/null
+++ b/data/fldeff_decoration.s
@@ -0,0 +1,36 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gOamData_83D266C:: @ 83D266C
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83D2674:: @ 83D2674
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D2684:: @ 83D2684
+ .4byte gSpriteAnim_83D2674
+
+ .align 2
+gSpriteImageTable_83D2688:: @ 83D2688
+ obj_frame_tiles gSpriteImage_83D21EC, 0x100
+ obj_frame_tiles gSpriteImage_83D22EC, 0x100
+ obj_frame_tiles gSpriteImage_83D23EC, 0x100
+
+ .align 2
+gSpriteTemplate_83D26A0:: @ 83D26A0
+ spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
+
+@ This uses one of the secret base palettes, so there is no "09.pal" file.
+ .align 2
+gFieldEffectObjectPaletteInfo9:: @ 83D26B8
+ obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
diff --git a/data/fldeff_flash.s b/data/fldeff_flash.s
deleted file mode 100644
index c8b6185f2..000000000
--- a/data/fldeff_flash.s
+++ /dev/null
@@ -1,71 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083F7FC4:: @ 83F7FC4
- .byte 1, 4, 1, 0
- .4byte sub_810CFF8
- .byte 2, 4, 1, 0
- .4byte sub_810CFF8
- .byte 3, 4, 1, 0
- .4byte sub_810CFF8
- .byte 5, 4, 1, 0
- .4byte sub_810CFF8
- .byte 6, 4, 1, 0
- .4byte sub_810CFF8
- .byte 7, 4, 1, 0
- .4byte sub_810CFF8
- .byte 8, 4, 1, 0
- .4byte sub_810CFF8
- .byte 9, 4, 1, 0
- .4byte sub_810CFF8
-
- .byte 4, 1, 0, 1
- .4byte sub_810CE48
- .byte 4, 2, 0, 1
- .4byte sub_810CE48
- .byte 4, 3, 0, 1
- .4byte sub_810CE48
- .byte 4, 5, 0, 1
- .4byte sub_810CE48
- .byte 4, 6, 0, 1
- .4byte sub_810CE48
- .byte 4, 7, 0, 1
- .4byte sub_810CE48
- .byte 4, 8, 0, 1
- .4byte sub_810CE48
- .byte 4, 9, 0, 1
- .4byte sub_810CE48
-
- .byte 0, 0, 0, 0
- .4byte NULL
-
- .align 2
-gCaveTransitionPalette_White:: @ 83F804C
- .rept 16
- .2byte 0x7FFF
- .endr
-
- .align 2
-gCaveTransitionPalette_Black:: @ 83F806C
- .rept 16
- .2byte 0x0000
- .endr
-
- .align 1
-gUnknown_083F808C:: @ 83F808C
- .incbin "graphics/misc/83F808C.gbapal"
-
- .align 1
-gUnknown_083F809C:: @ 83F809C
- .incbin "graphics/misc/83F809C.gbapal"
-
- .align 2
-gCaveTransitionTilemap:: @ 83F80AC
- .incbin "graphics/misc/cave_transition_map.bin.lz"
-
- .align 2
-gCaveTransitionTiles:: @ 83F828C
- .incbin "graphics/misc/cave_transition.4bpp.lz"
diff --git a/data/fldeff_recordmixing.s b/data/fldeff_recordmixing.s
new file mode 100755
index 000000000..ee9d6b8d6
--- /dev/null
+++ b/data/fldeff_recordmixing.s
@@ -0,0 +1,45 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImage_83D26C0:: @ 83D26C0
+ .incbin "graphics/unknown_sprites/83D2860/0.4bpp"
+
+ .align 2
+gSpriteImage_83D2740:: @ 83D2740
+ .incbin "graphics/unknown_sprites/83D2860/1.4bpp"
+
+ .align 2
+gSpriteImage_83D27C0:: @ 83D27C0
+ .incbin "graphics/unknown_sprites/83D2860/2.4bpp"
+
+ .align 2
+Palette_3D2840:: @ 83D2840
+ .incbin "graphics/unknown/unknown_3D2840.gbapal"
+
+ .align 2
+gSpriteImageTable_83D2860:: @ 83D2860
+ obj_frame_tiles gSpriteImage_83D26C0, 0x80
+ obj_frame_tiles gSpriteImage_83D2740, 0x80
+ obj_frame_tiles gSpriteImage_83D27C0, 0x80
+
+ .align 2
+gUnknown_083D2878:: @ 83D2878
+ obj_pal Palette_3D2840, 4096
+
+ .align 2
+gSpriteAnim_83D2880:: @ 83D2880
+ obj_image_anim_frame 0, 30
+ obj_image_anim_frame 1, 30
+ obj_image_anim_frame 2, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D2890:: @ 83D2890
+ .4byte gSpriteAnim_83D2880
+
+ .align 2
+gSpriteTemplate_83D2894:: @ 83D2894
+ spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/fldeff_80C5CD4.s b/data/fldeff_secretpower.s
index 4f0e83832..589ded675 100644..100755
--- a/data/fldeff_80C5CD4.s
+++ b/data/fldeff_secretpower.s
@@ -4,45 +4,6 @@
.section .rodata
.align 2
-gUnknown_083D1898:: @ 83D1898
- obj_tiles gUnknownGfx_083D190C, 0x80, 0
-
- .align 2
-gUnknown_083D18A0:: @ 83D18A0
- obj_pal gUnknownPal_083D18EC, 0x0000
-
- .align 2
-gSpriteTemplate_83D18A8:: @ 83D18A8
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC
-
- .align 2
-gSpriteTemplate_83D18C0:: @ 83D18C0
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130
-
- .align 2
-gOamData_83D18D8:: @ 83D18D8
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83D18E0:: @ 83D18E0
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D18E8:: @ 83D18E8
- .4byte gSpriteAnim_83D18E0
-
- .align 2
-gUnknownPal_083D18EC::
- .incbin "graphics/unknown/unknown_3D18EC.gbapal"
-
- .align 2
-gUnknownGfx_083D190C::
- .incbin "graphics/unknown/unknown_3D190C.4bpp"
-
- .align 2
gSpriteImage_83D198C:: @ 83D198C
.incbin "graphics/unknown_sprites/83D259C/0.4bpp"
@@ -245,76 +206,3 @@ gFieldEffectObjectPaletteInfo7:: @ 83D265C
.align 2
gFieldEffectObjectPaletteInfo8:: @ 83D2664
obj_pal gFieldEffectObjectPalette8, 0x1008
-
- .align 2
-gOamData_83D266C:: @ 83D266C
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D2674:: @ 83D2674
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2684:: @ 83D2684
- .4byte gSpriteAnim_83D2674
-
- .align 2
-gSpriteImageTable_83D2688:: @ 83D2688
- obj_frame_tiles gSpriteImage_83D21EC, 0x100
- obj_frame_tiles gSpriteImage_83D22EC, 0x100
- obj_frame_tiles gSpriteImage_83D23EC, 0x100
-
- .align 2
-gSpriteTemplate_83D26A0:: @ 83D26A0
- spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
-
-@ This uses one of the secret base palettes, so there is no "09.pal" file.
- .align 2
-gFieldEffectObjectPaletteInfo9:: @ 83D26B8
- obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
-
- .align 2
-gSpriteImage_83D26C0:: @ 83D26C0
- .incbin "graphics/unknown_sprites/83D2860/0.4bpp"
-
- .align 2
-gSpriteImage_83D2740:: @ 83D2740
- .incbin "graphics/unknown_sprites/83D2860/1.4bpp"
-
- .align 2
-gSpriteImage_83D27C0:: @ 83D27C0
- .incbin "graphics/unknown_sprites/83D2860/2.4bpp"
-
- .align 2
-Palette_3D2840:: @ 83D2840
- .incbin "graphics/unknown/unknown_3D2840.gbapal"
-
- .align 2
-gSpriteImageTable_83D2860:: @ 83D2860
- obj_frame_tiles gSpriteImage_83D26C0, 0x80
- obj_frame_tiles gSpriteImage_83D2740, 0x80
- obj_frame_tiles gSpriteImage_83D27C0, 0x80
-
- .align 2
-gUnknown_083D2878:: @ 83D2878
- obj_pal Palette_3D2840, 4096
-
- .align 2
-gSpriteAnim_83D2880:: @ 83D2880
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_frame 2, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D2890:: @ 83D2890
- .4byte gSpriteAnim_83D2880
-
- .align 2
-gSpriteTemplate_83D2894:: @ 83D2894
- spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/main_menu.s b/data/main_menu.s
deleted file mode 100644
index 1fae3850b..000000000
--- a/data/main_menu.s
+++ /dev/null
@@ -1,59 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_081E764C:: @ 81E764C
- .incbin "graphics/birch_speech/bg0.gbapal"
- .incbin "graphics/birch_speech/bg1.gbapal"
-
- .align 2
-gBirchIntroShadowGfx:: @ 81E768C
- .incbin "graphics/birch_speech/shadow.4bpp.lz"
-
- .align 2
-gUnknown_081E7834:: @ 81E7834
- .incbin "graphics/birch_speech/map.bin.lz"
-
- .align 2
-gUnknown_081E795C:: @ 81E795C
- .incbin "graphics/birch_speech/bg2.gbapal"
-
- .align 2
-gUnknown_081E796C:: @ 81E796C
- .space 16
-
- .align 2
-gMainMenuPalette:: @ 81E797C
- .incbin "graphics/misc/main_menu.gbapal"
-
- .align 2
-gSpriteAffineAnim_81E799C:: @ 81E799C
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 48
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81E79AC:: @ 81E79AC
- .4byte gSpriteAffineAnim_81E799C
-
- .align 2
-gUnknown_081E79B0:: @ 81E79B0
- .4byte gBirchText_Boy, 0
- .4byte gBirchText_Girl, 0
-
- .align 2
-gMalePresetNames:: @ 81E79C0
- .4byte gBirchText_NewName, 0
- .4byte gDefaultBoyName1, 0
- .4byte gDefaultBoyName2, 0
- .4byte gDefaultBoyName3, 0
- .4byte gDefaultBoyName4, 0
-
- .align 2
-gFemalePresetNames:: @ 81E79E8
- .4byte gBirchText_NewName, 0
- .4byte gDefaultGirlName1, 0
- .4byte gDefaultGirlName2, 0
- .4byte gDefaultGirlName3, 0
- .4byte gDefaultGirlName4, 0
diff --git a/data/map_events.s b/data/map_events.s
index 68c8e510e..7156e4b6e 100644
--- a/data/map_events.s
+++ b/data/map_events.s
@@ -396,15 +396,4 @@
.include "data/maps/events/Route119_WeatherInstitute_1F.inc"
.include "data/maps/events/Route119_WeatherInstitute_2F.inc"
.include "data/maps/events/Route119_House.inc"
-Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
- object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
-
-Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
- warp_def 3, 8, 0, 0, Route124
- warp_def 4, 8, 0, 0, Route124
-
-Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
- bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
-
-Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
- map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
+ .include "data/maps/events/Route124_DivingTreasureHuntersHouse.inc"
diff --git a/data/maps/events/Route124_DivingTreasureHuntersHouse.inc b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
new file mode 100755
index 000000000..5d60c795e
--- /dev/null
+++ b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
@@ -0,0 +1,12 @@
+Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
+ object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
+
+Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
+ warp_def 3, 8, 0, 0, Route124
+ warp_def 4, 8, 0, 0, Route124
+
+Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
+ bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
+
+Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
+ map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
diff --git a/data/matsuda_debug_menu.s b/data/matsuda_debug_menu.s
deleted file mode 100644
index c4f7adcb7..000000000
--- a/data/matsuda_debug_menu.s
+++ /dev/null
@@ -1,201 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 83C9150
- .string "テストです$" @ "test"
-
-gMatsudaDebugMenu_ActionContestText:
- .string "Contest$"
-
-gMatsudaDebugMenu_ActionContestResultsText:
- .string "Contest results$"
- .string "パラメータへんこう$" @ "Change parameter"
- .string "わざ へんこう$" @ "Change move"
-
-gMatsudaDebugMenu_ActionContestCommText:
- .string "Contest (comm.)$"
-
-gMatsudaDebugMenu_ActionCommTestText:
- .string "Init comm. data$"
-
-gMatsudaDebugMenu_ActionSetHighScoreText:
- .string "Set highest score$"
-
-gMatsudaDebugMenu_ActionResetHighScoreText:
- .string "Reset highest score$"
-
-gMatsudaDebugMenu_ActionSetAllArtMuseumText:
- .string "Set all art museum items$"
-
- .align 2
-gMatsudaDebugMenuActions:: @ 83C91F0
- .4byte gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest
- .4byte gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults
- .4byte gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm
- .4byte gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest
- .4byte gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore
- .4byte gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore
- .4byte gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems
-
-gMatsudaDebugMenu_UnknownByteArray:: @ 83C9228
- .byte 0xFC, 0x02, 0x0F, 0x00, 0xFF
-
-Unknown_083C922D:
- .incbin "graphics/unknown/ball.4bpp"
-
- .align 1
-Unknown_083C924E:
- .incbin "graphics/unknown/ball.gbapal"
-
-gUnknown_083C926E:: @ 83C926E
- .byte 2, 0
- .byte 17, 0
- .byte 2, 2
- .byte 17, 2
-
-gMatsudaDebugMenuContestTopLeft:: @ 83C9276
- .byte 0, 6
- .byte 15, 6
- .byte 0, 8
- .byte 15, 8
- .byte 0, 10
- .byte 15, 10
-
-gUnknown_083C9282:: @ 83C9282
- .byte 7, 6
- .byte 22, 6
- .byte 7, 8
- .byte 22, 8
- .byte 7, 10
- .byte 22, 10
-
-gUnknown_083C928E:: @ 83C928E
- .byte 2, 14
- .byte 17, 14
- .byte 2, 16
- .byte 17, 16
-
-gUnknown_083C9296:: @ 83C9296
- .byte 0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88
-
-gUnknown_083C92A8:: @ 83C92A8
- .byte 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98
-
- .align 2
-gUnknown_083C92B4:: @ 83C92B4
- obj_tiles Unknown_083C922D, 32, 0x04b0
-
- .align 2
-gUnknown_083C92BC:: @ 83C92BC
- obj_pal Unknown_083C924E, 0x04B0
-
- .align 2
-gOamData_83C92C4:: @ 83C92C4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83C92CC:: @ 83C92CC
- spr_template 1200, 1200, gOamData_83C92C4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA754
-
- .align 2
-gUnknown_083C92E4:: @ 83C92E4
- .4byte sub_80AA8C8
- .4byte sub_80AA8D8
- .4byte sub_80AA8E8
- .4byte sub_80AA8F8
- .4byte sub_80AAC5C
- .4byte sub_80AAC5C
- .4byte sub_80AA930
- .4byte sub_80AA974
- .4byte sub_80AA9B8
- .4byte sub_80AA9FC
- .4byte sub_80AAA40
- .4byte sub_80AAA84
- .4byte sub_80AAAF0
- .4byte sub_80AAB30
- .4byte sub_80AAB70
- .4byte sub_80AABB0
- .4byte sub_80AABF0
- .4byte sub_80AAD44
-
-gMatsudaDebugMenu_StartText:: @ 83C932C
- .string "{COLOR CYAN}{HIGHLIGHT RED}$"
- .string "かいし$" @ Start
-
-gMatsudaDebugMenu_GoBackText:: @ 83C9337
- .string "もどる$" @ Go Back
-
-gMatsudaDebugMenu_BattlePointsText:: @ 83C933B
-.ifdef ENGLISH
- .string "{COLOR MAGENTA}BP.$"
-.else
- .string "{COLOR MAGENTA}BP,$"
-.endif
-
-MatsudaDebugMenuText_Cool:
- .string "かっこよさ$" @ coolness
-MatsudaDebugMenuText_Cute:
- .string "かわいさ$" @ cuteness
-MatsudaDebugMenuText_Beauty:
- .string "うつくしさ$" @ beauty
-MatsudaDebugMenuText_Smart:
- .string "かしこさ$" @ smartness
-MatsudaDebugMenuText_Tough:
- .string "たくましさ$" @ toughness
-MatsudaDebugMenuText_Sheen:
- .string "けづや$" @ sheen
-
- .align 2
-gMatsudaDebugMenuTextList1:: @ 83C9364
- .4byte MatsudaDebugMenuText_Cool
- .4byte MatsudaDebugMenuText_Cute
- .4byte MatsudaDebugMenuText_Beauty
- .4byte MatsudaDebugMenuText_Smart
- .4byte MatsudaDebugMenuText_Tough
- .4byte MatsudaDebugMenuText_Sheen
-
-MatsudaDebugMenuText_CoolContest:
- .string "かっこよさコンテスト$" @ Cool Contest
-MatsudaDebugMenuText_BeautyContest:
- .string "うつくしさコンテスト$" @ Beauty Contest
-MatsudaDebugMenuText_CuteContest:
- .string "かわいさコンテスト $" @ Cute Contest
-MatsudaDebugMenuText_SmartContest:
- .string "かしこさコンテスト $" @ Smart Contest
-MatsudaDebugMenuText_ToughContest:
- .string "たくましさコンテスト$" @ Tough Contest
-
- .align 2
-gMatsudaDebugMenuTextList2:: @ 83C93B4
- .4byte MatsudaDebugMenuText_CoolContest
- .4byte MatsudaDebugMenuText_BeautyContest
- .4byte MatsudaDebugMenuText_CuteContest
- .4byte MatsudaDebugMenuText_SmartContest
- .4byte MatsudaDebugMenuText_ToughContest
-
-MatsudaDebugMenuText_Fallarbor:
- .string "ハジツゲ/ノーマル$" @ Fallarbor / Normal
-MatsudaDebugMenuText_Verdanturf:
- .string "シダケ/スーパー $" @ Verdanturf / Super
-MatsudaDebugMenuText_Slateport:
- .string "カイナ/ハイパー $" @ Slateport / Hyper
-MatsudaDebugMenuText_Lilycove:
- .string "ミナモ/マスター $" @ Lilycove / Master
-
- .align 2
-gMatsudaDebugMenuTextList3:: @ 83C93F0
- .4byte MatsudaDebugMenuText_Fallarbor @ Normal
- .4byte MatsudaDebugMenuText_Verdanturf @ Super
- .4byte MatsudaDebugMenuText_Slateport @ Hyper
- .4byte MatsudaDebugMenuText_Lilycove @ Master
-
-@ OamData
- .align 2
-gUnknown_083C9400:: @ 83C9400
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0xF3FF
diff --git a/data/money.s b/data/money.s
deleted file mode 100644
index 04e54a836..000000000
--- a/data/money.s
+++ /dev/null
@@ -1,31 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_83CF558:: @ 83CF558
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83CF560:: @ 83CF560
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83CF568:: @ 83CF568
- .4byte gSpriteAnim_83CF560
-
- .align 2
-gSpriteTemplate_83CF56C:: @ 83CF56C
- spr_template 10018, 10018, gOamData_83CF558, gSpriteAnimTable_83CF568, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CF584:: @ 83CF584
- obj_tiles gMenuMoneyGfx, 256, 0x2722
-
- .align 2
-gUnknown_083CF58C:: @ 83CF58C
- obj_pal gMenuMoneyPal, 0x2722
diff --git a/data/mori_debug_menu.s b/data/mori_debug_menu.s
deleted file mode 100644
index 2545b2b15..000000000
--- a/data/mori_debug_menu.s
+++ /dev/null
@@ -1,72 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ These seem to be strings for keypad test code.
-gUnknown_0839B22C:: @ 839B22C
- .string " A$" @ A
- .string " B$" @ B
- .string "SL$" @ SELECT
- .string "ST$" @ START
- .string "RK$" @ right
- .string "LK$" @ left
- .string "UK$" @ up
- .string "DK$" @ down
- .string "RT$" @ R
- .string "LT$" @ L
-
-gUnknown_0839B24A:: @ 839B24A
- .string "ND$"
-
-gUnknown_0839B24D:: @ 839B24D
- .string "の こどもは\n$" @ "'s child <topic-particle>"
-
-gUnknown_0839B255:: @ 839B255
- .string " $"
-
-gUnknown_0839B257:: @ 839B257
- .string "ながいなまえぽけもん$" @ "long name pokemon" (used as test name)
-
-Text_39B262: @ 839B262
- .string "Search a child$"
-
-Text_39B271: @ 839B271
- .string "Egg$"
-
-Text_39B275: @ 839B275
- .string "Egg (male)$"
-
-Text_39B280: @ 839B280
- .string "1000 steps$"
-
-Text_39B28B: @ 839B28B
- .string "10000 steps$"
-
-Text_39B297: @ 839B297
- .string "MOVE TUTOR$"
-
-Text_39B2A2: @ 839B2A2
- .string "Breed an egg$"
-
-Text_39B2AF: @ 839B2AF
- .string "Long name$"
-
-Text_39B2B9: @ 839B2B9
-.ifdef ENGLISH
- .string "ポロックけす$" @ "{POKEBLOCK} CASE$"
-.else
- .string "Delete {POKEBLOCK}$"
-.endif
-
- .align 2
-gMoriDebugMenuActions:: @ 839B2C0
- .4byte Text_39B262, MoriDebugMenu_SearchChild
- .4byte Text_39B271, MoriDebugMenu_Egg
- .4byte Text_39B275, MoriDebugMenu_MaleEgg
- .4byte Text_39B280, MoriDebugMenu_1000Steps
- .4byte Text_39B28B, MoriDebugMenu_10000Steps
- .4byte Text_39B297, MoriDebugMenu_MoveTutor
- .4byte Text_39B2A2, MoriDebugMenu_BreedEgg
- .4byte Text_39B2AF, MoriDebugMenu_LongName
- .4byte Text_39B2B9, MoriDebugMenu_PokeblockCase
diff --git a/data/pc_screen_effect.s b/data/pc_screen_effect.s
new file mode 100755
index 000000000..4f860213a
--- /dev/null
+++ b/data/pc_screen_effect.s
@@ -0,0 +1,43 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083D1898:: @ 83D1898
+ obj_tiles gUnknownGfx_083D190C, 0x80, 0
+
+ .align 2
+gUnknown_083D18A0:: @ 83D18A0
+ obj_pal gUnknownPal_083D18EC, 0x0000
+
+ .align 2
+gSpriteTemplate_83D18A8:: @ 83D18A8
+ spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC
+
+ .align 2
+gSpriteTemplate_83D18C0:: @ 83D18C0
+ spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130
+
+ .align 2
+gOamData_83D18D8:: @ 83D18D8
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83D18E0:: @ 83D18E0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D18E8:: @ 83D18E8
+ .4byte gSpriteAnim_83D18E0
+
+ .align 2
+gUnknownPal_083D18EC::
+ .incbin "graphics/unknown/unknown_3D18EC.gbapal"
+
+ .align 2
+gUnknownGfx_083D190C::
+ .incbin "graphics/unknown/unknown_3D190C.4bpp"
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s
deleted file mode 100644
index a9a3ac847..000000000
--- a/data/reset_rtc_screen.s
+++ /dev/null
@@ -1,67 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08376420:: @ 8376420
- .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0
- .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0
- .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0
- .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0
- .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0
-
- .align 2
-gOamData_837645C:: @ 837645C
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteImage_8376464:: @ 8376464
- .incbin "graphics/unknown_sprites/83764AC/0.4bpp"
-
- .align 2
-gSpriteImage_8376484:: @ 8376484
- .incbin "graphics/unknown_sprites/83764AC/1.4bpp"
-
- .align 2
-Palette_3764A4: @ 83764A4
- .incbin "graphics/unknown/83764A4.gbapal"
-
- .align 2
-gSpriteImageTable_83764AC:: @ 83764AC
- obj_frame_tiles gSpriteImage_8376464, 0x20
- obj_frame_tiles gSpriteImage_8376484, 0x20
-
- .align 2
-gUnknown_083764BC:: @ 83764BC
- obj_pal Palette_3764A4, 0x1000
-
- .align 2
-gSpriteAnim_83764C4:: @ 83764C4
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764CC:: @ 83764CC
- obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764D4:: @ 83764D4
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83764DC:: @ 83764DC
- .4byte gSpriteAnim_83764C4
- .4byte gSpriteAnim_83764CC
- .4byte gSpriteAnim_83764D4
-
- .align 2
-gSpriteTemplate_83764E8:: @ 83764E8
- spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_08376500:: @ 8376500
- .string " : $"
diff --git a/data/text/battle_strings.inc b/data/text/battle_strings.inc
deleted file mode 100644
index 7a47caa0e..000000000
--- a/data/text/battle_strings.inc
+++ /dev/null
@@ -1,1830 +0,0 @@
-BattleText_UnknownString:
- .string "{STRING 33}$"
-BattleText_GainExpPoints:
- .string "{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p$"
-BattleText_Terminator:
- .string "$"
-BattleText_BoostedExp:
- .string " a boosted$"
-BattleText_GrewLevel:
- .string "{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p$"
-BattleText_LearnedMove:
- .string "{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p$"
-BattleText_TryingToLearnMove:
- .string "{STRING 0} is trying to\nlearn {STRING 1}.\p$"
-BattleText_CantLearnMore:
- .string "But, {STRING 0} can’t learn\nmore than four moves.\p$"
-BattleText_DeleteMove:
- .string "Delete a move to make\nroom for {STRING 1}?$"
-BattleText_DeletedMove:
- .string "{STRING 0} forgot\n{STRING 1}.\p$"
-BattleText_StopLearning:
- .string "{PAUSE 32}Stop learning\n{STRING 1}?$"
-BattleText_DidNotLearn:
- .string "{STRING 0} did not learn\n{STRING 1}.\p$"
-BattleText_UseNext:
- .string "Use next POKéMON?$"
-BattleText_AttackMissed:
- .string "{ATTACKING_MON}’s\nattack missed!$"
-BattleText_ProtectedItself:
- .string "{DEFENDING_MON}\nprotected itself!$"
-BattleText_AvoidedDamage:
- .string "{DEFENDING_MON} avoided\ndamage with {STRING 22}!$"
-BattleText_GroundMoveNegate:
- .string "{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!$"
-BattleText_AvoidedAttack:
- .string "{DEFENDING_MON} avoided\nthe attack!$"
-BattleText_DoesntAffect:
- .string "It doesn’t affect\n{DEFENDING_MON}...$"
-BattleText_AttackingFainted:
- .string "{ATTACKING_MON}\nfainted!\p$"
-BattleText_DefendingFainted:
- .string "{DEFENDING_MON}\nfainted!\p$"
-BattleText_WinningPrize:
- .string "{STRING 32} got ¥{STRING 0}\nfor winning!\p$"
-BattleText_OutOfUsablePoke:
- .string "{STRING 32} is out of\nuseable POKéMON!\p$"
-BattleText_WhitedOut:
- .string "{STRING 32} whited out!{PAUSE_UNTIL_PRESS}$"
-BattleText_PreventEscape:
- .string "{STRING 16} prevents\nescape with {STRING 23}!\p$"
-BattleText_CantEscape:
- .string "Can’t escape!\p$"
-BattleText_AttackingCantEscape:
- .string "{ATTACKING_MON}\ncan’t escape!$"
-BattleText_HitMulti:
- .string "Hit {STRING 0} time(s)!$"
-BattleText_FellAsleep:
- .string "{STRING 14}\nfell asleep!$"
-BattleText_MadeAsleep:
- .string "{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!$"
-BattleText_DefendingAsleep:
- .string "{DEFENDING_MON} is\nalready asleep!$"
-BattleText_AttackingAsleep:
- .string "{ATTACKING_MON} is\nalready asleep!$"
-BattleText_WasntAffected:
- .string "{DEFENDING_MON}\nwasn’t affected!$"
-BattleText_Poisoned:
- .string "{STRING 14}\nwas poisoned!$"
-BattleText_Poisoned2:
- .string "{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!$"
-BattleText_PoisonHurt:
- .string "{ATTACKING_MON} is hurt\nby poison!$"
-BattleText_AlreadyPoisoned:
- .string "{DEFENDING_MON} is already\npoisoned.$"
-BattleText_BadlyPoisoned:
- .string "{STRING 14} is badly\npoisoned!$"
-BattleText_EnergyDrained:
- .string "{DEFENDING_MON} had its\nenergy drained!$"
-BattleText_Burned:
- .string "{STRING 14} was burned!$"
-BattleText_Burned2:
- .string "{STRING 16}’s {STRING 23}\nburned {STRING 14}!$"
-BattleText_BurnHurt:
- .string "{ATTACKING_MON} is hurt\nby its burn!$"
-BattleText_AlreadyBurned:
- .string "{DEFENDING_MON} already\nhas a burn.$"
-BattleText_Frozen:
- .string "{STRING 14} was\nfrozen solid!$"
-BattleText_Frozen2:
- .string "{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!$"
-BattleText_FrozenSolid:
- .string "{ATTACKING_MON} is\nfrozen solid!$"
-BattleText_DefendingDefrosted:
- .string "{DEFENDING_MON} was\ndefrosted!$"
-BattleText_AttackingDefrosted:
- .string "{ATTACKING_MON} was\ndefrosted!$"
-BattleText_Defrosted:
- .string "{ATTACKING_MON} was\ndefrosted by {STRING 17}!$"
-BattleText_Paralyzed:
- .string "{STRING 14} is paralyzed!\nIt may be unable to move!$"
-BattleText_Paralyzed2:
- .string "{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!$"
-BattleText_Paralyzed3:
- .string "{ATTACKING_MON} is paralyzed!\nIt can’t move!$"
-BattleText_AlreadyParalyzed:
- .string "{DEFENDING_MON} is\nalready paralyzed!$"
-BattleText_ParalysisHealed:
- .string "{DEFENDING_MON} was\nhealed of paralysis!$"
-BattleText_DreamEaten:
- .string "{DEFENDING_MON}’s\ndream was eaten!$"
-BattleText_AttackingStatNoHigher:
- .string "{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!$"
-BattleText_DefendingStatNoHigher:
- .string "{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!$"
-BattleText_StoppedWorking:
- .string "Your team’s {STRING 0}\nstopped working!$"
-BattleText_StoppedWorking2:
- .string "The foe’s {STRING 0}\nstopped working!$"
-BattleText_Confused:
- .string "{ATTACKING_MON} is\nconfused!$"
-BattleText_ConfusionSnapOut:
- .string "{ATTACKING_MON} snapped\nout of confusion!$"
-BattleText_BecameConfused:
- .string "{STRING 14} became\nconfused!$"
-BattleText_AlreadyConfused:
- .string "{DEFENDING_MON} is\nalready confused!$"
-BattleText_FellLove:
- .string "{DEFENDING_MON}\nfell in love!$"
-BattleText_InLoveWith:
- .string "{ATTACKING_MON} is in love\nwith {STRING 16}!$"
-BattleText_ImmobilizedBy:
- .string "{ATTACKING_MON} is\nimmobilized by love!$"
-BattleText_BlownAway:
- .string "{DEFENDING_MON} was\nblown away!$"
-BattleText_TypeTransform:
- .string "{ATTACKING_MON} transformed\ninto the {STRING 0} type!$"
-BattleText_Flinched:
- .string "{ATTACKING_MON} flinched!$"
-BattleText_RegainedHealth:
- .string "{DEFENDING_MON} regained\nhealth!$"
-BattleText_HPFull:
- .string "{DEFENDING_MON}’s\nHP is full!$"
-BattleText_RaisedSpDef:
- .string "{STRING 38}’s {STRING 17}\nraised SP. DEF!$"
-BattleText_RaisedSpDefLittle:
- .string "{STRING 38}’s {STRING 17}\nraised SP. DEF a little!$"
-BattleText_RaisedDefense:
- .string "{STRING 38}’s {STRING 17}\nraised DEFENSE!$"
-BattleText_RaisedDefenseLittle:
- .string "{STRING 38}’s {STRING 17}\nraised DEFENSE a little!$"
-BattleText_CoveredVeil:
- .string "{STRING 38} is covered\nby a veil!$"
-BattleText_SafeguardActive:
- .string "{DEFENDING_MON} is protected\nby SAFEGUARD!$"
-BattleText_SafeguardFaded:
- .string "{STRING 40}’s SAFEGUARD\nfaded!$"
-BattleText_WentToSleep:
- .string "{ATTACKING_MON} went\nto sleep!$"
-BattleText_SpeltHealthy:
- .string "{ATTACKING_MON} slept and\nbecame healthy!$"
-BattleText_WhipWhirlwind:
- .string "{ATTACKING_MON} whipped\nup a whirlwind!$"
-BattleText_TookSunlight:
- .string "{ATTACKING_MON} took\nin sunlight!$"
-BattleText_LoweredHead:
- .string "{ATTACKING_MON} lowered\nits head!$"
-BattleText_IsGlowing:
- .string "{ATTACKING_MON} is glowing!$"
-BattleText_FlewHigh:
- .string "{ATTACKING_MON} flew\nup high!$"
-BattleText_DugHole:
- .string "{ATTACKING_MON} dug a hole!$"
-BattleText_HidUnderwater:
- .string "{ATTACKING_MON} hid\nunderwater!$"
-BattleText_SprangUp:
- .string "{ATTACKING_MON} sprang up!$"
-BattleText_SqueezedBind:
- .string "{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!$"
-BattleText_TrappedVortex:
- .string "{DEFENDING_MON} was trapped\nin the vortex!$"
-BattleText_SandTombTrapped:
- .string "{DEFENDING_MON} was trapped\nby SAND TOMB!$"
-BattleText_Wrapped:
- .string "{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!$"
-BattleText_Clamped:
- .string "{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!$"
-BattleText_HurtBy:
- .string "{ATTACKING_MON} is hurt\nby {STRING 0}!$"
-BattleText_FreedFrom:
- .string "{ATTACKING_MON} was freed\nfrom {STRING 0}!$"
-BattleText_KeptGoingCrash:
- .string "{ATTACKING_MON} kept going\nand crashed!$"
-
-gUnknown_083FEE5D:: @ 83FEE5D
-BattleText_MistShroud:
- .string "{STRING 38} became\nshrouded in MIST!$"
-BattleText_MistProtect:
- .string "{STRING 16} is protected\nby MIST!$"
-
-gUnknown_083FEE92:: @ 83FEE92
-BattleText_GetPumped:
- .string "{ATTACKING_MON} is getting\npumped!$"
-BattleText_HitRecoil:
- .string "{ATTACKING_MON} is hit\nwith recoil!$"
-BattleText_ProtectedItself2:
- .string "{ATTACKING_MON} protected\nitself!$"
-BattleText_SandBuffeted:
- .string "{ATTACKING_MON} is buffeted\nby the sandstorm!$"
-BattleText_HailStricken:
- .string "{ATTACKING_MON} is stricken\nby HAIL!$"
-BattleText_WoreOff:
- .string "{STRING 36}’s {STRING 0}\nwore off!$"
-BattleText_WasSeeded:
- .string "{DEFENDING_MON} was seeded!$"
-BattleText_EvadedAttack:
- .string "{DEFENDING_MON} evaded\nthe attack!$"
-BattleText_HealthSapped:
- .string "{ATTACKING_MON}’s health is\nsapped by LEECH SEED!$"
-BattleText_FastAsleep:
- .string "{ATTACKING_MON} is fast\nasleep.$"
-BattleText_WokeUp:
- .string "{ATTACKING_MON} woke up!$"
-BattleText_UproarAwake:
- .string "But {STRING 16}’s UPROAR\nkept it awake!$"
-BattleText_UproarWoke:
- .string "{ATTACKING_MON} woke up\nin the UPROAR!$"
-BattleText_UproarCaused:
- .string "{ATTACKING_MON} caused\nan UPROAR!$"
-BattleText_UproarMaking:
- .string "{ATTACKING_MON} is making\nan UPROAR!$"
-BattleText_CalmedDown:
- .string "{ATTACKING_MON} calmed down.$"
-BattleText_UproarCantSleep:
- .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$"
-BattleText_Stockpiled:
- .string "{ATTACKING_MON} STOCKPILED\n{STRING 0}!$"
-BattleText_StockpiledCant:
- .string "{ATTACKING_MON} can’t\nSTOCKPILE any more!$"
-BattleText_UproarCantSleep2:
- .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$"
-BattleText_UproarKeptAwake:
- .string "But the UPROAR kept\n{DEFENDING_MON} awake!$"
-BattleText_StayedAwake:
- .string "{DEFENDING_MON} stayed awake\nusing its {STRING 22}!$"
-BattleText_StoringEnergy:
- .string "{ATTACKING_MON} is storing\nenergy!$"
-BattleText_UnleashedEnergy:
- .string "{ATTACKING_MON} unleashed\nenergy!$"
-BattleText_FatigueConfuse:
- .string "{ATTACKING_MON} became\nconfused out of fatigue!$"
-BattleText_PickedUpYen:
- .string "{STRING 32} picked up\n¥{STRING 0}!\p$"
-BattleText_Unaffected:
- .string "{DEFENDING_MON} is\nunaffected!$"
-BattleText_Transformed:
- .string "{ATTACKING_MON} transformed\ninto {STRING 0}!$"
-BattleText_SubMade:
- .string "{ATTACKING_MON} made\na SUBSTITUTE!$"
-BattleText_SubAlready:
- .string "{ATTACKING_MON} already\nhas a SUBSTITUTE!$"
-BattleText_SubTookDamage:
- .string "The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p$"
-BattleText_SubFaded:
- .string "{DEFENDING_MON}’s\nSUBSTITUTE faded!\p$"
-BattleText_MustRecharge:
- .string "{ATTACKING_MON} must\nrecharge!$"
-BattleText_RageBuilding:
- .string "{DEFENDING_MON}’s RAGE\nis building!$"
-BattleText_MoveWasDisabled:
- .string "{DEFENDING_MON}’s {STRING 0}\nwas disabled!$"
-BattleText_DisabledNoMore:
- .string "{ATTACKING_MON} is disabled\nno more!$"
-BattleText_EncoreGot:
- .string "{DEFENDING_MON} got\nan ENCORE!$"
-BattleText_EncoreEnded:
- .string "{ATTACKING_MON}’s ENCORE\nended!$"
-BattleText_TookAim:
- .string "{ATTACKING_MON} took aim\nat {DEFENDING_MON}!$"
-BattleText_SketchedMove:
- .string "{ATTACKING_MON} SKETCHED\n{STRING 0}!$"
-BattleText_DestinyBondTake:
- .string "{ATTACKING_MON} is trying\nto take its foe with it!$"
-BattleText_DestinyBondTaken:
- .string "{DEFENDING_MON} took\n{ATTACKING_MON} with it!$"
-BattleText_ReducedBy:
- .string "Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!$"
-BattleText_StoleSomething:
- .string "{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!$"
-BattleText_CantEscapeNow:
- .string "{DEFENDING_MON} can’t\nescape now!$"
-BattleText_NightmareStart:
- .string "{DEFENDING_MON} fell into\na NIGHTMARE!$"
-BattleText_NightmareLock:
- .string "{ATTACKING_MON} is locked\nin a NIGHTMARE!$"
-BattleText_CurseLay:
- .string "{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!$"
-BattleText_CurseAfflict:
- .string "{ATTACKING_MON} is afflicted\nby the CURSE!$"
-BattleText_SpikesScattered:
- .string "{STRING 37} POKéMON team had SPIKES\nscattered around it!$"
-BattleText_SpikesHurt:
- .string "{STRING 16} is hurt\nby SPIKES!$"
-BattleText_IdentifiedPoke:
- .string "{ATTACKING_MON} identified\n{DEFENDING_MON}!$"
-BattleText_PerishSongFell:
- .string "{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!$"
-BattleText_BracedItself:
- .string "{ATTACKING_MON} braced\nitself!$"
-BattleText_EnduredHit:
- .string "{DEFENDING_MON} ENDURED\nthe hit!$"
-BattleText_MagnitudeCount:
- .string "MAGNITUDE {STRING 0}!$"
-BattleText_CutHPMaxATK:
- .string "{ATTACKING_MON} cut its own HP\nand maximized ATTACK!$"
-BattleText_CopyStatChanges:
- .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!$"
-BattleText_GotFreeFrom:
- .string "{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!$"
-BattleText_LeechShed:
- .string "{ATTACKING_MON} shed\nLEECH SEED!$"
-BattleText_SpikesBlownAway:
- .string "{ATTACKING_MON} blew away\nSPIKES!$"
-BattleText_FledBattle:
- .string "{ATTACKING_MON} fled from\nbattle!$"
-BattleText_ForesawAttack:
- .string "{ATTACKING_MON} foresaw\nan attack!$"
-BattleText_TookAttack:
- .string "{DEFENDING_MON} took\n{STRING 0}’s attack!$"
-BattleText_ChoseDestiny:
- .string "{ATTACKING_MON} chose\n{STRING 17} as its destiny!$"
-BattleText_PokeAttack:
- .string "{STRING 0}’s attack!$"
-BattleText_CenterAttention:
- .string "{ATTACKING_MON} became the\ncenter of attention!$"
-BattleText_ChargingPower:
- .string "{ATTACKING_MON} began\ncharging power!$"
-BattleText_NaturePower:
- .string "NATURE POWER turned into\n{STRING 17}!$"
-BattleText_StatusNormal:
- .string "{ATTACKING_MON}’s status\nreturned to normal!$"
-BattleText_TormentSubject:
- .string "{DEFENDING_MON} was subjected\nto TORMENT!$"
-BattleText_TightenFocus:
- .string "{ATTACKING_MON} is tightening\nits focus!$"
-BattleText_TauntFell:
- .string "{DEFENDING_MON} fell for\nthe TAUNT!$"
-BattleText_ReadyToHelp:
- .string "{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!$"
-BattleText_SwitchedItems:
- .string "{ATTACKING_MON} switched\nitems with its opponent!$"
-BattleText_Obtained1:
- .string "{ATTACKING_MON} obtained\n{STRING 0}.$"
-BattleText_Obtained2:
- .string "{DEFENDING_MON} obtained\n{STRING 1}.$"
-BattleText_Obtained3:
- .string "{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}.$"
-BattleText_CopiedObject:
- .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!$"
-BattleText_WishMade:
- .string "{ATTACKING_MON} made a WISH!$"
-BattleText_WishTrue:
- .string "{STRING 0}’s WISH\ncame true!$"
-BattleText_PlantedRoots:
- .string "{ATTACKING_MON} planted its roots!$"
-BattleText_AbsorbNutrients:
- .string "{ATTACKING_MON} absorbed\nnutrients with its roots!$"
-BattleText_AnchoredItself:
- .string "{DEFENDING_MON} anchored\nitself with its roots!$"
-BattleText_DrowsyMade:
- .string "{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!$"
-BattleText_KnockedOffItem:
- .string "{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!$"
-BattleText_AbilitySwap:
- .string "{ATTACKING_MON} swapped abilities\nwith its opponent!$"
-BattleText_SealedMove:
- .string "{ATTACKING_MON} sealed the\nopponent’s move(s)!$"
-BattleText_GrudgeBear:
- .string "{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!$"
-BattleText_GrudgeLosePP:
- .string "{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!$"
-BattleText_ShroudedItself:
- .string "{ATTACKING_MON} shrouded\nitself in {STRING 17}!$"
-BattleText_MagicCoatBounce:
- .string "{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!$"
-BattleText_AwaitMove:
- .string "{ATTACKING_MON} awaits its foe\nto make a move!$"
-BattleText_SnatchedMove:
- .string "{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!$"
-BattleText_ElecWeakened:
- .string "Electricity’s power was\nweakened!$"
-BattleText_FireWeakened:
- .string "Fire’s power was\nweakened!$"
-BattleText_FoundOne:
- .string "{ATTACKING_MON} found\none {STRING 19}!$"
-BattleText_SoothingAroma:
- .string "A soothing aroma wafted\nthrough the area!$"
-BattleText_CantUseItems:
- .string "Items can’t be used now.{PAUSE 64}$"
-BattleText_UnknownString2:
- .string "For {STRING 16},\n{STRING 19} {STRING 0}$"
-BattleText_HustleUse:
- .string "{STRING 16} used\n{STRING 19} to hustle!$"
-BattleText_LostFocus:
- .string "{ATTACKING_MON} lost its\nfocus and couldn’t move!$"
-BattleText_DraggedOut:
- .string "{DEFENDING_MON} was\ndragged out!\p$"
-BattleText_BrokeWall:
- .string "The wall shattered!$"
-BattleText_NoEffect:
- .string "But it had no effect!$"
-BattleText_NoMovesLeft:
- .string "{STRING 15} has no\nmoves left!\p$"
-BattleText_MoveIsDisabled:
- .string "{STRING 15}’s {STRING 17}\nis disabled!\p$"
-BattleText_TormentNoUse:
- .string "{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p$"
-BattleText_TauntNoUse:
- .string "{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p$"
-BattleText_SealedNoUse:
- .string "{STRING 15} can’t use the\nsealed {STRING 17}!\p$"
-BattleText_RainMade:
- .string "{STRING 16}’s {STRING 23}\nmade it rain!$"
-BattleText_SpeedRisen:
- .string "{STRING 16}’s {STRING 23}\nraised its SPEED!$"
-BattleText_ProtectedBy:
- .string "{DEFENDING_MON} was protected\nby {STRING 22}!$"
-BattleText_PreventedBy:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!$"
-BattleText_HPRestoredUsing:
- .string "{DEFENDING_MON} restored HP\nusing its {STRING 22}!$"
-BattleText_MadeUseless:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!$"
-BattleText_MadeType:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!$"
-BattleText_PreventedPara:
- .string "{STRING 14}’s {STRING 22}\nprevents paralysis!$"
-BattleText_PreventedRomance:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents romance!$"
-BattleText_PreventedPoison:
- .string "{STRING 14}’s {STRING 22}\nprevents poisoning!$"
-BattleText_PreventedConfusion:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevents confusion!$"
-BattleText_RaisedFirePower:
- .string "{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!$"
-BattleText_AnchorsItself:
- .string "{DEFENDING_MON} anchors\nitself with {STRING 22}!$"
-BattleText_CutsAttack:
- .string "{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!$"
-BattleText_PreventedStatLoss:
- .string "{STRING 16}’s {STRING 23}\nprevents stat loss!$"
-BattleText_HurtOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!$"
-BattleText_Traced:
- .string "{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!$"
-BattleText_PreventedBurn:
- .string "{STRING 14}’s {STRING 24}\nprevents burns!$"
-BattleText_BlocksOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!$"
-BattleText_BlocksOther2:
- .string "{STRING 16}’s {STRING 23}\nblocks {STRING 17}!$"
-BattleText_RestoredHPByItem:
- .string "{ATTACKING_MON}’s {STRING 21}\nrestored some HP!$"
-BattleText_WhipSandstorm:
- .string "{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!$"
-BattleText_SunIntensified:
- .string "{STRING 16}’s {STRING 23}\nintensified the sun’s rays!$"
-BattleText_PreventedLoss:
- .string "{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!$"
-BattleText_InfatuatedPoke:
- .string "{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!$"
-BattleText_MadeIneffective:
- .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!$"
-BattleText_CuredProblem:
- .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$"
-BattleText_OozeSuckup:
- .string "It sucked up the\nLIQUID OOZE!$"
-BattleText_Transformed2:
- .string "{STRING 16} transformed!$"
-BattleText_TookAttack2:
- .string "{DEFENDING_MON}’s {STRING 22}\ntook the attack!$"
-
-gUnknown_083FFCCA:: @ 83FFCCA
-BattleText_PreventedSwitch::
- .string "{STRING 0}’s {STRING 20}\nprevents switching!\p$"
-BattleText_PreventedOther:
- .string "{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!$"
-BattleText_MadeIneffective2:
- .string "{STRING 16}’s {STRING 23}\nmade it ineffective!$"
-BattleText_PreventedFlinching:
- .string "{STRING 14}’s {STRING 24}\nprevents flinching!$"
-BattleText_PreventedOther2:
- .string "{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!$"
-BattleText_CuredOfProblem:
- .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$"
-BattleText_NoEffectOn:
- .string "{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!$"
-BattleText_Sharply:
- .string "sharply $"
-
-gUnknown_083FFDB3:: @ 83FFDB3
-BattleText_Rose:
- .string "rose!$"
-BattleText_Harshly:
- .string "harshly $"
-BattleText_Fell:
- .string "fell!$"
-BattleText_UnknownString7:
- .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$"
-
-gUnknown_083FFDD3:: @ 83FFDD3
-BattleText_UnknownString3:
- .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_UnknownString4:
- .string "Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}$"
-BattleText_UnknownString5:
- .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_UnknownString6:
- .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$"
-BattleText_StatNoHigher:
- .string "{ATTACKING_MON}’s stats won’t\ngo any higher!$"
-BattleText_StatNoLower:
- .string "{DEFENDING_MON}’s stats won’t\ngo any lower!$"
-BattleText_Critical:
- .string "A critical hit!$"
-BattleText_GrandSlam:
- .string "It’s a one-hit KO!$"
-BattleText_MoveForget123:
- .string "{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p$"
-BattleText_MoveForgetAnd:
- .string "And...\p$"
-BattleText_CantForgetHM:
- .string "HM moves can’t be\nforgotten now.\p$"
-BattleText_NotEffective:
- .string "It’s not very effective...$"
-BattleText_SuperEffective:
- .string "It’s super effective!$"
-
-gUnknown_083FFEFC:: @ 83FFEFC
-BattleText_GotAwaySafely:
- .string "{PLAY_SE SE_NIGERU}Got away safely!\p$"
-BattleText_FledUsingItem:
- .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p$"
-BattleText_FledUsingOther:
- .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p$"
-BattleText_FledWild:
- .string "{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!$"
-
-gUnknown_083FFF56:: @ 83FFF56
-BattleText_PlayerDefeatedTrainer:
- .string "Player defeated\n{STRING 29}!$"
-
-gUnknown_083FFF6A:: @ 83FFF6A
-BattleText_PlayerDefeatedTrainers:
- .string "Player beat {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFF81:: @ 83FFF81
-BattleText_PlayerLostTrainer:
- .string "Player lost against\n{STRING 29}!$"
-
-gUnknown_083FFF99:: @ 83FFF99
-BattleText_PlayerLostTrainers:
- .string "Player lost to {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFFB3:: @ 83FFFB3
-BattleText_PlayerTiedTrainer:
- .string "Player tied against\n{STRING 29}!$"
-
-gUnknown_083FFFCB:: @ 83FFFCB
-BattleText_PlayerTiedTrainers:
- .string "Player tied against {STRING 30}\nand {STRING 29}!$"
-
-gUnknown_083FFFEA:: @ 83FFFEA
-BattleText_FledSingle:
- .string "{PLAY_SE SE_NIGERU}{STRING 29} fled!$"
-
-gUnknown_083FFFF7:: @ 83FFFF7
-BattleText_FledDouble:
- .string "{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!$"
-BattleText_NoRunning:
- .string "No! There’s no running\nfrom a TRAINER battle!\p$"
-BattleText_CantEscape2:
- .string "Can’t escape!\p$"
-BattleText_BirchDontLeaveMe:
- .string "PROF. BIRCH: D-don’t leave\nme here like this!\p$"
-BattleText_Nothing:
- .string "But nothing happened!$"
-BattleText_Failed:
- .string "But it failed!$"
-BattleText_HurtItself:
- .string "It hurt itself in its\nconfusion!$"
-BattleText_MirrorFail:
- .string "The MIRROR MOVE failed!$"
-BattleText_RainStart:
- .string "It started to rain!$"
-BattleText_PourStart:
- .string "A downpour started!$"
-BattleText_RainCont1:
- .string "Rain continues to fall.$"
-BattleText_PourCont:
- .string "The downpour continues.$"
-BattleText_RainStop:
- .string "The rain stopped.$"
-BattleText_SandBrewed:
- .string "A sandstorm brewed!$"
-BattleText_SandRages:
- .string "The sandstorm rages.$"
-BattleText_SandSubsided:
- .string "The sandstorm subsided.$"
-BattleText_SunBright:
- .string "The sunlight got bright!$"
-BattleText_SunStrong:
- .string "The sunlight is strong.$"
-BattleText_SunFaded:
- .string "The sunlight faded.$"
-BattleText_HailStart:
- .string "It started to hail!$"
-BattleText_HailCont:
- .string "Hail continues to fall.$"
-BattleText_HailStop:
- .string "The hail stopped.$"
-BattleText_SpitUpFail:
- .string "But it failed to SPIT UP\na thing!$"
-BattleText_SwallowFail:
- .string "But it failed to SWALLOW\na thing!$"
-BattleText_WindHeatWave:
- .string "The wind turned into a\nHEAT WAVE!$"
-BattleText_StatElim:
- .string "All stat changes were\neliminated!$"
-BattleText_CoinScatter:
- .string "Coins scattered everywhere!$"
-BattleText_SubWeak:
- .string "It was too weak to make\na SUBSTITUTE!$"
-BattleText_PainSplit:
- .string "The battlers shared\ntheir pain!$"
-BattleText_BellChime:
- .string "A bell chimed!$"
-BattleText_PerishSong:
- .string "All affected POKéMON will\nfaint in 3 turns!$"
-BattleText_NoPP1:
- .string "There’s no PP left for\nthis move!\p$"
-BattleText_NoPP2:
- .string "But there was no PP left\nfor the move!$"
-BattleText_IgnoredOrdersSLP:
- .string "{ATTACKING_MON} ignored\norders while asleep!$"
-BattleText_IgnoredOrders:
- .string "{ATTACKING_MON} ignored\norders!$"
-BattleText_BeganNap:
- .string "{ATTACKING_MON} began to nap!$"
-BattleText_LoafingAround:
- .string "{ATTACKING_MON} is\nloafing around!$"
-BattleText_WontObey:
- .string "{ATTACKING_MON} won’t\nobey!$"
-BattleText_TurnedAway:
- .string "{ATTACKING_MON} turned away!$"
-BattleText_NotNotice:
- .string "{ATTACKING_MON} pretended\nto not notice!$"
-BattleText_WillSwitch:
- .string "{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?$"
-BattleText_LearnedMove2:
- .string "{ATTACKING_MON} learned\n{STRING 0}!$"
-BattleText_PlayerDefeatedTrainer2:
- .string "Player defeated\n{STRING 25} {STRING 26}!\p$"
-BattleText_CreptCloser:
- .string "{STRING 32} crept closer to\n{STRING 3}!$"
-BattleText_CantGetCloser:
- .string "{STRING 32} can’t get any closer!$"
-BattleText_WatchingCarefully:
- .string "{STRING 3} is watching\ncarefully!$"
-BattleText_CuriousAbout:
- .string "{STRING 3} is curious about\nthe {STRING 0}!$"
-BattleText_EnthralledBy:
- .string "{STRING 3} is enthralled by\nthe {STRING 0}!$"
-BattleText_IgnoredThing:
- .string "{STRING 3} completely ignored\nthe {STRING 0}!$"
-BattleText_ThrewBlock:
- .string "{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!$"
-BattleText_SafariOver:
- .string "{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$"
-
-gUnknown_08400555:: @ 8400555
-BattleText_WildAppeared1:
- .string "Wild {STRING 3} appeared!\p$"
-
-gUnknown_08400568:: @ 8400568
-BattleText_WildAppeared2:
- .string "Wild {STRING 3} appeared!\p$"
-
-gUnknown_0840057B:: @ 840057B
-BattleText_WildAppeared3:
- .string "Wild {STRING 3} appeared!{PAUSE 127}$"
-
-gUnknown_08400590:: @ 8400590
-BattleText_WildDoubleAppeared:
- .string "Wild {STRING 5} and\n{STRING 3} appeared!\p$"
-
-gUnknown_084005AA:: @ 84005AA
-BattleText_SingleWantToBattle1:
- .string "{STRING 25} {STRING 26}\nwould like to battle!\p$"
-
-gUnknown_084005C7:: @ 84005C7
-BattleText_SingleWantToBattle2:
- .string "{STRING 29}\nwants to battle!$"
-
-gUnknown_084005DB:: @ 84005DB
-BattleText_DoubleWantToBattle:
- .string "{STRING 29} and {STRING 30}\nwant to battle!$"
-
-gUnknown_084005F5:: @ 84005F5
-BattleText_SentOutSingle1:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 3}!$"
-
-gUnknown_08400608:: @ 8400608
-BattleText_SentOutDouble1:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!$"
-
-gUnknown_08400622:: @ 8400622
-BattleText_SentOutSingle2:
- .string "{STRING 25} {STRING 26} sent\nout {STRING 0}!$"
-
-gUnknown_08400635:: @ 8400635
-BattleText_SentOutSingle3:
- .string "{STRING 29} sent\nout {STRING 3}!$"
-
-gUnknown_08400645:: @ 8400645
-BattleText_SentOutDouble2:
- .string "{STRING 29} sent out\n{STRING 3} and {STRING 5}!$"
-
-gUnknown_0840065C:: @ 840065C
-BattleText_SentOutDouble3:
- .string "{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!$"
-
-gUnknown_0840067C:: @ 840067C
-BattleText_SentOutSingle4:
- .string "{STRING 29} sent out\n{STRING 0}!$"
-
-gUnknown_0840068C:: @ 840068C
-BattleText_SentOutSingle5:
- .string "{STRING 31} sent out\n{STRING 0}!$"
-
-gUnknown_0840069C:: @ 840069C
-BattleText_SentOutSingle6:
- .string "Go! {STRING 2}!$"
-
-gUnknown_084006A4:: @ 84006A4
-BattleText_SentOutDouble4:
- .string "Go! {STRING 2} and\n{STRING 4}!$"
-
-gUnknown_084006B3:: @ 84006B3
-BattleText_SentOutSingle7:
- .string "Go! {STRING 0}!$"
-
-gUnknown_084006BB:: @ 84006BB
-BattleText_SentOutSingle8:
- .string "Do it! {STRING 0}!$"
-
-gUnknown_084006C6:: @ 84006C6
-BattleText_SentOutSingle9:
- .string "Go for it, {STRING 0}!$"
-
-gUnknown_084006D5:: @ 84006D5
-BattleText_SentOutSingle10:
- .string "Your foe’s weak!\nGet’m, {STRING 0}!$"
-
-gUnknown_084006F1:: @ 84006F1
-BattleText_SentOutSingle11:
- .string "{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!$"
-
-gUnknown_08400709:: @ 8400709
-BattleText_ComeBackSingle1:
- .string "{STRING 0}, that’s enough!\nCome back!$"
-
-gUnknown_08400727:: @ 8400727
-BattleText_ComeBackSingle2:
- .string "{STRING 0}, come back!$"
-
-gUnknown_08400736:: @ 8400736
-BattleText_ComeBackSingle3:
- .string "{STRING 0}, OK!\nCome back!$"
-
-gUnknown_08400749:: @ 8400749
-BattleText_ComeBackSingle4:
- .string "{STRING 0}, good!\nCome back!$"
-
-gUnknown_0840075E:: @ 840075E
-BattleText_WithdrewPoke1:
- .string "{STRING 25} {STRING 26}\nwithdrew {STRING 0}!$"
-
-gUnknown_08400771:: @ 8400771
-BattleText_WithdrewPoke2:
- .string "{STRING 29} withdrew\n{STRING 0}!$"
-
-gUnknown_08400781:: @ 8400781
-BattleText_WithdrewPoke3:
- .string "{STRING 31} withdrew\n{STRING 0}!$"
-
-gUnknown_08400791:: @ 8400791
-BattleText_Wild:
- .string "Wild $"
-
-gUnknown_08400797:: @ 8400797
-BattleText_Foe:
- .string "Foe $"
-
-gUnknown_0840079C:: @ 840079C
-BattleText_Foe2:
- .string "Foe $"
-
-gUnknown_084007A1:: @ 84007A1
-BattleText_Ally:
- .string "Ally $"
-
-gUnknown_084007A7:: @ 84007A7
-BattleText_Foe3:
- .string "Foe $"
-
-gUnknown_084007AC:: @ 84007AC
-BattleText_Ally2:
- .string "Ally $"
-
-gUnknown_084007B2:: @ 84007B2
-BattleText_Foe4:
- .string "Foe $"
-
-gUnknown_084007B7:: @ 84007B7
-BattleText_Ally3:
- .string "Ally $"
-
-gUnknown_084007BD:: @ 84007BD
-BattleText_OpponentUsedMove:
- .string "{ATTACKING_MON} used\n{STRING 1}$"
-
-gUnknown_084007C8:: @ 84007C8
-BattleText_Exclamation2: @ out of order but whatever
- .string "!$"
-
-gUnknown_084007CA:: @ 84007CA
-BattleText_Exclamation3:
- .string "!$"
-
-gUnknown_084007CC:: @ 84007CC
-BattleText_Exclamation4:
- .string "!$"
-
-gUnknown_084007CE:: @ 84007CE
-BattleText_Exclamation5:
- .string "!$"
-
-gUnknown_084007D0:: @ 84007D0
-BattleText_Exclamation:
- .string "!$"
-BattleStatText_HP:
- .string "HP$"
-BattleStatText_Attack:
- .string "ATTACK$"
-BattleStatText_Defense:
- .string "DEFENSE$"
-BattleStatText_Speed:
- .string "SPEED$"
-BattleStatText_SpAtk:
- .string "SP. ATK$"
-BattleStatText_SpDef:
- .string "SP. DEF$"
-BattleStatText_Accuracy:
- .string "accuracy$"
-BattleStatText_Evasion:
- .string "evasiveness$"
-ContestStatText_TooSpicy:
- .string "was too spicy!$"
-ContestStatText_TooDry:
- .string "was too dry!$"
-ContestStatText_TooSweet:
- .string "was too sweet!$"
-ContestStatText_TooBitter:
- .string "was too bitter!$"
-ContestStatText_TooSour:
- .string "was too sour!$"
-BattleText_Used1:
- .string "{STRING 32} used\n{STRING 19}!$"
-BattleText_TutorialUsed:
- .string "WALLY used\n{STRING 19}!$"
-BattleText_Used2:
- .string "{STRING 25} {STRING 26}\nused {STRING 19}!$"
-BattleText_BlockBall:
- .string "The TRAINER blocked the BALL!$"
-BattleText_DontBeAThief:
- .string "Don’t be a thief!$"
-BattleText_DodgeBall:
- .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$"
-BattleText_MissPoke:
- .string "You missed the POKéMON!$"
-BattleText_BallBrokeOhNo:
- .string "Oh, no!\nThe POKéMON broke free!$"
-BattleText_BallBrokeAppeared:
- .string "Aww!\nIt appeared to be caught!$"
-BattleText_BallBrokeAlmost:
- .string "Aargh!\nAlmost had it!$"
-BattleText_BallBrokeSoClose:
- .string "Shoot!\nIt was so close, too!$"
-BattleText_BallCaught1:
- .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$"
-BattleText_BallCaught2:
- .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$"
-BattleText_GiveNickname:
- .string "Give a nickname to the\ncaptured {STRING 3}?$"
-BattleText_SentToPC:
- .string "{STRING 3} was sent to\n{STRING 35} PC.$"
-
-gUnknown_084009ED:: @ 84009ED
-BattleText_Someone:
- .string "someone’s$"
-
-gUnknown_084009F7:: @ 84009F7
-BattleText_Lanette:
- .string "LANETTE’s$"
-BattleText_AddedToDex:
- .string "{STRING 3}’s data was\nadded to the POKéDEX.\p$"
-BattleText_Raining:
- .string "It is raining.$"
-BattleText_Sandstorm:
- .string "A sandstorm is raging.$"
-BattleText_BoxFull:
- .string "The BOX is full!\nYou can’t catch any more!\p$"
-
-gUnknown_08400A78:: @ 8400A78
-BattleText_EnigmaBerry:
- .string "ENIGMA BERRY$"
-
-gUnknown_08400A85:: @ 8400A85
-BattleText_Berry:
- .string " BERRY$"
-BattleText_CuredParalysis:
- .string "{STRING 16}’s {STRING 19}\ncured paralysis!$"
-BattleText_CuredPoison:
- .string "{STRING 16}’s {STRING 19}\ncured poison!$"
-BattleText_CuredBurn:
- .string "{STRING 16}’s {STRING 19}\nhealed its burn!$"
-BattleText_CuredFreeze:
- .string "{STRING 16}’s {STRING 19}\ndefrosted it!$"
-BattleText_CuredSleep:
- .string "{STRING 16}’s {STRING 19}\nwoke it from its sleep!$"
-BattleText_CuredConfusion:
- .string "{STRING 16}’s {STRING 19}\nsnapped it out of confusion!$"
-BattleText_CuredStatus:
- .string "{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!$"
-BattleText_NormalizedStatus:
- .string "{STRING 16}’s {STRING 19}\nnormalized its status!$"
-BattleText_RestoredHealth:
- .string "{STRING 16}’s {STRING 19}\nrestored health!$"
-BattleText_RestoredPP:
- .string "{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!$"
-BattleText_RestoredStatus:
- .string "{STRING 16}’s {STRING 19}\nrestored its status!$"
-BattleText_RestoredHPLittle:
- .string "{STRING 16}’s {STRING 19}\nrestored its HP a little!$"
-BattleText_ChoiceBand:
- .string "{STRING 19} allows the\nuse of only {STRING 17}!\p$"
-BattleText_FocusSash:
- .string "{DEFENDING_MON} hung on\nusing its {STRING 19}!$"
-BattleText_Terminator2:
- .string "$"
-BattleText_WallyBall:
- .string "You throw a BALL now, right?\nI... I’ll do my best!$"
-
-gUnknown_08400C4A:: @ 8400C4A
-BattleText_StartEvo:
- .string "What?\n{STRING 2} is evolving!$"
-
-gUnknown_08400C60:: @ 8400C60
-BattleText_FinishEvo:
- .string "Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p$"
-
-gUnknown_08400C8D:: @ 8400C8D
-BattleText_StopEvo:
- .string "Huh? {STRING 2}\nstopped evolving!\p$"
-
-gUnknown_08400CA8:: @ 8400CA8
-BattleText_OtherMenu:
- .string "What should\n{STRING 15} do?$"
-
-gUnknown_08400CBB:: @ 8400CBB
-BattleText_PlayerMenu:
- .string "What will\n{STRING 32} do?$"
-
-gUnknown_08400CCC:: @ 8400CCC
-BattleText_WallyMenu:
- .string "What will\nWALLY do?$"
-
-gUnknown_08400CE0:: @ 8400CE0
-BattleText_LinkStandby:
- .string "{PAUSE 16}Link standby...$"
-
-gUnknown_08400CF3:: @ 8400CF3
-BattleText_MenuOptions:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN$"
-
-gUnknown_08400D15:: @ 8400D15
-BattleText_MenuOptionsSafari:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN$"
-
-gUnknown_08400D38:: @ 8400D38
-BattleText_PP:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/$"
-
-gUnknown_08400D49:: @ 8400D49
-BattleText_Format: @ cant think of a better name
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-
-gUnknown_08400D52:: @ 8400D52
-BattleText_ForgetMove:
- .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?$"
-
-gUnknown_08400D7A:: @ 8400D7A
-BattleText_YesNo:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo$"
-
-gUnknown_08400D89:: @ 8400D89
-BattleText_SwitchWhich:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?$"
-
-gUnknown_08400D9F:: @ 8400D9F
-BattleText_Format2:
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$"
-BattleText_RightArrow:
- .string "{RIGHT_ARROW}$"
-
-gUnknown_08400DAA:: @ 8400DAA
-BattleText_Plus:
- .string "+$"
-
-gUnknown_08400DAC:: @ 8400DAC
-@ someone improve the formatting of this please
-BattleText_Dash:
- .string "-$"
-BattleText_HP:
- .string "HP $"
-BattleText_Attack:
- .string "ATTACK $"
-BattleText_Defense:
- .string "DEFENSE$"
-BattleText_SpAtk:
- .string "SP. ATK$"
-BattleText_SpDef:
- .string "SP. DEF$"
-
-gUnknown_08400DD6:: @ 8400DD6
-BattleText_SafariBalls::
- .string "{HIGHLIGHT RED}SAFARI BALLS$"
-
-gUnknown_08400DE6:: @ 8400DE6
-BattleText_SafariBallsLeft::
- .string "{HIGHLIGHT RED}Left: $"
-
-gUnknown_08400DF0:: @ 8400DF0
-BattleText_HighlightRed::
- .string "{HIGHLIGHT RED}$"
-
-BattleText_Sleep::
- .string "sleep$"
-BattleText_PoisonStatus::
- .string "poison$"
-BattleText_Burn::
- .string "burn$"
-BattleText_Paralysis::
- .string "paralysis$"
-BattleText_IceStatus::
- .string "ice$"
-BattleText_Confusion::
- .string "confusion$"
-BattleText_Love::
- .string "love$"
-
-gUnknown_08400E23:: @ 8400E23
-BattleText_Format3:
- .string " and $"
-
-gUnknown_08400E29:: @ 8400E29
-BattleText_Format4:
- .string ", $"
-
-gUnknown_08400E2C:: @ 8400E2C
-BattleText_Format5:
- .string " $"
-
-gUnknown_08400E2E:: @ 8400E2E
-BattleText_Format6:
- .string "\l$"
-
-gUnknown_08400E30:: @ 8400E30
-BattleText_Format7:
- .string "\n$"
-
-gUnknown_08400E32:: @ 8400E32
-BattleText_Format8:
- .string "are$"
-
-gUnknown_08400E36:: @ 8400E36
-BattleText_Format9:
- .string "are$"
-
-gBadEggNickname:: @ 8400E3A
- .string "Bad EGG$"
-
-gUnknown_08400E42:: @ 8400E42
-BattleText_Wally::
- .string "WALLY$"
-
-BattleText_Win:: @ 8400E48
- .string "{HIGHLIGHT TRANSPARENT}Win$"
-
-BattleText_Loss:: @ 8400E4F
- .string "{HIGHLIGHT TRANSPARENT}Loss$"
-
-BattleText_Tie:: @ 8400E57
- .string "{HIGHLIGHT TRANSPARENT}Tie$"
-
-gUnknown_08400E5E:: @ 8400E5E
-BattleText_Format10:
- .string " is$"
-
-gUnknown_08400E62:: @ 8400E62
-BattleText_Format11:
- .string "’s$"
-BattleText_Normal:
- .string "a NORMAL move$"
-BattleText_Fighting:
- .string "a FIGHTING move$"
-BattleText_Flying:
- .string "a FLYING move$"
-BattleText_Poison:
- .string "a POISON move$"
-BattleText_Ground:
- .string "a GROUND move$"
-BattleText_Rock:
- .string "a ROCK move$"
-BattleText_Bug:
- .string "a BUG move$"
-BattleText_Ghost:
- .string "a GHOST move$"
-BattleText_Steel:
- .string "a STEEL move$"
-BattleText_Typeless:
- .string "a ??? move$"
-BattleText_Fire:
- .string "a FIRE move$"
-BattleText_Water:
- .string "a WATER move$"
-BattleText_Grass:
- .string "a GRASS move$"
-BattleText_Electric:
- .string "an ELECTRIC move$"
-BattleText_Psychic:
- .string "a PSYCHIC move$"
-BattleText_Ice:
- .string "an ICE move$"
-BattleText_Dragon:
- .string "a DRAGON move$"
-BattleText_Dark:
- .string "a DARK move$"
-
- .align 2
-gUnknown_08400F58:: @ 8400F58
- .4byte BattleStatText_HP
- .4byte BattleStatText_Attack
- .4byte BattleStatText_Defense
- .4byte BattleStatText_Speed
- .4byte BattleStatText_SpAtk
- .4byte BattleStatText_SpDef
- .4byte BattleStatText_Accuracy
- .4byte BattleStatText_Evasion
-
- .align 2
-gUnknown_08400F78:: @ 8400F78
- .4byte ContestStatText_TooSpicy
- .4byte ContestStatText_TooDry
- .4byte ContestStatText_TooSweet
- .4byte ContestStatText_TooBitter
- .4byte ContestStatText_TooSour
-
- .align 2
-gBattleStringsTable:: @ 8400F8C
- .4byte BattleText_UnknownString
- .4byte BattleText_GainExpPoints
- .4byte BattleText_GrewLevel
- .4byte BattleText_LearnedMove
- .4byte BattleText_TryingToLearnMove
- .4byte BattleText_CantLearnMore
- .4byte BattleText_DeleteMove
- .4byte BattleText_DeletedMove
- .4byte BattleText_StopLearning
- .4byte BattleText_DidNotLearn
- .4byte BattleText_LearnedMove2
- .4byte BattleText_AttackMissed
- .4byte BattleText_ProtectedItself
- .4byte BattleText_StatNoHigher
- .4byte BattleText_AvoidedDamage
- .4byte BattleText_DoesntAffect
- .4byte BattleText_AttackingFainted
- .4byte BattleText_DefendingFainted
- .4byte BattleText_WinningPrize
- .4byte BattleText_OutOfUsablePoke
- .4byte BattleText_WhitedOut
- .4byte BattleText_PreventEscape
- .4byte BattleText_HitMulti
- .4byte BattleText_FellAsleep
- .4byte BattleText_MadeAsleep
- .4byte BattleText_DefendingAsleep
- .4byte BattleText_AttackingAsleep
- .4byte BattleText_WasntAffected
- .4byte BattleText_Poisoned
- .4byte BattleText_Poisoned2
- .4byte BattleText_PoisonHurt
- .4byte BattleText_AlreadyPoisoned
- .4byte BattleText_BadlyPoisoned
- .4byte BattleText_EnergyDrained
- .4byte BattleText_Burned
- .4byte BattleText_Burned2
- .4byte BattleText_BurnHurt
- .4byte BattleText_Frozen
- .4byte BattleText_Frozen2
- .4byte BattleText_FrozenSolid
- .4byte BattleText_DefendingDefrosted
- .4byte BattleText_AttackingDefrosted
- .4byte BattleText_Defrosted
- .4byte BattleText_Paralyzed
- .4byte BattleText_Paralyzed2
- .4byte BattleText_Paralyzed3
- .4byte BattleText_AlreadyParalyzed
- .4byte BattleText_ParalysisHealed
- .4byte BattleText_DreamEaten
- .4byte BattleText_AttackingStatNoHigher
- .4byte BattleText_DefendingStatNoHigher
- .4byte BattleText_StoppedWorking
- .4byte BattleText_StoppedWorking2
- .4byte BattleText_Confused
- .4byte BattleText_ConfusionSnapOut
- .4byte BattleText_BecameConfused
- .4byte BattleText_AlreadyConfused
- .4byte BattleText_FellLove
- .4byte BattleText_InLoveWith
- .4byte BattleText_ImmobilizedBy
- .4byte BattleText_BlownAway
- .4byte BattleText_TypeTransform
- .4byte BattleText_Flinched
- .4byte BattleText_RegainedHealth
- .4byte BattleText_HPFull
- .4byte BattleText_RaisedSpDef
- .4byte BattleText_RaisedDefense
- .4byte BattleText_CoveredVeil
- .4byte BattleText_SafeguardActive
- .4byte BattleText_SafeguardFaded
- .4byte BattleText_WentToSleep
- .4byte BattleText_SpeltHealthy
- .4byte BattleText_WhipWhirlwind
- .4byte BattleText_TookSunlight
- .4byte BattleText_LoweredHead
- .4byte BattleText_IsGlowing
- .4byte BattleText_FlewHigh
- .4byte BattleText_DugHole
- .4byte BattleText_SqueezedBind
- .4byte BattleText_TrappedVortex
- .4byte BattleText_Wrapped
- .4byte BattleText_Clamped
- .4byte BattleText_HurtBy
- .4byte BattleText_FreedFrom
- .4byte BattleText_KeptGoingCrash
- .4byte BattleText_MistShroud
- .4byte BattleText_MistProtect
- .4byte BattleText_GetPumped
- .4byte BattleText_HitRecoil
- .4byte BattleText_ProtectedItself2
- .4byte BattleText_SandBuffeted
- .4byte BattleText_HailStricken
- .4byte BattleText_WasSeeded
- .4byte BattleText_EvadedAttack
- .4byte BattleText_HealthSapped
- .4byte BattleText_FastAsleep
- .4byte BattleText_WokeUp
- .4byte BattleText_UproarAwake
- .4byte BattleText_UproarWoke
- .4byte BattleText_UproarCaused
- .4byte BattleText_UproarMaking
- .4byte BattleText_CalmedDown
- .4byte BattleText_UproarCantSleep
- .4byte BattleText_Stockpiled
- .4byte BattleText_StockpiledCant
- .4byte BattleText_UproarCantSleep2
- .4byte BattleText_UproarKeptAwake
- .4byte BattleText_StayedAwake
- .4byte BattleText_StoringEnergy
- .4byte BattleText_UnleashedEnergy
- .4byte BattleText_FatigueConfuse
- .4byte BattleText_PickedUpYen
- .4byte BattleText_Unaffected
- .4byte BattleText_Transformed
- .4byte BattleText_SubMade
- .4byte BattleText_SubAlready
- .4byte BattleText_SubTookDamage
- .4byte BattleText_SubFaded
- .4byte BattleText_MustRecharge
- .4byte BattleText_RageBuilding
- .4byte BattleText_MoveWasDisabled
- .4byte BattleText_MoveIsDisabled
- .4byte BattleText_DisabledNoMore
- .4byte BattleText_EncoreGot
- .4byte BattleText_EncoreEnded
- .4byte BattleText_TookAim
- .4byte BattleText_SketchedMove
- .4byte BattleText_DestinyBondTake
- .4byte BattleText_DestinyBondTaken
- .4byte BattleText_ReducedBy
- .4byte BattleText_StoleSomething
- .4byte BattleText_CantEscapeNow
- .4byte BattleText_NightmareStart
- .4byte BattleText_NightmareLock
- .4byte BattleText_CurseLay
- .4byte BattleText_CurseAfflict
- .4byte BattleText_SpikesScattered
- .4byte BattleText_SpikesHurt
- .4byte BattleText_IdentifiedPoke
- .4byte BattleText_PerishSongFell
- .4byte BattleText_BracedItself
- .4byte BattleText_EnduredHit
- .4byte BattleText_MagnitudeCount
- .4byte BattleText_CutHPMaxATK
- .4byte BattleText_CopyStatChanges
- .4byte BattleText_GotFreeFrom
- .4byte BattleText_LeechShed
- .4byte BattleText_SpikesBlownAway
- .4byte BattleText_FledBattle
- .4byte BattleText_ForesawAttack
- .4byte BattleText_TookAttack
- .4byte BattleText_PokeAttack
- .4byte BattleText_CenterAttention
- .4byte BattleText_ChargingPower
- .4byte BattleText_NaturePower
- .4byte BattleText_StatusNormal
- .4byte BattleText_NoMovesLeft
- .4byte BattleText_TormentSubject
- .4byte BattleText_TormentNoUse
- .4byte BattleText_TightenFocus
- .4byte BattleText_TauntFell
- .4byte BattleText_TauntNoUse
- .4byte BattleText_ReadyToHelp
- .4byte BattleText_SwitchedItems
- .4byte BattleText_CopiedObject
- .4byte BattleText_WishMade
- .4byte BattleText_WishTrue
- .4byte BattleText_PlantedRoots
- .4byte BattleText_AbsorbNutrients
- .4byte BattleText_AnchoredItself
- .4byte BattleText_DrowsyMade
- .4byte BattleText_KnockedOffItem
- .4byte BattleText_AbilitySwap
- .4byte BattleText_SealedMove
- .4byte BattleText_SealedNoUse
- .4byte BattleText_GrudgeBear
- .4byte BattleText_GrudgeLosePP
- .4byte BattleText_ShroudedItself
- .4byte BattleText_MagicCoatBounce
- .4byte BattleText_AwaitMove
- .4byte BattleText_SnatchedMove
- .4byte BattleText_RainMade
- .4byte BattleText_SpeedRisen
- .4byte BattleText_ProtectedBy
- .4byte BattleText_PreventedBy
- .4byte BattleText_HPRestoredUsing
- .4byte BattleText_MadeType
- .4byte BattleText_PreventedPara
- .4byte BattleText_PreventedRomance
- .4byte BattleText_PreventedPoison
- .4byte BattleText_PreventedConfusion
- .4byte BattleText_RaisedFirePower
- .4byte BattleText_AnchorsItself
- .4byte BattleText_CutsAttack
- .4byte BattleText_PreventedStatLoss
- .4byte BattleText_HurtOther
- .4byte BattleText_Traced
- .4byte BattleText_Sharply
- .4byte BattleText_Rose
- .4byte BattleText_Harshly
- .4byte BattleText_Fell
- .4byte BattleText_UnknownString7
- .4byte BattleText_UnknownString3
- .4byte BattleText_UnknownString5
- .4byte BattleText_UnknownString6
- .4byte BattleText_Critical
- .4byte BattleText_GrandSlam
- .4byte BattleText_MoveForget123
- .4byte BattleText_MoveForgetAnd
- .4byte BattleText_NotEffective
- .4byte BattleText_SuperEffective
- .4byte BattleText_GotAwaySafely
- .4byte BattleText_FledWild
- .4byte BattleText_NoRunning
- .4byte BattleText_CantEscape2
- .4byte BattleText_BirchDontLeaveMe
- .4byte BattleText_Nothing
- .4byte BattleText_Failed
- .4byte BattleText_HurtItself
- .4byte BattleText_MirrorFail
- .4byte BattleText_RainStart
- .4byte BattleText_PourStart
- .4byte BattleText_RainCont1
- .4byte BattleText_PourCont
- .4byte BattleText_RainStop
- .4byte BattleText_SandBrewed
- .4byte BattleText_SandRages
- .4byte BattleText_SandSubsided
- .4byte BattleText_SunBright
- .4byte BattleText_SunStrong
- .4byte BattleText_SunFaded
- .4byte BattleText_HailStart
- .4byte BattleText_HailCont
- .4byte BattleText_HailStop
- .4byte BattleText_SpitUpFail
- .4byte BattleText_SwallowFail
- .4byte BattleText_WindHeatWave
- .4byte BattleText_StatElim
- .4byte BattleText_CoinScatter
- .4byte BattleText_SubWeak
- .4byte BattleText_PainSplit
- .4byte BattleText_BellChime
- .4byte BattleText_PerishSong
- .4byte BattleText_NoPP1
- .4byte BattleText_NoPP2
- .4byte BattleText_Used1
- .4byte BattleText_TutorialUsed
- .4byte BattleText_BlockBall
- .4byte BattleText_DontBeAThief
- .4byte BattleText_DodgeBall
- .4byte BattleText_MissPoke
- .4byte BattleText_BallBrokeOhNo
- .4byte BattleText_BallBrokeAppeared
- .4byte BattleText_BallBrokeAlmost
- .4byte BattleText_BallBrokeSoClose
- .4byte BattleText_BallCaught1
- .4byte BattleText_BallCaught2
- .4byte BattleText_GiveNickname
- .4byte BattleText_SentToPC
- .4byte BattleText_AddedToDex
- .4byte BattleText_Raining
- .4byte BattleText_Sandstorm
- .4byte BattleText_CantEscape
- .4byte BattleText_IgnoredOrdersSLP
- .4byte BattleText_IgnoredOrders
- .4byte BattleText_BeganNap
- .4byte BattleText_LoafingAround
- .4byte BattleText_WontObey
- .4byte BattleText_TurnedAway
- .4byte BattleText_NotNotice
- .4byte BattleText_WillSwitch
- .4byte BattleText_CreptCloser
- .4byte BattleText_CantGetCloser
- .4byte BattleText_WatchingCarefully
- .4byte BattleText_CuriousAbout
- .4byte BattleText_EnthralledBy
- .4byte BattleText_IgnoredThing
- .4byte BattleText_ThrewBlock
- .4byte BattleText_SafariOver
- .4byte BattleText_CuredParalysis
- .4byte BattleText_CuredPoison
- .4byte BattleText_CuredBurn
- .4byte BattleText_CuredFreeze
- .4byte BattleText_CuredSleep
- .4byte BattleText_CuredConfusion
- .4byte BattleText_CuredStatus
- .4byte BattleText_RestoredHealth
- .4byte BattleText_RestoredPP
- .4byte BattleText_RestoredStatus
- .4byte BattleText_RestoredHPLittle
- .4byte BattleText_ChoiceBand
- .4byte BattleText_FocusSash
- .4byte BattleText_Terminator2 @ terminator?
- .4byte BattleText_PreventedBurn
- .4byte BattleText_BlocksOther
- .4byte BattleText_RestoredHPByItem
- .4byte BattleText_WhipSandstorm
- .4byte BattleText_PreventedLoss
- .4byte BattleText_InfatuatedPoke
- .4byte BattleText_MadeIneffective
- .4byte BattleText_CuredProblem
- .4byte BattleText_OozeSuckup
- .4byte BattleText_Transformed2
- .4byte BattleText_ElecWeakened
- .4byte BattleText_FireWeakened
- .4byte BattleText_HidUnderwater
- .4byte BattleText_SprangUp
- .4byte BattleText_CantForgetHM
- .4byte BattleText_FoundOne
- .4byte BattleText_PlayerDefeatedTrainer2
- .4byte BattleText_SoothingAroma
- .4byte BattleText_CantUseItems
- .4byte BattleText_UnknownString2
- .4byte BattleText_UnknownString4
- .4byte BattleText_HustleUse
- .4byte BattleText_MadeUseless
- .4byte BattleText_SandTombTrapped @ sand tomb
- .4byte BattleText_Terminator
- .4byte BattleText_BoostedExp
- .4byte BattleText_SunIntensified
- .4byte BattleText_GroundMoveNegate
- .4byte BattleText_WallyBall
- .4byte BattleText_TookAttack2
- .4byte BattleText_ChoseDestiny
- .4byte BattleText_LostFocus
- .4byte BattleText_UseNext
- .4byte BattleText_FledUsingItem
- .4byte BattleText_FledUsingOther
- .4byte BattleText_DraggedOut
- .4byte BattleText_PreventedOther
- .4byte BattleText_NormalizedStatus
- .4byte BattleText_Used2
- .4byte BattleText_BoxFull
- .4byte BattleText_AvoidedAttack
- .4byte BattleText_MadeIneffective2
- .4byte BattleText_PreventedFlinching
- .4byte BattleText_AlreadyBurned
- .4byte BattleText_StatNoLower
- .4byte BattleText_BlocksOther2
- .4byte BattleText_WoreOff
- .4byte BattleText_RaisedDefenseLittle
- .4byte BattleText_RaisedSpDefLittle
- .4byte BattleText_BrokeWall
- .4byte BattleText_PreventedOther2
- .4byte BattleText_CuredOfProblem
- .4byte BattleText_AttackingCantEscape
- .4byte BattleText_Obtained1
- .4byte BattleText_Obtained2
- .4byte BattleText_Obtained3
- .4byte BattleText_NoEffect
- .4byte BattleText_NoEffectOn
-
- .align 1
-gMissStrings:: @ 8401508
-@ Each entry refers to a text pointer in gBattleStringsTable, but the values are offset
-@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the
-@ 11th entry in the pointer table.
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_ProtectedItself
- .2byte BATTLE_TEXT_AvoidedAttack
- .2byte BATTLE_TEXT_AvoidedDamage
- .2byte BATTLE_TEXT_GroundMoveNegate
-
-BattleTextList_401512:: @ 8401512
- .2byte BATTLE_TEXT_CantEscape2
- .2byte BATTLE_TEXT_BirchDontLeaveMe
- .2byte BATTLE_TEXT_PreventEscape
- .2byte BATTLE_TEXT_CantEscape
- .2byte BATTLE_TEXT_AttackingCantEscape
-
-BattleTextList_40151C:: @ 840151C
- .2byte BATTLE_TEXT_RainStart
- .2byte BATTLE_TEXT_PourStart
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_SandBrewed
- .2byte BATTLE_TEXT_SunBright
- .2byte BATTLE_TEXT_HailStart
-
-BattleTextList_401528:: @ 8401528
- .2byte BATTLE_TEXT_SandRages
- .2byte BATTLE_TEXT_HailCont
-
-BattleTextList_40152C:: @ 840152C
- .2byte BATTLE_TEXT_SandBuffeted
- .2byte BATTLE_TEXT_HailStricken
-
-BattleTextList_401530:: @ 8401530
- .2byte BATTLE_TEXT_SandSubsided
- .2byte BATTLE_TEXT_HailStop
-
-BattleTextList_401534:: @ 8401534
- .2byte BATTLE_TEXT_RainCont1
- .2byte BATTLE_TEXT_PourCont
- .2byte BATTLE_TEXT_RainStop
-
-BattleTextList_40153A:: @ 840153A
- .2byte BATTLE_TEXT_ProtectedItself2
- .2byte BATTLE_TEXT_BracedItself
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_401540:: @ 8401540
- .2byte BATTLE_TEXT_Failed
- .2byte BATTLE_TEXT_RaisedDefense
- .2byte BATTLE_TEXT_RaisedDefenseLittle
- .2byte BATTLE_TEXT_RaisedSpDef
- .2byte BATTLE_TEXT_RaisedSpDefLittle
- .2byte BATTLE_TEXT_CoveredVeil
-
-BattleTextList_40154C:: @ 840154C
- .2byte BATTLE_TEXT_WasSeeded
- .2byte BATTLE_TEXT_EvadedAttack
- .2byte BATTLE_TEXT_DoesntAffect
- .2byte BATTLE_TEXT_HealthSapped
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_401556:: @ 8401556
- .2byte BATTLE_TEXT_WentToSleep
- .2byte BATTLE_TEXT_SpeltHealthy
-
-BattleTextList_40155A:: @ 840155A
- .2byte BATTLE_TEXT_UproarMaking
- .2byte BATTLE_TEXT_CalmedDown
-
-BattleTextList_40155E:: @ 840155E
- .2byte BATTLE_TEXT_Stockpiled
- .2byte BATTLE_TEXT_StockpiledCant
-
-BattleTextList_401562:: @ 8401562
- .2byte BATTLE_TEXT_WokeUp
- .2byte BATTLE_TEXT_UproarWoke
-
-BattleTextList_401566:: @ 8401566
- .2byte BATTLE_TEXT_SwallowFail
- .2byte BATTLE_TEXT_HPFull
-
-BattleTextList_40156A:: @ 840156A
- .2byte BATTLE_TEXT_UproarCantSleep2
- .2byte BATTLE_TEXT_UproarKeptAwake
- .2byte BATTLE_TEXT_StayedAwake
-
-BattleTextList_401570:: @ 8401570
- .2byte BATTLE_TEXT_UnknownString7
- .2byte BATTLE_TEXT_UnknownString3
- .2byte BATTLE_TEXT_AttackingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
- .2byte BATTLE_TEXT_UnknownString4
- .2byte BATTLE_TEXT_HustleUse
-
-BattleTextList_40157C:: @ 840157C
- .2byte BATTLE_TEXT_UnknownString5
- .2byte BATTLE_TEXT_UnknownString6
- .2byte BATTLE_TEXT_DefendingStatNoHigher
- .2byte BATTLE_TEXT_Terminator2
-
-BattleTextList_401584:: @ 8401584
- .2byte BATTLE_TEXT_WhipWhirlwind
- .2byte BATTLE_TEXT_TookSunlight
- .2byte BATTLE_TEXT_LoweredHead
- .2byte BATTLE_TEXT_IsGlowing
- .2byte BATTLE_TEXT_FlewHigh
- .2byte BATTLE_TEXT_DugHole
- .2byte BATTLE_TEXT_HidUnderwater
- .2byte BATTLE_TEXT_SprangUp
-
-BattleTextList_401594:: @ 8401594
- .2byte BATTLE_TEXT_SqueezedBind
- .2byte BATTLE_TEXT_Wrapped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_Clamped
- .2byte BATTLE_TEXT_TrappedVortex
- .2byte BATTLE_TEXT_SandTombTrapped
-
-BattleTextList_4015A0:: @ 84015A0
- .2byte BATTLE_TEXT_MistShroud
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A4:: @ 84015A4
- .2byte BATTLE_TEXT_GetPumped
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015A8:: @ 84015A8
- .2byte BATTLE_TEXT_Transformed
- .2byte BATTLE_TEXT_Failed
-
-BattleTextList_4015AC:: @ 84015AC
- .2byte BATTLE_TEXT_SubMade
- .2byte BATTLE_TEXT_SubWeak
-
-BattleTextList_4015B0:: @ 84015B0
- .2byte BATTLE_TEXT_Poisoned
- .2byte BATTLE_TEXT_Poisoned2
-
-BattleTextList_4015B4:: @ 84015B4
- .2byte BATTLE_TEXT_Paralyzed
- .2byte BATTLE_TEXT_Paralyzed2
-
-BattleTextList_4015B8:: @ 84015B8
- .2byte BATTLE_TEXT_FellAsleep
- .2byte BATTLE_TEXT_MadeAsleep
-
-BattleTextList_4015BC:: @ 84015BC
- .2byte BATTLE_TEXT_Burned
- .2byte BATTLE_TEXT_Burned2
-
-BattleTextList_4015C0:: @ 84015C0
- .2byte BATTLE_TEXT_Frozen
- .2byte BATTLE_TEXT_Frozen2
-
-BattleTextList_4015C4:: @ 84015C4
- .2byte BATTLE_TEXT_AttackingDefrosted
- .2byte BATTLE_TEXT_Defrosted
-
-BattleTextList_4015C8:: @ 84015C8
- .2byte BATTLE_TEXT_AttackMissed
- .2byte BATTLE_TEXT_Unaffected
- .2byte BATTLE_TEXT_FellLove
- .2byte BATTLE_TEXT_InfatuatedPoke
-
-BattleTextList_4015D0:: @ 84015D0
- .2byte BATTLE_TEXT_EnergyDrained
- .2byte BATTLE_TEXT_OozeSuckup
-
-BattleTextList_4015D4:: @ 84015D4
- .2byte BATTLE_TEXT_ElecWeakened
- .2byte BATTLE_TEXT_FireWeakened
-
-BattleTextList_4015D8:: @ 84015D8
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_BellChime
- .2byte BATTLE_TEXT_SoothingAroma
-
-BattleTextList_4015E2:: @ 84015E2
- .2byte BATTLE_TEXT_ForesawAttack
- .2byte BATTLE_TEXT_ChoseDestiny
-
-BattleTextList_4015E6:: @ 84015E6
- .2byte BATTLE_TEXT_BallBrokeOhNo
- .2byte BATTLE_TEXT_BallBrokeAppeared
- .2byte BATTLE_TEXT_BallBrokeAlmost
- .2byte BATTLE_TEXT_BallBrokeSoClose
-
-BattleTextList_4015EE:: @ 84015EE
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Sandstorm
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_SunStrong
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
- .2byte BATTLE_TEXT_Raining
-
-BattleTextList_40160E:: @ 840160E
- .2byte BATTLE_TEXT_LoafingAround
- .2byte BATTLE_TEXT_WontObey
- .2byte BATTLE_TEXT_TurnedAway
- .2byte BATTLE_TEXT_NotNotice
-
-BattleTextList_401616:: @ 8401616
- .2byte BATTLE_TEXT_CreptCloser
- .2byte BATTLE_TEXT_CantGetCloser
-
-BattleTextList_40161A:: @ 840161A
- .2byte BATTLE_TEXT_CuriousAbout
- .2byte BATTLE_TEXT_EnthralledBy
- .2byte BATTLE_TEXT_IgnoredThing
-
-BattleTextList_401620:: @ 8401620
- .2byte BATTLE_TEXT_CuredConfusion
- .2byte BATTLE_TEXT_CuredParalysis
- .2byte BATTLE_TEXT_CuredFreeze
- .2byte BATTLE_TEXT_CuredBurn
- .2byte BATTLE_TEXT_CuredPoison
- .2byte BATTLE_TEXT_CuredSleep
-
-BattleTextList_40162C:: @ 840162C
- .2byte BATTLE_TEXT_CuredStatus
- .2byte BATTLE_TEXT_NormalizedStatus
-
-BattleTextList_401630:: @ 8401630
- .2byte BATTLE_TEXT_PreventedBurn
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401636:: @ 8401636
- .2byte BATTLE_TEXT_PreventedPara
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_40163C:: @ 840163C
- .2byte BATTLE_TEXT_PreventedPoison
- .2byte BATTLE_TEXT_PreventedOther2
- .2byte BATTLE_TEXT_NoEffectOn
-
-BattleTextList_401642:: @ 8401642
- .2byte BATTLE_TEXT_Obtained1
- .2byte BATTLE_TEXT_Obtained2
- .2byte BATTLE_TEXT_Obtained3
-
-BattleTextList_401648:: @ 8401648
- .2byte BATTLE_TEXT_RaisedFirePower
- .2byte BATTLE_TEXT_MadeIneffective
-
-gTrappingMoves:: @ 840164C
- .2byte MOVE_BIND
- .2byte MOVE_WRAP
- .2byte MOVE_FIRE_SPIN
- .2byte MOVE_CLAMP
- .2byte MOVE_WHIRLPOOL
- .2byte MOVE_SAND_TOMB
- .2byte 0xFFFF
-
- .align 2
-gUnknown_0840165C:: @ 840165C
- .4byte BattleText_HP
- .4byte BattleText_SpAtk
- .4byte BattleText_Attack
- .4byte BattleText_SpDef
- .4byte BattleText_Defense
- .4byte BattleStatText_Speed
-
- .align 2
-gUnknown_08401674:: @ 8401674
- .4byte BattleText_Normal
- .4byte BattleText_Fighting
- .4byte BattleText_Flying
- .4byte BattleText_Poison
- .4byte BattleText_Ground
- .4byte BattleText_Rock
- .4byte BattleText_Bug
- .4byte BattleText_Ghost
- .4byte BattleText_Steel
- .4byte BattleText_Typeless
- .4byte BattleText_Fire
- .4byte BattleText_Water
- .4byte BattleText_Grass
- .4byte BattleText_Electric
- .4byte BattleText_Psychic
- .4byte BattleText_Ice
- .4byte BattleText_Dragon
- .4byte BattleText_Dark
diff --git a/data/text_window.s b/data/text_window.s
deleted file mode 100644
index d8a3dbb38..000000000
--- a/data/text_window.s
+++ /dev/null
@@ -1,31 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083761F0:: @ 83761F0
- .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal
- .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal
- .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal
- .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal
- .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal
- .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal
- .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal
- .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal
- .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal
- .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal
- .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal
- .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal
- .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal
- .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal
- .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal
- .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal
- .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal
- .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal
- .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal
- .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal
-
- .align 1
-gMessageBoxTilemap:: @ 8376290
- .incbin "graphics/text_window/message_box_map.bin"
diff --git a/data/tileset_anim.s b/data/tileset_anim.s
deleted file mode 100644
index e34d50953..000000000
--- a/data/tileset_anim.s
+++ /dev/null
@@ -1,637 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-TilesetAnimTiles_General_0_1: @ 8376D84
- .incbin "data/tilesets/primary/general/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_0: @ 8376E04
- .incbin "data/tilesets/primary/general/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_2: @ 8376E84
- .incbin "data/tilesets/primary/general/anim/0/2.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_General_0:: @ 8376F24
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_1
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_2
-
- .align 2
-TilesetAnimTiles_General_1_0: @ 8376F34
- .incbin "data/tilesets/primary/general/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_1: @ 83772F4
- .incbin "data/tilesets/primary/general/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_2: @ 83776B4
- .incbin "data/tilesets/primary/general/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_3: @ 8377A74
- .incbin "data/tilesets/primary/general/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_4: @ 8377E34
- .incbin "data/tilesets/primary/general/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_5: @ 83781F4
- .incbin "data/tilesets/primary/general/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_6: @ 83785B4
- .incbin "data/tilesets/primary/general/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_7: @ 8378974
- .incbin "data/tilesets/primary/general/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_General_1:: @ 8378D34
- .4byte TilesetAnimTiles_General_1_0
- .4byte TilesetAnimTiles_General_1_1
- .4byte TilesetAnimTiles_General_1_2
- .4byte TilesetAnimTiles_General_1_3
- .4byte TilesetAnimTiles_General_1_4
- .4byte TilesetAnimTiles_General_1_5
- .4byte TilesetAnimTiles_General_1_6
- .4byte TilesetAnimTiles_General_1_7
-
- .align 2
-TilesetAnimTiles_General_2_0: @ 8378D54
- .incbin "data/tilesets/primary/general/anim/2/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_1: @ 8378E94
- .incbin "data/tilesets/primary/general/anim/2/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_2: @ 8378FD4
- .incbin "data/tilesets/primary/general/anim/2/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_3: @ 8379114
- .incbin "data/tilesets/primary/general/anim/2/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_4: @ 8379254
- .incbin "data/tilesets/primary/general/anim/2/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_5: @ 8379394
- .incbin "data/tilesets/primary/general/anim/2/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_6: @ 83794D4
- .incbin "data/tilesets/primary/general/anim/2/6.4bpp"
-
- .align 2
-gTilesetAnimTable_General_2:: @ 8379614
- .4byte TilesetAnimTiles_General_2_0
- .4byte TilesetAnimTiles_General_2_1
- .4byte TilesetAnimTiles_General_2_2
- .4byte TilesetAnimTiles_General_2_3
- .4byte TilesetAnimTiles_General_2_4
- .4byte TilesetAnimTiles_General_2_5
- .4byte TilesetAnimTiles_General_2_6
- .4byte TilesetAnimTiles_General_2_0
-
- .align 2
-TilesetAnimTiles_General_3_0: @ 8379634
- .incbin "data/tilesets/primary/general/anim/3/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_1: @ 83796F4
- .incbin "data/tilesets/primary/general/anim/3/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_2: @ 83797B4
- .incbin "data/tilesets/primary/general/anim/3/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_3: @ 8379874
- .incbin "data/tilesets/primary/general/anim/3/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_3:: @ 8379934
- .4byte TilesetAnimTiles_General_3_0
- .4byte TilesetAnimTiles_General_3_1
- .4byte TilesetAnimTiles_General_3_2
- .4byte TilesetAnimTiles_General_3_3
-
- .align 2
-TilesetAnimTiles_General_4_0: @ 8379944
- .incbin "data/tilesets/primary/general/anim/4/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_1: @ 8379A84
- .incbin "data/tilesets/primary/general/anim/4/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_2: @ 8379BC4
- .incbin "data/tilesets/primary/general/anim/4/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_3: @ 8379D04
- .incbin "data/tilesets/primary/general/anim/4/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_4:: @ 8379E44
- .4byte TilesetAnimTiles_General_4_0
- .4byte TilesetAnimTiles_General_4_1
- .4byte TilesetAnimTiles_General_4_2
- .4byte TilesetAnimTiles_General_4_3
-
- .align 2
-TilesetAnimTiles_Lavaridge_0: @ 8379E54
- .incbin "data/tilesets/secondary/lavaridge/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_1: @ 8379ED4
- .incbin "data/tilesets/secondary/lavaridge/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_2: @ 8379F54
- .incbin "data/tilesets/secondary/lavaridge/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_3: @ 8379FD4
- .incbin "data/tilesets/secondary/lavaridge/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Lavaridge:: @ 837A054
- .4byte TilesetAnimTiles_Lavaridge_0
- .4byte TilesetAnimTiles_Lavaridge_1
- .4byte TilesetAnimTiles_Lavaridge_2
- .4byte TilesetAnimTiles_Lavaridge_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_0: @ 837A064
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_1: @ 837A424
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_2: @ 837A7E4
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_0:: @ 837ABA4
- .4byte TilesetAnimTiles_Pacifidlog_0_0
- .4byte TilesetAnimTiles_Pacifidlog_0_1
- .4byte TilesetAnimTiles_Pacifidlog_0_2
- .4byte TilesetAnimTiles_Pacifidlog_0_1
-
- .align 2
-TilesetAnimTiles_Underwater_0: @ 837ABB4
- .incbin "data/tilesets/secondary/underwater/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_1: @ 837AC34
- .incbin "data/tilesets/secondary/underwater/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_2: @ 837ACB4
- .incbin "data/tilesets/secondary/underwater/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_3: @ 837AD34
- .incbin "data/tilesets/secondary/underwater/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Underwater:: @ 837ADB4
- .4byte TilesetAnimTiles_Underwater_0
- .4byte TilesetAnimTiles_Underwater_1
- .4byte TilesetAnimTiles_Underwater_2
- .4byte TilesetAnimTiles_Underwater_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_0: @ 837ADC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_1: @ 837AEC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_2: @ 837AFC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_3: @ 837B0C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_4: @ 837B1C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_5: @ 837B2C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_6: @ 837B3C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_7: @ 837B4C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_1:: @ 837B5C4
- .4byte TilesetAnimTiles_Pacifidlog_1_0
- .4byte TilesetAnimTiles_Pacifidlog_1_1
- .4byte TilesetAnimTiles_Pacifidlog_1_2
- .4byte TilesetAnimTiles_Pacifidlog_1_3
- .4byte TilesetAnimTiles_Pacifidlog_1_4
- .4byte TilesetAnimTiles_Pacifidlog_1_5
- .4byte TilesetAnimTiles_Pacifidlog_1_6
- .4byte TilesetAnimTiles_Pacifidlog_1_7
-
- .align 2
-TilesetAnimTiles_Mauville_0_0: @ 837B5E4
- .incbin "data/tilesets/secondary/mauville/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_1: @ 837B664
- .incbin "data/tilesets/secondary/mauville/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_2: @ 837B6E4
- .incbin "data/tilesets/secondary/mauville/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_3: @ 837B764
- .incbin "data/tilesets/secondary/mauville/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_4: @ 837B7E4
- .incbin "data/tilesets/secondary/mauville/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_0: @ 837B864
- .incbin "data/tilesets/secondary/mauville/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_1: @ 837B8E4
- .incbin "data/tilesets/secondary/mauville/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_2: @ 837B964
- .incbin "data/tilesets/secondary/mauville/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_3: @ 837B9E4
- .incbin "data/tilesets/secondary/mauville/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_4: @ 837BA64
- .incbin "data/tilesets/secondary/mauville/anim/1/4.4bpp"
-
- .align 2
-gUnknown_0837BAE4:: @ 837BAE4
- .4byte 0x06004C00
- .4byte 0x06004C80
- .4byte 0x06004D00
- .4byte 0x06004D80
- .4byte 0x06004E00
- .4byte 0x06004E80
- .4byte 0x06004F00
- .4byte 0x06004F80
-
- .align 2
-gUnknown_0837BB04:: @ 837BB04
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Mauville_0A:: @ 837BB24
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_1
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_1
-
- .align 2
-gTilesetAnimTable_Mauville_1A:: @ 837BB54
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_1
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_1
-
- .align 2
-gTilesetAnimTable_Mauville_0B:: @ 837BB84
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_4
- .4byte TilesetAnimTiles_Mauville_0_4
-
- .align 2
-gTilesetAnimTable_Mauville_1B:: @ 837BB94
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_4
- .4byte TilesetAnimTiles_Mauville_1_4
-
- .align 2
-TilesetAnimTiles_Rustboro_0_0: @ 837BBA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_1: @ 837BC24
- .incbin "data/tilesets/secondary/rustboro/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_2: @ 837BCA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_3: @ 837BD24
- .incbin "data/tilesets/secondary/rustboro/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_4: @ 837BDA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_5: @ 837BE24
- .incbin "data/tilesets/secondary/rustboro/anim/0/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_6: @ 837BEA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_7: @ 837BF24
- .incbin "data/tilesets/secondary/rustboro/anim/0/7.4bpp"
-
- .align 2
-gUnknown_0837BFA4:: @ 837BFA4
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Rustboro_0:: @ 837BFC4
- .4byte TilesetAnimTiles_Rustboro_0_0
- .4byte TilesetAnimTiles_Rustboro_0_1
- .4byte TilesetAnimTiles_Rustboro_0_2
- .4byte TilesetAnimTiles_Rustboro_0_3
- .4byte TilesetAnimTiles_Rustboro_0_4
- .4byte TilesetAnimTiles_Rustboro_0_5
- .4byte TilesetAnimTiles_Rustboro_0_6
- .4byte TilesetAnimTiles_Rustboro_0_7
-
- .align 2
-TilesetAnimTiles_Rustboro_1_0: @ 837BFE4
- .incbin "data/tilesets/secondary/rustboro/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_1_1: @ 837C064
- .incbin "data/tilesets/secondary/rustboro/anim/1/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Rustboro_1:: @ 837C0E4
- .4byte TilesetAnimTiles_Rustboro_1_0
- .4byte TilesetAnimTiles_Rustboro_1_1
-
- .align 2
-TilesetAnimTiles_Cave_0: @ 837C0EC
- .incbin "data/tilesets/secondary/cave/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_1: @ 837C16C
- .incbin "data/tilesets/secondary/cave/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_2: @ 837C1EC
- .incbin "data/tilesets/secondary/cave/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_3: @ 837C26C
- .incbin "data/tilesets/secondary/cave/anim/3.4bpp"
-
- .incbin "data/tilesets/secondary/cave/anim/unused/0.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/1.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/2.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_Cave:: @ 837C50C
- .4byte TilesetAnimTiles_Cave_0
- .4byte TilesetAnimTiles_Cave_1
- .4byte TilesetAnimTiles_Cave_2
- .4byte TilesetAnimTiles_Cave_3
-
- .align 2
-TilesetAnimTiles_EverGrande_0: @ 837C51C
- .incbin "data/tilesets/secondary/ever_grande/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_1: @ 837C59C
- .incbin "data/tilesets/secondary/ever_grande/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_2: @ 837C61C
- .incbin "data/tilesets/secondary/ever_grande/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_3: @ 837C69C
- .incbin "data/tilesets/secondary/ever_grande/anim/3.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_4: @ 837C71C
- .incbin "data/tilesets/secondary/ever_grande/anim/4.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_5: @ 837C79C
- .incbin "data/tilesets/secondary/ever_grande/anim/5.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_6: @ 837C81C
- .incbin "data/tilesets/secondary/ever_grande/anim/6.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_7: @ 837C89C
- .incbin "data/tilesets/secondary/ever_grande/anim/7.4bpp"
-
- .space 32
-
- .align 2
-gUnknown_0837C93C:: @ 837C93C
- .4byte 0x06005C00
- .4byte 0x06005C80
- .4byte 0x06005D00
- .4byte 0x06005D80
- .4byte 0x06005E00
- .4byte 0x06005E80
- .4byte 0x06005F00
- .4byte 0x06005F80
-
- .align 2
-gTilesetAnimTable_EverGrande:: @ 837C95C
- .4byte TilesetAnimTiles_EverGrande_0
- .4byte TilesetAnimTiles_EverGrande_1
- .4byte TilesetAnimTiles_EverGrande_2
- .4byte TilesetAnimTiles_EverGrande_3
- .4byte TilesetAnimTiles_EverGrande_4
- .4byte TilesetAnimTiles_EverGrande_5
- .4byte TilesetAnimTiles_EverGrande_6
- .4byte TilesetAnimTiles_EverGrande_7
-
- .align 2
-TilesetAnimTiles_Building_0: @ 837C97C
- .incbin "data/tilesets/primary/building/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Building_1: @ 837C9FC
- .incbin "data/tilesets/primary/building/anim/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Building:: @ 837CA7C
- .4byte TilesetAnimTiles_Building_0
- .4byte TilesetAnimTiles_Building_1
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_0: @ 837CA84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_1: @ 837CC04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_2: @ 837CD84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_0: @ 837CF04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_1: @ 837D184
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_2: @ 837D404
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"
-
- .align 2
-gTilesetAnimTable_SootopolisGym_0:: @ 837D684
- .4byte TilesetAnimTiles_SootopolisGym_0_0
- .4byte TilesetAnimTiles_SootopolisGym_0_1
- .4byte TilesetAnimTiles_SootopolisGym_0_2
-
- .align 2
-gTilesetAnimTable_SootopolisGym_1:: @ 837D690
- .4byte TilesetAnimTiles_SootopolisGym_1_0
- .4byte TilesetAnimTiles_SootopolisGym_1_1
- .4byte TilesetAnimTiles_SootopolisGym_1_2
-
- .align 2
-TilesetAnimTiles_EliteFour_1_0: @ 837D69C
- .incbin "data/tilesets/secondary/elite_four/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_1_1: @ 837D71C
- .incbin "data/tilesets/secondary/elite_four/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_0: @ 837D79C
- .incbin "data/tilesets/secondary/elite_four/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_1: @ 837D7BC
- .incbin "data/tilesets/secondary/elite_four/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_2: @ 837D7DC
- .incbin "data/tilesets/secondary/elite_four/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_3: @ 837D7FC
- .incbin "data/tilesets/secondary/elite_four/anim/0/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_EliteFour_0:: @ 837D83C
- .4byte TilesetAnimTiles_EliteFour_0_0
- .4byte TilesetAnimTiles_EliteFour_0_1
- .4byte TilesetAnimTiles_EliteFour_0_2
- .4byte TilesetAnimTiles_EliteFour_0_3
-
- .align 2
-gTilesetAnimTable_EliteFour_1:: @ 837D84C
- .4byte TilesetAnimTiles_EliteFour_1_0
- .4byte TilesetAnimTiles_EliteFour_1_1
-
- .align 2
-TilesetAnimTiles_MauvilleGym_0: @ 837D854
- .incbin "data/tilesets/secondary/mauville_gym/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_MauvilleGym_1: @ 837DA54
- .incbin "data/tilesets/secondary/mauville_gym/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_MauvilleGym:: @ 837DC74
- .4byte TilesetAnimTiles_MauvilleGym_0
- .4byte TilesetAnimTiles_MauvilleGym_1
-
- .align 2
-TilesetAnimTiles_BikeShop_0: @ 837DC7C
- .incbin "data/tilesets/secondary/bike_shop/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_BikeShop_1: @ 837DD9C
- .incbin "data/tilesets/secondary/bike_shop/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_BikeShop:: @ 837DEDC
- .4byte TilesetAnimTiles_BikeShop_0
- .4byte TilesetAnimTiles_BikeShop_1
diff --git a/data/tv.s b/data/tv.s
deleted file mode 100644
index 293f84217..000000000
--- a/data/tv.s
+++ /dev/null
@@ -1,205 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gPokeOutbreakSpeciesList:: @ 83D13F8
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 3
- .byte MAPSEC_Route102
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route114
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route117
-
- .2byte SPECIES_SURSKIT
- .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
- .byte 28
- .byte MAPSEC_Route120
-
- .2byte SPECIES_SKITTY
- .2byte MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE
- .byte 15
- .byte MAPSEC_Route116
-
- .align 2
-gTVNewsTextGroup1:: @ 83D1434
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru1
- .4byte gTVNewsText_GameCorner1
- .4byte gTVNewsText_LilycoveDepartment1
-
- .align 2
-gTVNewsTextGroup2:: @ 83D1444
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru2
- .4byte gTVNewsText_GameCorner2
- .4byte gTVNewsText_LilycoveDepartment2
-
- .align 2
-gTVNewsTextGroup3:: @ 83D1454
- .4byte 0x0
- .4byte gTVNewsText_EnergyGuru3
- .4byte gTVNewsText_GameCorner3
- .4byte gTVNewsText_LilycoveDepartment3
-
- .align 2
-gUnknown_083D1464:: @ 83D1464
- .4byte gStringVar1
- .4byte gStringVar2
- .4byte gStringVar3
-
- .align 2
-gTVFanClubTextGroup:: @ 83D1470
- .4byte gTVFanClubText1
- .4byte gTVFanClubText2
- .4byte gTVFanClubText3
- .4byte gTVFanClubText4
- .4byte gTVFanClubText5
- .4byte gTVFanClubText6
- .4byte gTVFanClubText7
- .4byte gTVFanClubText8
-
- .align 2
-gTVRecentHappeningsTextGroup:: @ 83D1490
- .4byte gTVRecentHappeningsText1
- .4byte gTVRecentHappeningsText2
- .4byte gTVRecentHappeningsText3
- .4byte gTVRecentHappeningsText4
- .4byte gTVRecentHappeningsText5
- .4byte gTVRecentHappeningsText6
-
- .align 2
-gTVFanClubOpinionsTextGroup:: @ 83D14A8
- .4byte gTVFanClubOpinionsText1
- .4byte gTVFanClubOpinionsText2
- .4byte gTVFanClubOpinionsText3
- .4byte gTVFanClubOpinionsText4
- .4byte gTVFanClubOpinionsText5
-
- .align 2
-gTVPokemonOutbreakTextGroup:: @ 83D14BC
- .4byte gTVPokemonOutbreakText
-
- .align 2
-gTVPokemonTodayTextGroup:: @ 83D14C0
- .4byte gTVPokemonTodayText1
- .4byte gTVPokemonTodayText2
- .4byte gTVPokemonTodayText3
- .4byte gTVPokemonTodayText4
- .4byte gTVPokemonTodayText5
- .4byte gTVPokemonTodayText6
- .4byte gTVPokemonTodayText7
- .4byte gTVPokemonTodayText8
- .4byte gTVPokemonTodayText9
- .4byte gTVPokemonTodayText10
- .4byte gTVPokemonTodayText11
- .4byte gTVPokemonTodayText12
-
- .align 2
-gTVSmartShopperTextGroup:: @ 83D14F0
- .4byte gTVSmartShopperText1
- .4byte gTVSmartShopperText2
- .4byte gTVSmartShopperText3
- .4byte gTVSmartShopperText4
- .4byte gTVSmartShopperText5
- .4byte gTVSmartShopperText6
- .4byte gTVSmartShopperText7
- .4byte gTVSmartShopperText8
- .4byte gTVSmartShopperText9
- .4byte gTVSmartShopperText10
- .4byte gTVSmartShopperText11
- .4byte gTVSmartShopperText12
- .4byte gTVSmartShopperText13
-
- .align 2
-gTVBravoTrainerTextGroup:: @ 83D1524
- .4byte gTVBravoTrainerText1
- .4byte gTVBravoTrainerText2
- .4byte gTVBravoTrainerText3
- .4byte gTVBravoTrainerText4
- .4byte gTVBravoTrainerText5
- .4byte gTVBravoTrainerText6
- .4byte gTVBravoTrainerText7
- .4byte gTVBravoTrainerText8
- .4byte gTVBravoTrainerText9
-
- .align 2
-gTVBravoTrainerBattleTowerTextGroup:: @ 83D1548
- .4byte gTVBravoTrainerBattleTowerText1
- .4byte gTVBravoTrainerBattleTowerText2
- .4byte gTVBravoTrainerBattleTowerText3
- .4byte gTVBravoTrainerBattleTowerText4
- .4byte gTVBravoTrainerBattleTowerText5
- .4byte gTVBravoTrainerBattleTowerText6
- .4byte gTVBravoTrainerBattleTowerText7
- .4byte gTVBravoTrainerBattleTowerText8
- .4byte gTVBravoTrainerBattleTowerText9
- .4byte gTVBravoTrainerBattleTowerText10
- .4byte gTVBravoTrainerBattleTowerText11
- .4byte gTVBravoTrainerBattleTowerText12
- .4byte gTVBravoTrainerBattleTowerText13
- .4byte gTVBravoTrainerBattleTowerText14
- .4byte gTVBravoTrainerBattleTowerText15
-
- .align 2
-gTVNameRaterTextGroup:: @ 83D1584
- .4byte gTVNameRaterText1
- .4byte gTVNameRaterText2
- .4byte gTVNameRaterText3
- .4byte gTVNameRaterText4
- .4byte gTVNameRaterText5
- .4byte gTVNameRaterText6
- .4byte gTVNameRaterText7
- .4byte gTVNameRaterText8
- .4byte gTVNameRaterText9
- .4byte gTVNameRaterText10
- .4byte gTVNameRaterText11
- .4byte gTVNameRaterText12
- .4byte gTVNameRaterText13
- .4byte gTVNameRaterText14
- .4byte gTVNameRaterText15
- .4byte gTVNameRaterText16
- .4byte gTVNameRaterText17
- .4byte gTVNameRaterText18
- .4byte gTVNameRaterText19
-
- .align 2
-gTVPokemonTodayFailedCaptureTextGroup:: @ 83D15D0
- .4byte gTVPokemonTodayFailedCaptureText1
- .4byte gTVPokemonTodayFailedCaptureText2
- .4byte gTVPokemonTodayFailedCaptureText3
- .4byte gTVPokemonTodayFailedCaptureText4
- .4byte gTVPokemonTodayFailedCaptureText5
- .4byte gTVPokemonTodayFailedCaptureText6
- .4byte gTVPokemonTodayFailedCaptureText7
-
- .align 2
-gTVFishingGuruAdviceTextGroup:: @ 83D15EC
- .4byte gTVFishingGuruAdviceText1
- .4byte gTVFishingGuruAdviceText2
-
- .align 2
-gTVWorldOfMastersTextGroup:: @ 83D15F4
- .4byte gTVWorldOfMastersText1
- .4byte gTVWorldOfMastersText2
- .4byte gTVWorldOfMastersText3
-
- .align 2
-gTVGabbyAndTyTextGroup:: @ 83D1600
- .4byte gTVGabbyAndTyText1
- .4byte gTVGabbyAndTyText2
- .4byte gTVGabbyAndTyText3
- .4byte gTVGabbyAndTyText4
- .4byte gTVGabbyAndTyText5
- .4byte gTVGabbyAndTyText6
- .4byte gTVGabbyAndTyText7
- .4byte gTVGabbyAndTyText8
- .4byte gTVGabbyAndTyText9
diff --git a/graphics/birch_speech/blank_pal.pal b/graphics/birch_speech/blank_pal.pal
new file mode 100755
index 000000000..7dc528e38
--- /dev/null
+++ b/graphics/birch_speech/blank_pal.pal
@@ -0,0 +1,11 @@
+JASC-PAL
+0100
+8
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/include/field_door.h b/include/field_door.h
index 31fdd154b..091aac27f 100644
--- a/include/field_door.h
+++ b/include/field_door.h
@@ -5,8 +5,8 @@ struct DoorGraphics
{
u16 metatileNum;
u8 unk2;
- void *tiles;
- void *palette;
+ const void *tiles;
+ const void *palette;
};
struct DoorAnimFrame
diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h
index 5df53d688..60f2dc48c 100644
--- a/include/matsuda_debug_menu.h
+++ b/include/matsuda_debug_menu.h
@@ -7,5 +7,31 @@ void sub_80AB184(void);
void sub_80AA280(u8);
void sub_80AA5E8(u8);
void sub_80AA658(u8);
+u8 MatsudaDebugMenu_Contest(void);
+u8 MatsudaDebugMenu_ContestResults(void);
+u8 MatsudaDebugMenu_ContestComm(void);
+u8 MatsudaDebugMenu_CommTest(void);
+u8 MatsudaDebugMenu_SetHighScore(void);
+u8 MatsudaDebugMenu_ResetHighScore(void);
+u8 MatsudaDebugMenu_SetArtMuseumItems(void);
+void sub_80AA754(struct Sprite *sprite);
+void sub_80AA8C8(struct Sprite *, s8);
+void sub_80AA8D8(struct Sprite *, s8);
+void sub_80AA8E8(struct Sprite *, s8);
+void sub_80AA8F8(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AA930(struct Sprite *, s8);
+void sub_80AA974(struct Sprite *, s8);
+void sub_80AA9B8(struct Sprite *, s8);
+void sub_80AA9FC(struct Sprite *, s8);
+void sub_80AAA40(struct Sprite *, s8);
+void sub_80AAA84(struct Sprite *, s8);
+void sub_80AAAF0(struct Sprite *, s8);
+void sub_80AAB30(struct Sprite *, s8);
+void sub_80AAB70(struct Sprite *, s8);
+void sub_80AABB0(struct Sprite *, s8);
+void sub_80AABF0(struct Sprite *, s8);
+void sub_80AAD44(struct Sprite *, s8);
#endif
diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h
index f1dc0de93..9b0a39fe3 100644
--- a/include/mori_debug_menu.h
+++ b/include/mori_debug_menu.h
@@ -3,14 +3,14 @@
bool8 sub_8083D4C(void);
u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr);
-s8 MoriDebugMenu_Egg(void);
-s8 MoriDebugMenu_MaleEgg(void);
-s8 MoriDebugMenu_1000Steps(void);
-s8 MoriDebugMenu_10000Steps(void);
-s8 MoriDebugMenu_MoveTutor(void);
-s8 MoriDebugMenu_BreedEgg(void);
-s8 MoriDebugMenu_LongName(void);
-s8 MoriDebugMenu_PokeblockCase(void);
+u8 MoriDebugMenu_Egg(void);
+u8 MoriDebugMenu_MaleEgg(void);
+u8 MoriDebugMenu_1000Steps(void);
+u8 MoriDebugMenu_10000Steps(void);
+u8 MoriDebugMenu_MoveTutor(void);
+u8 MoriDebugMenu_BreedEgg(void);
+u8 MoriDebugMenu_LongName(void);
+u8 MoriDebugMenu_PokeblockCase(void);
bool8 MoriDebugMenuProcessInput(void);
s8 InitMoriDebugMenu(void);
diff --git a/include/moves.h b/include/moves.h
index e3b6d3113..9b9d3ff19 100644
--- a/include/moves.h
+++ b/include/moves.h
@@ -3,361 +3,361 @@
enum
{
- MOVE_NONE,
- MOVE_POUND,
- MOVE_KARATE_CHOP,
- MOVE_DOUBLE_SLAP,
- MOVE_COMET_PUNCH,
- MOVE_MEGA_PUNCH,
- MOVE_PAY_DAY,
- MOVE_FIRE_PUNCH,
- MOVE_ICE_PUNCH,
- MOVE_THUNDER_PUNCH,
- MOVE_SCRATCH,
- MOVE_VICE_GRIP,
- MOVE_GUILLOTINE,
- MOVE_RAZOR_WIND,
- MOVE_SWORDS_DANCE,
- MOVE_CUT,
- MOVE_GUST,
- MOVE_WING_ATTACK,
- MOVE_WHIRLWIND,
- MOVE_FLY,
- MOVE_BIND,
- MOVE_SLAM,
- MOVE_VINE_WHIP,
- MOVE_STOMP,
- MOVE_DOUBLE_KICK,
- MOVE_MEGA_KICK,
- MOVE_JUMP_KICK,
- MOVE_ROLLING_KICK,
- MOVE_SAND_ATTACK,
- MOVE_HEADBUTT,
- MOVE_HORN_ATTACK,
- MOVE_FURY_ATTACK,
- MOVE_HORN_DRILL,
- MOVE_TACKLE,
- MOVE_BODY_SLAM,
- MOVE_WRAP,
- MOVE_TAKE_DOWN,
- MOVE_THRASH,
- MOVE_DOUBLE_EDGE,
- MOVE_TAIL_WHIP,
- MOVE_POISON_STING,
- MOVE_TWINEEDLE,
- MOVE_PIN_MISSILE,
- MOVE_LEER,
- MOVE_BITE,
- MOVE_GROWL,
- MOVE_ROAR,
- MOVE_SING,
- MOVE_SUPERSONIC,
- MOVE_SONIC_BOOM,
- MOVE_DISABLE,
- MOVE_ACID,
- MOVE_EMBER,
- MOVE_FLAMETHROWER,
- MOVE_MIST,
- MOVE_WATER_GUN,
- MOVE_HYDRO_PUMP,
- MOVE_SURF,
- MOVE_ICE_BEAM,
- MOVE_BLIZZARD,
- MOVE_PSYBEAM,
- MOVE_BUBBLE_BEAM,
- MOVE_AURORA_BEAM,
- MOVE_HYPER_BEAM,
- MOVE_PECK,
- MOVE_DRILL_PECK,
- MOVE_SUBMISSION,
- MOVE_LOW_KICK,
- MOVE_COUNTER,
- MOVE_SEISMIC_TOSS,
- MOVE_STRENGTH,
- MOVE_ABSORB,
- MOVE_MEGA_DRAIN,
- MOVE_LEECH_SEED,
- MOVE_GROWTH,
- MOVE_RAZOR_LEAF,
- MOVE_SOLAR_BEAM,
- MOVE_POISON_POWDER,
- MOVE_STUN_SPORE,
- MOVE_SLEEP_POWDER,
- MOVE_PETAL_DANCE,
- MOVE_STRING_SHOT,
- MOVE_DRAGON_RAGE,
- MOVE_FIRE_SPIN,
- MOVE_THUNDER_SHOCK,
- MOVE_THUNDERBOLT,
- MOVE_THUNDER_WAVE,
- MOVE_THUNDER,
- MOVE_ROCK_THROW,
- MOVE_EARTHQUAKE,
- MOVE_FISSURE,
- MOVE_DIG,
- MOVE_TOXIC,
- MOVE_CONFUSION,
- MOVE_PSYCHIC,
- MOVE_HYPNOSIS,
- MOVE_MEDITATE,
- MOVE_AGILITY,
- MOVE_QUICK_ATTACK,
- MOVE_RAGE,
- MOVE_TELEPORT,
- MOVE_NIGHT_SHADE,
- MOVE_MIMIC,
- MOVE_SCREECH,
- MOVE_DOUBLE_TEAM,
- MOVE_RECOVER,
- MOVE_HARDEN,
- MOVE_MINIMIZE,
- MOVE_SMOKESCREEN,
- MOVE_CONFUSE_RAY,
- MOVE_WITHDRAW,
- MOVE_DEFENSE_CURL,
- MOVE_BARRIER,
- MOVE_LIGHT_SCREEN,
- MOVE_HAZE,
- MOVE_REFLECT,
- MOVE_FOCUS_ENERGY,
- MOVE_BIDE,
- MOVE_METRONOME,
- MOVE_MIRROR_MOVE,
- MOVE_SELF_DESTRUCT,
- MOVE_EGG_BOMB,
- MOVE_LICK,
- MOVE_SMOG,
- MOVE_SLUDGE,
- MOVE_BONE_CLUB,
- MOVE_FIRE_BLAST,
- MOVE_WATERFALL,
- MOVE_CLAMP,
- MOVE_SWIFT,
- MOVE_SKULL_BASH,
- MOVE_SPIKE_CANNON,
- MOVE_CONSTRICT,
- MOVE_AMNESIA,
- MOVE_KINESIS,
- MOVE_SOFT_BOILED,
- MOVE_HI_JUMP_KICK,
- MOVE_GLARE,
- MOVE_DREAM_EATER,
- MOVE_POISON_GAS,
- MOVE_BARRAGE,
- MOVE_LEECH_LIFE,
- MOVE_LOVELY_KISS,
- MOVE_SKY_ATTACK,
- MOVE_TRANSFORM,
- MOVE_BUBBLE,
- MOVE_DIZZY_PUNCH,
- MOVE_SPORE,
- MOVE_FLASH,
- MOVE_PSYWAVE,
- MOVE_SPLASH,
- MOVE_ACID_ARMOR,
- MOVE_CRABHAMMER,
- MOVE_EXPLOSION,
- MOVE_FURY_SWIPES,
- MOVE_BONEMERANG,
- MOVE_REST,
- MOVE_ROCK_SLIDE,
- MOVE_HYPER_FANG,
- MOVE_SHARPEN,
- MOVE_CONVERSION,
- MOVE_TRI_ATTACK,
- MOVE_SUPER_FANG,
- MOVE_SLASH,
- MOVE_SUBSTITUTE,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_TRIPLE_KICK,
- MOVE_THIEF,
- MOVE_SPIDER_WEB,
- MOVE_MIND_READER,
- MOVE_NIGHTMARE,
- MOVE_FLAME_WHEEL,
- MOVE_SNORE,
- MOVE_CURSE,
- MOVE_FLAIL,
- MOVE_CONVERSION_2,
- MOVE_AEROBLAST,
- MOVE_COTTON_SPORE,
- MOVE_REVERSAL,
- MOVE_SPITE,
- MOVE_POWDER_SNOW,
- MOVE_PROTECT,
- MOVE_MACH_PUNCH,
- MOVE_SCARY_FACE,
- MOVE_FAINT_ATTACK,
- MOVE_SWEET_KISS,
- MOVE_BELLY_DRUM,
- MOVE_SLUDGE_BOMB,
- MOVE_MUD_SLAP,
- MOVE_OCTAZOOKA,
- MOVE_SPIKES,
- MOVE_ZAP_CANNON,
- MOVE_FORESIGHT,
- MOVE_DESTINY_BOND,
- MOVE_PERISH_SONG,
- MOVE_ICY_WIND,
- MOVE_DETECT,
- MOVE_BONE_RUSH,
- MOVE_LOCK_ON,
- MOVE_OUTRAGE,
- MOVE_SANDSTORM,
- MOVE_GIGA_DRAIN,
- MOVE_ENDURE,
- MOVE_CHARM,
- MOVE_ROLLOUT,
- MOVE_FALSE_SWIPE,
- MOVE_SWAGGER,
- MOVE_MILK_DRINK,
- MOVE_SPARK,
- MOVE_FURY_CUTTER,
- MOVE_STEEL_WING,
- MOVE_MEAN_LOOK,
- MOVE_ATTRACT,
- MOVE_SLEEP_TALK,
- MOVE_HEAL_BELL,
- MOVE_RETURN,
- MOVE_PRESENT,
- MOVE_FRUSTRATION,
- MOVE_SAFEGUARD,
- MOVE_PAIN_SPLIT,
- MOVE_SACRED_FIRE,
- MOVE_MAGNITUDE,
- MOVE_DYNAMIC_PUNCH,
- MOVE_MEGAHORN,
- MOVE_DRAGON_BREATH,
- MOVE_BATON_PASS,
- MOVE_ENCORE,
- MOVE_PURSUIT,
- MOVE_RAPID_SPIN,
- MOVE_SWEET_SCENT,
- MOVE_IRON_TAIL,
- MOVE_METAL_CLAW,
- MOVE_VITAL_THROW,
- MOVE_MORNING_SUN,
- MOVE_SYNTHESIS,
- MOVE_MOONLIGHT,
- MOVE_HIDDEN_POWER,
- MOVE_CROSS_CHOP,
- MOVE_TWISTER,
- MOVE_RAIN_DANCE,
- MOVE_SUNNY_DAY,
- MOVE_CRUNCH,
- MOVE_MIRROR_COAT,
- MOVE_PSYCH_UP,
- MOVE_EXTREME_SPEED,
- MOVE_ANCIENT_POWER,
- MOVE_SHADOW_BALL,
- MOVE_FUTURE_SIGHT,
- MOVE_ROCK_SMASH,
- MOVE_WHIRLPOOL,
- MOVE_BEAT_UP,
- MOVE_FAKE_OUT,
- MOVE_UPROAR,
- MOVE_STOCKPILE,
- MOVE_SPIT_UP,
- MOVE_SWALLOW,
- MOVE_HEAT_WAVE,
- MOVE_HAIL,
- MOVE_TORMENT,
- MOVE_FLATTER,
- MOVE_WILL_O_WISP,
- MOVE_MEMENTO,
- MOVE_FACADE,
- MOVE_FOCUS_PUNCH,
- MOVE_SMELLING_SALT,
- MOVE_FOLLOW_ME,
- MOVE_NATURE_POWER,
- MOVE_CHARGE,
- MOVE_TAUNT,
- MOVE_HELPING_HAND,
- MOVE_TRICK,
- MOVE_ROLE_PLAY,
- MOVE_WISH,
- MOVE_ASSIST,
- MOVE_INGRAIN,
- MOVE_SUPERPOWER,
- MOVE_MAGIC_COAT,
- MOVE_RECYCLE,
- MOVE_REVENGE,
- MOVE_BRICK_BREAK,
- MOVE_YAWN,
- MOVE_KNOCK_OFF,
- MOVE_ENDEAVOR,
- MOVE_ERUPTION,
- MOVE_SKILL_SWAP,
- MOVE_IMPRISON,
- MOVE_REFRESH,
- MOVE_GRUDGE,
- MOVE_SNATCH,
- MOVE_SECRET_POWER,
- MOVE_DIVE,
- MOVE_ARM_THRUST,
- MOVE_CAMOUFLAGE,
- MOVE_TAIL_GLOW,
- MOVE_LUSTER_PURGE,
- MOVE_MIST_BALL,
- MOVE_FEATHER_DANCE,
- MOVE_TEETER_DANCE,
- MOVE_BLAZE_KICK,
- MOVE_MUD_SPORT,
- MOVE_ICE_BALL,
- MOVE_NEEDLE_ARM,
- MOVE_SLACK_OFF,
- MOVE_HYPER_VOICE,
- MOVE_POISON_FANG,
- MOVE_CRUSH_CLAW,
- MOVE_BLAST_BURN,
- MOVE_HYDRO_CANNON,
- MOVE_METEOR_MASH,
- MOVE_ASTONISH,
- MOVE_WEATHER_BALL,
- MOVE_AROMATHERAPY,
- MOVE_FAKE_TEARS,
- MOVE_AIR_CUTTER,
- MOVE_OVERHEAT,
- MOVE_ODOR_SLEUTH,
- MOVE_ROCK_TOMB,
- MOVE_SILVER_WIND,
- MOVE_METAL_SOUND,
- MOVE_GRASS_WHISTLE,
- MOVE_TICKLE,
- MOVE_COSMIC_POWER,
- MOVE_WATER_SPOUT,
- MOVE_SIGNAL_BEAM,
- MOVE_SHADOW_PUNCH,
- MOVE_EXTRASENSORY,
- MOVE_SKY_UPPERCUT,
- MOVE_SAND_TOMB,
- MOVE_SHEER_COLD,
- MOVE_MUDDY_WATER,
- MOVE_BULLET_SEED,
- MOVE_AERIAL_ACE,
- MOVE_ICICLE_SPEAR,
- MOVE_IRON_DEFENSE,
- MOVE_BLOCK,
- MOVE_HOWL,
- MOVE_DRAGON_CLAW,
- MOVE_FRENZY_PLANT,
- MOVE_BULK_UP,
- MOVE_BOUNCE,
- MOVE_MUD_SHOT,
- MOVE_POISON_TAIL,
- MOVE_COVET,
- MOVE_VOLT_TACKLE,
- MOVE_MAGICAL_LEAF,
- MOVE_WATER_SPORT,
- MOVE_CALM_MIND,
- MOVE_LEAF_BLADE,
- MOVE_DRAGON_DANCE,
- MOVE_ROCK_BLAST,
- MOVE_SHOCK_WAVE,
- MOVE_WATER_PULSE,
- MOVE_DOOM_DESIRE,
- MOVE_PSYCHO_BOOST,
+ /*0x0000*/ MOVE_NONE,
+ /*0x0001*/ MOVE_POUND,
+ /*0x0002*/ MOVE_KARATE_CHOP,
+ /*0x0003*/ MOVE_DOUBLE_SLAP,
+ /*0x0004*/ MOVE_COMET_PUNCH,
+ /*0x0005*/ MOVE_MEGA_PUNCH,
+ /*0x0006*/ MOVE_PAY_DAY,
+ /*0x0007*/ MOVE_FIRE_PUNCH,
+ /*0x0008*/ MOVE_ICE_PUNCH,
+ /*0x0009*/ MOVE_THUNDER_PUNCH,
+ /*0x000a*/ MOVE_SCRATCH,
+ /*0x000b*/ MOVE_VICE_GRIP,
+ /*0x000c*/ MOVE_GUILLOTINE,
+ /*0x000d*/ MOVE_RAZOR_WIND,
+ /*0x000e*/ MOVE_SWORDS_DANCE,
+ /*0x000f*/ MOVE_CUT,
+ /*0x0010*/ MOVE_GUST,
+ /*0x0011*/ MOVE_WING_ATTACK,
+ /*0x0012*/ MOVE_WHIRLWIND,
+ /*0x0013*/ MOVE_FLY,
+ /*0x0014*/ MOVE_BIND,
+ /*0x0015*/ MOVE_SLAM,
+ /*0x0016*/ MOVE_VINE_WHIP,
+ /*0x0017*/ MOVE_STOMP,
+ /*0x0018*/ MOVE_DOUBLE_KICK,
+ /*0x0019*/ MOVE_MEGA_KICK,
+ /*0x001a*/ MOVE_JUMP_KICK,
+ /*0x001b*/ MOVE_ROLLING_KICK,
+ /*0x001c*/ MOVE_SAND_ATTACK,
+ /*0x001d*/ MOVE_HEADBUTT,
+ /*0x001e*/ MOVE_HORN_ATTACK,
+ /*0x001f*/ MOVE_FURY_ATTACK,
+ /*0x0020*/ MOVE_HORN_DRILL,
+ /*0x0021*/ MOVE_TACKLE,
+ /*0x0022*/ MOVE_BODY_SLAM,
+ /*0x0023*/ MOVE_WRAP,
+ /*0x0024*/ MOVE_TAKE_DOWN,
+ /*0x0025*/ MOVE_THRASH,
+ /*0x0026*/ MOVE_DOUBLE_EDGE,
+ /*0x0027*/ MOVE_TAIL_WHIP,
+ /*0x0028*/ MOVE_POISON_STING,
+ /*0x0029*/ MOVE_TWINEEDLE,
+ /*0x002a*/ MOVE_PIN_MISSILE,
+ /*0x002b*/ MOVE_LEER,
+ /*0x002c*/ MOVE_BITE,
+ /*0x002d*/ MOVE_GROWL,
+ /*0x002e*/ MOVE_ROAR,
+ /*0x002f*/ MOVE_SING,
+ /*0x0030*/ MOVE_SUPERSONIC,
+ /*0x0031*/ MOVE_SONIC_BOOM,
+ /*0x0032*/ MOVE_DISABLE,
+ /*0x0033*/ MOVE_ACID,
+ /*0x0034*/ MOVE_EMBER,
+ /*0x0035*/ MOVE_FLAMETHROWER,
+ /*0x0036*/ MOVE_MIST,
+ /*0x0037*/ MOVE_WATER_GUN,
+ /*0x0038*/ MOVE_HYDRO_PUMP,
+ /*0x0039*/ MOVE_SURF,
+ /*0x003a*/ MOVE_ICE_BEAM,
+ /*0x003b*/ MOVE_BLIZZARD,
+ /*0x003c*/ MOVE_PSYBEAM,
+ /*0x003d*/ MOVE_BUBBLE_BEAM,
+ /*0x003e*/ MOVE_AURORA_BEAM,
+ /*0x003f*/ MOVE_HYPER_BEAM,
+ /*0x0040*/ MOVE_PECK,
+ /*0x0041*/ MOVE_DRILL_PECK,
+ /*0x0042*/ MOVE_SUBMISSION,
+ /*0x0043*/ MOVE_LOW_KICK,
+ /*0x0044*/ MOVE_COUNTER,
+ /*0x0045*/ MOVE_SEISMIC_TOSS,
+ /*0x0046*/ MOVE_STRENGTH,
+ /*0x0047*/ MOVE_ABSORB,
+ /*0x0048*/ MOVE_MEGA_DRAIN,
+ /*0x0049*/ MOVE_LEECH_SEED,
+ /*0x004a*/ MOVE_GROWTH,
+ /*0x004b*/ MOVE_RAZOR_LEAF,
+ /*0x004c*/ MOVE_SOLAR_BEAM,
+ /*0x004d*/ MOVE_POISON_POWDER,
+ /*0x004e*/ MOVE_STUN_SPORE,
+ /*0x004f*/ MOVE_SLEEP_POWDER,
+ /*0x0050*/ MOVE_PETAL_DANCE,
+ /*0x0051*/ MOVE_STRING_SHOT,
+ /*0x0052*/ MOVE_DRAGON_RAGE,
+ /*0x0053*/ MOVE_FIRE_SPIN,
+ /*0x0054*/ MOVE_THUNDER_SHOCK,
+ /*0x0055*/ MOVE_THUNDERBOLT,
+ /*0x0056*/ MOVE_THUNDER_WAVE,
+ /*0x0057*/ MOVE_THUNDER,
+ /*0x0058*/ MOVE_ROCK_THROW,
+ /*0x0059*/ MOVE_EARTHQUAKE,
+ /*0x005a*/ MOVE_FISSURE,
+ /*0x005b*/ MOVE_DIG,
+ /*0x005c*/ MOVE_TOXIC,
+ /*0x005d*/ MOVE_CONFUSION,
+ /*0x005e*/ MOVE_PSYCHIC,
+ /*0x005f*/ MOVE_HYPNOSIS,
+ /*0x0060*/ MOVE_MEDITATE,
+ /*0x0061*/ MOVE_AGILITY,
+ /*0x0062*/ MOVE_QUICK_ATTACK,
+ /*0x0063*/ MOVE_RAGE,
+ /*0x0064*/ MOVE_TELEPORT,
+ /*0x0065*/ MOVE_NIGHT_SHADE,
+ /*0x0066*/ MOVE_MIMIC,
+ /*0x0067*/ MOVE_SCREECH,
+ /*0x0068*/ MOVE_DOUBLE_TEAM,
+ /*0x0069*/ MOVE_RECOVER,
+ /*0x006a*/ MOVE_HARDEN,
+ /*0x006b*/ MOVE_MINIMIZE,
+ /*0x006c*/ MOVE_SMOKESCREEN,
+ /*0x006d*/ MOVE_CONFUSE_RAY,
+ /*0x006e*/ MOVE_WITHDRAW,
+ /*0x006f*/ MOVE_DEFENSE_CURL,
+ /*0x0070*/ MOVE_BARRIER,
+ /*0x0071*/ MOVE_LIGHT_SCREEN,
+ /*0x0072*/ MOVE_HAZE,
+ /*0x0073*/ MOVE_REFLECT,
+ /*0x0074*/ MOVE_FOCUS_ENERGY,
+ /*0x0075*/ MOVE_BIDE,
+ /*0x0076*/ MOVE_METRONOME,
+ /*0x0077*/ MOVE_MIRROR_MOVE,
+ /*0x0078*/ MOVE_SELF_DESTRUCT,
+ /*0x0079*/ MOVE_EGG_BOMB,
+ /*0x007a*/ MOVE_LICK,
+ /*0x007b*/ MOVE_SMOG,
+ /*0x007c*/ MOVE_SLUDGE,
+ /*0x007d*/ MOVE_BONE_CLUB,
+ /*0x007e*/ MOVE_FIRE_BLAST,
+ /*0x007f*/ MOVE_WATERFALL,
+ /*0x0080*/ MOVE_CLAMP,
+ /*0x0081*/ MOVE_SWIFT,
+ /*0x0082*/ MOVE_SKULL_BASH,
+ /*0x0083*/ MOVE_SPIKE_CANNON,
+ /*0x0084*/ MOVE_CONSTRICT,
+ /*0x0085*/ MOVE_AMNESIA,
+ /*0x0086*/ MOVE_KINESIS,
+ /*0x0087*/ MOVE_SOFT_BOILED,
+ /*0x0088*/ MOVE_HI_JUMP_KICK,
+ /*0x0089*/ MOVE_GLARE,
+ /*0x008a*/ MOVE_DREAM_EATER,
+ /*0x008b*/ MOVE_POISON_GAS,
+ /*0x008c*/ MOVE_BARRAGE,
+ /*0x008d*/ MOVE_LEECH_LIFE,
+ /*0x008e*/ MOVE_LOVELY_KISS,
+ /*0x008f*/ MOVE_SKY_ATTACK,
+ /*0x0090*/ MOVE_TRANSFORM,
+ /*0x0091*/ MOVE_BUBBLE,
+ /*0x0092*/ MOVE_DIZZY_PUNCH,
+ /*0x0093*/ MOVE_SPORE,
+ /*0x0094*/ MOVE_FLASH,
+ /*0x0095*/ MOVE_PSYWAVE,
+ /*0x0096*/ MOVE_SPLASH,
+ /*0x0097*/ MOVE_ACID_ARMOR,
+ /*0x0098*/ MOVE_CRABHAMMER,
+ /*0x0099*/ MOVE_EXPLOSION,
+ /*0x009a*/ MOVE_FURY_SWIPES,
+ /*0x009b*/ MOVE_BONEMERANG,
+ /*0x009c*/ MOVE_REST,
+ /*0x009d*/ MOVE_ROCK_SLIDE,
+ /*0x009e*/ MOVE_HYPER_FANG,
+ /*0x009f*/ MOVE_SHARPEN,
+ /*0x00a0*/ MOVE_CONVERSION,
+ /*0x00a1*/ MOVE_TRI_ATTACK,
+ /*0x00a2*/ MOVE_SUPER_FANG,
+ /*0x00a3*/ MOVE_SLASH,
+ /*0x00a4*/ MOVE_SUBSTITUTE,
+ /*0x00a5*/ MOVE_STRUGGLE,
+ /*0x00a6*/ MOVE_SKETCH,
+ /*0x00a7*/ MOVE_TRIPLE_KICK,
+ /*0x00a8*/ MOVE_THIEF,
+ /*0x00a9*/ MOVE_SPIDER_WEB,
+ /*0x00aa*/ MOVE_MIND_READER,
+ /*0x00ab*/ MOVE_NIGHTMARE,
+ /*0x00ac*/ MOVE_FLAME_WHEEL,
+ /*0x00ad*/ MOVE_SNORE,
+ /*0x00ae*/ MOVE_CURSE,
+ /*0x00af*/ MOVE_FLAIL,
+ /*0x00b0*/ MOVE_CONVERSION_2,
+ /*0x00b1*/ MOVE_AEROBLAST,
+ /*0x00b2*/ MOVE_COTTON_SPORE,
+ /*0x00b3*/ MOVE_REVERSAL,
+ /*0x00b4*/ MOVE_SPITE,
+ /*0x00b5*/ MOVE_POWDER_SNOW,
+ /*0x00b6*/ MOVE_PROTECT,
+ /*0x00b7*/ MOVE_MACH_PUNCH,
+ /*0x00b8*/ MOVE_SCARY_FACE,
+ /*0x00b9*/ MOVE_FAINT_ATTACK,
+ /*0x00ba*/ MOVE_SWEET_KISS,
+ /*0x00bb*/ MOVE_BELLY_DRUM,
+ /*0x00bc*/ MOVE_SLUDGE_BOMB,
+ /*0x00bd*/ MOVE_MUD_SLAP,
+ /*0x00be*/ MOVE_OCTAZOOKA,
+ /*0x00bf*/ MOVE_SPIKES,
+ /*0x00c0*/ MOVE_ZAP_CANNON,
+ /*0x00c1*/ MOVE_FORESIGHT,
+ /*0x00c2*/ MOVE_DESTINY_BOND,
+ /*0x00c3*/ MOVE_PERISH_SONG,
+ /*0x00c4*/ MOVE_ICY_WIND,
+ /*0x00c5*/ MOVE_DETECT,
+ /*0x00c6*/ MOVE_BONE_RUSH,
+ /*0x00c7*/ MOVE_LOCK_ON,
+ /*0x00c8*/ MOVE_OUTRAGE,
+ /*0x00c9*/ MOVE_SANDSTORM,
+ /*0x00ca*/ MOVE_GIGA_DRAIN,
+ /*0x00cb*/ MOVE_ENDURE,
+ /*0x00cc*/ MOVE_CHARM,
+ /*0x00cd*/ MOVE_ROLLOUT,
+ /*0x00ce*/ MOVE_FALSE_SWIPE,
+ /*0x00cf*/ MOVE_SWAGGER,
+ /*0x00d0*/ MOVE_MILK_DRINK,
+ /*0x00d1*/ MOVE_SPARK,
+ /*0x00d2*/ MOVE_FURY_CUTTER,
+ /*0x00d3*/ MOVE_STEEL_WING,
+ /*0x00d4*/ MOVE_MEAN_LOOK,
+ /*0x00d5*/ MOVE_ATTRACT,
+ /*0x00d6*/ MOVE_SLEEP_TALK,
+ /*0x00d7*/ MOVE_HEAL_BELL,
+ /*0x00d8*/ MOVE_RETURN,
+ /*0x00d9*/ MOVE_PRESENT,
+ /*0x00da*/ MOVE_FRUSTRATION,
+ /*0x00db*/ MOVE_SAFEGUARD,
+ /*0x00dc*/ MOVE_PAIN_SPLIT,
+ /*0x00dd*/ MOVE_SACRED_FIRE,
+ /*0x00de*/ MOVE_MAGNITUDE,
+ /*0x00df*/ MOVE_DYNAMIC_PUNCH,
+ /*0x00e0*/ MOVE_MEGAHORN,
+ /*0x00e1*/ MOVE_DRAGON_BREATH,
+ /*0x00e2*/ MOVE_BATON_PASS,
+ /*0x00e3*/ MOVE_ENCORE,
+ /*0x00e4*/ MOVE_PURSUIT,
+ /*0x00e5*/ MOVE_RAPID_SPIN,
+ /*0x00e6*/ MOVE_SWEET_SCENT,
+ /*0x00e7*/ MOVE_IRON_TAIL,
+ /*0x00e8*/ MOVE_METAL_CLAW,
+ /*0x00e9*/ MOVE_VITAL_THROW,
+ /*0x00ea*/ MOVE_MORNING_SUN,
+ /*0x00eb*/ MOVE_SYNTHESIS,
+ /*0x00ec*/ MOVE_MOONLIGHT,
+ /*0x00ed*/ MOVE_HIDDEN_POWER,
+ /*0x00ee*/ MOVE_CROSS_CHOP,
+ /*0x00ef*/ MOVE_TWISTER,
+ /*0x00f0*/ MOVE_RAIN_DANCE,
+ /*0x00f1*/ MOVE_SUNNY_DAY,
+ /*0x00f2*/ MOVE_CRUNCH,
+ /*0x00f3*/ MOVE_MIRROR_COAT,
+ /*0x00f4*/ MOVE_PSYCH_UP,
+ /*0x00f5*/ MOVE_EXTREME_SPEED,
+ /*0x00f6*/ MOVE_ANCIENT_POWER,
+ /*0x00f7*/ MOVE_SHADOW_BALL,
+ /*0x00f8*/ MOVE_FUTURE_SIGHT,
+ /*0x00f9*/ MOVE_ROCK_SMASH,
+ /*0x00fa*/ MOVE_WHIRLPOOL,
+ /*0x00fb*/ MOVE_BEAT_UP,
+ /*0x00fc*/ MOVE_FAKE_OUT,
+ /*0x00fd*/ MOVE_UPROAR,
+ /*0x00fe*/ MOVE_STOCKPILE,
+ /*0x00ff*/ MOVE_SPIT_UP,
+ /*0x0100*/ MOVE_SWALLOW,
+ /*0x0101*/ MOVE_HEAT_WAVE,
+ /*0x0102*/ MOVE_HAIL,
+ /*0x0103*/ MOVE_TORMENT,
+ /*0x0104*/ MOVE_FLATTER,
+ /*0x0105*/ MOVE_WILL_O_WISP,
+ /*0x0106*/ MOVE_MEMENTO,
+ /*0x0107*/ MOVE_FACADE,
+ /*0x0108*/ MOVE_FOCUS_PUNCH,
+ /*0x0109*/ MOVE_SMELLING_SALT,
+ /*0x010a*/ MOVE_FOLLOW_ME,
+ /*0x010b*/ MOVE_NATURE_POWER,
+ /*0x010c*/ MOVE_CHARGE,
+ /*0x010d*/ MOVE_TAUNT,
+ /*0x010e*/ MOVE_HELPING_HAND,
+ /*0x010f*/ MOVE_TRICK,
+ /*0x0110*/ MOVE_ROLE_PLAY,
+ /*0x0111*/ MOVE_WISH,
+ /*0x0112*/ MOVE_ASSIST,
+ /*0x0113*/ MOVE_INGRAIN,
+ /*0x0114*/ MOVE_SUPERPOWER,
+ /*0x0115*/ MOVE_MAGIC_COAT,
+ /*0x0116*/ MOVE_RECYCLE,
+ /*0x0117*/ MOVE_REVENGE,
+ /*0x0118*/ MOVE_BRICK_BREAK,
+ /*0x0119*/ MOVE_YAWN,
+ /*0x011a*/ MOVE_KNOCK_OFF,
+ /*0x011b*/ MOVE_ENDEAVOR,
+ /*0x011c*/ MOVE_ERUPTION,
+ /*0x011d*/ MOVE_SKILL_SWAP,
+ /*0x011e*/ MOVE_IMPRISON,
+ /*0x011f*/ MOVE_REFRESH,
+ /*0x0120*/ MOVE_GRUDGE,
+ /*0x0121*/ MOVE_SNATCH,
+ /*0x0122*/ MOVE_SECRET_POWER,
+ /*0x0123*/ MOVE_DIVE,
+ /*0x0124*/ MOVE_ARM_THRUST,
+ /*0x0125*/ MOVE_CAMOUFLAGE,
+ /*0x0126*/ MOVE_TAIL_GLOW,
+ /*0x0127*/ MOVE_LUSTER_PURGE,
+ /*0x0128*/ MOVE_MIST_BALL,
+ /*0x0129*/ MOVE_FEATHER_DANCE,
+ /*0x012a*/ MOVE_TEETER_DANCE,
+ /*0x012b*/ MOVE_BLAZE_KICK,
+ /*0x012c*/ MOVE_MUD_SPORT,
+ /*0x012d*/ MOVE_ICE_BALL,
+ /*0x012e*/ MOVE_NEEDLE_ARM,
+ /*0x012f*/ MOVE_SLACK_OFF,
+ /*0x0130*/ MOVE_HYPER_VOICE,
+ /*0x0131*/ MOVE_POISON_FANG,
+ /*0x0132*/ MOVE_CRUSH_CLAW,
+ /*0x0133*/ MOVE_BLAST_BURN,
+ /*0x0134*/ MOVE_HYDRO_CANNON,
+ /*0x0135*/ MOVE_METEOR_MASH,
+ /*0x0136*/ MOVE_ASTONISH,
+ /*0x0137*/ MOVE_WEATHER_BALL,
+ /*0x0138*/ MOVE_AROMATHERAPY,
+ /*0x0139*/ MOVE_FAKE_TEARS,
+ /*0x013a*/ MOVE_AIR_CUTTER,
+ /*0x013b*/ MOVE_OVERHEAT,
+ /*0x013c*/ MOVE_ODOR_SLEUTH,
+ /*0x013d*/ MOVE_ROCK_TOMB,
+ /*0x013e*/ MOVE_SILVER_WIND,
+ /*0x013f*/ MOVE_METAL_SOUND,
+ /*0x0140*/ MOVE_GRASS_WHISTLE,
+ /*0x0141*/ MOVE_TICKLE,
+ /*0x0142*/ MOVE_COSMIC_POWER,
+ /*0x0143*/ MOVE_WATER_SPOUT,
+ /*0x0144*/ MOVE_SIGNAL_BEAM,
+ /*0x0145*/ MOVE_SHADOW_PUNCH,
+ /*0x0146*/ MOVE_EXTRASENSORY,
+ /*0x0147*/ MOVE_SKY_UPPERCUT,
+ /*0x0148*/ MOVE_SAND_TOMB,
+ /*0x0149*/ MOVE_SHEER_COLD,
+ /*0x014a*/ MOVE_MUDDY_WATER,
+ /*0x014b*/ MOVE_BULLET_SEED,
+ /*0x014c*/ MOVE_AERIAL_ACE,
+ /*0x014d*/ MOVE_ICICLE_SPEAR,
+ /*0x014e*/ MOVE_IRON_DEFENSE,
+ /*0x014f*/ MOVE_BLOCK,
+ /*0x0150*/ MOVE_HOWL,
+ /*0x0151*/ MOVE_DRAGON_CLAW,
+ /*0x0152*/ MOVE_FRENZY_PLANT,
+ /*0x0153*/ MOVE_BULK_UP,
+ /*0x0154*/ MOVE_BOUNCE,
+ /*0x0155*/ MOVE_MUD_SHOT,
+ /*0x0156*/ MOVE_POISON_TAIL,
+ /*0x0157*/ MOVE_COVET,
+ /*0x0158*/ MOVE_VOLT_TACKLE,
+ /*0x0159*/ MOVE_MAGICAL_LEAF,
+ /*0x015a*/ MOVE_WATER_SPORT,
+ /*0x015b*/ MOVE_CALM_MIND,
+ /*0x015c*/ MOVE_LEAF_BLADE,
+ /*0x015d*/ MOVE_DRAGON_DANCE,
+ /*0x015e*/ MOVE_ROCK_BLAST,
+ /*0x015f*/ MOVE_SHOCK_WAVE,
+ /*0x0160*/ MOVE_WATER_PULSE,
+ /*0x0161*/ MOVE_DOOM_DESIRE,
+ /*0x0162*/ MOVE_PSYCHO_BOOST,
};
#endif // GUARD_MOVES_H \ No newline at end of file
diff --git a/include/region_map_sections.h b/include/region_map_sections.h
new file mode 100755
index 000000000..3b7c5d9eb
--- /dev/null
+++ b/include/region_map_sections.h
@@ -0,0 +1,60 @@
+#ifndef GUARD_REGIONMAPSEC_H
+#define GUARD_REGIONMAPSEC_H
+
+enum
+{
+ MAPSEC_LittlerootTown, // 0x00
+ MAPSEC_OldaleTown, // 0x01
+ MAPSEC_DewfordTown, // 0x02
+ MAPSEC_LavaridgeTown, // 0x03
+ MAPSEC_FallarborTown, // 0x04
+ MAPSEC_VerdanturfTown, // 0x05
+ MAPSEC_PacifidlogTown, // 0x06
+ MAPSEC_PetalburgCity, // 0x07
+ MAPSEC_SlateportCity, // 0x08
+ MAPSEC_MauvilleCity, // 0x09
+ MAPSEC_RustboroCity, // 0x0A
+ MAPSEC_FortreeCity, // 0x0B
+ MAPSEC_LilycoveCity, // 0x0C
+ MAPSEC_MossdeepCity, // 0x0D
+ MAPSEC_SootopolisCity, // 0x0E
+ MAPSEC_EverGrandeCity, // 0x0F
+ MAPSEC_Route101, // 0x10
+ MAPSEC_Route102, // 0x11
+ MAPSEC_Route103, // 0x12
+ MAPSEC_Route104, // 0x13
+ MAPSEC_Route105, // 0x14
+ MAPSEC_Route106, // 0x15
+ MAPSEC_Route107, // 0x16
+ MAPSEC_Route108, // 0x17
+ MAPSEC_Route109, // 0x18
+ MAPSEC_Route110, // 0x19
+ MAPSEC_Route111, // 0x1A
+ MAPSEC_Route112, // 0x1B
+ MAPSEC_Route113, // 0x1C
+ MAPSEC_Route114, // 0x1D
+ MAPSEC_Route115, // 0x1E
+ MAPSEC_Route116, // 0x1F
+ MAPSEC_Route117, // 0x20
+ MAPSEC_Route118, // 0x21
+ MAPSEC_Route119, // 0x22
+ MAPSEC_Route120, // 0x23
+ MAPSEC_Route121, // 0x24
+ MAPSEC_Route122, // 0x25
+ MAPSEC_Route123, // 0x26
+ MAPSEC_Route124, // 0x27
+ MAPSEC_Route125, // 0x28
+ MAPSEC_Route126, // 0x29
+ MAPSEC_Route127, // 0x2A
+ MAPSEC_Route128, // 0x2B
+ MAPSEC_Route129, // 0x2C
+ MAPSEC_Route130, // 0x2D
+ MAPSEC_Route131, // 0x2E
+ MAPSEC_Route132, // 0x2F
+ MAPSEC_Route133, // 0x30
+ MAPSEC_Route134, // 0x31
+ MAPSEC_MtChimney, // 0x38
+ MAPSEC_Nothing, // 0x58
+};
+
+#endif // GUARD_REGIONMAPSEC_H
diff --git a/include/text_window.h b/include/text_window.h
index afd645540..7df1453ca 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -5,8 +5,8 @@
struct FrameGraphics
{
- u8 *tiles;
- u16 *palette;
+ const u8 *tiles;
+ const u16 *palette;
};
u16 SetTextWindowBaseTileNum(u16 baseTileNum);
diff --git a/include/tv.h b/include/tv.h
index a933e1779..0f355043c 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -18,8 +18,6 @@ enum
TVSHOW_MASS_OUTBREAK = 41,
};
-extern u8 *const gUnknown_083D1464[3];
-
void ClearTVShowData(void);
u8 sub_80BDEAC(u8 *);
void sub_80BE028(void);
diff --git a/ld_script.txt b/ld_script.txt
index e699cacf6..e5c6508ee 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -158,7 +158,13 @@ SECTIONS {
src/script_pokemon_util_80C4BF0.o(.text);
src/field/field_poison.o(.text);
src/pokemon/pokemon_size_record.o(.text);
- asm/fldeff_80C5CD4.o(.text);
+ asm/pc_screen_effect.o(.text);
+ asm/fldeff_secretpower.o(.text);
+ asm/fldeff_pc.o(.text);
+ asm/fldeff_decoration.o(.text);
+ asm/fldeff_poison.o(.text);
+ asm/fldeff_berrytree.o(.text);
+ asm/fldeff_recordmixing.o(.text);
src/field/field_special_scene.o(.text);
src/field/rotating_gate.o(.text);
src/field/safari_zone.o(.text);
@@ -312,7 +318,7 @@ SECTIONS {
src/engine/string_util.o(.rodata);
src/engine/link.o(.rodata);
src/engine/rtc.o(.rodata);
- data/main_menu.o(.rodata);
+ src/engine/main_menu.o(.rodata);
data/data2a.o(.rodata);
src/battle/battle_4.o(.rodata);
src/battle/battle_controller_player.o(.rodata);
@@ -337,21 +343,21 @@ SECTIONS {
data/maps.o(.rodata);
src/field/fieldmap.o(.rodata);
src/field/metatile_behavior.o(.rodata);
- data/field_door.o(.rodata);
+ src/field/field_door.o(.rodata);
src/field/field_player_avatar.o(.rodata);
src/field/field_map_obj.o(.rodata);
src/field/field_ground_effect.o(.rodata);
data/field_map_obj_helpers.o(.rodata);
- data/text_window.o(.rodata);
+ src/engine/text_window.o(.rodata);
src/engine/script.o(.rodata);
src/field/scrcmd.o(.rodata);
src/field/coord_event_weather.o(.rodata);
src/field/field_tasks.o(.rodata);
- data/reset_rtc_screen.o(.rodata);
+ src/engine/reset_rtc_screen.o(.rodata);
src/field/party_menu.o(.rodata);
src/field/start_menu.o(.rodata);
src/engine/menu.o(.rodata);
- data/tileset_anim.o(.rodata);
+ src/engine/tileset_anim.o(.rodata);
src/engine/palette.o(.rodata);
src/engine/sound.o(.rodata);
data/battle_anim.o(.rodata);
@@ -366,8 +372,8 @@ SECTIONS {
data/field_weather.o(.rodata);
src/field/field_screen_effect.o(.rodata);
src/battle/battle_setup.o(.rodata);
- data/cable_club.o(.rodata);
- data/mori_debug_menu.o(.rodata);
+ src/engine/cable_club.o(.rodata);
+ src/debug/mori_debug_menu.o(.rodata);
src/field/trainer_see.o(.rodata);
data/trainer_see.o(.rodata);
src/field/wild_encounter.o(.rodata);
@@ -385,23 +391,26 @@ SECTIONS {
src/field/item_menu.o(.rodata);
data/battle_anim_80A7E7C.o(.rodata);
src/field/item.o(.rodata);
- data/matsuda_debug_menu.o(.rodata);
+ src/debug/matsuda_debug_menu.o(.rodata);
data/contest.o(.rodata);
src/field/shop.o(.rodata);
src/field/berry.o(.rodata);
src/field/script_menu.o(.rodata);
src/engine/naming_screen.o(.rodata);
data/naming_screen.o(.rodata);
- data/money.o(.rodata);
+ src/field/money.o(.rodata);
data/contest_effect.o(.rodata);
src/engine/record_mixing.o(.data);
src/engine/record_mixing.o(.rodata);
src/debug/sound_check_menu.o(.rodata);
src/field/secret_base.o(.rodata);
- data/tv.o(.rodata);
+ src/field/tv.o(.rodata);
data/contest_link_80C2020.o(.rodata);
src/pokemon/pokemon_size_record.o(.rodata);
- data/fldeff_80C5CD4.o(.rodata);
+ data/pc_screen_effect.o(.rodata);
+ data/fldeff_secretpower.o(.rodata);
+ data/fldeff_decoration.o(.rodata);
+ data/fldeff_recordmixing.o(.rodata);
src/field/field_special_scene.o(.rodata);
src/field/rotating_gate.o(.rodata);
src/field/item_use.o(.rodata);
@@ -424,7 +433,7 @@ SECTIONS {
src/field/starter_choose.o(.rodata);
src/field/wallclock.o(.rodata);
src/field/pokeblock.o(.rodata);
- data/fldeff_flash.o(.rodata);
+ src/field/fldeff_flash.o(.rodata);
src/engine/time_events.o(.rodata);
src/field/field_specials.o(.rodata);
data/pokedex_area_screen.o(.rodata);
@@ -434,7 +443,7 @@ SECTIONS {
data/landmark.o(.rodata);
src/battle/battle_transition.o(.rodata);
src/battle/battle_controller_linkpartner.o(.rodata);
- data/battle_message.o(.rodata);
+ src/battle/battle_message.o(.rodata);
src/field/choose_party.o(.rodata);
data/cable_car.o(.rodata);
src/engine/save.o(.rodata);
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 6f3be7804..cff81396d 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -81,7 +81,7 @@ extern u8 gBattleTextBuff3[];
extern u8 gLeveledUpInBattle;
extern void (*gBattleMainFunc)(void);
extern struct Window gUnknown_03004210;
-extern const u8 gUnknown_08400D7A[];
+extern const u8 BattleText_YesNo[];
extern u8 gPlayerPartyCount;
extern u16 gMoveToLearn; //move to learn
extern const u8 gTrainerMoney[];
@@ -10952,7 +10952,7 @@ void atk59_learnmove_inbattle(void)
void sub_8023A80(void)
{
sub_802BBD4(0x18, 8, 0x1D, 0xD, 0);
- InitWindow(&gUnknown_03004210, gUnknown_08400D7A, 0x100, 0x19, 0x9);
+ InitWindow(&gUnknown_03004210, BattleText_YesNo, 0x100, 0x19, 0x9);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
}
@@ -11660,7 +11660,7 @@ static void atk6C_lvlbox_display(void)
{
case 0:
sub_802BBD4(0xB, 0, 0x1D, 0x7, r1);
- StringCopy(gStringVar4, gUnknown_08400D9F);
+ StringCopy(gStringVar4, BattleText_Format2);
}
}
@@ -11670,7 +11670,7 @@ __attribute__((naked))
static void atk6C_lvlbox_display(void)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
+ push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
@@ -11713,7 +11713,7 @@ _0802493E:\n\
movs r3, 0x7\n\
bl sub_802BBD4\n\
ldr r0, _0802499C @ =gStringVar4\n\
- ldr r1, _080249A0 @ =gUnknown_08400D9F\n\
+ ldr r1, _080249A0 @ =BattleText_Format2\n\
bl StringCopy\n\
adds r5, r0, 0\n\
movs r1, 0\n\
@@ -11752,7 +11752,7 @@ _0802495A:\n\
mov pc, r0\n\
.align 2, 0\n\
_0802499C: .4byte gStringVar4\n\
-_080249A0: .4byte gUnknown_08400D9F\n\
+_080249A0: .4byte BattleText_Format2\n\
_080249A4: .4byte gUnknown_0840165C\n\
_080249A8: .4byte gSharedMem\n\
_080249AC: .4byte 0x00016018\n\
@@ -11832,13 +11832,13 @@ _08024A2C:\n\
mov r0, r9\n\
cmp r0, 0\n\
beq _08024A5C\n\
- ldr r1, _08024A58 @ =gUnknown_08400DAC\n\
+ ldr r1, _08024A58 @ =BattleText_Dash\n\
b _08024A5E\n\
.align 2, 0\n\
_08024A54: .4byte gSharedMem + 0x17180\n\
-_08024A58: .4byte gUnknown_08400DAC\n\
+_08024A58: .4byte BattleText_Dash\n\
_08024A5C:\n\
- ldr r1, _08024AA4 @ =gUnknown_08400DAA\n\
+ ldr r1, _08024AA4 @ =BattleText_Plus\n\
_08024A5E:\n\
adds r0, r5, 0\n\
bl StringCopy\n\
@@ -11874,7 +11874,7 @@ _08024A5E:\n\
adds r5, 0x1\n\
b _08024AB8\n\
.align 2, 0\n\
-_08024AA4: .4byte gUnknown_08400DAA\n\
+_08024AA4: .4byte BattleText_Plus\n\
_08024AA8:\n\
strb r6, [r5]\n\
movs r0, 0x11\n\
@@ -11921,7 +11921,7 @@ _08024AFE:\n\
movs r0, 0x5\n\
bl PlaySE\n\
ldr r0, _08024B98 @ =gStringVar4\n\
- ldr r1, _08024B9C @ =gUnknown_08400D9F\n\
+ ldr r1, _08024B9C @ =BattleText_Format2\n\
bl StringCopy\n\
adds r5, r0, 0\n\
movs r0, 0\n\
@@ -11992,7 +11992,7 @@ _08024B1C:\n\
.align 2, 0\n\
_08024B94: .4byte gMain\n\
_08024B98: .4byte gStringVar4\n\
-_08024B9C: .4byte gUnknown_08400D9F\n\
+_08024B9C: .4byte BattleText_Format2\n\
_08024BA0: .4byte 0x00016018\n\
_08024BA4: .4byte gUnknown_0840165C\n\
_08024BA8: .4byte gPlayerParty\n\
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 1aa73e90c..f2004c9b7 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -78,9 +78,9 @@ extern u16 gUnknown_030042C0;
extern u8 gUnknown_03004344;
extern u8 gUnknown_0300434C[];
-extern const u8 gUnknown_08400CA8[];
-extern const u8 gUnknown_08400CF3[];
-extern const u8 gUnknown_08400D38[];
+extern const u8 BattleText_OtherMenu[];
+extern const u8 BattleText_MenuOptions[];
+extern const u8 BattleText_PP[];
extern void sub_802C68C(void);
extern void sub_802E1B0(void);
@@ -152,7 +152,7 @@ extern u16 gBattlePartyID[];
extern u16 gUnknown_030042A0;
extern u16 gUnknown_030042A4;
extern struct Window gUnknown_03004210;
-extern const u8 gUnknown_08400D89[];
+extern const u8 BattleText_SwitchWhich[];
extern u8 gUnknown_03004348;
extern struct BattlePokemon gBattleMons[];
extern MainCallback gPreBattleCallback1;
@@ -164,7 +164,7 @@ extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_02038470[];
extern u16 gScriptItemId;
extern u8 gDisplayedStringBattle[];
-extern const u8 gUnknown_08400CE0[];
+extern const u8 BattleText_LinkStandby[];
extern void dp11b_obj_instanciate(u8, u8, s8, s8);
extern u8 GetBankIdentity(u8);
@@ -746,15 +746,14 @@ void sub_802C68C(void)
gUnknown_03004344 = gMoveSelectionCursor[gActiveBank] + 1;
sub_802E3B4(gUnknown_03004344, 27);
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D89, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
gBattleBankFunc[gActiveBank] = sub_802CA60;
}
}
}
-extern const u8 gUnknown_08400D49[];
-extern const u8 gUnknown_08400D38[];
+extern const u8 BattleText_Format[];
void sub_802CA60(void)
{
@@ -850,13 +849,13 @@ void sub_802CA60(void)
}
else
{
- sub_802E12C(gUnknown_03004344, gUnknown_08400D49);
+ sub_802E12C(gUnknown_03004344, BattleText_Format);
}
gBattleBankFunc[gActiveBank] = sub_802C68C;
gMoveSelectionCursor[gActiveBank] = gUnknown_03004344;
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
@@ -866,10 +865,10 @@ void sub_802CA60(void)
PlaySE(SE_SELECT);
nullsub_7(gUnknown_03004344);
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
- sub_802E12C(gMoveSelectionCursor[gActiveBank], gUnknown_08400D49);
+ sub_802E12C(gMoveSelectionCursor[gActiveBank], BattleText_Format);
gBattleBankFunc[gActiveBank] = sub_802C68C;
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
sub_8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
@@ -1578,7 +1577,7 @@ void sub_802E1B0(void)
for (i = 0; i < 4; i++)
{
nullsub_7(i);
- sub_802E12C(i, gUnknown_08400D49);
+ sub_802E12C(i, BattleText_Format);
if (r4->moves[i] != 0)
gUnknown_03004348++;
}
@@ -1591,7 +1590,7 @@ void sub_802E220(void)
struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4];
u8 *str = gDisplayedStringBattle;
- str = StringCopy(str, gUnknown_08400D49);
+ str = StringCopy(str, BattleText_Format);
str[0] = EXT_CTRL_CODE_BEGIN;
str[1] = 0x11;
str[2] = 2;
@@ -1608,7 +1607,7 @@ void sub_802E220(void)
}
}
-extern const u8 gUnknown_08400D52[];
+extern const u8 BattleText_ForgetMove[];
extern const u8 gTypeNames[][7];
void sub_802E2D4(void)
@@ -1616,14 +1615,14 @@ void sub_802E2D4(void)
if (gBattleBufferA[gActiveBank][2] == 1)
{
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gUnknown_08400D52, 0x290, 0x13, 0x37);
+ InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37);
}
else
{
struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4];
u8 *str = gDisplayedStringBattle;
- str = StringCopy(str, gUnknown_08400D49);
+ str = StringCopy(str, BattleText_Format);
StringCopy(str, gTypeNames[gBattleMoves[r4->moves[gMoveSelectionCursor[gActiveBank]]].type]);
FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x39, 0x1C, 0x3A);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2C0, 0x17, 0x39);
@@ -1699,7 +1698,7 @@ void b_link_standby_message(void)
{
gUnknown_030042A4 = 0;
gUnknown_030042A0 = 0;
- sub_8002EB0(&gUnknown_03004210, gUnknown_08400CE0, 0x90, 2, 15);
+ sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15);
}
}
@@ -2587,7 +2586,7 @@ void PlayerHandlecmd18(void)
gBattleBankFunc[gActiveBank] = sub_802C098;
- InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
@@ -2596,7 +2595,7 @@ void PlayerHandlecmd18(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CA8);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
}
@@ -2621,7 +2620,7 @@ void sub_80304A8(void)
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
if (gBattleBufferA[gActiveBank][2] != 1)
{
- InitWindow(&gUnknown_03004210, gUnknown_08400D38, 656, 23, 55);
+ InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55);
sub_8002F44(&gUnknown_03004210);
}
sub_802E220();
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index 5b89cf9ba..8a8515fc7 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -18,9 +18,9 @@ extern struct Window gUnknown_03004210;
extern u8 gDisplayedStringBattle[];
extern u8 gActionSelectionCursor[];
-extern const u8 gUnknown_08400CBB[];
+extern const u8 BattleText_PlayerMenu[];
extern u8 gActiveBank;
-extern const u8 gUnknown_08400D15[];
+extern const u8 BattleText_MenuOptionsSafari[];
extern void *gBattleBankFunc[];
extern u16 gUnknown_030042A0;
@@ -476,7 +476,7 @@ void SafariHandlecmd18(void)
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2;
- InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
@@ -484,7 +484,7 @@ void SafariHandlecmd18(void)
nullsub_8(i);
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CBB);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 9392832d7..05fd8e583 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -57,8 +57,8 @@ extern struct Window gUnknown_03004210;
extern u16 gUnknown_030042A0;
extern u16 gUnknown_030042A4;
extern u8 gUnknown_0300434C[];
-extern const u8 gUnknown_08400CCC[];
-extern const u8 gUnknown_08400CF3[];
+extern const u8 BattleText_WallyMenu[];
+extern const u8 BattleText_MenuOptions[];
// TODO: include rom3.h when my other PR gets merged
extern void Emitcmd33(u8, u8, u16);
@@ -1269,13 +1269,13 @@ void WallyHandlecmd18(void)
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = sub_81372BC;
- InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35);
+ InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
sub_8002F44(&gUnknown_03004210);
sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
for (i = 0; i < 4; i++)
nullsub_8(i);
sub_802E3E4(0, 0);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CCC);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_WallyMenu);
#ifdef ENGLISH
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35);
#else
diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c
index 4e8067a49..eac92a78d 100644
--- a/src/battle/battle_message.c
+++ b/src/battle/battle_message.c
@@ -18,6 +18,136 @@
#define BATTLESTRINGS_NO 351
#define BATTLESTRINGS_MAX BATTLESTRINGS_NO + BATTLESTRING_TO_SUB
+#ifdef GERMAN
+#include "../data/battle_strings_de.h" // TODO: German
+#else
+#include "../data/battle_strings_en.h"
+#endif
+
+const u16 gUnknown_084016BC[] =
+{
+ MOVE_SWORDS_DANCE,
+ MOVE_STRENGTH,
+ MOVE_GROWTH,
+ MOVE_HARDEN,
+ MOVE_MINIMIZE,
+ MOVE_SMOKESCREEN,
+ MOVE_WITHDRAW,
+ MOVE_DEFENSE_CURL,
+ MOVE_EGG_BOMB,
+ MOVE_SMOG,
+ MOVE_BONE_CLUB,
+ MOVE_FLASH,
+ MOVE_SPLASH,
+ MOVE_ACID_ARMOR,
+ MOVE_BONEMERANG,
+ MOVE_REST,
+ MOVE_SHARPEN,
+ MOVE_SUBSTITUTE,
+ MOVE_MIND_READER,
+ MOVE_SNORE,
+ MOVE_PROTECT,
+ MOVE_SPIKES,
+ MOVE_ENDURE,
+ MOVE_ROLLOUT,
+ MOVE_SWAGGER,
+ MOVE_SLEEP_TALK,
+ MOVE_HIDDEN_POWER,
+ MOVE_PSYCH_UP,
+ MOVE_EXTREME_SPEED,
+ MOVE_FOLLOW_ME,
+ MOVE_TRICK,
+ MOVE_ASSIST,
+ MOVE_INGRAIN,
+ MOVE_KNOCK_OFF,
+ MOVE_CAMOUFLAGE,
+ MOVE_ASTONISH,
+ MOVE_ODOR_SLEUTH,
+ MOVE_GRASS_WHISTLE,
+ MOVE_SHEER_COLD,
+ MOVE_MUDDY_WATER,
+ MOVE_IRON_DEFENSE,
+ MOVE_BOUNCE,
+ MOVE_NONE,
+ MOVE_TELEPORT,
+ MOVE_RECOVER,
+ MOVE_BIDE,
+ MOVE_AMNESIA,
+ MOVE_FLAIL,
+ MOVE_TAUNT,
+ MOVE_BULK_UP,
+ MOVE_NONE,
+ MOVE_MEDITATE,
+ MOVE_AGILITY,
+ MOVE_MIMIC,
+ MOVE_DOUBLE_TEAM,
+ MOVE_BARRAGE,
+ MOVE_TRANSFORM,
+ MOVE_STRUGGLE,
+ MOVE_SCARY_FACE,
+ MOVE_CHARGE,
+ MOVE_WISH,
+ MOVE_BRICK_BREAK,
+ MOVE_YAWN,
+ MOVE_FEATHER_DANCE,
+ MOVE_TEETER_DANCE,
+ MOVE_MUD_SPORT,
+ MOVE_FAKE_TEARS,
+ MOVE_WATER_SPORT,
+ MOVE_CALM_MIND,
+ MOVE_NONE,
+ MOVE_POUND,
+ MOVE_SCRATCH,
+ MOVE_VICE_GRIP,
+ MOVE_WING_ATTACK,
+ MOVE_FLY,
+ MOVE_BIND,
+ MOVE_SLAM,
+ MOVE_HORN_ATTACK,
+ MOVE_WRAP,
+ MOVE_THRASH,
+ MOVE_TAIL_WHIP,
+ MOVE_LEER,
+ MOVE_BITE,
+ MOVE_GROWL,
+ MOVE_ROAR,
+ MOVE_SING,
+ MOVE_PECK,
+ MOVE_ABSORB,
+ MOVE_STRING_SHOT,
+ MOVE_EARTHQUAKE,
+ MOVE_FISSURE,
+ MOVE_DIG,
+ MOVE_TOXIC,
+ MOVE_SCREECH,
+ MOVE_METRONOME,
+ MOVE_LICK,
+ MOVE_CLAMP,
+ MOVE_CONSTRICT,
+ MOVE_POISON_GAS,
+ MOVE_BUBBLE,
+ MOVE_SLASH,
+ MOVE_SPIDER_WEB,
+ MOVE_NIGHTMARE,
+ MOVE_CURSE,
+ MOVE_FORESIGHT,
+ MOVE_CHARM,
+ MOVE_ATTRACT,
+ MOVE_ROCK_SMASH,
+ MOVE_UPROAR,
+ MOVE_SPIT_UP,
+ MOVE_SWALLOW,
+ MOVE_TORMENT,
+ MOVE_FLATTER,
+ MOVE_ROLE_PLAY,
+ MOVE_ENDEAVOR,
+ MOVE_TICKLE,
+ MOVE_COVET,
+ MOVE_NONE,
+};
+
+const u8 gUnknown_084017A8[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // empty flags
+
extern const u8* const gBattleStringsTable[BATTLESTRINGS_NO];
extern u16 gLastUsedItem;
@@ -44,67 +174,6 @@ extern u16 gBattlePartyID[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gBattleBufferA[4][0x200];
-extern const u8 gUnknown_084005DB[];
-extern const u8 gUnknown_084005C7[];
-extern const u8 gUnknown_084005AA[];
-extern const u8 gUnknown_08400568[];
-extern const u8 gUnknown_08400590[];
-extern const u8 gUnknown_0840057B[];
-extern const u8 gUnknown_08400555[];
-extern const u8 gUnknown_084006F1[];
-extern const u8 gUnknown_084006A4[];
-extern const u8 gUnknown_0840069C[];
-extern const u8 gUnknown_0840065C[];
-extern const u8 gUnknown_08400645[];
-extern const u8 gUnknown_08400608[];
-extern const u8 gUnknown_08400635[];
-extern const u8 gUnknown_084005F5[];
-extern const u8 gUnknown_08400709[];
-extern const u8 gUnknown_08400727[];
-extern const u8 gUnknown_08400736[];
-extern const u8 gUnknown_08400749[];
-extern const u8 gUnknown_08400781[];
-extern const u8 gUnknown_08400771[];
-extern const u8 gUnknown_0840075E[];
-extern const u8 gUnknown_084006B3[];
-extern const u8 gUnknown_084006BB[];
-extern const u8 gUnknown_084006C6[];
-extern const u8 gUnknown_084006D5[];
-extern const u8 gUnknown_0840068C[];
-extern const u8 gUnknown_0840067C[];
-extern const u8 gUnknown_08400622[];
-extern const u8 gUnknown_084007BD[];
-extern const u8 gUnknown_083FFEFC[];
-extern const u8 gUnknown_083FFFF7[];
-extern const u8 gUnknown_083FFFEA[];
-extern const u8 gUnknown_083FFF6A[];
-extern const u8 gUnknown_083FFF99[];
-extern const u8 gUnknown_083FFFCB[];
-extern const u8 gUnknown_083FFF56[];
-extern const u8 gUnknown_083FFF81[];
-extern const u8 gUnknown_083FFFB3[];
-extern const u8 gUnknown_08400A78[];
-extern const u8 gUnknown_08400A85[];
-extern const u8 gUnknown_08400797[];
-extern const u8 gUnknown_08400791[];
-extern const u8 gUnknown_084007B7[];
-extern const u8 gUnknown_084007B2[];
-extern const u8 gUnknown_0840079C[];
-extern const u8 gUnknown_084007A1[];
-extern const u8 gUnknown_084007A7[];
-extern const u8 gUnknown_084007AC[];
-extern const u8 gUnknown_084009ED[];
-extern const u8 gUnknown_084009F7[];
-extern const u8 gUnknown_084007C8[];
-extern const u8 gUnknown_084007CA[];
-extern const u8 gUnknown_084007CC[];
-extern const u8 gUnknown_084007CE[];
-extern const u8 gUnknown_084007D0[];
-extern const u8 gUnknown_08400E5E[];
-extern const u8 gUnknown_08400E62[];
-
-extern const u16 gUnknown_084016BC[]; // a table of moves
-
extern const u8* const gUnknown_08401674[]; // table of pointers to 'a -TYPE' strings
extern const u8* const gUnknown_08400F58[]; // table of pointers to stat strings
extern const u8* const gUnknown_08400F78[]; // table of pointers to flavour strings
@@ -116,7 +185,6 @@ struct StatusFlagString
};
extern const struct StatusFlagString gUnknown_081FA6D4[7]; // status flag/text
-extern const u8 gUnknown_084017A8[8]; // empty flags
extern struct StringInfoBattle* gSelectedOrderFromParty;
#define gStringInfo gSelectedOrderFromParty
@@ -168,13 +236,13 @@ void BufferStringBattle(u16 stringID)
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_084005DB;
+ stringPtr = BattleText_DoubleWantToBattle;
else
- stringPtr = gUnknown_084005C7;
+ stringPtr = BattleText_SingleWantToBattle2;
}
else
{
- stringPtr = gUnknown_084005AA;
+ stringPtr = BattleText_SingleWantToBattle1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -183,13 +251,13 @@ void BufferStringBattle(u16 stringID)
else
{
if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
- stringPtr = gUnknown_08400568;
+ stringPtr = BattleText_WildAppeared2;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles
- stringPtr = gUnknown_08400590;
+ stringPtr = BattleText_WildDoubleAppeared;
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
- stringPtr = gUnknown_0840057B;
+ stringPtr = BattleText_WildAppeared3;
else
- stringPtr = gUnknown_08400555;
+ stringPtr = BattleText_WildAppeared1;
}
break;
case 1: // poke first send-out
@@ -198,34 +266,34 @@ void BufferStringBattle(u16 stringID)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_084006F1;
+ stringPtr = BattleText_SentOutSingle11;
else
- stringPtr = gUnknown_084006A4;
+ stringPtr = BattleText_SentOutDouble4;
}
else
- stringPtr = gUnknown_0840069C;
+ stringPtr = BattleText_SentOutSingle6;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_0840065C;
+ stringPtr = BattleText_SentOutDouble3;
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- stringPtr = gUnknown_08400645;
+ stringPtr = BattleText_SentOutDouble2;
else
{
- stringPtr = gUnknown_08400608;
+ stringPtr = BattleText_SentOutDouble1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
}
}
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- stringPtr = gUnknown_08400635;
+ stringPtr = BattleText_SentOutSingle3;
else
{
- stringPtr = gUnknown_084005F5;
+ stringPtr = BattleText_SentOutSingle1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -236,26 +304,26 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(gActiveBank) == 0)
{
if (BATTLE_STRUCT->hpScale == 0)
- stringPtr = gUnknown_08400709;
+ stringPtr = BattleText_ComeBackSingle1;
else if (BATTLE_STRUCT->hpScale == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- stringPtr = gUnknown_08400727;
+ stringPtr = BattleText_ComeBackSingle2;
else if (BATTLE_STRUCT->hpScale == 2)
- stringPtr = gUnknown_08400736;
+ stringPtr = BattleText_ComeBackSingle3;
else
- stringPtr = gUnknown_08400749;
+ stringPtr = BattleText_ComeBackSingle4;
}
else
{
if (gTrainerBattleOpponent == 0x800)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_08400781;
+ stringPtr = BattleText_WithdrewPoke3;
else
- stringPtr = gUnknown_08400771;
+ stringPtr = BattleText_WithdrewPoke2;
}
else
{
- stringPtr = gUnknown_0840075E;
+ stringPtr = BattleText_WithdrewPoke1;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -266,26 +334,26 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(BATTLE_STRUCT->scriptingActive) == 0)
{
if (BATTLE_STRUCT->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- stringPtr = gUnknown_084006B3;
+ stringPtr = BattleText_SentOutSingle7;
else if (BATTLE_STRUCT->hpScale == 1)
- stringPtr = gUnknown_084006BB;
+ stringPtr = BattleText_SentOutSingle8;
else if (BATTLE_STRUCT->hpScale == 2)
- stringPtr = gUnknown_084006C6;
+ stringPtr = BattleText_SentOutSingle9;
else
- stringPtr = gUnknown_084006D5;
+ stringPtr = BattleText_SentOutSingle10;
}
else
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_0840068C;
+ stringPtr = BattleText_SentOutSingle5;
else
- stringPtr = gUnknown_0840067C;
+ stringPtr = BattleText_SentOutSingle4;
}
else
{
- stringPtr = gUnknown_08400622;
+ stringPtr = BattleText_SentOutSingle2;
#ifdef GERMAN
stringPtr = de_sub_804110C(0xFFFF, stringPtr);
#endif
@@ -299,7 +367,7 @@ void BufferStringBattle(u16 stringID)
else
StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]);
sub_8121D74(gBattleTextBuff2);
- stringPtr = gUnknown_084007BD;
+ stringPtr = BattleText_OpponentUsedMove;
break;
case 5: // battle end
if (gBattleTextBuff1[0] & 0x80)
@@ -308,13 +376,13 @@ void BufferStringBattle(u16 stringID)
if (GetBankSide(gActiveBank) == 1 && gBattleTextBuff1[0] != 3)
gBattleTextBuff1[0] ^= 3;
if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW)
- stringPtr = gUnknown_083FFEFC;
+ stringPtr = BattleText_GotAwaySafely;
else
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- stringPtr = gUnknown_083FFFF7;
+ stringPtr = BattleText_FledDouble;
else
- stringPtr = gUnknown_083FFFEA;
+ stringPtr = BattleText_FledSingle;
}
}
else
@@ -326,13 +394,13 @@ void BufferStringBattle(u16 stringID)
switch (gBattleTextBuff1[0])
{
case BATTLE_WON:
- stringPtr = gUnknown_083FFF6A;
+ stringPtr = BattleText_PlayerDefeatedTrainers;
break;
case BATTLE_LOST:
- stringPtr = gUnknown_083FFF99;
+ stringPtr = BattleText_PlayerLostTrainers;
break;
case BATTLE_DREW:
- stringPtr = gUnknown_083FFFCB;
+ stringPtr = BattleText_PlayerTiedTrainers;
break;
}
}
@@ -341,13 +409,13 @@ void BufferStringBattle(u16 stringID)
switch (gBattleTextBuff1[0])
{
case BATTLE_WON:
- stringPtr = gUnknown_083FFF56;
+ stringPtr = BattleText_PlayerDefeatedTrainer;
break;
case BATTLE_LOST:
- stringPtr = gUnknown_083FFF81;
+ stringPtr = BattleText_PlayerLostTrainer;
break;
case BATTLE_DREW:
- stringPtr = gUnknown_083FFFB3;
+ stringPtr = BattleText_PlayerTiedTrainer;
break;
}
}
@@ -414,9 +482,9 @@ extern u8 *de_sub_8041024(s32, u32);
if (GetBankSide(bank) != 0) \
{ \
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \
- toCpy = gUnknown_08400797; \
+ toCpy = BattleText_Foe; \
else \
- toCpy = gUnknown_08400791; \
+ toCpy = BattleText_Wild; \
while (*toCpy != EOS) \
{ \
dst[dstID] = *toCpy; \
@@ -445,9 +513,9 @@ extern u8 *de_sub_8041024(s32, u32);
toCpy++; \
} \
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \
- toCpy = gUnknown_08400797; \
+ toCpy = BattleText_Foe; \
else \
- toCpy = gUnknown_08400791; \
+ toCpy = BattleText_Wild; \
} \
else \
{ \
@@ -590,14 +658,14 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
{
StringCopy(text, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
- StringAppend(text, gUnknown_08400A85);
+ StringAppend(text, BattleText_Berry);
#else
- de_sub_8073174(text, gUnknown_08400A85);
+ de_sub_8073174(text, BattleText_Berry);
#endif
toCpy = text;
}
else
- toCpy = gUnknown_08400A78;
+ toCpy = BattleText_EnigmaBerry;
}
else
{
@@ -694,45 +762,45 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
break;
case 35: // lanette pc
if (FlagGet(SYS_PC_LANETTE))
- toCpy = gUnknown_084009F7;
+ toCpy = BattleText_Lanette;
else
- toCpy = gUnknown_084009ED;
+ toCpy = BattleText_Someone;
break;
case 38:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007AC;
+ toCpy = BattleText_Ally2;
else
- toCpy = gUnknown_084007A7;
+ toCpy = BattleText_Foe3;
break;
case 39:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007AC;
+ toCpy = BattleText_Ally2;
else
- toCpy = gUnknown_084007A7;
+ toCpy = BattleText_Foe3;
break;
case 36:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007A1;
+ toCpy = BattleText_Ally;
else
- toCpy = gUnknown_0840079C;
+ toCpy = BattleText_Foe2;
break;
case 37:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007A1;
+ toCpy = BattleText_Ally;
else
- toCpy = gUnknown_0840079C;
+ toCpy = BattleText_Foe2;
break;
case 40:
if (GetBankSide(gBankAttacker) == 0)
- toCpy = gUnknown_084007B7;
+ toCpy = BattleText_Ally3;
else
- toCpy = gUnknown_084007B2;
+ toCpy = BattleText_Foe4;
break;
case 41:
if (GetBankSide(gBankTarget) == 0)
- toCpy = gUnknown_084007B7;
+ toCpy = BattleText_Ally3;
else
- toCpy = gUnknown_084007B2;
+ toCpy = BattleText_Foe4;
break;
}
//if (toCpy != NULL) really GF, why did you forget about this?
@@ -819,9 +887,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
else
{
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
- StringAppend(dst, gUnknown_08400797);
+ StringAppend(dst, BattleText_Foe);
else
- StringAppend(dst, gUnknown_08400791);
+ StringAppend(dst, BattleText_Wild);
GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
}
StringGetEnd10(text);
@@ -839,9 +907,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
StringGetEnd10(text);
StringAppend(dst, text);
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
- StringAppend(dst, gUnknown_08400797);
+ StringAppend(dst, BattleText_Foe);
else
- StringAppend(dst, gUnknown_08400791);
+ StringAppend(dst, BattleText_Wild);
}
#endif
srcID += 3;
@@ -881,13 +949,13 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
{
StringCopy(dst, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
- StringAppend(dst, gUnknown_08400A85);
+ StringAppend(dst, BattleText_Berry);
#else
- de_sub_8073174(dst, gUnknown_08400A85);
+ de_sub_8073174(dst, BattleText_Berry);
#endif
}
else
- StringAppend(dst, gUnknown_08400A78);
+ StringAppend(dst, BattleText_EnigmaBerry);
}
else
CopyItemName(hword, dst);
@@ -917,9 +985,9 @@ void sub_8121D1C(u8* textBuff)
if (counter >= 0)
{
if (counter <= 2)
- StringCopy(textBuff, gUnknown_08400E5E); // is
+ StringCopy(textBuff, BattleText_Format10); // is
else if (counter <= 4)
- StringCopy(textBuff, gUnknown_08400E62); // 's
+ StringCopy(textBuff, BattleText_Format11); // 's
}
}
@@ -942,19 +1010,19 @@ void sub_8121D74(u8* dst)
switch (counter)
{
case 0:
- StringCopy(dst, gUnknown_084007C8);
+ StringCopy(dst, BattleText_Exclamation2);
break;
case 1:
- StringCopy(dst, gUnknown_084007CA);
+ StringCopy(dst, BattleText_Exclamation3);
break;
case 2:
- StringCopy(dst, gUnknown_084007CC);
+ StringCopy(dst, BattleText_Exclamation4);
break;
case 3:
- StringCopy(dst, gUnknown_084007CE);
+ StringCopy(dst, BattleText_Exclamation5);
break;
case 4:
- StringCopy(dst, gUnknown_084007D0);
+ StringCopy(dst, BattleText_Exclamation);
break;
}
}
diff --git a/src/data/battle_strings_de.h b/src/data/battle_strings_de.h
new file mode 100755
index 000000000..5289ce4e0
--- /dev/null
+++ b/src/data/battle_strings_de.h
@@ -0,0 +1,1612 @@
+#include "moves.h"
+
+enum
+{
+ BATTLE_TEXT_UnknownString = 12,
+ BATTLE_TEXT_GainExpPoints,
+ BATTLE_TEXT_GrewLevel,
+ BATTLE_TEXT_LearnedMove,
+ BATTLE_TEXT_TryingToLearnMove,
+ BATTLE_TEXT_CantLearnMore,
+ BATTLE_TEXT_DeleteMove,
+ BATTLE_TEXT_DeletedMove,
+ BATTLE_TEXT_StopLearning,
+ BATTLE_TEXT_DidNotLearn,
+ BATTLE_TEXT_LearnedMove2,
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_StatNoHigher,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_AttackingFainted,
+ BATTLE_TEXT_DefendingFainted,
+ BATTLE_TEXT_WinningPrize,
+ BATTLE_TEXT_OutOfUsablePoke,
+ BATTLE_TEXT_WhitedOut,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_HitMulti,
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+ BATTLE_TEXT_DefendingAsleep,
+ BATTLE_TEXT_AttackingAsleep,
+ BATTLE_TEXT_WasntAffected,
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+ BATTLE_TEXT_PoisonHurt,
+ BATTLE_TEXT_AlreadyPoisoned,
+ BATTLE_TEXT_BadlyPoisoned,
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+ BATTLE_TEXT_BurnHurt,
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+ BATTLE_TEXT_FrozenSolid,
+ BATTLE_TEXT_DefendingDefrosted,
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+ BATTLE_TEXT_Paralyzed3,
+ BATTLE_TEXT_AlreadyParalyzed,
+ BATTLE_TEXT_ParalysisHealed,
+ BATTLE_TEXT_DreamEaten,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_StoppedWorking,
+ BATTLE_TEXT_StoppedWorking2,
+ BATTLE_TEXT_Confused,
+ BATTLE_TEXT_ConfusionSnapOut,
+ BATTLE_TEXT_BecameConfused,
+ BATTLE_TEXT_AlreadyConfused,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InLoveWith,
+ BATTLE_TEXT_ImmobilizedBy,
+ BATTLE_TEXT_BlownAway,
+ BATTLE_TEXT_TypeTransform,
+ BATTLE_TEXT_Flinched,
+ BATTLE_TEXT_RegainedHealth,
+ BATTLE_TEXT_HPFull,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_CoveredVeil,
+ BATTLE_TEXT_SafeguardActive,
+ BATTLE_TEXT_SafeguardFaded,
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_HurtBy,
+ BATTLE_TEXT_FreedFrom,
+ BATTLE_TEXT_KeptGoingCrash,
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_MistProtect,
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_HitRecoil,
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_FastAsleep,
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarAwake,
+ BATTLE_TEXT_UproarWoke,
+ BATTLE_TEXT_UproarCaused,
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+ BATTLE_TEXT_UproarCantSleep,
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+ BATTLE_TEXT_StoringEnergy,
+ BATTLE_TEXT_UnleashedEnergy,
+ BATTLE_TEXT_FatigueConfuse,
+ BATTLE_TEXT_PickedUpYen,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubAlready,
+ BATTLE_TEXT_SubTookDamage,
+ BATTLE_TEXT_SubFaded,
+ BATTLE_TEXT_MustRecharge,
+ BATTLE_TEXT_RageBuilding,
+ BATTLE_TEXT_MoveWasDisabled,
+ BATTLE_TEXT_MoveIsDisabled,
+ BATTLE_TEXT_DisabledNoMore,
+ BATTLE_TEXT_EncoreGot,
+ BATTLE_TEXT_EncoreEnded,
+ BATTLE_TEXT_TookAim,
+ BATTLE_TEXT_SketchedMove,
+ BATTLE_TEXT_DestinyBondTake,
+ BATTLE_TEXT_DestinyBondTaken,
+ BATTLE_TEXT_ReducedBy,
+ BATTLE_TEXT_StoleSomething,
+ BATTLE_TEXT_CantEscapeNow,
+ BATTLE_TEXT_NightmareStart,
+ BATTLE_TEXT_NightmareLock,
+ BATTLE_TEXT_CurseLay,
+ BATTLE_TEXT_CurseAfflict,
+ BATTLE_TEXT_SpikesScattered,
+ BATTLE_TEXT_SpikesHurt,
+ BATTLE_TEXT_IdentifiedPoke,
+ BATTLE_TEXT_PerishSongFell,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_EnduredHit,
+ BATTLE_TEXT_MagnitudeCount,
+ BATTLE_TEXT_CutHPMaxATK,
+ BATTLE_TEXT_CopyStatChanges,
+ BATTLE_TEXT_GotFreeFrom,
+ BATTLE_TEXT_LeechShed,
+ BATTLE_TEXT_SpikesBlownAway,
+ BATTLE_TEXT_FledBattle,
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_TookAttack,
+ BATTLE_TEXT_PokeAttack,
+ BATTLE_TEXT_CenterAttention,
+ BATTLE_TEXT_ChargingPower,
+ BATTLE_TEXT_NaturePower,
+ BATTLE_TEXT_StatusNormal,
+ BATTLE_TEXT_NoMovesLeft,
+ BATTLE_TEXT_TormentSubject,
+ BATTLE_TEXT_TormentNoUse,
+ BATTLE_TEXT_TightenFocus,
+ BATTLE_TEXT_TauntFell,
+ BATTLE_TEXT_TauntNoUse,
+ BATTLE_TEXT_ReadyToHelp,
+ BATTLE_TEXT_SwitchedItems,
+ BATTLE_TEXT_CopiedObject,
+ BATTLE_TEXT_WishMade,
+ BATTLE_TEXT_WishTrue,
+ BATTLE_TEXT_PlantedRoots,
+ BATTLE_TEXT_AbsorbNutrients,
+ BATTLE_TEXT_AnchoredItself,
+ BATTLE_TEXT_DrowsyMade,
+ BATTLE_TEXT_KnockedOffItem,
+ BATTLE_TEXT_AbilitySwap,
+ BATTLE_TEXT_SealedMove,
+ BATTLE_TEXT_SealedNoUse,
+ BATTLE_TEXT_GrudgeBear,
+ BATTLE_TEXT_GrudgeLosePP,
+ BATTLE_TEXT_ShroudedItself,
+ BATTLE_TEXT_MagicCoatBounce,
+ BATTLE_TEXT_AwaitMove,
+ BATTLE_TEXT_SnatchedMove,
+ BATTLE_TEXT_RainMade,
+ BATTLE_TEXT_SpeedRisen,
+ BATTLE_TEXT_ProtectedBy,
+ BATTLE_TEXT_PreventedBy,
+ BATTLE_TEXT_HPRestoredUsing,
+ BATTLE_TEXT_MadeType,
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedRomance,
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedConfusion,
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_AnchorsItself,
+ BATTLE_TEXT_CutsAttack,
+ BATTLE_TEXT_PreventedStatLoss,
+ BATTLE_TEXT_HurtOther,
+ BATTLE_TEXT_Traced,
+ BATTLE_TEXT_Sharply,
+ BATTLE_TEXT_Rose,
+ BATTLE_TEXT_Harshly,
+ BATTLE_TEXT_Fell,
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_Critical,
+ BATTLE_TEXT_GrandSlam,
+ BATTLE_TEXT_MoveForget123,
+ BATTLE_TEXT_MoveForgetAnd,
+ BATTLE_TEXT_NotEffective,
+ BATTLE_TEXT_SuperEffective,
+ BATTLE_TEXT_GotAwaySafely,
+ BATTLE_TEXT_FledWild,
+ BATTLE_TEXT_NoRunning,
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_Nothing,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_HurtItself,
+ BATTLE_TEXT_MirrorFail,
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_SunFaded,
+ BATTLE_TEXT_HailStart,
+ BATTLE_TEXT_HailCont,
+ BATTLE_TEXT_HailStop,
+ BATTLE_TEXT_SpitUpFail,
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_WindHeatWave,
+ BATTLE_TEXT_StatElim,
+ BATTLE_TEXT_CoinScatter,
+ BATTLE_TEXT_SubWeak,
+ BATTLE_TEXT_PainSplit,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_PerishSong,
+ BATTLE_TEXT_NoPP1,
+ BATTLE_TEXT_NoPP2,
+ BATTLE_TEXT_Used1,
+ BATTLE_TEXT_TutorialUsed,
+ BATTLE_TEXT_BlockBall,
+ BATTLE_TEXT_DontBeAThief,
+ BATTLE_TEXT_DodgeBall,
+ BATTLE_TEXT_MissPoke,
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+ BATTLE_TEXT_BallCaught1,
+ BATTLE_TEXT_BallCaught2,
+ BATTLE_TEXT_GiveNickname,
+ BATTLE_TEXT_SentToPC,
+ BATTLE_TEXT_AddedToDex,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_IgnoredOrdersSLP,
+ BATTLE_TEXT_IgnoredOrders,
+ BATTLE_TEXT_BeganNap,
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+ BATTLE_TEXT_WillSwitch,
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+ BATTLE_TEXT_WatchingCarefully,
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+ BATTLE_TEXT_ThrewBlock,
+ BATTLE_TEXT_SafariOver,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredSleep,
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_RestoredHealth,
+ BATTLE_TEXT_RestoredPP,
+ BATTLE_TEXT_RestoredStatus,
+ BATTLE_TEXT_RestoredHPLittle,
+ BATTLE_TEXT_ChoiceBand,
+ BATTLE_TEXT_FocusSash,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_BlocksOther,
+ BATTLE_TEXT_RestoredHPByItem,
+ BATTLE_TEXT_WhipSandstorm,
+ BATTLE_TEXT_PreventedLoss,
+ BATTLE_TEXT_InfatuatedPoke,
+ BATTLE_TEXT_MadeIneffective,
+ BATTLE_TEXT_CuredProblem,
+ BATTLE_TEXT_OozeSuckup,
+ BATTLE_TEXT_Transformed2,
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+ BATTLE_TEXT_CantForgetHM,
+ BATTLE_TEXT_FoundOne,
+ BATTLE_TEXT_PlayerDefeatedTrainer2,
+ BATTLE_TEXT_SoothingAroma,
+ BATTLE_TEXT_CantUseItems,
+ BATTLE_TEXT_UnknownString2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+ BATTLE_TEXT_MadeUseless,
+ BATTLE_TEXT_SandTombTrapped,
+ BATTLE_TEXT_Terminator,
+ BATTLE_TEXT_BoostedExp,
+ BATTLE_TEXT_SunIntensified,
+ BATTLE_TEXT_GroundMoveNegate,
+ BATTLE_TEXT_WallyBall,
+ BATTLE_TEXT_TookAttack2,
+ BATTLE_TEXT_ChoseDestiny,
+ BATTLE_TEXT_LostFocus,
+ BATTLE_TEXT_UseNext,
+ BATTLE_TEXT_FledUsingItem,
+ BATTLE_TEXT_FledUsingOther,
+ BATTLE_TEXT_DraggedOut,
+ BATTLE_TEXT_PreventedOther,
+ BATTLE_TEXT_NormalizedStatus,
+ BATTLE_TEXT_Used2,
+ BATTLE_TEXT_BoxFull,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_MadeIneffective2,
+ BATTLE_TEXT_PreventedFlinching,
+ BATTLE_TEXT_AlreadyBurned,
+ BATTLE_TEXT_StatNoLower,
+ BATTLE_TEXT_BlocksOther2,
+ BATTLE_TEXT_WoreOff,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_BrokeWall,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_CuredOfProblem,
+ BATTLE_TEXT_AttackingCantEscape,
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+ BATTLE_TEXT_NoEffect,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u8 BattleText_UnknownString[] = _("{STRING 33}");
+const u8 BattleText_GainExpPoints[] = _("{STRING 0} erhält{PLAYER}\n{STRING 42} E-Punkte!\p");
+const u8 BattleText_Terminator[] = _("");
+const u8 BattleText_BoostedExp[] = _(" spezielle");
+const u8 BattleText_GrewLevel[] = _("{STRING 0} erreicht\nLv. {PLAYER}!{UNKNOWN_A}\p");
+const u8 BattleText_LearnedMove[] = _("{STRING 0} erlernt\n{PLAYER}!{UNKNOWN_A}\p");
+const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} versucht,\n{PLAYER} zu lernen.\p");
+const u8 BattleText_CantLearnMore[] = _("Aber {STRING 0} kann nicht\nmehr als vier Attacken erlernen.\p");
+const u8 BattleText_DeleteMove[] = _("Soll eine Attacke zu Gunsten von\n{PLAYER} vergessen werden?");
+const u8 BattleText_DeletedMove[] = _("{STRING 0} hat\n{PLAYER} vergessen!\p");
+const u8 BattleText_StopLearning[] = _("{PAUSE 32}{PLAYER}\nnicht erlernen?");
+const u8 BattleText_DidNotLearn[] = _("{STRING 0} hat {PLAYER}\nnicht erlernt.\p");
+const u8 BattleText_UseNext[] = _("Nächstes POKéMON einsetzen?");
+const u8 BattleText_AttackMissed[] = _("Attacke von {EVIL_LEGENDARY}\nging daneben!");
+const u8 BattleText_ProtectedItself[] = _("{GOOD_LEGENDARY}\nschützt sich selbst!");
+const u8 BattleText_AvoidedDamage[] = _("{GOOD_LEGENDARY} vermeidet\nSchaden mit {STRING 22}!");
+const u8 BattleText_GroundMoveNegate[] = _("{GOOD_LEGENDARY} wehrt BODEN-\nAttacken mit {STRING 22} ab!");
+const u8 BattleText_AvoidedAttack[] = _("{GOOD_LEGENDARY} wehrt die\nAttacke ab!");
+const u8 BattleText_DoesntAffect[] = _("Es hat keine Wirkung auf\n{GOOD_LEGENDARY}...");
+const u8 BattleText_AttackingFainted[] = _("{EVIL_LEGENDARY}\nwurde besiegt!\p");
+const u8 BattleText_DefendingFainted[] = _("{GOOD_LEGENDARY}\nwurde besiegt!\p");
+const u8 BattleText_WinningPrize[] = _("{STRING 32} gewinnt ¥{STRING 0}!\p");
+const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} hat kein\nkampffähiges POKéMON mehr!\p");
+const u8 BattleText_WhitedOut[] = _("{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}");
+const u8 BattleText_PreventEscape[] = _("{STRING 16} verhindert\neine Flucht mit {STRING 23}!\p");
+const u8 BattleText_CantEscape[] = _("Flucht unmöglich!\p");
+const u8 BattleText_AttackingCantEscape[] = _("{EVIL_LEGENDARY}\nkann nicht fliehen!");
+const u8 BattleText_HitMulti[] = _("{STRING 0}-mal getroffen!");
+const u8 BattleText_FellAsleep[] = _("{STRING 14}\nist eingeschlafen!");
+const u8 BattleText_MadeAsleep[] = _("{STRING 23} von\n{STRING 16} lässt\l{STRING 14} einschlafen!");
+const u8 BattleText_DefendingAsleep[] = _("{GOOD_LEGENDARY} schläft\nbereits!");
+const u8 BattleText_AttackingAsleep[] = _("{EVIL_LEGENDARY} schläft\nbereits!");
+const u8 BattleText_WasntAffected[] = _("{GOOD_LEGENDARY}\nist unversehrt!");
+const u8 BattleText_Poisoned[] = _("{STRING 14}\nwurde vergiftet!");
+const u8 BattleText_Poisoned2[] = _("{STRING 23} von\n{STRING 16} vergiftete\l{STRING 14}!");
+const u8 BattleText_PoisonHurt[] = _("{EVIL_LEGENDARY} wurde durch\nGift verletzt!");
+const u8 BattleText_AlreadyPoisoned[] = _("{GOOD_LEGENDARY} ist bereits\nvergiftet.");
+const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} wurde schwer\nvergiftet!");
+const u8 BattleText_EnergyDrained[] = _("{GOOD_LEGENDARY} wurde\nEnergie abgesaugt!");
+const u8 BattleText_Burned[] = _("{STRING 14} brennt!");
+const u8 BattleText_Burned2[] = _("{STRING 23} von\n{STRING 16} verbrennt\l{STRING 14}!");
+const u8 BattleText_BurnHurt[] = _("Die Verbrennung schadet\n{EVIL_LEGENDARY}!");
+const u8 BattleText_AlreadyBurned[] = _("{GOOD_LEGENDARY} brennt\nbereits.");
+const u8 BattleText_Frozen[] = _("{STRING 14} erstarrt\nzu Eis!");
+const u8 BattleText_Frozen2[] = _("{STRING 14} wurde durch\n{STRING 23} von\l{STRING 16} eingefroren!");
+const u8 BattleText_FrozenSolid[] = _("{EVIL_LEGENDARY} ist\neingefroren!");
+const u8 BattleText_DefendingDefrosted[] = _("{GOOD_LEGENDARY} wurde\naufgetaut!");
+const u8 BattleText_AttackingDefrosted[] = _("{EVIL_LEGENDARY} wurde\naufgetaut!");
+const u8 BattleText_Defrosted[] = _("{EVIL_LEGENDARY} wurde\ndurch {STRING 17} aufgetaut!");
+const u8 BattleText_Paralyzed[] = _("{STRING 14} ist\nparalysiert! Es greift\leventuell nicht an!");
+const u8 BattleText_Paralyzed2[] = _("{STRING 23} von\n{STRING 16} paralysierte\p{STRING 14}!\nEs greift eventuell nicht an!");
+const u8 BattleText_Paralyzed3[] = _("{EVIL_LEGENDARY} ist\nparalysiert! Es kann\lnicht angreifen!");
+const u8 BattleText_AlreadyParalyzed[] = _("{GOOD_LEGENDARY} ist\nbereits paralysiert!");
+const u8 BattleText_ParalysisHealed[] = _("{GOOD_LEGENDARY} wurde von der\nParalyse geheilt!");
+const u8 BattleText_DreamEaten[] = _("Der Traum von {GOOD_LEGENDARY}\nwurde gefressen!");
+const u8 BattleText_AttackingStatNoHigher[] = _("{STRING 0} von\n{EVIL_LEGENDARY} kann nicht\lmehr erhöht werden!");
+const u8 BattleText_DefendingStatNoHigher[] = _("{STRING 0} von\n{GOOD_LEGENDARY} kann nicht\lweiter gesenkt werden!");
+const u8 BattleText_StoppedWorking[] = _("{STRING 0} in deinem Team\nfunktioniert nicht mehr!");
+const u8 BattleText_StoppedWorking2[] = _("{STRING 0} des Gegners\nfunktioniert nicht mehr!");
+const u8 BattleText_Confused[] = _("{EVIL_LEGENDARY} ist\nverwirrt!");
+const u8 BattleText_ConfusionSnapOut[] = _("{EVIL_LEGENDARY} ist nicht\nmehr verwirrt!");
+const u8 BattleText_BecameConfused[] = _("{STRING 14} wurde\nverwirrt!");
+const u8 BattleText_AlreadyConfused[] = _("{GOOD_LEGENDARY} ist\nbereits verwirrt!");
+const u8 BattleText_FellLove[] = _("{GOOD_LEGENDARY}\nhat sich verliebt!");
+const u8 BattleText_InLoveWith[] = _("{EVIL_LEGENDARY} hat sich in\n{STRING 16} verliebt!");
+const u8 BattleText_ImmobilizedBy[] = _("{EVIL_LEGENDARY} ist starr\nvor Liebe!");
+const u8 BattleText_BlownAway[] = _("{GOOD_LEGENDARY} wurde\nweggeweht!");
+const u8 BattleText_TypeTransform[] = _("{EVIL_LEGENDARY} verwandelt\nsich zu Typ {STRING 0}!");
+const u8 BattleText_Flinched[] = _("{EVIL_LEGENDARY} schreckt\nzurück!");
+const u8 BattleText_RegainedHealth[] = _("{GOOD_LEGENDARY} erholt sich!");
+const u8 BattleText_HPFull[] = _("{GOOD_LEGENDARY} hat alle KP!");
+const u8 BattleText_RaisedSpDef[] = _("{STRING 17} von\n{STRING 38} erhöht\ldie SP. VER.");
+const u8 BattleText_RaisedSpDefLittle[] = _("Die SP. VER. wird etwas durch\n{STRING 17} von\l{STRING 38} erhöht.");
+const u8 BattleText_RaisedDefense[] = _("{STRING 17} von\n{STRING 38}\lerhöht die VERTEIDIGUNG!");
+const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 17} von\n{STRING 38}\lerhöht etwas die VERTEIDIGUNG!");
+const u8 BattleText_CoveredVeil[] = _("{STRING 38} wird von\neinem Schleier umhüllt!");
+const u8 BattleText_SafeguardActive[] = _("{GOOD_LEGENDARY} wird durch\nBODYGUARD geschützt!");
+const u8 BattleText_SafeguardFaded[] = _("BODYGUARD von\n{STRING 40} lässt nach!");
+const u8 BattleText_WentToSleep[] = _("{EVIL_LEGENDARY} ist\neingeschlafen!");
+const u8 BattleText_SpeltHealthy[] = _("{EVIL_LEGENDARY} schläft und\nerholt sich!");
+const u8 BattleText_WhipWhirlwind[] = _("{EVIL_LEGENDARY} entfacht\neinen Wirbelwind!");
+const u8 BattleText_TookSunlight[] = _("{EVIL_LEGENDARY} absorbiert\nSonnenlicht!");
+const u8 BattleText_LoweredHead[] = _("{EVIL_LEGENDARY} zieht seinen\nKopf ein!");
+const u8 BattleText_IsGlowing[] = _("{EVIL_LEGENDARY} leuchtet!");
+const u8 BattleText_FlewHigh[] = _("{EVIL_LEGENDARY} fliegt\nhoch empor!");
+const u8 BattleText_DugHole[] = _("{EVIL_LEGENDARY} gräbt sich\nein!");
+const u8 BattleText_HidUnderwater[] = _("{EVIL_LEGENDARY} taucht\nunter!");
+const u8 BattleText_SprangUp[] = _("{EVIL_LEGENDARY} springt auf!");
+const u8 BattleText_SqueezedBind[] = _("{EVIL_LEGENDARY} setzt bei\n{GOOD_LEGENDARY}\lKLAMMERGRIFF ein!");
+const u8 BattleText_TrappedVortex[] = _("{GOOD_LEGENDARY} wurde in\neinem Strudel gefangen!");
+const u8 BattleText_SandTombTrapped[] = _("{GOOD_LEGENDARY} wurde durch\nSANDGRAB gefangen!");
+const u8 BattleText_Wrapped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} umWICKELt!");
+const u8 BattleText_Clamped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} geSCHNAPPT!");
+const u8 BattleText_HurtBy[] = _("{EVIL_LEGENDARY} wurde durch\n{STRING 0} verletzt!");
+const u8 BattleText_FreedFrom[] = _("{EVIL_LEGENDARY} wurde von\n{STRING 0} befreit!");
+const u8 BattleText_KeptGoingCrash[] = _("{EVIL_LEGENDARY} macht weiter\nund bricht zusammen!");
+const u8 BattleText_MistShroud[] = _("{STRING 38} wird in\nWEISSNEBEL gehüllt!");
+const u8 BattleText_MistProtect[] = _("{STRING 16} wird durch\nWEISSNEBEL geschützt!");
+const u8 BattleText_GetPumped[] = _("{EVIL_LEGENDARY} pumpt\nsich auf!");
+const u8 BattleText_HitRecoil[] = _("{EVIL_LEGENDARY} wurde vom\nRückstoß getroffen!");
+const u8 BattleText_ProtectedItself2[] = _("{EVIL_LEGENDARY} schützt\nsich selbst!");
+const u8 BattleText_SandBuffeted[] = _("{EVIL_LEGENDARY} wird vom\nSandsturm getroffen!");
+const u8 BattleText_HailStricken[] = _("{EVIL_LEGENDARY} wird vom\nHAGELSTURM getroffen!");
+const u8 BattleText_WoreOff[] = _("{STRING 0} von\n{STRING 36} lässt nach!");
+const u8 BattleText_WasSeeded[] = _("{GOOD_LEGENDARY} wurde\nbepflanzt!");
+const u8 BattleText_EvadedAttack[] = _("{GOOD_LEGENDARY} ist\nausgewichen!");
+const u8 BattleText_HealthSapped[] = _("EGELSAMEN schadet\n{EVIL_LEGENDARY}!");
+const u8 BattleText_FastAsleep[] = _("{EVIL_LEGENDARY} schläft tief\nund fest.");
+const u8 BattleText_WokeUp[] = _("{EVIL_LEGENDARY} ist\naufgewacht!");
+const u8 BattleText_UproarAwake[] = _("AUFRUHR von {STRING 16}\nhält es wach!");
+const u8 BattleText_UproarWoke[] = _("{EVIL_LEGENDARY} wird durch\nAUFRUHR wach!");
+const u8 BattleText_UproarCaused[] = _("{EVIL_LEGENDARY} verursacht\nAUFRUHR!");
+const u8 BattleText_UproarMaking[] = _("{EVIL_LEGENDARY} macht\neinen AUFRUHR!");
+const u8 BattleText_CalmedDown[] = _("{EVIL_LEGENDARY}\nberuhigt sich.");
+const u8 BattleText_UproarCantSleep[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!");
+const u8 BattleText_Stockpiled[] = _("{EVIL_LEGENDARY} HORTET\n{STRING 0}!");
+const u8 BattleText_StockpiledCant[] = _("{EVIL_LEGENDARY} kann nicht\nweiter HORTEN!");
+const u8 BattleText_UproarCantSleep2[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!");
+const u8 BattleText_UproarKeptAwake[] = _("Aber der AUFRUHR hält\n{GOOD_LEGENDARY} wach!");
+const u8 BattleText_StayedAwake[] = _("{GOOD_LEGENDARY} hält sich mit\n{STRING 22} wach!");
+const u8 BattleText_StoringEnergy[] = _("{EVIL_LEGENDARY} speichert\nEnergie!");
+const u8 BattleText_UnleashedEnergy[] = _("{EVIL_LEGENDARY} erzeugt\nEnergie!");
+const u8 BattleText_FatigueConfuse[] = _("{EVIL_LEGENDARY} ist vor\nErschöpfung verwirrt!");
+const u8 BattleText_PickedUpYen[] = _("{STRING 32} hebt\n¥{STRING 0} auf!\p");
+const u8 BattleText_Unaffected[] = _("{GOOD_LEGENDARY} ist\nunversehrt!");
+const u8 BattleText_Transformed[] = _("{EVIL_LEGENDARY} verwandelt\nsich in {STRING 0}!");
+const u8 BattleText_SubMade[] = _("{EVIL_LEGENDARY} setzt einen\nDELEGATOR ein!");
+const u8 BattleText_SubAlready[] = _("{EVIL_LEGENDARY} hat bereits\neinen DELEGATOR!");
+const u8 BattleText_SubTookDamage[] = _("Der DELEGATOR steckt den\nSchlag für {GOOD_LEGENDARY}\lein!\p");
+const u8 BattleText_SubFaded[] = _("DELEGATOR von\n{GOOD_LEGENDARY} lässt nach!\p");
+const u8 BattleText_MustRecharge[] = _("{EVIL_LEGENDARY} muss sich\nwieder aufladen!");
+const u8 BattleText_RageBuilding[] = _("{GOOD_LEGENDARY} verfällt in\nRASEREI!");
+const u8 BattleText_MoveWasDisabled[] = _("{STRING 0} von\n{GOOD_LEGENDARY}\lwurde blockiert!");
+const u8 BattleText_DisabledNoMore[] = _("{EVIL_LEGENDARY} ist nicht\nmehr blockiert!");
+const u8 BattleText_EncoreGot[] = _("{GOOD_LEGENDARY} gibt\neine ZUGABE!");
+const u8 BattleText_EncoreEnded[] = _("ZUGABE von {EVIL_LEGENDARY}\nist beendet!");
+const u8 BattleText_TookAim[] = _("{EVIL_LEGENDARY} zielt\nauf {GOOD_LEGENDARY}!");
+const u8 BattleText_SketchedMove[] = _("{EVIL_LEGENDARY} setzt\nNACHAHMER bei {STRING 0} ein!");
+const u8 BattleText_DestinyBondTake[] = _("{EVIL_LEGENDARY} versucht den\nGegner mit sich zu nehmen!");
+const u8 BattleText_DestinyBondTaken[] = _("{GOOD_LEGENDARY} nimmt\n{EVIL_LEGENDARY} mit sich!");
+const u8 BattleText_ReducedBy[] = _("{STRING 0} von\n{GOOD_LEGENDARY} wird um\l{PLAYER} reduziert!");
+const u8 BattleText_StoleSomething[] = _("{EVIL_LEGENDARY} stiehlt\n{STRING 19} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_CantEscapeNow[] = _("{GOOD_LEGENDARY} kann\nnicht fliehen!");
+const u8 BattleText_NightmareStart[] = _("{GOOD_LEGENDARY} bekommt\nNACHTMAHR!");
+const u8 BattleText_NightmareLock[] = _("{EVIL_LEGENDARY} ist in\nNACHTMAHR gefangen!");
+const u8 BattleText_CurseLay[] = _("{EVIL_LEGENDARY} nimmt einen\nTeil seiner KP und legt einen\lFLUCH auf {GOOD_LEGENDARY}!");
+const u8 BattleText_CurseAfflict[] = _("{EVIL_LEGENDARY} wurde durch\nFLUCH verletzt!");
+const u8 BattleText_SpikesScattered[] = _("POKéMON-Team von {STRING 37}\nverteilt STACHELN um sich!");
+const u8 BattleText_SpikesHurt[] = _("{STRING 16} wurde durch\nSTACHLER verletzt!");
+const u8 BattleText_IdentifiedPoke[] = _("{EVIL_LEGENDARY} erkennt\n{GOOD_LEGENDARY}!");
+const u8 BattleText_PerishSongFell[] = _("ABGESANG von {EVIL_LEGENDARY}\nsteht bei {STRING 0}!");
+const u8 BattleText_BracedItself[] = _("{EVIL_LEGENDARY} macht sich\nbereit!");
+const u8 BattleText_EnduredHit[] = _("{GOOD_LEGENDARY} setzt\nAUSDAUER ein!");
+const u8 BattleText_MagnitudeCount[] = _("INTENSITÄT {STRING 0}!");
+const u8 BattleText_CutHPMaxATK[] = _("{EVIL_LEGENDARY} nutzt seine\nKP und hebt den ANGR-Wert!");
+const u8 BattleText_CopyStatChanges[] = _("{EVIL_LEGENDARY} kopiert die\nStatusveränderungen\lvon {GOOD_LEGENDARY}!");
+const u8 BattleText_GotFreeFrom[] = _("{EVIL_LEGENDARY} befreit\nsich von {STRING 0}\lvon {GOOD_LEGENDARY}!");
+const u8 BattleText_LeechShed[] = _("{EVIL_LEGENDARY} befreit sich\nvon EGELSAMEN!");
+const u8 BattleText_SpikesBlownAway[] = _("{EVIL_LEGENDARY} blies den\nSTACHLER weg!");
+const u8 BattleText_FledBattle[] = _("{EVIL_LEGENDARY} ist\ngeflüchtet!");
+const u8 BattleText_ForesawAttack[] = _("{EVIL_LEGENDARY} sah eine\nAttacke voraus!");
+const u8 BattleText_TookAttack[] = _("{GOOD_LEGENDARY} wurde von\nder Attacke {STRING 0} getroffen!");
+const u8 BattleText_ChoseDestiny[] = _("{EVIL_LEGENDARY} wählte\n{STRING 17} als Vorhersehung aus!");
+const u8 BattleText_PokeAttack[] = _("Angriff von {STRING 0}!");
+const u8 BattleText_CenterAttention[] = _("{EVIL_LEGENDARY} zieht alle\nAufmerksamkeit auf sich!");
+const u8 BattleText_ChargingPower[] = _("{EVIL_LEGENDARY} lädt\nsich auf!");
+const u8 BattleText_NaturePower[] = _("NATUR-KRAFT wurde zu\n{STRING 17}!");
+const u8 BattleText_StatusNormal[] = _("Status von {EVIL_LEGENDARY}\nwird normal!");
+const u8 BattleText_TormentSubject[] = _("{GOOD_LEGENDARY} wird von\nFOLTERKNECHT unterworfen!");
+const u8 BattleText_TightenFocus[] = _("{EVIL_LEGENDARY} verstärkt\nseinen Fokus!");
+const u8 BattleText_TauntFell[] = _("{GOOD_LEGENDARY} fällt auf\nVERHÖHNER herein!");
+const u8 BattleText_ReadyToHelp[] = _("{EVIL_LEGENDARY} will\n{GOOD_LEGENDARY} helfen!");
+const u8 BattleText_SwitchedItems[] = _("{EVIL_LEGENDARY} tauscht\nItems mit anderem PKMN!");
+const u8 BattleText_Obtained1[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}.");
+const u8 BattleText_Obtained2[] = _("{GOOD_LEGENDARY} erhält\n{PLAYER}.");
+const u8 BattleText_Obtained3[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}.\p{GOOD_LEGENDARY} erhält\n{PLAYER}.");
+const u8 BattleText_CopiedObject[] = _("{EVIL_LEGENDARY}\nkopiert {STRING 22} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_WishMade[] = _("{EVIL_LEGENDARY} spricht einen\nWUNSCHTRAUM aus!");
+const u8 BattleText_WishTrue[] = _("WUNSCHTRAUM von\n{STRING 0} erfüllt sich!");
+const u8 BattleText_PlantedRoots[] = _("{EVIL_LEGENDARY} pflanzt seine\nWurzeln!");
+const u8 BattleText_AbsorbNutrients[] = _("{EVIL_LEGENDARY} nimmt über\nseine Wurzeln Nährstoffe auf!");
+const u8 BattleText_AnchoredItself[] = _("{GOOD_LEGENDARY}\nverankert sich mit seinen Wurzeln!");
+const u8 BattleText_DrowsyMade[] = _("{EVIL_LEGENDARY} macht\n{GOOD_LEGENDARY} schläfrig!");
+const u8 BattleText_KnockedOffItem[] = _("{EVIL_LEGENDARY}\nentreißt {STRING 19} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_AbilitySwap[] = _("{EVIL_LEGENDARY} tauscht die\nFähigkeiten mit einem PKMN!");
+const u8 BattleText_SealedMove[] = _("{EVIL_LEGENDARY} versiegelt\ndie Attacke/n des Gegners!");
+const u8 BattleText_GrudgeBear[] = _("{EVIL_LEGENDARY} möchte, dass\nder Gegner ein NACHSPIEL erträgt!");
+const u8 BattleText_GrudgeLosePP[] = _("{STRING 0} von\n{EVIL_LEGENDARY} hat aufgrund\lvon NACHSPIEL alle AP verloren!");
+const u8 BattleText_ShroudedItself[] = _("{EVIL_LEGENDARY} verhüllt sich\nselbst in {STRING 17}!");
+const u8 BattleText_MagicCoatBounce[] = _("{STRING 17} von\n{EVIL_LEGENDARY} prallte am\lMAGIEMANTEL ab!");
+const u8 BattleText_AwaitMove[] = _("{EVIL_LEGENDARY} wartet auf\neine gegnerische Attacke!");
+const u8 BattleText_SnatchedMove[] = _("{GOOD_LEGENDARY} ÜBERNAHM\nAttacke von {STRING 16}!");
+const u8 BattleText_ElecWeakened[] = _("Die Stärke der Elektrizität\nwurde geschwächt!");
+const u8 BattleText_FireWeakened[] = _("Die Stärke des Feuers\nwurde geschwächt!");
+const u8 BattleText_FoundOne[] = _("{EVIL_LEGENDARY} hat 1\n{STRING 19} gefunden!");
+const u8 BattleText_SoothingAroma[] = _("Ein wohltuendes Aroma\nbreitet sich aus!");
+const u8 BattleText_CantUseItems[] = _("Hier können Items nicht eingesetzt\nwerden.{PAUSE 64}");
+const u8 BattleText_UnknownString2[] = _("Für {STRING 16} war\n{STRING 19} {STRING 0}");
+const u8 BattleText_HustleUse[] = _("{STRING 16} setzt\n{STRING 19} ein, um zu drängeln!");
+const u8 BattleText_LostFocus[] = _("{EVIL_LEGENDARY} hat seinen\nFokus verloren und kann\lnicht angreifen!");
+const u8 BattleText_DraggedOut[] = _("{GOOD_LEGENDARY} wurde\nauserwählt!\p");
+const u8 BattleText_BrokeWall[] = _("Die Mauer brach zusammen!");
+const u8 BattleText_NoEffect[] = _("Es ist wirkungslos!");
+const u8 BattleText_NoMovesLeft[] = _("{STRING 15} hat keine\nAttacken mehr übrig!\p");
+const u8 BattleText_MoveIsDisabled[] = _("{STRING 17} von\n{STRING 15} ist blockiert!\p");
+const u8 BattleText_TormentNoUse[] = _("{STRING 15} kann\naufgrund von FOLTERKNECHT\pdie Attacke nicht 2-mal\nhintereinander einsetzen!");
+const u8 BattleText_TauntNoUse[] = _("{STRING 15} kann\n{STRING 17} nach VERHÖHNER\lnicht einsetzen!\p");
+const u8 BattleText_SealedNoUse[] = _("{STRING 15} kann die ver-\nsiegelte Attacke {STRING 17}\lnicht einsetzen!\p");
+const u8 BattleText_RainMade[] = _("{STRING 23} von\n{STRING 16} lässt\les regnen!");
+const u8 BattleText_SpeedRisen[] = _("{STRING 23} von\n{STRING 16} erhöht\lseine INIT.!");
+const u8 BattleText_ProtectedBy[] = _("{GOOD_LEGENDARY} wurde durch\n{STRING 22} geschützt!");
+const u8 BattleText_PreventedBy[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hindert\p{EVIL_LEGENDARY} daran,\n{STRING 17} einzusetzen!");
+const u8 BattleText_HPRestoredUsing[] = _("{GOOD_LEGENDARY} füllt KP mit\nHilfe von {STRING 22} auf!");
+const u8 BattleText_MadeUseless[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hebt die\lWirkung von {STRING 17} auf!");
+const u8 BattleText_MadeType[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht es zu\leinem {STRING 0}-Typ!");
+const u8 BattleText_PreventedPara[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Paralyse!");
+const u8 BattleText_PreventedRomance[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\leine Romanze!");
+const u8 BattleText_PreventedPoison[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Vergiftung!");
+const u8 BattleText_PreventedConfusion[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\lVerwirrung!");
+const u8 BattleText_RaisedFirePower[] = _("{STRING 22} von\n{GOOD_LEGENDARY} erhöht die\lFEUER-Kraft!");
+const u8 BattleText_AnchorsItself[] = _("{GOOD_LEGENDARY} verankert\nsich mit Hilfe von {STRING 22}!");
+const u8 BattleText_CutsAttack[] = _("{STRING 23} von\n{STRING 16} vermindert\lANGRIFF von {GOOD_LEGENDARY}!");
+const u8 BattleText_PreventedStatLoss[] = _("{STRING 23} von\n{STRING 16} verhindert\lStatusveränderungen!");
+const u8 BattleText_HurtOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verletzt\l{EVIL_LEGENDARY}!");
+const u8 BattleText_Traced[] = _("FÄHRTE von\n{STRING 16}\perkennt {PLAYER}\nvon {STRING 0}!");
+const u8 BattleText_PreventedBurn[] = _("{STRING 24} von\n{STRING 14} verhindert\lVerbrennung!");
+const u8 BattleText_BlocksOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} blockiert\l{STRING 17}!");
+const u8 BattleText_BlocksOther2[] = _("{STRING 23} von\n{STRING 16} blockiert\l{STRING 17}!");
+const u8 BattleText_RestoredHPByItem[] = _("{STRING 21} von\n{EVIL_LEGENDARY} füllt\leinige KP auf!");
+const u8 BattleText_WhipSandstorm[] = _("{STRING 23} von\n{STRING 16} entfacht\leinen Sandsturm!");
+const u8 BattleText_SunIntensified[] = _("{STRING 23} von\n{STRING 16} intensiviert\ldie Sonnenstrahlen!");
+const u8 BattleText_PreventedLoss[] = _("{STRING 23} von\n{STRING 16} verhindert \lden Verlust von {STRING 0}!");
+const u8 BattleText_InfatuatedPoke[] = _("{EVIL_LEGENDARY} ist vernarrt\nin {STRING 22} von\l{GOOD_LEGENDARY}!");
+const u8 BattleText_MadeIneffective[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\l{STRING 17} wirkungslos!");
+const u8 BattleText_CuredProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!");
+const u8 BattleText_OozeSuckup[] = _("Es saugte\nKLOAKENSOSSE auf!");
+const u8 BattleText_Transformed2[] = _("{STRING 16}\nverwandelte sich!");
+const u8 BattleText_TookAttack2[] = _("{STRING 22} von\n{GOOD_LEGENDARY} übernahm\lden Angriff!");
+const u8 BattleText_PreventedSwitch[] = _("{STRING 20} von\n{STRING 0} verhindert\pWechsel!\p");
+const u8 BattleText_PreventedOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\p{STRING 0} von\n{STRING 16} wirkungslos!");
+const u8 BattleText_MadeIneffective2[] = _("{STRING 23} von\n{STRING 16} machte\les wirkungslos!");
+const u8 BattleText_PreventedFlinching[] = _("{STRING 24} von\n{STRING 14} verhindert\lein Zurückschrecken!");
+const u8 BattleText_PreventedOther2[] = _("{STRING 21} von\n{EVIL_LEGENDARY} macht\p{STRING 22} von\n{GOOD_LEGENDARY} wirkungslos!");
+const u8 BattleText_CuredOfProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!");
+const u8 BattleText_NoEffectOn[] = _("{STRING 23} von\n{STRING 16} hat keine\lWirkung auf {STRING 14}!");
+const u8 BattleText_Sharply[] = _("steigt stark!");
+const u8 BattleText_Rose[] = _("steigt.");
+const u8 BattleText_Harshly[] = _("sinkt stark!");
+const u8 BattleText_Fell[] = _("sinkt.");
+const u8 BattleText_UnknownString7[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString3[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString4[] = _("{STRING 19}: {STRING 0} von\n{STRING 16} {PLAYER}");
+const u8 BattleText_UnknownString5[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}");
+const u8 BattleText_UnknownString6[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}");
+const u8 BattleText_StatNoHigher[] = _("Status von {EVIL_LEGENDARY}\nkann nicht weiter erhöht werden!");
+const u8 BattleText_StatNoLower[] = _("Status von {GOOD_LEGENDARY}\nkann nicht weiter sinken!");
+const u8 BattleText_Critical[] = _("Ein Volltreffer!");
+const u8 BattleText_GrandSlam[] = _("Ein K.O.-Treffer!");
+const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p");
+const u8 BattleText_MoveForgetAnd[] = _("Und...\p");
+const u8 BattleText_CantForgetHM[] = _("VM-Attacken können jetzt \nnicht vergessen werden.\p");
+const u8 BattleText_NotEffective[] = _("Das ist nicht sehr effektiv...");
+const u8 BattleText_SuperEffective[] = _("Das ist sehr effektiv!");
+const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE 0x11 0x00}Du bist entkommen!\p");
+const u8 BattleText_FledUsingItem[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 19}!\p");
+const u8 BattleText_FledUsingOther[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 21}!\p");
+const u8 BattleText_FledWild[] = _("{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!");
+const u8 BattleText_PlayerDefeatedTrainer[] = _("Spieler besiegte\n{STRING 29}!");
+const u8 BattleText_PlayerDefeatedTrainers[] = _("Spieler besiegte\n{STRING 30} und {STRING 29}!");
+const u8 BattleText_PlayerLostTrainer[] = _("Spieler verlor gegen\n{STRING 29}!");
+const u8 BattleText_PlayerLostTrainers[] = _("Spieler verlor gegen\n{STRING 30} und {STRING 29}!");
+const u8 BattleText_PlayerTiedTrainer[] = _("Patt zwischen Spieler und\n{STRING 29}!");
+const u8 BattleText_PlayerTiedTrainers[] = _("Patt zwischen Spieler, {STRING 30}\nund {STRING 29}!");
+const u8 BattleText_FledSingle[] = _("{PLAY_SE 0x11 0x00}{STRING 29} floh!");
+const u8 BattleText_FledDouble[] = _("{PLAY_SE 0x11 0x00}{STRING 29} und\n{STRING 30} flohen!");
+const u8 BattleText_NoRunning[] = _("Du kannst aus TRAINER-Kämpfen\nnicht fliehen!\p");
+const u8 BattleText_CantEscape2[] = _("Flucht unmöglich!\p");
+const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRK: Du... Du kannst mich doch\nnicht einfach im Stich lassen!\p");
+const u8 BattleText_Nothing[] = _("Nichts geschieht!");
+const u8 BattleText_Failed[] = _("Es schlug fehl!");
+const u8 BattleText_HurtItself[] = _("Es hat sich vor Verwirrung\nselbst verletzt!");
+const u8 BattleText_MirrorFail[] = _("Der SPIEGELTRICK schlug fehl!");
+const u8 BattleText_RainStart[] = _("Es fängt an zu regnen!");
+const u8 BattleText_PourStart[] = _("Ein Wolkenbruch!");
+const u8 BattleText_RainCont1[] = _("Es regnet weiter.");
+const u8 BattleText_PourCont[] = _("Der Wolkenbruch hält an.");
+const u8 BattleText_RainStop[] = _("Es hat aufgehört zu regnen.");
+const u8 BattleText_SandBrewed[] = _("Ein Sandsturm kommt auf!");
+const u8 BattleText_SandRages[] = _("Der Sandsturm tobt.");
+const u8 BattleText_SandSubsided[] = _("Der Sandsturm legt sich.");
+const u8 BattleText_SunBright[] = _("Das Sonnenlicht wird stärker!");
+const u8 BattleText_SunStrong[] = _("Gleißendes Sonnenlicht!");
+const u8 BattleText_SunFaded[] = _("Das Sonnenlicht lässt nach!");
+const u8 BattleText_HailStart[] = _("Es fängt an zu hageln!");
+const u8 BattleText_HailCont[] = _("Es hagelt!");
+const u8 BattleText_HailStop[] = _("Es hat aufgehört zu hageln.");
+const u8 BattleText_SpitUpFail[] = _("Aber es konnte nichts\nENTFESSELN!");
+const u8 BattleText_SwallowFail[] = _("Aber es konnte nichts\nVERZEHREN!");
+const u8 BattleText_WindHeatWave[] = _("Der Wind wurde zu einer\nHITZEWELLE!");
+const u8 BattleText_StatElim[] = _("Alle Statusveränderungen wurden\nentfernt!");
+const u8 BattleText_CoinScatter[] = _("Es liegen überall Münzen verstreut!");
+const u8 BattleText_SubWeak[] = _("Zu schwach, um einen DELEGATOR\neinzusetzen!");
+const u8 BattleText_PainSplit[] = _("Die Kontrahenten teilen\nihr Leid!");
+const u8 BattleText_BellChime[] = _("Eine Glocke läutet!");
+const u8 BattleText_PerishSong[] = _("Alle betroffenen POKéMON werden\nin 3 Runden K.O. gehen!");
+const u8 BattleText_NoPP1[] = _("Es sind keine AP mehr für\ndiese Attacke übrig!\p");
+const u8 BattleText_NoPP2[] = _("Aber es waren keine AP mehr\nfür diese Attacke übrig!");
+const u8 BattleText_IgnoredOrdersSLP[] = _("{EVIL_LEGENDARY} ignoriert die\nBefehle. Es schläft!");
+const u8 BattleText_IgnoredOrders[] = _("{EVIL_LEGENDARY} ignoriert den\nBefehl!");
+const u8 BattleText_BeganNap[] = _("{EVIL_LEGENDARY} macht\nein Nickerchen!");
+const u8 BattleText_LoafingAround[] = _("{EVIL_LEGENDARY} faulenzt!");
+const u8 BattleText_WontObey[] = _("{EVIL_LEGENDARY} ist\nungehorsam!");
+const u8 BattleText_TurnedAway[] = _("{EVIL_LEGENDARY} wendet\nsich ab!");
+const u8 BattleText_NotNotice[] = _("{EVIL_LEGENDARY} gibt vor,\nnichts zu bemerken!");
+const u8 BattleText_WillSwitch[] = _("Als Nächstes wird {PLAYER} von\n{STRING 25} {STRING 26} eingesetzt.\pWird {STRING 32} das\nPOKéMON wechseln?");
+const u8 BattleText_LearnedMove2[] = _("{EVIL_LEGENDARY} hat\n{STRING 0} gelernt!");
+const u8 BattleText_PlayerDefeatedTrainer2[] = _("Spieler besiegte\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_CreptCloser[] = _("{STRING 32} schleicht sich näher an\n{STR_VAR_2} heran!");
+const u8 BattleText_CantGetCloser[] = _("{STRING 32} kann nicht näher herangehen!");
+const u8 BattleText_WatchingCarefully[] = _("{STR_VAR_2} beobachtet\nalles aufmerksam!");
+const u8 BattleText_CuriousAbout[] = _("{STR_VAR_2} ist\nneugierig auf {STRING 0}!");
+const u8 BattleText_EnthralledBy[] = _("{STR_VAR_2} ist begeistert\nvon {STRING 0}!");
+const u8 BattleText_IgnoredThing[] = _("{STR_VAR_2} ignoriert\n{STRING 0} völlig!");
+const u8 BattleText_ThrewBlock[] = _("{STRING 32} wirft {STR_VAR_2} einen\n{POKEBLOCK} zu!");
+const u8 BattleText_SafariOver[] = _("{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\nSAFARIBÄLLE mehr! Game over!\p");
+const u8 BattleText_WildAppeared1[] = _("Ein wildes {STR_VAR_2} erscheint!\p");
+const u8 BattleText_WildAppeared2[] = _("Ein wildes {STR_VAR_2} erscheint!\p");
+const u8 BattleText_WildAppeared3[] = _("Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}");
+const u8 BattleText_WildDoubleAppeared[] = _("Ein wildes {KUN} und\nein wildes {STR_VAR_2} erscheinen!\p");
+const u8 BattleText_SingleWantToBattle1[] = _("Eine Herausforderung von\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_SingleWantToBattle2[] = _("Eine Herausforderung von\n{STRING 29}!");
+const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} und {STRING 30}\nmöchten kämpfen!");
+const u8 BattleText_SentOutSingle1[] = _("{STR_VAR_2} wird von\n{STRING 25} {STRING 26} in den\lKampf geschickt!");
+const u8 BattleText_SentOutDouble1[] = _("{STR_VAR_2} und {KUN}\nwerden von\p{STRING 25} {STRING 26}\nin den Kampf geschickt!");
+const u8 BattleText_SentOutSingle2[] = _("{STRING 0} wird von\n{STRING 25} {STRING 26}\lin den Kampf geschickt!");
+const u8 BattleText_SentOutSingle3[] = _("{STRING 29} schickt\n{STR_VAR_2} in den Kampf!");
+const u8 BattleText_SentOutDouble2[] = _("{STRING 29} schickt\n{STR_VAR_2} und {KUN}!");
+const u8 BattleText_SentOutDouble3[] = _("{STRING 29} schickt\n{VERSION}!\p{STRING 30} schickt\n{GOOD_TEAM}!");
+const u8 BattleText_SentOutSingle4[] = _("{STRING 29} schickt\n{STRING 0}!");
+const u8 BattleText_SentOutSingle5[] = _("{STRING 31} schickt\n{STRING 0}!");
+const u8 BattleText_SentOutSingle6[] = _("Los! {STR_VAR_1}!");
+const u8 BattleText_SentOutDouble4[] = _("Los! {STR_VAR_1} und\n{STR_VAR_3}!");
+const u8 BattleText_SentOutSingle7[] = _("Los! {STRING 0}!");
+const u8 BattleText_SentOutSingle8[] = _("Du schaffst es! {STRING 0}!");
+const u8 BattleText_SentOutSingle9[] = _("Streng dich an, {STRING 0}!");
+const u8 BattleText_SentOutSingle10[] = _("Mach es fertig!\nLos, {STRING 0}!");
+const u8 BattleText_SentOutSingle11[] = _("{STRING 28} schickt\n{EVIL_TEAM}!\pLos! {RIVAL}!");
+const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, genug!\nKomm zurück!");
+const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, komm zurück!");
+const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, O.K.!\nKomm zurück!");
+const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, gut!\nKomm zurück!");
+const u8 BattleText_WithdrewPoke1[] = _("{STRING 0} wurde\nvon {STRING 25} {STRING 26}\lzurückgerufen!");
+const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} ruft\n{STRING 0} zurück!");
+const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} ruft\n{STRING 0} zurück!");
+const u8 BattleText_Wild[] = _(" (Wild)");
+const u8 BattleText_Foe[] = _(" (Gegner)");
+const u8 BattleText_Foe2[] = _("Gegner");
+const u8 BattleText_Ally[] = _("Anwender");
+const u8 BattleText_Foe3[] = _("Gegner");
+const u8 BattleText_Ally2[] = _("Anwender");
+const u8 BattleText_Foe4[] = _("Gegner");
+const u8 BattleText_Ally3[] = _("Anwender");
+const u8 BattleText_OpponentUsedMove[] = _("{EVIL_LEGENDARY} setzt\n{PLAYER} ein!");
+const u8 BattleText_Exclamation2[] = _("");
+const u8 BattleText_Exclamation3[] = _("");
+const u8 BattleText_Exclamation4[] = _("");
+const u8 BattleText_Exclamation5[] = _("");
+const u8 BattleText_Exclamation[] = _("");
+const u8 BattleStatText_HP[] = _("KP");
+const u8 BattleStatText_Attack[] = _("ANGRIFF");
+const u8 BattleStatText_Defense[] = _("VERT.");
+const u8 BattleStatText_Speed[] = _("INIT.");
+const u8 BattleStatText_SpAtk[] = _("SP.ANG.");
+const u8 BattleStatText_SpDef[] = _("SP.VER.");
+const u8 BattleStatText_Accuracy[] = _("GENAUIGKEIT");
+const u8 BattleStatText_Evasion[] = _("FLUCHTWERT");
+const u8 ContestStatText_TooSpicy[] = _("zu scharf!");
+const u8 ContestStatText_TooDry[] = _("zu trocken!");
+const u8 ContestStatText_TooSweet[] = _("zu süß!");
+const u8 ContestStatText_TooBitter[] = _("zu bitter!");
+const u8 ContestStatText_TooSour[] = _("zu sauer!");
+const u8 BattleText_Used1[] = _("{STRING 32} setzt\n{STRING 19} ein!");
+const u8 BattleText_TutorialUsed[] = _("HEIKO setzt\n{STRING 19} ein!");
+const u8 BattleText_Used2[] = _("{STRING 19} wird von\n{STRING 25} {STRING 26} eingesetzt!");
+const u8 BattleText_BlockBall[] = _("Der TRAINER hat den BALL abgeblockt!");
+const u8 BattleText_DontBeAThief[] = _("Sei kein Dieb!");
+const u8 BattleText_DodgeBall[] = _("Es ist dem BALL ausgewichen! Dieses\nPOKéMON kann nicht gefangen werden!");
+const u8 BattleText_MissPoke[] = _("Du hast das POKéMON verfehlt!");
+const u8 BattleText_BallBrokeOhNo[] = _("Mist!\nDas POKéMON hat sich befreit!");
+const u8 BattleText_BallBrokeAppeared[] = _("Oh!\nFast hätte es geklappt!");
+const u8 BattleText_BallBrokeAlmost[] = _("Mist!\nDas war knapp!");
+const u8 BattleText_BallBrokeSoClose[] = _("Verflixt!\nEs hätte beinahe geklappt!");
+const u8 BattleText_BallCaught1[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p");
+const u8 BattleText_BallCaught2[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}");
+const u8 BattleText_GiveNickname[] = _("Möchtest du dem {STR_VAR_2}\neinen Spitznamen geben?");
+const u8 BattleText_SentToPC[] = _("{STR_VAR_2} wurde auf\n{STRING 35} PC übertragen.");
+const u8 BattleText_Someone[] = _("einen");
+const u8 BattleText_Lanette[] = _("LANETTES");
+const u8 BattleText_AddedToDex[] = _("Für {STR_VAR_2} wurde ein Eintrag\nim POKéDEX angelegt.\p");
+const u8 BattleText_Raining[] = _("Es regnet.");
+const u8 BattleText_Sandstorm[] = _("Ein Sandsturm tobt.");
+const u8 BattleText_BoxFull[] = _("Die BOXEN sind voll!\nDu kannst keines mehr fangen!\p");
+const u8 BattleText_EnigmaBerry[] = _("ENIGMABEERE");
+const u8 BattleText_Berry[] = _("{STR_VAR_1}BEERE");
+const u8 BattleText_CuredParalysis[] = _("{STRING 19} von\n{STRING 16}\lheilte die Paralyse!");
+const u8 BattleText_CuredPoison[] = _("{STRING 19} von\n{STRING 16}\lheilte die Vergiftung!");
+const u8 BattleText_CuredBurn[] = _("{STRING 19} von\n{STRING 16}\lheilte die Verbrennung!");
+const u8 BattleText_CuredFreeze[] = _("{STRING 19} von\n{STRING 16} taute es auf!");
+const u8 BattleText_CuredSleep[] = _("{STRING 19} von\n{STRING 16} \lweckte es auf!");
+const u8 BattleText_CuredConfusion[] = _("{STRING 19} von\n{STRING 16}\lhebt die Verwirrung auf!");
+const u8 BattleText_CuredStatus[] = _("{STRING 19} von\n{STRING 16} \lheilte sein {STRING 0}-Problem!");
+const u8 BattleText_NormalizedStatus[] = _("{STRING 19} von\n{STRING 16} normalisierte\lseine Statuswerte!");
+const u8 BattleText_RestoredHealth[] = _("{STRING 19} füllte\nKP von {STRING 16} auf!");
+const u8 BattleText_RestoredPP[] = _("{STRING 19} von\n{STRING 16} füllte AP von\l{STRING 0} auf!");
+const u8 BattleText_RestoredStatus[] = _("{STRING 19} von\n{STRING 16}\pstellte seine\nStatuswerte wieder her!");
+const u8 BattleText_RestoredHPLittle[] = _("{STRING 19} von\n{STRING 16}\lfüllte einige KP auf!");
+const u8 BattleText_ChoiceBand[] = _("{STRING 19} erlaubt\nnur den Einsatz von {STRING 17}!\p");
+const u8 BattleText_FocusSash[] = _("{GOOD_LEGENDARY} hält\nmit Hilfe von\l{STRING 19} durch!");
+const u8 BattleText_Terminator2[] = _("");
+const u8 BattleText_WallyBall[] = _("Nun muss man einen BALL werfen, oder?\nIch... Ich werde mein Bestes geben!");
+const u8 BattleText_StartEvo[] = _("Hey?\n{STR_VAR_1} entwickelt sich!");
+const u8 BattleText_FinishEvo[] = _("Glückwunsch! Dein {STR_VAR_1}\nwurde zu {STR_VAR_2}!{UNKNOWN_A}\p");
+const u8 BattleText_StopEvo[] = _("Hm? Die Entwicklung\nwurde abgebrochen!\p");
+const u8 BattleText_OtherMenu[] = _("Was soll\n{STRING 15} tun?");
+const u8 BattleText_PlayerMenu[] = _("Was wird {STRING 32}\ntun?");
+const u8 BattleText_WallyMenu[] = _("Was wird\nHEIKO tun?");
+const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Verbindung...");
+const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\nPOKéMON{CLEAR_TO 46}FLUCHT");
+const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\nNÄHER{CLEAR_TO 46}FLUCHT");
+const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\nTYP/");
+const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?");
+const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\nNein");
+const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\nWohin?");
+const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}");
+const u8 BattleText_Plus[] = _("+");
+const u8 BattleText_Dash[] = _("-");
+const u8 BattleText_HP[] = _("KP ");
+const u8 BattleText_Attack[] = _("ANGR. ");
+const u8 BattleText_Defense[] = _("VERT.");
+const u8 BattleText_SpAtk[] = _("SP.ANG.");
+const u8 BattleText_SpDef[] = _("SP.VER.");
+const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARIBÄLLE");
+const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Übrig: ");
+const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}");
+const u8 BattleText_Sleep[] = _("Schlaf");
+const u8 BattleText_PoisonStatus[] = _("Gift");
+const u8 BattleText_Burn[] = _("Verbrennung");
+const u8 BattleText_Paralysis[] = _("Paralyse");
+const u8 BattleText_IceStatus[] = _("Eis");
+const u8 BattleText_Confusion[] = _("Verwirrung");
+const u8 BattleText_Love[] = _("Liebe");
+const u8 BattleText_Format3[] = _(" und ");
+const u8 BattleText_Format4[] = _(", ");
+const u8 BattleText_Format5[] = _(" ");
+const u8 BattleText_Format6[] = _("\l");
+const u8 BattleText_Format7[] = _("\n");
+const u8 BattleText_Format8[] = _("sind");
+const u8 BattleText_Format9[] = _("sind");
+const u8 gBadEggNickname[] = _("Schl. EI");
+const u8 BattleText_Wally[] = _("HEIKO");
+const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Sieg");
+const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Ndrl.");
+const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Patt");
+const u8 BattleText_Format10[] = _(" ist");
+const u8 BattleText_Format11[] = _("");
+const u8 BattleText_Normal[] = _("eine NORMALE Att.");
+const u8 BattleText_Fighting[] = _("eine KAMPF-Att.");
+const u8 BattleText_Flying[] = _("eine FLUG-Att.");
+const u8 BattleText_Poison[] = _("eine GIFT-Att.");
+const u8 BattleText_Ground[] = _("eine BODEN-Att.");
+const u8 BattleText_Rock[] = _("eine GESTEINS-Att.");
+const u8 BattleText_Bug[] = _("eine KÄFER-Att.");
+const u8 BattleText_Ghost[] = _("eine GEIST-Att.");
+const u8 BattleText_Steel[] = _("eine STAHL-Att.");
+const u8 BattleText_Typeless[] = _("eine ???-Attacke");
+const u8 BattleText_Fire[] = _("eine FEUER-Att.");
+const u8 BattleText_Water[] = _("eine WASSER-Att.");
+const u8 BattleText_Grass[] = _("eine PFLANZEN-Att.");
+const u8 BattleText_Electric[] = _("eine ELEKTRO-Att.");
+const u8 BattleText_Psychic[] = _("eine PSYCHO-Att.");
+const u8 BattleText_Ice[] = _("eine EIS-Att.");
+const u8 BattleText_Dragon[] = _("eine DRACHEN-Att.");
+const u8 BattleText_Dark[] = _("eine UNLICHT-Att.");
+
+const u8 *const gUnknown_08400F58[] =
+{
+ BattleStatText_HP,
+ BattleStatText_Attack,
+ BattleStatText_Defense,
+ BattleStatText_Speed,
+ BattleStatText_SpAtk,
+ BattleStatText_SpDef,
+ BattleStatText_Accuracy,
+ BattleStatText_Evasion,
+};
+
+const u8 *const gUnknown_08400F78[] =
+{
+ ContestStatText_TooSpicy,
+ ContestStatText_TooDry,
+ ContestStatText_TooSweet,
+ ContestStatText_TooBitter,
+ ContestStatText_TooSour,
+};
+
+const u8 *const gBattleStringsTable[] =
+{
+ BattleText_UnknownString,
+ BattleText_GainExpPoints,
+ BattleText_GrewLevel,
+ BattleText_LearnedMove,
+ BattleText_TryingToLearnMove,
+ BattleText_CantLearnMore,
+ BattleText_DeleteMove,
+ BattleText_DeletedMove,
+ BattleText_StopLearning,
+ BattleText_DidNotLearn,
+ BattleText_LearnedMove2,
+ BattleText_AttackMissed,
+ BattleText_ProtectedItself,
+ BattleText_StatNoHigher,
+ BattleText_AvoidedDamage,
+ BattleText_DoesntAffect,
+ BattleText_AttackingFainted,
+ BattleText_DefendingFainted,
+ BattleText_WinningPrize,
+ BattleText_OutOfUsablePoke,
+ BattleText_WhitedOut,
+ BattleText_PreventEscape,
+ BattleText_HitMulti,
+ BattleText_FellAsleep,
+ BattleText_MadeAsleep,
+ BattleText_DefendingAsleep,
+ BattleText_AttackingAsleep,
+ BattleText_WasntAffected,
+ BattleText_Poisoned,
+ BattleText_Poisoned2,
+ BattleText_PoisonHurt,
+ BattleText_AlreadyPoisoned,
+ BattleText_BadlyPoisoned,
+ BattleText_EnergyDrained,
+ BattleText_Burned,
+ BattleText_Burned2,
+ BattleText_BurnHurt,
+ BattleText_Frozen,
+ BattleText_Frozen2,
+ BattleText_FrozenSolid,
+ BattleText_DefendingDefrosted,
+ BattleText_AttackingDefrosted,
+ BattleText_Defrosted,
+ BattleText_Paralyzed,
+ BattleText_Paralyzed2,
+ BattleText_Paralyzed3,
+ BattleText_AlreadyParalyzed,
+ BattleText_ParalysisHealed,
+ BattleText_DreamEaten,
+ BattleText_AttackingStatNoHigher,
+ BattleText_DefendingStatNoHigher,
+ BattleText_StoppedWorking,
+ BattleText_StoppedWorking2,
+ BattleText_Confused,
+ BattleText_ConfusionSnapOut,
+ BattleText_BecameConfused,
+ BattleText_AlreadyConfused,
+ BattleText_FellLove,
+ BattleText_InLoveWith,
+ BattleText_ImmobilizedBy,
+ BattleText_BlownAway,
+ BattleText_TypeTransform,
+ BattleText_Flinched,
+ BattleText_RegainedHealth,
+ BattleText_HPFull,
+ BattleText_RaisedSpDef,
+ BattleText_RaisedDefense,
+ BattleText_CoveredVeil,
+ BattleText_SafeguardActive,
+ BattleText_SafeguardFaded,
+ BattleText_WentToSleep,
+ BattleText_SpeltHealthy,
+ BattleText_WhipWhirlwind,
+ BattleText_TookSunlight,
+ BattleText_LoweredHead,
+ BattleText_IsGlowing,
+ BattleText_FlewHigh,
+ BattleText_DugHole,
+ BattleText_SqueezedBind,
+ BattleText_TrappedVortex,
+ BattleText_Wrapped,
+ BattleText_Clamped,
+ BattleText_HurtBy,
+ BattleText_FreedFrom,
+ BattleText_KeptGoingCrash,
+ BattleText_MistShroud,
+ BattleText_MistProtect,
+ BattleText_GetPumped,
+ BattleText_HitRecoil,
+ BattleText_ProtectedItself2,
+ BattleText_SandBuffeted,
+ BattleText_HailStricken,
+ BattleText_WasSeeded,
+ BattleText_EvadedAttack,
+ BattleText_HealthSapped,
+ BattleText_FastAsleep,
+ BattleText_WokeUp,
+ BattleText_UproarAwake,
+ BattleText_UproarWoke,
+ BattleText_UproarCaused,
+ BattleText_UproarMaking,
+ BattleText_CalmedDown,
+ BattleText_UproarCantSleep,
+ BattleText_Stockpiled,
+ BattleText_StockpiledCant,
+ BattleText_UproarCantSleep2,
+ BattleText_UproarKeptAwake,
+ BattleText_StayedAwake,
+ BattleText_StoringEnergy,
+ BattleText_UnleashedEnergy,
+ BattleText_FatigueConfuse,
+ BattleText_PickedUpYen,
+ BattleText_Unaffected,
+ BattleText_Transformed,
+ BattleText_SubMade,
+ BattleText_SubAlready,
+ BattleText_SubTookDamage,
+ BattleText_SubFaded,
+ BattleText_MustRecharge,
+ BattleText_RageBuilding,
+ BattleText_MoveWasDisabled,
+ BattleText_MoveIsDisabled,
+ BattleText_DisabledNoMore,
+ BattleText_EncoreGot,
+ BattleText_EncoreEnded,
+ BattleText_TookAim,
+ BattleText_SketchedMove,
+ BattleText_DestinyBondTake,
+ BattleText_DestinyBondTaken,
+ BattleText_ReducedBy,
+ BattleText_StoleSomething,
+ BattleText_CantEscapeNow,
+ BattleText_NightmareStart,
+ BattleText_NightmareLock,
+ BattleText_CurseLay,
+ BattleText_CurseAfflict,
+ BattleText_SpikesScattered,
+ BattleText_SpikesHurt,
+ BattleText_IdentifiedPoke,
+ BattleText_PerishSongFell,
+ BattleText_BracedItself,
+ BattleText_EnduredHit,
+ BattleText_MagnitudeCount,
+ BattleText_CutHPMaxATK,
+ BattleText_CopyStatChanges,
+ BattleText_GotFreeFrom,
+ BattleText_LeechShed,
+ BattleText_SpikesBlownAway,
+ BattleText_FledBattle,
+ BattleText_ForesawAttack,
+ BattleText_TookAttack,
+ BattleText_PokeAttack,
+ BattleText_CenterAttention,
+ BattleText_ChargingPower,
+ BattleText_NaturePower,
+ BattleText_StatusNormal,
+ BattleText_NoMovesLeft,
+ BattleText_TormentSubject,
+ BattleText_TormentNoUse,
+ BattleText_TightenFocus,
+ BattleText_TauntFell,
+ BattleText_TauntNoUse,
+ BattleText_ReadyToHelp,
+ BattleText_SwitchedItems,
+ BattleText_CopiedObject,
+ BattleText_WishMade,
+ BattleText_WishTrue,
+ BattleText_PlantedRoots,
+ BattleText_AbsorbNutrients,
+ BattleText_AnchoredItself,
+ BattleText_DrowsyMade,
+ BattleText_KnockedOffItem,
+ BattleText_AbilitySwap,
+ BattleText_SealedMove,
+ BattleText_SealedNoUse,
+ BattleText_GrudgeBear,
+ BattleText_GrudgeLosePP,
+ BattleText_ShroudedItself,
+ BattleText_MagicCoatBounce,
+ BattleText_AwaitMove,
+ BattleText_SnatchedMove,
+ BattleText_RainMade,
+ BattleText_SpeedRisen,
+ BattleText_ProtectedBy,
+ BattleText_PreventedBy,
+ BattleText_HPRestoredUsing,
+ BattleText_MadeType,
+ BattleText_PreventedPara,
+ BattleText_PreventedRomance,
+ BattleText_PreventedPoison,
+ BattleText_PreventedConfusion,
+ BattleText_RaisedFirePower,
+ BattleText_AnchorsItself,
+ BattleText_CutsAttack,
+ BattleText_PreventedStatLoss,
+ BattleText_HurtOther,
+ BattleText_Traced,
+ BattleText_Sharply,
+ BattleText_Rose,
+ BattleText_Harshly,
+ BattleText_Fell,
+ BattleText_UnknownString7,
+ BattleText_UnknownString3,
+ BattleText_UnknownString5,
+ BattleText_UnknownString6,
+ BattleText_Critical,
+ BattleText_GrandSlam,
+ BattleText_MoveForget123,
+ BattleText_MoveForgetAnd,
+ BattleText_NotEffective,
+ BattleText_SuperEffective,
+ BattleText_GotAwaySafely,
+ BattleText_FledWild,
+ BattleText_NoRunning,
+ BattleText_CantEscape2,
+ BattleText_BirchDontLeaveMe,
+ BattleText_Nothing,
+ BattleText_Failed,
+ BattleText_HurtItself,
+ BattleText_MirrorFail,
+ BattleText_RainStart,
+ BattleText_PourStart,
+ BattleText_RainCont1,
+ BattleText_PourCont,
+ BattleText_RainStop,
+ BattleText_SandBrewed,
+ BattleText_SandRages,
+ BattleText_SandSubsided,
+ BattleText_SunBright,
+ BattleText_SunStrong,
+ BattleText_SunFaded,
+ BattleText_HailStart,
+ BattleText_HailCont,
+ BattleText_HailStop,
+ BattleText_SpitUpFail,
+ BattleText_SwallowFail,
+ BattleText_WindHeatWave,
+ BattleText_StatElim,
+ BattleText_CoinScatter,
+ BattleText_SubWeak,
+ BattleText_PainSplit,
+ BattleText_BellChime,
+ BattleText_PerishSong,
+ BattleText_NoPP1,
+ BattleText_NoPP2,
+ BattleText_Used1,
+ BattleText_TutorialUsed,
+ BattleText_BlockBall,
+ BattleText_DontBeAThief,
+ BattleText_DodgeBall,
+ BattleText_MissPoke,
+ BattleText_BallBrokeOhNo,
+ BattleText_BallBrokeAppeared,
+ BattleText_BallBrokeAlmost,
+ BattleText_BallBrokeSoClose,
+ BattleText_BallCaught1,
+ BattleText_BallCaught2,
+ BattleText_GiveNickname,
+ BattleText_SentToPC,
+ BattleText_AddedToDex,
+ BattleText_Raining,
+ BattleText_Sandstorm,
+ BattleText_CantEscape,
+ BattleText_IgnoredOrdersSLP,
+ BattleText_IgnoredOrders,
+ BattleText_BeganNap,
+ BattleText_LoafingAround,
+ BattleText_WontObey,
+ BattleText_TurnedAway,
+ BattleText_NotNotice,
+ BattleText_WillSwitch,
+ BattleText_CreptCloser,
+ BattleText_CantGetCloser,
+ BattleText_WatchingCarefully,
+ BattleText_CuriousAbout,
+ BattleText_EnthralledBy,
+ BattleText_IgnoredThing,
+ BattleText_ThrewBlock,
+ BattleText_SafariOver,
+ BattleText_CuredParalysis,
+ BattleText_CuredPoison,
+ BattleText_CuredBurn,
+ BattleText_CuredFreeze,
+ BattleText_CuredSleep,
+ BattleText_CuredConfusion,
+ BattleText_CuredStatus,
+ BattleText_RestoredHealth,
+ BattleText_RestoredPP,
+ BattleText_RestoredStatus,
+ BattleText_RestoredHPLittle,
+ BattleText_ChoiceBand,
+ BattleText_FocusSash,
+ BattleText_Terminator2,
+ BattleText_PreventedBurn,
+ BattleText_BlocksOther,
+ BattleText_RestoredHPByItem,
+ BattleText_WhipSandstorm,
+ BattleText_PreventedLoss,
+ BattleText_InfatuatedPoke,
+ BattleText_MadeIneffective,
+ BattleText_CuredProblem,
+ BattleText_OozeSuckup,
+ BattleText_Transformed2,
+ BattleText_ElecWeakened,
+ BattleText_FireWeakened,
+ BattleText_HidUnderwater,
+ BattleText_SprangUp,
+ BattleText_CantForgetHM,
+ BattleText_FoundOne,
+ BattleText_PlayerDefeatedTrainer2,
+ BattleText_SoothingAroma,
+ BattleText_CantUseItems,
+ BattleText_UnknownString2,
+ BattleText_UnknownString4,
+ BattleText_HustleUse,
+ BattleText_MadeUseless,
+ BattleText_SandTombTrapped,
+ BattleText_Terminator,
+ BattleText_BoostedExp,
+ BattleText_SunIntensified,
+ BattleText_GroundMoveNegate,
+ BattleText_WallyBall,
+ BattleText_TookAttack2,
+ BattleText_ChoseDestiny,
+ BattleText_LostFocus,
+ BattleText_UseNext,
+ BattleText_FledUsingItem,
+ BattleText_FledUsingOther,
+ BattleText_DraggedOut,
+ BattleText_PreventedOther,
+ BattleText_NormalizedStatus,
+ BattleText_Used2,
+ BattleText_BoxFull,
+ BattleText_AvoidedAttack,
+ BattleText_MadeIneffective2,
+ BattleText_PreventedFlinching,
+ BattleText_AlreadyBurned,
+ BattleText_StatNoLower,
+ BattleText_BlocksOther2,
+ BattleText_WoreOff,
+ BattleText_RaisedDefenseLittle,
+ BattleText_RaisedSpDefLittle,
+ BattleText_BrokeWall,
+ BattleText_PreventedOther2,
+ BattleText_CuredOfProblem,
+ BattleText_AttackingCantEscape,
+ BattleText_Obtained1,
+ BattleText_Obtained2,
+ BattleText_Obtained3,
+ BattleText_NoEffect,
+ BattleText_NoEffectOn,
+};
+
+// below are lists of battle string enums and NOT pointers to the strings.
+const u16 gMissStrings[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_GroundMoveNegate,
+};
+
+const u16 BattleTextList_401512[] =
+{
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_AttackingCantEscape,
+};
+
+const u16 BattleTextList_40151C[] =
+{
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_HailStart,
+};
+
+const u16 BattleTextList_401528[] =
+{
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_HailCont,
+};
+
+const u16 BattleTextList_40152C[] =
+{
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+};
+
+const u16 BattleTextList_401530[] =
+{
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_HailStop,
+};
+
+const u16 BattleTextList_401534[] =
+{
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+};
+
+const u16 BattleTextList_40153A[] =
+{
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_401540[] =
+{
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_CoveredVeil,
+};
+
+const u16 BattleTextList_40154C[] =
+{
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_401556[] =
+{
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+};
+
+const u16 BattleTextList_40155A[] =
+{
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+};
+
+const u16 BattleTextList_40155E[] =
+{
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+};
+
+const u16 BattleTextList_401562[] =
+{
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarWoke,
+};
+
+const u16 BattleTextList_401566[] =
+{
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_HPFull,
+};
+
+const u16 BattleTextList_40156A[] =
+{
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+};
+
+const u16 BattleTextList_401570[] =
+{
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+};
+
+const u16 BattleTextList_40157C[] =
+{
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+};
+
+const u16 BattleTextList_401584[] =
+{
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+};
+
+const u16 BattleTextList_401594[] =
+{
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_SandTombTrapped,
+};
+
+const u16 BattleTextList_4015A0[] =
+{
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A4[] =
+{
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A8[] =
+{
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015AC[] =
+{
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubWeak,
+};
+
+const u16 BattleTextList_4015B0[] =
+{
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+};
+
+const u16 BattleTextList_4015B4[] =
+{
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+};
+
+const u16 BattleTextList_4015B8[] =
+{
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+};
+
+const u16 BattleTextList_4015BC[] =
+{
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+};
+
+const u16 BattleTextList_4015C0[] =
+{
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+};
+
+const u16 BattleTextList_4015C4[] =
+{
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+};
+
+const u16 BattleTextList_4015C8[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InfatuatedPoke,
+};
+
+const u16 BattleTextList_4015D0[] =
+{
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_4015D4[] =
+{
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+};
+
+const u16 BattleTextList_4015D8[] =
+{
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_SoothingAroma,
+};
+
+const u16 BattleTextList_4015E2[] =
+{
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_ChoseDestiny,
+};
+
+const u16 BattleTextList_4015E6[] =
+{
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+};
+
+const u16 BattleTextList_4015EE[] =
+{
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+};
+
+const u16 BattleTextList_40160E[] =
+{
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+};
+
+const u16 BattleTextList_401616[] =
+{
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+};
+
+const u16 BattleTextList_40161A[] =
+{
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+};
+
+const u16 BattleTextList_401620[] =
+{
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredSleep,
+};
+
+const u16 BattleTextList_40162C[] =
+{
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_NormalizedStatus,
+};
+
+const u16 BattleTextList_401630[] =
+{
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401636[] =
+{
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_40163C[] =
+{
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401642[] =
+{
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+};
+
+const u16 BattleTextList_401648[] =
+{
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_MadeIneffective,
+};
+
+const u16 gTrappingMoves[] =
+{
+ MOVE_BIND,
+ MOVE_WRAP,
+ MOVE_FIRE_SPIN,
+ MOVE_CLAMP,
+ MOVE_WHIRLPOOL,
+ MOVE_SAND_TOMB,
+ 0xFFFF,
+};
+
+const u8 *const gUnknown_0840165C[] =
+{
+ BattleText_HP,
+ BattleText_SpAtk,
+ BattleText_Attack,
+ BattleText_SpDef,
+ BattleText_Defense,
+ BattleStatText_Speed,
+};
+
+const u8 *const gUnknown_08401674[] =
+{
+ BattleText_Normal,
+ BattleText_Fighting,
+ BattleText_Flying,
+ BattleText_Poison,
+ BattleText_Ground,
+ BattleText_Rock,
+ BattleText_Bug,
+ BattleText_Ghost,
+ BattleText_Steel,
+ BattleText_Typeless,
+ BattleText_Fire,
+ BattleText_Water,
+ BattleText_Grass,
+ BattleText_Electric,
+ BattleText_Psychic,
+ BattleText_Ice,
+ BattleText_Dragon,
+ BattleText_Dark,
+};
diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h
new file mode 100755
index 000000000..7f0481b50
--- /dev/null
+++ b/src/data/battle_strings_en.h
@@ -0,0 +1,1612 @@
+#include "moves.h"
+
+enum
+{
+ BATTLE_TEXT_UnknownString = 12,
+ BATTLE_TEXT_GainExpPoints,
+ BATTLE_TEXT_GrewLevel,
+ BATTLE_TEXT_LearnedMove,
+ BATTLE_TEXT_TryingToLearnMove,
+ BATTLE_TEXT_CantLearnMore,
+ BATTLE_TEXT_DeleteMove,
+ BATTLE_TEXT_DeletedMove,
+ BATTLE_TEXT_StopLearning,
+ BATTLE_TEXT_DidNotLearn,
+ BATTLE_TEXT_LearnedMove2,
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_StatNoHigher,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_AttackingFainted,
+ BATTLE_TEXT_DefendingFainted,
+ BATTLE_TEXT_WinningPrize,
+ BATTLE_TEXT_OutOfUsablePoke,
+ BATTLE_TEXT_WhitedOut,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_HitMulti,
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+ BATTLE_TEXT_DefendingAsleep,
+ BATTLE_TEXT_AttackingAsleep,
+ BATTLE_TEXT_WasntAffected,
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+ BATTLE_TEXT_PoisonHurt,
+ BATTLE_TEXT_AlreadyPoisoned,
+ BATTLE_TEXT_BadlyPoisoned,
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+ BATTLE_TEXT_BurnHurt,
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+ BATTLE_TEXT_FrozenSolid,
+ BATTLE_TEXT_DefendingDefrosted,
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+ BATTLE_TEXT_Paralyzed3,
+ BATTLE_TEXT_AlreadyParalyzed,
+ BATTLE_TEXT_ParalysisHealed,
+ BATTLE_TEXT_DreamEaten,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_StoppedWorking,
+ BATTLE_TEXT_StoppedWorking2,
+ BATTLE_TEXT_Confused,
+ BATTLE_TEXT_ConfusionSnapOut,
+ BATTLE_TEXT_BecameConfused,
+ BATTLE_TEXT_AlreadyConfused,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InLoveWith,
+ BATTLE_TEXT_ImmobilizedBy,
+ BATTLE_TEXT_BlownAway,
+ BATTLE_TEXT_TypeTransform,
+ BATTLE_TEXT_Flinched,
+ BATTLE_TEXT_RegainedHealth,
+ BATTLE_TEXT_HPFull,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_CoveredVeil,
+ BATTLE_TEXT_SafeguardActive,
+ BATTLE_TEXT_SafeguardFaded,
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_HurtBy,
+ BATTLE_TEXT_FreedFrom,
+ BATTLE_TEXT_KeptGoingCrash,
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_MistProtect,
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_HitRecoil,
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_FastAsleep,
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarAwake,
+ BATTLE_TEXT_UproarWoke,
+ BATTLE_TEXT_UproarCaused,
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+ BATTLE_TEXT_UproarCantSleep,
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+ BATTLE_TEXT_StoringEnergy,
+ BATTLE_TEXT_UnleashedEnergy,
+ BATTLE_TEXT_FatigueConfuse,
+ BATTLE_TEXT_PickedUpYen,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubAlready,
+ BATTLE_TEXT_SubTookDamage,
+ BATTLE_TEXT_SubFaded,
+ BATTLE_TEXT_MustRecharge,
+ BATTLE_TEXT_RageBuilding,
+ BATTLE_TEXT_MoveWasDisabled,
+ BATTLE_TEXT_MoveIsDisabled,
+ BATTLE_TEXT_DisabledNoMore,
+ BATTLE_TEXT_EncoreGot,
+ BATTLE_TEXT_EncoreEnded,
+ BATTLE_TEXT_TookAim,
+ BATTLE_TEXT_SketchedMove,
+ BATTLE_TEXT_DestinyBondTake,
+ BATTLE_TEXT_DestinyBondTaken,
+ BATTLE_TEXT_ReducedBy,
+ BATTLE_TEXT_StoleSomething,
+ BATTLE_TEXT_CantEscapeNow,
+ BATTLE_TEXT_NightmareStart,
+ BATTLE_TEXT_NightmareLock,
+ BATTLE_TEXT_CurseLay,
+ BATTLE_TEXT_CurseAfflict,
+ BATTLE_TEXT_SpikesScattered,
+ BATTLE_TEXT_SpikesHurt,
+ BATTLE_TEXT_IdentifiedPoke,
+ BATTLE_TEXT_PerishSongFell,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_EnduredHit,
+ BATTLE_TEXT_MagnitudeCount,
+ BATTLE_TEXT_CutHPMaxATK,
+ BATTLE_TEXT_CopyStatChanges,
+ BATTLE_TEXT_GotFreeFrom,
+ BATTLE_TEXT_LeechShed,
+ BATTLE_TEXT_SpikesBlownAway,
+ BATTLE_TEXT_FledBattle,
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_TookAttack,
+ BATTLE_TEXT_PokeAttack,
+ BATTLE_TEXT_CenterAttention,
+ BATTLE_TEXT_ChargingPower,
+ BATTLE_TEXT_NaturePower,
+ BATTLE_TEXT_StatusNormal,
+ BATTLE_TEXT_NoMovesLeft,
+ BATTLE_TEXT_TormentSubject,
+ BATTLE_TEXT_TormentNoUse,
+ BATTLE_TEXT_TightenFocus,
+ BATTLE_TEXT_TauntFell,
+ BATTLE_TEXT_TauntNoUse,
+ BATTLE_TEXT_ReadyToHelp,
+ BATTLE_TEXT_SwitchedItems,
+ BATTLE_TEXT_CopiedObject,
+ BATTLE_TEXT_WishMade,
+ BATTLE_TEXT_WishTrue,
+ BATTLE_TEXT_PlantedRoots,
+ BATTLE_TEXT_AbsorbNutrients,
+ BATTLE_TEXT_AnchoredItself,
+ BATTLE_TEXT_DrowsyMade,
+ BATTLE_TEXT_KnockedOffItem,
+ BATTLE_TEXT_AbilitySwap,
+ BATTLE_TEXT_SealedMove,
+ BATTLE_TEXT_SealedNoUse,
+ BATTLE_TEXT_GrudgeBear,
+ BATTLE_TEXT_GrudgeLosePP,
+ BATTLE_TEXT_ShroudedItself,
+ BATTLE_TEXT_MagicCoatBounce,
+ BATTLE_TEXT_AwaitMove,
+ BATTLE_TEXT_SnatchedMove,
+ BATTLE_TEXT_RainMade,
+ BATTLE_TEXT_SpeedRisen,
+ BATTLE_TEXT_ProtectedBy,
+ BATTLE_TEXT_PreventedBy,
+ BATTLE_TEXT_HPRestoredUsing,
+ BATTLE_TEXT_MadeType,
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedRomance,
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedConfusion,
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_AnchorsItself,
+ BATTLE_TEXT_CutsAttack,
+ BATTLE_TEXT_PreventedStatLoss,
+ BATTLE_TEXT_HurtOther,
+ BATTLE_TEXT_Traced,
+ BATTLE_TEXT_Sharply,
+ BATTLE_TEXT_Rose,
+ BATTLE_TEXT_Harshly,
+ BATTLE_TEXT_Fell,
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_Critical,
+ BATTLE_TEXT_GrandSlam,
+ BATTLE_TEXT_MoveForget123,
+ BATTLE_TEXT_MoveForgetAnd,
+ BATTLE_TEXT_NotEffective,
+ BATTLE_TEXT_SuperEffective,
+ BATTLE_TEXT_GotAwaySafely,
+ BATTLE_TEXT_FledWild,
+ BATTLE_TEXT_NoRunning,
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_Nothing,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_HurtItself,
+ BATTLE_TEXT_MirrorFail,
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_SunFaded,
+ BATTLE_TEXT_HailStart,
+ BATTLE_TEXT_HailCont,
+ BATTLE_TEXT_HailStop,
+ BATTLE_TEXT_SpitUpFail,
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_WindHeatWave,
+ BATTLE_TEXT_StatElim,
+ BATTLE_TEXT_CoinScatter,
+ BATTLE_TEXT_SubWeak,
+ BATTLE_TEXT_PainSplit,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_PerishSong,
+ BATTLE_TEXT_NoPP1,
+ BATTLE_TEXT_NoPP2,
+ BATTLE_TEXT_Used1,
+ BATTLE_TEXT_TutorialUsed,
+ BATTLE_TEXT_BlockBall,
+ BATTLE_TEXT_DontBeAThief,
+ BATTLE_TEXT_DodgeBall,
+ BATTLE_TEXT_MissPoke,
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+ BATTLE_TEXT_BallCaught1,
+ BATTLE_TEXT_BallCaught2,
+ BATTLE_TEXT_GiveNickname,
+ BATTLE_TEXT_SentToPC,
+ BATTLE_TEXT_AddedToDex,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_IgnoredOrdersSLP,
+ BATTLE_TEXT_IgnoredOrders,
+ BATTLE_TEXT_BeganNap,
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+ BATTLE_TEXT_WillSwitch,
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+ BATTLE_TEXT_WatchingCarefully,
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+ BATTLE_TEXT_ThrewBlock,
+ BATTLE_TEXT_SafariOver,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredSleep,
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_RestoredHealth,
+ BATTLE_TEXT_RestoredPP,
+ BATTLE_TEXT_RestoredStatus,
+ BATTLE_TEXT_RestoredHPLittle,
+ BATTLE_TEXT_ChoiceBand,
+ BATTLE_TEXT_FocusSash,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_BlocksOther,
+ BATTLE_TEXT_RestoredHPByItem,
+ BATTLE_TEXT_WhipSandstorm,
+ BATTLE_TEXT_PreventedLoss,
+ BATTLE_TEXT_InfatuatedPoke,
+ BATTLE_TEXT_MadeIneffective,
+ BATTLE_TEXT_CuredProblem,
+ BATTLE_TEXT_OozeSuckup,
+ BATTLE_TEXT_Transformed2,
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+ BATTLE_TEXT_CantForgetHM,
+ BATTLE_TEXT_FoundOne,
+ BATTLE_TEXT_PlayerDefeatedTrainer2,
+ BATTLE_TEXT_SoothingAroma,
+ BATTLE_TEXT_CantUseItems,
+ BATTLE_TEXT_UnknownString2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+ BATTLE_TEXT_MadeUseless,
+ BATTLE_TEXT_SandTombTrapped,
+ BATTLE_TEXT_Terminator,
+ BATTLE_TEXT_BoostedExp,
+ BATTLE_TEXT_SunIntensified,
+ BATTLE_TEXT_GroundMoveNegate,
+ BATTLE_TEXT_WallyBall,
+ BATTLE_TEXT_TookAttack2,
+ BATTLE_TEXT_ChoseDestiny,
+ BATTLE_TEXT_LostFocus,
+ BATTLE_TEXT_UseNext,
+ BATTLE_TEXT_FledUsingItem,
+ BATTLE_TEXT_FledUsingOther,
+ BATTLE_TEXT_DraggedOut,
+ BATTLE_TEXT_PreventedOther,
+ BATTLE_TEXT_NormalizedStatus,
+ BATTLE_TEXT_Used2,
+ BATTLE_TEXT_BoxFull,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_MadeIneffective2,
+ BATTLE_TEXT_PreventedFlinching,
+ BATTLE_TEXT_AlreadyBurned,
+ BATTLE_TEXT_StatNoLower,
+ BATTLE_TEXT_BlocksOther2,
+ BATTLE_TEXT_WoreOff,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_BrokeWall,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_CuredOfProblem,
+ BATTLE_TEXT_AttackingCantEscape,
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+ BATTLE_TEXT_NoEffect,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u8 BattleText_UnknownString[] = _("{STRING 33}");
+const u8 BattleText_GainExpPoints[] = _("{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p");
+const u8 BattleText_Terminator[] = _("");
+const u8 BattleText_BoostedExp[] = _(" a boosted");
+const u8 BattleText_GrewLevel[] = _("{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p");
+const u8 BattleText_LearnedMove[] = _("{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p");
+const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} is trying to\nlearn {STRING 1}.\p");
+const u8 BattleText_CantLearnMore[] = _("But, {STRING 0} can’t learn\nmore than four moves.\p");
+const u8 BattleText_DeleteMove[] = _("Delete a move to make\nroom for {STRING 1}?");
+const u8 BattleText_DeletedMove[] = _("{STRING 0} forgot\n{STRING 1}.\p");
+const u8 BattleText_StopLearning[] = _("{PAUSE 32}Stop learning\n{STRING 1}?");
+const u8 BattleText_DidNotLearn[] = _("{STRING 0} did not learn\n{STRING 1}.\p");
+const u8 BattleText_UseNext[] = _("Use next POKéMON?");
+const u8 BattleText_AttackMissed[] = _("{ATTACKING_MON}’s\nattack missed!");
+const u8 BattleText_ProtectedItself[] = _("{DEFENDING_MON}\nprotected itself!");
+const u8 BattleText_AvoidedDamage[] = _("{DEFENDING_MON} avoided\ndamage with {STRING 22}!");
+const u8 BattleText_GroundMoveNegate[] = _("{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!");
+const u8 BattleText_AvoidedAttack[] = _("{DEFENDING_MON} avoided\nthe attack!");
+const u8 BattleText_DoesntAffect[] = _("It doesn’t affect\n{DEFENDING_MON}...");
+const u8 BattleText_AttackingFainted[] = _("{ATTACKING_MON}\nfainted!\p");
+const u8 BattleText_DefendingFainted[] = _("{DEFENDING_MON}\nfainted!\p");
+const u8 BattleText_WinningPrize[] = _("{STRING 32} got ¥{STRING 0}\nfor winning!\p");
+const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} is out of\nuseable POKéMON!\p");
+const u8 BattleText_WhitedOut[] = _("{STRING 32} whited out!{PAUSE_UNTIL_PRESS}");
+const u8 BattleText_PreventEscape[] = _("{STRING 16} prevents\nescape with {STRING 23}!\p");
+const u8 BattleText_CantEscape[] = _("Can’t escape!\p");
+const u8 BattleText_AttackingCantEscape[] = _("{ATTACKING_MON}\ncan’t escape!");
+const u8 BattleText_HitMulti[] = _("Hit {STRING 0} time(s)!");
+const u8 BattleText_FellAsleep[] = _("{STRING 14}\nfell asleep!");
+const u8 BattleText_MadeAsleep[] = _("{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!");
+const u8 BattleText_DefendingAsleep[] = _("{DEFENDING_MON} is\nalready asleep!");
+const u8 BattleText_AttackingAsleep[] = _("{ATTACKING_MON} is\nalready asleep!");
+const u8 BattleText_WasntAffected[] = _("{DEFENDING_MON}\nwasn’t affected!");
+const u8 BattleText_Poisoned[] = _("{STRING 14}\nwas poisoned!");
+const u8 BattleText_Poisoned2[] = _("{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!");
+const u8 BattleText_PoisonHurt[] = _("{ATTACKING_MON} is hurt\nby poison!");
+const u8 BattleText_AlreadyPoisoned[] = _("{DEFENDING_MON} is already\npoisoned.");
+const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} is badly\npoisoned!");
+const u8 BattleText_EnergyDrained[] = _("{DEFENDING_MON} had its\nenergy drained!");
+const u8 BattleText_Burned[] = _("{STRING 14} was burned!");
+const u8 BattleText_Burned2[] = _("{STRING 16}’s {STRING 23}\nburned {STRING 14}!");
+const u8 BattleText_BurnHurt[] = _("{ATTACKING_MON} is hurt\nby its burn!");
+const u8 BattleText_AlreadyBurned[] = _("{DEFENDING_MON} already\nhas a burn.");
+const u8 BattleText_Frozen[] = _("{STRING 14} was\nfrozen solid!");
+const u8 BattleText_Frozen2[] = _("{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!");
+const u8 BattleText_FrozenSolid[] = _("{ATTACKING_MON} is\nfrozen solid!");
+const u8 BattleText_DefendingDefrosted[] = _("{DEFENDING_MON} was\ndefrosted!");
+const u8 BattleText_AttackingDefrosted[] = _("{ATTACKING_MON} was\ndefrosted!");
+const u8 BattleText_Defrosted[] = _("{ATTACKING_MON} was\ndefrosted by {STRING 17}!");
+const u8 BattleText_Paralyzed[] = _("{STRING 14} is paralyzed!\nIt may be unable to move!");
+const u8 BattleText_Paralyzed2[] = _("{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!");
+const u8 BattleText_Paralyzed3[] = _("{ATTACKING_MON} is paralyzed!\nIt can’t move!");
+const u8 BattleText_AlreadyParalyzed[] = _("{DEFENDING_MON} is\nalready paralyzed!");
+const u8 BattleText_ParalysisHealed[] = _("{DEFENDING_MON} was\nhealed of paralysis!");
+const u8 BattleText_DreamEaten[] = _("{DEFENDING_MON}’s\ndream was eaten!");
+const u8 BattleText_AttackingStatNoHigher[] = _("{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!");
+const u8 BattleText_DefendingStatNoHigher[] = _("{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!");
+const u8 BattleText_StoppedWorking[] = _("Your team’s {STRING 0}\nstopped working!");
+const u8 BattleText_StoppedWorking2[] = _("The foe’s {STRING 0}\nstopped working!");
+const u8 BattleText_Confused[] = _("{ATTACKING_MON} is\nconfused!");
+const u8 BattleText_ConfusionSnapOut[] = _("{ATTACKING_MON} snapped\nout of confusion!");
+const u8 BattleText_BecameConfused[] = _("{STRING 14} became\nconfused!");
+const u8 BattleText_AlreadyConfused[] = _("{DEFENDING_MON} is\nalready confused!");
+const u8 BattleText_FellLove[] = _("{DEFENDING_MON}\nfell in love!");
+const u8 BattleText_InLoveWith[] = _("{ATTACKING_MON} is in love\nwith {STRING 16}!");
+const u8 BattleText_ImmobilizedBy[] = _("{ATTACKING_MON} is\nimmobilized by love!");
+const u8 BattleText_BlownAway[] = _("{DEFENDING_MON} was\nblown away!");
+const u8 BattleText_TypeTransform[] = _("{ATTACKING_MON} transformed\ninto the {STRING 0} type!");
+const u8 BattleText_Flinched[] = _("{ATTACKING_MON} flinched!");
+const u8 BattleText_RegainedHealth[] = _("{DEFENDING_MON} regained\nhealth!");
+const u8 BattleText_HPFull[] = _("{DEFENDING_MON}’s\nHP is full!");
+const u8 BattleText_RaisedSpDef[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF!");
+const u8 BattleText_RaisedSpDefLittle[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF a little!");
+const u8 BattleText_RaisedDefense[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE!");
+const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE a little!");
+const u8 BattleText_CoveredVeil[] = _("{STRING 38} is covered\nby a veil!");
+const u8 BattleText_SafeguardActive[] = _("{DEFENDING_MON} is protected\nby SAFEGUARD!");
+const u8 BattleText_SafeguardFaded[] = _("{STRING 40}’s SAFEGUARD\nfaded!");
+const u8 BattleText_WentToSleep[] = _("{ATTACKING_MON} went\nto sleep!");
+const u8 BattleText_SpeltHealthy[] = _("{ATTACKING_MON} slept and\nbecame healthy!");
+const u8 BattleText_WhipWhirlwind[] = _("{ATTACKING_MON} whipped\nup a whirlwind!");
+const u8 BattleText_TookSunlight[] = _("{ATTACKING_MON} took\nin sunlight!");
+const u8 BattleText_LoweredHead[] = _("{ATTACKING_MON} lowered\nits head!");
+const u8 BattleText_IsGlowing[] = _("{ATTACKING_MON} is glowing!");
+const u8 BattleText_FlewHigh[] = _("{ATTACKING_MON} flew\nup high!");
+const u8 BattleText_DugHole[] = _("{ATTACKING_MON} dug a hole!");
+const u8 BattleText_HidUnderwater[] = _("{ATTACKING_MON} hid\nunderwater!");
+const u8 BattleText_SprangUp[] = _("{ATTACKING_MON} sprang up!");
+const u8 BattleText_SqueezedBind[] = _("{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!");
+const u8 BattleText_TrappedVortex[] = _("{DEFENDING_MON} was trapped\nin the vortex!");
+const u8 BattleText_SandTombTrapped[] = _("{DEFENDING_MON} was trapped\nby SAND TOMB!");
+const u8 BattleText_Wrapped[] = _("{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!");
+const u8 BattleText_Clamped[] = _("{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!");
+const u8 BattleText_HurtBy[] = _("{ATTACKING_MON} is hurt\nby {STRING 0}!");
+const u8 BattleText_FreedFrom[] = _("{ATTACKING_MON} was freed\nfrom {STRING 0}!");
+const u8 BattleText_KeptGoingCrash[] = _("{ATTACKING_MON} kept going\nand crashed!");
+const u8 BattleText_MistShroud[] = _("{STRING 38} became\nshrouded in MIST!");
+const u8 BattleText_MistProtect[] = _("{STRING 16} is protected\nby MIST!");
+const u8 BattleText_GetPumped[] = _("{ATTACKING_MON} is getting\npumped!");
+const u8 BattleText_HitRecoil[] = _("{ATTACKING_MON} is hit\nwith recoil!");
+const u8 BattleText_ProtectedItself2[] = _("{ATTACKING_MON} protected\nitself!");
+const u8 BattleText_SandBuffeted[] = _("{ATTACKING_MON} is buffeted\nby the sandstorm!");
+const u8 BattleText_HailStricken[] = _("{ATTACKING_MON} is stricken\nby HAIL!");
+const u8 BattleText_WoreOff[] = _("{STRING 36}’s {STRING 0}\nwore off!");
+const u8 BattleText_WasSeeded[] = _("{DEFENDING_MON} was seeded!");
+const u8 BattleText_EvadedAttack[] = _("{DEFENDING_MON} evaded\nthe attack!");
+const u8 BattleText_HealthSapped[] = _("{ATTACKING_MON}’s health is\nsapped by LEECH SEED!");
+const u8 BattleText_FastAsleep[] = _("{ATTACKING_MON} is fast\nasleep.");
+const u8 BattleText_WokeUp[] = _("{ATTACKING_MON} woke up!");
+const u8 BattleText_UproarAwake[] = _("But {STRING 16}’s UPROAR\nkept it awake!");
+const u8 BattleText_UproarWoke[] = _("{ATTACKING_MON} woke up\nin the UPROAR!");
+const u8 BattleText_UproarCaused[] = _("{ATTACKING_MON} caused\nan UPROAR!");
+const u8 BattleText_UproarMaking[] = _("{ATTACKING_MON} is making\nan UPROAR!");
+const u8 BattleText_CalmedDown[] = _("{ATTACKING_MON} calmed down.");
+const u8 BattleText_UproarCantSleep[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!");
+const u8 BattleText_Stockpiled[] = _("{ATTACKING_MON} STOCKPILED\n{STRING 0}!");
+const u8 BattleText_StockpiledCant[] = _("{ATTACKING_MON} can’t\nSTOCKPILE any more!");
+const u8 BattleText_UproarCantSleep2[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!");
+const u8 BattleText_UproarKeptAwake[] = _("But the UPROAR kept\n{DEFENDING_MON} awake!");
+const u8 BattleText_StayedAwake[] = _("{DEFENDING_MON} stayed awake\nusing its {STRING 22}!");
+const u8 BattleText_StoringEnergy[] = _("{ATTACKING_MON} is storing\nenergy!");
+const u8 BattleText_UnleashedEnergy[] = _("{ATTACKING_MON} unleashed\nenergy!");
+const u8 BattleText_FatigueConfuse[] = _("{ATTACKING_MON} became\nconfused out of fatigue!");
+const u8 BattleText_PickedUpYen[] = _("{STRING 32} picked up\n¥{STRING 0}!\p");
+const u8 BattleText_Unaffected[] = _("{DEFENDING_MON} is\nunaffected!");
+const u8 BattleText_Transformed[] = _("{ATTACKING_MON} transformed\ninto {STRING 0}!");
+const u8 BattleText_SubMade[] = _("{ATTACKING_MON} made\na SUBSTITUTE!");
+const u8 BattleText_SubAlready[] = _("{ATTACKING_MON} already\nhas a SUBSTITUTE!");
+const u8 BattleText_SubTookDamage[] = _("The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p");
+const u8 BattleText_SubFaded[] = _("{DEFENDING_MON}’s\nSUBSTITUTE faded!\p");
+const u8 BattleText_MustRecharge[] = _("{ATTACKING_MON} must\nrecharge!");
+const u8 BattleText_RageBuilding[] = _("{DEFENDING_MON}’s RAGE\nis building!");
+const u8 BattleText_MoveWasDisabled[] = _("{DEFENDING_MON}’s {STRING 0}\nwas disabled!");
+const u8 BattleText_DisabledNoMore[] = _("{ATTACKING_MON} is disabled\nno more!");
+const u8 BattleText_EncoreGot[] = _("{DEFENDING_MON} got\nan ENCORE!");
+const u8 BattleText_EncoreEnded[] = _("{ATTACKING_MON}’s ENCORE\nended!");
+const u8 BattleText_TookAim[] = _("{ATTACKING_MON} took aim\nat {DEFENDING_MON}!");
+const u8 BattleText_SketchedMove[] = _("{ATTACKING_MON} SKETCHED\n{STRING 0}!");
+const u8 BattleText_DestinyBondTake[] = _("{ATTACKING_MON} is trying\nto take its foe with it!");
+const u8 BattleText_DestinyBondTaken[] = _("{DEFENDING_MON} took\n{ATTACKING_MON} with it!");
+const u8 BattleText_ReducedBy[] = _("Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!");
+const u8 BattleText_StoleSomething[] = _("{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!");
+const u8 BattleText_CantEscapeNow[] = _("{DEFENDING_MON} can’t\nescape now!");
+const u8 BattleText_NightmareStart[] = _("{DEFENDING_MON} fell into\na NIGHTMARE!");
+const u8 BattleText_NightmareLock[] = _("{ATTACKING_MON} is locked\nin a NIGHTMARE!");
+const u8 BattleText_CurseLay[] = _("{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!");
+const u8 BattleText_CurseAfflict[] = _("{ATTACKING_MON} is afflicted\nby the CURSE!");
+const u8 BattleText_SpikesScattered[] = _("{STRING 37} POKéMON team had SPIKES\nscattered around it!");
+const u8 BattleText_SpikesHurt[] = _("{STRING 16} is hurt\nby SPIKES!");
+const u8 BattleText_IdentifiedPoke[] = _("{ATTACKING_MON} identified\n{DEFENDING_MON}!");
+const u8 BattleText_PerishSongFell[] = _("{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!");
+const u8 BattleText_BracedItself[] = _("{ATTACKING_MON} braced\nitself!");
+const u8 BattleText_EnduredHit[] = _("{DEFENDING_MON} ENDURED\nthe hit!");
+const u8 BattleText_MagnitudeCount[] = _("MAGNITUDE {STRING 0}!");
+const u8 BattleText_CutHPMaxATK[] = _("{ATTACKING_MON} cut its own HP\nand maximized ATTACK!");
+const u8 BattleText_CopyStatChanges[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!");
+const u8 BattleText_GotFreeFrom[] = _("{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!");
+const u8 BattleText_LeechShed[] = _("{ATTACKING_MON} shed\nLEECH SEED!");
+const u8 BattleText_SpikesBlownAway[] = _("{ATTACKING_MON} blew away\nSPIKES!");
+const u8 BattleText_FledBattle[] = _("{ATTACKING_MON} fled from\nbattle!");
+const u8 BattleText_ForesawAttack[] = _("{ATTACKING_MON} foresaw\nan attack!");
+const u8 BattleText_TookAttack[] = _("{DEFENDING_MON} took\n{STRING 0}’s attack!");
+const u8 BattleText_ChoseDestiny[] = _("{ATTACKING_MON} chose\n{STRING 17} as its destiny!");
+const u8 BattleText_PokeAttack[] = _("{STRING 0}’s attack!");
+const u8 BattleText_CenterAttention[] = _("{ATTACKING_MON} became the\ncenter of attention!");
+const u8 BattleText_ChargingPower[] = _("{ATTACKING_MON} began\ncharging power!");
+const u8 BattleText_NaturePower[] = _("NATURE POWER turned into\n{STRING 17}!");
+const u8 BattleText_StatusNormal[] = _("{ATTACKING_MON}’s status\nreturned to normal!");
+const u8 BattleText_TormentSubject[] = _("{DEFENDING_MON} was subjected\nto TORMENT!");
+const u8 BattleText_TightenFocus[] = _("{ATTACKING_MON} is tightening\nits focus!");
+const u8 BattleText_TauntFell[] = _("{DEFENDING_MON} fell for\nthe TAUNT!");
+const u8 BattleText_ReadyToHelp[] = _("{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!");
+const u8 BattleText_SwitchedItems[] = _("{ATTACKING_MON} switched\nitems with its opponent!");
+const u8 BattleText_Obtained1[] = _("{ATTACKING_MON} obtained\n{STRING 0}.");
+const u8 BattleText_Obtained2[] = _("{DEFENDING_MON} obtained\n{STRING 1}.");
+const u8 BattleText_Obtained3[] = _("{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}.");
+const u8 BattleText_CopiedObject[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!");
+const u8 BattleText_WishMade[] = _("{ATTACKING_MON} made a WISH!");
+const u8 BattleText_WishTrue[] = _("{STRING 0}’s WISH\ncame true!");
+const u8 BattleText_PlantedRoots[] = _("{ATTACKING_MON} planted its roots!");
+const u8 BattleText_AbsorbNutrients[] = _("{ATTACKING_MON} absorbed\nnutrients with its roots!");
+const u8 BattleText_AnchoredItself[] = _("{DEFENDING_MON} anchored\nitself with its roots!");
+const u8 BattleText_DrowsyMade[] = _("{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!");
+const u8 BattleText_KnockedOffItem[] = _("{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!");
+const u8 BattleText_AbilitySwap[] = _("{ATTACKING_MON} swapped abilities\nwith its opponent!");
+const u8 BattleText_SealedMove[] = _("{ATTACKING_MON} sealed the\nopponent’s move(s)!");
+const u8 BattleText_GrudgeBear[] = _("{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!");
+const u8 BattleText_GrudgeLosePP[] = _("{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!");
+const u8 BattleText_ShroudedItself[] = _("{ATTACKING_MON} shrouded\nitself in {STRING 17}!");
+const u8 BattleText_MagicCoatBounce[] = _("{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!");
+const u8 BattleText_AwaitMove[] = _("{ATTACKING_MON} awaits its foe\nto make a move!");
+const u8 BattleText_SnatchedMove[] = _("{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!");
+const u8 BattleText_ElecWeakened[] = _("Electricity’s power was\nweakened!");
+const u8 BattleText_FireWeakened[] = _("Fire’s power was\nweakened!");
+const u8 BattleText_FoundOne[] = _("{ATTACKING_MON} found\none {STRING 19}!");
+const u8 BattleText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!");
+const u8 BattleText_CantUseItems[] = _("Items can’t be used now.{PAUSE 64}");
+const u8 BattleText_UnknownString2[] = _("For {STRING 16},\n{STRING 19} {STRING 0}");
+const u8 BattleText_HustleUse[] = _("{STRING 16} used\n{STRING 19} to hustle!");
+const u8 BattleText_LostFocus[] = _("{ATTACKING_MON} lost its\nfocus and couldn’t move!");
+const u8 BattleText_DraggedOut[] = _("{DEFENDING_MON} was\ndragged out!\p");
+const u8 BattleText_BrokeWall[] = _("The wall shattered!");
+const u8 BattleText_NoEffect[] = _("But it had no effect!");
+const u8 BattleText_NoMovesLeft[] = _("{STRING 15} has no\nmoves left!\p");
+const u8 BattleText_MoveIsDisabled[] = _("{STRING 15}’s {STRING 17}\nis disabled!\p");
+const u8 BattleText_TormentNoUse[] = _("{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p");
+const u8 BattleText_TauntNoUse[] = _("{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p");
+const u8 BattleText_SealedNoUse[] = _("{STRING 15} can’t use the\nsealed {STRING 17}!\p");
+const u8 BattleText_RainMade[] = _("{STRING 16}’s {STRING 23}\nmade it rain!");
+const u8 BattleText_SpeedRisen[] = _("{STRING 16}’s {STRING 23}\nraised its SPEED!");
+const u8 BattleText_ProtectedBy[] = _("{DEFENDING_MON} was protected\nby {STRING 22}!");
+const u8 BattleText_PreventedBy[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!");
+const u8 BattleText_HPRestoredUsing[] = _("{DEFENDING_MON} restored HP\nusing its {STRING 22}!");
+const u8 BattleText_MadeUseless[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!");
+const u8 BattleText_MadeType[] = _("{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!");
+const u8 BattleText_PreventedPara[] = _("{STRING 14}’s {STRING 22}\nprevents paralysis!");
+const u8 BattleText_PreventedRomance[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents romance!");
+const u8 BattleText_PreventedPoison[] = _("{STRING 14}’s {STRING 22}\nprevents poisoning!");
+const u8 BattleText_PreventedConfusion[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents confusion!");
+const u8 BattleText_RaisedFirePower[] = _("{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!");
+const u8 BattleText_AnchorsItself[] = _("{DEFENDING_MON} anchors\nitself with {STRING 22}!");
+const u8 BattleText_CutsAttack[] = _("{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!");
+const u8 BattleText_PreventedStatLoss[] = _("{STRING 16}’s {STRING 23}\nprevents stat loss!");
+const u8 BattleText_HurtOther[] = _("{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!");
+const u8 BattleText_Traced[] = _("{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!");
+const u8 BattleText_PreventedBurn[] = _("{STRING 14}’s {STRING 24}\nprevents burns!");
+const u8 BattleText_BlocksOther[] = _("{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!");
+const u8 BattleText_BlocksOther2[] = _("{STRING 16}’s {STRING 23}\nblocks {STRING 17}!");
+const u8 BattleText_RestoredHPByItem[] = _("{ATTACKING_MON}’s {STRING 21}\nrestored some HP!");
+const u8 BattleText_WhipSandstorm[] = _("{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!");
+const u8 BattleText_SunIntensified[] = _("{STRING 16}’s {STRING 23}\nintensified the sun’s rays!");
+const u8 BattleText_PreventedLoss[] = _("{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!");
+const u8 BattleText_InfatuatedPoke[] = _("{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!");
+const u8 BattleText_MadeIneffective[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!");
+const u8 BattleText_CuredProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!");
+const u8 BattleText_OozeSuckup[] = _("It sucked up the\nLIQUID OOZE!");
+const u8 BattleText_Transformed2[] = _("{STRING 16} transformed!");
+const u8 BattleText_TookAttack2[] = _("{DEFENDING_MON}’s {STRING 22}\ntook the attack!");
+const u8 BattleText_PreventedSwitch[] = _("{STRING 0}’s {STRING 20}\nprevents switching!\p");
+const u8 BattleText_PreventedOther[] = _("{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!");
+const u8 BattleText_MadeIneffective2[] = _("{STRING 16}’s {STRING 23}\nmade it ineffective!");
+const u8 BattleText_PreventedFlinching[] = _("{STRING 14}’s {STRING 24}\nprevents flinching!");
+const u8 BattleText_PreventedOther2[] = _("{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!");
+const u8 BattleText_CuredOfProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!");
+const u8 BattleText_NoEffectOn[] = _("{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!");
+const u8 BattleText_Sharply[] = _("sharply ");
+const u8 BattleText_Rose[] = _("rose!");
+const u8 BattleText_Harshly[] = _("harshly ");
+const u8 BattleText_Fell[] = _("fell!");
+const u8 BattleText_UnknownString7[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString3[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString4[] = _("Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}");
+const u8 BattleText_UnknownString5[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_UnknownString6[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}");
+const u8 BattleText_StatNoHigher[] = _("{ATTACKING_MON}’s stats won’t\ngo any higher!");
+const u8 BattleText_StatNoLower[] = _("{DEFENDING_MON}’s stats won’t\ngo any lower!");
+const u8 BattleText_Critical[] = _("A critical hit!");
+const u8 BattleText_GrandSlam[] = _("It’s a one-hit KO!");
+const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p");
+const u8 BattleText_MoveForgetAnd[] = _("And...\p");
+const u8 BattleText_CantForgetHM[] = _("HM moves can’t be\nforgotten now.\p");
+const u8 BattleText_NotEffective[] = _("It’s not very effective...");
+const u8 BattleText_SuperEffective[] = _("It’s super effective!");
+const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p");
+const u8 BattleText_FledUsingItem[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p");
+const u8 BattleText_FledUsingOther[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p");
+const u8 BattleText_FledWild[] = _("{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!");
+const u8 BattleText_PlayerDefeatedTrainer[] = _("Player defeated\n{STRING 29}!");
+const u8 BattleText_PlayerDefeatedTrainers[] = _("Player beat {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_PlayerLostTrainer[] = _("Player lost against\n{STRING 29}!");
+const u8 BattleText_PlayerLostTrainers[] = _("Player lost to {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_PlayerTiedTrainer[] = _("Player tied against\n{STRING 29}!");
+const u8 BattleText_PlayerTiedTrainers[] = _("Player tied against {STRING 30}\nand {STRING 29}!");
+const u8 BattleText_FledSingle[] = _("{PLAY_SE SE_NIGERU}{STRING 29} fled!");
+const u8 BattleText_FledDouble[] = _("{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!");
+const u8 BattleText_NoRunning[] = _("No! There’s no running\nfrom a TRAINER battle!\p");
+const u8 BattleText_CantEscape2[] = _("Can’t escape!\p");
+const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRCH: D-don’t leave\nme here like this!\p");
+const u8 BattleText_Nothing[] = _("But nothing happened!");
+const u8 BattleText_Failed[] = _("But it failed!");
+const u8 BattleText_HurtItself[] = _("It hurt itself in its\nconfusion!");
+const u8 BattleText_MirrorFail[] = _("The MIRROR MOVE failed!");
+const u8 BattleText_RainStart[] = _("It started to rain!");
+const u8 BattleText_PourStart[] = _("A downpour started!");
+const u8 BattleText_RainCont1[] = _("Rain continues to fall.");
+const u8 BattleText_PourCont[] = _("The downpour continues.");
+const u8 BattleText_RainStop[] = _("The rain stopped.");
+const u8 BattleText_SandBrewed[] = _("A sandstorm brewed!");
+const u8 BattleText_SandRages[] = _("The sandstorm rages.");
+const u8 BattleText_SandSubsided[] = _("The sandstorm subsided.");
+const u8 BattleText_SunBright[] = _("The sunlight got bright!");
+const u8 BattleText_SunStrong[] = _("The sunlight is strong.");
+const u8 BattleText_SunFaded[] = _("The sunlight faded.");
+const u8 BattleText_HailStart[] = _("It started to hail!");
+const u8 BattleText_HailCont[] = _("Hail continues to fall.");
+const u8 BattleText_HailStop[] = _("The hail stopped.");
+const u8 BattleText_SpitUpFail[] = _("But it failed to SPIT UP\na thing!");
+const u8 BattleText_SwallowFail[] = _("But it failed to SWALLOW\na thing!");
+const u8 BattleText_WindHeatWave[] = _("The wind turned into a\nHEAT WAVE!");
+const u8 BattleText_StatElim[] = _("All stat changes were\neliminated!");
+const u8 BattleText_CoinScatter[] = _("Coins scattered everywhere!");
+const u8 BattleText_SubWeak[] = _("It was too weak to make\na SUBSTITUTE!");
+const u8 BattleText_PainSplit[] = _("The battlers shared\ntheir pain!");
+const u8 BattleText_BellChime[] = _("A bell chimed!");
+const u8 BattleText_PerishSong[] = _("All affected POKéMON will\nfaint in 3 turns!");
+const u8 BattleText_NoPP1[] = _("There’s no PP left for\nthis move!\p");
+const u8 BattleText_NoPP2[] = _("But there was no PP left\nfor the move!");
+const u8 BattleText_IgnoredOrdersSLP[] = _("{ATTACKING_MON} ignored\norders while asleep!");
+const u8 BattleText_IgnoredOrders[] = _("{ATTACKING_MON} ignored\norders!");
+const u8 BattleText_BeganNap[] = _("{ATTACKING_MON} began to nap!");
+const u8 BattleText_LoafingAround[] = _("{ATTACKING_MON} is\nloafing around!");
+const u8 BattleText_WontObey[] = _("{ATTACKING_MON} won’t\nobey!");
+const u8 BattleText_TurnedAway[] = _("{ATTACKING_MON} turned away!");
+const u8 BattleText_NotNotice[] = _("{ATTACKING_MON} pretended\nto not notice!");
+const u8 BattleText_WillSwitch[] = _("{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?");
+const u8 BattleText_LearnedMove2[] = _("{ATTACKING_MON} learned\n{STRING 0}!");
+const u8 BattleText_PlayerDefeatedTrainer2[] = _("Player defeated\n{STRING 25} {STRING 26}!\p");
+const u8 BattleText_CreptCloser[] = _("{STRING 32} crept closer to\n{STRING 3}!");
+const u8 BattleText_CantGetCloser[] = _("{STRING 32} can’t get any closer!");
+const u8 BattleText_WatchingCarefully[] = _("{STRING 3} is watching\ncarefully!");
+const u8 BattleText_CuriousAbout[] = _("{STRING 3} is curious about\nthe {STRING 0}!");
+const u8 BattleText_EnthralledBy[] = _("{STRING 3} is enthralled by\nthe {STRING 0}!");
+const u8 BattleText_IgnoredThing[] = _("{STRING 3} completely ignored\nthe {STRING 0}!");
+const u8 BattleText_ThrewBlock[] = _("{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!");
+const u8 BattleText_SafariOver[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p");
+const u8 BattleText_WildAppeared1[] = _("Wild {STRING 3} appeared!\p");
+const u8 BattleText_WildAppeared2[] = _("Wild {STRING 3} appeared!\p");
+const u8 BattleText_WildAppeared3[] = _("Wild {STRING 3} appeared!{PAUSE 127}");
+const u8 BattleText_WildDoubleAppeared[] = _("Wild {STRING 5} and\n{STRING 3} appeared!\p");
+const u8 BattleText_SingleWantToBattle1[] = _("{STRING 25} {STRING 26}\nwould like to battle!\p");
+const u8 BattleText_SingleWantToBattle2[] = _("{STRING 29}\nwants to battle!");
+const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} and {STRING 30}\nwant to battle!");
+const u8 BattleText_SentOutSingle1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3}!");
+const u8 BattleText_SentOutDouble1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!");
+const u8 BattleText_SentOutSingle2[] = _("{STRING 25} {STRING 26} sent\nout {STRING 0}!");
+const u8 BattleText_SentOutSingle3[] = _("{STRING 29} sent\nout {STRING 3}!");
+const u8 BattleText_SentOutDouble2[] = _("{STRING 29} sent out\n{STRING 3} and {STRING 5}!");
+const u8 BattleText_SentOutDouble3[] = _("{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!");
+const u8 BattleText_SentOutSingle4[] = _("{STRING 29} sent out\n{STRING 0}!");
+const u8 BattleText_SentOutSingle5[] = _("{STRING 31} sent out\n{STRING 0}!");
+const u8 BattleText_SentOutSingle6[] = _("Go! {STRING 2}!");
+const u8 BattleText_SentOutDouble4[] = _("Go! {STRING 2} and\n{STRING 4}!");
+const u8 BattleText_SentOutSingle7[] = _("Go! {STRING 0}!");
+const u8 BattleText_SentOutSingle8[] = _("Do it! {STRING 0}!");
+const u8 BattleText_SentOutSingle9[] = _("Go for it, {STRING 0}!");
+const u8 BattleText_SentOutSingle10[] = _("Your foe’s weak!\nGet’m, {STRING 0}!");
+const u8 BattleText_SentOutSingle11[] = _("{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!");
+const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, that’s enough!\nCome back!");
+const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, come back!");
+const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, OK!\nCome back!");
+const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, good!\nCome back!");
+const u8 BattleText_WithdrewPoke1[] = _("{STRING 25} {STRING 26}\nwithdrew {STRING 0}!");
+const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} withdrew\n{STRING 0}!");
+const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} withdrew\n{STRING 0}!");
+const u8 BattleText_Wild[] = _("Wild ");
+const u8 BattleText_Foe[] = _("Foe ");
+const u8 BattleText_Foe2[] = _("Foe ");
+const u8 BattleText_Ally[] = _("Ally ");
+const u8 BattleText_Foe3[] = _("Foe ");
+const u8 BattleText_Ally2[] = _("Ally ");
+const u8 BattleText_Foe4[] = _("Foe ");
+const u8 BattleText_Ally3[] = _("Ally ");
+const u8 BattleText_OpponentUsedMove[] = _("{ATTACKING_MON} used\n{STRING 1}");
+const u8 BattleText_Exclamation2[] = _("!");
+const u8 BattleText_Exclamation3[] = _("!");
+const u8 BattleText_Exclamation4[] = _("!");
+const u8 BattleText_Exclamation5[] = _("!");
+const u8 BattleText_Exclamation[] = _("!");
+const u8 BattleStatText_HP[] = _("HP");
+const u8 BattleStatText_Attack[] = _("ATTACK");
+const u8 BattleStatText_Defense[] = _("DEFENSE");
+const u8 BattleStatText_Speed[] = _("SPEED");
+const u8 BattleStatText_SpAtk[] = _("SP. ATK");
+const u8 BattleStatText_SpDef[] = _("SP. DEF");
+const u8 BattleStatText_Accuracy[] = _("accuracy");
+const u8 BattleStatText_Evasion[] = _("evasiveness");
+const u8 ContestStatText_TooSpicy[] = _("was too spicy!");
+const u8 ContestStatText_TooDry[] = _("was too dry!");
+const u8 ContestStatText_TooSweet[] = _("was too sweet!");
+const u8 ContestStatText_TooBitter[] = _("was too bitter!");
+const u8 ContestStatText_TooSour[] = _("was too sour!");
+const u8 BattleText_Used1[] = _("{STRING 32} used\n{STRING 19}!");
+const u8 BattleText_TutorialUsed[] = _("WALLY used\n{STRING 19}!");
+const u8 BattleText_Used2[] = _("{STRING 25} {STRING 26}\nused {STRING 19}!");
+const u8 BattleText_BlockBall[] = _("The TRAINER blocked the BALL!");
+const u8 BattleText_DontBeAThief[] = _("Don’t be a thief!");
+const u8 BattleText_DodgeBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!");
+const u8 BattleText_MissPoke[] = _("You missed the POKéMON!");
+const u8 BattleText_BallBrokeOhNo[] = _("Oh, no!\nThe POKéMON broke free!");
+const u8 BattleText_BallBrokeAppeared[] = _("Aww!\nIt appeared to be caught!");
+const u8 BattleText_BallBrokeAlmost[] = _("Aargh!\nAlmost had it!");
+const u8 BattleText_BallBrokeSoClose[] = _("Shoot!\nIt was so close, too!");
+const u8 BattleText_BallCaught1[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p");
+const u8 BattleText_BallCaught2[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}");
+const u8 BattleText_GiveNickname[] = _("Give a nickname to the\ncaptured {STRING 3}?");
+const u8 BattleText_SentToPC[] = _("{STRING 3} was sent to\n{STRING 35} PC.");
+const u8 BattleText_Someone[] = _("someone’s");
+const u8 BattleText_Lanette[] = _("LANETTE’s");
+const u8 BattleText_AddedToDex[] = _("{STRING 3}’s data was\nadded to the POKéDEX.\p");
+const u8 BattleText_Raining[] = _("It is raining.");
+const u8 BattleText_Sandstorm[] = _("A sandstorm is raging.");
+const u8 BattleText_BoxFull[] = _("The BOX is full!\nYou can’t catch any more!\p");
+const u8 BattleText_EnigmaBerry[] = _("ENIGMA BERRY");
+const u8 BattleText_Berry[] = _(" BERRY");
+const u8 BattleText_CuredParalysis[] = _("{STRING 16}’s {STRING 19}\ncured paralysis!");
+const u8 BattleText_CuredPoison[] = _("{STRING 16}’s {STRING 19}\ncured poison!");
+const u8 BattleText_CuredBurn[] = _("{STRING 16}’s {STRING 19}\nhealed its burn!");
+const u8 BattleText_CuredFreeze[] = _("{STRING 16}’s {STRING 19}\ndefrosted it!");
+const u8 BattleText_CuredSleep[] = _("{STRING 16}’s {STRING 19}\nwoke it from its sleep!");
+const u8 BattleText_CuredConfusion[] = _("{STRING 16}’s {STRING 19}\nsnapped it out of confusion!");
+const u8 BattleText_CuredStatus[] = _("{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!");
+const u8 BattleText_NormalizedStatus[] = _("{STRING 16}’s {STRING 19}\nnormalized its status!");
+const u8 BattleText_RestoredHealth[] = _("{STRING 16}’s {STRING 19}\nrestored health!");
+const u8 BattleText_RestoredPP[] = _("{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!");
+const u8 BattleText_RestoredStatus[] = _("{STRING 16}’s {STRING 19}\nrestored its status!");
+const u8 BattleText_RestoredHPLittle[] = _("{STRING 16}’s {STRING 19}\nrestored its HP a little!");
+const u8 BattleText_ChoiceBand[] = _("{STRING 19} allows the\nuse of only {STRING 17}!\p");
+const u8 BattleText_FocusSash[] = _("{DEFENDING_MON} hung on\nusing its {STRING 19}!");
+const u8 BattleText_Terminator2[] = _("");
+const u8 BattleText_WallyBall[] = _("You throw a BALL now, right?\nI... I’ll do my best!");
+const u8 BattleText_StartEvo[] = _("What?\n{STRING 2} is evolving!");
+const u8 BattleText_FinishEvo[] = _("Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p");
+const u8 BattleText_StopEvo[] = _("Huh? {STRING 2}\nstopped evolving!\p");
+const u8 BattleText_OtherMenu[] = _("What should\n{STRING 15} do?");
+const u8 BattleText_PlayerMenu[] = _("What will\n{STRING 32} do?");
+const u8 BattleText_WallyMenu[] = _("What will\nWALLY do?");
+const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Link standby...");
+const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN");
+const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN");
+const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/");
+const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); // cant think of a better name
+const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?");
+const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo");
+const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?");
+const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}");
+const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}");
+const u8 BattleText_Plus[] = _("+");
+const u8 BattleText_Dash[] = _("-");
+const u8 BattleText_HP[] = _("HP ");
+const u8 BattleText_Attack[] = _("ATTACK ");
+const u8 BattleText_Defense[] = _("DEFENSE");
+const u8 BattleText_SpAtk[] = _("SP. ATK");
+const u8 BattleText_SpDef[] = _("SP. DEF");
+const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARI BALLS");
+const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Left: ");
+const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}");
+const u8 BattleText_Sleep[] = _("sleep");
+const u8 BattleText_PoisonStatus[] = _("poison");
+const u8 BattleText_Burn[] = _("burn");
+const u8 BattleText_Paralysis[] = _("paralysis");
+const u8 BattleText_IceStatus[] = _("ice");
+const u8 BattleText_Confusion[] = _("confusion");
+const u8 BattleText_Love[] = _("love");
+const u8 BattleText_Format3[] = _(" and ");
+const u8 BattleText_Format4[] = _(", ");
+const u8 BattleText_Format5[] = _(" ");
+const u8 BattleText_Format6[] = _("\l");
+const u8 BattleText_Format7[] = _("\n");
+const u8 BattleText_Format8[] = _("are");
+const u8 BattleText_Format9[] = _("are");
+const u8 gBadEggNickname[] = _("Bad EGG"); // 8400E3A
+const u8 BattleText_Wally[] = _("WALLY");
+const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); // 8400E48
+const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); // 8400E4F
+const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Tie"); // 8400E57
+const u8 BattleText_Format10[] = _(" is");
+const u8 BattleText_Format11[] = _("’s");
+const u8 BattleText_Normal[] = _("a NORMAL move");
+const u8 BattleText_Fighting[] = _("a FIGHTING move");
+const u8 BattleText_Flying[] = _("a FLYING move");
+const u8 BattleText_Poison[] = _("a POISON move");
+const u8 BattleText_Ground[] = _("a GROUND move");
+const u8 BattleText_Rock[] = _("a ROCK move");
+const u8 BattleText_Bug[] = _("a BUG move");
+const u8 BattleText_Ghost[] = _("a GHOST move");
+const u8 BattleText_Steel[] = _("a STEEL move");
+const u8 BattleText_Typeless[] = _("a ??? move");
+const u8 BattleText_Fire[] = _("a FIRE move");
+const u8 BattleText_Water[] = _("a WATER move");
+const u8 BattleText_Grass[] = _("a GRASS move");
+const u8 BattleText_Electric[] = _("an ELECTRIC move");
+const u8 BattleText_Psychic[] = _("a PSYCHIC move");
+const u8 BattleText_Ice[] = _("an ICE move");
+const u8 BattleText_Dragon[] = _("a DRAGON move");
+const u8 BattleText_Dark[] = _("a DARK move");
+
+const u8 *const gUnknown_08400F58[] =
+{
+ BattleStatText_HP,
+ BattleStatText_Attack,
+ BattleStatText_Defense,
+ BattleStatText_Speed,
+ BattleStatText_SpAtk,
+ BattleStatText_SpDef,
+ BattleStatText_Accuracy,
+ BattleStatText_Evasion,
+};
+
+const u8 *const gUnknown_08400F78[] =
+{
+ ContestStatText_TooSpicy,
+ ContestStatText_TooDry,
+ ContestStatText_TooSweet,
+ ContestStatText_TooBitter,
+ ContestStatText_TooSour,
+};
+
+const u8 *const gBattleStringsTable[] =
+{
+ BattleText_UnknownString,
+ BattleText_GainExpPoints,
+ BattleText_GrewLevel,
+ BattleText_LearnedMove,
+ BattleText_TryingToLearnMove,
+ BattleText_CantLearnMore,
+ BattleText_DeleteMove,
+ BattleText_DeletedMove,
+ BattleText_StopLearning,
+ BattleText_DidNotLearn,
+ BattleText_LearnedMove2,
+ BattleText_AttackMissed,
+ BattleText_ProtectedItself,
+ BattleText_StatNoHigher,
+ BattleText_AvoidedDamage,
+ BattleText_DoesntAffect,
+ BattleText_AttackingFainted,
+ BattleText_DefendingFainted,
+ BattleText_WinningPrize,
+ BattleText_OutOfUsablePoke,
+ BattleText_WhitedOut,
+ BattleText_PreventEscape,
+ BattleText_HitMulti,
+ BattleText_FellAsleep,
+ BattleText_MadeAsleep,
+ BattleText_DefendingAsleep,
+ BattleText_AttackingAsleep,
+ BattleText_WasntAffected,
+ BattleText_Poisoned,
+ BattleText_Poisoned2,
+ BattleText_PoisonHurt,
+ BattleText_AlreadyPoisoned,
+ BattleText_BadlyPoisoned,
+ BattleText_EnergyDrained,
+ BattleText_Burned,
+ BattleText_Burned2,
+ BattleText_BurnHurt,
+ BattleText_Frozen,
+ BattleText_Frozen2,
+ BattleText_FrozenSolid,
+ BattleText_DefendingDefrosted,
+ BattleText_AttackingDefrosted,
+ BattleText_Defrosted,
+ BattleText_Paralyzed,
+ BattleText_Paralyzed2,
+ BattleText_Paralyzed3,
+ BattleText_AlreadyParalyzed,
+ BattleText_ParalysisHealed,
+ BattleText_DreamEaten,
+ BattleText_AttackingStatNoHigher,
+ BattleText_DefendingStatNoHigher,
+ BattleText_StoppedWorking,
+ BattleText_StoppedWorking2,
+ BattleText_Confused,
+ BattleText_ConfusionSnapOut,
+ BattleText_BecameConfused,
+ BattleText_AlreadyConfused,
+ BattleText_FellLove,
+ BattleText_InLoveWith,
+ BattleText_ImmobilizedBy,
+ BattleText_BlownAway,
+ BattleText_TypeTransform,
+ BattleText_Flinched,
+ BattleText_RegainedHealth,
+ BattleText_HPFull,
+ BattleText_RaisedSpDef,
+ BattleText_RaisedDefense,
+ BattleText_CoveredVeil,
+ BattleText_SafeguardActive,
+ BattleText_SafeguardFaded,
+ BattleText_WentToSleep,
+ BattleText_SpeltHealthy,
+ BattleText_WhipWhirlwind,
+ BattleText_TookSunlight,
+ BattleText_LoweredHead,
+ BattleText_IsGlowing,
+ BattleText_FlewHigh,
+ BattleText_DugHole,
+ BattleText_SqueezedBind,
+ BattleText_TrappedVortex,
+ BattleText_Wrapped,
+ BattleText_Clamped,
+ BattleText_HurtBy,
+ BattleText_FreedFrom,
+ BattleText_KeptGoingCrash,
+ BattleText_MistShroud,
+ BattleText_MistProtect,
+ BattleText_GetPumped,
+ BattleText_HitRecoil,
+ BattleText_ProtectedItself2,
+ BattleText_SandBuffeted,
+ BattleText_HailStricken,
+ BattleText_WasSeeded,
+ BattleText_EvadedAttack,
+ BattleText_HealthSapped,
+ BattleText_FastAsleep,
+ BattleText_WokeUp,
+ BattleText_UproarAwake,
+ BattleText_UproarWoke,
+ BattleText_UproarCaused,
+ BattleText_UproarMaking,
+ BattleText_CalmedDown,
+ BattleText_UproarCantSleep,
+ BattleText_Stockpiled,
+ BattleText_StockpiledCant,
+ BattleText_UproarCantSleep2,
+ BattleText_UproarKeptAwake,
+ BattleText_StayedAwake,
+ BattleText_StoringEnergy,
+ BattleText_UnleashedEnergy,
+ BattleText_FatigueConfuse,
+ BattleText_PickedUpYen,
+ BattleText_Unaffected,
+ BattleText_Transformed,
+ BattleText_SubMade,
+ BattleText_SubAlready,
+ BattleText_SubTookDamage,
+ BattleText_SubFaded,
+ BattleText_MustRecharge,
+ BattleText_RageBuilding,
+ BattleText_MoveWasDisabled,
+ BattleText_MoveIsDisabled,
+ BattleText_DisabledNoMore,
+ BattleText_EncoreGot,
+ BattleText_EncoreEnded,
+ BattleText_TookAim,
+ BattleText_SketchedMove,
+ BattleText_DestinyBondTake,
+ BattleText_DestinyBondTaken,
+ BattleText_ReducedBy,
+ BattleText_StoleSomething,
+ BattleText_CantEscapeNow,
+ BattleText_NightmareStart,
+ BattleText_NightmareLock,
+ BattleText_CurseLay,
+ BattleText_CurseAfflict,
+ BattleText_SpikesScattered,
+ BattleText_SpikesHurt,
+ BattleText_IdentifiedPoke,
+ BattleText_PerishSongFell,
+ BattleText_BracedItself,
+ BattleText_EnduredHit,
+ BattleText_MagnitudeCount,
+ BattleText_CutHPMaxATK,
+ BattleText_CopyStatChanges,
+ BattleText_GotFreeFrom,
+ BattleText_LeechShed,
+ BattleText_SpikesBlownAway,
+ BattleText_FledBattle,
+ BattleText_ForesawAttack,
+ BattleText_TookAttack,
+ BattleText_PokeAttack,
+ BattleText_CenterAttention,
+ BattleText_ChargingPower,
+ BattleText_NaturePower,
+ BattleText_StatusNormal,
+ BattleText_NoMovesLeft,
+ BattleText_TormentSubject,
+ BattleText_TormentNoUse,
+ BattleText_TightenFocus,
+ BattleText_TauntFell,
+ BattleText_TauntNoUse,
+ BattleText_ReadyToHelp,
+ BattleText_SwitchedItems,
+ BattleText_CopiedObject,
+ BattleText_WishMade,
+ BattleText_WishTrue,
+ BattleText_PlantedRoots,
+ BattleText_AbsorbNutrients,
+ BattleText_AnchoredItself,
+ BattleText_DrowsyMade,
+ BattleText_KnockedOffItem,
+ BattleText_AbilitySwap,
+ BattleText_SealedMove,
+ BattleText_SealedNoUse,
+ BattleText_GrudgeBear,
+ BattleText_GrudgeLosePP,
+ BattleText_ShroudedItself,
+ BattleText_MagicCoatBounce,
+ BattleText_AwaitMove,
+ BattleText_SnatchedMove,
+ BattleText_RainMade,
+ BattleText_SpeedRisen,
+ BattleText_ProtectedBy,
+ BattleText_PreventedBy,
+ BattleText_HPRestoredUsing,
+ BattleText_MadeType,
+ BattleText_PreventedPara,
+ BattleText_PreventedRomance,
+ BattleText_PreventedPoison,
+ BattleText_PreventedConfusion,
+ BattleText_RaisedFirePower,
+ BattleText_AnchorsItself,
+ BattleText_CutsAttack,
+ BattleText_PreventedStatLoss,
+ BattleText_HurtOther,
+ BattleText_Traced,
+ BattleText_Sharply,
+ BattleText_Rose,
+ BattleText_Harshly,
+ BattleText_Fell,
+ BattleText_UnknownString7,
+ BattleText_UnknownString3,
+ BattleText_UnknownString5,
+ BattleText_UnknownString6,
+ BattleText_Critical,
+ BattleText_GrandSlam,
+ BattleText_MoveForget123,
+ BattleText_MoveForgetAnd,
+ BattleText_NotEffective,
+ BattleText_SuperEffective,
+ BattleText_GotAwaySafely,
+ BattleText_FledWild,
+ BattleText_NoRunning,
+ BattleText_CantEscape2,
+ BattleText_BirchDontLeaveMe,
+ BattleText_Nothing,
+ BattleText_Failed,
+ BattleText_HurtItself,
+ BattleText_MirrorFail,
+ BattleText_RainStart,
+ BattleText_PourStart,
+ BattleText_RainCont1,
+ BattleText_PourCont,
+ BattleText_RainStop,
+ BattleText_SandBrewed,
+ BattleText_SandRages,
+ BattleText_SandSubsided,
+ BattleText_SunBright,
+ BattleText_SunStrong,
+ BattleText_SunFaded,
+ BattleText_HailStart,
+ BattleText_HailCont,
+ BattleText_HailStop,
+ BattleText_SpitUpFail,
+ BattleText_SwallowFail,
+ BattleText_WindHeatWave,
+ BattleText_StatElim,
+ BattleText_CoinScatter,
+ BattleText_SubWeak,
+ BattleText_PainSplit,
+ BattleText_BellChime,
+ BattleText_PerishSong,
+ BattleText_NoPP1,
+ BattleText_NoPP2,
+ BattleText_Used1,
+ BattleText_TutorialUsed,
+ BattleText_BlockBall,
+ BattleText_DontBeAThief,
+ BattleText_DodgeBall,
+ BattleText_MissPoke,
+ BattleText_BallBrokeOhNo,
+ BattleText_BallBrokeAppeared,
+ BattleText_BallBrokeAlmost,
+ BattleText_BallBrokeSoClose,
+ BattleText_BallCaught1,
+ BattleText_BallCaught2,
+ BattleText_GiveNickname,
+ BattleText_SentToPC,
+ BattleText_AddedToDex,
+ BattleText_Raining,
+ BattleText_Sandstorm,
+ BattleText_CantEscape,
+ BattleText_IgnoredOrdersSLP,
+ BattleText_IgnoredOrders,
+ BattleText_BeganNap,
+ BattleText_LoafingAround,
+ BattleText_WontObey,
+ BattleText_TurnedAway,
+ BattleText_NotNotice,
+ BattleText_WillSwitch,
+ BattleText_CreptCloser,
+ BattleText_CantGetCloser,
+ BattleText_WatchingCarefully,
+ BattleText_CuriousAbout,
+ BattleText_EnthralledBy,
+ BattleText_IgnoredThing,
+ BattleText_ThrewBlock,
+ BattleText_SafariOver,
+ BattleText_CuredParalysis,
+ BattleText_CuredPoison,
+ BattleText_CuredBurn,
+ BattleText_CuredFreeze,
+ BattleText_CuredSleep,
+ BattleText_CuredConfusion,
+ BattleText_CuredStatus,
+ BattleText_RestoredHealth,
+ BattleText_RestoredPP,
+ BattleText_RestoredStatus,
+ BattleText_RestoredHPLittle,
+ BattleText_ChoiceBand,
+ BattleText_FocusSash,
+ BattleText_Terminator2,
+ BattleText_PreventedBurn,
+ BattleText_BlocksOther,
+ BattleText_RestoredHPByItem,
+ BattleText_WhipSandstorm,
+ BattleText_PreventedLoss,
+ BattleText_InfatuatedPoke,
+ BattleText_MadeIneffective,
+ BattleText_CuredProblem,
+ BattleText_OozeSuckup,
+ BattleText_Transformed2,
+ BattleText_ElecWeakened,
+ BattleText_FireWeakened,
+ BattleText_HidUnderwater,
+ BattleText_SprangUp,
+ BattleText_CantForgetHM,
+ BattleText_FoundOne,
+ BattleText_PlayerDefeatedTrainer2,
+ BattleText_SoothingAroma,
+ BattleText_CantUseItems,
+ BattleText_UnknownString2,
+ BattleText_UnknownString4,
+ BattleText_HustleUse,
+ BattleText_MadeUseless,
+ BattleText_SandTombTrapped,
+ BattleText_Terminator,
+ BattleText_BoostedExp,
+ BattleText_SunIntensified,
+ BattleText_GroundMoveNegate,
+ BattleText_WallyBall,
+ BattleText_TookAttack2,
+ BattleText_ChoseDestiny,
+ BattleText_LostFocus,
+ BattleText_UseNext,
+ BattleText_FledUsingItem,
+ BattleText_FledUsingOther,
+ BattleText_DraggedOut,
+ BattleText_PreventedOther,
+ BattleText_NormalizedStatus,
+ BattleText_Used2,
+ BattleText_BoxFull,
+ BattleText_AvoidedAttack,
+ BattleText_MadeIneffective2,
+ BattleText_PreventedFlinching,
+ BattleText_AlreadyBurned,
+ BattleText_StatNoLower,
+ BattleText_BlocksOther2,
+ BattleText_WoreOff,
+ BattleText_RaisedDefenseLittle,
+ BattleText_RaisedSpDefLittle,
+ BattleText_BrokeWall,
+ BattleText_PreventedOther2,
+ BattleText_CuredOfProblem,
+ BattleText_AttackingCantEscape,
+ BattleText_Obtained1,
+ BattleText_Obtained2,
+ BattleText_Obtained3,
+ BattleText_NoEffect,
+ BattleText_NoEffectOn,
+};
+
+// below are lists of battle string enums and NOT pointers to the strings.
+const u16 gMissStrings[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_ProtectedItself,
+ BATTLE_TEXT_AvoidedAttack,
+ BATTLE_TEXT_AvoidedDamage,
+ BATTLE_TEXT_GroundMoveNegate,
+};
+
+const u16 BattleTextList_401512[] =
+{
+ BATTLE_TEXT_CantEscape2,
+ BATTLE_TEXT_BirchDontLeaveMe,
+ BATTLE_TEXT_PreventEscape,
+ BATTLE_TEXT_CantEscape,
+ BATTLE_TEXT_AttackingCantEscape,
+};
+
+const u16 BattleTextList_40151C[] =
+{
+ BATTLE_TEXT_RainStart,
+ BATTLE_TEXT_PourStart,
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_SandBrewed,
+ BATTLE_TEXT_SunBright,
+ BATTLE_TEXT_HailStart,
+};
+
+const u16 BattleTextList_401528[] =
+{
+ BATTLE_TEXT_SandRages,
+ BATTLE_TEXT_HailCont,
+};
+
+const u16 BattleTextList_40152C[] =
+{
+ BATTLE_TEXT_SandBuffeted,
+ BATTLE_TEXT_HailStricken,
+};
+
+const u16 BattleTextList_401530[] =
+{
+ BATTLE_TEXT_SandSubsided,
+ BATTLE_TEXT_HailStop,
+};
+
+const u16 BattleTextList_401534[] =
+{
+ BATTLE_TEXT_RainCont1,
+ BATTLE_TEXT_PourCont,
+ BATTLE_TEXT_RainStop,
+};
+
+const u16 BattleTextList_40153A[] =
+{
+ BATTLE_TEXT_ProtectedItself2,
+ BATTLE_TEXT_BracedItself,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_401540[] =
+{
+ BATTLE_TEXT_Failed,
+ BATTLE_TEXT_RaisedDefense,
+ BATTLE_TEXT_RaisedDefenseLittle,
+ BATTLE_TEXT_RaisedSpDef,
+ BATTLE_TEXT_RaisedSpDefLittle,
+ BATTLE_TEXT_CoveredVeil,
+};
+
+const u16 BattleTextList_40154C[] =
+{
+ BATTLE_TEXT_WasSeeded,
+ BATTLE_TEXT_EvadedAttack,
+ BATTLE_TEXT_DoesntAffect,
+ BATTLE_TEXT_HealthSapped,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_401556[] =
+{
+ BATTLE_TEXT_WentToSleep,
+ BATTLE_TEXT_SpeltHealthy,
+};
+
+const u16 BattleTextList_40155A[] =
+{
+ BATTLE_TEXT_UproarMaking,
+ BATTLE_TEXT_CalmedDown,
+};
+
+const u16 BattleTextList_40155E[] =
+{
+ BATTLE_TEXT_Stockpiled,
+ BATTLE_TEXT_StockpiledCant,
+};
+
+const u16 BattleTextList_401562[] =
+{
+ BATTLE_TEXT_WokeUp,
+ BATTLE_TEXT_UproarWoke,
+};
+
+const u16 BattleTextList_401566[] =
+{
+ BATTLE_TEXT_SwallowFail,
+ BATTLE_TEXT_HPFull,
+};
+
+const u16 BattleTextList_40156A[] =
+{
+ BATTLE_TEXT_UproarCantSleep2,
+ BATTLE_TEXT_UproarKeptAwake,
+ BATTLE_TEXT_StayedAwake,
+};
+
+const u16 BattleTextList_401570[] =
+{
+ BATTLE_TEXT_UnknownString7,
+ BATTLE_TEXT_UnknownString3,
+ BATTLE_TEXT_AttackingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+ BATTLE_TEXT_UnknownString4,
+ BATTLE_TEXT_HustleUse,
+};
+
+const u16 BattleTextList_40157C[] =
+{
+ BATTLE_TEXT_UnknownString5,
+ BATTLE_TEXT_UnknownString6,
+ BATTLE_TEXT_DefendingStatNoHigher,
+ BATTLE_TEXT_Terminator2,
+};
+
+const u16 BattleTextList_401584[] =
+{
+ BATTLE_TEXT_WhipWhirlwind,
+ BATTLE_TEXT_TookSunlight,
+ BATTLE_TEXT_LoweredHead,
+ BATTLE_TEXT_IsGlowing,
+ BATTLE_TEXT_FlewHigh,
+ BATTLE_TEXT_DugHole,
+ BATTLE_TEXT_HidUnderwater,
+ BATTLE_TEXT_SprangUp,
+};
+
+const u16 BattleTextList_401594[] =
+{
+ BATTLE_TEXT_SqueezedBind,
+ BATTLE_TEXT_Wrapped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_Clamped,
+ BATTLE_TEXT_TrappedVortex,
+ BATTLE_TEXT_SandTombTrapped,
+};
+
+const u16 BattleTextList_4015A0[] =
+{
+ BATTLE_TEXT_MistShroud,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A4[] =
+{
+ BATTLE_TEXT_GetPumped,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015A8[] =
+{
+ BATTLE_TEXT_Transformed,
+ BATTLE_TEXT_Failed,
+};
+
+const u16 BattleTextList_4015AC[] =
+{
+ BATTLE_TEXT_SubMade,
+ BATTLE_TEXT_SubWeak,
+};
+
+const u16 BattleTextList_4015B0[] =
+{
+ BATTLE_TEXT_Poisoned,
+ BATTLE_TEXT_Poisoned2,
+};
+
+const u16 BattleTextList_4015B4[] =
+{
+ BATTLE_TEXT_Paralyzed,
+ BATTLE_TEXT_Paralyzed2,
+};
+
+const u16 BattleTextList_4015B8[] =
+{
+ BATTLE_TEXT_FellAsleep,
+ BATTLE_TEXT_MadeAsleep,
+};
+
+const u16 BattleTextList_4015BC[] =
+{
+ BATTLE_TEXT_Burned,
+ BATTLE_TEXT_Burned2,
+};
+
+const u16 BattleTextList_4015C0[] =
+{
+ BATTLE_TEXT_Frozen,
+ BATTLE_TEXT_Frozen2,
+};
+
+const u16 BattleTextList_4015C4[] =
+{
+ BATTLE_TEXT_AttackingDefrosted,
+ BATTLE_TEXT_Defrosted,
+};
+
+const u16 BattleTextList_4015C8[] =
+{
+ BATTLE_TEXT_AttackMissed,
+ BATTLE_TEXT_Unaffected,
+ BATTLE_TEXT_FellLove,
+ BATTLE_TEXT_InfatuatedPoke,
+};
+
+const u16 BattleTextList_4015D0[] =
+{
+ BATTLE_TEXT_EnergyDrained,
+ BATTLE_TEXT_OozeSuckup,
+};
+
+const u16 BattleTextList_4015D4[] =
+{
+ BATTLE_TEXT_ElecWeakened,
+ BATTLE_TEXT_FireWeakened,
+};
+
+const u16 BattleTextList_4015D8[] =
+{
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_BellChime,
+ BATTLE_TEXT_SoothingAroma,
+};
+
+const u16 BattleTextList_4015E2[] =
+{
+ BATTLE_TEXT_ForesawAttack,
+ BATTLE_TEXT_ChoseDestiny,
+};
+
+const u16 BattleTextList_4015E6[] =
+{
+ BATTLE_TEXT_BallBrokeOhNo,
+ BATTLE_TEXT_BallBrokeAppeared,
+ BATTLE_TEXT_BallBrokeAlmost,
+ BATTLE_TEXT_BallBrokeSoClose,
+};
+
+const u16 BattleTextList_4015EE[] =
+{
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Sandstorm,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_SunStrong,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+ BATTLE_TEXT_Raining,
+};
+
+const u16 BattleTextList_40160E[] =
+{
+ BATTLE_TEXT_LoafingAround,
+ BATTLE_TEXT_WontObey,
+ BATTLE_TEXT_TurnedAway,
+ BATTLE_TEXT_NotNotice,
+};
+
+const u16 BattleTextList_401616[] =
+{
+ BATTLE_TEXT_CreptCloser,
+ BATTLE_TEXT_CantGetCloser,
+};
+
+const u16 BattleTextList_40161A[] =
+{
+ BATTLE_TEXT_CuriousAbout,
+ BATTLE_TEXT_EnthralledBy,
+ BATTLE_TEXT_IgnoredThing,
+};
+
+const u16 BattleTextList_401620[] =
+{
+ BATTLE_TEXT_CuredConfusion,
+ BATTLE_TEXT_CuredParalysis,
+ BATTLE_TEXT_CuredFreeze,
+ BATTLE_TEXT_CuredBurn,
+ BATTLE_TEXT_CuredPoison,
+ BATTLE_TEXT_CuredSleep,
+};
+
+const u16 BattleTextList_40162C[] =
+{
+ BATTLE_TEXT_CuredStatus,
+ BATTLE_TEXT_NormalizedStatus,
+};
+
+const u16 BattleTextList_401630[] =
+{
+ BATTLE_TEXT_PreventedBurn,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401636[] =
+{
+ BATTLE_TEXT_PreventedPara,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_40163C[] =
+{
+ BATTLE_TEXT_PreventedPoison,
+ BATTLE_TEXT_PreventedOther2,
+ BATTLE_TEXT_NoEffectOn,
+};
+
+const u16 BattleTextList_401642[] =
+{
+ BATTLE_TEXT_Obtained1,
+ BATTLE_TEXT_Obtained2,
+ BATTLE_TEXT_Obtained3,
+};
+
+const u16 BattleTextList_401648[] =
+{
+ BATTLE_TEXT_RaisedFirePower,
+ BATTLE_TEXT_MadeIneffective,
+};
+
+const u16 gTrappingMoves[] =
+{
+ MOVE_BIND,
+ MOVE_WRAP,
+ MOVE_FIRE_SPIN,
+ MOVE_CLAMP,
+ MOVE_WHIRLPOOL,
+ MOVE_SAND_TOMB,
+ 0xFFFF,
+};
+
+const u8 *const gUnknown_0840165C[] =
+{
+ BattleText_HP,
+ BattleText_SpAtk,
+ BattleText_Attack,
+ BattleText_SpDef,
+ BattleText_Defense,
+ BattleStatText_Speed,
+};
+
+const u8 *const gUnknown_08401674[] =
+{
+ BattleText_Normal,
+ BattleText_Fighting,
+ BattleText_Flying,
+ BattleText_Poison,
+ BattleText_Ground,
+ BattleText_Rock,
+ BattleText_Bug,
+ BattleText_Ghost,
+ BattleText_Steel,
+ BattleText_Typeless,
+ BattleText_Fire,
+ BattleText_Water,
+ BattleText_Grass,
+ BattleText_Electric,
+ BattleText_Psychic,
+ BattleText_Ice,
+ BattleText_Dragon,
+ BattleText_Dark,
+};
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index 3378e4e0a..dcb6fa2d8 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -41,32 +41,8 @@ extern u16 gUnknown_030041B8;
extern struct Window gUnknown_03004210;
extern u8 (*gCallback_03004AE8)(void);
-extern u8 gUnknown_083C926E[][2];
-extern u8 gUnknown_083C9282[];
-extern const u8 gUnknown_083C928E[][2];
-extern u8 gUnknown_083C9296[];
-extern u8 gUnknown_083C92A8[];
-extern u8 gMatsudaDebugMenu_GoBackText[];
-extern u8 gMatsudaDebugMenu_BattlePointsText[];
-extern u8 gMatsudaDebugMenu_StartText[];
-
-extern struct SpritePalette gUnknown_083C92BC;
-extern struct SpriteSheet gUnknown_083C92B4;
-extern struct SpriteTemplate gSpriteTemplate_83C92CC;
-extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8);
-extern u32 gUnknown_083C9400[2];
-
-
-extern u8 gMatsudaDebugMenu_UnknownByteArray[];
-extern u8* gMatsudaDebugMenuTextList1[];
-extern u8* gMatsudaDebugMenuTextList2[];
-extern u8* gMatsudaDebugMenuTextList3[];
-extern u8 gMatsudaDebugMenuContestTopLeft[][2];
-
extern bool8 gReceivedRemoteLinkPlayers;
-extern struct MenuAction gMatsudaDebugMenuActions[];
-
static bool8 sub_80A9B78(void);
static void sub_80A9BE4(u8 taskId);
static void sub_80A9C98(u8);
@@ -85,6 +61,191 @@ static void sub_80AA5BC(u8);
static void sub_80AA614(u8, u8);
static void sub_80AAD08(struct Sprite *, s8);
+// unused
+const u8 gText_Unused83C9150[] = _("テストです"); // "test"
+const u8 gMatsudaDebugMenu_ActionContestText[] = _("Contest");
+const u8 gMatsudaDebugMenu_ActionContestResultsText[] = _("Contest results");
+// unused
+const u8 gMatsudaDebugMenu_ActionChangePerimeterText[] = _("パラメータへんこう"); // "Change parameter"
+// unused
+const u8 gMatsudaDebugMenu_ActionChangeMoveText[] = _("わざ へんこう"); // "Change move"
+const u8 gMatsudaDebugMenu_ActionContestCommText[] = _("Contest (comm.)");
+const u8 gMatsudaDebugMenu_ActionCommTestText[] = _("Init comm. data");
+const u8 gMatsudaDebugMenu_ActionSetHighScoreText[] = _("Set highest score");
+const u8 gMatsudaDebugMenu_ActionResetHighScoreText[] = _("Reset highest score");
+const u8 gMatsudaDebugMenu_ActionSetAllArtMuseumText[] = _("Set all art museum items");
+
+const struct MenuAction gMatsudaDebugMenuActions[] =
+{
+ {gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest},
+ {gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults},
+ {gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm},
+ {gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest},
+ {gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore},
+ {gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore},
+ {gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems},
+};
+
+const u8 gMatsudaDebugMenu_UnknownByteArray[] = {0xFC, 0x02, 0x0F, 0x00, 0xFF};
+const u8 Unknown_083C922D[] = INCBIN_U8("graphics/unknown/ball.4bpp");
+const u16 Unknown_083C924E[] = INCBIN_U16("graphics/unknown/ball.gbapal");
+
+const u8 gUnknown_083C926E[][2] =
+{
+ {2, 0},
+ {17, 0},
+ {2, 2},
+ {17, 2},
+};
+
+const u8 gMatsudaDebugMenuContestTopLeft[][2] =
+{
+ {0, 6},
+ {15, 6},
+ {0, 8},
+ {15, 8},
+ {0, 10},
+ {15, 10},
+};
+
+const u8 gUnknown_083C9282[] =
+{
+ // TODO: 2d array?
+ 7, 6,
+ 22, 6,
+ 7, 8,
+ 22, 8,
+ 7, 10,
+ 22, 10,
+};
+
+const u8 gUnknown_083C928E[][2] =
+{
+ {2, 14},
+ {17, 14},
+ {2, 16},
+ {17, 16},
+};
+
+const u8 gUnknown_083C9296[] = {0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88};
+const u8 gUnknown_083C92A8[] = {0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98};
+
+const struct SpriteSheet gUnknown_083C92B4[] = {Unknown_083C922D, 32, 0x4B0};
+const struct SpritePalette gUnknown_083C92BC[] = {Unknown_083C924E, 0x4B0};
+
+const struct OamData gOamData_83C92C4 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83C92CC =
+{
+ .tileTag = 1200,
+ .paletteTag = 1200,
+ .oam = &gOamData_83C92C4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80AA754,
+};
+
+static void (* const gUnknown_083C92E4[][2])(struct Sprite *, s8) =
+{
+ {sub_80AA8C8, sub_80AA8D8},
+ {sub_80AA8E8, sub_80AA8F8},
+ {sub_80AAC5C, sub_80AAC5C},
+ {sub_80AA930, sub_80AA974},
+ {sub_80AA9B8, sub_80AA9FC},
+ {sub_80AAA40, sub_80AAA84},
+ {sub_80AAAF0, sub_80AAB30},
+ {sub_80AAB70, sub_80AABB0},
+ {sub_80AABF0, sub_80AAD44},
+};
+
+static const u8 gMatsudaDebugMenu_StartText[] = _("{COLOR CYAN}{HIGHLIGHT RED}");
+static const u8 gMatsudaDebugMenu_StartJapText[] = _("かいし"); // because StartText is only called by StringCopy, this part appears to be unused.
+static const u8 gMatsudaDebugMenu_GoBackText[] = _("もどる");
+
+#ifdef GERMAN
+static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP,");
+#else
+static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP.");
+#endif
+
+static const u8 MatsudaDebugMenuText_Cool[] = _("かっこよさ"); // cool
+static const u8 MatsudaDebugMenuText_Cute[] = _("かわいさ"); // cute
+static const u8 MatsudaDebugMenuText_Beauty[] = _("うつくしさ"); // beauty
+static const u8 MatsudaDebugMenuText_Smart[] = _("かしこさ"); // smart
+static const u8 MatsudaDebugMenuText_Tough[] = _("たくましさ"); // tough
+static const u8 MatsudaDebugMenuText_Sheen[] = _("けづや"); // sheen
+
+static const u8 *const gMatsudaDebugMenuTextList1[] =
+{
+ MatsudaDebugMenuText_Cool,
+ MatsudaDebugMenuText_Cute,
+ MatsudaDebugMenuText_Beauty,
+ MatsudaDebugMenuText_Smart,
+ MatsudaDebugMenuText_Tough,
+ MatsudaDebugMenuText_Sheen,
+};
+
+static const u8 MatsudaDebugMenuText_CoolContest[] = _("かっこよさコンテスト");
+static const u8 MatsudaDebugMenuText_BeautyContest[] = _("うつくしさコンテスト");
+static const u8 MatsudaDebugMenuText_CuteContest[] = _("かわいさコンテスト ");
+static const u8 MatsudaDebugMenuText_SmartContest[] = _("かしこさコンテスト ");
+static const u8 MatsudaDebugMenuText_ToughContest[] = _("たくましさコンテスト");
+
+static const u8 *const gMatsudaDebugMenuTextList2[] =
+{
+ MatsudaDebugMenuText_CoolContest,
+ MatsudaDebugMenuText_BeautyContest,
+ MatsudaDebugMenuText_CuteContest,
+ MatsudaDebugMenuText_SmartContest,
+ MatsudaDebugMenuText_ToughContest,
+};
+
+static const u8 MatsudaDebugMenuText_Fallarbor[] = _("ハジツゲ/ノーマル"); // Fallarbor / Normal
+static const u8 MatsudaDebugMenuText_Verdanturf[] = _("シダケ/スーパー "); // Verdanturf / Super
+static const u8 MatsudaDebugMenuText_Slateport[] = _("カイナ/ハイパー "); // Slateport / Hyper
+static const u8 MatsudaDebugMenuText_Lilycove[] = _("ミナモ/マスター "); // Lilycove / Master
+
+static const u8 *const gMatsudaDebugMenuTextList3[] =
+{
+ MatsudaDebugMenuText_Fallarbor,
+ MatsudaDebugMenuText_Verdanturf,
+ MatsudaDebugMenuText_Slateport,
+ MatsudaDebugMenuText_Lilycove,
+};
+
+static const struct OamData gUnknown_083C9400 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 1023,
+ .priority = 0,
+ .paletteNum = 15,
+ .affineParam = 0,
+};
+
u8 unref_sub_80A9B28(void)
{
MenuZeroFillScreen();
@@ -112,7 +273,7 @@ static bool8 sub_80A9B78(void)
}
}
-s8 MatsudaDebugMenu_ContestResults(void)
+u8 MatsudaDebugMenu_ContestResults(void)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
CreateTask(sub_80A9BE4, 0xFF);
@@ -132,20 +293,20 @@ static void sub_80A9BE4(u8 taskId)
}
}
-s8 MatsudaDebugMenu_Contest(void)
+u8 MatsudaDebugMenu_Contest(void)
{
gIsLinkContest = 0;
sub_80AA10C();
return 0;
}
-s8 MatsudaDebugMenu_ContestComm(void)
+u8 MatsudaDebugMenu_ContestComm(void)
{
sub_80AA10C();
return 0;
}
-s8 MatsudaDebugMenu_CommTest(void)
+u8 MatsudaDebugMenu_CommTest(void)
{
u8 newTaskId;
u8 newTaskId2;
@@ -397,8 +558,8 @@ static void sub_80AA10C(void)
sub_80AA5E8(gScriptContestRank);
sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12);
sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC);
- LoadSpriteSheet(&gUnknown_083C92B4);
- LoadSpritePalette(&gUnknown_083C92BC);
+ LoadSpriteSheet(gUnknown_083C92B4);
+ LoadSpritePalette(gUnknown_083C92BC);
sub_80AA280(3);
sub_80AA658(3);
sub_80AA614(3, zero);
@@ -608,7 +769,7 @@ static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused.
return val;
}
-void sub_80AA930(struct Sprite *sprite, u8 var2)
+void sub_80AA930(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -616,7 +777,7 @@ void sub_80AA930(struct Sprite *sprite, u8 var2)
sub_80AA340(sprite->data2);
}
-void sub_80AA974(struct Sprite *sprite, u8 var2)
+void sub_80AA974(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -624,7 +785,7 @@ void sub_80AA974(struct Sprite *sprite, u8 var2)
sub_80AA388(sprite->data2);
}
-void sub_80AA9B8(struct Sprite *sprite, u8 var2)
+void sub_80AA9B8(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -632,7 +793,7 @@ void sub_80AA9B8(struct Sprite *sprite, u8 var2)
sub_80AA3D0(sprite->data2);
}
-void sub_80AA9FC(struct Sprite *sprite, u8 var2)
+void sub_80AA9FC(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -640,7 +801,7 @@ void sub_80AA9FC(struct Sprite *sprite, u8 var2)
sub_80AA418(sprite->data2);
}
-void sub_80AAA40(struct Sprite *sprite, u8 var2)
+void sub_80AAA40(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -648,7 +809,7 @@ void sub_80AAA40(struct Sprite *sprite, u8 var2)
sub_80AA460(sprite->data2);
}
-void sub_80AAA84(struct Sprite *sprite, u8 var2)
+void sub_80AAA84(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -669,7 +830,7 @@ static u16 sub_80AAAC8(u32 a1, u16 a2, s8 a3) // first param is unused.
return val;
}
-void sub_80AAAF0(struct Sprite *sprite, u8 var2)
+void sub_80AAAF0(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -677,7 +838,7 @@ void sub_80AAAF0(struct Sprite *sprite, u8 var2)
sub_80AA4F0(sprite->data2, 0);
}
-void sub_80AAB30(struct Sprite *sprite, u8 var2)
+void sub_80AAB30(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -685,7 +846,7 @@ void sub_80AAB30(struct Sprite *sprite, u8 var2)
sub_80AA4F0(sprite->data2, 1);
}
-void sub_80AAB70(struct Sprite *sprite, u8 var2)
+void sub_80AAB70(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -693,7 +854,7 @@ void sub_80AAB70(struct Sprite *sprite, u8 var2)
sub_80AA4F0(sprite->data2, 2);
}
-void sub_80AABB0(struct Sprite *sprite, u8 var2)
+void sub_80AABB0(struct Sprite *sprite, s8 var2)
{
u8 val = sprite->data2;
@@ -1013,16 +1174,14 @@ void sub_80AAF30(void)
sub_80B2A7C(0xFE);
}
-//Don't know size of return type
-int MatsudaDebugMenu_SetHighScore(void)
+u8 MatsudaDebugMenu_SetHighScore(void)
{
sub_80AAF30();
CloseMenu();
return 1;
}
-//Don't know size of return type
-int MatsudaDebugMenu_ResetHighScore(void)
+u8 MatsudaDebugMenu_ResetHighScore(void)
{
s32 i;
@@ -1037,8 +1196,7 @@ int MatsudaDebugMenu_ResetHighScore(void)
return 1;
}
-//Don't know size of return type
-int MatsudaDebugMenu_SetArtMuseumItems(void)
+u8 MatsudaDebugMenu_SetArtMuseumItems(void)
{
s32 i;
diff --git a/src/debug/mori_debug_menu.c b/src/debug/mori_debug_menu.c
index e6ee243e8..2c937bb28 100644
--- a/src/debug/mori_debug_menu.c
+++ b/src/debug/mori_debug_menu.c
@@ -16,13 +16,50 @@ extern u8 (*gCallback_03004AE8)(void);
u8 gUnknown_03004DA0[0x20];
-extern u8 gUnknown_0839B22C[][3];
-extern u8 gUnknown_0839B24A[];
-extern u8 gUnknown_0839B24D[];
-extern u8 gUnknown_0839B255[];
-extern u8 gUnknown_0839B257[];
-
-extern const struct MenuAction gMoriDebugMenuActions[];
+const u8 gUnknown_0839B22C[][3] =
+{
+ _(" A"),
+ _(" B"),
+ _("SL"),
+ _("ST"),
+ _("RK"),
+ _("LK"),
+ _("UK"),
+ _("DK"),
+ _("RT"),
+ _("LT"),
+};
+
+const u8 gUnknown_0839B24A[] = _("ND");
+const u8 gUnknown_0839B24D[] = _("の こどもは\n"); // "'s child <topic-particle>"=
+const u8 gUnknown_0839B255[] = _(" ");
+const u8 gUnknown_0839B257[] = _("ながいなまえぽけもん"); // "long name pokemon" (used as test name)
+const u8 Text_39B262[] = _("Search a child");
+const u8 Text_39B271[] = _("Egg");
+const u8 Text_39B275[] = _("Egg (male)");
+const u8 Text_39B280[] = _("1000 steps");
+const u8 Text_39B28B[] = _("10000 steps");
+const u8 Text_39B297[] = _("MOVE TUTOR");
+const u8 Text_39B2A2[] = _("Breed an egg");
+const u8 Text_39B2AF[] = _("Long name");
+#ifdef GERMAN
+const u8 Text_39B2B9[] = _("Delete {POKEBLOCK}");
+#else
+const u8 Text_39B2B9[] = _("ポロックけす");
+#endif
+
+const struct MenuAction gMoriDebugMenuActions[] =
+{
+ {Text_39B262, (u8 (*) (void))MoriDebugMenu_SearchChild}, // ugly cast needed to stop complaints of u8 (*func)() not being compatible with this declaration (TODO: Make MenuAction a Callback union to allow a new definition.)
+ {Text_39B271, MoriDebugMenu_Egg},
+ {Text_39B275, MoriDebugMenu_MaleEgg},
+ {Text_39B280, MoriDebugMenu_1000Steps},
+ {Text_39B28B, MoriDebugMenu_10000Steps},
+ {Text_39B297, MoriDebugMenu_MoveTutor},
+ {Text_39B2A2, MoriDebugMenu_BreedEgg},
+ {Text_39B2AF, MoriDebugMenu_LongName},
+ {Text_39B2B9, MoriDebugMenu_PokeblockCase},
+};
void unref_sub_8083CF0(void)
{
@@ -65,7 +102,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
return 0;
}
-s8 MoriDebugMenu_Egg(void)
+u8 MoriDebugMenu_Egg(void)
{
if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() )
TriggerPendingDaycareEgg();
@@ -74,7 +111,7 @@ s8 MoriDebugMenu_Egg(void)
return 1;
}
-s8 MoriDebugMenu_MaleEgg(void)
+u8 MoriDebugMenu_MaleEgg(void)
{
if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() )
TriggerPendingDaycareMaleEgg();
@@ -83,28 +120,28 @@ s8 MoriDebugMenu_MaleEgg(void)
return 1;
}
-s8 MoriDebugMenu_1000Steps(void)
+u8 MoriDebugMenu_1000Steps(void)
{
Debug_AddDaycareSteps(1000);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_10000Steps(void)
+u8 MoriDebugMenu_10000Steps(void)
{
Debug_AddDaycareSteps(10000);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_MoveTutor(void)
+u8 MoriDebugMenu_MoveTutor(void)
{
sub_8132670();
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_BreedEgg(void)
+u8 MoriDebugMenu_BreedEgg(void)
{
u8 loopCounter;
@@ -122,14 +159,14 @@ s8 MoriDebugMenu_BreedEgg(void)
return 1;
}
-s8 MoriDebugMenu_LongName(void)
+u8 MoriDebugMenu_LongName(void)
{
SetMonData(gPlayerParty, MON_DATA_NICKNAME, gUnknown_0839B257);
CloseMenu();
return 1;
}
-s8 MoriDebugMenu_PokeblockCase(void)
+u8 MoriDebugMenu_PokeblockCase(void)
{
s32 loopCounter;
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c
index c61a1d01c..ec8acc65f 100644
--- a/src/engine/cable_club.c
+++ b/src/engine/cable_club.c
@@ -35,7 +35,6 @@ extern const u8 gUnknown_081A4932[];
extern const u8 gUnknown_081A4975[];
extern const u8 gUnknown_081A49B6[];
extern const u8 gUnknown_081A490C[];
-extern const u8* const gTrainerCardColorNames[];
extern struct
{
u8 field0;
@@ -76,6 +75,26 @@ extern void sub_8055574(void);
extern s32 sub_80554F8(void);
extern void sub_805465C(void);
+#ifdef GERMAN
+const u8 TrainerCardColorName_Bronze[] = _("BRONZE");
+const u8 TrainerCardColorName_Copper[] = _("KUPFER");
+const u8 TrainerCardColorName_Silver[] = _("SILBER");
+const u8 TrainerCardColorName_Gold[] = _("GOLD");
+#else
+const u8 TrainerCardColorName_Bronze[] = _("BRONZE");
+const u8 TrainerCardColorName_Copper[] = _("COPPER");
+const u8 TrainerCardColorName_Silver[] = _("SILVER");
+const u8 TrainerCardColorName_Gold[] = _("GOLD");
+#endif
+
+const u8 *const gTrainerCardColorNames[] =
+{
+ TrainerCardColorName_Bronze,
+ TrainerCardColorName_Copper,
+ TrainerCardColorName_Silver,
+ TrainerCardColorName_Gold,
+};
+
static void sub_8082CD4(u8 arg0, u8 arg1)
{
if (FindTaskIdByFunc(sub_8082F20) == 0xFF)
diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c
index bfbf0dcd6..031dc49d1 100644
--- a/src/engine/main_menu.c
+++ b/src/engine/main_menu.c
@@ -30,8 +30,6 @@ extern struct PaletteFadeControl gPaletteFade;
extern u16 gSaveFileStatus;
-extern u16 gMainMenuPalette[];
-
extern const u8 gBirchSpeech_Welcome[];
extern const u8 gBirchSpeech_ThisIsPokemon[];
extern const u8 gBirchSpeech_WorldInhabitedByPokemon[];
@@ -43,15 +41,11 @@ extern u8 gBirchSpeech_AhOkayYouArePlayer[];
extern u8 gBirchSpeech_AreYouReady[];
extern struct SpriteTemplate gUnknown_02024E8C;
-extern u16 gUnknown_081E795C[];
extern const struct MenuAction gUnknown_081E79B0[];
extern const struct MenuAction gMalePresetNames[];
extern const struct MenuAction gFemalePresetNames[];
-extern const u8 gUnknown_081E764C[];
-extern const u8 gBirchIntroShadowGfx[];
extern const u8 gUnknown_081E7834[];
-extern const u8 gUnknown_081E796C[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[];
@@ -136,6 +130,53 @@ static void CreateNameMenu(u8 left, u8 top);
static s8 NameMenuProcessInput(void);
static void SetPresetPlayerName(u8 index);
+static const u16 gUnknown_081E764C[][16] =
+{
+ INCBIN_U16("graphics/birch_speech/bg0.gbapal"),
+ INCBIN_U16("graphics/birch_speech/bg1.gbapal"),
+};
+
+static const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz");
+static const u8 gUnknown_081E7834[] = INCBIN_U8("graphics/birch_speech/map.bin.lz");
+static const u16 gUnknown_081E795C[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal");
+static const u16 gUnknown_081E796C[] = INCBIN_U16("graphics/birch_speech/blank_pal.gbapal");
+static const u16 gMainMenuPalette[] = INCBIN_U16("graphics/misc/main_menu.gbapal");
+
+static const union AffineAnimCmd gSpriteAffineAnim_81E799C[] =
+{
+ AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, 0, 48),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[] =
+{
+ gSpriteAffineAnim_81E799C,
+};
+
+static const struct MenuAction gUnknown_081E79B0[] =
+{
+ {gBirchText_Boy, NULL},
+ {gBirchText_Girl, NULL},
+};
+
+static const struct MenuAction gMalePresetNames[] =
+{
+ {gBirchText_NewName, NULL},
+ {gDefaultBoyName1, NULL},
+ {gDefaultBoyName2, NULL},
+ {gDefaultBoyName3, NULL},
+ {gDefaultBoyName4, NULL},
+};
+
+static const struct MenuAction gFemalePresetNames[] =
+{
+ {gBirchText_NewName, NULL},
+ {gDefaultGirlName1, NULL},
+ {gDefaultGirlName2, NULL},
+ {gDefaultGirlName3, NULL},
+ {gDefaultGirlName4, NULL},
+};
+
static void CB2_MainMenu(void)
{
RunTasks();
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index d052992ad..198bffaa7 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -27,15 +27,126 @@ struct ResetRtcStruct
extern u16 gSaveFileStatus;
-extern struct ResetRtcStruct gUnknown_08376420[];
-extern struct SpritePalette gUnknown_083764BC;
-extern struct SpriteTemplate gSpriteTemplate_83764E8;
-extern u8 gUnknown_08376500[];
-
void CB2_ResetRtcScreen(void);
void VBlankCB_ResetRtcScreen(void);
void Task_ResetRtcScreen(u8);
+static const struct ResetRtcStruct gUnknown_08376420[5] =
+{
+ {
+ .dataIndex = 3,
+ .minVal = 1,
+ .maxVal = 9999,
+ .left = 0,
+ .right = 2,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 4,
+ .minVal = 0,
+ .maxVal = 23,
+ .left = 1,
+ .right = 3,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 5,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 2,
+ .right = 4,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 6,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 3,
+ .right = 5,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 7,
+ .minVal = 0,
+ .maxVal = 0,
+ .left = 4,
+ .right = 0,
+ .unk8 = 6,
+ },
+};
+
+const struct OamData gOamData_837645C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const u8 gSpriteImage_8376464[] = INCBIN_U8("graphics/unknown_sprites/83764AC/0.4bpp");
+const u8 gSpriteImage_8376484[] = INCBIN_U8("graphics/unknown_sprites/83764AC/1.4bpp");
+
+const u16 Palette_3764A4[] = INCBIN_U16("graphics/unknown/83764A4.gbapal");
+
+const struct SpriteFrameImage gSpriteImageTable_83764AC[] =
+{
+ { gSpriteImage_8376464, 0x20 },
+ { gSpriteImage_8376484, 0x20 },
+};
+
+const struct SpritePalette gUnknown_083764BC =
+{
+ .data = Palette_3764A4,
+ .tag = 0x1000,
+};
+
+const union AnimCmd gSpriteAnim_83764C4[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gSpriteAnim_83764CC[] =
+{
+ ANIMCMD_FRAME(0, 158, .vFlip = TRUE),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gSpriteAnim_83764D4[] =
+{
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_83764DC[] =
+{
+ gSpriteAnim_83764C4,
+ gSpriteAnim_83764CC,
+ gSpriteAnim_83764D4,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83764E8 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0x1000,
+ .oam = &gOamData_837645C,
+ .anims = gSpriteAnimTable_83764DC,
+ .images = gSpriteImageTable_83764AC,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const u8 gUnknown_08376500[] = _(" : ");
+
void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
{
int state = gTasks[sprite->data0].data[2];
@@ -235,7 +346,7 @@ void Task_ResetRtc_1(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u8 selection = data[2];
- struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1];
+ const struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1];
if (gMain.newKeys & B_BUTTON)
{
diff --git a/src/engine/text_window.c b/src/engine/text_window.c
index 9a88789d1..c001ddefc 100644
--- a/src/engine/text_window.c
+++ b/src/engine/text_window.c
@@ -18,11 +18,83 @@ static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 hei
static u16 sTextWindowBaseTileNum;
static u16 sMessageBoxBaseTileNum;
-extern const struct FrameGraphics gUnknown_083761F0[20];
+extern const u8 gTextWindowFrame1_Gfx[];
+extern const u8 gTextWindowFrame2_Gfx[];
+extern const u8 gTextWindowFrame3_Gfx[];
+extern const u8 gTextWindowFrame4_Gfx[];
+extern const u8 gTextWindowFrame5_Gfx[];
+extern const u8 gTextWindowFrame6_Gfx[];
+extern const u8 gTextWindowFrame7_Gfx[];
+extern const u8 gTextWindowFrame8_Gfx[];
+extern const u8 gTextWindowFrame9_Gfx[];
+extern const u8 gTextWindowFrame10_Gfx[];
+extern const u8 gTextWindowFrame11_Gfx[];
+extern const u8 gTextWindowFrame12_Gfx[];
+extern const u8 gTextWindowFrame13_Gfx[];
+extern const u8 gTextWindowFrame14_Gfx[];
+extern const u8 gTextWindowFrame15_Gfx[];
+extern const u8 gTextWindowFrame16_Gfx[];
+extern const u8 gTextWindowFrame17_Gfx[];
+extern const u8 gTextWindowFrame18_Gfx[];
+extern const u8 gTextWindowFrame19_Gfx[];
+extern const u8 gTextWindowFrame20_Gfx[];
+
+extern const u16 gTextWindowFrame1_Pal[];
+extern const u16 gTextWindowFrame2_Pal[];
+extern const u16 gTextWindowFrame3_Pal[];
+extern const u16 gTextWindowFrame4_Pal[];
+extern const u16 gTextWindowFrame5_Pal[];
+extern const u16 gTextWindowFrame6_Pal[];
+extern const u16 gTextWindowFrame7_Pal[];
+extern const u16 gTextWindowFrame8_Pal[];
+extern const u16 gTextWindowFrame9_Pal[];
+extern const u16 gTextWindowFrame10_Pal[];
+extern const u16 gTextWindowFrame11_Pal[];
+extern const u16 gTextWindowFrame12_Pal[];
+extern const u16 gTextWindowFrame13_Pal[];
+extern const u16 gTextWindowFrame14_Pal[];
+extern const u16 gTextWindowFrame15_Pal[];
+extern const u16 gTextWindowFrame16_Pal[];
+extern const u16 gTextWindowFrame17_Pal[];
+extern const u16 gTextWindowFrame18_Pal[];
+extern const u16 gTextWindowFrame19_Pal[];
+extern const u16 gTextWindowFrame20_Pal[];
-extern const u16 gMessageBoxTilemap[5][7];
extern const u8 gMessageBox_Gfx[];
+static const struct FrameGraphics gUnknown_083761F0[20] =
+{
+ {gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal},
+ {gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal},
+ {gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal},
+ {gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal},
+ {gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal},
+ {gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal},
+ {gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal},
+ {gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal},
+ {gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal},
+ {gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal},
+ {gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal},
+ {gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal},
+ {gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal},
+ {gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal},
+ {gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal},
+ {gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal},
+ {gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal},
+ {gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal},
+ {gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal},
+ {gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal},
+};
+
+static const u16 gMessageBoxTilemap[5][7] =
+{
+ {1, 3, 4, 4, 5, 6, 9},
+ {11, 9, 9, 9, 9, 0x040B, 9},
+ {7, 9, 9, 9, 9, 10, 9},
+ {0x080B, 9, 9, 9, 9, 0x0C0B, 9},
+ {0x0801, 0x0803, 0x0804, 0x0804, 0x0805, 0x0806, 9},
+};
+
u16 SetTextWindowBaseTileNum(u16 baseTileNum)
{
sTextWindowBaseTileNum = baseTileNum;
diff --git a/src/engine/tileset_anim.c b/src/engine/tileset_anim.c
index f892e5e9a..abd38edad 100644
--- a/src/engine/tileset_anim.c
+++ b/src/engine/tileset_anim.c
@@ -1,39 +1,10 @@
#include "global.h"
#include "tileset_anim.h"
-extern u8 *gTilesetAnimTable_General_0[];
-extern u8 *gTilesetAnimTable_General_1[];
-extern u8 *gTilesetAnimTable_General_2[];
-extern u8 *gTilesetAnimTable_General_3[];
-extern u8 *gTilesetAnimTable_General_4[];
-extern u8 *gTilesetAnimTable_Lavaridge[];
-extern u8 *gTilesetAnimTable_Pacifidlog_0[];
-extern u8 *gTilesetAnimTable_Underwater[];
-extern u8 *gTilesetAnimTable_Pacifidlog_1[];
-extern u8 *gUnknown_0837BAE4[];
-extern u8 *gUnknown_0837BB04[];
-extern u8 *gTilesetAnimTable_Mauville_0A[];
-extern u8 *gTilesetAnimTable_Mauville_1A[];
-extern u8 *gTilesetAnimTable_Mauville_0B[];
-extern u8 *gTilesetAnimTable_Mauville_1B[];
-extern u8 *gUnknown_0837BFA4[];
-extern u8 *gTilesetAnimTable_Rustboro_0[];
-extern u8 *gTilesetAnimTable_Rustboro_1[];
-extern u8 *gTilesetAnimTable_Cave[];
-extern u8 *gUnknown_0837C93C[];
-extern u8 *gTilesetAnimTable_EverGrande[];
-extern u8 *gTilesetAnimTable_Building[];
-extern u8 *gTilesetAnimTable_SootopolisGym_0[];
-extern u8 *gTilesetAnimTable_SootopolisGym_1[];
-extern u8 *gTilesetAnimTable_EliteFour_0[];
-extern u8 *gTilesetAnimTable_EliteFour_1[];
-extern u8 *gTilesetAnimTable_MauvilleGym[];
-extern u8 *gTilesetAnimTable_BikeShop[];
-
struct Dma
{
- void *src;
- void *dest;
+ const void *src;
+ const void *dest;
u16 size;
};
@@ -89,13 +60,403 @@ static void sub_807399C(u16);
static void sub_8073974(u16);
static void sub_80739EC(u16);
+static const u8 TilesetAnimTiles_General_0_1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_General_0_0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_General_0_2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_General_0[] =
+{
+ TilesetAnimTiles_General_0_0,
+ TilesetAnimTiles_General_0_1,
+ TilesetAnimTiles_General_0_0,
+ TilesetAnimTiles_General_0_2,
+};
+
+static const u8 TilesetAnimTiles_General_1_0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_General_1_1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_General_1_2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_General_1_3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_General_1_4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp");
+static const u8 TilesetAnimTiles_General_1_5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp");
+static const u8 TilesetAnimTiles_General_1_6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp");
+static const u8 TilesetAnimTiles_General_1_7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_1[] =
+{
+ TilesetAnimTiles_General_1_0,
+ TilesetAnimTiles_General_1_1,
+ TilesetAnimTiles_General_1_2,
+ TilesetAnimTiles_General_1_3,
+ TilesetAnimTiles_General_1_4,
+ TilesetAnimTiles_General_1_5,
+ TilesetAnimTiles_General_1_6,
+ TilesetAnimTiles_General_1_7,
+};
+
+static const u8 TilesetAnimTiles_General_2_0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp");
+static const u8 TilesetAnimTiles_General_2_1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp");
+static const u8 TilesetAnimTiles_General_2_2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp");
+static const u8 TilesetAnimTiles_General_2_3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp");
+static const u8 TilesetAnimTiles_General_2_4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp");
+static const u8 TilesetAnimTiles_General_2_5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp");
+static const u8 TilesetAnimTiles_General_2_6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_2[] =
+{
+ TilesetAnimTiles_General_2_0,
+ TilesetAnimTiles_General_2_1,
+ TilesetAnimTiles_General_2_2,
+ TilesetAnimTiles_General_2_3,
+ TilesetAnimTiles_General_2_4,
+ TilesetAnimTiles_General_2_5,
+ TilesetAnimTiles_General_2_6,
+ TilesetAnimTiles_General_2_0,
+};
+
+static const u8 TilesetAnimTiles_General_3_0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp");
+static const u8 TilesetAnimTiles_General_3_1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp");
+static const u8 TilesetAnimTiles_General_3_2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp");
+static const u8 TilesetAnimTiles_General_3_3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_3[] =
+{
+ TilesetAnimTiles_General_3_0,
+ TilesetAnimTiles_General_3_1,
+ TilesetAnimTiles_General_3_2,
+ TilesetAnimTiles_General_3_3,
+};
+
+static const u8 TilesetAnimTiles_General_4_0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp");
+static const u8 TilesetAnimTiles_General_4_1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp");
+static const u8 TilesetAnimTiles_General_4_2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp");
+static const u8 TilesetAnimTiles_General_4_3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_General_4[] =
+{
+ TilesetAnimTiles_General_4_0,
+ TilesetAnimTiles_General_4_1,
+ TilesetAnimTiles_General_4_2,
+ TilesetAnimTiles_General_4_3,
+};
+
+static const u8 TilesetAnimTiles_Lavaridge_0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Lavaridge_3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_Lavaridge[] =
+{
+ TilesetAnimTiles_Lavaridge_0,
+ TilesetAnimTiles_Lavaridge_1,
+ TilesetAnimTiles_Lavaridge_2,
+ TilesetAnimTiles_Lavaridge_3,
+};
+
+static const u8 TilesetAnimTiles_Pacifidlog_0_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_0_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_0_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp");
+
+static const u8 *const gTilesetAnimTable_Pacifidlog_0[] =
+{
+ TilesetAnimTiles_Pacifidlog_0_0,
+ TilesetAnimTiles_Pacifidlog_0_1,
+ TilesetAnimTiles_Pacifidlog_0_2,
+ TilesetAnimTiles_Pacifidlog_0_1,
+};
+
+static const u8 TilesetAnimTiles_Underwater_0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Underwater_1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Underwater_2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Underwater_3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp");
+
+static const u8 *const gTilesetAnimTable_Underwater[] =
+{
+ TilesetAnimTiles_Underwater_0,
+ TilesetAnimTiles_Underwater_1,
+ TilesetAnimTiles_Underwater_2,
+ TilesetAnimTiles_Underwater_3,
+};
+
+static const u8 TilesetAnimTiles_Pacifidlog_1_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp");
+static const u8 TilesetAnimTiles_Pacifidlog_1_7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp");
+
+static const u8 *const gTilesetAnimTable_Pacifidlog_1[] =
+{
+ TilesetAnimTiles_Pacifidlog_1_0,
+ TilesetAnimTiles_Pacifidlog_1_1,
+ TilesetAnimTiles_Pacifidlog_1_2,
+ TilesetAnimTiles_Pacifidlog_1_3,
+ TilesetAnimTiles_Pacifidlog_1_4,
+ TilesetAnimTiles_Pacifidlog_1_5,
+ TilesetAnimTiles_Pacifidlog_1_6,
+ TilesetAnimTiles_Pacifidlog_1_7,
+};
+
+static const u8 TilesetAnimTiles_Mauville_0_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp");
+static const u8 TilesetAnimTiles_Mauville_0_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp");
+
+static const u8 TilesetAnimTiles_Mauville_1_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp");
+static const u8 TilesetAnimTiles_Mauville_1_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp");
+
+static const void *const gUnknown_0837BAE4[] =
+{
+ (void *)(VRAM + 0x4C00),
+ (void *)(VRAM + 0x4C80),
+ (void *)(VRAM + 0x4D00),
+ (void *)(VRAM + 0x4D80),
+ (void *)(VRAM + 0x4E00),
+ (void *)(VRAM + 0x4E80),
+ (void *)(VRAM + 0x4F00),
+ (void *)(VRAM + 0x4F80),
+};
+
+static const void *const gUnknown_0837BB04[] =
+{
+ (void *)(VRAM + 0x5000),
+ (void *)(VRAM + 0x5080),
+ (void *)(VRAM + 0x5100),
+ (void *)(VRAM + 0x5180),
+ (void *)(VRAM + 0x5200),
+ (void *)(VRAM + 0x5280),
+ (void *)(VRAM + 0x5300),
+ (void *)(VRAM + 0x5380),
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_0A[] =
+{
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_1,
+ TilesetAnimTiles_Mauville_0_2,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_3,
+ TilesetAnimTiles_Mauville_0_2,
+ TilesetAnimTiles_Mauville_0_1,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_1A[] =
+{
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_1,
+ TilesetAnimTiles_Mauville_1_2,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_3,
+ TilesetAnimTiles_Mauville_1_2,
+ TilesetAnimTiles_Mauville_1_1,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_0B[] =
+{
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_0,
+ TilesetAnimTiles_Mauville_0_4,
+ TilesetAnimTiles_Mauville_0_4,
+};
+
+static const u8 *const gTilesetAnimTable_Mauville_1B[] =
+{
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_0,
+ TilesetAnimTiles_Mauville_1_4,
+ TilesetAnimTiles_Mauville_1_4,
+};
+
+static const u8 TilesetAnimTiles_Rustboro_0_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_0_7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp");
+
+static const void *const gUnknown_0837BFA4[] =
+{
+ (void *)(VRAM + 0x5000),
+ (void *)(VRAM + 0x5080),
+ (void *)(VRAM + 0x5100),
+ (void *)(VRAM + 0x5180),
+ (void *)(VRAM + 0x5200),
+ (void *)(VRAM + 0x5280),
+ (void *)(VRAM + 0x5300),
+ (void *)(VRAM + 0x5380),
+};
+
+static const u8 *const gTilesetAnimTable_Rustboro_0[] =
+{
+ TilesetAnimTiles_Rustboro_0_0,
+ TilesetAnimTiles_Rustboro_0_1,
+ TilesetAnimTiles_Rustboro_0_2,
+ TilesetAnimTiles_Rustboro_0_3,
+ TilesetAnimTiles_Rustboro_0_4,
+ TilesetAnimTiles_Rustboro_0_5,
+ TilesetAnimTiles_Rustboro_0_6,
+ TilesetAnimTiles_Rustboro_0_7,
+};
+
+static const u8 TilesetAnimTiles_Rustboro_1_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_Rustboro_1_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp");
+
+static const u8 *const gTilesetAnimTable_Rustboro_1[] =
+{
+ TilesetAnimTiles_Rustboro_1_0,
+ TilesetAnimTiles_Rustboro_1_1,
+};
+
+static const u8 TilesetAnimTiles_Cave_0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Cave_1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp");
+static const u8 TilesetAnimTiles_Cave_2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp");
+static const u8 TilesetAnimTiles_Cave_3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp");
+// unused anim tiles for cave
+static const u8 TilesetAnimTiles_Cave_4[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp");
+static const u8 TilesetAnimTiles_Cave_5[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp");
+static const u8 TilesetAnimTiles_Cave_6[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp");
+static const u8 TilesetAnimTiles_Cave_7[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_Cave[] =
+{
+ TilesetAnimTiles_Cave_0,
+ TilesetAnimTiles_Cave_1,
+ TilesetAnimTiles_Cave_2,
+ TilesetAnimTiles_Cave_3,
+};
+
+static const u8 TilesetAnimTiles_EverGrande_0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp");
+static const u8 TilesetAnimTiles_EverGrande_7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp");
+asm(".space 32");
+
+static const void *const gUnknown_0837C93C[] =
+{
+ (void *)(VRAM + 0x5C00),
+ (void *)(VRAM + 0x5C80),
+ (void *)(VRAM + 0x5D00),
+ (void *)(VRAM + 0x5D80),
+ (void *)(VRAM + 0x5E00),
+ (void *)(VRAM + 0x5E80),
+ (void *)(VRAM + 0x5F00),
+ (void *)(VRAM + 0x5F80),
+};
+
+static const u8 *const gTilesetAnimTable_EverGrande[] =
+{
+ TilesetAnimTiles_EverGrande_0,
+ TilesetAnimTiles_EverGrande_1,
+ TilesetAnimTiles_EverGrande_2,
+ TilesetAnimTiles_EverGrande_3,
+ TilesetAnimTiles_EverGrande_4,
+ TilesetAnimTiles_EverGrande_5,
+ TilesetAnimTiles_EverGrande_6,
+ TilesetAnimTiles_EverGrande_7,
+};
+
+static const u8 TilesetAnimTiles_Building_0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp");
+static const u8 TilesetAnimTiles_Building_1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp");
+
+static const u8 *const gTilesetAnimTable_Building[] =
+{
+ TilesetAnimTiles_Building_0,
+ TilesetAnimTiles_Building_1,
+};
+
+static const u8 TilesetAnimTiles_SootopolisGym_0_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_0_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_0_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_SootopolisGym_1_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp");
+
+static const u8 *const gTilesetAnimTable_SootopolisGym_0[] =
+{
+ TilesetAnimTiles_SootopolisGym_0_0,
+ TilesetAnimTiles_SootopolisGym_0_1,
+ TilesetAnimTiles_SootopolisGym_0_2,
+};
+
+static const u8 *const gTilesetAnimTable_SootopolisGym_1[] =
+{
+ TilesetAnimTiles_SootopolisGym_1_0,
+ TilesetAnimTiles_SootopolisGym_1_1,
+ TilesetAnimTiles_SootopolisGym_1_2,
+};
+
+static const u8 TilesetAnimTiles_EliteFour_1_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_1_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp");
+static const u8 TilesetAnimTiles_EliteFour_0_3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_EliteFour_0[] =
+{
+ TilesetAnimTiles_EliteFour_0_0,
+ TilesetAnimTiles_EliteFour_0_1,
+ TilesetAnimTiles_EliteFour_0_2,
+ TilesetAnimTiles_EliteFour_0_3,
+};
+
+static const u8 *const gTilesetAnimTable_EliteFour_1[] =
+{
+ TilesetAnimTiles_EliteFour_1_0,
+ TilesetAnimTiles_EliteFour_1_1,
+};
+
+static const u8 TilesetAnimTiles_MauvilleGym_0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp");
+static const u8 TilesetAnimTiles_MauvilleGym_1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_MauvilleGym[] =
+{
+ TilesetAnimTiles_MauvilleGym_0,
+ TilesetAnimTiles_MauvilleGym_1,
+};
+
+static const u8 TilesetAnimTiles_BikeShop_0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp");
+static const u8 TilesetAnimTiles_BikeShop_1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp");
+asm(".space 32");
+
+static const u8 *const gTilesetAnimTable_BikeShop[] =
+{
+ TilesetAnimTiles_BikeShop_0,
+ TilesetAnimTiles_BikeShop_1,
+};
+
static void ClearTilesetAnimDmas(void)
{
gNumTilesetAnimDmas = 0;
CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas));
}
-static void QueueTilesetAnimDma(void *src, void *dest, u16 size)
+static void QueueTilesetAnimDma(const void *src, const void *dest, u16 size)
{
if (gNumTilesetAnimDmas < 20)
{
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
index 7a9c043b0..d6271643c 100644
--- a/src/field/battle_tower.c
+++ b/src/field/battle_tower.c
@@ -262,13 +262,13 @@ static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderT
static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *);
static void ClearBattleTowerRecord(struct BattleTowerRecord *);
-extern const u8 gUnknown_08400E23[];
-extern const u8 gUnknown_08400E29[];
-extern const u8 gUnknown_08400E2C[];
-extern const u8 gUnknown_08400E2E[];
-extern const u8 gUnknown_08400E30[];
-extern const u8 gUnknown_08400E32[];
-extern const u8 gUnknown_08400E36[];
+extern const u8 BattleText_Format3[];
+extern const u8 BattleText_Format4[];
+extern const u8 BattleText_Format5[];
+extern const u8 BattleText_Format6[];
+extern const u8 BattleText_Format7[];
+extern const u8 BattleText_Format8[];
+extern const u8 BattleText_Format9[];
extern u16 gSpecialVar_0x8004;
extern u8 gTrainerClassToPicIndex[];
extern u8 gTrainerClassToNameIndex[];
@@ -1409,24 +1409,24 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT
case 10:
if (numToAppend == curIndexToAppend)
{
- StringAppend(gStringVar1, gUnknown_08400E23);
+ StringAppend(gStringVar1, BattleText_Format3);
}
else if (numToAppend > curIndexToAppend)
{
- StringAppend(gStringVar1, gUnknown_08400E29);
+ StringAppend(gStringVar1, BattleText_Format4);
}
break;
case 1:
if (curIndexToAppend == numToAppend)
{
- StringAppend(gStringVar1, gUnknown_08400E23);
+ StringAppend(gStringVar1, BattleText_Format3);
}
else
{
- StringAppend(gStringVar1, gUnknown_08400E29);
+ StringAppend(gStringVar1, BattleText_Format4);
}
- StringAppend(gStringVar1, gUnknown_08400E30);
+ StringAppend(gStringVar1, BattleText_Format7);
break;
case 3:
case 5:
@@ -1435,14 +1435,14 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT
default:
if (curIndexToAppend == numToAppend)
{
- StringAppend(gStringVar1, gUnknown_08400E23);
+ StringAppend(gStringVar1, BattleText_Format3);
}
else
{
- StringAppend(gStringVar1, gUnknown_08400E29);
+ StringAppend(gStringVar1, BattleText_Format4);
}
- StringAppend(gStringVar1, gUnknown_08400E2E);
+ StringAppend(gStringVar1, BattleText_Format6);
break;
}
@@ -1533,17 +1533,17 @@ void CheckPartyBattleTowerBanlist(void)
if (counter == 0)
{
- StringAppend(gStringVar1, gUnknown_08400E2C);
- StringAppend(gStringVar1, gUnknown_08400E32);
+ StringAppend(gStringVar1, BattleText_Format5);
+ StringAppend(gStringVar1, BattleText_Format8);
return;
}
if (1 & counter)
- StringAppend(gStringVar1, gUnknown_08400E2E);
+ StringAppend(gStringVar1, BattleText_Format6);
else
- StringAppend(gStringVar1, gUnknown_08400E2C);
+ StringAppend(gStringVar1, BattleText_Format5);
- StringAppend(gStringVar1, gUnknown_08400E36);
+ StringAppend(gStringVar1, BattleText_Format9);
}
else
{
diff --git a/src/field/field_door.c b/src/field/field_door.c
index ab46f0696..ef349bca7 100644
--- a/src/field/field_door.c
+++ b/src/field/field_door.c
@@ -6,16 +6,397 @@
#include "songs.h"
#include "task.h"
-extern struct DoorAnimFrame gDoorOpenAnimFrames[];
-extern struct DoorAnimFrame gDoorCloseAnimFrames[];
-extern struct DoorGraphics gDoorAnimGraphicsTable[];
+const u8 DoorAnimTiles_04[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/04/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/04/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/04/2.4bpp"),
+};
+
+// TODO: Make these blank palette includes?
+asm(".space 32");
+
+const u8 DoorAnimTiles_05[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/05/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/05/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/05/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_08[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/08/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/08/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/08/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_15[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/15/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/15/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/15/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_16[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/16/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/16/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/16/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_00[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/00/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/00/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/00/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_01[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/01/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/01/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/01/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_02[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/02/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/02/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/02/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_03[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/03/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/03/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/03/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_06[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/06/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/06/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/06/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_07[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/07/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/07/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/07/2.4bpp"),
+};
+
+const u8 DoorAnimTiles_09[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/09/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/09/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/09/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_10[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/10/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/10/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/10/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_11[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/11/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/11/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/11/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_12[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/12/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/12/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/12/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_13[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/13/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/13/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/13/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_14[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/14/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/14/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/14/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_17[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/17/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/17/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/17/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_18[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/18/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/18/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/18/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_19[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/19/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/19/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/19/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_20[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/20/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/20/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/20/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_21[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/21/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/21/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/21/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_22[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/22/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/22/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/22/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_23[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/23/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/23/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/23/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_24[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/24/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/24/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/24/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_25[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/25/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/25/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/25/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_26[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/26/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/26/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/26/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_27[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/27/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/27/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/27/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_28[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/28/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/28/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/28/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_29[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/29/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/29/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/29/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_30[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/30/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/30/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/30/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_31[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/31/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/31/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/31/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_32[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/32/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/32/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/32/2.4bpp"),
+};
+
+asm(".space 32");
+
+const u8 DoorAnimTiles_33[][0x100] =
+{
+ INCBIN_U8("graphics/door_anims/33/0.4bpp"),
+ INCBIN_U8("graphics/door_anims/33/1.4bpp"),
+ INCBIN_U8("graphics/door_anims/33/2.4bpp"),
+};
+
+asm(".space 32");
+
+static const struct DoorAnimFrame gDoorOpenAnimFrames[] =
+{
+ {4, -1},
+ {4, 0},
+ {4, 0x100},
+ {4, 0x200},
+ {0, 0},
+};
+
+static const struct DoorAnimFrame gDoorCloseAnimFrames[] =
+{
+ {4, 0x200},
+ {4, 0x100},
+ {4, 0},
+ {4, -1},
+ {0, 0},
+};
+
+const u8 DoorAnimPalettes_830F8A4[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 00
+const u8 DoorAnimPalettes_830F8AC[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 01
+const u8 DoorAnimPalettes_830F8B4[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 02
+const u8 DoorAnimPalettes_830F8BC[] = {0, 0, 1, 1, 1, 1, 1, 1}; // door 03
+const u8 DoorAnimPalettes_830F8C4[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 04
+const u8 DoorAnimPalettes_830F8CC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 05
+const u8 DoorAnimPalettes_830F8D4[] = {11, 11, 11, 11, 11, 11, 11, 11}; // door 06
+const u8 DoorAnimPalettes_830F8DC[] = {10, 10, 10, 10, 10, 10, 10, 10}; // door 07
+const u8 DoorAnimPalettes_830F8E4[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 08
+const u8 DoorAnimPalettes_830F8EC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 09
+const u8 DoorAnimPalettes_830F8F4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 10
+const u8 DoorAnimPalettes_830F8FC[] = {9, 9, 1, 1, 1, 1, 1, 1}; // door 11
+const u8 DoorAnimPalettes_830F904[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 12
+const u8 DoorAnimPalettes_830F90C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 13
+const u8 DoorAnimPalettes_830F914[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 14
+const u8 DoorAnimPalettes_830F91C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 15
+const u8 DoorAnimPalettes_830F924[] = {0, 0, 5, 5, 5, 5, 5, 5}; // door 16
+const u8 DoorAnimPalettes_830F92C[] = {6, 6, 1, 1, 1, 1, 1, 1}; // door 17
+const u8 DoorAnimPalettes_830F934[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 18
+const u8 DoorAnimPalettes_830F93C[] = {6, 6, 5, 5, 5, 5, 5, 5}; // door 19
+const u8 DoorAnimPalettes_830F944[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 20
+const u8 DoorAnimPalettes_830F94C[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 21
+const u8 DoorAnimPalettes_830F954[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 22
+const u8 DoorAnimPalettes_830F95C[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 23
+const u8 DoorAnimPalettes_830F964[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 24
+const u8 DoorAnimPalettes_830F96C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 25
+const u8 DoorAnimPalettes_830F974[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 26
+const u8 DoorAnimPalettes_830F97C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 27
+const u8 DoorAnimPalettes_830F984[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 28
+const u8 DoorAnimPalettes_830F98C[] = {11, 11, 7, 7, 7, 7, 7, 7}; // door 29
+const u8 DoorAnimPalettes_830F994[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 30
+const u8 DoorAnimPalettes_830F99C[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 31
+const u8 DoorAnimPalettes_830F9A4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 32
+const u8 DoorAnimPalettes_830F9AC[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 33
+
+static const struct DoorGraphics gDoorAnimGraphicsTable[] =
+{
+ {0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4}, // door 00
+ {0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC}, // door 01
+ {0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4}, // door 02
+ {0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC}, // door 03
+ {0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4}, // door 04
+ {0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC}, // door 05
+ {0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4}, // door 06
+ {0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC}, // door 07
+ {0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4}, // door 08
+ {0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4}, // door 09
+ {0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934}, // door 10
+ {0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C}, // door 11
+ {0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C}, // door 12
+ {0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924}, // door 13
+ {0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C}, // door 14
+ {0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC}, // door 15
+ {0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944}, // door 16
+ {0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC}, // door 17
+ {0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914}, // door 18
+ {0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C}, // door 19
+ {0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904}, // door 20
+ {0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C}, // door 21
+ {0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954}, // door 22
+ {0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C}, // door 23
+ {0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964}, // door 24
+ {0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C}, // door 25
+ {0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974}, // door 26
+ {0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C}, // door 27
+ {0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984}, // door 28
+ {0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C}, // door 29
+ {0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994}, // door 30
+ {0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C}, // door 31
+ {0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4}, // door 32
+ {0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC}, // door 33
+ {0, 0, NULL, NULL},
+};
-static void CopyDoorTilesToVram(void *src)
+static void CopyDoorTilesToVram(const void *src)
{
CpuFastSet(src, (void *)(VRAM + 0x7F00), 0x40);
}
-static void door_build_blockdef(u16 *a, u16 b, u8 *c)
+static void door_build_blockdef(u16 *a, u16 b, const u8 *c)
{
int i;
u16 unk;
@@ -32,7 +413,7 @@ static void door_build_blockdef(u16 *a, u16 b, u8 *c)
}
}
-static void DrawCurrentDoorAnimFrame(u32 x, u32 y, u8 *c)
+static void DrawCurrentDoorAnimFrame(u32 x, u32 y, const u8 *c)
{
u16 arr[8];
@@ -48,7 +429,7 @@ static void DrawClosedDoorTiles(u32 x, u32 y)
CurrentMapDrawMetatileAt(x, y);
}
-static void DrawDoor(struct DoorGraphics *gfx, struct DoorAnimFrame *frame, u32 x, u32 y)
+static void DrawDoor(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frame, u32 x, u32 y)
{
if (frame->offset == 0xFFFF)
DrawClosedDoorTiles(x, y);
@@ -96,14 +477,14 @@ static void Task_AnimateDoor(u8 taskId)
DestroyTask(taskId);
}
-static struct DoorAnimFrame *GetLastDoorFrame(struct DoorAnimFrame *frame, void *unused)
+static const struct DoorAnimFrame *GetLastDoorFrame(const struct DoorAnimFrame *frame, const void *unused)
{
while (frame->time != 0)
frame++;
return frame - 1;
}
-static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metatileNum)
+static const struct DoorGraphics *GetDoorGraphics(const struct DoorGraphics *gfx, u16 metatileNum)
{
while (gfx->tiles != NULL)
{
@@ -114,7 +495,7 @@ static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metati
return NULL;
}
-static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, u32 x, u32 y)
+static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frames, u32 x, u32 y)
{
if (FuncIsActiveTask(Task_AnimateDoor) == TRUE)
return -1;
@@ -136,19 +517,19 @@ static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame
}
}
-static void DrawClosedDoor(struct DoorGraphics *unused, u32 x, u32 y)
+static void DrawClosedDoor(const struct DoorGraphics *unused, u32 x, u32 y)
{
DrawClosedDoorTiles(x, y);
}
-static void DrawOpenedDoor(struct DoorGraphics *gfx, u32 x, u32 y)
+static void DrawOpenedDoor(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx != NULL)
DrawDoor(gfx, GetLastDoorFrame(gDoorOpenAnimFrames, gDoorOpenAnimFrames), x, y);
}
-static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 StartDoorOpenAnimation(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
@@ -157,7 +538,7 @@ static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
return StartDoorAnimationTask(gfx, gDoorOpenAnimFrames, x, y);
}
-static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 StartDoorCloseAnimation(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
@@ -166,7 +547,7 @@ static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
return StartDoorAnimationTask(gfx, gDoorCloseAnimFrames, x, y);
}
-static s8 cur_mapdata_get_door_x2_at(struct DoorGraphics *gfx, u32 x, u32 y)
+static s8 cur_mapdata_get_door_x2_at(const struct DoorGraphics *gfx, u32 x, u32 y)
{
gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
if (gfx == NULL)
diff --git a/src/field/field_specials.c b/src/field/field_specials.c
index 46061febf..48e9b44aa 100644
--- a/src/field/field_specials.c
+++ b/src/field/field_specials.c
@@ -48,6 +48,8 @@ extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u16 gScriptResult;
+extern u8 *const gUnknown_083D1464[3];
+
EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
EWRAM_DATA u8 gBikeCollisions = 0;
EWRAM_DATA u32 gBikeCyclingTimer = 0;
diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c
index 1ee8a8f05..30423a3f9 100644
--- a/src/field/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
@@ -21,14 +21,6 @@ struct FlashStruct
void (*func)(void);
};
-extern struct FlashStruct gUnknown_083F7FC4[];
-extern u16 gCaveTransitionPalette_White[];
-extern u16 gCaveTransitionPalette_Black[];
-extern u16 gUnknown_083F808C[];
-extern u16 gUnknown_083F809C[];
-extern u16 gCaveTransitionTilemap[];
-extern u8 gCaveTransitionTiles[];
-
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
@@ -46,6 +38,38 @@ void sub_810D00C(u8);
void sub_810D028(u8);
void sub_810D0C4(u8);
void sub_810D128(u8);
+void sub_810CFF8(void);
+void sub_810CE48(void);
+
+static const struct FlashStruct gUnknown_083F7FC4[] =
+{
+ {1, 4, 1, 0, sub_810CFF8},
+ {2, 4, 1, 0, sub_810CFF8},
+ {3, 4, 1, 0, sub_810CFF8},
+ {5, 4, 1, 0, sub_810CFF8},
+ {6, 4, 1, 0, sub_810CFF8},
+ {7, 4, 1, 0, sub_810CFF8},
+ {8, 4, 1, 0, sub_810CFF8},
+ {9, 4, 1, 0, sub_810CFF8},
+ {4, 1, 0, 1, sub_810CE48},
+ {4, 2, 0, 1, sub_810CE48},
+ {4, 3, 0, 1, sub_810CE48},
+ {4, 5, 0, 1, sub_810CE48},
+ {4, 6, 0, 1, sub_810CE48},
+ {4, 7, 0, 1, sub_810CE48},
+ {4, 8, 0, 1, sub_810CE48},
+ {4, 9, 0, 1, sub_810CE48},
+ {0, 0, 0, 0, NULL},
+};
+
+// TODO: Make these extracted palettes?
+static const u16 gCaveTransitionPalette_White[] = {0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF};
+static const u16 gCaveTransitionPalette_Black[] = {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000};
+
+static const u16 gUnknown_083F808C[] = INCBIN_U16("graphics/misc/83F808C.gbapal");
+static const u16 gUnknown_083F809C[] = INCBIN_U16("graphics/misc/83F809C.gbapal");
+static const u16 gCaveTransitionTilemap[] = INCBIN_U16("graphics/misc/cave_transition_map.bin.lz");
+static const u8 gCaveTransitionTiles[] = INCBIN_U8("graphics/misc/cave_transition.4bpp.lz");
bool8 SetUpFieldMove_Flash(void)
{
diff --git a/src/field/money.c b/src/field/money.c
index 5d0f0ae8d..f277ac905 100644
--- a/src/field/money.c
+++ b/src/field/money.c
@@ -4,6 +4,7 @@
#include "menu.h"
#include "sprite.h"
#include "string_util.h"
+#include "graphics.h"
#define SPRITE_TAG_MONEY (0x2722)
@@ -11,9 +12,47 @@ extern u16 gSpecialVar_0x8005;
static EWRAM_DATA u8 gUnknown_02038734 = 0;
-extern const struct CompressedSpriteSheet gUnknown_083CF584;
-extern const struct CompressedSpritePalette gUnknown_083CF58C;
-extern const struct SpriteTemplate gSpriteTemplate_83CF56C;
+static const struct OamData gOamData_83CF558 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83CF560[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83CF568[] =
+{
+ gSpriteAnim_83CF560,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83CF56C =
+{
+ .tileTag = 10018,
+ .paletteTag = 10018,
+ .oam = &gOamData_83CF558,
+ .anims = gSpriteAnimTable_83CF568,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct CompressedSpriteSheet gUnknown_083CF584[] = {gMenuMoneyGfx, 256, SPRITE_TAG_MONEY};
+const struct CompressedSpritePalette gUnknown_083CF58C[] = {gMenuMoneyPal, SPRITE_TAG_MONEY};
bool8 IsEnoughMoney(u32 budget, u32 cost)
{
@@ -239,8 +278,8 @@ void OpenMoneyWindow(u32 amount, u8 x, u8 y)
MenuDrawTextWindow(x, y, x + 13, y + 3);
UpdateMoneyWindow(amount, x, y);
- LoadCompressedObjectPic(&gUnknown_083CF584);
- LoadCompressedObjectPalette(&gUnknown_083CF58C);
+ LoadCompressedObjectPic(gUnknown_083CF584);
+ LoadCompressedObjectPalette(gUnknown_083CF58C);
gUnknown_02038734 = CreateSprite(&gSpriteTemplate_83CF56C, x * 8 + 19, y * 8 + 11, 0);
}
diff --git a/src/field/tv.c b/src/field/tv.c
index a0287e7df..29d012f28 100644
--- a/src/field/tv.c
+++ b/src/field/tv.c
@@ -39,6 +39,8 @@
#include "strings.h"
#include "text.h"
#include "ewram.h"
+#include "moves.h"
+#include "region_map_sections.h"
struct UnkTvStruct
{
@@ -66,27 +68,6 @@ extern struct TVSaleItem gUnknown_02038724[3];
struct UnkTvStruct gUnknown_03005D38;
-extern u8 *gTVBravoTrainerTextGroup[];
-extern u8 *gTVBravoTrainerBattleTowerTextGroup[];
-extern u8 *gTVSmartShopperTextGroup[];
-extern u8 *gTVNameRaterTextGroup[];
-extern u8 *gTVPokemonTodayTextGroup[];
-extern u8 *gTVPokemonTodayFailedCaptureTextGroup[];
-extern u8 *gTVFanClubTextGroup[];
-extern u8 *gTVRecentHappeningsTextGroup[];
-extern u8 *gTVFanClubOpinionsTextGroup[];
-extern u8 *gTVPokemonOutbreakTextGroup[];
-extern u8 *gTVGabbyAndTyTextGroup[];
-extern u8 *gTVFishingGuruAdviceTextGroup[];
-extern u8 *gTVWorldOfMastersTextGroup[];
-extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5];
-
-
-
-extern const u8 *gTVNewsTextGroup1[];
-extern const u8 *gTVNewsTextGroup2[];
-extern const u8 *gTVNewsTextGroup3[];
-
extern u16 gScriptLastTalked;
extern u8 gScriptContestCategory;
@@ -105,6 +86,351 @@ static u8 gUnknown_03000720;
static u8 gUnknown_03000721;
static s8 gUnknown_03000722;
+const struct OutbreakPokemon gPokeOutbreakSpeciesList[5] =
+{
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 3,
+ .location = MAPSEC_Route102,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route114,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route117,
+ },
+ {
+ .species = SPECIES_SURSKIT,
+ .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE},
+ .level = 28,
+ .location = MAPSEC_Route120,
+ },
+ {
+ .species = SPECIES_SKITTY,
+ .moves = {MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE},
+ .level = 15,
+ .location = MAPSEC_Route116,
+ },
+};
+
+extern const u8 gTVNewsText_EnergyGuru1[];
+extern const u8 gTVNewsText_GameCorner1[];
+extern const u8 gTVNewsText_LilycoveDepartment1[];
+extern const u8 gTVNewsText_EnergyGuru2[];
+extern const u8 gTVNewsText_GameCorner2[];
+extern const u8 gTVNewsText_LilycoveDepartment2[];
+extern const u8 gTVNewsText_EnergyGuru3[];
+extern const u8 gTVNewsText_GameCorner3[];
+extern const u8 gTVNewsText_LilycoveDepartment3[];
+extern const u8 gTVFanClubText1[];
+extern const u8 gTVFanClubText2[];
+extern const u8 gTVFanClubText3[];
+extern const u8 gTVFanClubText4[];
+extern const u8 gTVFanClubText5[];
+extern const u8 gTVFanClubText6[];
+extern const u8 gTVFanClubText7[];
+extern const u8 gTVFanClubText8[];
+extern const u8 gTVRecentHappeningsText1[];
+extern const u8 gTVRecentHappeningsText2[];
+extern const u8 gTVRecentHappeningsText3[];
+extern const u8 gTVRecentHappeningsText4[];
+extern const u8 gTVRecentHappeningsText5[];
+extern const u8 gTVRecentHappeningsText6[];
+extern const u8 gTVFanClubOpinionsText1[];
+extern const u8 gTVFanClubOpinionsText2[];
+extern const u8 gTVFanClubOpinionsText3[];
+extern const u8 gTVFanClubOpinionsText4[];
+extern const u8 gTVFanClubOpinionsText5[];
+extern const u8 gTVPokemonOutbreakText[];
+extern const u8 gTVPokemonTodayText1[];
+extern const u8 gTVPokemonTodayText2[];
+extern const u8 gTVPokemonTodayText3[];
+extern const u8 gTVPokemonTodayText4[];
+extern const u8 gTVPokemonTodayText5[];
+extern const u8 gTVPokemonTodayText6[];
+extern const u8 gTVPokemonTodayText7[];
+extern const u8 gTVPokemonTodayText8[];
+extern const u8 gTVPokemonTodayText9[];
+extern const u8 gTVPokemonTodayText10[];
+extern const u8 gTVPokemonTodayText11[];
+extern const u8 gTVPokemonTodayText12[];
+extern const u8 gTVSmartShopperText1[];
+extern const u8 gTVSmartShopperText2[];
+extern const u8 gTVSmartShopperText3[];
+extern const u8 gTVSmartShopperText4[];
+extern const u8 gTVSmartShopperText5[];
+extern const u8 gTVSmartShopperText6[];
+extern const u8 gTVSmartShopperText7[];
+extern const u8 gTVSmartShopperText8[];
+extern const u8 gTVSmartShopperText9[];
+extern const u8 gTVSmartShopperText10[];
+extern const u8 gTVSmartShopperText11[];
+extern const u8 gTVSmartShopperText12[];
+extern const u8 gTVSmartShopperText13[];
+extern const u8 gTVBravoTrainerText1[];
+extern const u8 gTVBravoTrainerText2[];
+extern const u8 gTVBravoTrainerText3[];
+extern const u8 gTVBravoTrainerText4[];
+extern const u8 gTVBravoTrainerText5[];
+extern const u8 gTVBravoTrainerText6[];
+extern const u8 gTVBravoTrainerText7[];
+extern const u8 gTVBravoTrainerText8[];
+extern const u8 gTVBravoTrainerText9[];
+extern const u8 gTVBravoTrainerBattleTowerText1[];
+extern const u8 gTVBravoTrainerBattleTowerText2[];
+extern const u8 gTVBravoTrainerBattleTowerText3[];
+extern const u8 gTVBravoTrainerBattleTowerText4[];
+extern const u8 gTVBravoTrainerBattleTowerText5[];
+extern const u8 gTVBravoTrainerBattleTowerText6[];
+extern const u8 gTVBravoTrainerBattleTowerText7[];
+extern const u8 gTVBravoTrainerBattleTowerText8[];
+extern const u8 gTVBravoTrainerBattleTowerText9[];
+extern const u8 gTVBravoTrainerBattleTowerText10[];
+extern const u8 gTVBravoTrainerBattleTowerText11[];
+extern const u8 gTVBravoTrainerBattleTowerText12[];
+extern const u8 gTVBravoTrainerBattleTowerText13[];
+extern const u8 gTVBravoTrainerBattleTowerText14[];
+extern const u8 gTVBravoTrainerBattleTowerText15[];
+extern const u8 gTVNameRaterText1[];
+extern const u8 gTVNameRaterText2[];
+extern const u8 gTVNameRaterText3[];
+extern const u8 gTVNameRaterText4[];
+extern const u8 gTVNameRaterText5[];
+extern const u8 gTVNameRaterText6[];
+extern const u8 gTVNameRaterText7[];
+extern const u8 gTVNameRaterText8[];
+extern const u8 gTVNameRaterText9[];
+extern const u8 gTVNameRaterText10[];
+extern const u8 gTVNameRaterText11[];
+extern const u8 gTVNameRaterText12[];
+extern const u8 gTVNameRaterText13[];
+extern const u8 gTVNameRaterText14[];
+extern const u8 gTVNameRaterText15[];
+extern const u8 gTVNameRaterText16[];
+extern const u8 gTVNameRaterText17[];
+extern const u8 gTVNameRaterText18[];
+extern const u8 gTVNameRaterText19[];
+extern const u8 gTVPokemonTodayFailedCaptureText1[];
+extern const u8 gTVPokemonTodayFailedCaptureText2[];
+extern const u8 gTVPokemonTodayFailedCaptureText3[];
+extern const u8 gTVPokemonTodayFailedCaptureText4[];
+extern const u8 gTVPokemonTodayFailedCaptureText5[];
+extern const u8 gTVPokemonTodayFailedCaptureText6[];
+extern const u8 gTVPokemonTodayFailedCaptureText7[];
+extern const u8 gTVFishingGuruAdviceText1[];
+extern const u8 gTVFishingGuruAdviceText2[];
+extern const u8 gTVWorldOfMastersText1[];
+extern const u8 gTVWorldOfMastersText2[];
+extern const u8 gTVWorldOfMastersText3[];
+extern const u8 gTVGabbyAndTyText1[];
+extern const u8 gTVGabbyAndTyText2[];
+extern const u8 gTVGabbyAndTyText3[];
+extern const u8 gTVGabbyAndTyText4[];
+extern const u8 gTVGabbyAndTyText5[];
+extern const u8 gTVGabbyAndTyText6[];
+extern const u8 gTVGabbyAndTyText7[];
+extern const u8 gTVGabbyAndTyText8[];
+extern const u8 gTVGabbyAndTyText9[];
+
+const u8 *const gTVNewsTextGroup1[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru1,
+ gTVNewsText_GameCorner1,
+ gTVNewsText_LilycoveDepartment1,
+};
+
+const u8 *const gTVNewsTextGroup2[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru2,
+ gTVNewsText_GameCorner2,
+ gTVNewsText_LilycoveDepartment2,
+};
+
+const u8 *const gTVNewsTextGroup3[] =
+{
+ NULL,
+ gTVNewsText_EnergyGuru3,
+ gTVNewsText_GameCorner3,
+ gTVNewsText_LilycoveDepartment3,
+};
+
+u8 *const gUnknown_083D1464[] =
+{
+ gStringVar1,
+ gStringVar2,
+ gStringVar3,
+};
+
+const u8 *const gTVFanClubTextGroup[] =
+{
+ gTVFanClubText1,
+ gTVFanClubText2,
+ gTVFanClubText3,
+ gTVFanClubText4,
+ gTVFanClubText5,
+ gTVFanClubText6,
+ gTVFanClubText7,
+ gTVFanClubText8,
+};
+
+const u8 *const gTVRecentHappeningsTextGroup[] =
+{
+ gTVRecentHappeningsText1,
+ gTVRecentHappeningsText2,
+ gTVRecentHappeningsText3,
+ gTVRecentHappeningsText4,
+ gTVRecentHappeningsText5,
+ gTVRecentHappeningsText6,
+};
+
+const u8 *const gTVFanClubOpinionsTextGroup[] =
+{
+ gTVFanClubOpinionsText1,
+ gTVFanClubOpinionsText2,
+ gTVFanClubOpinionsText3,
+ gTVFanClubOpinionsText4,
+ gTVFanClubOpinionsText5,
+};
+
+const u8 *const gTVPokemonOutbreakTextGroup[] =
+{
+ gTVPokemonOutbreakText,
+};
+
+const u8 *const gTVPokemonTodayTextGroup[] =
+{
+ gTVPokemonTodayText1,
+ gTVPokemonTodayText2,
+ gTVPokemonTodayText3,
+ gTVPokemonTodayText4,
+ gTVPokemonTodayText5,
+ gTVPokemonTodayText6,
+ gTVPokemonTodayText7,
+ gTVPokemonTodayText8,
+ gTVPokemonTodayText9,
+ gTVPokemonTodayText10,
+ gTVPokemonTodayText11,
+ gTVPokemonTodayText12,
+};
+
+const u8 *const gTVSmartShopperTextGroup[] =
+{
+ gTVSmartShopperText1,
+ gTVSmartShopperText2,
+ gTVSmartShopperText3,
+ gTVSmartShopperText4,
+ gTVSmartShopperText5,
+ gTVSmartShopperText6,
+ gTVSmartShopperText7,
+ gTVSmartShopperText8,
+ gTVSmartShopperText9,
+ gTVSmartShopperText10,
+ gTVSmartShopperText11,
+ gTVSmartShopperText12,
+ gTVSmartShopperText13,
+};
+
+const u8 *const gTVBravoTrainerTextGroup[] =
+{
+ gTVBravoTrainerText1,
+ gTVBravoTrainerText2,
+ gTVBravoTrainerText3,
+ gTVBravoTrainerText4,
+ gTVBravoTrainerText5,
+ gTVBravoTrainerText6,
+ gTVBravoTrainerText7,
+ gTVBravoTrainerText8,
+ gTVBravoTrainerText9,
+};
+
+const u8 *const gTVBravoTrainerBattleTowerTextGroup[] =
+{
+ gTVBravoTrainerBattleTowerText1,
+ gTVBravoTrainerBattleTowerText2,
+ gTVBravoTrainerBattleTowerText3,
+ gTVBravoTrainerBattleTowerText4,
+ gTVBravoTrainerBattleTowerText5,
+ gTVBravoTrainerBattleTowerText6,
+ gTVBravoTrainerBattleTowerText7,
+ gTVBravoTrainerBattleTowerText8,
+ gTVBravoTrainerBattleTowerText9,
+ gTVBravoTrainerBattleTowerText10,
+ gTVBravoTrainerBattleTowerText11,
+ gTVBravoTrainerBattleTowerText12,
+ gTVBravoTrainerBattleTowerText13,
+ gTVBravoTrainerBattleTowerText14,
+ gTVBravoTrainerBattleTowerText15,
+};
+
+const u8 *const gTVNameRaterTextGroup[] =
+{
+ gTVNameRaterText1,
+ gTVNameRaterText2,
+ gTVNameRaterText3,
+ gTVNameRaterText4,
+ gTVNameRaterText5,
+ gTVNameRaterText6,
+ gTVNameRaterText7,
+ gTVNameRaterText8,
+ gTVNameRaterText9,
+ gTVNameRaterText10,
+ gTVNameRaterText11,
+ gTVNameRaterText12,
+ gTVNameRaterText13,
+ gTVNameRaterText14,
+ gTVNameRaterText15,
+ gTVNameRaterText16,
+ gTVNameRaterText17,
+ gTVNameRaterText18,
+ gTVNameRaterText19,
+};
+
+const u8 *const gTVPokemonTodayFailedCaptureTextGroup[] =
+{
+ gTVPokemonTodayFailedCaptureText1,
+ gTVPokemonTodayFailedCaptureText2,
+ gTVPokemonTodayFailedCaptureText3,
+ gTVPokemonTodayFailedCaptureText4,
+ gTVPokemonTodayFailedCaptureText5,
+ gTVPokemonTodayFailedCaptureText6,
+ gTVPokemonTodayFailedCaptureText7,
+};
+
+const u8 *const gTVFishingGuruAdviceTextGroup[] =
+{
+ gTVFishingGuruAdviceText1,
+ gTVFishingGuruAdviceText2,
+};
+
+const u8 *const gTVWorldOfMastersTextGroup[] =
+{
+ gTVWorldOfMastersText1,
+ gTVWorldOfMastersText2,
+ gTVWorldOfMastersText3,
+};
+
+const u8 *const gTVGabbyAndTyTextGroup[] =
+{
+ gTVGabbyAndTyText1,
+ gTVGabbyAndTyText2,
+ gTVGabbyAndTyText3,
+ gTVGabbyAndTyText4,
+ gTVGabbyAndTyText5,
+ gTVGabbyAndTyText6,
+ gTVGabbyAndTyText7,
+ gTVGabbyAndTyText8,
+ gTVGabbyAndTyText9,
+};
+
void ClearTVShowData(void)
{
u8 showidx;
diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c
index 0cad8db59..9ea738c7b 100644
--- a/src/pokemon/mon_markings.c
+++ b/src/pokemon/mon_markings.c
@@ -24,8 +24,8 @@ struct PokemonMarkMenu
/*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
/*0x0014*/ struct Sprite *menuMarkingSprites[4];
/*0x0024*/ struct Sprite *menuTextSprite;
- /*0x0028*/ u8 *frameTiles;
- /*0x002C*/ u16 *framePalette;
+ /*0x0028*/ const u8 *frameTiles;
+ /*0x002C*/ const u16 *framePalette;
/*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
/*0x1030*/ u8 filler1030[0x80];
/*0x10B0*/ u8 tileLoadState;
diff --git a/src/pokemon/pokemon_3.c b/src/pokemon/pokemon_3.c
index 19786e506..a8e824b33 100644
--- a/src/pokemon/pokemon_3.c
+++ b/src/pokemon/pokemon_3.c
@@ -56,10 +56,10 @@ extern u16 gBattlePartyID[];
extern u8 gJapaneseNidoranNames[][11];
extern u8 gUnknown_082082F8[];
-extern u8 gUnknown_083FFDB3[];
-extern u8 gUnknown_083FFDD3[];
-extern u8 gUnknown_083FEE5D[];
-extern u8 gUnknown_083FEE92[];
+extern u8 BattleText_Rose[];
+extern u8 BattleText_UnknownString3[];
+extern u8 BattleText_MistShroud[];
+extern u8 BattleText_GetPumped[];
extern u8 *gUnknown_08400F58[];
bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId)
@@ -197,8 +197,8 @@ void sub_803F324(int stat)
{
gBankTarget = gBankInMenu;
StringCopy(gBattleTextBuff1, gUnknown_08400F58[gUnknown_082082F8[stat]]);
- StringCopy(gBattleTextBuff2, gUnknown_083FFDB3);
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FFDD3);
+ StringCopy(gBattleTextBuff2, BattleText_Rose);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_UnknownString3);
}
u8 *sub_803F378(u16 itemId)
@@ -237,7 +237,7 @@ u8 *sub_803F378(u16 itemId)
else
{
gBankAttacker = gBankInMenu;
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE92);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_GetPumped);
}
}
}
@@ -245,7 +245,7 @@ u8 *sub_803F378(u16 itemId)
if (itemEffect[3] & 0x80)
{
gBankAttacker = gBankInMenu;
- StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE5D);
+ StrCpyDecodeToDisplayedStringBattle(BattleText_MistShroud);
}
return gDisplayedStringBattle;
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index 755176c81..4b73ab5b2 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -85,9 +85,9 @@ extern u8 gBattleCommunication[];
#define sEvoCursorPos gBattleCommunication[1] // when learning a new move
#define sEvoGraphicsTaskID gBattleCommunication[2]
-extern const u8 gUnknown_08400C4A[];
-extern const u8 gUnknown_08400C60[];
-extern const u8 gUnknown_08400C8D[];
+extern const u8 BattleText_StartEvo[];
+extern const u8 BattleText_FinishEvo[];
+extern const u8 BattleText_StopEvo[];
extern void * const gUnknown_081FAF4C[];
extern const u8* const gBattleStringsTable[];
@@ -557,7 +557,7 @@ static void Task_EvolutionScene(u8 taskID)
case 1: // print 'whoa, poke is evolving!!!' msg
if (!gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tState++;
}
@@ -645,7 +645,7 @@ static void Task_EvolutionScene(u8 taskID)
case 13: // congratulations string and rename prompt
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
PlayBGM(BGM_FANFA5);
gTasks[taskID].tState++;
@@ -714,7 +714,7 @@ static void Task_EvolutionScene(u8 taskID)
case 18: // after the cry, print the string 'WHOA IT DID NOT EVOLVE!!!'
if (IsCryFinished())
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C8D);
+ StringExpandPlaceholders(gStringVar4, BattleText_StopEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tEvoWasStopped = TRUE;
gTasks[taskID].tState = 14;
@@ -899,7 +899,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
switch (gTasks[taskID].tState)
{
case 0:
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState++;
break;
@@ -987,7 +987,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 12:
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlayFanfare(BGM_FANFA5);
gTasks[taskID].tState++;