shithub: pokecrystal

Download patch

ref: cf4ec47b153f59ec377bef48fb5ea442638c6421
parent: 42df1ed844d3a9e5f5fbe2aceb48c59a4451dcbd
parent: b3d8c2ec4938773e09c123ddda0df844f8008978
author: Bryan Bishop <[email protected]>
date: Sun May 12 02:21:45 EDT 2013

Merge pull request #130 from Sanky/master

Menu stuff, battle text split & extras.

--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -861,4 +861,10 @@
 
 
 if __name__ == "__main__":
-    print output_bank_opcodes(int(sys.argv[1], 16))[0]
+    addr = sys.argv[1]
+    if ":" in addr:
+        addr = addr.split(":")
+        addr = int(addr[0], 16)*0x4000+(int(addr[1], 16)%0x4000)
+    else:
+        addr = int(addr, 16)
+    print output_bank_opcodes(addr)[0]
--- /dev/null
+++ b/extras/parse_consecutive_strings.py
@@ -1,0 +1,25 @@
+import sys
+
+import crystal
+
+rom = crystal.load_rom()
+
+addr = int(sys.argv[1], 16)
+count = int(sys.argv[2]) if len(sys.argv) > 2 else 256
+label_prefix = sys.argv[3] if len(sys.argv) > 3 else "UnknownString"
+
+ex = None
+
+for i in range(count):
+    try:
+        string = crystal.PokedexText(addr)
+        asm = string.to_asm()
+    except Exception as ex:
+        break
+    print label_prefix+str(i)+": ; "+hex(addr)
+    print "\t"+asm
+    print
+    addr = string.last_address
+
+print "; "+hex(addr)
+if ex: raise ex
--- a/main.asm
+++ b/main.asm
@@ -2108,8 +2108,51 @@
 	ret
 ; 1875
 
-INCBIN "baserom.gbc", $1875, $2063 - $1875
+INCBIN "baserom.gbc", $1875, $1e70 - $1875
 
+SetUpMenu: ; 1e70
+	call MenuFunc_1e7f ; ???
+	call MenuWriteText
+	call $1eff ; set up selection pointer
+	ld hl, $cfa5
+	set 7, [hl]
+	ret
+
+MenuFunc_1e7f: ; 0x1e7f
+	call $1c66
+	call $1ebd
+	call $1ea6
+	call $1cbb
+	ret
+
+MenuWriteText: ; 0x1e8c
+	xor a
+	ld [hBGMapMode], a
+	call $1ebd ; sort out the text 
+	call $1eda ; actually write it
+	call $2e31
+	ld a, [hOAMUpdate]
+	push af
+	ld a, $1
+	ld [hOAMUpdate], a
+	call $321c
+	pop af
+	ld [hOAMUpdate], a
+	ret
+; 0x1ea6
+
+INCBIN "baserom.gbc", $1ea6, $2009 - $1ea6
+
+PlayClickSFX: ; $2009
+	push de
+	ld de, SFX_READ_TEXT_2
+	call StartSFX
+	pop de
+	ret
+; 0x2012
+
+INCBIN "baserom.gbc", $2012, $2063 - $2012
+
 AskSerial: ; 2063
 ; send out a handshake while serial int is off
 	ld a, [$c2d4]
@@ -6207,8 +6250,306 @@
 	db "- ? ! ♂ ♀ / . , &"
 	db "lower  DEL   END "
 
-INCBIN "baserom.gbc", $11e5d, $12976 - $11e5d
+INCBIN "baserom.gbc", $11e5d, $125cd - $11e5d
 
+OpenMenu: ; 0x125cd
+	call $1fbf
+	ld de, SFX_MENU
+	call StartSFX
+	ld a, $1
+	ld hl, $6454
+	rst FarCall
+	ld hl, $d84d
+	bit 2, [hl]
+	ld hl, $66d3
+	jr z, .asm_125e9
+	ld hl, $66db ; draw the menu a little lower
+.asm_125e9
+	call $1d35
+	call SetUpMenuItems
+	ld a, [$d0d2]
+	ld [$cf88], a
+	call DrawMenuAccount_
+	call $1e7f
+	call $68d1
+	call $2e31
+	call $2e20
+	ld a, $1
+	ld hl, $64bf
+	rst $8
+	call $68de
+	call $0485
+	jr .wait
+.reopen
+	call $1ad2
+	call $0485
+	call $6829
+	ld a, [$d0d2]
+	ld [$cf88], a
+.wait
+	call MenuWait
+	jr c, .exit
+	call DrawMenuAccount
+	ld a, [$cf88]
+	ld [$d0d2], a
+	call PlayClickSFX
+	call $1bee
+	call $67e5
+; code when you return from a submenu.  some submenus force you to quit
+; the menu, like save.  option forces it to redraw completely.
+	ld hl, .MenuReturnPointerTable
+	ld e, a
+	ld d, $0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+	
+.MenuReturnPointerTable: ; $6644
+	 dw .reopen
+	 dw .exit
+	 dw $66a2 ; invalid?
+	 dw $6699 ; invalid?
+	 dw $6691 ; invalid?
+	 dw .end
+	 dw $66b1 ; redraw
+
+.exit
+	ld a, [$ffd8]
+	push af
+	ld a, $1
+	ld [hOAMUpdate], a
+	call $0e5f
+	pop af
+	ld [hOAMUpdate], a
+.end
+	call $1c07
+	call $2dcf
+	call $0485
+	ret
+
+MenuWait: ; 0x12669
+; returns nc if A was pressed, c if B.
+	xor a
+	ld [hBGMapMode], a
+	call DrawMenuAccount
+	call SetUpMenu
+	ld a, $ff
+	ld [MenuSelection], a
+.loop
+	call PrintMenuAccount
+	call $1f1a
+	ld a, [$cf73]
+	cp BUTTON_B
+	jr z, .b_button
+	cp BUTTON_A
+	jr z, .a_button
+	jr .loop
+.a_button
+	call PlayClickSFX
+	and a
+	ret
+.b_button
+	scf
+	ret
+; 0x12691
+
+
+INCBIN "baserom.gbc", $12691, $12721 - $12691
+
+MenuStringDex: ; 0x12721
+	db "#DEX@"
+
+MenuStringMon: ; 0x12726
+	db "#MON@"
+
+MenuStringPack: ; 0x1272b
+	db "PACK@"
+
+MenuStringProfile: ; 0x12730
+	db $52, "@"
+
+MenuStringSave: ; 0x12732
+	db "SAVE@"
+
+MenuStringOption: ; 0x12737
+	db "OPTION@"
+
+MenuStringExit: ; 0x1273e
+	db "EXIT@"
+
+MenuStringGear: ; 0x12743
+	db $24, "GEAR@"
+
+MenuStringQuit: ; 0x12749
+	db "QUIT@"
+
+MenuStringDescDex: ; 0x1274e
+	db "#MON", $4e, "database@"
+
+MenuStringDescParty: ; 0x1275c
+	db "Party ", $4a, $4e, "status@"
+
+MenuStringDescPack: ; 0x1276b
+	db "Contains", $4e, "items@"
+
+MenuStringDescGear: ; 0x1277a
+	db "Trainer's", $4e, "key device@"
+
+MenuStringDescProfile: ; 0x1278e
+	db "Your own", $4e, "status@"
+
+MenuStringDescSave: ; 0x1279e
+	db "Save your", $4e, "progress@"
+
+MenuStringDescOption: ; 0x127b1
+	db "Change", $4e, "settings@"
+
+MenuStringDescExit: ; 0x127c1
+	db "Close this", $4e, "menu@"
+
+MenuStringDescRetire: ; 0x127d1
+	db "Quit and", $4e, "be judged.@"
+
+; 0x127e5
+
+INCBIN "baserom.gbc", $127e5, $12800 - $127e5
+
+WriteMenuAccount:
+	push de
+	ld a, [MenuSelection]
+	cp $ff
+	jr z, .none 
+	call GetMenuAccountTextPointer
+	inc hl
+	inc hl
+	inc hl
+	inc hl
+	ld a, [hli]
+	ld d, [hl]
+	ld e, a
+	pop hl
+	call PlaceString
+	ret
+.none
+	pop de
+	ret
+
+GetMenuAccountTextPointer: ; 0x12819
+	ld e, a
+	ld d, $0
+	ld hl, $cf97 ; table is dynamic and stored in memory
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	add hl, de
+	add hl, de
+	add hl, de
+	add hl, de
+	add hl, de
+	ret
+
+SetUpMenuItems: ; 4:6829 = 0x12829
+	xor a
+	ld [$cf76], a
+	call $688d
+	ld hl, $d84c
+	bit 0, [hl]
+	jr z, .no_pokedex
+	ld a, $0
+	call AppendMenuList
+.no_pokedex
+	ld a, [PartyCount]
+	and a
+	jr z, .no_pokemon
+	ld a, $1
+	call AppendMenuList
+.no_pokemon
+	ld a, [InLinkBattle]
+	and a
+	jr nz, .no_pack
+	ld hl, $d84d
+	bit 2, [hl]
+	jr nz, .no_pack
+	ld a, $2
+	call AppendMenuList
+.no_pack
+	ld hl, $d957
+	bit 7, [hl]
+	jr z, .no_exit
+	ld a, $7
+	call AppendMenuList
+.no_exit
+	ld a, $3
+	call AppendMenuList
+	ld a, [InLinkBattle]
+	and a
+	jr nz, .no_save
+	ld hl, $d84d
+	bit 2, [hl]
+	ld a, $8
+	jr nz, .write
+	ld a, $4
+.write
+	call AppendMenuList
+.no_save
+	ld a, $5
+	call AppendMenuList
+	ld a, $6
+	call AppendMenuList
+	ld a, c
+	ld [MenuItemsList], a
+	ret
+
+FillMenuList: ; 0x1288d
+	xor a
+	ld hl, MenuItemsList
+	ld [hli], a
+	ld a, $ff
+	ld bc, $000f
+	call ByteFill
+	ld de, MenuItemsList+1
+	ld c, 0
+	ret
+
+AppendMenuList: ; 0x128a0
+	ld [de], a
+	inc de
+	inc c
+	ret
+
+DrawMenuAccount_:; 0x128a4
+	jp DrawMenuAccount
+
+PrintMenuAccount: ; 4:68a7 0x128a7
+	call IsMenuAccountOn
+	ret z
+	call DrawMenuAccount
+	decoord 0, 14 ; $c5b8
+	jp $6800
+
+DrawMenuAccount: ; 4:68b4 0x128b4
+	call IsMenuAccountOn
+	ret z
+	hlcoord 0, 13 ; $c5a4
+	ld bc, $050a
+	call ClearBox
+	hlcoord 0, 13 ; $c5a4
+	ld b, $3
+	ld c, $8
+	jp TextBoxPalette
+
+IsMenuAccountOn: ; 0x128cb
+	ld a, [Options2]
+	and $1
+	ret
+; 0x128d1
+
+INCBIN "baserom.gbc", $128d1, $12976 - $128d1
+
 OpenPartyMenu: ; $12976
 	ld a, [PartyCount]
 	and a
@@ -6273,7 +6614,7 @@
 	ld hl, $4d19
 	rst FarCall
 	call $389c
-	ld a, [$cf74] ; menu selection?
+	ld a, [MenuSelection]
 	ld hl, PokemonSubmenuActionPointerTable
 	ld de, $0003 ; skip 3 bytes each time
 	call IsInArray
@@ -10520,1111 +10861,8 @@
 
 INCBIN "baserom.gbc", $80648, $80730-$80648
 
-BattleText_0x80730: ; 0x80730
-	db $0, $52, " picked up", $4f
-	db "¥@"
-	deciram $c6ec, $36
-	db $0, "!", $58
-; 0x80746
+INCLUDE "text/battle.asm"
 
-WildPokemonAppearedText: ; 0x80746
-	db $0, "Wild @"
-	text_from_ram $c616
-	db $0, $4f
-	db "appeared!", $58
-; 0x8075c
-
-HookedPokemonAttackedText: ; 0x8075c
-	db $0, "The hooked", $4f
-	db "@"
-	text_from_ram $c616
-	db $0, $55
-	db "attacked!", $58
-; 0x80778
-
-PokemonFellFromTreeText: ; 0x80778
-	text_from_ram $c616
-	db $0, " fell", $4f
-	db "out of the tree!", $58
-; 0x80793
-
-WildPokemonAppearedText2: ; 0x80793
-	db $0, "Wild @"
-	text_from_ram $c616
-	db $0, $4f
-	db "appeared!", $58
-; 0x807a9
-
-WantsToBattleText: ; 0x807a9
-	db $0, $3f, $4f
-	db "wants to battle!", $58
-; 0x807bd
-
-BattleText_0x807bd: ; 0x807bd
-	db $0, "Wild @"
-	text_from_ram $c616
-	db $0, $4f
-	db "fled!", $58
-; 0x807cf
-
-BattleText_0x807cf: ; 0x807cf
-	db $0, "Enemy @"
-	text_from_ram $c616
-	db $0, $4f
-	db "fled!", $58
-; 0x807e2
-
-BattleText_0x807e2: ; 0x807e2
-	db $0, $5a, $4f
-	db "is hurt by poison!", $58
-; 0x807f8
-
-BattleText_0x807f8: ; 0x807f8
-	db $0, $5a, "'s", $4f
-	db "hurt by its burn!", $58
-; 0x8080e
-
-BattleText_0x8080e: ; 0x8080e
-	db $0, "LEECH SEED saps", $4f
-	db $5a, "!", $58
-; 0x80822
-
-BattleText_0x80822: ; 0x80822
-	db $0, $5a, $4f
-	db "has a NIGHTMARE!", $58
-; 0x80836
-
-BattleText_0x80836: ; 0x80836
-	db $0, $5a, "'s", $4f
-	db "hurt by the CURSE!", $58
-; 0x8084d
-
-BattleText_0x8084d: ; 0x8084d
-	db $0, "The SANDSTORM hits", $4f
-	db $5a, "!", $58
-; 0x80864
-
-BattleText_0x80864: ; 0x80864
-	db $0, $5a, "'s", $4f
-	db "PERISH count is @"
-	deciram $d265, $11
-	db $0, "!", $58
-; 0x80880
-
-BattleText_0x80880: ; 0x80880
-	db $0, $59, $4f
-	db "recovered with", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, ".", $58
-; 0x80899
-
-BattleText_0x80899: ; 0x80899
-	db $0, $5a, $4f
-	db "recovered PP using", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, ".", $58
-; 0x808b6
-
-BattleText_0x808b6: ; 0x808b6
-	db $0, $59, $4f
-	db "was hit by FUTURE", $55
-	db "SIGHT!", $58
-; 0x808d2
-
-BattleText_0x808d2: ; 0x808d2
-	db $0, $5a, "'s", $4f
-	db "SAFEGUARD faded!", $58
-; 0x808e7
-
-BattleText_0x808e7: ; 0x808e7
-	text_from_ram StringBuffer1
-	db $0, " #MON's", $4f
-	db "LIGHT SCREEN fell!", $58
-; 0x80905
-
-BattleText_0x80905: ; 0x80905
-	text_from_ram StringBuffer1
-	db $0, " #MON's", $4f
-	db "REFLECT faded!", $58
-; 0x8091f
-
-BattleText_0x8091f: ; 0x8091f
-	db $0, "Rain continues to", $4f
-	db "fall.", $58
-; 0x80938
-
-BattleText_0x80938: ; 0x80938
-	db $0, "The sunlight is", $4f
-	db "strong.", $58
-; 0x80951
-
-BattleText_0x80951: ; 0x80951
-	db $0, "The SANDSTORM", $4f
-	db "rages.", $58
-; 0x80967
-
-BattleText_0x80967: ; 0x80967
-	db $0, "The rain stopped.", $58
-; 0x8097a
-
-BattleText_0x8097a: ; 0x8097a
-	db $0, "The sunlight", $4f
-	db "faded.", $58
-; 0x8098f
-
-BattleText_0x8098f: ; 0x8098f
-	db $0, "The SANDSTORM", $4f
-	db "subsided.", $58
-; 0x809a8
-
-BattleText_0x809a8: ; 0x809a8
-	db $0, "Enemy @"
-	text_from_ram $c616
-	db $0, $4f
-	db "fainted!", $58
-; 0x809be
-
-BattleText_0x809be: ; 0x809be
-	db $0, $52, " got ¥@"
-	deciram $c686, $36
-	db $0, $4f
-	db "for winning!", $58
-; 0x809da
-
-BattleText_0x809da: ; 0x809da
-	db $0, $3f, $4f
-	db "was defeated!", $58
-; 0x809eb
-
-BattleText_0x809eb: ; 0x809eb
-	db $0, "Tied against", $4f
-	db $3f, "!", $58
-; 0x809fc
-
-BattleText_0x809fc: ; 0x809fc
-	db $0, $52, " got ¥@"
-	deciram $c686, $36
-	db $0, $4f
-	db "for winning!", $55
-	db "Sent some to MOM!", $58
-; 0x80a2a
-
-BattleText_0x80a2a: ; 0x80a2a
-	db $0, "Sent half to MOM!", $58
-; 0x80a3d
-
-BattleText_0x80a3d: ; 0x80a3d
-	db $0, "Sent all to MOM!", $58
-; 0x80a4f
-
-BattleText_0x80a4f: ; 0x80a4f
-	db $0, $53, ": Huh? I", $4f
-	db "should've chosen", $55
-	db "your #MON!", $58
-; 0x80a75
-
-BattleText_0x80a75: ; 0x80a75
-	text_from_ram $c621
-	db $0, $4f
-	db "fainted!", $58
-; 0x80a83
-
-BattleText_0x80a83: ; 0x80a83
-	db $0, "Use next #MON?", $57
-; 0x80a93
-
-BattleText_0x80a93: ; 0x80a93
-	db $0, $53, ": Yes!", $4f
-	db "I guess I chose a", $55
-	db "good #MON!", $58
-; 0x80ab9
-
-BattleText_0x80ab9: ; 0x80ab9
-	db $0, "Lost against", $4f
-	db $3f, "!", $58
-; 0x80aca
-
-BattleText_0x80aca: ; 0x80aca
-	db $0, $3f, $4f
-	db "is about to use", $55
-	db "@"
-	text_from_ram $c616
-	db $0, ".", $51
-	db "Will ", $52, $4f
-	db "change #MON?", $57
-; 0x80af8
-
-BattleText_0x80af8: ; 0x80af8
-	db $0, $3f, $4f
-	db "sent out", $55
-	db "@"
-	text_from_ram $c616
-	db $0, "!", $57
-; 0x80b0b
-
-BattleText_0x80b0b: ; 0x80b0b
-	db $0, "There's no will to", $4f
-	db "battle!", $58
-; 0x80b26
-
-BattleText_0x80b26: ; 0x80b26
-	db $0, "An EGG can't", $4f
-	db "battle!", $58
-; 0x80b3b
-
-BattleText_0x80b3b: ; 0x80b3b
-	db $0, "Can't escape!", $58
-; 0x80b49
-
-BattleText_0x80b49: ; 0x80b49
-	db $0, "No! There's no", $4f
-	db "running from a", $55
-	db "trainer battle!", $58
-; 0x80b77
-
-BattleText_0x80b77: ; 0x80b77
-	db $0, "Got away safely!", $58
-; 0x80b89
-
-BattleText_0x80b89: ; 0x80b89
-	db $0, $5a, $4f
-	db "fled using a", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x80ba0
-
-BattleText_0x80ba0: ; 0x80ba0
-	db $0, "Can't escape!", $58
-; 0x80bae
-
-BattleText_0x80bae: ; 0x80bae
-	db $0, $5a, "'s", $4f
-	db "hurt by SPIKES!", $58
-; 0x80bc2
-
-RecoveredUsingText: ; 0x80bc2
-	db $0, $59, $4f
-	db "recovered using a", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x80bde
-
-BattleText_0x80bde: ; 0x80bde
-	db $0, $5a, "'s", $4f
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, $55
-	db "activated!", $58
-; 0x80bf3
-
-BattleText_0x80bf3: ; 0x80bf3
-	db $0, "Items can't be", $4f
-	db "used here.", $58
-; 0x80c0d
-
-BattleText_0x80c0d: ; 0x80c0d
-	text_from_ram $c621
-	db $0, $4f
-	db "is already out.", $58
-; 0x80c22
-
-BattleText_0x80c22: ; 0x80c22
-	text_from_ram $c621
-	db $0, $4f
-	db "can't be recalled!", $58
-; 0x80c39
-
-BattleText_0x80c39: ; 0x80c39
-	db $0, "There's no PP left", $4f
-	db "for this move!", $58
-; 0x80c5b
-
-BattleText_0x80c5b: ; 0x80c5b
-	db $0, "The move is", $4f
-	db "DISABLED!", $58
-; 0x80c72
-
-BattleText_0x80c72: ; 0x80c72
-	text_from_ram $c621
-	db $0, $4f
-	db "has no moves left!", $57
-; 0x80c8a
-
-BattleText_0x80c8a: ; 0x80c8a
-	db $0, $59, "'s", $4f
-	db "ENCORE ended!", $58
-; 0x80c9c
-
-BattleText_0x80c9c: ; 0x80c9c
-	text_from_ram StringBuffer1
-	db $0, " grew to", $4f
-	db "level @"
-	deciram $d143, $13
-	db $0, "!@"
-	sound0
-	db $50
-; 0x80cb9
-
-BattleText_0x80cb9: ; 0x80cb9
-	db $50
-; 0x80cba
-
-BattleText_0x80cba: ; 0x80cba
-	db $0, "Wild @"
-	text_from_ram $c616
-	db $0, $4f
-	db "is eating!", $58
-; 0x80cd1
-
-BattleText_0x80cd1: ; 0x80cd1
-	db $0, "Wild @"
-	text_from_ram $c616
-	db $0, $4f
-	db "is angry!", $58
-; 0x80ce7
-
-FastAsleepText: ; 0x80ce7
-	db $0, $5a, $4f
-	db "is fast asleep!", $58
-; 0x80cfa
-
-WokeUpText: ; 0x80cfa
-	db $0, $5a, $4f
-	db "woke up!", $58
-; 0x80d06
-
-FrozenSolidText: ; 0x80d06
-	db $0, $5a, $4f
-	db "is frozen solid!", $58
-; 0x80d1a
-
-FlinchedText: ; 0x80d1a
-	db $0, $5a, $4f
-	db "flinched!", $58
-; 0x80d27
-
-MustRechargeText: ; 0x80d27
-	db $0, $5a, $4f
-	db "must recharge!", $58
-; 0x80d39
-
-DisabledNoMoreText: ; 0x80d39
-	db $0, $5a, "'s", $4f
-	db "disabled no more!", $58
-; 0x80d4f
-
-IsConfusedText: ; 0x80d4f
-	db $0, $5a, $4f
-	db "is confused!", $58
-; 0x80d5f
-
-HurtItselfText: ; 0x80d5f
-	db $0, "It hurt itself in", $4f
-	db "its confusion!", $58
-; 0x80d81
-
-ConfusedNoMoreText: ; 0x80d81
-	db $0, $5a, "'s", $4f
-	db "confused no more!", $58
-; 0x80d97
-
-BecameConfusedText: ; 0x80d97
-	db $0, $59, $4f
-	db "became confused!", $58
-; 0x80dab
-
-BattleText_0x80dab: ; 0x80dab
-	db $0, "A @"
-	text_from_ram StringBuffer1
-	db $0, " rid", $4f
-	db $59, $55
-	db "of its confusion.", $58
-; 0x80dcc
-
-AlreadyConfusedText: ; 0x80dcc
-	db $0, $59, "'s", $4f
-	db "already confused!", $58
-; 0x80de2
-
-BattleText_0x80de2: ; 0x80de2
-	db $0, $5a, "'s", $4f
-	db "hurt by", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x80df5
-
-BattleText_0x80df5: ; 0x80df5
-	db $0, $5a, $4f
-	db "was released from", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x80e11
-
-UsedBindText: ; 0x80e11
-	db $0, $5a, $4f
-	db "used BIND on", $55
-	db $59, "!", $58
-; 0x80e24
-
-WhirlpoolTrapText: ; 0x80e24
-	db $0, $59, $4f
-	db "was trapped!", $58
-; 0x80e34
-
-FireSpinTrapText: ; 0x80e34
-	db $0, $59, $4f
-	db "was trapped!", $58
-; 0x80e44
-
-WrappedByText: ; 0x80e44
-	db $0, $59, $4f
-	db "was WRAPPED by", $55
-	db $5a, "!", $58
-; 0x80e59
-
-ClampedByText: ; 0x80e59
-	db $0, $59, $4f
-	db "was CLAMPED by", $55
-	db $5a, "!", $58
-; 0x80e6e
-
-StoringEnergyText: ; 0x80e6e
-	db $0, $5a, $4f
-	db "is storing energy!", $58
-; 0x80e84
-
-UnleashedEnergyText: ; 0x80e84
-	db $0, $5a, $4f
-	db "unleashed energy!", $58
-; 0x80e99
-
-HungOnText: ; 0x80e99
-	db $0, $59, $4f
-	db "hung on with", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x80eb0
-
-EnduredText: ; 0x80eb0
-	db $0, $59, $4f
-	db "ENDURED the hit!", $58
-; 0x80ec4
-
-InLoveWithText: ; 0x80ec4
-	db $0, $5a, $4f
-	db "is in love with", $55
-	db $59, "!", $58
-; 0x80eda
-
-InfatuationText: ; 0x80eda
-	db $0, $5a, "'s", $4f
-	db "infatuation kept", $55
-	db "it from attacking!", $58
-; 0x80f02
-
-DisabledMoveText: ; 0x80f02
-	db $0, $5a, "'s", $4f
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, " is", $55
-	db "DISABLED!", $58
-; 0x80f19
-
-LoafingAroundText: ; 0x80f19
-	text_from_ram $c621
-	db $0, " is", $4f
-	db "loafing around.", $58
-; 0x80f31
-
-BeganToNapText: ; 0x80f31
-	text_from_ram $c621
-	db $0, " began", $4f
-	db "to nap!", $58
-; 0x80f44
-
-WontObeyText: ; 0x80f44
-	text_from_ram $c621
-	db $0, " won't", $4f
-	db "obey!", $58
-; 0x80f54
-
-TurnedAwayText: ; 0x80f54
-	text_from_ram $c621
-	db $0, " turned", $4f
-	db "away!", $58
-; 0x80f66
-
-IgnoredOrdersText: ; 0x80f66
-	text_from_ram $c621
-	db $0, " ignored", $4f
-	db "orders!", $58
-; 0x80f7b
-
-IgnoredSleepingText: ; 0x80f7b
-	text_from_ram $c621
-	db $0, " ignored", $4f
-	db "orders…sleeping!", $58
-; 0x80f99
-
-NoPPLeftText: ; 0x80f99
-	db $0, "But no PP is left", $4f
-	db "for the move!", $58
-; 0x80fba
-
-HasNoPPLeftText: ; 0x80fba
-	db $0, $5a, $4f
-	db "has no PP left for", $55
-	db "@"
-	text_from_ram $d086
-	db $0, "!", $58
-; 0x80fd7
-
-WentToSleepText: ; 0x80fd7
-	db $0, $5a, $4f
-	db "went to sleep!", $57
-; 0x80fe9
-
-RestedText: ; 0x80fe9
-	db $0, $5a, $4f
-	db "fell asleep and", $55
-	db "became healthy!", $57
-; 0x8100c
-
-RegainedHealthText: ; 0x8100c
-	db $0, $5a, $4f
-	db "regained health!", $58
-; 0x81020
-
-AttackMissedText: ; 0x81020
-	db $0, $5a, "'s", $4f
-	db "attack missed!", $58
-; 0x81033
-
-AttackMissed2Text: ; 0x81033
-	db $0, $5a, "'s", $4f
-	db "attack missed!", $58
-; 0x81046
-
-CrashedText: ; 0x81046
-	db $0, $5a, $4f
-	db "kept going and", $55
-	db "crashed!", $58
-; 0x81061
-
-UnaffectedText: ; 0x81061
-	db $0, $59, "'s", $4f
-	db "unaffected!", $58
-; 0x81071
-
-DoesntAffectText: ; 0x81071
-	db $0, "It doesn't affect", $4f
-	db $59, "!", $58
-; 0x81086
-
-CriticalHitText: ; 0x81086
-	db $0, "A critical hit!", $58
-; 0x81097
-
-OneHitKOText: ; 0x81097
-	db $0, "It's a one-hit KO!", $58
-; 0x810aa
-
-SuperEffectiveText: ; 0x810aa
-	db $0, "It's super-", $4f
-	db "effective!", $58
-; 0x810c1
-
-NotVeryEffectiveText: ; 0x810c1
-	db $0, "It's not very", $4f
-	db "effective…", $58
-; 0x810da
-
-TookDownWithItText: ; 0x810da
-	db $0, $59, $4f
-	db "took down with it,", $55
-	db $5a, "!", $58
-; 0x810f3
-
-RageBuildingText: ; 0x810f3
-	db $0, $5a, "'s", $4f
-	db "RAGE is building!", $58
-; 0x81109
-
-GotAnEncoreText: ; 0x81109
-	db $0, $59, $4f
-	db "got an ENCORE!", $58
-; 0x8111b
-
-SharedPainText: ; 0x8111b
-	db $0, "The battlers", $4f
-	db "shared pain!", $58
-; 0x81136
-
-TookAimText: ; 0x81136
-	db $0, $5a, $4f
-	db "took aim!", $58
-; 0x81143
-
-SketchedText: ; 0x81143
-	db $0, $5a, $4f
-	db "SKETCHED", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x81156
-
-DestinyBondEffectText: ; 0x81156
-	db $0, $5a, "'s", $4f
-	db "trying to take its", $55
-	db "opponent with it!", $58
-; 0x8117f
-
-SpiteEffectText: ; 0x8117f
-	db $0, $59, "'s", $4f
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, " was", $55
-	db "reduced by @"
-	deciram $d265, $11
-	db $0, "!", $58
-; 0x811a0
-
-BellChimedText: ; 0x811a0
-	db $0, "A bell chimed!", $4f
-	db $58
-; 0x811b1
-
-FellAsleepText: ; 0x811b1
-	db $0, $59, $4f
-	db "fell asleep!", $58
-; 0x811c1
-
-AlreadyAsleepText: ; 0x811c1
-	db $0, $59, "'s", $4f
-	db "already asleep!", $58
-; 0x811d5
-
-WasPoisonedText: ; 0x811d5
-	db $0, $59, $4f
-	db "was poisoned!", $58
-; 0x811e6
-
-BadlyPoisonedText: ; 0x811e6
-	db $0, $59, "'s", $4f
-	db "badly poisoned!", $58
-; 0x811fa
-
-AlreadyPoisonedText: ; 0x811fa
-	db $0, $59, "'s", $4f
-	db "already poisoned!", $58
-; 0x81210
-
-SuckedHealthText: ; 0x81210
-	db $0, "Sucked health from", $4f
-	db $59, "!", $58
-; 0x81227
-
-DreamEatenText: ; 0x81227
-	db $0, $59, "'s", $4f
-	db "dream was eaten!", $58
-; 0x8123c
-
-WasBurnedText: ; 0x8123c
-	db $0, $59, $4f
-	db "was burned!", $58
-; 0x8124b
-
-DefrostedOpponentText: ; 0x8124b
-	db $0, $59, $4f
-	db "was defrosted!", $58
-; 0x8125d
-
-WasFrozenText: ; 0x8125d
-	db $0, $59, $4f
-	db "was frozen solid!", $58
-; 0x81272
-
-WontRiseAnymoreText: ; 0x81272
-	db $0, $5a, "'s", $4f
-	db "@"
-	text_from_ram $d086
-	db $0, " won't", $55
-	db "rise anymore!", $58
-; 0x8128f
-
-WontDropAnymoreText: ; 0x8128f
-	db $0, $59, "'s", $4f
-	db "@"
-	text_from_ram $d086
-	db $0, " won't", $55
-	db "drop anymore!", $58
-; 0x812ac
-
-FledFromBattleText: ; 0x812ac
-	db $0, $5a, $4f
-	db "fled from battle!", $58
-; 0x812c1
-
-FledInFearText: ; 0x812c1
-	db $0, $59, $4f
-	db "fled in fear!", $58
-; 0x812d2
-
-BlownAwayText: ; 0x812d2
-	db $0, $59, $4f
-	db "was blown away!", $58
-; 0x812e5
-
-PlayerHitTimesText: ; 0x812e5
-	db $0, "Hit @"
-	deciram $c682, $11
-	db $0, " times!", $58
-; 0x812f8
-
-EnemyHitTimesText: ; 0x812f8
-	db $0, "Hit @"
-	deciram $c684, $11
-	db $0, " times!", $58
-; 0x8130b
-
-MistText: ; 0x8130b
-	db $0, $5a, "'s", $4f
-	db "shrouded in MIST!", $58
-; 0x81321
-
-ProtectedByMistText: ; 0x81321
-	db $0, $59, "'s", $4f
-	db "protected by MIST.", $58
-; 0x81338
-
-GettingPumpedText: ; 0x81338
-	interpret_data
-	db $0, $5a, "'s", $4f
-	db "getting pumped!", $58
-; 0x8134d
-
-RecoilText: ; 0x8134d
-	db $0, $5a, "'s", $4f
-	db "hit with recoil!", $58
-; 0x81362
-
-MadeSubstituteText: ; 0x81362
-	db $0, $5a, $4f
-	db "made a SUBSTITUTE!", $58
-; 0x81378
-
-HasSubstituteText: ; 0x81378
-	db $0, $5a, $4f
-	db "has a SUBSTITUTE!", $58
-; 0x8138d
-
-TooWeakSubText: ; 0x8138d
-	db $0, "Too weak to make", $4f
-	db "a SUBSTITUTE!", $58
-; 0x813ad
-
-SubTookDamageText: ; 0x813ad
-	db $0, "The SUBSTITUTE", $4f
-	db "took damage for", $55
-	db $59, "!", $58
-; 0x813d0
-
-SubFadedText: ; 0x813d0
-	db $0, $59, "'s", $4f
-	db "SUBSTITUTE faded!", $58
-; 0x813e6
-
-LearnedMoveText: ; 0x813e6
-	db $0, $5a, $4f
-	db "learned", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x813f8
-
-WasSeededText: ; 0x813f8
-	db $0, $59, $4f
-	db "was seeded!", $58
-; 0x81407
-
-EvadedText: ; 0x81407
-	db $0, $59, $4f
-	db "evaded the attack!", $58
-; 0x8141d
-
-WasDisabledText: ; 0x8141d
-	db $0, $59, "'s", $4f
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, " was", $55
-	db "DISABLED!", $58
-; 0x81435
-
-CoinsScatteredText: ; 0x81435
-	db $0, "Coins scattered", $4f
-	db "everywhere!", $58
-; 0x81452
-
-TransformedTypeText: ; 0x81452
-	db $0, $5a, $4f
-	db "transformed into", $55
-	db "the @"
-	text_from_ram StringBuffer1
-	db $0, "-type!", $58
-; 0x81476
-
-EliminatedStatsText: ; 0x81476
-	db $0, "All stat changes", $4f
-	db "were eliminated!", $58
-; 0x81499
-
-TransformedText: ; 0x81499
-	db $0, $5a, $4f
-	db "TRANSFORMED into", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x814b4
-
-LightScreenEffectText: ; 0x814b4
-	db $0, $5a, "'s", $4f
-	db "SPCL.DEF rose!", $58
-; 0x814c7
-
-ReflectEffectText: ; 0x814c7
-	db $0, $5a, "'s", $4f
-	db "DEFENSE rose!", $58
-; 0x814d9
-
-NothingHappenedText: ; 0x814d9
-	db $0, "But nothing", $4f
-	db "happened.", $58
-; 0x814f0
-
-ButItFailedText: ; 0x814f0
-	db $0, "But it failed!", $58
-; 0x81500
-
-ItFailedText: ; 0x81500
-	db $0, "It failed!", $58
-; 0x8150c
-
-DidntAffect1Text: ; 0x8150c
-	db $0, "It didn't affect", $4f
-	db $59, "!", $58
-; 0x81520
-
-DidntAffect2Text: ; 0x81520
-	db $0, "It didn't affect", $4f
-	db $59, "!", $58
-; 0x81534
-
-HPIsFullText: ; 0x81534
-	db $0, $5a, "'s", $4f
-	db "HP is full!", $58
-; 0x81544
-
-DraggedOutText: ; 0x81544
-	db $0, $5a, $4f
-	db "was dragged out!", $58
-; 0x81558
-
-ParalyzedText: ; 0x81558
-	db $0, $59, "'s", $4f
-	db "paralyzed! Maybe", $55
-	db "it can't attack!", $58
-; 0x8157d
-
-FullyParalyzedText: ; 0x8157d
-	db $0, $5a, "'s", $4f
-	db "fully paralyzed!", $58
-; 0x81592
-
-AlreadyParalyzedText: ; 0x81592
-	db $0, $59, "'s", $4f
-	db "already paralyzed!", $58
-; 0x815a9
-
-ProtectedByText: ; 0x815a9
-	db $0, $59, "'s", $4f
-	db "protected by", $55
-	db "@"
-	text_from_ram StringBuffer1
-	db $0, "!", $58
-; 0x815c1
-
-MirrorMoveFailedText: ; 0x815c1
-	db $0, "The MIRROR MOVE", $4e, "failed!", $58
-; 0x815da
-
-StoleText: ; 0x815da
-	db $0, $5a, $4f
-	db "stole @"
-	text_from_ram StringBuffer1
-	db $0, $55
-	db "from its foe!", $58
-; 0x815f7
-
-CantEscapeNowText: ; 0x815f7
-	db $0, $59, $4f
-	db "can't escape now!", $58
-; 0x8160b
-
-StartedNightmareText: ; 0x8160b
-	db $0, $59, $4f
-	db "started to have a", $55
-	db "NIGHTMARE!", $58
-; 0x8162b
-
-WasDefrostedText: ; 0x8162b
-	db $0, $5a, $4f
-	db "was defrosted!", $58
-; 0x8163d
-
-PutACurseText: ; 0x8163d
-	db $0, $5a, $4f
-	db "cut its own HP and", $51
-	db "put a CURSE on", $4f
-	db $59, "!", $58
-; 0x81665
-
-ProtectedItselfText: ; 0x81665
-	db $0, $5a, $4f
-	db "PROTECTED itself!", $58
-; 0x8167a
-
-ProtectingItselfText: ; 0x8167a
-	db $0, $59, "'s", $4f
-	db "PROTECTING itself!", $57
-; 0x81691
-
-SpikesText: ; 0x81691
-	db $0, "SPIKES scattered", $4f
-	db "all around", $55
-	db $59, "!", $58
-; 0x816b1
-
-IdentifiedText: ; 0x816b1
-	db $0, $5a, $4f
-	db "identified", $55
-	db $59, "!", $58
-; 0x816c2
-
-StartPerishText: ; 0x816c2
-	db $0, "Both #MON will", $4f
-	db "faint in 3 turns!", $58
-; 0x816e4
-
-SandstormBrewedText: ; 0x816e4
-	db $0, "A SANDSTORM", $4f
-	db "brewed!", $58
-; 0x816f9
-
-BracedItselfText: ; 0x816f9
-	db $0, $5a, $4f
-	db "braced itself!", $58
-; 0x8170b
-
-FellInLoveText: ; 0x8170b
-	db $0, $59, $4f
-	db "fell in love!", $58
-; 0x8171c
-
-CoveredByVeilText: ; 0x8171c
-	db $0, $5a, "'s", $4f
-	db "covered by a veil!", $58
-; 0x81733
-
-SafeguardProtectText: ; 0x81733
-	db $0, $59, $4f
-	db "is protected by", $55
-	db "SAFEGUARD!", $58
-; 0x81751
-
-MagnitudeText: ; 0x81751
-	db $0, "Magnitude @"
-	deciram $d265, $11
-	db $0, "!", $58
-; 0x81764
-
-ReleasedByText: ; 0x81764
-	db $0, $5a, $4f
-	db "was released by", $55
-	db $59, "!", $58
-; 0x8177a
-
-ShedLeechSeedText: ; 0x8177a
-	db $0, $5a, $4f
-	db "shed LEECH SEED!", $58
-; 0x8178e
-
-BlewSpikesText: ; 0x8178e
-	db $0, $5a, $4f
-	db "blew away SPIKES!", $58
-; 0x817a3
-
-DownpourText: ; 0x817a3
-	db $0, "A downpour", $4f
-	db "started!", $58
-; 0x817b8
-
-SunGotBrightText: ; 0x817b8
-	db $0, "The sunlight got", $4f
-	db "bright!", $58
-; 0x817d2
-
-BellyDrumText: ; 0x817d2
-	db $0, $5a, $4f
-	db "cut its HP and", $55
-	db "maximized ATTACK!", $58
-; 0x817f6
-
-CopiedStatsText: ; 0x817f6
-	db $0, $5a, $4f
-	db "copied the stat", $51
-	db "changes of", $4f
-	db $59, "!", $58
-; 0x81817
-
-ForesawAttackText: ; 0x81817
-	db $0, $5a, $4f
-	db "foresaw an attack!", $58
-; 0x8182d
-
-BeatUpAttackText: ; 0x8182d
-	text_from_ram StringBuffer1
-	db $0, "'s", $4f
-	db "attack!", $57
-; 0x8183b
-
-RefusedGiftText: ; 0x8183b
-	db $0, $59, $4f
-	db "refused the gift!", $58
-; 0x81850
-
-IgnoredOrders2Text: ; 0x81850
-	db $0, $5a, $4f
-	db "ignored orders!", $58
-; 0x81863
-
-BattleText_0x81863: ; 0x81863
-	db $0, "Link error…", $51
-	db "The battle has", $4f
-	db "been canceled…", $58
-; 0x8188e
-
-BattleText_0x8188e: ; 0x8188e
-	db $0, "There is no time", $4f
-	db "left today!", $57
-; 0x818ac
-
 INCBIN "baserom.gbc", $818ac, $81fe3-$818ac
 
 DebugColorTestGFX:
@@ -17796,7 +17034,7 @@
 	ld [hl], a
 	ret
 .asm_117b8c
-	call $2009
+	call PlayClickSFX
 	ld a, [$cf64]
 	and a
 	jr nz, .asm_117ba4 ; 0x117b93 $f
--- /dev/null
+++ b/text/battle.asm
@@ -1,0 +1,1104 @@
+BattleText_0x80730: ; 0x80730
+	db $0, $52, " picked up", $4f
+	db "¥@"
+	deciram $c6ec, $36
+	db $0, "!", $58
+; 0x80746
+
+WildPokemonAppearedText: ; 0x80746
+	db $0, "Wild @"
+	text_from_ram $c616
+	db $0, $4f
+	db "appeared!", $58
+; 0x8075c
+
+HookedPokemonAttackedText: ; 0x8075c
+	db $0, "The hooked", $4f
+	db "@"
+	text_from_ram $c616
+	db $0, $55
+	db "attacked!", $58
+; 0x80778
+
+PokemonFellFromTreeText: ; 0x80778
+	text_from_ram $c616
+	db $0, " fell", $4f
+	db "out of the tree!", $58
+; 0x80793
+
+WildPokemonAppearedText2: ; 0x80793
+	db $0, "Wild @"
+	text_from_ram $c616
+	db $0, $4f
+	db "appeared!", $58
+; 0x807a9
+
+WantsToBattleText: ; 0x807a9
+	db $0, $3f, $4f
+	db "wants to battle!", $58
+; 0x807bd
+
+BattleText_0x807bd: ; 0x807bd
+	db $0, "Wild @"
+	text_from_ram $c616
+	db $0, $4f
+	db "fled!", $58
+; 0x807cf
+
+BattleText_0x807cf: ; 0x807cf
+	db $0, "Enemy @"
+	text_from_ram $c616
+	db $0, $4f
+	db "fled!", $58
+; 0x807e2
+
+BattleText_0x807e2: ; 0x807e2
+	db $0, $5a, $4f
+	db "is hurt by poison!", $58
+; 0x807f8
+
+BattleText_0x807f8: ; 0x807f8
+	db $0, $5a, "'s", $4f
+	db "hurt by its burn!", $58
+; 0x8080e
+
+BattleText_0x8080e: ; 0x8080e
+	db $0, "LEECH SEED saps", $4f
+	db $5a, "!", $58
+; 0x80822
+
+BattleText_0x80822: ; 0x80822
+	db $0, $5a, $4f
+	db "has a NIGHTMARE!", $58
+; 0x80836
+
+BattleText_0x80836: ; 0x80836
+	db $0, $5a, "'s", $4f
+	db "hurt by the CURSE!", $58
+; 0x8084d
+
+BattleText_0x8084d: ; 0x8084d
+	db $0, "The SANDSTORM hits", $4f
+	db $5a, "!", $58
+; 0x80864
+
+BattleText_0x80864: ; 0x80864
+	db $0, $5a, "'s", $4f
+	db "PERISH count is @"
+	deciram $d265, $11
+	db $0, "!", $58
+; 0x80880
+
+BattleText_0x80880: ; 0x80880
+	db $0, $59, $4f
+	db "recovered with", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, ".", $58
+; 0x80899
+
+BattleText_0x80899: ; 0x80899
+	db $0, $5a, $4f
+	db "recovered PP using", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, ".", $58
+; 0x808b6
+
+BattleText_0x808b6: ; 0x808b6
+	db $0, $59, $4f
+	db "was hit by FUTURE", $55
+	db "SIGHT!", $58
+; 0x808d2
+
+BattleText_0x808d2: ; 0x808d2
+	db $0, $5a, "'s", $4f
+	db "SAFEGUARD faded!", $58
+; 0x808e7
+
+BattleText_0x808e7: ; 0x808e7
+	text_from_ram StringBuffer1
+	db $0, " #MON's", $4f
+	db "LIGHT SCREEN fell!", $58
+; 0x80905
+
+BattleText_0x80905: ; 0x80905
+	text_from_ram StringBuffer1
+	db $0, " #MON's", $4f
+	db "REFLECT faded!", $58
+; 0x8091f
+
+BattleText_0x8091f: ; 0x8091f
+	db $0, "Rain continues to", $4f
+	db "fall.", $58
+; 0x80938
+
+BattleText_0x80938: ; 0x80938
+	db $0, "The sunlight is", $4f
+	db "strong.", $58
+; 0x80951
+
+BattleText_0x80951: ; 0x80951
+	db $0, "The SANDSTORM", $4f
+	db "rages.", $58
+; 0x80967
+
+BattleText_0x80967: ; 0x80967
+	db $0, "The rain stopped.", $58
+; 0x8097a
+
+BattleText_0x8097a: ; 0x8097a
+	db $0, "The sunlight", $4f
+	db "faded.", $58
+; 0x8098f
+
+BattleText_0x8098f: ; 0x8098f
+	db $0, "The SANDSTORM", $4f
+	db "subsided.", $58
+; 0x809a8
+
+BattleText_0x809a8: ; 0x809a8
+	db $0, "Enemy @"
+	text_from_ram $c616
+	db $0, $4f
+	db "fainted!", $58
+; 0x809be
+
+BattleText_0x809be: ; 0x809be
+	db $0, $52, " got ¥@"
+	deciram $c686, $36
+	db $0, $4f
+	db "for winning!", $58
+; 0x809da
+
+BattleText_0x809da: ; 0x809da
+	db $0, $3f, $4f
+	db "was defeated!", $58
+; 0x809eb
+
+BattleText_0x809eb: ; 0x809eb
+	db $0, "Tied against", $4f
+	db $3f, "!", $58
+; 0x809fc
+
+BattleText_0x809fc: ; 0x809fc
+	db $0, $52, " got ¥@"
+	deciram $c686, $36
+	db $0, $4f
+	db "for winning!", $55
+	db "Sent some to MOM!", $58
+; 0x80a2a
+
+BattleText_0x80a2a: ; 0x80a2a
+	db $0, "Sent half to MOM!", $58
+; 0x80a3d
+
+BattleText_0x80a3d: ; 0x80a3d
+	db $0, "Sent all to MOM!", $58
+; 0x80a4f
+
+BattleText_0x80a4f: ; 0x80a4f
+	db $0, $53, ": Huh? I", $4f
+	db "should've chosen", $55
+	db "your #MON!", $58
+; 0x80a75
+
+BattleText_0x80a75: ; 0x80a75
+	text_from_ram $c621
+	db $0, $4f
+	db "fainted!", $58
+; 0x80a83
+
+BattleText_0x80a83: ; 0x80a83
+	db $0, "Use next #MON?", $57
+; 0x80a93
+
+BattleText_0x80a93: ; 0x80a93
+	db $0, $53, ": Yes!", $4f
+	db "I guess I chose a", $55
+	db "good #MON!", $58
+; 0x80ab9
+
+BattleText_0x80ab9: ; 0x80ab9
+	db $0, "Lost against", $4f
+	db $3f, "!", $58
+; 0x80aca
+
+BattleText_0x80aca: ; 0x80aca
+	db $0, $3f, $4f
+	db "is about to use", $55
+	db "@"
+	text_from_ram $c616
+	db $0, ".", $51
+	db "Will ", $52, $4f
+	db "change #MON?", $57
+; 0x80af8
+
+BattleText_0x80af8: ; 0x80af8
+	db $0, $3f, $4f
+	db "sent out", $55
+	db "@"
+	text_from_ram $c616
+	db $0, "!", $57
+; 0x80b0b
+
+BattleText_0x80b0b: ; 0x80b0b
+	db $0, "There's no will to", $4f
+	db "battle!", $58
+; 0x80b26
+
+BattleText_0x80b26: ; 0x80b26
+	db $0, "An EGG can't", $4f
+	db "battle!", $58
+; 0x80b3b
+
+BattleText_0x80b3b: ; 0x80b3b
+	db $0, "Can't escape!", $58
+; 0x80b49
+
+BattleText_0x80b49: ; 0x80b49
+	db $0, "No! There's no", $4f
+	db "running from a", $55
+	db "trainer battle!", $58
+; 0x80b77
+
+BattleText_0x80b77: ; 0x80b77
+	db $0, "Got away safely!", $58
+; 0x80b89
+
+BattleText_0x80b89: ; 0x80b89
+	db $0, $5a, $4f
+	db "fled using a", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x80ba0
+
+BattleText_0x80ba0: ; 0x80ba0
+	db $0, "Can't escape!", $58
+; 0x80bae
+
+BattleText_0x80bae: ; 0x80bae
+	db $0, $5a, "'s", $4f
+	db "hurt by SPIKES!", $58
+; 0x80bc2
+
+RecoveredUsingText: ; 0x80bc2
+	db $0, $59, $4f
+	db "recovered using a", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x80bde
+
+BattleText_0x80bde: ; 0x80bde
+	db $0, $5a, "'s", $4f
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, $55
+	db "activated!", $58
+; 0x80bf3
+
+BattleText_0x80bf3: ; 0x80bf3
+	db $0, "Items can't be", $4f
+	db "used here.", $58
+; 0x80c0d
+
+BattleText_0x80c0d: ; 0x80c0d
+	text_from_ram $c621
+	db $0, $4f
+	db "is already out.", $58
+; 0x80c22
+
+BattleText_0x80c22: ; 0x80c22
+	text_from_ram $c621
+	db $0, $4f
+	db "can't be recalled!", $58
+; 0x80c39
+
+BattleText_0x80c39: ; 0x80c39
+	db $0, "There's no PP left", $4f
+	db "for this move!", $58
+; 0x80c5b
+
+BattleText_0x80c5b: ; 0x80c5b
+	db $0, "The move is", $4f
+	db "DISABLED!", $58
+; 0x80c72
+
+BattleText_0x80c72: ; 0x80c72
+	text_from_ram $c621
+	db $0, $4f
+	db "has no moves left!", $57
+; 0x80c8a
+
+BattleText_0x80c8a: ; 0x80c8a
+	db $0, $59, "'s", $4f
+	db "ENCORE ended!", $58
+; 0x80c9c
+
+BattleText_0x80c9c: ; 0x80c9c
+	text_from_ram StringBuffer1
+	db $0, " grew to", $4f
+	db "level @"
+	deciram $d143, $13
+	db $0, "!@"
+	sound0
+	db $50
+; 0x80cb9
+
+BattleText_0x80cb9: ; 0x80cb9
+	db $50
+; 0x80cba
+
+BattleText_0x80cba: ; 0x80cba
+	db $0, "Wild @"
+	text_from_ram $c616
+	db $0, $4f
+	db "is eating!", $58
+; 0x80cd1
+
+BattleText_0x80cd1: ; 0x80cd1
+	db $0, "Wild @"
+	text_from_ram $c616
+	db $0, $4f
+	db "is angry!", $58
+; 0x80ce7
+
+FastAsleepText: ; 0x80ce7
+	db $0, $5a, $4f
+	db "is fast asleep!", $58
+; 0x80cfa
+
+WokeUpText: ; 0x80cfa
+	db $0, $5a, $4f
+	db "woke up!", $58
+; 0x80d06
+
+FrozenSolidText: ; 0x80d06
+	db $0, $5a, $4f
+	db "is frozen solid!", $58
+; 0x80d1a
+
+FlinchedText: ; 0x80d1a
+	db $0, $5a, $4f
+	db "flinched!", $58
+; 0x80d27
+
+MustRechargeText: ; 0x80d27
+	db $0, $5a, $4f
+	db "must recharge!", $58
+; 0x80d39
+
+DisabledNoMoreText: ; 0x80d39
+	db $0, $5a, "'s", $4f
+	db "disabled no more!", $58
+; 0x80d4f
+
+IsConfusedText: ; 0x80d4f
+	db $0, $5a, $4f
+	db "is confused!", $58
+; 0x80d5f
+
+HurtItselfText: ; 0x80d5f
+	db $0, "It hurt itself in", $4f
+	db "its confusion!", $58
+; 0x80d81
+
+ConfusedNoMoreText: ; 0x80d81
+	db $0, $5a, "'s", $4f
+	db "confused no more!", $58
+; 0x80d97
+
+BecameConfusedText: ; 0x80d97
+	db $0, $59, $4f
+	db "became confused!", $58
+; 0x80dab
+
+BattleText_0x80dab: ; 0x80dab
+	db $0, "A @"
+	text_from_ram StringBuffer1
+	db $0, " rid", $4f
+	db $59, $55
+	db "of its confusion.", $58
+; 0x80dcc
+
+AlreadyConfusedText: ; 0x80dcc
+	db $0, $59, "'s", $4f
+	db "already confused!", $58
+; 0x80de2
+
+BattleText_0x80de2: ; 0x80de2
+	db $0, $5a, "'s", $4f
+	db "hurt by", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x80df5
+
+BattleText_0x80df5: ; 0x80df5
+	db $0, $5a, $4f
+	db "was released from", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x80e11
+
+UsedBindText: ; 0x80e11
+	db $0, $5a, $4f
+	db "used BIND on", $55
+	db $59, "!", $58
+; 0x80e24
+
+WhirlpoolTrapText: ; 0x80e24
+	db $0, $59, $4f
+	db "was trapped!", $58
+; 0x80e34
+
+FireSpinTrapText: ; 0x80e34
+	db $0, $59, $4f
+	db "was trapped!", $58
+; 0x80e44
+
+WrappedByText: ; 0x80e44
+	db $0, $59, $4f
+	db "was WRAPPED by", $55
+	db $5a, "!", $58
+; 0x80e59
+
+ClampedByText: ; 0x80e59
+	db $0, $59, $4f
+	db "was CLAMPED by", $55
+	db $5a, "!", $58
+; 0x80e6e
+
+StoringEnergyText: ; 0x80e6e
+	db $0, $5a, $4f
+	db "is storing energy!", $58
+; 0x80e84
+
+UnleashedEnergyText: ; 0x80e84
+	db $0, $5a, $4f
+	db "unleashed energy!", $58
+; 0x80e99
+
+HungOnText: ; 0x80e99
+	db $0, $59, $4f
+	db "hung on with", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x80eb0
+
+EnduredText: ; 0x80eb0
+	db $0, $59, $4f
+	db "ENDURED the hit!", $58
+; 0x80ec4
+
+InLoveWithText: ; 0x80ec4
+	db $0, $5a, $4f
+	db "is in love with", $55
+	db $59, "!", $58
+; 0x80eda
+
+InfatuationText: ; 0x80eda
+	db $0, $5a, "'s", $4f
+	db "infatuation kept", $55
+	db "it from attacking!", $58
+; 0x80f02
+
+DisabledMoveText: ; 0x80f02
+	db $0, $5a, "'s", $4f
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, " is", $55
+	db "DISABLED!", $58
+; 0x80f19
+
+LoafingAroundText: ; 0x80f19
+	text_from_ram $c621
+	db $0, " is", $4f
+	db "loafing around.", $58
+; 0x80f31
+
+BeganToNapText: ; 0x80f31
+	text_from_ram $c621
+	db $0, " began", $4f
+	db "to nap!", $58
+; 0x80f44
+
+WontObeyText: ; 0x80f44
+	text_from_ram $c621
+	db $0, " won't", $4f
+	db "obey!", $58
+; 0x80f54
+
+TurnedAwayText: ; 0x80f54
+	text_from_ram $c621
+	db $0, " turned", $4f
+	db "away!", $58
+; 0x80f66
+
+IgnoredOrdersText: ; 0x80f66
+	text_from_ram $c621
+	db $0, " ignored", $4f
+	db "orders!", $58
+; 0x80f7b
+
+IgnoredSleepingText: ; 0x80f7b
+	text_from_ram $c621
+	db $0, " ignored", $4f
+	db "orders…sleeping!", $58
+; 0x80f99
+
+NoPPLeftText: ; 0x80f99
+	db $0, "But no PP is left", $4f
+	db "for the move!", $58
+; 0x80fba
+
+HasNoPPLeftText: ; 0x80fba
+	db $0, $5a, $4f
+	db "has no PP left for", $55
+	db "@"
+	text_from_ram $d086
+	db $0, "!", $58
+; 0x80fd7
+
+WentToSleepText: ; 0x80fd7
+	db $0, $5a, $4f
+	db "went to sleep!", $57
+; 0x80fe9
+
+RestedText: ; 0x80fe9
+	db $0, $5a, $4f
+	db "fell asleep and", $55
+	db "became healthy!", $57
+; 0x8100c
+
+RegainedHealthText: ; 0x8100c
+	db $0, $5a, $4f
+	db "regained health!", $58
+; 0x81020
+
+AttackMissedText: ; 0x81020
+	db $0, $5a, "'s", $4f
+	db "attack missed!", $58
+; 0x81033
+
+AttackMissed2Text: ; 0x81033
+	db $0, $5a, "'s", $4f
+	db "attack missed!", $58
+; 0x81046
+
+CrashedText: ; 0x81046
+	db $0, $5a, $4f
+	db "kept going and", $55
+	db "crashed!", $58
+; 0x81061
+
+UnaffectedText: ; 0x81061
+	db $0, $59, "'s", $4f
+	db "unaffected!", $58
+; 0x81071
+
+DoesntAffectText: ; 0x81071
+	db $0, "It doesn't affect", $4f
+	db $59, "!", $58
+; 0x81086
+
+CriticalHitText: ; 0x81086
+	db $0, "A critical hit!", $58
+; 0x81097
+
+OneHitKOText: ; 0x81097
+	db $0, "It's a one-hit KO!", $58
+; 0x810aa
+
+SuperEffectiveText: ; 0x810aa
+	db $0, "It's super-", $4f
+	db "effective!", $58
+; 0x810c1
+
+NotVeryEffectiveText: ; 0x810c1
+	db $0, "It's not very", $4f
+	db "effective…", $58
+; 0x810da
+
+TookDownWithItText: ; 0x810da
+	db $0, $59, $4f
+	db "took down with it,", $55
+	db $5a, "!", $58
+; 0x810f3
+
+RageBuildingText: ; 0x810f3
+	db $0, $5a, "'s", $4f
+	db "RAGE is building!", $58
+; 0x81109
+
+GotAnEncoreText: ; 0x81109
+	db $0, $59, $4f
+	db "got an ENCORE!", $58
+; 0x8111b
+
+SharedPainText: ; 0x8111b
+	db $0, "The battlers", $4f
+	db "shared pain!", $58
+; 0x81136
+
+TookAimText: ; 0x81136
+	db $0, $5a, $4f
+	db "took aim!", $58
+; 0x81143
+
+SketchedText: ; 0x81143
+	db $0, $5a, $4f
+	db "SKETCHED", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x81156
+
+DestinyBondEffectText: ; 0x81156
+	db $0, $5a, "'s", $4f
+	db "trying to take its", $55
+	db "opponent with it!", $58
+; 0x8117f
+
+SpiteEffectText: ; 0x8117f
+	db $0, $59, "'s", $4f
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, " was", $55
+	db "reduced by @"
+	deciram $d265, $11
+	db $0, "!", $58
+; 0x811a0
+
+BellChimedText: ; 0x811a0
+	db $0, "A bell chimed!", $4f
+	db $58
+; 0x811b1
+
+FellAsleepText: ; 0x811b1
+	db $0, $59, $4f
+	db "fell asleep!", $58
+; 0x811c1
+
+AlreadyAsleepText: ; 0x811c1
+	db $0, $59, "'s", $4f
+	db "already asleep!", $58
+; 0x811d5
+
+WasPoisonedText: ; 0x811d5
+	db $0, $59, $4f
+	db "was poisoned!", $58
+; 0x811e6
+
+BadlyPoisonedText: ; 0x811e6
+	db $0, $59, "'s", $4f
+	db "badly poisoned!", $58
+; 0x811fa
+
+AlreadyPoisonedText: ; 0x811fa
+	db $0, $59, "'s", $4f
+	db "already poisoned!", $58
+; 0x81210
+
+SuckedHealthText: ; 0x81210
+	db $0, "Sucked health from", $4f
+	db $59, "!", $58
+; 0x81227
+
+DreamEatenText: ; 0x81227
+	db $0, $59, "'s", $4f
+	db "dream was eaten!", $58
+; 0x8123c
+
+WasBurnedText: ; 0x8123c
+	db $0, $59, $4f
+	db "was burned!", $58
+; 0x8124b
+
+DefrostedOpponentText: ; 0x8124b
+	db $0, $59, $4f
+	db "was defrosted!", $58
+; 0x8125d
+
+WasFrozenText: ; 0x8125d
+	db $0, $59, $4f
+	db "was frozen solid!", $58
+; 0x81272
+
+WontRiseAnymoreText: ; 0x81272
+	db $0, $5a, "'s", $4f
+	db "@"
+	text_from_ram $d086
+	db $0, " won't", $55
+	db "rise anymore!", $58
+; 0x8128f
+
+WontDropAnymoreText: ; 0x8128f
+	db $0, $59, "'s", $4f
+	db "@"
+	text_from_ram $d086
+	db $0, " won't", $55
+	db "drop anymore!", $58
+; 0x812ac
+
+FledFromBattleText: ; 0x812ac
+	db $0, $5a, $4f
+	db "fled from battle!", $58
+; 0x812c1
+
+FledInFearText: ; 0x812c1
+	db $0, $59, $4f
+	db "fled in fear!", $58
+; 0x812d2
+
+BlownAwayText: ; 0x812d2
+	db $0, $59, $4f
+	db "was blown away!", $58
+; 0x812e5
+
+PlayerHitTimesText: ; 0x812e5
+	db $0, "Hit @"
+	deciram $c682, $11
+	db $0, " times!", $58
+; 0x812f8
+
+EnemyHitTimesText: ; 0x812f8
+	db $0, "Hit @"
+	deciram $c684, $11
+	db $0, " times!", $58
+; 0x8130b
+
+MistText: ; 0x8130b
+	db $0, $5a, "'s", $4f
+	db "shrouded in MIST!", $58
+; 0x81321
+
+ProtectedByMistText: ; 0x81321
+	db $0, $59, "'s", $4f
+	db "protected by MIST.", $58
+; 0x81338
+
+GettingPumpedText: ; 0x81338
+	interpret_data
+	db $0, $5a, "'s", $4f
+	db "getting pumped!", $58
+; 0x8134d
+
+RecoilText: ; 0x8134d
+	db $0, $5a, "'s", $4f
+	db "hit with recoil!", $58
+; 0x81362
+
+MadeSubstituteText: ; 0x81362
+	db $0, $5a, $4f
+	db "made a SUBSTITUTE!", $58
+; 0x81378
+
+HasSubstituteText: ; 0x81378
+	db $0, $5a, $4f
+	db "has a SUBSTITUTE!", $58
+; 0x8138d
+
+TooWeakSubText: ; 0x8138d
+	db $0, "Too weak to make", $4f
+	db "a SUBSTITUTE!", $58
+; 0x813ad
+
+SubTookDamageText: ; 0x813ad
+	db $0, "The SUBSTITUTE", $4f
+	db "took damage for", $55
+	db $59, "!", $58
+; 0x813d0
+
+SubFadedText: ; 0x813d0
+	db $0, $59, "'s", $4f
+	db "SUBSTITUTE faded!", $58
+; 0x813e6
+
+LearnedMoveText: ; 0x813e6
+	db $0, $5a, $4f
+	db "learned", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x813f8
+
+WasSeededText: ; 0x813f8
+	db $0, $59, $4f
+	db "was seeded!", $58
+; 0x81407
+
+EvadedText: ; 0x81407
+	db $0, $59, $4f
+	db "evaded the attack!", $58
+; 0x8141d
+
+WasDisabledText: ; 0x8141d
+	db $0, $59, "'s", $4f
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, " was", $55
+	db "DISABLED!", $58
+; 0x81435
+
+CoinsScatteredText: ; 0x81435
+	db $0, "Coins scattered", $4f
+	db "everywhere!", $58
+; 0x81452
+
+TransformedTypeText: ; 0x81452
+	db $0, $5a, $4f
+	db "transformed into", $55
+	db "the @"
+	text_from_ram StringBuffer1
+	db $0, "-type!", $58
+; 0x81476
+
+EliminatedStatsText: ; 0x81476
+	db $0, "All stat changes", $4f
+	db "were eliminated!", $58
+; 0x81499
+
+TransformedText: ; 0x81499
+	db $0, $5a, $4f
+	db "TRANSFORMED into", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x814b4
+
+LightScreenEffectText: ; 0x814b4
+	db $0, $5a, "'s", $4f
+	db "SPCL.DEF rose!", $58
+; 0x814c7
+
+ReflectEffectText: ; 0x814c7
+	db $0, $5a, "'s", $4f
+	db "DEFENSE rose!", $58
+; 0x814d9
+
+NothingHappenedText: ; 0x814d9
+	db $0, "But nothing", $4f
+	db "happened.", $58
+; 0x814f0
+
+ButItFailedText: ; 0x814f0
+	db $0, "But it failed!", $58
+; 0x81500
+
+ItFailedText: ; 0x81500
+	db $0, "It failed!", $58
+; 0x8150c
+
+DidntAffect1Text: ; 0x8150c
+	db $0, "It didn't affect", $4f
+	db $59, "!", $58
+; 0x81520
+
+DidntAffect2Text: ; 0x81520
+	db $0, "It didn't affect", $4f
+	db $59, "!", $58
+; 0x81534
+
+HPIsFullText: ; 0x81534
+	db $0, $5a, "'s", $4f
+	db "HP is full!", $58
+; 0x81544
+
+DraggedOutText: ; 0x81544
+	db $0, $5a, $4f
+	db "was dragged out!", $58
+; 0x81558
+
+ParalyzedText: ; 0x81558
+	db $0, $59, "'s", $4f
+	db "paralyzed! Maybe", $55
+	db "it can't attack!", $58
+; 0x8157d
+
+FullyParalyzedText: ; 0x8157d
+	db $0, $5a, "'s", $4f
+	db "fully paralyzed!", $58
+; 0x81592
+
+AlreadyParalyzedText: ; 0x81592
+	db $0, $59, "'s", $4f
+	db "already paralyzed!", $58
+; 0x815a9
+
+ProtectedByText: ; 0x815a9
+	db $0, $59, "'s", $4f
+	db "protected by", $55
+	db "@"
+	text_from_ram StringBuffer1
+	db $0, "!", $58
+; 0x815c1
+
+MirrorMoveFailedText: ; 0x815c1
+	db $0, "The MIRROR MOVE", $4e, "failed!", $58
+; 0x815da
+
+StoleText: ; 0x815da
+	db $0, $5a, $4f
+	db "stole @"
+	text_from_ram StringBuffer1
+	db $0, $55
+	db "from its foe!", $58
+; 0x815f7
+
+CantEscapeNowText: ; 0x815f7
+	db $0, $59, $4f
+	db "can't escape now!", $58
+; 0x8160b
+
+StartedNightmareText: ; 0x8160b
+	db $0, $59, $4f
+	db "started to have a", $55
+	db "NIGHTMARE!", $58
+; 0x8162b
+
+WasDefrostedText: ; 0x8162b
+	db $0, $5a, $4f
+	db "was defrosted!", $58
+; 0x8163d
+
+PutACurseText: ; 0x8163d
+	db $0, $5a, $4f
+	db "cut its own HP and", $51
+	db "put a CURSE on", $4f
+	db $59, "!", $58
+; 0x81665
+
+ProtectedItselfText: ; 0x81665
+	db $0, $5a, $4f
+	db "PROTECTED itself!", $58
+; 0x8167a
+
+ProtectingItselfText: ; 0x8167a
+	db $0, $59, "'s", $4f
+	db "PROTECTING itself!", $57
+; 0x81691
+
+SpikesText: ; 0x81691
+	db $0, "SPIKES scattered", $4f
+	db "all around", $55
+	db $59, "!", $58
+; 0x816b1
+
+IdentifiedText: ; 0x816b1
+	db $0, $5a, $4f
+	db "identified", $55
+	db $59, "!", $58
+; 0x816c2
+
+StartPerishText: ; 0x816c2
+	db $0, "Both #MON will", $4f
+	db "faint in 3 turns!", $58
+; 0x816e4
+
+SandstormBrewedText: ; 0x816e4
+	db $0, "A SANDSTORM", $4f
+	db "brewed!", $58
+; 0x816f9
+
+BracedItselfText: ; 0x816f9
+	db $0, $5a, $4f
+	db "braced itself!", $58
+; 0x8170b
+
+FellInLoveText: ; 0x8170b
+	db $0, $59, $4f
+	db "fell in love!", $58
+; 0x8171c
+
+CoveredByVeilText: ; 0x8171c
+	db $0, $5a, "'s", $4f
+	db "covered by a veil!", $58
+; 0x81733
+
+SafeguardProtectText: ; 0x81733
+	db $0, $59, $4f
+	db "is protected by", $55
+	db "SAFEGUARD!", $58
+; 0x81751
+
+MagnitudeText: ; 0x81751
+	db $0, "Magnitude @"
+	deciram $d265, $11
+	db $0, "!", $58
+; 0x81764
+
+ReleasedByText: ; 0x81764
+	db $0, $5a, $4f
+	db "was released by", $55
+	db $59, "!", $58
+; 0x8177a
+
+ShedLeechSeedText: ; 0x8177a
+	db $0, $5a, $4f
+	db "shed LEECH SEED!", $58
+; 0x8178e
+
+BlewSpikesText: ; 0x8178e
+	db $0, $5a, $4f
+	db "blew away SPIKES!", $58
+; 0x817a3
+
+DownpourText: ; 0x817a3
+	db $0, "A downpour", $4f
+	db "started!", $58
+; 0x817b8
+
+SunGotBrightText: ; 0x817b8
+	db $0, "The sunlight got", $4f
+	db "bright!", $58
+; 0x817d2
+
+BellyDrumText: ; 0x817d2
+	db $0, $5a, $4f
+	db "cut its HP and", $55
+	db "maximized ATTACK!", $58
+; 0x817f6
+
+CopiedStatsText: ; 0x817f6
+	db $0, $5a, $4f
+	db "copied the stat", $51
+	db "changes of", $4f
+	db $59, "!", $58
+; 0x81817
+
+ForesawAttackText: ; 0x81817
+	db $0, $5a, $4f
+	db "foresaw an attack!", $58
+; 0x8182d
+
+BeatUpAttackText: ; 0x8182d
+	text_from_ram StringBuffer1
+	db $0, "'s", $4f
+	db "attack!", $57
+; 0x8183b
+
+RefusedGiftText: ; 0x8183b
+	db $0, $59, $4f
+	db "refused the gift!", $58
+; 0x81850
+
+IgnoredOrders2Text: ; 0x81850
+	db $0, $5a, $4f
+	db "ignored orders!", $58
+; 0x81863
+
+BattleText_0x81863: ; 0x81863
+	db $0, "Link error…", $51
+	db "The battle has", $4f
+	db "been canceled…", $58
+; 0x8188e
+
+BattleText_0x8188e: ; 0x8188e
+	db $0, "There is no time", $4f
+	db "left today!", $57
+; 0x818ac
--- a/wram.asm
+++ b/wram.asm
@@ -815,8 +815,13 @@
 CurSpecies: ; cf60
 	ds 1
 
-	ds 33
+	ds $13
 
+MenuSelection:; cf74
+    ds 1
+    
+	ds $cf82-$cf74
+
 TileY: ; cf82
 	ds 1
 TileX: ; cf83
@@ -899,6 +904,7 @@
 	
 	ds 55
 
+MenuItemsList:
 CurFruitTree: ; d03e
 	ds 1
 CurFruit: ; d03f