summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants.asm22
-rw-r--r--extras/analyze_incbins.py11
-rw-r--r--extras/analyze_texts.py154
-rw-r--r--extras/extract_maps.py10
-rw-r--r--extras/gbz80disasm.py792
-rw-r--r--extras/insert_texts.py321
-rw-r--r--extras/pretty_map_headers.py2
-rw-r--r--extras/romviz.py55
-rw-r--r--maps/lavendertown.blk (renamed from maps/lavendartown.blk)0
-rw-r--r--pokered.asm9021
10 files changed, 9359 insertions, 1029 deletions
diff --git a/constants.asm b/constants.asm
index f5e5a67a..dafee50e 100644
--- a/constants.asm
+++ b/constants.asm
@@ -82,6 +82,8 @@ TX_FAR: MACRO
; wram locations
W_AICOUNT EQU $CCDF ; number of times remaining that AI action can occur
+W_WHICHTRADE EQU $CD3D ; which entry from TradeMons to select
+
W_OPPONENTHP EQU $CFE6 ; active opponent's hp (16 bits)
W_OPPONENTNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
W_OPPONENTSTATUS EQU $CFE9 ; active opponent's status condition
@@ -240,7 +242,7 @@ KADABRA EQU $26
GRAVELER EQU $27
CHANSEY EQU $28
MACHOKE EQU $29
-MR__MIME EQU $2A
+MR_MIME EQU $2A
HITMONLEE EQU $2B
HITMONCHAN EQU $2C
ARBOK EQU $2D
@@ -526,7 +528,7 @@ DEX_GOLDEEN EQU 118
DEX_SEAKING EQU 119
DEX_STARYU EQU 120
DEX_STARMIE EQU 121
-DEX_MR__MIME EQU 122
+DEX_MR_MIME EQU 122
DEX_SCYTHER EQU 123
DEX_JYNX EQU 124
DEX_ELECTABUZZ EQU 125
@@ -608,7 +610,7 @@ X_ACCURACY EQU $2E
LEAF_STONE EQU $2F
CARD_KEY EQU $30
NUGGET EQU $31
-PP_UP EQU $32
+;PP_UP EQU $32
POKE_DOLL EQU $33
FULL_HEAL EQU $34
REVIVE EQU $35
@@ -628,7 +630,7 @@ X_DEFEND EQU $42
X_SPEED EQU $43
X_SPECIAL EQU $44
COIN_CASE EQU $45
-OAK_S_PARCEL EQU $46
+OAKS_PARCEL EQU $46
ITEMFINDER EQU $47
SILPH_SCOPE EQU $48
POKE_FLUTE EQU $49
@@ -638,7 +640,7 @@ OLD_ROD EQU $4C
GOOD_ROD EQU $4D
SUPER_ROD EQU $4E
; XXX todo: compare this to $32
-;PP_UP EQU $4F
+PP_UP EQU $4F
ETHER EQU $50
MAX_ETHER EQU $51
ELIXER EQU $52
@@ -1043,8 +1045,8 @@ CELADON_MART_1 EQU $7A
CELADON_MART_2 EQU $7B
CELADON_MART_3 EQU $7C
CELADON_MART_4 EQU $7D
-CELADON_MART_5 EQU $7E
-CELADON_MART_6 EQU $7F
+CELADON_MART_ROOF EQU $7E
+CELADON_MART_ELEVATOR EQU $7F
CELADON_MANSION_1 EQU $80
CELADON_MANSION_2 EQU $81
CELADON_MANSION_3 EQU $82
@@ -1053,11 +1055,11 @@ CELADON_MANSION_5 EQU $84
CELADON_POKECENTER EQU $85
CELADON_GYM EQU $86
GAME_CORNER EQU $87
-CELADON_HOUSE EQU $88
+CELADON_MART_5 EQU $88
CELADONPRIZE_ROOM EQU $89
CELADON_DINER EQU $8A
-CELADON_HOUSE_2 EQU $8B
-CELADONHOTEL EQU $8C
+CELADON_HOUSE EQU $8B
+CELADON_HOTEL EQU $8C
LAVENDER_POKECENTER EQU $8D
POKEMONTOWER_1 EQU $8E
POKEMONTOWER_2 EQU $8F
diff --git a/extras/analyze_incbins.py b/extras/analyze_incbins.py
index 4bc82c63..4d0c3fce 100644
--- a/extras/analyze_incbins.py
+++ b/extras/analyze_incbins.py
@@ -34,6 +34,7 @@ def isolate_incbins():
incbin_lines = []
for line in asm:
if line == "": continue
+ if line.count(" ") == len(line): continue
#clean up whitespace at beginning of line
while line[0] == " ":
@@ -213,7 +214,7 @@ def reset_incbins():
isolate_incbins()
process_incbins()
-def apply_diff(diff):
+def apply_diff(diff, try_fixing=True):
print "... Applying diff."
#write the diff to a file
@@ -222,13 +223,19 @@ def apply_diff(diff):
fh.close()
#apply the patch
+ os.system("cp ../pokered.asm ../pokered1.asm")
os.system("patch ../pokered.asm temp.patch")
#remove the patch
os.system("rm temp.patch")
#confirm it's working
- subprocess.check_call("cd ../; make clean; LC_CTYPE=UTF-8 make", shell=True)
+ try:
+ subprocess.check_call("cd ../; make clean; LC_CTYPE=UTF-8 make", shell=True)
+ except Exception, exc:
+ if try_fixing:
+ os.system("mv ../pokered1.asm ../pokered.asm")
+ return False
if __name__ == "__main__":
#load map headers
diff --git a/extras/analyze_texts.py b/extras/analyze_texts.py
index 9d2ce8bf..4d089975 100644
--- a/extras/analyze_texts.py
+++ b/extras/analyze_texts.py
@@ -3,7 +3,10 @@
#date: 2012-01-06
#analyze texts, how many commands are unknown?
import extract_maps
-from pretty_map_headers import map_name_cleaner
+import analyze_incbins #for asm
+try:
+ from pretty_map_headers import map_name_cleaner, txt_bytes, spacing, constant_abbreviation_bytes
+except Exception, exc: pass
from operator import itemgetter
import sys
debug = False #set to True to increase logging output
@@ -203,6 +206,11 @@ def parse_text_script(text_pointer, text_id, map_id, txfar=False):
#07 = shift texts 1 row above (2nd line becomes 1st line); address for next text = 2nd line. [07]
command = {"type": command_byte, "start_address": offset, "end_address": offset}
offset += 1
+ elif command_byte == 0x8:
+ #08 = asm until whenever
+ command = {"type": command_byte, "start_address": offset, "end_address": offset}
+ offset += 1
+ end = True
elif command_byte == 0x9:
#09 = write hex-to-dec number from RAM to textbox [09][2-byte RAM address][byte bbbbcccc]
# bbbb = how many bytes to read (read number is big-endian)
@@ -303,8 +311,6 @@ def parse_text_script(text_pointer, text_id, map_id, txfar=False):
#FF = change music to a specific song that i don't know the name of
command = {"type": command_byte, "start_address": offset, "end_address": offset}
offset += 1
- elif command_byte == 0x8: #not ready to process asm
- end = True
else:
#if len(commands) > 0:
# print "Unknown text command " + hex(command_byte) + " at " + hex(offset) + ", script began with " + hex(commands[0]["type"])
@@ -362,6 +368,141 @@ def analyze_texts():
extract_maps.map_headers[map_id]["texts"] = map2["texts"]
return texts
+def find_missing_08s(all_texts):
+ """determines which $08s have yet to be inserted
+ based on their start addresses"""
+ missing_08s = 0
+ for map_id in all_texts.keys():
+ for text_id in all_texts[map_id].keys():
+ for line_id in all_texts[map_id][text_id].keys():
+ if not line_id == 0:
+ current_line = all_texts[map_id][text_id][line_id]
+ if "type" in current_line.keys():
+ if current_line["type"] == 0x8:
+ missing_08s += 1
+ print "missing $08 on map_id=" + str(map_id) + " text_id=" + str(text_id) + " line_id=" + str(line_id) + " at " + hex(current_line["start_address"])
+ return missing_08s
+
+def text_pretty_printer_at(start_address, label="SomeLabel"):
+ commands = parse_text_script(start_address, None, None)
+
+ wanted_command = None
+ for command_id in commands:
+ command = commands[command_id]
+ if command["type"] == 0:
+ wanted_command = command_id
+
+ if wanted_command == None:
+ raise "error: address did not start with a $0 text"
+
+ lines = commands[wanted_command]["lines"]
+
+ #add the ending byte to the last line- always seems $57
+ lines[len(lines.keys())-1].append(commands[1]["type"])
+
+ output = "\n"
+ output += label + ": ; " + hex(start_address) + "\n"
+ first = True
+ for line_id in lines:
+ line = lines[line_id]
+ output += spacing + "db "
+ if first:
+ output += "$0, "
+ first = False
+
+ quotes_open = False
+ first_byte = True
+ was_byte = False
+ byte_count = 0
+ for byte in line:
+ if byte in txt_bytes:
+ if not quotes_open and not first_byte: #start text
+ output += ", \""
+ quotes_open = True
+ first_byte = False
+ if not quotes_open and first_byte: #start text
+ output += "\""
+ quotes_open = True
+ output += txt_bytes[byte]
+ elif byte in constant_abbreviation_bytes:
+ if quotes_open:
+ output += "\""
+ quotes_open = False
+ if not first_byte:
+ output += ", "
+ output += constant_abbreviation_bytes[byte]
+ else:
+ if quotes_open:
+ output += "\""
+ quotes_open = False
+
+ #if you want the ending byte on the last line
+ #if not (byte == 0x57 or byte == 0x50 or byte == 0x58):
+ if not first_byte:
+ output += ", "
+
+ output += "$" + hex(byte)[2:]
+ was_byte = True
+
+ #add a comma unless it's the end of the line
+ #if byte_count+1 != len(line):
+ # output += ", "
+
+ first_byte = False
+ byte_count += 1
+ #close final quotes
+ if quotes_open:
+ output += "\""
+ quotes_open = False
+
+ output += "\n"
+
+ #output += "\n"
+ print output
+ return output
+
+def is_label_in_asm(label):
+ for line in analyze_incbins.asm:
+ if label in line:
+ if line[0:len(label)] == label:
+ return True
+ return False
+
+def find_undone_texts():
+ usable_table = {}
+ if analyze_incbins.asm == None:
+ analyze_incbins.load_asm()
+
+ for map_id in extract_maps.map_headers:
+ #skip bad maps
+ if map_id in extract_maps.bad_maps: continue
+
+ map2 = extract_maps.map_headers[map_id]
+ name = map_name_cleaner(map2["name"], None)[:-2] + "Text"
+
+ for text_id in map2["referenced_texts"]:
+ label = name + str(text_id)
+
+ if len(extract_maps.map_headers[map_id]["texts"][text_id].keys()) == 0: continue
+ if len(extract_maps.map_headers[map_id]["texts"][text_id][0].keys()) == 0: continue
+
+ try:
+ address = extract_maps.map_headers[map_id]["texts"][text_id][0]["start_address"]
+ except:
+ address = extract_maps.map_headers[map_id]["texts"][text_id][1]["start_address"]
+
+ if not is_label_in_asm(label):
+ print label + " map_id=" + str(map_id) + " text_id=" + str(text_id) + " at " + hex(address) + " byte is: " + hex(ord(extract_maps.rom[address]))
+ if not address in usable_table.keys():
+ usable_table[address] = 1
+ else:
+ usable_table[address] += 1
+
+ print "\n\n which ones are priority?"
+ sorted_results = sorted(usable_table.iteritems(), key=itemgetter(1), reverse=True)
+ for result in sorted_results:
+ print str(result[1]) + " times: " + hex(result[0])
+
if __name__ == "__main__":
extract_maps.load_rom()
extract_maps.load_map_pointers()
@@ -369,6 +510,8 @@ if __name__ == "__main__":
text_output = analyze_texts()
#print text_output
+ missing_08s = find_missing_08s(text_output)
+
print "\n\n---- stats ----\n\n"
popular_text_commands = sorted(totals.iteritems(), key=itemgetter(1), reverse=True)
@@ -379,3 +522,8 @@ if __name__ == "__main__":
print "total text commands: " + str(total_text_commands)
print "total text scripts: " + str(should_be_total)
+ print "missing 08s: " + str(missing_08s)
+ print "\n\n"
+
+ #text_pretty_printer_at(0x800b1)
+ find_undone_texts()
diff --git a/extras/extract_maps.py b/extras/extract_maps.py
index f434ce9d..a1394e97 100644
--- a/extras/extract_maps.py
+++ b/extras/extract_maps.py
@@ -27,7 +27,7 @@ maps = {
0x01: "Viridian City",
0x02: "Pewter City",
0x03: "Cerulean City",
- 0x04: "Lavendar Town", #??
+ 0x04: "Lavender Town", #??
0x05: "Vermilion City", #correct
0x06: "Celadon City",
0x07: "Fuchsia City",
@@ -149,8 +149,8 @@ maps = {
0x7B: "Celadon Mart (2)",
0x7C: "Celadon Mart (3)",
0x7D: "Celadon Mart (4)",
- 0x7E: "Celadon Mart (5)",
- 0x7F: "Celadon Mart (6)",
+ 0x7E: "Celadon Mart Roof",
+ 0x7F: "Celadon Mart Elevator",
0x80: "Celadon Mansion (1)",
0x81: "Celadon Mansion (2)",
0x82: "Celadon Mansion (3)",
@@ -159,10 +159,10 @@ maps = {
0x85: "Celadon Pokecenter",
0x86: "Celadon Gym",
0x87: "Celadon Game Corner",
- 0x88: "Celadon House",
+ 0x88: "Celadon Mart 5",
0x89: "Celadon Prize Room",
0x8A: "Celadon Diner",
- 0x8B: "Celadon House (2)",
+ 0x8B: "Celadon House",
0x8C: "Celadon Hotel",
0x8D: "Lavender Pokecenter",
0x8E: "Pokemon Tower (1)",
diff --git a/extras/gbz80disasm.py b/extras/gbz80disasm.py
new file mode 100644
index 00000000..555013c3
--- /dev/null
+++ b/extras/gbz80disasm.py
@@ -0,0 +1,792 @@
+#!/usr/bin/python
+#author: Bryan Bishop <kanzure@gmail.com>
+#date: 2012-01-09
+import extract_maps
+from copy import copy, deepcopy
+from pretty_map_headers import random_hash, map_name_cleaner
+import sys
+spacing = " "
+
+temp_opt_table = [
+ [ "ADC A", 0x8f, 0 ],
+ [ "ADC B", 0x88, 0 ],
+ [ "ADC C", 0x89, 0 ],
+ [ "ADC D", 0x8a, 0 ],
+ [ "ADC E", 0x8b, 0 ],
+ [ "ADC H", 0x8c, 0 ],
+ [ "ADC [HL]", 0x8e, 0 ],
+ [ "ADC L", 0x8d, 0 ],
+ [ "ADC x", 0xce, 1 ],
+ [ "ADD A", 0x87, 0 ],
+ [ "ADD B", 0x80, 0 ],
+ [ "ADD C", 0x81, 0 ],
+ [ "ADD D", 0x82, 0 ],
+ [ "ADD E", 0x83, 0 ],
+ [ "ADD H", 0x84, 0 ],
+ [ "ADD [HL]", 0x86, 0 ],
+ [ "ADD HL, BC", 0x9, 0 ],
+ [ "ADD HL, DE", 0x19, 0 ],
+ [ "ADD HL, HL", 0x29, 0 ],
+ [ "ADD HL, SP", 0x39, 0 ],
+ [ "ADD L", 0x85, 0 ],
+ [ "ADD SP, x", 0xe8, 1 ],
+ [ "ADD x", 0xc6, 1 ],
+ [ "AND A", 0xa7, 0 ],
+ [ "AND B", 0xa0, 0 ],
+ [ "AND C", 0xa1, 0 ],
+ [ "AND D", 0xa2, 0 ],
+ [ "AND E", 0xa3, 0 ],
+ [ "AND H", 0xa4, 0 ],
+ [ "AND [HL]", 0xa6, 0 ],
+ [ "AND L", 0xa5, 0 ],
+ [ "AND x", 0xe6, 1 ],
+ [ "BIT 0, A", 0x47cb, 3 ],
+ [ "BIT 0, B", 0x40cb, 3 ],
+ [ "BIT 0, C", 0x41cb, 3 ],
+ [ "BIT 0, D", 0x42cb, 3 ],
+ [ "BIT 0, E", 0x43cb, 3 ],
+ [ "BIT 0, H", 0x44cb, 3 ],
+ [ "BIT 0, [HL]", 0x46cb, 3 ],
+ [ "BIT 0, L", 0x45cb, 3 ],
+ [ "BIT 1, A", 0x4fcb, 3 ],
+ [ "BIT 1, B", 0x48cb, 3 ],
+ [ "BIT 1, C", 0x49cb, 3 ],
+ [ "BIT 1, D", 0x4acb, 3 ],
+ [ "BIT 1, E", 0x4bcb, 3 ],
+ [ "BIT 1, H", 0x4ccb, 3 ],
+ [ "BIT 1, [HL]", 0x4ecb, 3 ],
+ [ "BIT 1, L", 0x4dcb, 3 ],
+ [ "BIT 2, A", 0x57cb, 3 ],
+ [ "BIT 2, B", 0x50cb, 3 ],
+ [ "BIT 2, C", 0x51cb, 3 ],
+ [ "BIT 2, D", 0x52cb, 3 ],
+ [ "BIT 2, E", 0x53cb, 3 ],
+ [ "BIT 2, H", 0x54cb, 3 ],
+ [ "BIT 2, [HL]", 0x56cb, 3 ],
+ [ "BIT 2, L", 0x55cb, 3 ],
+ [ "BIT 3, A", 0x5fcb, 3 ],
+ [ "BIT 3, B", 0x58cb, 3 ],
+ [ "BIT 3, C", 0x59cb, 3 ],
+ [ "BIT 3, D", 0x5acb, 3 ],
+ [ "BIT 3, E", 0x5bcb, 3 ],
+ [ "BIT 3, H", 0x5ccb, 3 ],
+ [ "BIT 3, [HL]", 0x5ecb, 3 ],
+ [ "BIT 3, L", 0x5dcb, 3 ],
+ [ "BIT 4, A", 0x67cb, 3 ],
+ [ "BIT 4, B", 0x60cb, 3 ],
+ [ "BIT 4, C", 0x61cb, 3 ],
+ [ "BIT 4, D", 0x62cb, 3 ],
+ [ "BIT 4, E", 0x63cb, 3 ],
+ [ "BIT 4, H", 0x64cb, 3 ],
+ [ "BIT 4, [HL]", 0x66cb, 3 ],
+ [ "BIT 4, L", 0x65cb, 3 ],
+ [ "BIT 5, A", 0x6fcb, 3 ],
+ [ "BIT 5, B", 0x68cb, 3 ],
+ [ "BIT 5, C", 0x69cb, 3 ],
+ [ "BIT 5, D", 0x6acb, 3 ],
+ [ "BIT 5, E", 0x6bcb, 3 ],
+ [ "BIT 5, H", 0x6ccb, 3 ],
+ [ "BIT 5, [HL]", 0x6ecb, 3 ],
+ [ "BIT 5, L", 0x6dcb, 3 ],
+ [ "BIT 6, A", 0x77cb, 3 ],
+ [ "BIT 6, B", 0x70cb, 3 ],
+ [ "BIT 6, C", 0x71cb, 3 ],
+ [ "BIT 6, D", 0x72cb, 3 ],
+ [ "BIT 6, E", 0x73cb, 3 ],
+ [ "BIT 6, H", 0x74cb, 3 ],
+ [ "BIT 6, [HL]", 0x76cb, 3 ],
+ [ "BIT 6, L", 0x75cb, 3 ],
+ [ "BIT 7, A", 0x7fcb, 3 ],
+ [ "BIT 7, B", 0x78cb, 3 ],
+ [ "BIT 7, C", 0x79cb, 3 ],
+ [ "BIT 7, D", 0x7acb, 3 ],
+ [ "BIT 7, E", 0x7bcb, 3 ],
+ [ "BIT 7, H", 0x7ccb, 3 ],
+ [ "BIT 7, [HL]", 0x7ecb, 3 ],
+ [ "BIT 7, L", 0x7dcb, 3 ],
+ [ "CALL C, ?", 0xdc, 2 ],
+ [ "CALL NC, ?", 0xd4, 2 ],
+ [ "CALL NZ, ?", 0xc4, 2 ],
+ [ "CALL Z, ?", 0xcc, 2 ],
+ [ "CALL ?", 0xcd, 2 ],
+ [ "CCF", 0x3f, 0 ],
+ [ "CP A", 0xbf, 0 ],
+ [ "CP B", 0xb8, 0 ],
+ [ "CP C", 0xb9, 0 ],
+ [ "CP D", 0xba, 0 ],
+ [ "CP E", 0xbb, 0 ],
+ [ "CP H", 0xbc, 0 ],
+ [ "CP [HL]", 0xbe, 0 ],
+ [ "CPL", 0x2f, 0 ],
+ [ "CP L", 0xbd, 0 ],
+ [ "CP x", 0xfe, 1 ],
+ [ "DAA", 0x27, 0 ],
+ [ "DEBUG", 0xed, 0 ],
+ [ "DEC A", 0x3d, 0 ],
+ [ "DEC B", 0x5, 0 ],
+ [ "DEC BC", 0xb, 0 ],
+ [ "DEC C", 0xd, 0 ],
+ [ "DEC D", 0x15, 0 ],
+ [ "DEC DE", 0x1b, 0 ],
+ [ "DEC E", 0x1d, 0 ],
+ [ "DEC H", 0x25, 0 ],
+ [ "DEC HL", 0x2b, 0 ],
+ [ "DEC [HL]", 0x35, 0 ],
+ [ "DEC L", 0x2d, 0 ],
+ [ "DEC SP", 0x3b, 0 ],
+ [ "DI", 0xf3, 0 ],
+ [ "EI", 0xfb, 0 ],
+ [ "HALT", 0x76, 0 ],
+ [ "INC A", 0x3c, 0 ],
+ [ "INC B", 0x4, 0 ],
+ [ "INC BC", 0x3, 0 ],
+ [ "INC C", 0xc, 0 ],
+ [ "INC D", 0x14, 0 ],
+ [ "INC DE", 0x13, 0 ],
+ [ "INC E", 0x1c, 0 ],
+ [ "INC H", 0x24, 0 ],
+ [ "INC HL", 0x23, 0 ],
+ [ "INC [HL]", 0x34, 0 ],
+ [ "INC L", 0x2c, 0 ],
+ [ "INC SP", 0x33, 0 ],
+ [ "JP C, ?", 0xda, 2 ],
+ [ "JP HL", 0xe9, 0 ],
+ [ "JP NC, ?", 0xd2, 2 ],
+ [ "JP NZ, ?", 0xc2, 2 ],
+ [ "JP Z, ?", 0xca, 2 ],
+ [ "JP ?", 0xc3, 2 ],
+ [ "JR C, x", 0x38, 1 ],
+ [ "JR NC, x", 0x30, 1 ],
+ [ "JR NZ, x", 0x20, 1 ],
+ [ "JR Z, x", 0x28, 1 ],
+ [ "JR x", 0x18, 1 ],
+ [ "LD A, A", 0x7f, 0 ],
+ [ "LD A, B", 0x78, 0 ],
+ [ "LD A, C", 0x79, 0 ],
+ [ "LD A, D", 0x7a, 0 ],
+ [ "LD A, E", 0x7b, 0 ],
+ [ "LD A, H", 0x7c, 0 ],
+ [ "LD A, L", 0x7d, 0 ],
+ [ "LD A, [$FF00+C]", 0xf2, 0 ],
+ [ "LD A, [$FF00+x]", 0xf0, 1 ],
+# [ "LDH A, [x]", 0xf0, 1 ], #rgbds has trouble with this one?
+ [ "LD A, [BC]", 0xa, 0 ],
+ [ "LD A, [DE]", 0x1a, 0 ],
+# [ "LD A, [HL+]", 0x2a, 0 ],
+# [ "LD A, [HL-]", 0x3a, 0 ],
+ [ "LD A, [HL]", 0x7e, 0 ],
+ [ "LD A, [HLD]", 0x3a, 0 ],
+ [ "LD A, [HLI]", 0x2a, 0 ],
+ [ "LD A, [?]", 0xfa, 2 ],
+ [ "LD A, x", 0x3e, 1 ],
+ [ "LD B, A", 0x47, 0 ],
+ [ "LD B, B", 0x40, 0 ],
+ [ "LD B, C", 0x41, 0 ],
+ [ "LD [BC], A", 0x2, 0 ],
+ [ "LD B, D", 0x42, 0 ],
+ [ "LD B, E", 0x43, 0 ],
+ [ "LD B, H", 0x44, 0 ],
+ [ "LD B, [HL]", 0x46, 0 ],
+ [ "LD B, L", 0x45, 0 ],
+ [ "LD B, x", 0x6, 1 ],
+ [ "LD C, A", 0x4f, 0 ],
+ [ "LD C, B", 0x48, 0 ],
+ [ "LD C, C", 0x49, 0 ],
+ [ "LD C, D", 0x4a, 0 ],
+ [ "LD C, E", 0x4b, 0 ],
+ [ "LD C, H", 0x4c, 0 ],
+ [ "LD C, [HL]", 0x4e, 0 ],
+ [ "LD C, L", 0x4d, 0 ],
+ [ "LD C, x", 0xe, 1 ],
+ [ "LD D, A", 0x57, 0 ],
+# [ "LDD A, [HL]", 0x3a, 0 ],
+ [ "LD D, B", 0x50, 0 ],
+ [ "LD D, C", 0x51, 0 ],
+ [ "LD D, D", 0x52, 0 ],
+ [ "LD D, E", 0x53, 0 ],
+ [ "LD [DE], A", 0x12, 0 ],
+ [ "LD D, H", 0x54, 0 ],
+ [ "LD D, [HL]", 0x56, 0 ],
+# [ "LDD [HL], A", 0x32, 0 ],
+ [ "LD D, L", 0x55, 0 ],
+ [ "LD D, x", 0x16, 1 ],
+ [ "LD E, A", 0x5f, 0 ],
+ [ "LD E, B", 0x58, 0 ],
+ [ "LD E, C", 0x59, 0 ],
+ [ "LD E, D", 0x5a, 0 ],
+ [ "LD E, E", 0x5b, 0 ],
+ [ "LD E, H", 0x5c, 0 ],
+ [ "LD E, [HL]", 0x5e, 0 ],
+ [ "LD E, L", 0x5d, 0 ],
+ [ "LD E, x", 0x1e, 1 ],
+ [ "LD [$FF00+C], A", 0xe2, 0 ],
+ [ "LD [$FF00+x], A", 0xe0, 1 ],
+# [ "LDH [x], A", 0xe0, 1 ],
+ [ "LD H, A", 0x67, 0 ],
+ [ "LD H, B", 0x60, 0 ],
+ [ "LD H, C", 0x61, 0 ],
+ [ "LD H, D", 0x62, 0 ],
+ [ "LD H, E", 0x63, 0 ],
+ [ "LD H, H", 0x64, 0 ],
+ [ "LD H, [HL]", 0x66, 0 ],
+ [ "LD H, L", 0x65, 0 ],
+# [ "LD [HL+], A", 0x22, 0 ],
+# [ "LD [HL-], A", 0x32, 0 ],
+ [ "LD [HL], A", 0x77, 0 ],
+ [ "LD [HL], B", 0x70, 0 ],
+ [ "LD [HL], C", 0x71, 0 ],
+ [ "LD [HL], D", 0x72, 0 ],
+ [ "LD [HLD], A", 0x32, 0 ],
+ [ "LD [HL], E", 0x73, 0 ],
+ [ "LD [HL], H", 0x74, 0 ],
+ [ "LD [HLI], A", 0x22, 0 ],
+ [ "LD [HL], L", 0x75, 0 ],
+ [ "LD HL, SP+x", 0xf8, 1 ],
+ [ "LD [HL], x", 0x36, 1 ],
+ [ "LD H, x", 0x26, 1 ],
+# [ "LDI A, [HL]", 0x2a, 0 ],
+# [ "LDI [HL], A", 0x22, 0 ],
+ [ "LD L, A", 0x6f, 0 ],
+ [ "LD L, B", 0x68, 0 ],
+ [ "LD L, C", 0x69, 0 ],
+ [ "LD L, D", 0x6a, 0 ],
+ [ "LD L, E", 0x6b, 0 ],
+ [ "LD L, H", 0x6c, 0 ],
+ [ "LD L, [HL]", 0x6e, 0 ],
+ [ "LD L, L", 0x6d, 0 ],
+ [ "LD L, x", 0x2e, 1 ],
+# [ "LD PC, HL", 0xe9, 0 ], #prefer jp [hl]
+ [ "LD SP, HL", 0xf9, 0 ],
+ [ "LD BC, ?", 0x1, 2 ],
+ [ "LD DE, ?", 0x11, 2 ],
+ [ "LD HL, ?", 0x21, 2 ],
+ [ "LD SP, ?", 0x31, 2 ],
+# [ "LD [?], SP", 0x8, 2 ],
+ [ "LD [?], A", 0xea, 2 ],
+ [ "NOP", 0x0, 0 ],
+ [ "OR A", 0xb7, 0 ],
+ [ "OR B", 0xb0, 0 ],
+ [ "OR C", 0xb1, 0 ],
+ [ "OR D", 0xb2, 0 ],
+ [ "OR E", 0xb3, 0 ],
+ [ "OR H", 0xb4, 0 ],
+ [ "OR [HL]", 0xb6, 0 ],
+ [ "OR L", 0xb5, 0 ],
+ [ "OR x", 0xf6, 1 ],
+ [ "POP AF", 0xf1, 0 ],
+ [ "POP BC", 0xc1, 0 ],
+ [ "POP DE", 0xd1, 0 ],
+ [ "POP HL", 0xe1, 0 ],
+ [ "PUSH AF", 0xf5, 0 ],
+ [ "PUSH BC", 0xc5, 0 ],
+ [ "PUSH DE", 0xd5, 0 ],
+ [ "PUSH HL", 0xe5, 0 ],
+ [ "RES 0, A", 0x87cb, 3 ],
+ [ "RES 0, B", 0x80cb, 3 ],
+ [ "RES 0, C", 0x81cb, 3 ],
+ [ "RES 0, D", 0x82cb, 3 ],
+ [ "RES 0, E", 0x83cb, 3 ],
+ [ "RES 0, H", 0x84cb, 3 ],
+ [ "RES 0, [HL]", 0x86cb, 3 ],
+ [ "RES 0, L", 0x85cb, 3 ],
+ [ "RES 1, A", 0x8fcb, 3 ],
+ [ "RES 1, B", 0x88cb, 3 ],
+ [ "RES 1, C", 0x89cb, 3 ],
+ [ "RES 1, D", 0x8acb, 3 ],
+ [ "RES 1, E", 0x8bcb, 3 ],
+ [ "RES 1, H", 0x8ccb, 3 ],
+ [ "RES 1, [HL]", 0x8ecb, 3 ],
+ [ "RES 1, L", 0x8dcb, 3 ],
+ [ "RES 2, A", 0x97cb, 3 ],
+ [ "RES 2, B", 0x90cb, 3 ],
+ [ "RES 2, C", 0x91cb, 3 ],
+ [ "RES 2, D", 0x92cb, 3 ],
+ [ "RES 2, E", 0x93cb, 3 ],
+ [ "RES 2, H", 0x94cb, 3 ],
+ [ "RES 2, [HL]", 0x96cb, 3 ],
+ [ "RES 2, L", 0x95cb, 3 ],
+ [ "RES 3, A", 0x9fcb, 3 ],
+ [ "RES 3, B", 0x98cb, 3 ],
+ [ "RES 3, C", 0x99cb, 3 ],
+ [ "RES 3, D", 0x9acb, 3 ],
+ [ "RES 3, E", 0x9bcb, 3 ],
+ [ "RES 3, H", 0x9ccb, 3 ],
+ [ "RES 3, [HL]", 0x9ecb, 3 ],
+ [ "RES 3, L", 0x9dcb, 3 ],
+ [ "RES 4, A", 0xa7cb, 3 ],
+ [ "RES 4, B", 0xa0cb, 3 ],
+ [ "RES 4, C", 0xa1cb, 3 ],
+ [ "RES 4, D", 0xa2cb, 3 ],
+ [ "RES 4, E", 0xa3cb, 3 ],
+ [ "RES 4, H", 0xa4cb, 3 ],
+ [ "RES 4, [HL]", 0xa6cb, 3 ],
+ [ "RES 4, L", 0xa5cb, 3 ],
+ [ "RES 5, A", 0xafcb, 3 ],
+ [ "RES 5, B", 0xa8cb, 3 ],
+ [ "RES 5, C", 0xa9cb, 3 ],
+ [ "RES 5, D", 0xaacb, 3 ],
+ [ "RES 5, E", 0xabcb, 3 ],
+ [ "RES 5, H", 0xaccb, 3 ],
+ [ "RES 5, [HL]", 0xaecb, 3 ],
+ [ "RES 5, L", 0xadcb, 3 ],
+ [ "RES 6, A", 0xb7cb, 3 ],
+ [ "RES 6, B", 0xb0cb, 3 ],
+ [ "RES 6, C", 0xb1cb, 3 ],
+ [ "RES 6, D", 0xb2cb, 3 ],
+ [ "RES 6, E", 0xb3cb, 3 ],
+ [ "RES 6, H", 0xb4cb, 3 ],
+ [ "RES 6, [HL]", 0xb6cb, 3 ],
+ [ "RES 6, L", 0xb5cb, 3 ],
+ [ "RES 7, A", 0xbfcb, 3 ],
+ [ "RES 7, B", 0xb8cb, 3 ],
+ [ "RES 7, C", 0xb9cb, 3 ],
+ [ "RES 7, D", 0xbacb, 3 ],
+ [ "RES 7, E", 0xbbcb, 3 ],
+ [ "RES 7, H", 0xbccb, 3 ],
+ [ "RES 7, [HL]", 0xbecb, 3 ],
+ [ "RES 7, L", 0xbdcb, 3 ],
+ [ "RETI", 0xd9, 0 ],
+ [ "RET C", 0xd8, 0 ],
+ [ "RET NC", 0xd0, 0 ],
+ [ "RET NZ", 0xc0, 0 ],
+ [ "RET Z", 0xc8, 0 ],
+ [ "RET", 0xc9, 0 ],
+ [ "RLA", 0x17, 0 ],
+ [ "RL A", 0x17cb, 3 ],
+ [ "RL B", 0x10cb, 3 ],
+ [ "RL C", 0x11cb, 3 ],
+ [ "RLCA", 0x7, 0 ],
+ [ "RLC A", 0x7cb, 3 ],
+ [ "RLC B", 0xcb, 3 ],
+ [ "RLC C", 0x1cb, 3 ],
+ [ "RLC D", 0x2cb, 3 ],
+ [ "RLC E", 0x3cb, 3 ],
+ [ "RLC H", 0x4cb, 3 ],
+ [ "RLC [HL]", 0x6cb, 3 ],
+ [ "RLC L", 0x5cb, 3 ],
+ [ "RL D", 0x12cb, 3 ],
+ [ "RL E", 0x13cb, 3 ],
+ [ "RL H", 0x14cb, 3 ],
+ [ "RL [HL]", 0x16cb, 3 ],
+ [ "RL L", 0x15cb, 3 ],
+ [ "RRA", 0x1f, 0 ],
+ [ "RR A", 0x1fcb, 3 ],
+ [ "RR B", 0x18cb, 3 ],
+ [ "RR C", 0x19cb, 3 ],
+ [ "RRCA", 0xf, 0 ],
+ [ "RRC A", 0xfcb, 3 ],
+ [ "RRC B", 0x8cb, 3 ],
+ [ "RRC C", 0x9cb, 3 ],
+ [ "RRC D", 0xacb, 3 ],
+ [ "RRC E", 0xbcb, 3 ],
+ [ "RRC H", 0xccb, 3 ],
+ [ "RRC [HL]", 0xecb, 3 ],
+ [ "RRC L", 0xdcb, 3 ],
+ [ "RR D", 0x1acb, 3 ],
+ [ "RR E", 0x1bcb, 3 ],
+ [ "RR H", 0x1ccb, 3 ],
+ [ "RR [HL]", 0x1ecb, 3 ],
+ [ "RR L", 0x1dcb, 3 ],
+ [ "RST $0", 0xc7, 0 ],
+ [ "RST $10", 0xd7, 0 ],
+ [ "RST $18", 0xdf, 0 ],
+ [ "RST $20", 0xe7, 0 ],
+ [ "RST $28", 0xef, 0 ],
+ [ "RST $30", 0xf7, 0 ],
+ [ "RST $38", 0xff, 0 ],
+ [ "RST $8", 0xcf, 0 ],
+ [ "SBC A", 0x9f, 0 ],
+ [ "SBC B", 0x98, 0 ],
+ [ "SBC C", 0x99, 0 ],
+ [ "SBC D", 0x9a, 0 ],
+ [ "SBC E", 0x9b, 0 ],
+ [ "SBC H", 0x9c, 0 ],
+ [ "SBC [HL]", 0x9e, 0 ],
+ [ "SBC L", 0x9d, 0 ],
+ [ "SBC x", 0xde, 1 ],
+ [ "SCF", 0x37, 0 ],
+ [ "SET 0, A", 0xc7cb, 3 ],
+ [ "SET 0, B", 0xc0cb, 3 ],
+ [ "SET 0, C", 0xc1cb, 3 ],
+ [ "SET 0, D", 0xc2cb, 3 ],
+ [ "SET 0, E", 0xc3cb, 3 ],
+ [ "SET 0, H", 0xc4cb, 3 ],
+ [ "SET 0, [HL]", 0xc6cb, 3 ],
+ [ "SET 0, L", 0xc5cb, 3 ],
+ [ "SET 1, A", 0xcfcb, 3 ],
+ [ "SET 1, B", 0xc8cb, 3 ],
+ [ "SET 1, C", 0xc9cb, 3 ],
+ [ "SET 1, D", 0xcacb, 3 ],
+ [ "SET 1, E", 0xcbcb, 3 ],
+ [ "SET 1, H", 0xcccb, 3 ],
+ [ "SET 1, [HL]", 0xcecb, 3 ],
+ [ "SET 1, L", 0xcdcb, 3 ],
+ [ "SET 2, A", 0xd7cb, 3 ],
+ [ "SET 2, B", 0xd0cb, 3 ],
+ [ "SET 2, C", 0xd1cb, 3 ],
+ [ "SET 2, D", 0xd2cb, 3 ],
+ [ "SET 2, E", 0xd3cb, 3 ],
+ [ "SET 2, H", 0xd4cb, 3 ],
+ [ "SET 2, [HL]", 0xd6cb, 3 ],
+ [ "SET 2, L", 0xd5cb, 3 ],
+ [ "SET 3, A", 0xdfcb, 3 ],
+ [ "SET 3, B", 0xd8cb, 3 ],
+ [ "SET 3, C", 0xd9cb, 3 ],
+ [ "SET 3, D", 0xdacb, 3 ],
+ [ "SET 3, E", 0xdbcb, 3 ],
+ [ "SET 3, H", 0xdccb, 3 ],
+ [ "SET 3, [HL]", 0xdecb, 3 ],
+ [ "SET 3, L", 0xddcb, 3 ],
+ [ "SET 4, A", 0xe7cb, 3 ],
+ [ "SET 4, B", 0xe0cb, 3 ],
+ [ "SET 4, C", 0xe1cb, 3 ],
+ [ "SET 4, D", 0xe2cb, 3 ],
+ [ "SET 4, E", 0xe3cb, 3 ],
+ [ "SET 4, H", 0xe4cb, 3 ],
+ [ "SET 4, [HL]", 0xe6cb, 3 ],
+ [ "SET 4, L", 0xe5cb, 3 ],
+ [ "SET 5, A", 0xefcb, 3 ],
+ [ "SET 5, B", 0xe8cb, 3 ],
+ [ "SET 5, C", 0xe9cb, 3 ],
+ [ "SET 5, D", 0xeacb, 3 ],
+ [ "SET 5, E", 0xebcb, 3 ],
+ [ "SET 5, H", 0xeccb, 3 ],
+ [ "SET 5, [HL]", 0xeecb, 3 ],
+ [ "SET 5, L", 0xedcb, 3 ],
+ [ "SET 6, A", 0xf7cb, 3 ],
+ [ "SET 6, B", 0xf0cb, 3 ],
+ [ "SET 6, C", 0xf1cb, 3 ],
+ [ "SET 6, D", 0xf2cb, 3 ],
+ [ "SET 6, E", 0xf3cb, 3 ],
+ [ "SET 6, H", 0xf4cb, 3 ],
+ [ "SET 6, [HL]", 0xf6cb, 3 ],
+ [ "SET 6, L", 0xf5cb, 3 ],
+ [ "SET 7, A", 0xffcb, 3 ],
+ [ "SET 7, B", 0xf8cb, 3 ],
+ [ "SET 7, C", 0xf9cb, 3 ],
+ [ "SET 7, D", 0xfacb, 3 ],
+ [ "SET 7, E", 0xfbcb, 3 ],
+ [ "SET 7, H", 0xfccb, 3 ],
+ [ "SET 7, [HL]", 0xfecb, 3 ],
+ [ "SET 7, L", 0xfdcb, 3 ],
+ [ "SLA A", 0x27cb, 3 ],
+ [ "SLA B", 0x20cb, 3 ],
+ [ "SLA C", 0x21cb, 3 ],
+ [ "SLA D", 0x22cb, 3 ],
+ [ "SLA E", 0x23cb, 3 ],
+ [ "SLA H", 0x24cb, 3 ],
+ [ "SLA [HL]", 0x26cb, 3 ],
+ [ "SLA L", 0x25cb, 3 ],
+ [ "SRA A", 0x2fcb, 3 ],
+ [ "SRA B", 0x28cb, 3 ],
+ [ "SRA C", 0x29cb, 3 ],
+ [ "SRA D", 0x2acb, 3 ],
+ [ "SRA E", 0x2bcb, 3 ],
+ [ "SRA H", 0x2ccb, 3 ],
+ [ "SRA [HL]", 0x2ecb, 3 ],
+ [ "SRA L", 0x2dcb, 3 ],
+ [ "SRL A", 0x3fcb, 3 ],
+ [ "SRL B", 0x38cb, 3 ],
+ [ "SRL C", 0x39cb, 3 ],
+ [ "SRL D", 0x3acb, 3 ],
+ [ "SRL E", 0x3bcb, 3 ],
+ [ "SRL H", 0x3ccb, 3 ],
+ [ "SRL [HL]", 0x3ecb, 3 ],
+ [ "SRL L", 0x3dcb, 3 ],
+ [ "STOP", 0x10, 0 ],
+ [ "SUB A", 0x97, 0 ],
+ [ "SUB B", 0x90, 0 ],
+ [ "SUB C", 0x91, 0 ],
+ [ "SUB D", 0x92, 0 ],
+ [ "SUB E", 0x93, 0 ],
+ [ "SUB H", 0x94, 0 ],
+ [ "SUB [HL]", 0x96, 0 ],
+ [ "SUB L", 0x95, 0 ],
+ [ "SUB x", 0xd6, 1 ],
+ [ "SWAP A", 0x37cb, 3 ],
+ [ "SWAP B", 0x30cb, 3 ],
+ [ "SWAP C", 0x31cb, 3 ],
+ [ "SWAP D", 0x32cb, 3 ],
+ [ "SWAP E", 0x33cb, 3 ],
+ [ "SWAP H", 0x34cb, 3 ],
+ [ "SWAP [HL]", 0x36cb, 3 ],
+ [ "SWAP L", 0x35cb, 3 ],
+ [ "XOR A", 0xaf, 0 ],
+ [ "XOR B", 0xa8, 0 ],
+ [ "XOR C", 0xa9, 0 ],
+ [ "XOR D", 0xaa, 0 ],
+ [ "XOR E", 0xab, 0 ],
+ [ "XOR H", 0xac, 0 ],
+ [ "XOR [HL]", 0xae, 0 ],
+ [ "XOR L", 0xad, 0 ],
+ [ "XOR x", 0xee, 1 ],
+ [ "E", 0x100, -1 ],
+]
+
+#find conflicts
+conflict_table = {}
+for line in temp_opt_table:
+ if line[1] in conflict_table.keys():
+ print "CONFLICT: " + line[0] + " ($" + hex(line[1])[2:] + ") .... " + conflict_table[line[1]]
+ else:
+ conflict_table[line[1]] = line[0]
+
+#construct real opt_table
+opt_table = {}
+for line in temp_opt_table:
+ opt_table[line[1]] = [line[0], line[2]]
+del temp_opt_table
+del line
+
+end_08_scripts_with = [
+0xe9, #jp hl
+#0xc3, #jp
+##0x18, #jr
+0xc9, #ret
+###0xda, 0xe9, 0xd2, 0xc2, 0xca, 0xc3, 0x38, 0x30, 0x20, 0x28, 0x18, 0xd8, 0xd0, 0xc0, 0xc8, 0xc9
+]
+relative_jumps = [0x38, 0x30, 0x20, 0x28, 0x18]
+relative_unconditional_jumps = [0xc3, 0x18]
+
+#TODO: replace call and a pointer with call and a label
+call_commands = [0xdc, 0xd4, 0xc4, 0xcc, 0xcd]
+
+asm_commands = {
+ "3c49": "PrintText",
+ "35d6": "Bankswitch",
+ "3927": "AddPokemonToParty",
+ "3e48": "GivePokemon",
+ "3dd7": "Delay3",
+ "3e2e": "GiveItem",
+ "2f9e": "GetMonName",
+ "3e6d": "Predef", #library of pre-defined asm routines
+ "00b5": "CopyData",
+ "2ff3": "GetMachineName",
+}
+
+def random_asm_label():
+ return ".ASM_" + random_hash()
+
+def output_bank_opcodes(original_offset, max_byte_count=0x4000):
+ #fs = current_address
+ #b = bank_byte
+ #in = input_data -- extract_maps.rom
+ #bank_size = byte_count
+ #i = offset
+ #ad = end_address
+ #a, oa = current_byte_number
+
+ rom = extract_maps.rom
+ offset = original_offset
+ current_byte_number = 0 #start from the beginning
+
+ #we don't actually have an end address, but we'll just say $4000
+ end_address = original_offset + max_byte_count
+
+ byte_labels = {}
+
+ output = ""
+ keep_reading = True
+ while offset <= end_address and keep_reading:
+ current_byte = ord(extract_maps.rom[offset])
+ is_data = False
+ maybe_byte = current_byte
+
+ #first check if this byte already has a label
+ #if it does, use the label
+ #if not, generate a new label
+ if offset in byte_labels.keys():
+ line_label = byte_labels[offset]["name"]
+ byte_labels[offset]["usage"] += 1
+ else:
+ line_label = random_asm_label()
+ byte_labels[offset] = {}
+ byte_labels[offset]["name"] = line_label
+ byte_labels[offset]["usage"] = 0
+ output += line_label.lower() + " ; " + hex(offset) + "\n"
+
+ #find out if there's a two byte key like this
+ temp_maybe = maybe_byte
+ temp_maybe += ( ord(rom[offset+1]) << 8)
+ if temp_maybe in opt_table.keys():
+ opstr = opt_table[temp_maybe][0].lower()
+
+ if "x" in opstr:
+ for x in range(0, opstr.count("x")):
+ insertion = ord(rom[offset + 1])
+ insertion = "$" + hex(insertion)[2:]
+
+ opstr = opstr[:opstr.find("x")].lower() + insertion + opstr[opstr.find("x")+1:].lower()
+
+ current_byte += 1
+ offset += 1
+ if "?" in opstr:
+ for y in range(0, opstr.count("?")):
+ byte1 = ord(rom[offset + 1])
+ byte2 = ord(rom[offset + 2])
+
+ number = byte1
+ number += byte2 << 8;
+
+ insertion = "$%.4x" % (number)
+
+ opstr = opstr[:opstr.find("?")].lower() + insertion + opstr[opstr.find("?")+1:].lower()
+
+ current_byte_number += 2
+ offset += 2
+
+ output += spacing + opstr #+ " ; " + hex(offset)
+ output += "\n"
+
+ current_byte_number += 2
+ offset += 2
+ elif maybe_byte in opt_table.keys():
+ op_code = opt_table[maybe_byte]
+ op_code_type = op_code[1]
+ op_code_byte = maybe_byte
+
+ #type = -1 when it's the E op
+ #if op_code_type != -1:
+ if op_code_type == 0 and ord(rom[offset]) == op_code_byte:
+ op_str = op_code[0].lower()
+
+ output += spacing + op_code[0].lower() #+ " ; " + hex(offset)
+ output += "\n"
+
+ offset += 1
+ current_byte_number += 1
+ elif op_code_type == 1 and ord(rom[offset]) == op_code_byte:
+ oplen = len(op_code[0])
+ opstr = copy(op_code[0])
+ xes = op_code[0].count("x")
+ include_comment = False
+ for x in range(0, xes):
+ insertion = ord(rom[offset + 1])
+ insertion = "$" + hex(insertion)[2:]
+
+ if current_byte == 0x18 or current_byte==0x20 or current_byte in relative_jumps: #jr or jr nz
+ #generate a label for the byte we're jumping to
+ target_address = offset + 2 + ord(rom[offset + 1])
+ if target_address in byte_labels.keys():
+ byte_labels[target_address]["usage"] = 1 + byte_labels[target_address]["usage"]
+ line_label2 = byte_labels[target_address]["name"]
+ else:
+ line_label2 = random_asm_label()
+ byte_labels[target_address] = {}
+ byte_labels[target_address]["name"] = line_label2
+ byte_labels[target_address]["usage"] = 1
+
+ insertion = line_label2.lower()
+ include_comment = True
+
+ opstr = opstr[:opstr.find("x")].lower() + insertion + opstr[opstr.find("x")+1:].lower()
+ output += spacing + opstr
+ if include_comment:
+ output += " ; " + hex(offset)
+ if current_byte in relative_jumps:
+ output += " $" + hex(ord(rom[offset + 1]))[2:]
+ output += "\n"
+
+ current_byte_number += 1
+ offset += 1
+ insertion = ""
+
+ current_byte_number += 1
+ offset += 1
+ include_comment = False
+ elif op_code_type == 2 and ord(rom[offset]) == op_code_byte:
+ oplen = len(op_code[0])
+ opstr = copy(op_code[0])
+ qes = op_code[0].count("?")
+ for x in range(0, qes):
+ byte1 = ord(rom[offset + 1])
+ byte2 = ord(rom[offset + 2])
+
+ number = byte1
+ number += byte2 << 8;
+
+ insertion = "$%.4x" % (number)
+ if maybe_byte in call_commands:
+ if insertion[1:] in asm_commands:
+ insertion = asm_commands[insertion[1:]]
+
+ opstr = opstr[:opstr.find("?")].lower() + insertion + opstr[opstr.find("?")+1:].lower()
+ output += spacing + opstr #+ " ; " + hex(offset)
+ output += "\n"
+
+ current_byte_number += 2
+ offset += 2
+
+ current_byte_number += 1
+ offset += 1
+
+ #duck out if this is jp $24d7
+ if current_byte == 0xc3 or current_byte in relative_unconditional_jumps:
+ #if number == 0x24d7: #jp
+ if not has_outstanding_labels(byte_labels):
+ keep_reading = False
+ is_data = False
+ break
+ else:
+ is_data = True
+
+ #stop reading at a jump, relative jump or return
+ if current_byte in end_08_scripts_with:
+ if not has_outstanding_labels(byte_labels):
+ keep_reading = False
+ is_data = False #cleanup
+ break
+ else:
+# if is_data and keep_reading:
+ output += spacing + "db $" + hex(ord(rom[offset]))[2:] #+ " ; " + hex(offset)
+ output += "\n"
+ offset += 1
+ current_byte_number += 1
+ #else the while loop would have spit out the opcode
+
+ #these two are done prior
+ #offset += 1
+ #current_byte_number += 1
+
+ #clean up unused labels
+ for label_line in byte_labels.keys():
+ address = label_line
+ label_line = byte_labels[label_line]
+ if label_line["usage"] == 0:
+ output = output.replace((label_line["name"] + " ; " + hex(address) + "\n").lower(), "")
+
+ #add the offset of the final location
+ output += "; " + hex(offset)
+
+ return (output, offset)
+
+def has_outstanding_labels(byte_labels):
+ """
+ if a label is used once, it means it has to be called or specified later
+ """
+ for label_line in byte_labels.keys():
+ real_line = byte_labels[label_line]
+ if real_line["usage"] == 1: return True
+ return False
+
+def text_asm_pretty_printer(label, address_of_08, include_08=True):
+ """returns (output, end_address)"""
+ output = label + ": ; " + hex(address_of_08) + "\n"
+ if include_08:
+ output += spacing + "db $08 ; asm\n"
+ results = output_bank_opcodes(address_of_08 + 1)
+ else:
+ results = output_bank_opcodes(address_of_08)
+ output += results[0]
+ end_address = results[1]
+
+ return (output, end_address)
+
+if __name__ == "__main__":
+ extract_maps.load_rom()
+ extract_maps.load_map_pointers()
+ extract_maps.read_all_map_headers()
+
+ #0x18f96 is PalletTownText1
+ #0x19B5D is BluesHouseText1
+ print output_bank_opcodes(int(sys.argv[1], 16))[0]
diff --git a/extras/insert_texts.py b/extras/insert_texts.py
index 931d16eb..cdb09417 100644
--- a/extras/insert_texts.py
+++ b/extras/insert_texts.py
@@ -8,10 +8,12 @@ from pretty_map_headers import map_name_cleaner, make_text_label, map_constants,
import pretty_map_headers
from analyze_incbins import asm, offset_to_pointer, find_incbin_to_replace_for, split_incbin_line_into_three, generate_diff_insert, load_asm, isolate_incbins, process_incbins, reset_incbins, apply_diff
import analyze_incbins
+from gbz80disasm import text_asm_pretty_printer
import os, sys
import subprocess
spacing = " "
tx_fars = None
+failed_attempts = {}
def find_tx_far_entry(map_id, text_id):
for tx_far_line in tx_fars:
@@ -73,7 +75,7 @@ def insert_tx_far(map_id, text_id, tx_far_line=None):
print diff
apply_diff(diff)
-def insert_all_tx_fars():
+def insert_all_tx_far_targets():
for tx_far in tx_fars:
map_id = tx_far[0]
text_id = tx_far[1]
@@ -94,6 +96,299 @@ def insert_all_tx_fars():
isolate_incbins()
process_incbins()
+def all_texts_are_tx_fars(map_id):
+ map2 = extract_maps.map_headers[map_id]
+ for text_id in map2["texts"]:
+ txt = map2["texts"][text_id]
+ if not "TX_FAR" in txt[0].keys(): return False
+ return True
+
+def texts_label_pretty_printer(map_id):
+ "output a texts label for map if all texts are TX_FARs and in the asm already"
+ #extract_maps.map_headers[map_id]["texts"][text_id][0]["TX_FAR"]
+ if not all_texts_are_tx_fars(map_id): return None
+ map2 = extract_maps.map_headers[map_id]
+
+ #pointer to the list of texts
+ texts_list_pointer = int(map2["texts_pointer"], 16)
+
+ #get the label for this texts list
+ base_label = map_name_cleaner(map2["name"], None)[:-2]
+ label = base_label + "Texts"
+
+ #make up a label for each text
+ text_labels = []
+ text_id = 1
+ for text in map2["texts"].keys():
+ text_label = base_label + "Text" + str(text_id)
+ text_labels.append(text_label)
+ text_id += 1
+
+ output = label + ": ; " + hex(texts_list_pointer)
+ output += "\n"
+ output += spacing + "dw "
+
+ first = True
+ for labela in text_labels:
+ if not first:
+ output += ", " + labela
+ else:
+ output += labela
+ first = False
+
+ return output
+
+def insert_texts_label(map_id):
+ if not all_texts_are_tx_fars(map_id): return None
+ map2 = extract_maps.map_headers[map_id]
+
+ base_label = map_name_cleaner(map2["name"], None)[:-2]
+ label = base_label + "Texts"
+ texts_pointer = int(map2["texts_pointer"], 16)
+
+ insert_asm = texts_label_pretty_printer(map_id)
+
+ line_number = find_incbin_to_replace_for(texts_pointer)
+ if line_number == None:
+ print "skipping texts label for map_id=" + str(map_id) + " texts_pointer=" + hex(texts_pointer) + " because the address is taken"
+ return
+
+ #also do a name check
+ if (label + ":") in "\n".join(analyze_incbins.asm):
+ print "skipping texts label for map_id=" + str(map_id) + " texts_pointer=" + hex(texts_pointer) + " because the label is already used"
+ return
+
+ newlines = split_incbin_line_into_three(line_number, texts_pointer, len(map2["referenced_texts"])*2 )
+
+ newlines = newlines.split("\n")
+ if len(newlines) == 2: index = 0 #replace the 1st line with new content
+ elif len(newlines) == 3: index = 1 #replace the 2nd line with new content
+
+ newlines[index] = insert_asm
+
+ if len(newlines) == 3 and newlines[2][-2:] == "$0":
+ #get rid of the last incbin line if it is only including 0 bytes
+ del newlines[2]
+ #note that this has to be done after adding in the new asm
+ newlines = "\n".join(line for line in newlines)
+ newlines = newlines.replace("$x", "$")
+
+ diff = generate_diff_insert(line_number, newlines)
+ print "working on map_id=" + str(map_id) + " texts_pointer=" + hex(texts_pointer)
+ print diff
+ apply_diff(diff)
+
+#untested as of 2012-01-07
+def insert_all_texts_labels():
+ for map_id in extract_maps.map_headers.keys():
+ if map_id not in extract_maps.bad_maps:
+ if len(extract_maps.map_headers[map_id]["referenced_texts"]) > 0:
+ insert_texts_label(map_id)
+
+ reset_incbins()
+ analyze_incbins.reset_incbins()
+ asm = None
+ incbin_lines = []
+ processed_incbins = {}
+ analyze_incbins.asm = None
+ analyze_incbins.incbin_lines = []
+ analyze_incbins.processed_incbins = {}
+
+ load_asm()
+ isolate_incbins()
+ process_incbins()
+
+def txt_to_tx_far_pretty_printer(address, label, target_label, include_byte=False):
+ output = "\n" + label + ": ; " + hex(address) + "\n"
+ output += spacing + "TX_FAR " + target_label + "\n"
+ if include_byte:
+ output += spacing + "db $50\n"
+ return output
+
+def insert_text_label_tx_far(map_id, text_id):
+ if map_id in extract_maps.bad_maps:
+ print "bad map id=" + str(map_id)
+ return
+ map2 = extract_maps.map_headers[map_id]
+ if map2["texts"][text_id] == {0: {}}: return None
+
+ base_label = map_name_cleaner(map2["name"], None)[:-2]
+ label = base_label + "Text" + str(text_id)
+ target_label = "_" + label
+ start_address = map2["texts"][text_id][0]["start_address"]
+ if 0x4000 <= start_address <= 0x7fff:
+ start_address = extract_maps.calculate_pointer(start_address, int(map2["bank"],16))
+ include_byte = False
+ print map2["texts"][text_id]
+ if "type" in map2["texts"][text_id][1].keys():
+ if map2["texts"][text_id][1]["type"] == 0x50:
+ include_byte = True
+ tx_far_asm = txt_to_tx_far_pretty_printer(start_address, label, target_label, include_byte=include_byte)
+
+ line_number = find_incbin_to_replace_for(start_address)
+ if line_number == None:
+ print "skipping text label that calls TX_FAR for map_id=" + str(map_id) + " text_id=" + hex(text_id) + " because the address is taken"
+ return
+
+ #also do a name check
+ if 1 < ("\n".join(analyze_incbins.asm)).count(label + ":"):
+ print "skipping text label that calls TX_FAR for map_id=" + str(map_id) + " text_id" + hex(text_id) + " because the label is already used (" + label + ":)"
+ return
+
+ extra = 0
+ if include_byte: extra += 1
+ newlines = split_incbin_line_into_three(line_number, start_address, 4 + extra )
+
+ newlines = newlines.split("\n")
+ if len(newlines) == 2: index = 0 #replace the 1st line with new content
+ elif len(newlines) == 3: index = 1 #replace the 2nd line with new content
+
+ newlines[index] = tx_far_asm
+
+ if len(newlines) == 3 and newlines[2][-2:] == "$0":
+ #get rid of the last incbin line if it is only including 0 bytes
+ del newlines[2]
+ #note that this has to be done after adding in the new asm
+ newlines = "\n".join(line for line in newlines)
+
+ newlines = newlines.replace("$x", "$")
+
+ diff = generate_diff_insert(line_number, newlines)
+ print "working on map_id=" + str(map_id) + " text_id=" + str(text_id)
+ print diff
+ apply_diff(diff)
+
+def insert_all_text_labels():
+ for map_id in extract_maps.map_headers.keys():
+ if map_id <= 100: continue #skip
+ if map_id not in extract_maps.bad_maps:
+ for text_id in extract_maps.map_headers[map_id]["referenced_texts"]:
+ insert_text_label_tx_far(map_id, text_id)
+
+ reset_incbins()
+ analyze_incbins.reset_incbins()
+ asm = None
+ incbin_lines = []
+ processed_incbins = {}
+ analyze_incbins.asm = None
+ analyze_incbins.incbin_lines = []
+ analyze_incbins.processed_incbins = {}
+
+ load_asm()
+ isolate_incbins()
+ process_incbins()
+
+#TODO: if line_id !=0 then don't include the label?
+def insert_08_asm(map_id, text_id, line_id=0):
+ map2 = extract_maps.map_headers[map_id]
+ base_label = map_name_cleaner(map2["name"], None)[:-2]
+ label = base_label + "Text" + str(text_id)
+
+ start_address = all_texts[map_id][text_id][line_id]["start_address"]
+
+ (text_asm, end_address) = text_asm_pretty_printer(label, start_address)
+ print "end address is: " + hex(end_address)
+
+ #find where to insert the assembly
+ line_number = find_incbin_to_replace_for(start_address)
+ if line_number == None:
+ print "skipping text label for a $08 on map_id=" + str(map_id) + " text_id=" + str(text_id) + " because the address is taken"
+ return
+
+ #also do a name check
+ if 1 <= ("\n".join(analyze_incbins.asm)).count("\n" + label + ":"):
+ print "skipping text label for a $08 on map_id=" + str(map_id) + " text_id=" + str(text_id) + " because the label is already taken (" + label + ":)"
+ return
+
+ newlines = split_incbin_line_into_three(line_number, start_address, end_address - start_address )
+
+ newlines = newlines.split("\n")
+ if len(newlines) == 2: index = 0 #replace the 1st line with new content
+ elif len(newlines) == 3: index = 1 #replace the 2nd line with new content
+
+ newlines[index] = text_asm
+
+ if len(newlines) == 3 and newlines[2][-2:] == "$0":
+ #get rid of the last incbin line if it is only including 0 bytes
+ del newlines[2]
+ #note that this has to be done after adding in the new asm
+ newlines = "\n".join(line for line in newlines)
+
+ newlines = newlines.replace("$x", "$")
+
+ diff = generate_diff_insert(line_number, newlines)
+ print "working on map_id=" + str(map_id) + " text_id=" + str(text_id)
+ print diff
+ result = apply_diff(diff)
+
+ if result == False:
+ failed_attempts[len(failed_attempts.keys())] = {"map_id": map_id, "text_id": text_id}
+
+def find_all_08s():
+ all_08s = []
+ for map_id in all_texts:
+ for text_id in all_texts[map_id].keys():
+ if 0 in all_texts[map_id][text_id].keys():
+ for line_id in all_texts[map_id][text_id].keys():
+ if all_texts[map_id][text_id][line_id]["type"] == 0x8:
+ all_08s.append([map_id, text_id, line_id])
+ return all_08s
+
+def insert_all_08s():
+ all_08s = find_all_08s()
+ for the_08_line in all_08s:
+ map_id = the_08_line[0]
+ if map_id <= 86: continue #speed things up
+ text_id = the_08_line[1]
+ line_id = the_08_line[2]
+
+ print "processing map_id=" + str(map_id) + " text_id=" + str(text_id)
+ insert_08_asm(map_id, text_id, line_id)
+
+ #reset everything
+ analyze_incbins.reset_incbins()
+ asm = None
+ incbin_lines = []
+ processed_incbins = {}
+ analyze_incbins.asm = None
+ analyze_incbins.incbin_lines = []
+ analyze_incbins.processed_incbins = {}
+
+ #reload
+ load_asm()
+ isolate_incbins()
+ process_incbins()
+
+def insert_asm(start_address, label):
+ (text_asm, end_address) = text_asm_pretty_printer(label, start_address, include_08=False)
+ print "end address is: " + hex(end_address)
+
+ #find where to insert the assembly
+ line_number = find_incbin_to_replace_for(start_address)
+ if line_number == None:
+ print "skipping asm because the address is taken"
+ return
+
+ newlines = split_incbin_line_into_three(line_number, start_address, end_address - start_address )
+
+ newlines = newlines.split("\n")
+ if len(newlines) == 2: index = 0 #replace the 1st line with new content
+ elif len(newlines) == 3: index = 1 #replace the 2nd line with new content
+
+ newlines[index] = text_asm
+
+ if len(newlines) == 3 and newlines[2][-2:] == "$0":
+ #get rid of the last incbin line if it is only including 0 bytes
+ del newlines[2]
+ #note that this has to be done after adding in the new asm
+ newlines = "\n".join(line for line in newlines)
+
+ newlines = newlines.replace("$x", "$")
+
+ diff = generate_diff_insert(line_number, newlines)
+ print diff
+ result = apply_diff(diff, try_fixing=False)
+
if __name__ == "__main__":
#load map headers and object data
extract_maps.load_rom()
@@ -111,8 +406,28 @@ if __name__ == "__main__":
#insert _ViridianCityText10
#insert_tx_far(1, 10)
- insert_all_tx_fars()
-
#just me testing a pokemart sign duplicate
#insert_tx_far(3, 14)
+ #this is the big one
+ #insert_all_tx_far_targets()
+
+ #for map_id in extract_maps.map_headers.keys():
+ # if map_id not in extract_maps.bad_maps:
+ # if len(extract_maps.map_headers[map_id]["referenced_texts"]) > 0:
+ # texts_label_pretty_printer(map_id)
+
+ #insert_texts_label(240)
+ #insert_all_texts_labels()
+
+ #insert_text_label_tx_far(240, 1)
+ #insert_all_text_labels()
+
+ #insert_08_asm(83, 1)
+ #insert_all_08s()
+
+ insert_asm(0x19926, "VermilionCityText5_2")
+
+ if len(failed_attempts) > 0:
+ print "-- FAILED ATTEMPTS --"
+ print str(failed_attempts)
diff --git a/extras/pretty_map_headers.py b/extras/pretty_map_headers.py
index 952d6fd2..a67d0b55 100644
--- a/extras/pretty_map_headers.py
+++ b/extras/pretty_map_headers.py
@@ -8,7 +8,7 @@ import extract_maps
import sprite_helper
import random
import string
-import analyze_texts #hopefully not a dependency loop
+#import analyze_texts #hopefully not a dependency loop
base = 16
spacing = " "
diff --git a/extras/romviz.py b/extras/romviz.py
new file mode 100644
index 00000000..de8eb596
--- /dev/null
+++ b/extras/romviz.py
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+#author: Bryan Bishop <kanzure@gmail.com>
+#date: 2012-01-10
+#show me an image
+import Image
+from math import floor
+import extract_maps
+import analyze_incbins
+
+print "loading rom.."
+extract_maps.load_rom()
+#extract_maps.load_map_pointers()
+#extract_maps.read_all_map_headers()
+
+print "analyzing incbins.."
+analyze_incbins.load_asm()
+analyze_incbins.isolate_incbins()
+analyze_incbins.process_incbins()
+
+width = 1024
+height = 1024
+
+color_table = {}
+print "creating color table..."
+for value in range(0, 256):
+ color_table[value] = (value, value, value)
+
+im = Image.new("RGB", (width, height))
+
+print "drawing base color..."
+for pos in range(0, len(extract_maps.rom)):
+ widthx = pos % width
+ heighty = floor(pos / height)
+ #im.putpixel((widthx, heighty), color_table[ord(extract_maps.rom[pos])])
+ im.putpixel((widthx, heighty), (0, 0, 0))
+
+ #print "Searching for incbin... for pos= " + hex(pos)
+ #incbin_found = analyze_incbins.find_incbin_to_replace_for(pos)
+ #if incbin_found == None:
+ # im.putpixel((widthx, heighty), (0, 0, 0))
+ #else:
+ # im.putpixel((widthx, heighty), (255, 255, 255))
+
+print "drawing incbins..."
+for incbin_key in analyze_incbins.processed_incbins:
+ incbin = analyze_incbins.processed_incbins[incbin_key]
+ start = incbin["start"]
+ end = incbin["end"]
+
+ for pos in range(start, end+1):
+ widthx = pos % width
+ heighty = floor(pos / height)
+ im.putpixel((widthx, heighty), (255, 0, 0))
+
+im.save("test.png")
diff --git a/maps/lavendartown.blk b/maps/lavendertown.blk
index d094f3b9..d094f3b9 100644
--- a/maps/lavendartown.blk
+++ b/maps/lavendertown.blk
diff --git a/pokered.asm b/pokered.asm
index 0199cffc..9e929b91 100644
--- a/pokered.asm
+++ b/pokered.asm
@@ -105,7 +105,6 @@ CopyData: ; 00B5
jr nz,CopyData
ret
-
SECTION "romheader",HOME[$100]
nop
jp Start
@@ -119,7 +118,7 @@ MapHeaderPointers: ; $01AE
dw ViridianCity_h ; VIRIDIAN_CITY
dw PewterCity_h ; PEWTER_CITY
dw CeruleanCity_h ; CERULEAN_CITY
- dw LavendarTown_h ; LAVENDER_TOWN
+ dw LavenderTown_h ; LAVENDER_TOWN
dw VermilionCity_h ; VERMILION_CITY
dw CeladonCity_h ; CELADON_CITY
dw FuchsiaCity_h ; FUCHSIA_CITY
@@ -241,8 +240,8 @@ MapHeaderPointers: ; $01AE
dw CeladonMart2_h
dw CeladonMart3_h
dw CeladonMart4_h
- dw CeladonMart5_h
- dw CeladonMart6_h
+ dw CeladonMartRoof_h
+ dw CeladonMartElevator_h
dw CeladonMansion1_h
dw CeladonMansion2_h
dw CeladonMansion3_h
@@ -251,7 +250,7 @@ MapHeaderPointers: ; $01AE
dw CeladonPokecenter_h
dw CeladonGym_h
dw CeladonGameCorner_h
- dw CeladonHouse_h
+ dw CeladonMart5_h
dw CeladonPrizeRoom_h
dw CeladonDiner_h
dw CeladonHouse2_h
@@ -289,7 +288,7 @@ MapHeaderPointers: ; $01AE
dw CinnabarPokecenter_h
dw CinnabarMart_h
dw $5e72
- dw IndigoPlateauLobby_h
+ dw IndigoPlateauLobby_h
dw CopycatsHouseF1_h
dw CopycatsHouseF2_h
dw FightingDojo_h
@@ -1003,8 +1002,170 @@ MartInventories: ; 2442
db $FE,7,ULTRA_BALL,GREAT_BALL,FULL_RESTORE,MAX_POTION,FULL_HEAL
db REVIVE,MAX_REPEL,$FF
-INCBIN "baserom.gbc",$24D6,$2F9E - $24D6
-GetMonsterName: ; 2F9E
+INCBIN "baserom.gbc",$24d6,$24e5 - $24d6
+
+VictoryRoad3Text10:
+VictoryRoad3Text9:
+VictoryRoad3Text8:
+VictoryRoad3Text7:
+VictoryRoad2Text13:
+VictoryRoad2Text12:
+VictoryRoad2Text11:
+SeafoamIslands1Text2:
+SeafoamIslands1Text1:
+SeafoamIslands5Text2:
+SeafoamIslands5Text1:
+SeafoamIslands4Text6:
+SeafoamIslands4Text5:
+SeafoamIslands4Text4:
+SeafoamIslands4Text3:
+SeafoamIslands4Text2:
+SeafoamIslands4Text1:
+SeafoamIslands3Text2:
+SeafoamIslands3Text1:
+SeafoamIslands2Text2:
+SeafoamIslands2Text1:
+FuchsiaHouse2Text3:
+VictoryRoad1Text7:
+VictoryRoad1Text6: ; _VictoryRoad1Text6
+VictoryRoad1Text5: ; 0x24e5
+ TX_FAR _VictoryRoad1Text5
+ db $50
+
+SaffronCityText19:
+CinnabarIslandText4:
+FuchsiaCityText14:
+VermilionCityText9:
+LavenderTownText6:
+CeruleanCityText14:
+PewterCityText8:
+ViridianCityText11: ; 0x24ea
+ TX_FAR _ViridianCityText11
+ db $50
+
+PewterCityText9:
+CeruleanCityText15:
+LavenderTownText7:
+VermilionCityText10:
+CeladonCityText12:
+FuchsiaCityText15:
+CinnabarIslandText5:
+SaffronCityText23:
+Route4Text4:
+Route10Text8:
+ViridianCityText12: ; 0x24ef
+ TX_FAR _ViridianCityText12
+ db $50
+
+Route2Text1:
+Route4Text3:
+Route9Text10:
+Route12Text9:
+Route12Text10:
+Route15Text11:
+Route24Text8:
+Route25Text10:
+ViridianGymText11:
+ViridianForestText5:
+ViridianForestText6:
+ViridianForestText7:
+MtMoon1Text8:
+MtMoon1Text9:
+MtMoon1Text10:
+MtMoon1Text11:
+MtMoon1Text12:
+MtMoon1Text13:
+MtMoon3Text8:
+MtMoon3Text9:
+PowerPlantText10:
+PowerPlantText11:
+PowerPlantText12:
+PowerPlantText13:
+PowerPlantText14:
+SSAnne8Text10:
+SSAnne9Text6:
+SSAnne9Text9:
+SSAnne10Text9:
+SSAnne10Text10:
+SSAnne10Text11:
+VictoryRoad1Text3:
+VictoryRoad1Text4:
+PokemonTower3Text4:
+PokemonTower4Text4:
+PokemonTower4Text5:
+PokemonTower4Text6:
+PokemonTower5Text6:
+PokemonTower6Text4:
+PokemonTower6Text5:
+FuchsiaHouse2Text2:
+VictoryRoad2Text7:
+VictoryRoad2Text8:
+VictoryRoad2Text9:
+VictoryRoad2Text10:
+VictoryRoad3Text5:
+VictoryRoad3Text6:
+RocketHideout1Text6:
+RocketHideout1Text7:
+RocketHideout2Text2:
+RocketHideout2Text3:
+RocketHideout2Text4:
+RocketHideout2Text5:
+RocketHideout3Text3:
+RocketHideout3Text4:
+RocketHideout4Text5:
+RocketHideout4Text6:
+RocketHideout4Text7:
+RocketHideout4Text8:
+RocketHideout4Text9:
+SilphCo3Text4:
+SilphCo4Text5:
+SilphCo4Text6:
+SilphCo4Text7:
+SilphCo5Text6:
+SilphCo5Text7:
+SilphCo5Text8:
+SilphCo6Text9:
+SilphCo6Text10:
+SilphCo7Text10:
+SilphCo7Text11:
+Mansion3Text3:
+Mansion3Text4:
+Mansion4Text3:
+Mansion4Text4:
+Mansion4Text5:
+Mansion4Text6:
+Mansion4Text8:
+SafariZoneEastText1:
+SafariZoneEastText2:
+SafariZoneEastText3:
+SafariZoneEastText4:
+SafariZoneNorthText1:
+SafariZoneNorthText2:
+SafariZoneWestText1:
+SafariZoneWestText2:
+SafariZoneWestText3:
+SafariZoneWestText4:
+SafariZoneCenterText1:
+UnknownDungeon2Text1:
+UnknownDungeon2Text2:
+UnknownDungeon2Text3:
+UnknownDungeon3Text2:
+UnknownDungeon3Text3:
+UnknownDungeon1Text1:
+UnknownDungeon1Text2:
+UnknownDungeon1Text3:
+SilphCo10Text4:
+SilphCo10Text5:
+SilphCo10Text6:
+Route2Text2: ; 0x24f4
+ db $08 ; asm
+ ld a, $5c
+ call Predef
+ jp $24d7
+
+INCBIN "baserom.gbc",$24fd,$2f9e - $24fd
+
+GetMonName: ; 2F9E
push hl
ld a,[$ffb8]
push af
@@ -1113,7 +1274,70 @@ TechnicalPrefix:
HiddenPrefix:
db "HM"
-INCBIN "baserom.gbc",$3040,$3474 - $3040
+INCBIN "baserom.gbc",$3040,$31cc - $3040
+
+LoadTrainerHeader: ; 0x31cc
+ call $3157
+ xor a
+ call $3193
+ ld a, $2
+ call $3193
+ ld a, [$cc55]
+ ld c, a
+ ld b, $2
+ call $31c7
+ ld a, c
+ and a
+ jr z, .asm_c2964 ; 0x31e3 $8
+ ld a, $6
+ call $3193
+ jp $3c49
+.asm_c2964 ; 0x31ed
+ ld a, $4
+ call $3193
+ call PrintText
+ ld a, $a
+ call $3193
+ push de
+ ld a, $8
+ call $3193
+ pop de
+ call $3354
+ ld hl, $d733
+ set 4, [hl]
+ ld hl, $cd60
+ bit 0, [hl]
+ ret nz
+ call $336a
+ ld hl, $da39
+ inc [hl]
+ jp $325d
+ call $3306
+ ld a, [$cf13]
+ cp $ff
+ jr nz, .asm_76c22 ; 0x3221 $8
+ xor a
+ ld [$cf13], a
+ ld [$cc55], a
+ ret
+.asm_76c22 ; 0x322b
+ ld hl, $d733
+ set 3, [hl]
+ ld [$cd4f], a
+ xor a
+ ld [$cd50], a
+ ld a, $4c
+ call Predef
+ ld a, $f0
+ ld [$cd6b], a
+ xor a
+ ldh [$b4], a
+ call $32cf
+ ld hl, $da39
+ inc [hl]
+ ret
+
+INCBIN "baserom.gbc",$324c,$3474 - $324c
FuncTX_F7: ; 3474
; XXX find a better name for this function
@@ -1129,6 +1353,7 @@ IsItemInBag: ; 3493
; given an item_id in b
; set zero flag if item isn't in player's bag
; else reset zero flag
+; related to Pokémon Tower and ghosts
ld a,$1C
call Predef
ld a,b
@@ -1282,7 +1507,7 @@ GetName: ; 376B
dec a
jr nz,.otherEntries\@
;1 = MON_NAMES
- call GetMonsterName
+ call GetMonName
ld hl,11
add hl,de
ld e,l
@@ -1343,7 +1568,21 @@ GetName: ; 376B
ld [$2000],a
ret
-INCBIN "baserom.gbc",$37DF,$3A87 - $37DF
+INCBIN "baserom.gbc",$37df,$3927 - $37df
+
+AddPokemonToParty: ; 0x3927
+ push hl
+ push de
+ push bc
+ ld b, $3 ; BANK(MyFunction)
+ ld hl, $72e5 ; MyFunction
+ call Bankswitch
+ pop bc
+ pop de
+ pop hl
+ ret
+
+INCBIN "baserom.gbc",$3936,$3A87 - $3936
AddNTimes: ; 3A87
; add bc to hl a times
@@ -1537,7 +1776,33 @@ GoPAL_SET: ; 3def
ld a,$45
jp Predef
-INCBIN "baserom.gbc",$3DF9,$3E5C - $3DF9
+INCBIN "baserom.gbc",$3df9,$3e2e - $3df9
+
+GiveItem: ; 0x3e2e
+ ld a, b
+ ld [$d11e], a
+ ld [$cf91], a
+ ld a, c
+ ld [$cf96], a
+ ld hl, $d31d
+ call $2bcf
+ ret nc
+ call $2fcf
+ call $3826
+ scf
+ ret
+
+GivePokemon: ; 0x3e48
+ ld a, b
+ ld [$cf91], a
+ ld a, c
+ ld [$d127], a
+ xor a
+ ld [$cc49], a
+ ld b, $13
+ ld hl, $7da5
+ jp Bankswitch
+
GenRandom: ; 3E5C
; store a random 8-bit value in a
push hl
@@ -1554,6 +1819,7 @@ GenRandom: ; 3E5C
Predef: ; 3E6D
; runs a predefined ASM command, where the command ID is read from $D0B7
+; $3E6D grabs the ath pointer from PredefPointers and executes it
ld [$CC4E],a ; save the predef routine's ID for later
@@ -2251,7 +2517,7 @@ MapHeaderBanks: ; 423D
db BANK(ViridianCity_h) ; VIRIDIAN_CITY
db BANK(PewterCity_h) ; PEWTER_CITY
db BANK(CeruleanCity_h) ; CERULEAN_CITY
- db BANK(LavendarTown_h) ; LAVENDER_TOWN
+ db BANK(LavenderTown_h) ; LAVENDER_TOWN
db BANK(VermilionCity_h) ; VERMILION_CITY
db BANK(CeladonCity_h) ; CELADON_CITY
db BANK(FuchsiaCity_h) ; FUCHSIA_CITY
@@ -2373,8 +2639,8 @@ MapHeaderBanks: ; 423D
db BANK(CeladonMart2_h)
db BANK(CeladonMart3_h)
db BANK(CeladonMart4_h)
- db BANK(CeladonMart5_h)
- db BANK(CeladonMart6_h)
+ db BANK(CeladonMartRoof_h)
+ db BANK(CeladonMartElevator_h)
db BANK(CeladonMansion1_h)
db BANK(CeladonMansion2_h)
db BANK(CeladonMansion3_h)
@@ -2383,7 +2649,7 @@ MapHeaderBanks: ; 423D
db BANK(CeladonPokecenter_h)
db BANK(CeladonGym_h)
db BANK(CeladonGameCorner_h)
- db BANK(CeladonHouse_h)
+ db BANK(CeladonMart5_h)
db BANK(CeladonPrizeRoom_h)
db BANK(CeladonDiner_h)
db BANK(CeladonHouse2_h)
@@ -4689,7 +4955,7 @@ ItemUseBall: ;03:5687
xor a
ld [$cc49],a
call CleanLCD_OAM
- call $3927 ;add mon to Party
+ call AddPokemonToParty ;add mon to Party
jr .End\@
.sendToBox\@ ;$5907
call CleanLCD_OAM
@@ -5009,11 +5275,11 @@ CeladonCityObject: ; 0x18022 (size=189)
db $9, $29, $0, CELADON_POKECENTER
db $1b, $c, $0, CELADON_GYM
db $13, $1c, $0, GAME_CORNER
- db $13, $27, $0, CELADON_HOUSE
+ db $13, $27, $0, CELADON_MART_5
db $13, $21, $0, CELADONPRIZE_ROOM
db $1b, $1f, $0, CELADON_DINER
- db $1b, $23, $0, CELADON_HOUSE_2
- db $1b, $2b, $0, CELADONHOTEL
+ db $1b, $23, $0, CELADON_HOUSE
+ db $1b, $2b, $0, CELADON_HOTEL
db $9 ; signs
db $f, $1b, $a ; CeladonCityText10
@@ -5046,13 +5312,11 @@ CeladonCityObject: ; 0x18022 (size=189)
EVENT_DISP $19, $9, $29 ; CELADON_POKECENTER
EVENT_DISP $19, $1b, $c ; CELADON_GYM
EVENT_DISP $19, $13, $1c ; GAME_CORNER
- EVENT_DISP $19, $13, $27 ; CELADON_HOUSE
+ EVENT_DISP $19, $13, $27 ; CELADON_MART_5
EVENT_DISP $19, $13, $21 ; CELADONPRIZE_ROOM
EVENT_DISP $19, $1b, $1f ; CELADON_DINER
- EVENT_DISP $19, $1b, $23 ; CELADON_HOUSE_2
- EVENT_DISP $19, $1b, $2b ; CELADONHOTEL
-
-INCBIN "baserom.gbc",$180df,$0
+ EVENT_DISP $19, $1b, $23 ; CELADON_HOUSE
+ EVENT_DISP $19, $1b, $2b ; CELADON_HOTEL
CeladonCityBlocks: ; 450
INCBIN "maps/celadoncity.blk"
@@ -5168,8 +5432,6 @@ ViridianCityObject: ; 0x18384 (size=104)
EVENT_DISP $14, $9, $15 ; VIRIDIAN_HOUSE
EVENT_DISP $14, $7, $20 ; VIRIDIAN_GYM
-INCBIN "baserom.gbc",$183ec,$0
-
ViridianCityBlocks: ; 360
INCBIN "maps/viridiancity.blk"
@@ -5235,7 +5497,6 @@ PewterCityObject: ; 0x18577 (size=111)
EVENT_DISP $14, $1d, $7 ; PEWTER_HOUSE_2
EVENT_DISP $14, $19, $d ; PEWTER_POKECENTER
-
PewterCityBlocks: ; 360
INCBIN "maps/pewtercity.blk"
@@ -5300,7 +5561,7 @@ CeruleanCityObject: ; 0x18786 (size=170)
db $b ; people
db SPRITE_BLUE, $2 + 4, $14 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKET, $8 + 4, $1e + 4, $ff, $ff, $42, $e6, $5 ; trainer
+ db SPRITE_ROCKET, $8 + 4, $1e + 4, $ff, $ff, $42, ROCKET + $C8, $5 ; trainer
db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $1f + 4, $ff, $d0, $3 ; person
db SPRITE_BLACK_HAIR_BOY_2, $12 + 4, $f + 4, $fe, $1, $4 ; person
db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $9 + 4, $fe, $2, $5 ; person
@@ -5323,8 +5584,6 @@ CeruleanCityObject: ; 0x18786 (size=170)
EVENT_DISP $14, $b, $9 ; CERULEAN_HOUSE_3
EVENT_DISP $14, $9, $9 ; CERULEAN_HOUSE_3
-INCBIN "baserom.gbc",$18830,$0
-
CeruleanCityBlocks: ; 360
INCBIN "maps/ceruleancity.blk"
@@ -5394,8 +5653,6 @@ VermilionCityObject: ; 0x189ba (size=133)
EVENT_DISP $14, $d, $f ; VERMILION_HOUSE_3
EVENT_DISP $14, $3, $7 ; VERMILION_HOUSE_2
-INCBIN "baserom.gbc",$18a3f,$0
-
VermilionCityBlocks: ; 360
INCBIN "maps/vermilioncity.blk"
@@ -5482,8 +5739,6 @@ FuchsiaCityObject: ; 0x18bd4 (size=178)
EVENT_DISP $14, $1b, $1f ; FUCHSIA_HOUSE_3
EVENT_DISP $14, $18, $1f ; FUCHSIA_HOUSE_3
-INCBIN "baserom.gbc",$18c86,$0
-
FuchsiaCityBlocks: ; 360
INCBIN "maps/fuchsiacity.blk"
@@ -5706,7 +5961,638 @@ PalletTownText7: ; sign by Blue’s house
TX_FAR _PalletTownText7
db "@"
-INCBIN "baserom.gbc",$18FF1,$1B2F-$FF1
+INCBIN "baserom.gbc",$18ff1,$19102 - $18ff1
+
+ViridianCityText1: ; 0x19102
+ TX_FAR _ViridianCityText1
+ db $50
+
+ViridianCityText2: ; 0x19107
+ db $08 ; asm
+ ld a, [$d356]
+ cp $7f
+ ld hl, $5127
+ jr z, .asm_ae9fe ; 0x19110
+ ld a, [$d751]
+ bit 1, a
+ jr nz, .asm_ae9fe ; 0x19117
+ ld hl, $5122
+.asm_ae9fe ; 0x1911c
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$19122,$1912c - $19122
+ViridianCityText3: ; 0x1912c
+ db $08 ; asm
+ ld hl, $514d
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_6dfea ; 0x1913a
+ ld hl, $5157
+ call PrintText
+ jr .asm_d611f ; 0x19142
+.asm_6dfea ; 0x19144
+ ld hl, $5152
+ call PrintText
+.asm_d611f ; 0x1914a
+ jp $24d7
+
+INCBIN "baserom.gbc",$1914d,$1915c - $1914d
+ViridianCityText4: ; 0x1915c
+ db $08 ; asm
+ ld a, [$d74b]
+ bit 5, a
+ jr nz, .asm_83894 ; 0x19162
+ ld hl, $5175
+ call PrintText
+ jr .asm_700a6 ; 0x1916a
+.asm_83894 ; 0x1916c
+ ld hl, $517a
+ call PrintText
+.asm_700a6 ; 0x19172
+ jp $24d7
+
+INCBIN "baserom.gbc",$19175,$1917f - $19175
+ViridianCityText5: ; 0x1917f
+ db $08 ; asm
+ ld hl, $5191
+ call PrintText
+ call $50cf
+ ld a, $3
+ ld [$d5f4], a
+ jp $24d7
+
+INCBIN "baserom.gbc",$19191,$19196 - $19191
+ViridianCityText6: ; 0x19196
+ db $08 ; asm
+ ld a, [$d74c]
+ bit 1, a
+ jr nz, .asm_4e5a0 ; 0x1919c
+ ld hl, $51ca
+ call PrintText
+ ld bc,(TM_42 << 8) | 1
+ call $3e2e
+ jr nc, .asm_b655e ; 0x191aa
+ ld hl, $51cf
+ call PrintText
+ ld hl, $d74c
+ set 1, [hl]
+ jr .asm_3c73c ; 0x191b7
+.asm_b655e ; 0x191b9
+ ld hl, $51da
+ call PrintText
+ jr .asm_3c73c ; 0x191bf
+.asm_4e5a0 ; 0x191c1
+ ld hl, $51d5
+ call PrintText
+.asm_3c73c ; 0x191c7
+ jp $24d7
+
+INCBIN "baserom.gbc",$191ca,$191df - $191ca
+ViridianCityText7: ; 0x191df
+ db $08 ; asm
+ ld hl, $520a
+ call PrintText
+ ld c, $2
+ call $3739
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr z, .asm_42f68 ; 0x191f2
+ ld hl, $520f
+ call PrintText
+ ld a, $1
+ ld [$d5f4], a
+ jr .asm_2413a ; 0x191ff
+.asm_42f68 ; 0x19201
+ ld hl, $5214
+ call PrintText
+.asm_2413a ; 0x19207
+ jp $24d7
+
+INCBIN "baserom.gbc",$1920a,$14
+
+ViridianCityText8: ; 0x1921e
+ TX_FAR _ViridianCityText8
+ db $50
+
+ViridianCityText9: ; 0x19223
+ TX_FAR _ViridianCityText9
+ db $50
+
+ViridianCityText10: ; 0x19228
+ TX_FAR _ViridianCityText10
+ db $50
+
+ViridianCityText13: ; 0x1922d
+ TX_FAR _ViridianCityText13
+ db $50
+
+INCBIN "baserom.gbc",$19232,$193a7 - $19232
+
+PewterCityText1: ; 0x193a7
+ TX_FAR _PewterCityText1
+ db $50
+
+PewterCityText2: ; 0x193ac
+ TX_FAR _PewterCityText2
+ db $50
+
+PewterCityText3: ; 0x193b1
+ db $08 ; asm
+ ld hl, $53f1
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_f46a9 ; 0x193bf
+ ld hl, $53f6
+ call PrintText
+ jr .asm_ac429 ; 0x193c7
+.asm_f46a9 ; 0x193c9
+ ld hl, $53fb
+ call PrintText
+ xor a
+ ldh [$b3], a
+ ldh [$b4], a
+ ld [$cf10], a
+ ld a, $2
+ ld [$cc57], a
+ ldh a, [$b8]
+ ld [$cc58], a
+ ld a, $3
+ ld [$cf13], a
+ call $32f4
+ ld a, $1
+ ld [$d5f7], a
+.asm_ac429 ; 0x193ee
+ jp $24d7
+
+INCBIN "baserom.gbc",$193f1,$19436 - $193f1
+PewterCityText5: ; 0x19436
+ db $08 ; asm
+ ld hl, $545d
+ call PrintText
+ xor a
+ ldh [$b4], a
+ ld [$cf10], a
+ ld a, $3
+ ld [$cc57], a
+ ldh a, [$b8]
+ ld [$cc58], a
+ ld a, $5
+ ld [$cf13], a
+ call $32f4
+ ld a, $4
+ ld [$d5f7], a
+ jp $24d7
+
+INCBIN "baserom.gbc",$1945d,$a
+
+PewterCityText6: ; 0x19467
+ TX_FAR _PewterCityText6
+ db $50
+
+PewterCityText7: ; 0x1946c
+ TX_FAR _PewterCityText7
+ db $50
+
+PewterCityText10: ; 0x19471
+ TX_FAR _PewterCityText10
+ db $50
+
+PewterCityText11: ; 0x19476
+ TX_FAR _PewterCityText11
+ db $50
+
+PewterCityText12: ; 0x1947b
+ TX_FAR _PewterCityText12
+ db $50
+
+INCBIN "baserom.gbc",$19480,$1964f - $19480
+CeruleanCityText1: ; 0x1964f
+ db $08 ; asm
+ ld a, [$d75a]
+ bit 0, a
+ jr z, .asm_a89f9 ; 0x19655
+ ld hl, $5677
+ call PrintText
+ jr .asm_815c6 ; 0x1965d
+.asm_a89f9 ; 0x1965f
+ ld hl, $5668
+ call PrintText
+.asm_815c6 ; 0x19665
+ jp $24d7
+
+INCBIN "baserom.gbc",$19668,$90
+
+CeruleanCityText3: ; 0x196f8
+ TX_FAR _CeruleanCityText3
+ db $50
+
+CeruleanCityText4: ; 0x196fd
+ TX_FAR _CeruleanCityText4
+ db $50
+
+CeruleanCityText5: ; 0x19702
+ TX_FAR _CeruleanCityText5
+ db $50
+
+CeruleanCityText6: ; 0x19707
+ TX_FAR _CeruleanCityText6
+ db $50
+
+CeruleanCityText7: ; 0x1970c
+ db $08 ; asm
+ ldh a, [$d3]
+ cp $b4
+ jr c, .asm_e9fc9 ; 0x19711
+ ld hl, $5730
+ call PrintText
+ jr .asm_d486e ; 0x19719
+.asm_e9fc9 ; 0x1971b
+ cp $64
+ jr c, .asm_df99b ; 0x1971d
+ ld hl, $5735
+ call PrintText
+ jr .asm_d486e ; 0x19725
+.asm_df99b ; 0x19727
+ ld hl, $573a
+ call PrintText
+.asm_d486e ; 0x1972d
+ jp $24d7
+
+INCBIN "baserom.gbc",$19730,$1973f - $19730
+CeruleanCityText8: ; 0x1973f
+ db $08 ; asm
+ ldh a, [$d3]
+ cp $b4
+ jr c, .asm_e28da ; 0x19744
+ ld hl, $576f
+ call PrintText
+ jr .asm_f2f38 ; 0x1974c
+.asm_e28da ; 0x1974e
+ cp $78
+ jr c, .asm_15d08 ; 0x19750
+ ld hl, $5774
+ call PrintText
+ jr .asm_f2f38 ; 0x19758
+.asm_15d08 ; 0x1975a
+ cp $3c
+ jr c, .asm_d7fea ; 0x1975c
+ ld hl, $5779
+ call PrintText
+ jr .asm_f2f38 ; 0x19764
+.asm_d7fea ; 0x19766
+ ld hl, $577e
+ call PrintText
+.asm_f2f38 ; 0x1976c
+ jp $24d7
+
+INCBIN "baserom.gbc",$1976f,$14
+
+CeruleanCityText9: ; 0x19783
+ TX_FAR _CeruleanCityText9
+ db $50
+
+CeruleanCityText10: ; 0x19788
+ TX_FAR _CeruleanCityText10
+ db $50
+
+CeruleanCityText12: ; 0x1978d
+ TX_FAR _CeruleanCityText12
+ db $50
+
+CeruleanCityText13: ; 0x19792
+ TX_FAR _CeruleanCityText13
+ db $50
+
+CeruleanCityText16: ; 0x19797
+ TX_FAR _CeruleanCityText16
+ db $50
+
+CeruleanCityText17: ; 0x1979c
+ TX_FAR _CeruleanCityText17
+ db $50
+
+INCBIN "baserom.gbc",$197a1,$19889 - $197a1
+
+VermilionCityText1: ; 0x19889
+ TX_FAR _VermilionCityText1
+ db $50
+
+VermilionCityText2: ; 0x1988e
+ db $08 ; asm
+ ld a, [$d803]
+ bit 2, a
+ jr nz, .asm_359bd ; 0x19894
+ ld hl, $58a7
+ call PrintText
+ jr .asm_735d9 ; 0x1989c
+.asm_359bd ; 0x1989e
+ ld hl, $58ac
+ call PrintText
+.asm_735d9 ; 0x198a4
+ jp $24d7
+
+INCBIN "baserom.gbc",$198a7,$198b1 - $198a7
+VermilionCityText3: ; 0x198b1
+ db $08 ; asm
+ ld a, [$d803]
+ bit 2, a
+ jr nz, .asm_3e0e9 ; 0x198b7
+ ld a, [$c109]
+ cp $c
+ jr z, .asm_07af3 ; 0x198be
+ ld hl, $58ff
+ call $34bf
+ jr nc, .asm_57b73 ; 0x198c6
+.asm_07af3 ; 0x198c8
+ ld hl, $5904
+ call PrintText
+ jr .asm_79bd1 ; 0x198ce
+.asm_57b73 ; 0x198d0
+ ld hl, $5909
+ call PrintText
+ ld b, $3f
+ ld a, $1c
+ call Predef
+ ld a, b
+ and a
+ jr nz, .asm_0419b ; 0x198df
+ ld hl, $5913
+ call PrintText
+ jr .asm_79bd1 ; 0x198e7
+.asm_0419b ; 0x198e9
+ ld hl, $590e
+ call PrintText
+ ld a, $4
+ ld [$d62a], a
+ jr .asm_79bd1 ; 0x198f4
+.asm_3e0e9 ; 0x198f6
+ ld hl, $5918
+ call PrintText
+.asm_79bd1 ; 0x198fc
+ jp $24d7
+
+INCBIN "baserom.gbc",$198ff,$1e
+
+VermilionCityText4: ; 0x1991d
+ TX_FAR _VermilionCityText4
+ db $50
+
+VermilionCityText5: ; 0x19922
+ TX_FAR _VermilionCityText5
+ db $08 ; asm
+ ld a, $6a
+ call $13d0
+ call $3748
+ ld hl, $5933
+ ret
+
+;db $17, $6b, $58, $29, $50
+INCBIN "baserom.gbc",$19933,$5
+
+VermilionCityText6: ; 0x19938
+ TX_FAR _VermilionCityText6
+ db $50
+
+VermilionCityText7: ; 0x1993d
+ TX_FAR _VermilionCityText7
+ db $50
+
+VermilionCityText8: ; 0x19942
+ TX_FAR _VermilionCityText8
+ db $50
+
+VermilionCityText11: ; 0x19947
+ TX_FAR _VermilionCityText11
+ db $50
+
+VermilionCityText12: ; 0x1994c
+ TX_FAR _VermilionCityText12
+ db $50
+
+VermilionCityText13: ; 0x19951
+ TX_FAR _VermilionCityText13
+ db $50
+
+INCBIN "baserom.gbc",$19956,$1998a - $19956
+
+CeladonCityText1: ; 0x1998a
+ TX_FAR _CeladonCityText1
+ db $50
+
+CeladonCityText2: ; 0x1998f
+ TX_FAR _CeladonCityText2
+ db $50
+
+CeladonCityText3: ; 0x19994
+ TX_FAR _CeladonCityText3
+ db $50
+
+CeladonCityText4: ; 0x19999
+ TX_FAR _CeladonCityText4
+ db $50
+
+CeladonCityText5: ; 0x1999e
+ db $08 ; asm
+ ld a, [$d777]
+ bit 0, a
+ jr nz, .asm_7053f ; 0x199a4
+ ld hl, $59d2
+ call PrintText
+ ld bc,(TM_41 << 8) | 1
+ call $3e2e
+ jr c, .asm_890ec ; 0x199b2
+ ld hl, $59e2
+ call PrintText
+ jr .asm_c765a ; 0x199ba
+.asm_890ec ; 0x199bc
+ ld hl, $59d7
+ call PrintText
+ ld hl, $d777
+ set 0, [hl]
+ jr .asm_c765a ; 0x199c7
+.asm_7053f ; 0x199c9
+ ld hl, $59dd
+ call PrintText
+.asm_c765a ; 0x199cf
+ jp $24d7
+
+INCBIN "baserom.gbc",$199d2,$15
+
+CeladonCityText6: ; 0x199e7
+ TX_FAR _CeladonCityText6
+ db $50
+
+CeladonCityText7: ; 0x199ec
+ TX_FAR _CeladonCityText7
+ db $08 ; asm
+ ld a, $6f
+ call $13d0
+ jp $24d7
+
+CeladonCityText8: ; 0x199f9
+ TX_FAR _CeladonCityText8
+ db $50
+
+CeladonCityText9: ; 0x199fe
+ TX_FAR _CeladonCityText9
+ db $50
+
+CeladonCityText10: ; 0x19a03
+ TX_FAR _CeladonCityText10
+ db $50
+
+CeladonCityText11: ; 0x19a08
+ TX_FAR _CeladonCityText11
+ db $50
+
+CeladonCityText13: ; 0x19a0d
+ TX_FAR _CeladonCityText13
+ db $50
+
+CeladonCityText14: ; 0x19a12
+ TX_FAR _CeladonCityText14
+ db $50
+
+CeladonCityText15: ; 0x19a17
+ TX_FAR _CeladonCityText15
+ db $50
+
+CeladonCityText16: ; 0x19a1c
+ TX_FAR _CeladonCityText16
+ db $50
+
+CeladonCityText17: ; 0x19a21
+ TX_FAR _CeladonCityText17
+ db $50
+
+CeladonCityText18: ; 0x19a26
+ TX_FAR _CeladonCityText18
+ db $50
+
+INCBIN "baserom.gbc",$19a2b,$19a5e - $19a2b
+
+FuchsiaCityText1: ; 0x19a5e
+ TX_FAR _FuchsiaCityText1
+ db $50
+
+FuchsiaCityText2: ; 0x19a63
+ TX_FAR _FuchsiaCityText2
+ db $50
+
+FuchsiaCityText3: ; 0x19a68
+ TX_FAR _FuchsiaCityText3
+ db $50
+
+FuchsiaCityText4: ; 0x19a6d
+ TX_FAR _FuchsiaCityText4
+ db $50
+
+
+FuchsiaCityText5: ; 0x19a72
+FuchsiaCityText6:
+FuchsiaCityText7:
+FuchsiaCityText8:
+FuchsiaCityText9:
+FuchsiaCityText10: ; 0x19a72
+ TX_FAR _FuchsiaCityText5
+ db $50
+
+FuchsiaCityText11: ; 0x19a77
+ TX_FAR _FuchsiaCityText11
+ db $50
+
+FuchsiaCityText13: ; 0x19a7c
+ TX_FAR _FuchsiaCityText13
+ db $50
+
+FuchsiaCityText16: ; 0x19a81
+ TX_FAR _FuchsiaCityText16
+ db $50
+
+FuchsiaCityText17: ; 0x19a86
+ TX_FAR _FuchsiaCityText17
+ db $50
+
+FuchsiaCityText18: ; 0x19a8b
+ TX_FAR _FuchsiaCityText18
+ db $50
+
+FuchsiaCityText19: ; 0x19a90
+ db $08 ; asm
+ ld hl, $5a9f
+ call PrintText
+ ld a, $28
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$19a9f,$19aa4 - $19a9f
+FuchsiaCityText20: ; 0x19aa4
+ db $08 ; asm
+ ld hl, $5ab3
+ call PrintText
+ ld a, $6
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$19ab3,$19ab8 - $19ab3
+FuchsiaCityText21: ; 0x19ab8
+ db $08 ; asm
+ ld hl, $5ac7
+ call PrintText
+ ld a, $2
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$19ac7,$19acc - $19ac7
+FuchsiaCityText22: ; 0x19acc
+ db $08 ; asm
+ ld hl, $5adb
+ call PrintText
+ ld a, $25
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$19adb,$19ae0 - $19adb
+FuchsiaCityText23: ; 0x19ae0
+ db $08 ; asm
+ ld hl, $5aef
+ call PrintText
+ ld a, $13
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$19aef,$19af4 - $19aef
+FuchsiaCityText24: ; 0x19af4
+ db $08 ; asm
+ ld a, [$d7f6]
+ bit 6, a
+ jr nz, .asm_3b4e8 ; 0x19afa
+ bit 7, a
+ jr nz, .asm_667d5 ; 0x19afe
+ ld hl, $5b2a
+ call PrintText
+ jr .asm_4343f ; 0x19b06
+.asm_3b4e8 ; 0x19b08
+ ld hl, $5b20
+ call PrintText
+ ld a, $62
+ jr .asm_81556 ; 0x19b10
+.asm_667d5 ; 0x19b12
+ ld hl, $5b25
+ call PrintText
+ ld a, $5a
+.asm_81556 ; 0x19b1a
+ call $349b
+.asm_4343f ; 0x19b1d
+ jp $24d7
+
+INCBIN "baserom.gbc",$19b20,$f
BluesHouse_h: ; 0x19b2f
db $08 ; tileset
@@ -5739,7 +6625,7 @@ BluesHouseScript2:
BluesHouseTexts: ; 0x19B57
dw BluesHouseText1,BluesHouseText2,BluesHouseText3
-BluesHouseText1: ; 5B5D 0x19B5D
+BluesHouseText1: ; 5B5D 0x19B5D
db 8
ld a,[$D74A]
bit 0,a
@@ -5829,7 +6715,15 @@ VermilionHouse3_h: ; 0x19c06 to 0x19c12 (12 bytes) (bank=6) (id=196)
dw $5c25 ; objects
-INCBIN "baserom.gbc",$19c12,$19c25 - $19c12
+INCBIN "baserom.gbc",$19c12,$19c17 - $19c12
+VermilionHouse3Text1: ; 0x19c17
+ db $08 ; asm
+ ld a, $4
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
VermilionHouse3Object: ; 0x19c25 (size=26)
db $a ; border tile
@@ -5846,7 +6740,6 @@ VermilionHouse3Object: ; 0x19c25 (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
VermilionHouse3Blocks: ; 16
INCBIN "maps/vermilionhouse3.blk"
@@ -5858,7 +6751,13 @@ IndigoPlateauLobby_h: ; 0x19c4f to 0x19c5b (12 bytes) (bank=6) (id=174)
dw $5c95 ; objects
-INCBIN "baserom.gbc",$19c5b,$19c95 - $19c5b
+INCBIN "baserom.gbc",$19c5b,$19c8a - $19c5b
+
+IndigoPlateauLobbyText1: ; 0x19c8a
+ TX_FAR _IndigoPlateauLobbyText1
+
+INCBIN "baserom.gbc",$19c8a+4,$19c95 - ($19c8a+4)
+
IndigoPlateauLobbyObject: ; 0x19c95 (size=58)
db $0 ; border tile
@@ -5881,7 +6780,6 @@ IndigoPlateauLobbyObject: ; 0x19c95 (size=58)
EVENT_DISP $8, $b, $8
EVENT_DISP $8, $0, $8 ; LORELEIS_ROOM
-
IndigoPlateauLobbyBlocks: ; 48
INCBIN "maps/indigoplateaulobby.blk"
@@ -5893,7 +6791,36 @@ SilphCo4_h: ; 0x19cff to 0x19d0b (12 bytes) (bank=6) (id=209)
dw $5e35 ; objects
-INCBIN "baserom.gbc",$19d0b,$19e35 - $19d0b
+INCBIN "baserom.gbc",$19d0b,$19dd3 - $19d0b
+SilphCo4Text1: ; 0x19dd3
+ db $08 ; asm
+ ld hl, $5de0
+ ld de, $5de5
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$19de0,$19dea - $19de0
+SilphCo4Text2: ; 0x19dea
+ db $08 ; asm
+ ld hl, $5dae
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$19df4,$19e03 - $19df4
+SilphCo4Text3: ; 0x19e03
+ db $08 ; asm
+ ld hl, $5dba
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$19e0d,$19e1c - $19e0d
+SilphCo4Text4: ; 0x19e1c
+ db $08 ; asm
+ ld hl, $5dc6
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$19e26,$f
SilphCo4Object: ; 0x19e35 (size=111)
db $2e ; border tile
@@ -5910,12 +6837,12 @@ SilphCo4Object: ; 0x19e35 (size=111)
db $7 ; people
db SPRITE_LAPRAS_GIVER, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $e + 4, $9 + 4, $ff, $d3, $42, $e6, $1a ; trainer
- db SPRITE_OAK_AIDE, $6 + 4, $e + 4, $ff, $d2, $43, $e4, $5 ; trainer
- db SPRITE_ROCKET, $a + 4, $1a + 4, $ff, $d1, $44, $e6, $1b ; trainer
- db SPRITE_BALL, $9 + 4, $3 + 4, $ff, $ff, $85, $34 ; item
- db SPRITE_BALL, $7 + 4, $4 + 4, $ff, $ff, $86, $36 ; item
- db SPRITE_BALL, $8 + 4, $5 + 4, $ff, $ff, $87, $1d ; item
+ db SPRITE_ROCKET, $e + 4, $9 + 4, $ff, $d3, $42, ROCKET + $C8, $1a ; trainer
+ db SPRITE_OAK_AIDE, $6 + 4, $e + 4, $ff, $d2, $43, SCIENTIST + $C8, $5 ; trainer
+ db SPRITE_ROCKET, $a + 4, $1a + 4, $ff, $d1, $44, ROCKET + $C8, $1b ; trainer
+ db SPRITE_BALL, $9 + 4, $3 + 4, $ff, $ff, $85, FULL_HEAL ; item
+ db SPRITE_BALL, $7 + 4, $4 + 4, $ff, $ff, $86, MAX_REVIVE ; item
+ db SPRITE_BALL, $8 + 4, $5 + 4, $ff, $ff, $87, ESCAPE_ROPE ; item
; warp-to
EVENT_DISP $f, $0, $18 ; SILPH_CO_3F
@@ -5926,7 +6853,6 @@ SilphCo4Object: ; 0x19e35 (size=111)
EVENT_DISP $f, $f, $3 ; SILPH_CO_10F
EVENT_DISP $f, $b, $11 ; SILPH_CO_10F
-
SilphCo4Blocks: ; 135
INCBIN "maps/silphco4.blk"
@@ -5938,7 +6864,56 @@ SilphCo5_h: ; 0x19f2b to 0x19f37 (12 bytes) (bank=6) (id=210)
dw $608d ; objects
-INCBIN "baserom.gbc",$19f37,$1a08d - $19f37
+INCBIN "baserom.gbc",$19f37,$1a003 - $19f37
+SilphCo5Text1: ; 0x1a003
+ db $08 ; asm
+ ld hl, $6010
+ ld de, $6015
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a010,$1a01a - $1a010
+SilphCo5Text2: ; 0x1a01a
+ db $08 ; asm
+ ld hl, $5fd2
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a024,$1a033 - $1a024
+SilphCo5Text3: ; 0x1a033
+ db $08 ; asm
+ ld hl, $5fde
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a03d,$1a04c - $1a03d
+SilphCo5Text4: ; 0x1a04c
+ db $08 ; asm
+ ld hl, $5fea
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a056,$1a065 - $1a056
+SilphCo5Text5: ; 0x1a065
+ db $08 ; asm
+ ld hl, $5ff6
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a06f,$f
+
+SilphCo5Text9: ; 0x1a07e
+ TX_FAR _SilphCo5Text9
+ db $50
+
+SilphCo5Text10: ; 0x1a083
+ TX_FAR _SilphCo5Text10
+ db $50
+
+SilphCo5Text11: ; 0x1a088
+ TX_FAR _SilphCo5Text11
+ db $50
+
SilphCo5Object: ; 0x1a08d (size=137)
db $2e ; border tile
@@ -5955,13 +6930,13 @@ SilphCo5Object: ; 0x1a08d (size=137)
db $b ; people
db SPRITE_LAPRAS_GIVER, $9 + 4, $d + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $10 + 4, $8 + 4, $ff, $d3, $42, $e6, $1c ; trainer
- db SPRITE_OAK_AIDE, $3 + 4, $8 + 4, $ff, $d3, $43, $e4, $6 ; trainer
- db SPRITE_ROCKER, $a + 4, $12 + 4, $ff, $d1, $44, $dd, $1 ; trainer
- db SPRITE_ROCKET, $4 + 4, $1c + 4, $ff, $d1, $45, $e6, $1d ; trainer
- db SPRITE_BALL, $d + 4, $2 + 4, $ff, $ff, $86, $d1 ; item
- db SPRITE_BALL, $6 + 4, $4 + 4, $ff, $ff, $87, $24 ; item
- db SPRITE_BALL, $10 + 4, $15 + 4, $ff, $ff, $88, $30 ; item
+ db SPRITE_ROCKET, $10 + 4, $8 + 4, $ff, $d3, $42, ROCKET + $C8, $1c ; trainer
+ db SPRITE_OAK_AIDE, $3 + 4, $8 + 4, $ff, $d3, $43, SCIENTIST + $C8, $6 ; trainer
+ db SPRITE_ROCKER, $a + 4, $12 + 4, $ff, $d1, $44, JUGGLER + $C8, $1 ; trainer
+ db SPRITE_ROCKET, $4 + 4, $1c + 4, $ff, $d1, $45, ROCKET + $C8, $1d ; trainer
+ db SPRITE_BALL, $d + 4, $2 + 4, $ff, $ff, $86, TM_09 ; item
+ db SPRITE_BALL, $6 + 4, $4 + 4, $ff, $ff, $87, PROTEIN ; item
+ db SPRITE_BALL, $10 + 4, $15 + 4, $ff, $ff, $88, CARD_KEY ; item
db SPRITE_CLIPBOARD, $c + 4, $16 + 4, $ff, $ff, $9 ; person
db SPRITE_CLIPBOARD, $a + 4, $19 + 4, $ff, $ff, $a ; person
db SPRITE_CLIPBOARD, $6 + 4, $18 + 4, $ff, $ff, $b ; person
@@ -5975,7 +6950,6 @@ SilphCo5Object: ; 0x1a08d (size=137)
EVENT_DISP $f, $5, $b ; SILPH_CO_3F
EVENT_DISP $f, $f, $3 ; SILPH_CO_3F
-
SilphCo5Blocks: ; 135
INCBIN "maps/silphco5.blk"
@@ -5987,7 +6961,68 @@ SilphCo6_h: ; 0x1a19d to 0x1a1a9 (12 bytes) (bank=6) (id=211)
dw $62fb ; objects
-INCBIN "baserom.gbc",$1a1a9,$1a2fb - $1a1a9
+INCBIN "baserom.gbc",$1a1a9,$1a23d - $1a1a9
+SilphCo6Text1: ; 0x1a23d
+ db $08 ; asm
+ ld hl, $624a
+ ld de, $624f
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a24a,$1a254 - $1a24a
+SilphCo6Text2: ; 0x1a254
+ db $08 ; asm
+ ld hl, $6261
+ ld de, $6266
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a261,$1a26b - $1a261
+SilphCo6Text3: ; 0x1a26b
+ db $08 ; asm
+ ld hl, $6278
+ ld de, $627d
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a278,$1a282 - $1a278
+SilphCo6Text4: ; 0x1a282
+ db $08 ; asm
+ ld hl, $628f
+ ld de, $6294
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a28f,$1a299 - $1a28f
+SilphCo6Text5: ; 0x1a299
+ db $08 ; asm
+ ld hl, $62a6
+ ld de, $62ab
+ call $622f
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a2a6,$1a2b0 - $1a2a6
+SilphCo6Text6: ; 0x1a2b0
+ db $08 ; asm
+ ld hl, $620a
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a2ba,$1a2c9 - $1a2ba
+SilphCo6Text7: ; 0x1a2c9
+ db $08 ; asm
+ ld hl, $6216
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a2d3,$1a2e2 - $1a2d3
+SilphCo6Text8: ; 0x1a2e2
+ db $08 ; asm
+ ld hl, $6222
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$1a2ec,$f
SilphCo6Object: ; 0x1a2fb (size=112)
db $2e ; border tile
@@ -6006,11 +7041,11 @@ SilphCo6Object: ; 0x1a2fb (size=112)
db SPRITE_ERIKA, $6 + 4, $15 + 4, $ff, $d0, $3 ; person
db SPRITE_ERIKA, $a + 4, $b + 4, $ff, $d3, $4 ; person
db SPRITE_LAPRAS_GIVER, $d + 4, $12 + 4, $ff, $d1, $5 ; person
- db SPRITE_ROCKET, $3 + 4, $11 + 4, $ff, $d3, $46, $e6, $1e ; trainer
- db SPRITE_OAK_AIDE, $8 + 4, $7 + 4, $ff, $d0, $47, $e4, $7 ; trainer
- db SPRITE_ROCKET, $f + 4, $e + 4, $ff, $d2, $48, $e6, $1f ; trainer
- db SPRITE_BALL, $c + 4, $3 + 4, $ff, $ff, $89, $23 ; item
- db SPRITE_BALL, $f + 4, $2 + 4, $ff, $ff, $8a, $2e ; item
+ db SPRITE_ROCKET, $3 + 4, $11 + 4, $ff, $d3, $46, ROCKET + $C8, $1e ; trainer
+ db SPRITE_OAK_AIDE, $8 + 4, $7 + 4, $ff, $d0, $47, SCIENTIST + $C8, $7 ; trainer
+ db SPRITE_ROCKET, $f + 4, $e + 4, $ff, $d2, $48, ROCKET + $C8, $1f ; trainer
+ db SPRITE_BALL, $c + 4, $3 + 4, $ff, $ff, $89, HP_UP ; item
+ db SPRITE_BALL, $f + 4, $2 + 4, $ff, $ff, $8a, X_ACCURACY ; item
; warp-to
EVENT_DISP $d, $0, $10 ; SILPH_CO_7F
@@ -6019,7 +7054,6 @@ SilphCo6Object: ; 0x1a2fb (size=112)
EVENT_DISP $d, $3, $3 ; SILPH_CO_4F
EVENT_DISP $d, $3, $17 ; SILPH_CO_2F
-
SilphCo6Blocks: ; 117
INCBIN "maps/silphco6.blk"
@@ -6079,8 +7113,6 @@ CinnabarIslandObject: ; 0x1c022 (size=71)
EVENT_DISP $a, $b, $b ; CINNABAR_POKECENTER
EVENT_DISP $a, $b, $f ; CINNABAR_MART
-INCBIN "baserom.gbc",$1c069,$0
-
CinnabarIslandBlocks: ; 90
INCBIN "maps/cinnabarisland.blk"
@@ -6128,24 +7160,18 @@ Route1Blocks: ; 180
UndergroundPathEntranceRoute8Blocks: ; 16
INCBIN "maps/undergroundpathentranceroute8.blk"
-INCBIN "baserom.gbc",$1c1c0,$0
-
OaksLabBlocks: ; 30
INCBIN "maps/oakslab.blk"
ViridianHouseBlocks: ; 16
INCBIN "maps/viridianhouse.blk"
-INCBIN "baserom.gbc",$1c1ee,$0
-
SchoolBlocks: ; 16
INCBIN "maps/school.blk"
CeruleanHouseTrashedBlocks: ; 16
INCBIN "maps/ceruleanhousetrashed.blk"
-INCBIN "baserom.gbc",$1c20e,$0
-
DiglettsCaveRoute2Blocks: ; 16
INCBIN "maps/diglettscaveroute2.blk"
@@ -6341,7 +7367,60 @@ MonsterNames: ; 421E
db "WEEPINBELL"
db "VICTREEBEL"
-INCBIN "baserom.gbc",$1C98A,$1CB02-$1C98A
+INCBIN "baserom.gbc",$1c98a,$1ca96 - $1c98a
+
+CinnabarIslandText1: ; 0x1ca96
+ TX_FAR _CinnabarIslandText1
+ db $50
+
+CinnabarIslandText2: ; 0x1ca9b
+ TX_FAR _CinnabarIslandText2
+ db $50
+
+CinnabarIslandText3: ; 0x1caa0
+ TX_FAR _CinnabarIslandText3
+ db $50
+
+CinnabarIslandText6: ; 0x1caa5
+ TX_FAR _CinnabarIslandText6
+ db $50
+
+CinnabarIslandText7: ; 0x1caaa
+ TX_FAR _CinnabarIslandText7
+ db $50
+
+INCBIN "baserom.gbc",$1caaf,$1cab8 - $1caaf
+Route1Text1: ; 0x1cab8
+ db $08 ; asm
+ ld hl, $d7bf
+ bit 0, [hl]
+ set 0, [hl]
+ jr nz, .asm_02840 ; 0x1cac0
+ ld hl, $4ae3
+ call PrintText
+ ld bc, (POTION << 8) | 1
+ call $3e2e
+ jr nc, .asm_a630e ; 0x1cace
+ ld hl, $4ae8
+ jr .asm_46d43 ; 0x1cad3
+.asm_a630e ; 0x1cad5
+ ld hl, $4af3
+ jr .asm_46d43 ; 0x1cad8
+.asm_02840 ; 0x1cada
+ ld hl, $4aee
+.asm_46d43 ; 0x1cadd
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1cae3,$15
+
+Route1Text2: ; 0x1caf8
+ TX_FAR _Route1Text2
+ db $50
+
+Route1Text3: ; 0x1cafd
+ TX_FAR _Route1Text3
+ db $50
OaksLab_h: ; 0x1cb02 to 0x1cb0e (12 bytes) (bank=7) (id=40)
db $05 ; tileset
@@ -6351,7 +7430,133 @@ OaksLab_h: ; 0x1cb02 to 0x1cb0e (12 bytes) (bank=7) (id=40)
dw $540a ; objects
-INCBIN "baserom.gbc",$1cb0e,$1d40a - $1cb0e
+INCBIN "baserom.gbc",$1cb0e,$1d0ce - $1cb0e
+OaksLabText1: ; 0x1d0ce
+ db $08 ; asm
+ ld a, [$d74b]
+ bit 0, a
+ jr nz, .asm_6a7a2 ; 0x1d0d4
+ ld hl, $50f3
+ call PrintText
+ jr .asm_ff2ed ; 0x1d0dc
+.asm_6a7a2 ; 0x1d0de
+ bit 2, a
+ jr nz, .asm_56780 ; 0x1d0e0
+ ld hl, $50f8
+ call PrintText
+ jr .asm_ff2ed ; 0x1d0e8
+.asm_56780 ; 0x1d0ea
+ ld hl, $50fd
+ call PrintText
+.asm_ff2ed ; 0x1d0f0
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d0f3,$1d248 - $1d0f3
+OaksLabText5: ; 0x1d248
+ db $08 ; asm
+ ld a, [$d747]
+ bit 6, a
+ jr nz, .asm_50e81 ; 0x1d24e
+ ld hl, $d2f7
+ ld b, $13
+ call $2b7f
+ ld a, [$d11e]
+ cp $2
+ jr c, .asm_b28b0 ; 0x1d25d
+ ld a, [$d74b]
+ bit 5, a
+ jr z, .asm_b28b0 ; 0x1d264
+.asm_50e81 ; 0x1d266
+ ld hl, $531d
+ call PrintText
+ ld a, $1
+ ld [$cc3c], a
+ ld a, $56
+ call Predef
+ jp $52ed
+.asm_b28b0 ; 0x1d279
+ ld b,POKE_BALL
+ call $3493
+ jr nz, .asm_17c30 ; 0x1d27e
+ ld a, [$d7eb]
+ bit 5, a
+ jr nz, .asm_f1adc ; 0x1d285
+ ld a, [$d74b]
+ bit 5, a
+ jr nz, .asm_333a2 ; 0x1d28c
+ bit 3, a
+ jr nz, .asm_76269 ; 0x1d290
+ ld a, [$d72e]
+ bit 3, a
+ jr nz, .asm_4a5e0 ; 0x1d297
+ ld hl, $52f0
+ call PrintText
+ jr .asm_0f042 ; 0x1d29f
+.asm_4a5e0 ; 0x1d2a1
+ ld hl, $52f5
+ call PrintText
+ jr .asm_0f042 ; 0x1d2a7
+.asm_76269 ; 0x1d2a9
+ ld b,OAKS_PARCEL
+ call $3493
+ jr nz, .asm_a8fcf ; 0x1d2ae
+ ld hl, $52fa
+ call PrintText
+ jr .asm_0f042 ; 0x1d2b6
+.asm_a8fcf ; 0x1d2b8
+ ld hl, $52ff
+ call PrintText
+ call $500a
+ ld a, $f
+ ld [$d5f0], a
+ jr .asm_0f042 ; 0x1d2c6
+.asm_333a2 ; 0x1d2c8
+ ld hl, $5309
+ call PrintText
+ jr .asm_0f042 ; 0x1d2ce
+.asm_f1adc ; 0x1d2d0
+ ld hl, $d74b
+ bit 4, [hl]
+ set 4, [hl]
+ jr nz, .asm_17c30 ; 0x1d2d7
+ ld bc, (POKE_BALL << 8) | 5
+ call $3e2e
+ ld hl, $530e
+ call PrintText
+ jr .asm_0f042 ; 0x1d2e5
+.asm_17c30 ; 0x1d2e7
+ ld hl, $5318
+ call PrintText
+.asm_0f042 ; 0x1d2ed
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d2f0,$1d322 - $1d2f0
+OaksLabText6: ; 0x1d322
+ db $08 ; asm
+ ld hl, $532c
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d32c,$5
+
+OaksLabText8: ; 0x1d331
+ TX_FAR _OaksLabText8
+ db $50
+
+OaksLabText9: ; 0x1d336
+ db $08 ; asm
+ ld hl, $5340
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d340,$1d3fb - $1d340
+OaksLabText10: ; 0x1d3fb
+ db $08 ; asm
+ ld hl, $5405
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d405,$5
OaksLabObject: ; 0x1d40a (size=88)
db $3 ; border tile
@@ -6362,7 +7567,7 @@ OaksLabObject: ; 0x1d40a (size=88)
db $0 ; signs
db $b ; people
- db SPRITE_BLUE, $3 + 4, $4 + 4, $ff, $ff, $41, $e1, $1 ; trainer
+ db SPRITE_BLUE, $3 + 4, $4 + 4, $ff, $ff, $41, SONY1 + $C8, $1 ; trainer
db SPRITE_BALL, $3 + 4, $6 + 4, $ff, $ff, $2 ; person
db SPRITE_BALL, $3 + 4, $7 + 4, $ff, $ff, $3 ; person
db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $4 ; person
@@ -6378,7 +7583,6 @@ OaksLabObject: ; 0x1d40a (size=88)
EVENT_DISP $5, $b, $4
EVENT_DISP $5, $b, $5
-
ViridianMart_h: ; 0x1d462 to 0x1d46e (12 bytes) (bank=7) (id=42)
db $02 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6387,7 +7591,25 @@ ViridianMart_h: ; 0x1d462 to 0x1d46e (12 bytes) (bank=7) (id=42)
dw $550a ; objects
-INCBIN "baserom.gbc",$1d46e,$1d50a - $1d46e
+INCBIN "baserom.gbc",$1d46e,$1d4e0 - $1d46e
+ViridianMartTexts: ; 0x1d4e0
+ dw ViridianMartText1, ViridianMartText2, ViridianMartText3
+INCBIN "baserom.gbc",$1d4e6,$a
+
+ViridianMartText1: ; 0x1d4f0
+ TX_FAR _ViridianMartText1
+ db $50
+
+INCBIN "baserom.gbc",$1d4f5,$1d500 - $1d4f5
+
+ViridianMartText2: ; 0x1d500
+ TX_FAR _ViridianMartText2
+ db $50
+
+ViridianMartText3: ; 0x1d505
+ TX_FAR _ViridianMartText3
+ db $50
+
ViridianMartObject: ; 0x1d50a (size=38)
db $0 ; border tile
@@ -6406,7 +7628,6 @@ ViridianMartObject: ; 0x1d50a (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
ViridianMartBlocks: ; 16
INCBIN "maps/viridianmart.blk"
@@ -6418,7 +7639,18 @@ School_h: ; 0x1d540 to 0x1d54c (12 bytes) (bank=7) (id=43)
dw $555d ; objects
-INCBIN "baserom.gbc",$1d54c,$1d55d - $1d54c
+INCBIN "baserom.gbc",$1d54c,$1d54f - $1d54c
+SchoolTexts: ; 0x1d54f
+ dw SchoolText1, SchoolText2
+
+SchoolText1: ; 0x1d553
+ TX_FAR _SchoolText1
+ db $50
+
+SchoolText2: ; 0x1d558
+ TX_FAR _SchoolText2
+ db $50
+
SchoolObject: ; 0x1d55d (size=32)
db $a ; border tile
@@ -6436,7 +7668,6 @@ SchoolObject: ; 0x1d55d (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
ViridianHouse_h: ; 0x1d57d to 0x1d589 (12 bytes) (bank=7) (id=44)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6445,7 +7676,31 @@ ViridianHouse_h: ; 0x1d57d to 0x1d589 (12 bytes) (bank=7) (id=44)
dw $55bb ; objects
-INCBIN "baserom.gbc",$1d589,$1d5bb - $1d589
+INCBIN "baserom.gbc",$1d589,$1d595 - $1d589
+
+ViridianHouseText1: ; 0x1d595
+ TX_FAR _ViridianHouseText1
+ db $50
+
+ViridianHouseText2: ; 0x1d59a
+ TX_FAR _ViridianHouseText2
+ db $50
+
+ViridianHouseText3: ; 0x1d59f
+ db $08 ; asm
+ ld hl, $55b1
+ call PrintText
+ ld a,SPEAROW
+ call $13d0
+ call $3748
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d5b1,$5
+
+ViridianHouseText4: ; 0x1d5b6
+ TX_FAR _ViridianHouseText4
+ db $50
+
ViridianHouseObject: ; 0x1d5bb (size=44)
db $a ; border tile
@@ -6465,7 +7720,6 @@ ViridianHouseObject: ; 0x1d5bb (size=44)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
PewterHouse1_h: ; 0x1d5e7 to 0x1d5f3 (12 bytes) (bank=7) (id=55)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6474,7 +7728,26 @@ PewterHouse1_h: ; 0x1d5e7 to 0x1d5f3 (12 bytes) (bank=7) (id=55)
dw $5616 ; objects
-INCBIN "baserom.gbc",$1d5f3,$1d616 - $1d5f3
+INCBIN "baserom.gbc",$1d5f3,$1d5f6 - $1d5f3
+PewterHouse1Texts: ; 0x1d5f6
+ dw PewterHouse1Text1, PewterHouse1Text2, PewterHouse1Text3
+
+PewterHouse1Text1: ; 0x1d5fc
+ TX_FAR _PewterHouse1Text1
+ db $08 ; asm
+ ld a, $3
+ call $13d0
+ call $3748
+ jp $24d7
+
+PewterHouse1Text2: ; 0x1d60c
+ TX_FAR _PewterHouse1Text2
+ db $50
+
+PewterHouse1Text3: ; 0x1d611
+ TX_FAR _PewterHouse1Text3
+ db $50
+
PewterHouse1Object: ; 0x1d616 (size=38)
db $a ; border tile
@@ -6493,7 +7766,6 @@ PewterHouse1Object: ; 0x1d616 (size=38)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
PewterHouse2_h: ; 0x1d63c to 0x1d648 (12 bytes) (bank=7) (id=57)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6502,7 +7774,18 @@ PewterHouse2_h: ; 0x1d63c to 0x1d648 (12 bytes) (bank=7) (id=57)
dw $5659 ; objects
-INCBIN "baserom.gbc",$1d648,$1d659 - $1d648
+INCBIN "baserom.gbc",$1d648,$1d64b - $1d648
+PewterHouse2Texts: ; 0x1d64b
+ dw PewterHouse2Text1, PewterHouse2Text2
+
+PewterHouse2Text1: ; 0x1d64f
+ TX_FAR _PewterHouse2Text1
+ db $50
+
+PewterHouse2Text2: ; 0x1d654
+ TX_FAR _PewterHouse2Text2
+ db $50
+
PewterHouse2Object: ; 0x1d659 (size=32)
db $a ; border tile
@@ -6520,7 +7803,6 @@ PewterHouse2Object: ; 0x1d659 (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
CeruleanHouseTrashed_h: ; 0x1d679 to 0x1d685 (12 bytes) (bank=7) (id=62)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6529,7 +7811,33 @@ CeruleanHouseTrashed_h: ; 0x1d679 to 0x1d685 (12 bytes) (bank=7) (id=62)
dw $56bf ; objects
-INCBIN "baserom.gbc",$1d685,$1d6bf - $1d685
+INCBIN "baserom.gbc",$1d685,$1d68f - $1d685
+CeruleanHouseTrashedText1: ; 0x1d68f
+ db $08 ; asm
+ ld b, $e4
+ ld a, $1c
+ call Predef
+ and b
+ jr z, .asm_f8734 ; 0x1d698
+ ld hl, $56b0
+ call PrintText
+ jr .asm_8dfe9 ; 0x1d6a0
+.asm_f8734 ; 0x1d6a2
+ ld hl, $56ab
+ call PrintText
+.asm_8dfe9 ; 0x1d6a8
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d6ab,$a
+
+CeruleanHouseTrashedText2: ; 0x1d6b5
+ TX_FAR _CeruleanHouseTrashedText2
+ db $50
+
+CeruleanHouseTrashedText3: ; 0x1d6ba
+ TX_FAR _CeruleanHouseTrashedText3
+ db $50
+
CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
db $a ; border tile
@@ -6550,7 +7858,6 @@ CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $0, $3
-
CeruleanHouse2_h: ; 0x1d6ea to 0x1d6f6 (12 bytes) (bank=7) (id=63)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6559,7 +7866,20 @@ CeruleanHouse2_h: ; 0x1d6ea to 0x1d6f6 (12 bytes) (bank=7) (id=63)
dw $5710 ; objects
-INCBIN "baserom.gbc",$1d6f6,$1d710 - $1d6f6
+INCBIN "baserom.gbc",$1d6f6,$1d6fd - $1d6f6
+
+CeruleanHouse2Text1: ; 0x1d6fd
+ TX_FAR _CeruleanHouse2Text1
+ db $50
+
+CeruleanHouse2Text2: ; 0x1d702
+ db $08 ; asm
+ ld a, $6
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
CeruleanHouse2Object: ; 0x1d710 (size=32)
db $a ; border tile
@@ -6577,7 +7897,6 @@ CeruleanHouse2Object: ; 0x1d710 (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
BikeShop_h: ; 0x1d730 to 0x1d73c (12 bytes) (bank=7) (id=66)
db $15 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6586,7 +7905,103 @@ BikeShop_h: ; 0x1d730 to 0x1d73c (12 bytes) (bank=7) (id=66)
dw $5866 ; objects
-INCBIN "baserom.gbc",$1d73c,$1d866 - $1d73c
+INCBIN "baserom.gbc",$1d73c,$1d745 - $1d73c
+BikeShopText1: ; 0x1d745
+ db $08 ; asm
+ ld a, [$d75f]
+ bit 0, a
+ jr z, .asm_260d4 ; 0x1d74b
+ ld hl, $582f
+ call PrintText
+ jp $57f5
+.asm_260d4 ; 0x1d756
+ ld b,BIKE_VOUCHER
+ call $3493
+ jr z, .asm_41190 ; 0x1d75b
+ ld hl, $581f
+ call PrintText
+ ld bc,(BICYCLE << 8) | 1
+ call $3e2e
+ jr nc, .asm_d0d90 ; 0x1d769
+ ld a, $2d
+ ldh [$db], a
+ ld b, $5 ; BANK(MyFunction)
+ ld hl, $7f37 ; MyFunction
+ call Bankswitch
+ ld hl, $d75f
+ set 0, [hl]
+ ld hl, $5824
+ call PrintText
+ jr .asm_99ef2 ; 0x1d782
+.asm_d0d90 ; 0x1d784
+ ld hl, $5834
+ call PrintText
+ jr .asm_99ef2 ; 0x1d78a
+.asm_41190 ; 0x1d78c
+ ld hl, $5810
+ call PrintText
+ xor a
+ ld [$cc26], a
+ ld [$cc2a], a
+ ld a, $3
+ ld [$cc29], a
+ ld a, $1
+ ld [$cc28], a
+ ld a, $2
+ ld [$cc24], a
+ ld a, $1
+ ld [$cc25], a
+ ld hl, $d730
+ set 6, [hl]
+ ld hl, $c3a0
+ ld b, $4
+ ld c, $f
+ call $1922
+ call $2429
+ ld hl, $c3ca
+ ld de, $57f8
+ call $1955
+ ld hl, $c3e4
+ ld de, $5807
+ call $1955
+ ld hl, $5815
+ call PrintText
+ call $3abe
+ bit 1, a
+ jr nz, .asm_b7579 ; 0x1d7dc
+ ld hl, $d730
+ res 6, [hl]
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_b7579 ; 0x1d7e7
+ ld hl, $581a
+ call PrintText
+.asm_b7579 ; 0x1d7ef
+ ld hl, $582a
+ call PrintText
+.asm_99ef2 ; 0x1d7f5
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d7f8,$1d839 - $1d7f8
+BikeShopText2: ; 0x1d839
+ db $08 ; asm
+ ld hl, $5843
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d843,$1d848 - $1d843
+BikeShopText3: ; 0x1d848
+ db $08 ; asm
+ ld a, [$d75f]
+ bit 0, a
+ ld hl, $5861
+ jr nz, .asm_34d2d ; 0x1d851
+ ld hl, $585c
+.asm_34d2d ; 0x1d856
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d85c,$a
BikeShopObject: ; 0x1d866 (size=38)
db $e ; border tile
@@ -6605,7 +8020,6 @@ BikeShopObject: ; 0x1d866 (size=38)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
BikeShopBlocks: ; 16
INCBIN "maps/bikeshop.blk"
@@ -6617,7 +8031,84 @@ LavenderHouse1_h: ; 0x1d89c to 0x1d8a8 (12 bytes) (bank=7) (id=149)
dw $596a ; objects
-INCBIN "baserom.gbc",$1d8a8,$1d96a - $1d8a8
+INCBIN "baserom.gbc",$1d8a8,$1d8b8 - $1d8a8
+LavenderHouse1Text1: ; 0x1d8b8
+ db $08 ; asm
+ ld a, [$d7e0]
+ bit 7, a
+ jr nz, .asm_72e5d ; 0x1d8be
+ ld hl, $58d1
+ call PrintText
+ jr .asm_6957f ; 0x1d8c6
+.asm_72e5d ; 0x1d8c8
+ ld hl, $58d6
+ call PrintText
+.asm_6957f ; 0x1d8ce
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d8d1,$1d8db - $1d8d1
+LavenderHouse1Text2: ; 0x1d8db
+ db $08 ; asm
+ ld a, [$d7e0]
+ bit 7, a
+ jr nz, .asm_06470 ; 0x1d8e1
+ ld hl, $58f4
+ call PrintText
+ jr .asm_3d208 ; 0x1d8e9
+.asm_06470 ; 0x1d8eb
+ ld hl, $58f9
+ call PrintText
+.asm_3d208 ; 0x1d8f1
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d8f4,$a
+
+LavenderHouse1Text3: ; 0x1d8fe
+ TX_FAR _LavenderHouse1Text3
+ db $8
+ ld a, $2f
+ call $13d0
+ jp $24d7
+
+LavenderHouse1Text4: ; 0x1d90b
+ TX_FAR _LavenderHouse1Text4
+ db $8
+ ld a, $a7
+ call $13d0
+ jp $24d7
+; 0x1d918
+
+LavenderHouse1Text5: ; 0x1d918
+ db $08 ; asm
+ ld a, [$d76c]
+ bit 0, a
+ jr nz, .asm_15ac2 ; 0x1d91e
+ ld hl, $594c
+ call PrintText
+ ld bc, (POKE_FLUTE << 8) | 1
+ call $3e2e
+ jr nc, .asm_5ce36 ; 0x1d92c
+ ld hl, $5951
+ call PrintText
+ ld hl, $d76c
+ set 0, [hl]
+ jr .asm_da749 ; 0x1d939
+.asm_5ce36 ; 0x1d93b
+ ld hl, $595b
+ call PrintText
+ jr .asm_da749 ; 0x1d941
+.asm_15ac2 ; 0x1d943
+ ld hl, $5960
+ call PrintText
+.asm_da749 ; 0x1d949
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d94c,$19
+
+LavenderHouse1Text6: ; 0x1d965
+ TX_FAR _LavenderHouse1Text6
+ db $50
+
LavenderHouse1Object: ; 0x1d96a (size=56)
db $a ; border tile
@@ -6639,7 +8130,6 @@ LavenderHouse1Object: ; 0x1d96a (size=56)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
LavenderHouse2_h: ; 0x1d9a2 to 0x1d9ae (12 bytes) (bank=7) (id=151)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6648,7 +8138,31 @@ LavenderHouse2_h: ; 0x1d9a2 to 0x1d9ae (12 bytes) (bank=7) (id=151)
dw $59e6 ; objects
-INCBIN "baserom.gbc",$1d9ae,$1d9e6 - $1d9ae
+INCBIN "baserom.gbc",$1d9ae,$1d9b6 - $1d9ae
+
+LavenderHouse2Text1: ; 0x1d9b6
+ TX_FAR _LavenderHouse2Text1
+ db $8
+ ld a, $11
+ call $13d0
+ jp $24d7
+; 0x1d9c3
+
+LavenderHouse2Text2: ; 0x1d9c3
+ db $08 ; asm
+ ld a, [$d7e0]
+ bit 7, a
+ jr nz, .asm_65711 ; 0x1d9c9
+ ld hl, $59dc
+ call PrintText
+ jr .asm_64be1 ; 0x1d9d1
+.asm_65711 ; 0x1d9d3
+ ld hl, $59e1
+ call PrintText
+.asm_64be1 ; 0x1d9d9
+ jp $24d7
+
+INCBIN "baserom.gbc",$1d9dc,$a
LavenderHouse2Object: ; 0x1d9e6 (size=32)
db $a ; border tile
@@ -6666,7 +8180,6 @@ LavenderHouse2Object: ; 0x1d9e6 (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
NameRater_h: ; 0x1da06 to 0x1da12 (12 bytes) (bank=7) (id=229)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6692,7 +8205,6 @@ NameRaterObject: ; 0x1dad6 (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
VermilionHouse1_h: ; 0x1daf0 to 0x1dafc (12 bytes) (bank=7) (id=93)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6701,7 +8213,26 @@ VermilionHouse1_h: ; 0x1daf0 to 0x1dafc (12 bytes) (bank=7) (id=93)
dw $5b20 ; objects
-INCBIN "baserom.gbc",$1dafc,$1db20 - $1dafc
+INCBIN "baserom.gbc",$1dafc,$1db06 - $1dafc
+
+VermilionHouse1Text1: ; 0x1db06
+ TX_FAR _VermilionHouse1Text1
+ db $50
+
+VermilionHouse1Text2: ; 0x1db0b
+ TX_FAR _VermilionHouse1Text2
+ db $08 ; asm
+ ld a, $24
+ call $13d0
+ call $3748
+ jp $24d7
+
+VermilionHouse1Text3: ; 0x1db1b
+ TX_FAR _VermilionHouse1Text3
+ db $50
+
+INCBIN "baserom.gbc", $1db1b + 5, $1db20 - ($1db1b + 5)
+
VermilionHouse1Object: ; 0x1db20 (size=38)
db $a ; border tile
@@ -6720,7 +8251,6 @@ VermilionHouse1Object: ; 0x1db20 (size=38)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
VermilionDock_h: ; 0x1db46 to 0x1db52 (12 bytes) (bank=7) (id=94)
db $0e ; tileset
db $06, $0e ; dimensions (y, x)
@@ -6745,7 +8275,6 @@ VermilionDockObject: ; 0x1dcc6 (size=20)
EVENT_DISP $e, $0, $e
EVENT_DISP $e, $2, $e ; SS_ANNE_1
-
VermilionDockBlocks: ; 84
INCBIN "maps/vermiliondock.blk"
@@ -6757,7 +8286,24 @@ CeladonMansion5_h: ; 0x1dd2e to 0x1dd3a (12 bytes) (bank=7) (id=132)
dw $5d5c ; objects
-INCBIN "baserom.gbc",$1dd3a,$1dd5c - $1dd3a
+INCBIN "baserom.gbc",$1dd3a,$1dd41 - $1dd3a
+
+CeladonMansion5Text1: ; 0x1dd41
+ TX_FAR _CeladonMansion5Text1
+ db $50
+
+CeladonMansion5Text2: ; 0x1dd46
+ db $08 ; asm
+ ld bc,(EEVEE << 8) | 25
+ call GivePokemon
+ jr nc, .asm_24365 ; 0x1dd4d
+ ld a, $45
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+.asm_24365 ; 0x1dd59
+ jp $24d7
+
CeladonMansion5Object: ; 0x1dd5c (size=32)
db $a ; border tile
@@ -6775,7 +8321,6 @@ CeladonMansion5Object: ; 0x1dd5c (size=32)
EVENT_DISP $4, $7, $2 ; CELADON_MANSION_4
EVENT_DISP $4, $7, $3 ; CELADON_MANSION_4
-
FuchsiaMart_h: ; 0x1dd7c to 0x1dd88 (12 bytes) (bank=7) (id=152)
db $02 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6784,7 +8329,16 @@ FuchsiaMart_h: ; 0x1dd7c to 0x1dd88 (12 bytes) (bank=7) (id=152)
dw $5d9b ; objects
-INCBIN "baserom.gbc",$1dd88,$1dd9b - $1dd88
+INCBIN "baserom.gbc",$1dd88,$1dd91 - $1dd88
+
+FuchsiaMartText2: ; 0x1dd91
+ TX_FAR _FuchsiaMartText2
+ db $50
+
+FuchsiaMartText3: ; 0x1dd96
+ TX_FAR _FuchsiaMartText3
+ db $50
+
FuchsiaMartObject: ; 0x1dd9b (size=38)
db $0 ; border tile
@@ -6803,7 +8357,6 @@ FuchsiaMartObject: ; 0x1dd9b (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
FuchsiaMartBlocks: ; 16
INCBIN "maps/fuchsiamart.blk"
@@ -6815,7 +8368,30 @@ SaffronHouse1_h: ; 0x1ddd1 to 0x1dddd (12 bytes) (bank=7) (id=179)
dw $5e04 ; objects
-INCBIN "baserom.gbc",$1dddd,$1de04 - $1dddd
+INCBIN "baserom.gbc",$1dddd,$1dde0 - $1dddd
+SaffronHouse1Texts: ; 0x1dde0
+ dw SaffronHouse1Text1, SaffronHouse1Text2, SaffronHouse1Text3, SaffronHouse1Text4
+
+SaffronHouse1Text1: ; 0x1dde8
+ TX_FAR _SaffronHouse1Text1
+ db $50
+
+SaffronHouse1Text2: ; 0x1dded
+ TX_FAR _SaffronHouse1Text2
+ db $8
+ ld a, $24
+ call $13d0
+ jp $24d7
+; 0x1ddfa
+
+SaffronHouse1Text3: ; 0x1ddfa
+ TX_FAR _SaffronHouse1Text3
+ db $50
+
+SaffronHouse1Text4: ; 0x1ddff
+ TX_FAR _SaffronHouse1Text4
+ db $50
+
SaffronHouse1Object: ; 0x1de04 (size=44)
db $a ; border tile
@@ -6835,7 +8411,6 @@ SaffronHouse1Object: ; 0x1de04 (size=44)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
SaffronHouse2_h: ; 0x1de30 to 0x1de3c (12 bytes) (bank=7) (id=183)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6844,7 +8419,33 @@ SaffronHouse2_h: ; 0x1de30 to 0x1de3c (12 bytes) (bank=7) (id=183)
dw $5e8a ; objects
-INCBIN "baserom.gbc",$1de3c,$1de8a - $1de3c
+INCBIN "baserom.gbc",$1de3c,$1de41 - $1de3c
+SaffronHouse2Text1: ; 0x1de41
+ db $08 ; asm
+ ld a, [$d7bd]
+ bit 0, a
+ jr nz, .asm_9e72b ; 0x1de47
+ ld hl, $5e75
+ call PrintText
+ ld bc,(TM_29 << 8) | 1
+ call $3e2e
+ jr nc, .asm_4b1da ; 0x1de55
+ ld hl, $5e7a
+ call PrintText
+ ld hl, $d7bd
+ set 0, [hl]
+ jr .asm_fe4e1 ; 0x1de62
+.asm_4b1da ; 0x1de64
+ ld hl, $5e85
+ call PrintText
+ jr .asm_fe4e1 ; 0x1de6a
+.asm_9e72b ; 0x1de6c
+ ld hl, $5e80
+ call PrintText
+.asm_fe4e1 ; 0x1de72
+ jp $24d7
+
+INCBIN "baserom.gbc",$1de75,$15
SaffronHouse2Object: ; 0x1de8a (size=26)
db $a ; border tile
@@ -6861,7 +8462,6 @@ SaffronHouse2Object: ; 0x1de8a (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
DiglettsCaveRoute2_h: ; 0x1dea4 to 0x1deb0 (12 bytes) (bank=7) (id=46)
db $11 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6870,7 +8470,14 @@ DiglettsCaveRoute2_h: ; 0x1dea4 to 0x1deb0 (12 bytes) (bank=7) (id=46)
dw $5ebf ; objects
-INCBIN "baserom.gbc",$1deb0,$1debf - $1deb0
+INCBIN "baserom.gbc",$1deb0,$1deb8 - $1deb0
+DiglettsCaveRoute2Texts: ; 0x1deb8
+ dw DiglettsCaveRoute2Text1
+
+DiglettsCaveRoute2Text1: ; 0x1deba
+ TX_FAR _DiglettsCaveRoute2Text1
+ db $50
+
DiglettsCaveRoute2Object: ; 0x1debf (size=34)
db $7d ; border tile
@@ -6889,7 +8496,6 @@ DiglettsCaveRoute2Object: ; 0x1debf (size=34)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $4, $4 ; DIGLETTS_CAVE
-
Route2House_h: ; 0x1dee1 to 0x1deed (12 bytes) (bank=7) (id=48)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -6898,7 +8504,20 @@ Route2House_h: ; 0x1dee1 to 0x1deed (12 bytes) (bank=7) (id=48)
dw $5f07 ; objects
-INCBIN "baserom.gbc",$1deed,$1df07 - $1deed
+INCBIN "baserom.gbc",$1deed,$1def4 - $1deed
+
+Route2HouseText1: ; 0x1def4
+ TX_FAR _Route2HouseText1
+ db $50
+
+Route2HouseText2: ; 0x1def9
+ db $08 ; asm
+ ld a, $1
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
Route2HouseObject: ; 0x1df07 (size=32)
db $a ; border tile
@@ -6916,7 +8535,6 @@ Route2HouseObject: ; 0x1df07 (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
Route5Gate_h: ; 0x1df27 to 0x1df33 (12 bytes) (bank=7) (id=70)
db $0c ; tileset
db $03, $04 ; dimensions (y, x)
@@ -6946,7 +8564,6 @@ Route5GateObject: ; 0x1dffb (size=42)
EVENT_DISP $4, $0, $3
EVENT_DISP $4, $0, $4
-
Route5GateBlocks: ; 12
INCBIN "maps/route5gate.blk"
@@ -6979,7 +8596,6 @@ Route6GateObject: ; 0x1e0be (size=42)
EVENT_DISP $4, $0, $3
EVENT_DISP $4, $0, $4
-
Route6GateBlocks: ; 12
INCBIN "maps/route6gate.blk"
@@ -7012,7 +8628,6 @@ Route7GateObject: ; 0x1e185 (size=42)
EVENT_DISP $3, $3, $5
EVENT_DISP $3, $4, $5
-
Route7GateBlocks: ; 12
INCBIN "maps/route7gate.blk"
@@ -7045,7 +8660,6 @@ Route8GateObject: ; 0x1e247 (size=42)
EVENT_DISP $3, $3, $5
EVENT_DISP $3, $4, $5
-
Route8GateBlocks: ; 12
INCBIN "maps/route8gate.blk"
@@ -7057,7 +8671,16 @@ UndergroundPathEntranceRoute8_h: ; 0x1e27d to 0x1e289 (12 bytes) (bank=7) (id=80
dw $6298 ; objects
-INCBIN "baserom.gbc",$1e289,$1e298 - $1e289
+INCBIN "baserom.gbc",$1e289,$1e291 - $1e289
+UndergroundPathEntranceRoute8Texts: ; 0x1e291
+ dw UndergroundPathEntranceRoute8Text1
+
+;XXX wtf? syntax error
+UndergroundPathEntranceRoute8Text1: ; 0x1e293
+ db $17, $8d, $42, $23
+ ;TX_FAR _UndergroundPathEntranceRoute8Text1
+ db $50
+
UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
db $a ; border tile
@@ -7076,7 +8699,6 @@ UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
EVENT_DISP $4, $7, $4
EVENT_DISP $4, $4, $4 ; UNDERGROUND_PATH_WE
-
PowerPlant_h: ; 0x1e2ba to 0x1e2c6 (12 bytes) (bank=7) (id=83)
db $16 ; tileset
db $12, $14 ; dimensions (y, x)
@@ -7097,27 +8719,26 @@ PowerPlantObject: ; 0x1e3bf (size=135)
db $0 ; signs
db $e ; people
- db SPRITE_BALL, $14 + 4, $9 + 4, $ff, $ff, $41, $6, $28 ; trainer
- db SPRITE_BALL, $12 + 4, $20 + 4, $ff, $ff, $42, $6, $28 ; trainer
- db SPRITE_BALL, $19 + 4, $15 + 4, $ff, $ff, $43, $6, $28 ; trainer
- db SPRITE_BALL, $12 + 4, $19 + 4, $ff, $ff, $44, $8d, $2b ; trainer
- db SPRITE_BALL, $22 + 4, $17 + 4, $ff, $ff, $45, $6, $28 ; trainer
- db SPRITE_BALL, $1c + 4, $1a + 4, $ff, $ff, $46, $6, $28 ; trainer
- db SPRITE_BALL, $e + 4, $15 + 4, $ff, $ff, $47, $8d, $2b ; trainer
- db SPRITE_BALL, $20 + 4, $25 + 4, $ff, $ff, $48, $6, $28 ; trainer
- db SPRITE_BIRD, $9 + 4, $4 + 4, $ff, $d1, $49, $4b, $32 ; trainer
- db SPRITE_BALL, $19 + 4, $7 + 4, $ff, $ff, $8a, $26 ; item
- db SPRITE_BALL, $3 + 4, $1c + 4, $ff, $ff, $8b, $23 ; item
- db SPRITE_BALL, $3 + 4, $22 + 4, $ff, $ff, $8c, $28 ; item
- db SPRITE_BALL, $20 + 4, $1a + 4, $ff, $ff, $8d, $e1 ; item
- db SPRITE_BALL, $20 + 4, $14 + 4, $ff, $ff, $8e, $e9 ; item
+ db SPRITE_BALL, $14 + 4, $9 + 4, $ff, $ff, $41, VOLTORB, $28 ; trainer
+ db SPRITE_BALL, $12 + 4, $20 + 4, $ff, $ff, $42, VOLTORB, $28 ; trainer
+ db SPRITE_BALL, $19 + 4, $15 + 4, $ff, $ff, $43, VOLTORB, $28 ; trainer
+ db SPRITE_BALL, $12 + 4, $19 + 4, $ff, $ff, $44, ELECTRODE, $2b ; trainer
+ db SPRITE_BALL, $22 + 4, $17 + 4, $ff, $ff, $45, VOLTORB, $28 ; trainer
+ db SPRITE_BALL, $1c + 4, $1a + 4, $ff, $ff, $46, VOLTORB, $28 ; trainer
+ db SPRITE_BALL, $e + 4, $15 + 4, $ff, $ff, $47, ELECTRODE, $2b ; trainer
+ db SPRITE_BALL, $20 + 4, $25 + 4, $ff, $ff, $48, VOLTORB, $28 ; trainer
+ db SPRITE_BIRD, $9 + 4, $4 + 4, $ff, $d1, $49, ZAPDOS, $32 ; trainer
+ db SPRITE_BALL, $19 + 4, $7 + 4, $ff, $ff, $8a, CARBOS ; item
+ db SPRITE_BALL, $3 + 4, $1c + 4, $ff, $ff, $8b, HP_UP ; item
+ db SPRITE_BALL, $3 + 4, $22 + 4, $ff, $ff, $8c, RARE_CANDY ; item
+ db SPRITE_BALL, $20 + 4, $1a + 4, $ff, $ff, $8d, TM_25 ; item
+ db SPRITE_BALL, $20 + 4, $14 + 4, $ff, $ff, $8e, TM_33 ; item
; warp-to
EVENT_DISP $14, $23, $4
EVENT_DISP $14, $23, $5
EVENT_DISP $14, $b, $0
-
PowerPlantBlocks: ; 360
INCBIN "maps/powerplant.blk"
@@ -7129,7 +8750,16 @@ DiglettsCaveEntranceRoute11_h: ; 0x1e5ae to 0x1e5ba (12 bytes) (bank=7) (id=85)
dw $65ca ; objects
-INCBIN "baserom.gbc",$1e5ba,$1e5ca - $1e5ba
+INCBIN "baserom.gbc",$1e5ba,$1e5c3 - $1e5ba
+DiglettsCaveEntranceRoute11Texts: ; 0x1e5c3
+ dw DiglettsCaveEntranceRoute11Text1
+
+; XXX wtf? syntax error
+DiglettsCaveEntranceRoute11Text1: ; 0x1e5c5
+ db $17, $f9, $47, $23
+ ;TX_FAR _DiglettsCaveEntranceRoute11Text1
+ db $50
+
DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
db $7d ; border tile
@@ -7148,7 +8778,6 @@ DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $4, $4 ; DIGLETTS_CAVE
-
Route16House_h: ; 0x1e5ec to 0x1e5f8 (12 bytes) (bank=7) (id=188)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -7157,7 +8786,39 @@ Route16House_h: ; 0x1e5ec to 0x1e5f8 (12 bytes) (bank=7) (id=188)
dw $6657 ; objects
-INCBIN "baserom.gbc",$1e5f8,$1e657 - $1e5f8
+INCBIN "baserom.gbc",$1e5f8,$1e5ff - $1e5f8
+Route16HouseText1: ; 0x1e5ff
+ db $08 ; asm
+ ld a, [$d7e0]
+ bit 6, a
+ ld hl, $6636
+ jr nz, .asm_13616 ; 0x1e608
+ ld hl, $662b
+ call PrintText
+ ld bc,(HM_02 << 8) | 1
+ call $3e2e
+ jr nc, .asm_d3ee3 ; 0x1e616
+ ld hl, $d7e0
+ set 6, [hl]
+ ld hl, $6630
+ jr .asm_13616 ; 0x1e620
+.asm_d3ee3 ; 0x1e622
+ ld hl, $663b
+.asm_13616 ; 0x1e625
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1e62b,$1e640 - $1e62b
+Route16HouseText2: ; 0x1e640
+ db $08 ; asm
+ ld hl, $6652
+ call PrintText
+ ld a,FEAROW
+ call $13d0
+ call $3748
+ jp $24d7
+
+INCBIN "baserom.gbc",$1e652,$5
Route16HouseObject: ; 0x1e657 (size=32)
db $a ; border tile
@@ -7175,7 +8836,6 @@ Route16HouseObject: ; 0x1e657 (size=32)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
Route22Gate_h: ; 0x1e677 to 0x1e683 (12 bytes) (bank=7) (id=193)
db $0c ; tileset
db $04, $05 ; dimensions (y, x)
@@ -7205,7 +8865,6 @@ Route22GateObject: ; 0x1e720 (size=42)
EVENT_DISP $5, $0, $4
EVENT_DISP $5, $0, $5
-
Route22GateBlocks: ; 20
INCBIN "maps/route22gate.blk"
@@ -7217,7 +8876,47 @@ BillsHouse_h: ; 0x1e75e to 0x1e76a (12 bytes) (bank=7) (id=88)
dw $68df ; objects
-INCBIN "baserom.gbc",$1e76a,$1e8df - $1e76a
+INCBIN "baserom.gbc",$1e76a,$1e874 - $1e76a
+BillsHouseText2: ; 0x1e874
+ db $08 ; asm
+ ld a, [$d7f2]
+ bit 4, a
+ jr nz, .asm_5491f ; 0x1e87a
+ ld hl, $68ba
+ call PrintText
+ ld bc,(S_S__TICKET << 8) | 1
+ call $3e2e
+ jr nc, .asm_18a67 ; 0x1e888
+ ld hl, $68bf
+ call PrintText
+ ld hl, $d7f2
+ set 4, [hl]
+ ld a, $7
+ ld [$cc4d], a
+ ld a, $15
+ call Predef
+ ld a, $9
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+.asm_5491f ; 0x1e8a9
+ ld hl, $68cb
+ call PrintText
+ jr .asm_bd408 ; 0x1e8af
+.asm_18a67 ; 0x1e8b1
+ ld hl, $68c6
+ call PrintText
+.asm_bd408 ; 0x1e8b7
+ jp $24d7
+
+INCBIN "baserom.gbc",$1e8ba,$1e8d0 - $1e8ba
+BillsHouseText3: ; 0x1e8d0
+ db $08 ; asm
+ ld hl, $68da
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$1e8da,$5
BillsHouseObject: ; 0x1e8df (size=38)
db $d ; border tile
@@ -8491,7 +10190,7 @@ ReadTrainer: ; 5C53
ld a,1
ld [$CC49],a
push hl
- call $3927
+ call AddPokemonToParty
pop hl
jr .LoopTrainerData\@
.SpecialTrainer\@
@@ -8508,7 +10207,7 @@ ReadTrainer: ; 5C53
ld a,1
ld [$CC49],a
push hl
- call $3927
+ call AddPokemonToParty
pop hl
jr .SpecialTrainer\@
.AddLoneAttack\@
@@ -8874,19 +10573,19 @@ BeautyData:
db 29,STARYU,STARYU,STARYU,0
db 30,SEADRA,HORSEA,SEADRA,0
PsychicData:
- db 31,KADABRA,SLOWPOKE,MR__MIME,KADABRA,0
- db 34,MR__MIME,KADABRA,0
+ db 31,KADABRA,SLOWPOKE,MR_MIME,KADABRA,0
+ db 34,MR_MIME,KADABRA,0
db 33,SLOWPOKE,SLOWPOKE,SLOWBRO,0
db 38,SLOWBRO,0
RockerData:
db 20,VOLTORB,MAGNEMITE,VOLTORB,0
db 29,VOLTORB,ELECTRODE,0
JugglerData:
- db 29,KADABRA,MR__MIME,0
+ db 29,KADABRA,MR_MIME,0
db 41,DROWZEE,HYPNO,KADABRA,KADABRA,0
db 31,DROWZEE,DROWZEE,KADABRA,DROWZEE,0
db 34,DROWZEE,HYPNO,0
- db 48,MR__MIME,0
+ db 48,MR_MIME,0
db 33,HYPNO,0
db 38,HYPNO,0
db 34,DROWZEE,KADABRA,0
@@ -9036,7 +10735,7 @@ KogaData:
BlaineData:
db $FF,42,GROWLITHE,40,PONYTA,42,RAPIDASH,47,ARCANINE,0
SabrinaData:
- db $FF,38,KADABRA,37,MR__MIME,38,VENOMOTH,43,ALAKAZAM,0
+ db $FF,38,KADABRA,37,MR_MIME,38,VENOMOTH,43,ALAKAZAM,0
GentlemanData:
db 18,GROWLITHE,GROWLITHE,0
db 19,NIDORAN_M,NIDORAN_F,0
@@ -9603,7 +11302,6 @@ AIBattleUseItemText:
TX_FAR _AIBattleUseItemText
db "@"
-
INCBIN "baserom.gbc",$3A849,$3B05C - $3A849
EvosAttacksPointerTable: ; 705C
@@ -10268,7 +11966,7 @@ Mon067_EvosAttacks:
db 52,SUBMISSION
db 0
Mon122_EvosAttacks:
-;MR__MIME
+;MR_MIME
;Evolutions
db 0
;Learnset
@@ -12093,9 +13791,9 @@ INCBIN "baserom.gbc",$3CA83,$3D6A9 - $3CA83
.next8\@
call $60DF
call $5C5C
- ld hl,$7B7B
- ld b,$B
- call $35D6
+ ld hl,$7B7B ; MyFunction
+ ld b,$B ; BANK(MyFunction)
+ call Bankswitch
ld a,1
ld [$CCF4],a
.next9\@
@@ -13922,7 +15620,7 @@ PokedexOrder: ; 5024
db DEX_GRAVELER
db DEX_CHANSEY
db DEX_MACHOKE
- db DEX_MR__MIME
+ db DEX_MR_MIME
db DEX_HITMONLEE
db DEX_HITMONCHAN
db DEX_ARBOK
@@ -14073,7 +15771,6 @@ PokedexOrder: ; 5024
db DEX_VICTREEBEL
INCBIN "baserom.gbc",$410E2,$2769 - $10E2
-
; XXX what do these do
FuncCoord 5,0
ld hl,Coord
@@ -14133,10 +15830,10 @@ OTString67E5: ; 67E5
SECTION "bank11",DATA,BANK[$11]
-LavendarTown_h: ; 0x44000 to 0x4402d (45 bytes) (bank=11) (id=4)
+LavenderTown_h: ; 0x44000 to 0x4402d (45 bytes) (bank=11) (id=4)
db $00 ; tileset
db $09, $0a ; dimensions (y, x)
- dw LavendarTownBlocks, $410e, $410b ; blocks, texts, scripts
+ dw LavenderTownBlocks, $410e, $410b ; blocks, texts, scripts
db NORTH | SOUTH | WEST ; connections
; connections data
@@ -14163,7 +15860,7 @@ LavendarTown_h: ; 0x44000 to 0x4402d (45 bytes) (bank=11) (id=4)
dw $402d ; objects
-LavendarTownObject: ; 0x4402d (size=88)
+LavenderTownObject: ; 0x4402d (size=88)
db $2c ; border tile
db $6 ; warps
@@ -14175,12 +15872,12 @@ LavendarTownObject: ; 0x4402d (size=88)
db $d, $7, $0, NAME_RATERS_HOUSE
db $6 ; signs
- db $9, $b, $4 ; LavendarTownText4
- db $3, $9, $5 ; LavendarTownText5
- db $d, $10, $6 ; LavendarTownText6
- db $5, $4, $7 ; LavendarTownText7
- db $9, $5, $8 ; LavendarTownText8
- db $7, $11, $9 ; LavendarTownText9
+ db $9, $b, $4 ; LavenderTownText4
+ db $3, $9, $5 ; LavenderTownText5
+ db $d, $10, $6 ; LavenderTownText6
+ db $5, $4, $7 ; LavenderTownText7
+ db $9, $5, $8 ; LavenderTownText8
+ db $7, $11, $9 ; LavenderTownText9
db $3 ; people
db SPRITE_LITTLE_GIRL, $9 + 4, $f + 4, $fe, $0, $1 ; person
@@ -14195,10 +15892,8 @@ LavendarTownObject: ; 0x4402d (size=88)
EVENT_DISP $a, $d, $3 ; LAVENDER_HOUSE_2
EVENT_DISP $a, $d, $7 ; NAME_RATERS_HOUSE
-INCBIN "baserom.gbc",$44085,$0
-
-LavendarTownBlocks: ; 90
- INCBIN "maps/lavendartown.blk"
+LavenderTownBlocks: ; 90
+ INCBIN "maps/lavendertown.blk"
ViridianPokeCenterBlocks: ; 28
INCBIN "maps/viridianpokecenter.blk"
@@ -14206,7 +15901,48 @@ ViridianPokeCenterBlocks: ; 28
SafariZoneRestHouse1Blocks: ; 16
INCBIN "maps/safarizoneresthouse1.blk"
-INCBIN "baserom.gbc",$4410b,$146
+INCBIN "baserom.gbc",$4410b,$44120 - $4410b
+LavenderTownText1: ; 0x44120
+ db $08 ; asm
+ ld hl, $413c
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ ld hl, $4146
+ jr nz, .asm_40831 ; 0x44131
+ ld hl, $4141
+.asm_40831 ; 0x44136
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$4413c,$f
+
+LavenderTownText2: ; 0x4414b
+ TX_FAR _LavenderTownText2
+ db $50
+
+LavenderTownText3: ; 0x44150
+ TX_FAR _LavenderTownText3
+ db $50
+
+LavenderTownText4: ; 0x44155
+ TX_FAR _LavenderTownText4
+ db $50
+
+LavenderTownText5: ; 0x4415a
+ TX_FAR _LavenderTownText5
+ db $50
+
+LavenderTownText8: ; 0x4415f
+ TX_FAR _LavenderTownText8
+ db $50
+
+LavenderTownText9: ; 0x44164
+ TX_FAR _LavenderTownText9
+ db $50
+
+INCBIN "baserom.gbc",$44169,$e8
ViridianPokecenter_h: ; 0x44251 to 0x4425d (12 bytes) (bank=11) (id=41)
db $06 ; tileset
@@ -14216,7 +15952,21 @@ ViridianPokecenter_h: ; 0x44251 to 0x4425d (12 bytes) (bank=11) (id=41)
dw $4277 ; objects
-INCBIN "baserom.gbc",$4425d,$44277 - $4425d
+INCBIN "baserom.gbc",$4425d,$4426b - $4425d
+
+ViridianPokeCenterText1: ; 0x4426b
+ db $ff
+ TX_FAR _ViridianPokeCenterText1
+
+INCBIN "baserom.gbc",$44270,$44271 - $44270
+
+ViridianPokeCenterText3: ; 0x44271
+ TX_FAR _ViridianPokeCenterText3
+ db $50
+
+;XXX wtf?
+db $f6
+
ViridianPokeCenterObject: ; 0x44277 (size=44)
db $0 ; border tile
@@ -14236,7 +15986,6 @@ ViridianPokeCenterObject: ; 0x44277 (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
Mansion1_h: ; 0x442a3 to 0x442af (12 bytes) (bank=11) (id=165)
db $16 ; tileset
db $0e, $0f ; dimensions (y, x)
@@ -14245,7 +15994,14 @@ Mansion1_h: ; 0x442a3 to 0x442af (12 bytes) (bank=11) (id=165)
dw $43a4 ; objects
-INCBIN "baserom.gbc",$442af,$443a4 - $442af
+INCBIN "baserom.gbc",$442af,$44341 - $442af
+Mansion1Text1: ; 0x44341
+ db $08 ; asm
+ ld hl, $4334
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$4434b,$59
Mansion1Object: ; 0x443a4 (size=90)
db $2e ; border tile
@@ -14262,9 +16018,9 @@ Mansion1Object: ; 0x443a4 (size=90)
db $0 ; signs
db $3 ; people
- db SPRITE_OAK_AIDE, $11 + 4, $11 + 4, $ff, $d2, $41, $e4, $4 ; trainer
- db SPRITE_BALL, $3 + 4, $e + 4, $ff, $ff, $82, $1d ; item
- db SPRITE_BALL, $15 + 4, $12 + 4, $ff, $ff, $83, $26 ; item
+ db SPRITE_OAK_AIDE, $11 + 4, $11 + 4, $ff, $d2, $41, SCIENTIST + $C8, $4 ; trainer
+ db SPRITE_BALL, $3 + 4, $e + 4, $ff, $ff, $82, ESCAPE_ROPE ; item
+ db SPRITE_BALL, $15 + 4, $12 + 4, $ff, $ff, $83, CARBOS ; item
; warp-to
EVENT_DISP $f, $1b, $4
@@ -14286,7 +16042,51 @@ RockTunnel1_h: ; 0x444d0 to 0x444dc (12 bytes) (bank=11) (id=82)
dw $45f6 ; objects
-INCBIN "baserom.gbc",$444dc,$445f6 - $444dc
+INCBIN "baserom.gbc",$444dc,$4455a - $444dc
+
+RockTunnel1Text1: ; 0x4455a
+ db $8
+ ld hl, $4505
+ jr asm_0c916 ; 0x4455e $22
+
+RockTunnel1Text2:
+ db $8
+ ld hl, $4511
+ jr asm_0c916 ; 0x44564 $1c
+
+RockTunnel1Text3:
+ db $8
+ ld hl, $451d
+ jr asm_0c916 ; 0x4456a $16
+
+RockTunnel1Text4:
+ db $8
+ ld hl, $4529
+ jr asm_0c916 ; 0x44570 $10
+
+RockTunnel1Text5:
+ db $8
+ ld hl, $4535
+ jr asm_0c916 ; 0x44576 $a
+
+RockTunnel1Text6:
+ db $8
+ ld hl, $4541
+ jr asm_0c916 ; 0x4457c $4
+
+RockTunnel1Text7:
+ db $8
+ ld hl, $454d
+asm_0c916: ; 0x44582
+ call $31cc
+ jp $24d7
+
+INCBIN "baserom.gbc",$44588,$69
+
+RockTunnel1Text8: ; 0x445f1
+ TX_FAR _RockTunnel1Text8
+ db $50
+
RockTunnel1Object: ; 0x445f6 (size=127)
db $3 ; border tile
@@ -14304,13 +16104,13 @@ RockTunnel1Object: ; 0x445f6 (size=127)
db $1d, $b, $8 ; RockTunnel1Text8
db $7 ; people
- db SPRITE_HIKER, $5 + 4, $7 + 4, $ff, $d0, $41, $d1, $c ; trainer
- db SPRITE_HIKER, $10 + 4, $5 + 4, $ff, $d0, $42, $d1, $d ; trainer
- db SPRITE_HIKER, $f + 4, $11 + 4, $ff, $d2, $43, $d1, $e ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $17 + 4, $ff, $d2, $44, $cf, $7 ; trainer
- db SPRITE_LASS, $15 + 4, $25 + 4, $ff, $d2, $45, $ce, $11 ; trainer
- db SPRITE_LASS, $18 + 4, $16 + 4, $ff, $d0, $46, $ce, $12 ; trainer
- db SPRITE_LASS, $18 + 4, $20 + 4, $ff, $d3, $47, $ce, $13 ; trainer
+ db SPRITE_HIKER, $5 + 4, $7 + 4, $ff, $d0, $41, HIKER + $C8, $c ; trainer
+ db SPRITE_HIKER, $10 + 4, $5 + 4, $ff, $d0, $42, HIKER + $C8, $d ; trainer
+ db SPRITE_HIKER, $f + 4, $11 + 4, $ff, $d2, $43, HIKER + $C8, $e ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $17 + 4, $ff, $d2, $44, POKEMANIAC + $C8, $7 ; trainer
+ db SPRITE_LASS, $15 + 4, $25 + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $11 ; trainer
+ db SPRITE_LASS, $18 + 4, $16 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $12 ; trainer
+ db SPRITE_LASS, $18 + 4, $20 + 4, $ff, $d3, $47, JR__TRAINER_F + $C8, $13 ; trainer
; warp-to
EVENT_DISP $14, $3, $f
@@ -14322,7 +16122,6 @@ RockTunnel1Object: ; 0x445f6 (size=127)
EVENT_DISP $14, $b, $11 ; ROCK_TUNNEL_2
EVENT_DISP $14, $11, $25 ; ROCK_TUNNEL_2
-
RockTunnel1Blocks: ; 360
INCBIN "maps/rocktunnel1.blk"
@@ -14334,7 +16133,9 @@ SeafoamIslands1_h: ; 0x447dd to 0x447e9 (12 bytes) (bank=11) (id=192)
dw $484f ; objects
-INCBIN "baserom.gbc",$447e9,$4484f - $447e9
+INCBIN "baserom.gbc",$447e9,$4484b - $447e9
+SeafoamIslands1Texts: ; 0x4484b
+ dw SeafoamIslands1Text1, SeafoamIslands1Text2
SeafoamIslands1Object: ; 0x4484f (size=72)
db $7d ; border tile
@@ -14392,7 +16193,6 @@ SSAnne3Object: ; 0x4493c (size=26)
EVENT_DISP $a, $3, $0 ; SS_ANNE_5
EVENT_DISP $a, $3, $13 ; SS_ANNE_2
-
SSAnne3Blocks: ; 30
INCBIN "maps/ssanne3.blk"
@@ -14404,7 +16204,32 @@ VictoryRoad3_h: ; 0x44974 to 0x44980 (12 bytes) (bank=11) (id=198)
dw $4acd ; objects
-INCBIN "baserom.gbc",$44980,$44acd - $44980
+INCBIN "baserom.gbc",$44980,$44a69 - $44980
+VictoryRoad3Text1: ; 0x44a69
+ db $08 ; asm
+ ld hl, $4a38
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad3Text2: ; 0x44a73
+ db $08 ; asm
+ ld hl, $4a44
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad3Text3: ; 0x44a7d
+ db $08 ; asm
+ ld hl, $4a50
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad3Text4: ; 0x44a87
+ db $08 ; asm
+ ld hl, $4a5c
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$44a91,$3c
VictoryRoad3Object: ; 0x44acd (size=106)
db $7d ; border tile
@@ -14417,12 +16242,12 @@ VictoryRoad3Object: ; 0x44acd (size=106)
db $0 ; signs
db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $1c + 4, $ff, $d2, $41, $e7, $2 ; trainer
- db SPRITE_LASS, $d + 4, $7 + 4, $ff, $d3, $42, $e8, $2 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $e + 4, $6 + 4, $ff, $d2, $43, $e7, $3 ; trainer
- db SPRITE_LASS, $3 + 4, $d + 4, $ff, $d3, $44, $e8, $3 ; trainer
- db SPRITE_BALL, $5 + 4, $1a + 4, $ff, $ff, $85, $36 ; item
- db SPRITE_BALL, $7 + 4, $7 + 4, $ff, $ff, $86, $f7 ; item
+ db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $1c + 4, $ff, $d2, $41, COOLTRAINER_M + $C8, $2 ; trainer
+ db SPRITE_LASS, $d + 4, $7 + 4, $ff, $d3, $42, COOLTRAINER_F + $C8, $2 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $e + 4, $6 + 4, $ff, $d2, $43, COOLTRAINER_M + $C8, $3 ; trainer
+ db SPRITE_LASS, $3 + 4, $d + 4, $ff, $d3, $44, COOLTRAINER_F + $C8, $3 ; trainer
+ db SPRITE_BALL, $5 + 4, $1a + 4, $ff, $ff, $85, MAX_REVIVE ; item
+ db SPRITE_BALL, $7 + 4, $7 + 4, $ff, $ff, $86, TM_47 ; item
db SPRITE_BOULDER, $3 + 4, $16 + 4, $ff, $10, $7 ; person
db SPRITE_BOULDER, $c + 4, $d + 4, $ff, $10, $8 ; person
db SPRITE_BOULDER, $a + 4, $18 + 4, $ff, $10, $9 ; person
@@ -14434,7 +16259,6 @@ VictoryRoad3Object: ; 0x44acd (size=106)
EVENT_DISP $f, $f, $1b ; VICTORY_ROAD_2
EVENT_DISP $f, $0, $2 ; VICTORY_ROAD_2
-
VictoryRoad3Blocks: ; 135
INCBIN "maps/victoryroad3.blk"
@@ -14446,7 +16270,38 @@ RocketHideout1_h: ; 0x44bbe to 0x44bca (12 bytes) (bank=11) (id=199)
dw $4ce7 ; objects
-INCBIN "baserom.gbc",$44bca,$44ce7 - $44bca
+INCBIN "baserom.gbc",$44bca,$44c5f - $44bca
+RocketHideout1Text1: ; 0x44c5f
+ db $08 ; asm
+ ld hl, $4c22
+ call LoadTrainerHeader
+ jp $24d7
+
+RocketHideout1Text2: ; 0x44c69
+ db $08 ; asm
+ ld hl, $4c2e
+ call LoadTrainerHeader
+ jp $24d7
+
+RocketHideout1Text3: ; 0x44c73
+ db $08 ; asm
+ ld hl, $4c3a
+ call LoadTrainerHeader
+ jp $24d7
+
+RocketHideout1Text4: ; 0x44c7d
+ db $08 ; asm
+ ld hl, $4c46
+ call LoadTrainerHeader
+ jp $24d7
+
+RocketHideout1Text5: ; 0x44c87
+ db $08 ; asm
+ ld hl, $4c52
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$44c91,$56
RocketHideout1Object: ; 0x44ce7 (size=98)
db $2e ; border tile
@@ -14460,13 +16315,13 @@ RocketHideout1Object: ; 0x44ce7 (size=98)
db $0 ; signs
db $7 ; people
- db SPRITE_ROCKET, $8 + 4, $1a + 4, $ff, $d2, $41, $e6, $8 ; trainer
- db SPRITE_ROCKET, $6 + 4, $c + 4, $ff, $d3, $42, $e6, $9 ; trainer
- db SPRITE_ROCKET, $11 + 4, $12 + 4, $ff, $d0, $43, $e6, $a ; trainer
- db SPRITE_ROCKET, $19 + 4, $f + 4, $ff, $d3, $44, $e6, $b ; trainer
- db SPRITE_ROCKET, $12 + 4, $1c + 4, $ff, $d2, $45, $e6, $c ; trainer
- db SPRITE_BALL, $e + 4, $b + 4, $ff, $ff, $86, $1d ; item
- db SPRITE_BALL, $11 + 4, $9 + 4, $ff, $ff, $87, $12 ; item
+ db SPRITE_ROCKET, $8 + 4, $1a + 4, $ff, $d2, $41, ROCKET + $C8, $8 ; trainer
+ db SPRITE_ROCKET, $6 + 4, $c + 4, $ff, $d3, $42, ROCKET + $C8, $9 ; trainer
+ db SPRITE_ROCKET, $11 + 4, $12 + 4, $ff, $d0, $43, ROCKET + $C8, $a ; trainer
+ db SPRITE_ROCKET, $19 + 4, $f + 4, $ff, $d3, $44, ROCKET + $C8, $b ; trainer
+ db SPRITE_ROCKET, $12 + 4, $1c + 4, $ff, $d2, $45, ROCKET + $C8, $c ; trainer
+ db SPRITE_BALL, $e + 4, $b + 4, $ff, $ff, $86, ESCAPE_ROPE ; item
+ db SPRITE_BALL, $11 + 4, $9 + 4, $ff, $ff, $87, HYPER_POTION ; item
; warp-to
EVENT_DISP $f, $2, $17 ; ROCKET_HIDEOUT_2
@@ -14475,7 +16330,6 @@ RocketHideout1Object: ; 0x44ce7 (size=98)
EVENT_DISP $f, $18, $15 ; ROCKET_HIDEOUT_2
EVENT_DISP $f, $13, $19 ; ROCKET_HIDEOUT_ELEVATOR
-
RocketHideout1Blocks: ; 210
INCBIN "maps/rockethideout1.blk"
@@ -14487,7 +16341,14 @@ RocketHideout2_h: ; 0x44e1b to 0x44e27 (12 bytes) (bank=11) (id=200)
dw $50f7 ; objects
-INCBIN "baserom.gbc",$44e27,$450f7 - $44e27
+INCBIN "baserom.gbc",$44e27,$450de - $44e27
+RocketHideout2Text1: ; 0x450de
+ db $08 ; asm
+ ld hl, $50d1
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$450e8,$f
RocketHideout2Object: ; 0x450f7 (size=80)
db $2e ; border tile
@@ -14501,11 +16362,11 @@ RocketHideout2Object: ; 0x450f7 (size=80)
db $0 ; signs
db $5 ; people
- db SPRITE_ROCKET, $c + 4, $14 + 4, $ff, $d0, $41, $e6, $d ; trainer
- db SPRITE_BALL, $b + 4, $1 + 4, $ff, $ff, $82, $a ; item
- db SPRITE_BALL, $8 + 4, $10 + 4, $ff, $ff, $83, $31 ; item
- db SPRITE_BALL, $c + 4, $6 + 4, $ff, $ff, $84, $cf ; item
- db SPRITE_BALL, $15 + 4, $3 + 4, $ff, $ff, $85, $13 ; item
+ db SPRITE_ROCKET, $c + 4, $14 + 4, $ff, $d0, $41, ROCKET + $C8, $d ; trainer
+ db SPRITE_BALL, $b + 4, $1 + 4, $ff, $ff, $82, MOON_STONE ; item
+ db SPRITE_BALL, $8 + 4, $10 + 4, $ff, $ff, $83, NUGGET ; item
+ db SPRITE_BALL, $c + 4, $6 + 4, $ff, $ff, $84, TM_07 ; item
+ db SPRITE_BALL, $15 + 4, $3 + 4, $ff, $ff, $85, SUPER_POTION ; item
; warp-to
EVENT_DISP $f, $8, $1b ; ROCKET_HIDEOUT_1
@@ -14514,7 +16375,6 @@ RocketHideout2Object: ; 0x450f7 (size=80)
EVENT_DISP $f, $16, $15 ; ROCKET_HIDEOUT_1
EVENT_DISP $f, $13, $19 ; ROCKET_HIDEOUT_ELEVATOR
-
RocketHideout2Blocks: ; 210
INCBIN "maps/rockethideout2.blk"
@@ -14526,7 +16386,21 @@ RocketHideout3_h: ; 0x45219 to 0x45225 (12 bytes) (bank=11) (id=201)
dw $534d ; objects
-INCBIN "baserom.gbc",$45225,$4534d - $45225
+INCBIN "baserom.gbc",$45225,$4531b - $45225
+RocketHideout3Text1: ; 0x4531b
+ db $08 ; asm
+ ld hl, $5302
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$45325,$45334 - $45325
+RocketHideout3Text2: ; 0x45334
+ db $08 ; asm
+ ld hl, $530e
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$4533e,$f
RocketHideout3Object: ; 0x4534d (size=50)
db $2e ; border tile
@@ -14537,16 +16411,15 @@ RocketHideout3Object: ; 0x4534d (size=50)
db $0 ; signs
db $4 ; people
- db SPRITE_ROCKET, $16 + 4, $a + 4, $ff, $d3, $41, $e6, $e ; trainer
- db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d1, $42, $e6, $f ; trainer
- db SPRITE_BALL, $11 + 4, $1a + 4, $ff, $ff, $83, $d2 ; item
- db SPRITE_BALL, $e + 4, $14 + 4, $ff, $ff, $84, $28 ; item
+ db SPRITE_ROCKET, $16 + 4, $a + 4, $ff, $d3, $41, ROCKET + $C8, $e ; trainer
+ db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d1, $42, ROCKET + $C8, $f ; trainer
+ db SPRITE_BALL, $11 + 4, $1a + 4, $ff, $ff, $83, TM_10 ; item
+ db SPRITE_BALL, $e + 4, $14 + 4, $ff, $ff, $84, RARE_CANDY ; item
; warp-to
EVENT_DISP $f, $6, $19 ; ROCKET_HIDEOUT_2
EVENT_DISP $f, $12, $13 ; ROCKET_HIDEOUT_4
-
RocketHideout3Blocks: ; 210
INCBIN "maps/rockethideout3.blk"
@@ -14558,7 +16431,57 @@ RocketHideout4_h: ; 0x45451 to 0x4545d (12 bytes) (bank=11) (id=202)
dw $55f1 ; objects
-INCBIN "baserom.gbc",$4545d,$455f1 - $4545d
+INCBIN "baserom.gbc",$4545d,$4553a - $4545d
+RocketHideout4Text1: ; 0x4553a
+ db $08 ; asm
+ ld a, [$d81b]
+ bit 7, a
+ jp nz, $5571
+ ld hl, $557a
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $557f
+ ld de, $557f
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ xor a
+ ldh [$b4], a
+ ld a, $3
+ ld [$d634], a
+ ld [$da39], a
+ jr .asm_209f0 ; 0x4556f
+ ld hl, $5584
+ call PrintText
+.asm_209f0 ; 0x45577
+ jp $24d7
+
+INCBIN "baserom.gbc",$4557a,$45589 - $4557a
+RocketHideout4Text2: ; 0x45589
+ db $08 ; asm
+ ld hl, $5515
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$45593,$455a2 - $45593
+RocketHideout4Text3: ; 0x455a2
+ db $08 ; asm
+ ld hl, $5521
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$455ac,$455bb - $455ac
+RocketHideout4Text4: ; 0x455bb
+ db $08 ; asm
+ ld hl, $552d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$455c5,$2c
RocketHideout4Object: ; 0x455f1 (size=95)
db $2e ; border tile
@@ -14570,22 +16493,21 @@ RocketHideout4Object: ; 0x455f1 (size=95)
db $0 ; signs
db $9 ; people
- db SPRITE_GIOVANNI, $3 + 4, $19 + 4, $ff, $d0, $41, $e5, $1 ; trainer
- db SPRITE_ROCKET, $c + 4, $17 + 4, $ff, $d0, $42, $e6, $10 ; trainer
- db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d0, $43, $e6, $11 ; trainer
- db SPRITE_ROCKET, $2 + 4, $b + 4, $ff, $d0, $44, $e6, $12 ; trainer
- db SPRITE_BALL, $c + 4, $a + 4, $ff, $ff, $85, $23 ; item
- db SPRITE_BALL, $4 + 4, $9 + 4, $ff, $ff, $86, $ca ; item
- db SPRITE_BALL, $14 + 4, $c + 4, $ff, $ff, $87, $25 ; item
- db SPRITE_BALL, $2 + 4, $19 + 4, $ff, $ff, $88, $48 ; item
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $89, $4a ; item
+ db SPRITE_GIOVANNI, $3 + 4, $19 + 4, $ff, $d0, $41, GIOVANNI + $C8, $1 ; trainer
+ db SPRITE_ROCKET, $c + 4, $17 + 4, $ff, $d0, $42, ROCKET + $C8, $10 ; trainer
+ db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d0, $43, ROCKET + $C8, $11 ; trainer
+ db SPRITE_ROCKET, $2 + 4, $b + 4, $ff, $d0, $44, ROCKET + $C8, $12 ; trainer
+ db SPRITE_BALL, $c + 4, $a + 4, $ff, $ff, $85, HP_UP ; item
+ db SPRITE_BALL, $4 + 4, $9 + 4, $ff, $ff, $86, TM_02 ; item
+ db SPRITE_BALL, $14 + 4, $c + 4, $ff, $ff, $87, IRON ; item
+ db SPRITE_BALL, $2 + 4, $19 + 4, $ff, $ff, $88, SILPH_SCOPE ; item
+ db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $89, LIFT_KEY ; item
; warp-to
EVENT_DISP $f, $a, $13 ; ROCKET_HIDEOUT_3
EVENT_DISP $f, $f, $18 ; ROCKET_HIDEOUT_ELEVATOR
EVENT_DISP $f, $f, $19 ; ROCKET_HIDEOUT_ELEVATOR
-
RocketHideout4Blocks: ; 180
INCBIN "maps/rockethideout4.blk"
@@ -14597,7 +16519,24 @@ RocketHideoutElevator_h: ; 0x45704 to 0x45710 (12 bytes) (bank=11) (id=203)
dw $5791 ; objects
-INCBIN "baserom.gbc",$45710,$45791 - $45710
+INCBIN "baserom.gbc",$45710,$4576d - $45710
+RocketHideoutElevatorText1: ; 0x4576d
+ db $08 ; asm
+ ld b,LIFT_KEY
+ call $3493
+ jr z, .asm_8d8f0 ; 0x45773
+ call $5741
+ ld hl, $5759
+ ld a, $61
+ call Predef
+ jr .asm_46c43 ; 0x45780
+.asm_8d8f0 ; 0x45782
+ ld hl, $578b
+ call PrintText
+.asm_46c43 ; 0x45788
+ jp $24d7
+
+INCBIN "baserom.gbc",$4578b,$6
RocketHideoutElevatorObject: ; 0x45791 (size=23)
db $f ; border tile
@@ -14614,7 +16553,6 @@ RocketHideoutElevatorObject: ; 0x45791 (size=23)
EVENT_DISP $3, $1, $2 ; ROCKET_HIDEOUT_1
EVENT_DISP $3, $1, $3 ; ROCKET_HIDEOUT_1
-
RocketHideoutElevatorBlocks: ; 12
INCBIN "maps/rockethideoutelevator.blk"
@@ -14626,7 +16564,15 @@ SilphCoElevator_h: ; 0x457b4 to 0x457c0 (12 bytes) (bank=11) (id=236)
dw $5844 ; objects
-INCBIN "baserom.gbc",$457c0,$45844 - $457c0
+INCBIN "baserom.gbc",$457c0,$45835 - $457c0
+SilphCoElevatorText1: ; 0x45835
+ db $08 ; asm
+ call $57f1
+ ld hl, $5811
+ ld a, $61
+ call Predef
+ jp $24d7
+
SilphCoElevatorObject: ; 0x45844 (size=23)
db $f ; border tile
@@ -14643,7 +16589,6 @@ SilphCoElevatorObject: ; 0x45844 (size=23)
EVENT_DISP $2, $3, $1
EVENT_DISP $2, $3, $2
-
SilphCoElevatorBlocks: ; 4
INCBIN "maps/silphcoelevator.blk"
@@ -14655,7 +16600,20 @@ SafariZoneEast_h: ; 0x4585f to 0x4586b (12 bytes) (bank=11) (id=217)
dw $588b ; objects
-INCBIN "baserom.gbc",$4586b,$4588b - $4586b
+INCBIN "baserom.gbc",$4586b,$4587c - $4586b
+
+SafariZoneEastText5: ; 0x4587c
+ TX_FAR _SafariZoneEastText5
+ db $50
+
+SafariZoneEastText6: ; 0x45881
+ TX_FAR _SafariZoneEastText6
+ db $50
+
+SafariZoneEastText7: ; 0x45886
+ TX_FAR _SafariZoneEastText7
+ db $50
+
SafariZoneEastObject: ; 0x4588b (size=81)
db $0 ; border tile
@@ -14672,10 +16630,10 @@ SafariZoneEastObject: ; 0x4588b (size=81)
db $17, $5, $7 ; SafariZoneEastText7
db $4 ; people
- db SPRITE_BALL, $a + 4, $15 + 4, $ff, $ff, $81, $10 ; item
- db SPRITE_BALL, $7 + 4, $3 + 4, $ff, $ff, $82, $11 ; item
- db SPRITE_BALL, $d + 4, $14 + 4, $ff, $ff, $83, $26 ; item
- db SPRITE_BALL, $c + 4, $f + 4, $ff, $ff, $84, $ed ; item
+ db SPRITE_BALL, $a + 4, $15 + 4, $ff, $ff, $81, FULL_RESTORE ; item
+ db SPRITE_BALL, $7 + 4, $3 + 4, $ff, $ff, $82, MAX_POTION ; item
+ db SPRITE_BALL, $d + 4, $14 + 4, $ff, $ff, $83, CARBOS ; item
+ db SPRITE_BALL, $c + 4, $f + 4, $ff, $ff, $84, TM_37 ; item
; warp-to
EVENT_DISP $f, $4, $0 ; SAFARI_ZONE_NORTH
@@ -14684,7 +16642,6 @@ SafariZoneEastObject: ; 0x4588b (size=81)
EVENT_DISP $f, $17, $0 ; SAFARI_ZONE_CENTER
EVENT_DISP $f, $9, $19 ; SAFARI_ZONE_REST_HOUSE_3
-
SafariZoneEastBlocks: ; 195
INCBIN "maps/safarizoneeast.blk"
@@ -14696,7 +16653,28 @@ SafariZoneNorth_h: ; 0x4599f to 0x459ab (12 bytes) (bank=11) (id=218)
dw $59d5 ; objects
-INCBIN "baserom.gbc",$459ab,$459d5 - $459ab
+INCBIN "baserom.gbc",$459ab,$459bc - $459ab
+
+SafariZoneNorthText3: ; 0x459bc
+ TX_FAR _SafariZoneNorthText3
+ db $50
+
+SafariZoneNorthText4: ; 0x459c1
+ TX_FAR _SafariZoneNorthText4
+ db $50
+
+SafariZoneNorthText5: ; 0x459c6
+ TX_FAR _SafariZoneNorthText5
+ db $50
+
+SafariZoneNorthText6: ; 0x459cb
+ TX_FAR _SafariZoneNorthText6
+ db $50
+
+SafariZoneNorthText7: ; 0x459d0
+ TX_FAR _SafariZoneNorthText7
+ db $50
+
SafariZoneNorthObject: ; 0x459d5 (size=105)
db $0 ; border tile
@@ -14719,8 +16697,8 @@ SafariZoneNorthObject: ; 0x459d5 (size=105)
db $1c, $1a, $7 ; SafariZoneNorthText7
db $2 ; people
- db SPRITE_BALL, $1 + 4, $19 + 4, $ff, $ff, $81, $24 ; item
- db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $82, $f0 ; item
+ db SPRITE_BALL, $1 + 4, $19 + 4, $ff, $ff, $81, PROTEIN ; item
+ db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $82, TM_40 ; item
; warp-to
EVENT_DISP $14, $23, $2 ; SAFARI_ZONE_WEST
@@ -14733,7 +16711,6 @@ SafariZoneNorthObject: ; 0x459d5 (size=105)
EVENT_DISP $14, $1f, $27 ; SAFARI_ZONE_EAST
EVENT_DISP $14, $3, $23 ; SAFARI_ZONE_REST_HOUSE_4
-
SafariZoneNorthBlocks: ; 360
INCBIN "maps/safarizonenorth.blk"
@@ -14745,7 +16722,16 @@ SafariZoneCenter_h: ; 0x45ba6 to 0x45bb2 (12 bytes) (bank=11) (id=220)
dw $5bc5 ; objects
-INCBIN "baserom.gbc",$45bb2,$45bc5 - $45bb2
+INCBIN "baserom.gbc",$45bb2,$45bbb - $45bb2
+
+SafariZoneCenterText2: ; 0x45bbb
+ TX_FAR _SafariZoneCenterText2
+ db $50
+
+SafariZoneCenterText3: ; 0x45bc0
+ TX_FAR _SafariZoneCenterText3
+ db $50
+
SafariZoneCenterObject: ; 0x45bc5 (size=89)
db $0 ; border tile
@@ -14765,7 +16751,7 @@ SafariZoneCenterObject: ; 0x45bc5 (size=89)
db $16, $e, $3 ; SafariZoneCenterText3
db $1 ; people
- db SPRITE_BALL, $a + 4, $e + 4, $ff, $ff, $81, $31 ; item
+ db SPRITE_BALL, $a + 4, $e + 4, $ff, $ff, $81, NUGGET ; item
; warp-to
EVENT_DISP $f, $19, $e ; SAFARIZONEENTRANCE
@@ -14778,7 +16764,6 @@ SafariZoneCenterObject: ; 0x45bc5 (size=89)
EVENT_DISP $f, $b, $1d ; SAFARI_ZONE_EAST
EVENT_DISP $f, $13, $11 ; SAFARI_ZONE_REST_HOUSE_1
-
SafariZoneCenterBlocks: ; 195
INCBIN "maps/safarizonecenter.blk"
@@ -14790,7 +16775,18 @@ SafariZoneRestHouse1_h: ; 0x45ce1 to 0x45ced (12 bytes) (bank=11) (id=221)
dw $5cfe ; objects
-INCBIN "baserom.gbc",$45ced,$45cfe - $45ced
+INCBIN "baserom.gbc",$45ced,$45cf0 - $45ced
+SafariZoneRestHouse1Texts: ; 0x45cf0
+ dw SafariZoneRestHouse1Text1, SafariZoneRestHouse1Text2
+
+SafariZoneRestHouse1Text1: ; 0x45cf4
+ TX_FAR _SafariZoneRestHouse1Text1
+ db $50
+
+SafariZoneRestHouse1Text2: ; 0x45cf9
+ TX_FAR _SafariZoneRestHouse1Text2
+ db $50
+
SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
db $a ; border tile
@@ -14808,7 +16804,6 @@ SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
EVENT_DISP $4, $7, $2 ; SAFARI_ZONE_CENTER
EVENT_DISP $4, $7, $3 ; SAFARI_ZONE_CENTER
-
SafariZoneRestHouse2_h: ; 0x45d1e to 0x45d2a (12 bytes) (bank=11) (id=223)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -14817,7 +16812,22 @@ SafariZoneRestHouse2_h: ; 0x45d1e to 0x45d2a (12 bytes) (bank=11) (id=223)
dw $5d43 ; objects
-INCBIN "baserom.gbc",$45d2a,$45d43 - $45d2a
+INCBIN "baserom.gbc",$45d2a,$45d2e - $45d2a
+SafariZoneRestHouse2Texts: ; 0x45d2e
+ dw SafariZoneRestHouse2Text1, SafariZoneRestHouse2Text2, SafariZoneRestHouse2Text3
+
+SafariZoneRestHouse2Text1: ; 0x45d34
+ TX_FAR _SafariZoneRestHouse2Text1
+ db $50
+
+SafariZoneRestHouse2Text2: ; 0x45d39
+ TX_FAR _SafariZoneRestHouse2Text2
+ db $50
+
+SafariZoneRestHouse2Text3: ; 0x45d3e
+ TX_FAR _SafariZoneRestHouse2Text3
+ db $50
+
SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
db $a ; border tile
@@ -14836,7 +16846,6 @@ SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
EVENT_DISP $4, $7, $2 ; SAFARI_ZONE_WEST
EVENT_DISP $4, $7, $3 ; SAFARI_ZONE_WEST
-
SafariZoneRestHouse3_h: ; 0x45d69 to 0x45d75 (12 bytes) (bank=11) (id=224)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -14845,7 +16854,22 @@ SafariZoneRestHouse3_h: ; 0x45d69 to 0x45d75 (12 bytes) (bank=11) (id=224)
dw $5d8e ; objects
-INCBIN "baserom.gbc",$45d75,$45d8e - $45d75
+INCBIN "baserom.gbc",$45d75,$45d79 - $45d75
+SafariZoneRestHouse3Texts: ; 0x45d79
+ dw SafariZoneRestHouse3Text1, SafariZoneRestHouse3Text2, SafariZoneRestHouse3Text3
+
+SafariZoneRestHouse3Text1: ; 0x45d7f
+ TX_FAR _SafariZoneRestHouse3Text1
+ db $50
+
+SafariZoneRestHouse3Text2: ; 0x45d84
+ TX_FAR _SafariZoneRestHouse3Text2
+ db $50
+
+SafariZoneRestHouse3Text3: ; 0x45d89
+ TX_FAR _SafariZoneRestHouse3Text3
+ db $50
+
SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
db $a ; border tile
@@ -14864,7 +16888,6 @@ SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
EVENT_DISP $4, $7, $2 ; SAFARI_ZONE_EAST
EVENT_DISP $4, $7, $3 ; SAFARI_ZONE_EAST
-
SafariZoneRestHouse4_h: ; 0x45db4 to 0x45dc0 (12 bytes) (bank=11) (id=225)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -14873,7 +16896,22 @@ SafariZoneRestHouse4_h: ; 0x45db4 to 0x45dc0 (12 bytes) (bank=11) (id=225)
dw $5dd9 ; objects
-INCBIN "baserom.gbc",$45dc0,$45dd9 - $45dc0
+INCBIN "baserom.gbc",$45dc0,$45dc4 - $45dc0
+SafariZoneRestHouse4Texts: ; 0x45dc4
+ dw SafariZoneRestHouse4Text1, SafariZoneRestHouse4Text2, SafariZoneRestHouse4Text3
+
+SafariZoneRestHouse4Text1: ; 0x45dca
+ TX_FAR _SafariZoneRestHouse4Text1
+ db $50
+
+SafariZoneRestHouse4Text2: ; 0x45dcf
+ TX_FAR _SafariZoneRestHouse4Text2
+ db $50
+
+SafariZoneRestHouse4Text3: ; 0x45dd4
+ TX_FAR _SafariZoneRestHouse4Text3
+ db $50
+
SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
db $a ; border tile
@@ -14892,7 +16930,6 @@ SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
EVENT_DISP $4, $7, $2 ; SAFARI_ZONE_NORTH
EVENT_DISP $4, $7, $3 ; SAFARI_ZONE_NORTH
-
UnknownDungeon2_h: ; 0x45dff to 0x45e0b (12 bytes) (bank=11) (id=226)
db $11 ; tileset
db $09, $0f ; dimensions (y, x)
@@ -14916,9 +16953,9 @@ UnknownDungeon2Object: ; 0x45e14 (size=73)
db $0 ; signs
db $3 ; people
- db SPRITE_BALL, $9 + 4, $1d + 4, $ff, $ff, $81, $4f ; item
- db SPRITE_BALL, $f + 4, $4 + 4, $ff, $ff, $82, $2 ; item
- db SPRITE_BALL, $6 + 4, $d + 4, $ff, $ff, $83, $10 ; item
+ db SPRITE_BALL, $9 + 4, $1d + 4, $ff, $ff, $81, PP_UP ; item
+ db SPRITE_BALL, $f + 4, $4 + 4, $ff, $ff, $82, ULTRA_BALL ; item
+ db SPRITE_BALL, $6 + 4, $d + 4, $ff, $ff, $83, FULL_RESTORE ; item
; warp-to
EVENT_DISP $f, $1, $1d ; UNKNOWN_DUNGEON_1
@@ -14928,7 +16965,6 @@ UnknownDungeon2Object: ; 0x45e14 (size=73)
EVENT_DISP $f, $3, $1 ; UNKNOWN_DUNGEON_1
EVENT_DISP $f, $b, $3 ; UNKNOWN_DUNGEON_1
-
UnknownDungeon2Blocks: ; 135
INCBIN "maps/unknowndungeon2.blk"
@@ -14940,7 +16976,14 @@ UnknownDungeon3_h: ; 0x45ee4 to 0x45ef0 (12 bytes) (bank=11) (id=227)
dw $5f36 ; objects
-INCBIN "baserom.gbc",$45ef0,$45f36 - $45ef0
+INCBIN "baserom.gbc",$45ef0,$45f1c - $45ef0
+UnknownDungeon3Text1: ; 0x45f1c
+ db $08 ; asm
+ ld hl, $5f0f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$45f26,$10
UnknownDungeon3Object: ; 0x45f36 (size=34)
db $7d ; border tile
@@ -14950,14 +16993,13 @@ UnknownDungeon3Object: ; 0x45f36 (size=34)
db $0 ; signs
db $3 ; people
- db SPRITE_SLOWBRO, $d + 4, $1b + 4, $ff, $d0, $41, $83, $46 ; trainer
- db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $82, $2 ; item
- db SPRITE_BALL, $1 + 4, $12 + 4, $ff, $ff, $83, $36 ; item
+ db SPRITE_SLOWBRO, $d + 4, $1b + 4, $ff, $d0, $41, MEWTWO, $46 ; trainer
+ db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $82, ULTRA_BALL ; item
+ db SPRITE_BALL, $1 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
; warp-to
EVENT_DISP $f, $6, $3 ; UNKNOWN_DUNGEON_1
-
UnknownDungeon3Blocks: ; 135
INCBIN "maps/unknowndungeon3.blk"
@@ -14969,7 +17011,56 @@ RockTunnel2_h: ; 0x45fdf to 0x45feb (12 bytes) (bank=11) (id=232)
dw $613d ; objects
-INCBIN "baserom.gbc",$45feb,$4613d - $45feb
+INCBIN "baserom.gbc",$45feb,$46075 - $45feb
+RockTunnel2Text1: ; 0x46075
+ db $08 ; asm
+ ld hl, $6014
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text2: ; 0x4607f
+ db $08 ; asm
+ ld hl, $6020
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text3: ; 0x46089
+ db $08 ; asm
+ ld hl, $602c
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text4: ; 0x46093
+ db $08 ; asm
+ ld hl, $6038
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text5: ; 0x4609d
+ db $08 ; asm
+ ld hl, $6044
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text6: ; 0x460a7
+ db $08 ; asm
+ ld hl, $6050
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text7: ; 0x460b1
+ db $08 ; asm
+ ld hl, $605c
+ call LoadTrainerHeader
+ jp $24d7
+
+RockTunnel2Text8: ; 0x460bb
+ db $08 ; asm
+ ld hl, $6068
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$460c5,$78
RockTunnel2Object: ; 0x4613d (size=100)
db $3 ; border tile
@@ -14982,14 +17073,14 @@ RockTunnel2Object: ; 0x4613d (size=100)
db $0 ; signs
db $8 ; people
- db SPRITE_LASS, $d + 4, $b + 4, $ff, $d0, $41, $ce, $9 ; trainer
- db SPRITE_HIKER, $a + 4, $6 + 4, $ff, $d0, $42, $d1, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $d0, $43, $cf, $3 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $14 + 4, $ff, $d3, $44, $cf, $4 ; trainer
- db SPRITE_HIKER, $a + 4, $1e + 4, $ff, $d0, $45, $d1, $a ; trainer
- db SPRITE_LASS, $1c + 4, $e + 4, $ff, $d3, $46, $ce, $a ; trainer
- db SPRITE_HIKER, $5 + 4, $21 + 4, $ff, $d3, $47, $d1, $b ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $1e + 4, $1a + 4, $ff, $d0, $48, $cf, $5 ; trainer
+ db SPRITE_LASS, $d + 4, $b + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $9 ; trainer
+ db SPRITE_HIKER, $a + 4, $6 + 4, $ff, $d0, $42, HIKER + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $d0, $43, POKEMANIAC + $C8, $3 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $14 + 4, $ff, $d3, $44, POKEMANIAC + $C8, $4 ; trainer
+ db SPRITE_HIKER, $a + 4, $1e + 4, $ff, $d0, $45, HIKER + $C8, $a ; trainer
+ db SPRITE_LASS, $1c + 4, $e + 4, $ff, $d3, $46, JR__TRAINER_F + $C8, $a ; trainer
+ db SPRITE_HIKER, $5 + 4, $21 + 4, $ff, $d3, $47, HIKER + $C8, $b ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $1e + 4, $1a + 4, $ff, $d0, $48, POKEMANIAC + $C8, $5 ; trainer
; warp-to
EVENT_DISP $14, $19, $21 ; ROCK_TUNNEL_1
@@ -14997,7 +17088,6 @@ RockTunnel2Object: ; 0x4613d (size=100)
EVENT_DISP $14, $b, $17 ; ROCK_TUNNEL_1
EVENT_DISP $14, $3, $3 ; ROCK_TUNNEL_1
-
RockTunnel2Blocks: ; 360
INCBIN "maps/rocktunnel2.blk"
@@ -15009,7 +17099,9 @@ SeafoamIslands2_h: ; 0x46309 to 0x46315 (12 bytes) (bank=11) (id=159)
dw $6376 ; objects
-INCBIN "baserom.gbc",$46315,$46376 - $46315
+INCBIN "baserom.gbc",$46315,$46372 - $46315
+SeafoamIslands2Texts: ; 0x46372
+ dw SeafoamIslands2Text1, SeafoamIslands2Text2
SeafoamIslands2Object: ; 0x46376 (size=72)
db $7d ; border tile
@@ -15037,7 +17129,6 @@ SeafoamIslands2Object: ; 0x46376 (size=72)
EVENT_DISP $f, $b, $19 ; SEAFOAM_ISLANDS_3
EVENT_DISP $f, $3, $19 ; SEAFOAM_ISLANDS_1
-
SeafoamIslands2Blocks: ; 135
INCBIN "maps/seafoamislands2.blk"
@@ -15049,7 +17140,9 @@ SeafoamIslands3_h: ; 0x46445 to 0x46451 (12 bytes) (bank=11) (id=160)
dw $64b2 ; objects
-INCBIN "baserom.gbc",$46451,$464b2 - $46451
+INCBIN "baserom.gbc",$46451,$464ae - $46451
+SeafoamIslands3Texts: ; 0x464ae
+ dw SeafoamIslands3Text1, SeafoamIslands3Text2
SeafoamIslands3Object: ; 0x464b2 (size=72)
db $7d ; border tile
@@ -15077,7 +17170,6 @@ SeafoamIslands3Object: ; 0x464b2 (size=72)
EVENT_DISP $f, $b, $19 ; SEAFOAM_ISLANDS_2
EVENT_DISP $f, $e, $19 ; SEAFOAM_ISLANDS_4
-
SeafoamIslands3Blocks: ; 135
INCBIN "maps/seafoamislands3.blk"
@@ -15089,7 +17181,9 @@ SeafoamIslands4_h: ; 0x46581 to 0x4658d (12 bytes) (bank=11) (id=161)
dw $66a6 ; objects
-INCBIN "baserom.gbc",$4658d,$466a6 - $4658d
+INCBIN "baserom.gbc",$4658d,$4669a - $4658d
+SeafoamIslands4Texts: ; 0x4669a
+ dw SeafoamIslands4Text1, SeafoamIslands4Text2, SeafoamIslands4Text3, SeafoamIslands4Text4, SeafoamIslands4Text5, SeafoamIslands4Text6
SeafoamIslands4Object: ; 0x466a6 (size=96)
db $7d ; border tile
@@ -15121,7 +17215,6 @@ SeafoamIslands4Object: ; 0x466a6 (size=96)
EVENT_DISP $f, $11, $14 ; SEAFOAM_ISLANDS_5
EVENT_DISP $f, $11, $15 ; SEAFOAM_ISLANDS_5
-
SeafoamIslands4Blocks: ; 135
INCBIN "maps/seafoamislands4.blk"
@@ -15133,7 +17226,25 @@ SeafoamIslands5_h: ; 0x4678d to 0x46799 (12 bytes) (bank=11) (id=162)
dw $68bc ; objects
-INCBIN "baserom.gbc",$46799,$468bc - $46799
+INCBIN "baserom.gbc",$46799,$46893 - $46799
+SeafoamIslands5Text3: ; 0x46893
+ db $08 ; asm
+ ld hl, $6886
+ call LoadTrainerHeader
+ ld a, $4
+ ld [$d668], a
+ jp $24d7
+
+INCBIN "baserom.gbc",$468a2,$10
+
+SeafoamIslands5Text4: ; 0x468b2
+ TX_FAR _SeafoamIslands5Text4
+ db $50
+
+SeafoamIslands5Text5: ; 0x468b7
+ TX_FAR _SeafoamIslands5Text5
+ db $50
+
SeafoamIslands5Object: ; 0x468bc (size=62)
db $7d ; border tile
@@ -15150,7 +17261,7 @@ SeafoamIslands5Object: ; 0x468bc (size=62)
db $3 ; people
db SPRITE_BOULDER, $f + 4, $4 + 4, $ff, $ff, $1 ; person
db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $ff, $2 ; person
- db SPRITE_BIRD, $1 + 4, $6 + 4, $ff, $d0, $43, $4a, $32 ; trainer
+ db SPRITE_BIRD, $1 + 4, $6 + 4, $ff, $d0, $43, ARTICUNO, $32 ; trainer
; warp-to
EVENT_DISP $f, $11, $14 ; SEAFOAM_ISLANDS_4
@@ -15158,7 +17269,6 @@ SeafoamIslands5Object: ; 0x468bc (size=62)
EVENT_DISP $f, $7, $b ; SEAFOAM_ISLANDS_4
EVENT_DISP $f, $4, $19 ; SEAFOAM_ISLANDS_4
-
SeafoamIslands5Blocks: ; 135
INCBIN "maps/seafoamislands5.blk"
INCBIN "baserom.gbc",$46981,$167f
@@ -15211,8 +17321,6 @@ Route7Object: ; 0x48022 (size=47)
EVENT_DISP $a, $a, $b ; ROUTE_7_GATE
EVENT_DISP $a, $d, $5 ; PATH_ENTRANCE_ROUTE_7
-INCBIN "baserom.gbc",$48051,$0
-
Route7Blocks: ; 90
INCBIN "maps/route7.blk"
@@ -15340,14 +17448,83 @@ CeladonMart3_h: ; 0x48219 to 0x48225 (12 bytes) (bank=12) (id=124)
dw $42c4 ; objects
-INCBIN "baserom.gbc",$48225,$482c4 - $48225
+INCBIN "baserom.gbc",$48225,$4824a - $48225
+CeladonMart3Text1: ; 0x4824a
+ db $08 ; asm
+ ld a, [$d778]
+ bit 7, a
+ jr nz, .asm_a5463 ; 0x48250
+ ld hl, $4278
+ call PrintText
+ ld bc,(TM_18 << 8) | 1
+ call $3e2e
+ jr nc, .asm_95f37 ; 0x4825e
+ ld hl, $d778
+ set 7, [hl]
+ ld hl, $427d
+ jr .asm_81359 ; 0x48268
+.asm_95f37 ; 0x4826a
+ ld hl, $4288
+ jr .asm_81359 ; 0x4826d
+.asm_a5463 ; 0x4826f
+ ld hl, $4283
+.asm_81359 ; 0x48272
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48278,$15
+
+CeladonMart3Text2: ; 0x4828d
+ TX_FAR _CeladonMart3Text2
+ db $50
+
+CeladonMart3Text3: ; 0x48292
+ TX_FAR _CeladonMart3Text3
+ db $50
+
+CeladonMart3Text4: ; 0x48297
+ TX_FAR _CeladonMart3Text4
+ db $50
+
+CeladonMart3Text5: ; 0x4829c
+ TX_FAR _CeladonMart3Text5
+ db $50
+
+CeladonMart3Text6: ; 0x482a1
+ TX_FAR _CeladonMart3Text6
+ db $50
+
+CeladonMart3Text7: ; 0x482a6
+ TX_FAR _CeladonMart3Text7
+ db $50
+
+CeladonMart3Text9: ; 0x482ab
+ TX_FAR _CeladonMart3Text9
+ db $50
+
+CeladonMart3Text11: ; 0x482b0
+ TX_FAR _CeladonMart3Text11
+ db $50
+
+CeladonMart3Text13: ; 0x482b5
+ TX_FAR _CeladonMart3Text13
+ db $50
+
+CeladonMart3Text14: ; 0x482ba
+ TX_FAR _CeladonMart3Text14
+ db $50
+
+CeladonMart3Text15: ; 0x482bf
+ TX_FAR _CeladonMart3Text15
+ db $50
+
CeladonMart3Object: ; 0x482c4 (size=94)
db $f ; border tile
db $3 ; warps
db $1, $c, $0, CELADON_MART_4
db $1, $10, $1, CELADON_MART_2
- db $1, $1, $0, CELADON_MART_6
+ db $1, $1, $0, CELADON_MART_ELEVATOR
db $c ; signs
db $4, $2, $6 ; CeladonMart3Text6
@@ -15373,8 +17550,7 @@ CeladonMart3Object: ; 0x482c4 (size=94)
; warp-to
EVENT_DISP $a, $1, $c ; CELADON_MART_4
EVENT_DISP $a, $1, $10 ; CELADON_MART_2
- EVENT_DISP $a, $1, $1 ; CELADON_MART_6
-
+ EVENT_DISP $a, $1, $1 ; CELADON_MART_ELEVATOR
CeladonMart3Blocks: ; 40
INCBIN "maps/celadonmart3.blk"
@@ -15387,14 +17563,27 @@ CeladonMart4_h: ; 0x4834a to 0x48356 (12 bytes) (bank=12) (id=125)
dw $4370 ; objects
-INCBIN "baserom.gbc",$48356,$48370 - $48356
+INCBIN "baserom.gbc",$48356,$48361 - $48356
+
+CeladonMart4Text2: ; 0x48361
+ TX_FAR _CeladonMart4Text2
+ db $50
+
+CeladonMart4Text3: ; 0x48366
+ TX_FAR _CeladonMart4Text3
+ db $50
+
+CeladonMart4Text4: ; 0x4836b
+ TX_FAR _CeladonMart4Text4
+ db $50
+
CeladonMart4Object: ; 0x48370 (size=49)
db $f ; border tile
db $3 ; warps
db $1, $c, $0, CELADON_MART_3
- db $1, $10, $1, CELADON_HOUSE
- db $1, $1, $0, CELADON_MART_6
+ db $1, $10, $1, CELADON_MART_5
+ db $1, $1, $0, CELADON_MART_ELEVATOR
db $1 ; signs
db $1, $e, $4 ; CeladonMart4Text4
@@ -15406,55 +17595,94 @@ CeladonMart4Object: ; 0x48370 (size=49)
; warp-to
EVENT_DISP $a, $1, $c ; CELADON_MART_3
- EVENT_DISP $a, $1, $10 ; CELADON_HOUSE
- EVENT_DISP $a, $1, $1 ; CELADON_MART_6
-
+ EVENT_DISP $a, $1, $10 ; CELADON_MART_5
+ EVENT_DISP $a, $1, $1 ; CELADON_MART_ELEVATOR
CeladonMart4Blocks: ; 40
INCBIN "maps/celadonmart4.blk"
-CeladonMart5_h: ; 0x483c9 to 0x483d5 (12 bytes) (bank=12) (id=126)
+CeladonMartRoof_h: ; 0x483c9 to 0x483d5 (12 bytes) (bank=12) (id=126)
db $12 ; tileset
db $04, $0a ; dimensions (y, x)
- dw CeladonMart5Blocks, $455b, $43d5 ; blocks, texts, scripts
+ dw CeladonMartRoofBlocks, $455b, $43d5 ; blocks, texts, scripts
db $00 ; connections
dw $45a8 ; objects
-INCBIN "baserom.gbc",$483d5,$485a8 - $483d5
-CeladonMart5Object: ; 0x485a8 (size=36)
+INCBIN "baserom.gbc",$483d5,$48567 - $483d5
+
+CeladonMartRoofText1: ; 0x48567
+ TX_FAR _CeladonMartRoofText1
+ db $50
+
+CeladonMartRoofText2: ; 0x4856c
+ db $08 ; asm
+ call $43d8
+ ld a, [$cd37]
+ and a
+ jr z, .asm_914b9 ; 0x48574
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $459d
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_05aa4 ; 0x48588
+ call $440c
+ jr .asm_05aa4 ; 0x4858d
+.asm_914b9 ; 0x4858f
+ ld hl, $4598
+ call PrintText
+.asm_05aa4 ; 0x48595
+ jp $24d7
+
+INCBIN "baserom.gbc",$48598,$b
+
+CeladonMartRoofText6: ; 0x485a3
+ TX_FAR _CeladonMartRoofText6
+ db $50
+
+CeladonMartRoofObject: ; 0x485a8 (size=36)
db $42 ; border tile
db $1 ; warps
- db $2, $f, $0, CELADON_HOUSE
+ db $2, $f, $0, CELADON_MART_5
db $4 ; signs
- db $1, $a, $3 ; CeladonMart5Text3
- db $1, $b, $4 ; CeladonMart5Text4
- db $2, $c, $5 ; CeladonMart5Text5
- db $2, $d, $6 ; CeladonMart5Text6
+ db $1, $a, $3 ; CeladonMartRoofText3
+ db $1, $b, $4 ; CeladonMartRoofText4
+ db $2, $c, $5 ; CeladonMartRoofText5
+ db $2, $d, $6 ; CeladonMartRoofText6
db $2 ; people
db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $a + 4, $ff, $d2, $1 ; person
db SPRITE_LITTLE_GIRL, $5 + 4, $5 + 4, $fe, $0, $2 ; person
; warp-to
- EVENT_DISP $a, $2, $f ; CELADON_HOUSE
-
+ EVENT_DISP $a, $2, $f ; CELADON_MART_5
-CeladonMart5Blocks: ; 40
+CeladonMartRoofBlocks: ; 40
INCBIN "maps/celadonmart5.blk"
-CeladonMart6_h: ; 0x485f4 to 0x48600 (12 bytes) (bank=12) (id=127)
+CeladonMartElevator_h: ; 0x485f4 to 0x48600 (12 bytes) (bank=12) (id=127)
db $12 ; tileset
db $02, $02 ; dimensions (y, x)
- dw CeladonMart6Blocks, $465c, $4600 ; blocks, texts, scripts
+ dw CeladonMartElevatorBlocks, $465c, $4600 ; blocks, texts, scripts
db $00 ; connections
dw $466d ; objects
-INCBIN "baserom.gbc",$48600,$4866d - $48600
-CeladonMart6Object: ; 0x4866d (size=23)
+INCBIN "baserom.gbc",$48600,$4865e - $48600
+CeladonMartElevatorText1: ; 0x4865e
+ db $08 ; asm
+ call $4631
+ ld hl, $464a
+ ld a, $61
+ call Predef
+ jp $24d7
+
+CeladonMartElevatorObject: ; 0x4866d (size=23)
db $f ; border tile
db $2 ; warps
@@ -15462,7 +17690,7 @@ CeladonMart6Object: ; 0x4866d (size=23)
db $3, $2, $5, CELADON_MART_1
db $1 ; signs
- db $0, $3, $1 ; CeladonMart6Text1
+ db $0, $3, $1 ; CeladonMartElevatorText1
db $0 ; people
@@ -15470,8 +17698,7 @@ CeladonMart6Object: ; 0x4866d (size=23)
EVENT_DISP $2, $3, $1 ; CELADON_MART_1
EVENT_DISP $2, $3, $2 ; CELADON_MART_1
-
-CeladonMart6Blocks: ; 4
+CeladonMartElevatorBlocks: ; 4
INCBIN "maps/celadonmart6.blk"
CeladonMansion1_h: ; 0x48688 to 0x48694 (12 bytes) (bank=12) (id=128)
@@ -15482,7 +17709,39 @@ CeladonMansion1_h: ; 0x48688 to 0x48694 (12 bytes) (bank=12) (id=128)
dw $46cf ; objects
-INCBIN "baserom.gbc",$48694,$486cf - $48694
+INCBIN "baserom.gbc",$48694,$48697 - $48694
+CeladonMansion1Texts: ; 0x48697
+ dw CeladonMansion1Text1, CeladonMansion1Text2, CeladonMansion1Text3, CeladonMansion1Text4, CeladonMansion1Text5
+INCBIN "baserom.gbc",$486a1,$6
+
+CeladonMansion1Text1: ; 0x486a7
+ TX_FAR _CeladonMansion1Text1
+ db $08 ; asm
+ ld a, $4d
+ jp $46a1
+
+CeladonMansion1Text2: ; 0x486b1
+ TX_FAR _CeladonMansion1Text2
+ db $50
+
+CeladonMansion1Text3: ; 0x486b6
+ TX_FAR _CeladonMansion1Text3
+ db $8
+ ld a, $4
+ jp $46a1
+; 0x486c0
+
+CeladonMansion1Text4: ; 0x486c0
+ TX_FAR _CeladonMansion1Text4
+ db $8
+ ld a, $f
+ jp $46a1
+; 0x486ca
+
+CeladonMansion1Text5: ; 0x486ca
+ TX_FAR _CeladonMansion1Text5
+ db $50
+
CeladonMansion1Object: ; 0x486cf (size=71)
db $f ; border tile
@@ -15509,7 +17768,6 @@ CeladonMansion1Object: ; 0x486cf (size=71)
EVENT_DISP $4, $1, $7 ; CELADON_MANSION_2
EVENT_DISP $4, $1, $2 ; CELADON_MANSION_2
-
CeladonMansion1Blocks: ; 24
INCBIN "maps/celadonmansion1.blk"
@@ -15521,7 +17779,14 @@ CeladonMansion2_h: ; 0x4872e to 0x4873a (12 bytes) (bank=12) (id=129)
dw $4745 ; objects
-INCBIN "baserom.gbc",$4873a,$48745 - $4873a
+INCBIN "baserom.gbc",$4873a,$4873e - $4873a
+CeladonMansion2Texts: ; 0x4873e
+ dw CeladonMansion2Text1
+
+CeladonMansion2Text1: ; 0x48740
+ TX_FAR _CeladonMansion2Text1
+ db $50
+
CeladonMansion2Object: ; 0x48745 (size=39)
db $f ; border tile
@@ -15542,7 +17807,6 @@ CeladonMansion2Object: ; 0x48745 (size=39)
EVENT_DISP $4, $1, $2 ; CELADON_MANSION_1
EVENT_DISP $4, $1, $4 ; CELADON_MANSION_3
-
CeladonMansion2Blocks: ; 24
INCBIN "maps/celadonmansion2.blk"
@@ -15554,7 +17818,54 @@ CeladonMansion3_h: ; 0x48784 to 0x48790 (12 bytes) (bank=12) (id=130)
dw $47ff ; objects
-INCBIN "baserom.gbc",$48790,$487ff - $48790
+INCBIN "baserom.gbc",$48790,$487a3 - $48790
+
+CeladonMansion3Text1: ; 0x487a3
+ TX_FAR _CeladonMansion3Text1
+ db $50
+
+CeladonMansion3Text2: ; 0x487a8
+ TX_FAR _CeladonMansion3Text2
+ db $50
+
+CeladonMansion3Text3: ; 0x487ad
+ TX_FAR _CeladonMansion3Text3
+ db $50
+
+CeladonMansion3Text4: ; 0x487b2
+ db $08 ; asm
+ ld hl, $d2f7
+ ld b, $13
+ call $2b7f
+ ld a, [$d11e]
+ cp $96
+ jr nc, .asm_f03d0 ; 0x487c0
+ ld hl, $47d0
+ jr .asm_c13f0 ; 0x487c5
+.asm_f03d0 ; 0x487c7
+ ld hl, $47d5
+.asm_c13f0 ; 0x487ca
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$487d0,$1b
+
+CeladonMansion3Text5: ; 0x487eb
+ TX_FAR _CeladonMansion3Text5
+ db $50
+
+CeladonMansion3Text6: ; 0x487f0
+ TX_FAR _CeladonMansion3Text6
+ db $50
+
+CeladonMansion3Text7: ; 0x487f5
+ TX_FAR _CeladonMansion3Text7
+ db $50
+
+CeladonMansion3Text8: ; 0x487fa
+ TX_FAR _CeladonMansion3Text8
+ db $50
+
CeladonMansion3Object: ; 0x487ff (size=72)
db $f ; border tile
@@ -15582,7 +17893,6 @@ CeladonMansion3Object: ; 0x487ff (size=72)
EVENT_DISP $4, $1, $2 ; CELADON_MANSION_4
EVENT_DISP $4, $1, $4 ; CELADON_MANSION_2
-
CeladonMansion3Blocks: ; 24
INCBIN "maps/celadonmansion3.blk"
@@ -15594,7 +17904,14 @@ CeladonMansion4_h: ; 0x4885f to 0x4886b (12 bytes) (bank=12) (id=131)
dw $4875 ; objects
-INCBIN "baserom.gbc",$4886b,$48875 - $4886b
+INCBIN "baserom.gbc",$4886b,$4886e - $4886b
+CeladonMansion4Texts: ; 0x4886e
+ dw CeladonMansion4Text1
+
+CeladonMansion4Text1: ; 0x48870
+ TX_FAR _CeladonMansion4Text1
+ db $50
+
CeladonMansion4Object: ; 0x48875 (size=31)
db $9 ; border tile
@@ -15613,7 +17930,6 @@ CeladonMansion4Object: ; 0x48875 (size=31)
EVENT_DISP $4, $1, $2 ; CELADON_MANSION_3
EVENT_DISP $4, $7, $2 ; CELADON_MANSION_5
-
CeladonMansion4Blocks: ; 24
INCBIN "maps/celadonmansion4.blk"
@@ -15625,7 +17941,14 @@ CeladonPokecenter_h: ; 0x488ac to 0x488b8 (12 bytes) (bank=12) (id=133)
dw $48d2 ; objects
-INCBIN "baserom.gbc",$488b8,$488d2 - $488b8
+INCBIN "baserom.gbc",$488b8,$488c8 - $488b8
+
+CeladonPokecenterText2: ; _CeladonPokecenterText2
+CeladonPokecenterText1: ; 0x488c8
+ TX_FAR _CeladonPokecenterText1
+
+INCBIN "baserom.gbc",$488c8 + 4,$488d2 - ($488c8+4)
+
CeladonPokecenterObject: ; 0x488d2 (size=44)
db $0 ; border tile
@@ -15645,7 +17968,6 @@ CeladonPokecenterObject: ; 0x488d2 (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
CeladonGym_h: ; 0x488fe to 0x4890a (12 bytes) (bank=12) (id=134)
db $07 ; tileset
db $09, $05 ; dimensions (y, x)
@@ -15654,7 +17976,92 @@ CeladonGym_h: ; 0x488fe to 0x4890a (12 bytes) (bank=12) (id=134)
dw $4b30 ; objects
-INCBIN "baserom.gbc",$4890a,$48b30 - $4890a
+INCBIN "baserom.gbc",$4890a,$48a11 - $4890a
+CeladonGymText1: ; 0x48a11
+ db $08 ; asm
+ ld a, [$d77c]
+ bit 1, a
+ jr z, .asm_16064 ; 0x48a17
+ bit 0, a
+ jr nz, .asm_3b22c ; 0x48a1b
+ call z, $4963
+ call $30b6
+ jr .asm_96252 ; 0x48a23
+.asm_3b22c ; 0x48a25
+ ld hl, $4a68
+ call PrintText
+ jr .asm_96252 ; 0x48a2b
+.asm_16064 ; 0x48a2d
+ ld hl, $4a5e
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4a63
+ ld de, $4a63
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $4
+ ld [$d05c], a
+ ld a, $3
+ ld [$d5ff], a
+ ld [$da39], a
+.asm_96252 ; 0x48a5b
+ jp $24d7
+
+INCBIN "baserom.gbc",$48a5e,$48a81 - $48a5e
+CeladonGymText2: ; 0x48a81
+ db $08 ; asm
+ ld hl, $49bc
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48a8b,$48a9a - $48a8b
+CeladonGymText3: ; 0x48a9a
+ db $08 ; asm
+ ld hl, $49c8
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48aa4,$48ab3 - $48aa4
+CeladonGymText4: ; 0x48ab3
+ db $08 ; asm
+ ld hl, $49d4
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48abd,$48acc - $48abd
+CeladonGymText5: ; 0x48acc
+ db $08 ; asm
+ ld hl, $49e0
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48ad6,$48ae5 - $48ad6
+CeladonGymText6: ; 0x48ae5
+ db $08 ; asm
+ ld hl, $49ec
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48aef,$48afe - $48aef
+CeladonGymText7: ; 0x48afe
+ db $08 ; asm
+ ld hl, $49f8
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48b08,$48b17 - $48b08
+CeladonGymText8: ; 0x48b17
+ db $08 ; asm
+ ld hl, $4a04
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$48b21,$f
CeladonGymObject: ; 0x48b30 (size=84)
db $3 ; border tile
@@ -15665,20 +18072,19 @@ CeladonGymObject: ; 0x48b30 (size=84)
db $0 ; signs
db $8 ; people
- db SPRITE_ERIKA, $3 + 4, $4 + 4, $ff, $d0, $41, $ed, $1 ; trainer
- db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d3, $42, $cb, $11 ; trainer
- db SPRITE_FOULARD_WOMAN, $a + 4, $7 + 4, $ff, $d2, $43, $da, $1 ; trainer
- db SPRITE_LASS, $5 + 4, $9 + 4, $ff, $d0, $44, $ce, $b ; trainer
- db SPRITE_FOULARD_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $45, $da, $2 ; trainer
- db SPRITE_LASS, $3 + 4, $6 + 4, $ff, $d0, $46, $cb, $12 ; trainer
- db SPRITE_FOULARD_WOMAN, $3 + 4, $3 + 4, $ff, $d0, $47, $da, $3 ; trainer
- db SPRITE_LASS, $3 + 4, $5 + 4, $ff, $d0, $48, $e8, $1 ; trainer
+ db SPRITE_ERIKA, $3 + 4, $4 + 4, $ff, $d0, $41, ERIKA + $C8, $1 ; trainer
+ db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d3, $42, LASS + $C8, $11 ; trainer
+ db SPRITE_FOULARD_WOMAN, $a + 4, $7 + 4, $ff, $d2, $43, BEAUTY + $C8, $1 ; trainer
+ db SPRITE_LASS, $5 + 4, $9 + 4, $ff, $d0, $44, JR__TRAINER_F + $C8, $b ; trainer
+ db SPRITE_FOULARD_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $45, BEAUTY + $C8, $2 ; trainer
+ db SPRITE_LASS, $3 + 4, $6 + 4, $ff, $d0, $46, LASS + $C8, $12 ; trainer
+ db SPRITE_FOULARD_WOMAN, $3 + 4, $3 + 4, $ff, $d0, $47, BEAUTY + $C8, $3 ; trainer
+ db SPRITE_LASS, $3 + 4, $5 + 4, $ff, $d0, $48, COOLTRAINER_F + $C8, $1 ; trainer
; warp-to
EVENT_DISP $5, $11, $4
EVENT_DISP $5, $11, $5
-
CeladonGymBlocks: ; 45
INCBIN "maps/celadongym.blk"
@@ -15690,7 +18096,265 @@ CeladonGameCorner_h: ; 0x48bb1 to 0x48bbd (12 bytes) (bank=12) (id=135)
dw $4fa0 ; objects
-INCBIN "baserom.gbc",$48bbd,$48fa0 - $48bbd
+INCBIN "baserom.gbc",$48bbd,$48ca4 - $48bbd
+
+CeladonGameCornerText1: ; 0x48ca4
+ TX_FAR _CeladonGameCornerText1
+ db $50
+
+CeladonGameCornerText2: ; 0x48ca9
+ db $08 ; asm
+ call $4f1e
+ ld hl, $4d22
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_c650b ; 0x48cba
+ ld b,COIN_CASE
+ call $3493
+ jr z, .asm_ed086 ; 0x48cc1
+ call $4f95
+ jr nc, .asm_31338 ; 0x48cc6
+ xor a
+ ldh [$9f], a
+ ldh [$a1], a
+ ld a, $10
+ ldh [$a0], a
+ call $35a6
+ jr nc, .asm_b6ef0 ; 0x48cd4
+ ld hl, $4d31
+ jr .asm_e2afd ; 0x48cd9
+.asm_b6ef0 ; 0x48cdb
+ xor a
+ ldh [$9f], a
+ ldh [$a1], a
+ ld a, $10
+ ldh [$a0], a
+ ld hl, $ffa1
+ ld de, $d349
+ ld c, $3
+ ld a, $c
+ call Predef
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $50
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ call $4f1e
+ ld hl, $4d27
+ jr .asm_e2afd ; 0x48d0d
+.asm_c650b ; 0x48d0f
+ ld hl, $4d2c
+ jr .asm_e2afd ; 0x48d12
+.asm_31338 ; 0x48d14
+ ld hl, $4d36
+ jr .asm_e2afd ; 0x48d17
+.asm_ed086 ; 0x48d19
+ ld hl, $4d3b
+.asm_e2afd ; 0x48d1c
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48d22,$1e
+
+CeladonGameCornerText3: ; 0x48d40
+ TX_FAR _CeladonGameCornerText3
+ db $50
+
+CeladonGameCornerText4: ; 0x48d45
+ TX_FAR _CeladonGameCornerText4
+ db $50
+
+CeladonGameCornerText5: ; 0x48d4a
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 2, a
+ jr nz, .asm_d0957 ; 0x48d50
+ ld hl, $4d9c
+ call PrintText
+ ld b,COIN_CASE
+ call $3493
+ jr z, .asm_5aef9 ; 0x48d5d
+ call $4f95
+ jr nc, .asm_98546 ; 0x48d62
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $10
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 2, [hl]
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $4da1
+ jr .asm_c7d1a ; 0x48d87
+.asm_d0957 ; 0x48d89
+ ld hl, $4dac
+ jr .asm_c7d1a ; 0x48d8c
+.asm_98546 ; 0x48d8e
+ ld hl, $4da7
+ jr .asm_c7d1a ; 0x48d91
+.asm_5aef9 ; 0x48d93
+ ld hl, $4f19
+.asm_c7d1a ; 0x48d96
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48d9c,$15
+
+CeladonGameCornerText6: ; 0x48db1
+ TX_FAR _CeladonGameCornerText6
+ db $50
+
+CeladonGameCornerText7: ; 0x48db6
+ db $08 ; asm
+ ld a, [$d77c]
+ bit 1, a
+ ld hl, $4dca
+ jr z, .asm_be3fd ; 0x48dbf
+ ld hl, $4dcf
+.asm_be3fd ; 0x48dc4
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48dca,$a
+
+CeladonGameCornerText8: ; 0x48dd4
+ TX_FAR _CeladonGameCornerText8
+ db $50
+
+CeladonGameCornerText9: ; 0x48dd9
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 4, a
+ jr nz, .asm_ed8bc ; 0x48ddf
+ ld hl, $4e26
+ call PrintText
+ ld b,COIN_CASE
+ call $3493
+ jr z, .asm_df794 ; 0x48dec
+ call $4f95
+ jr nc, .asm_f17c3 ; 0x48df1
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $20
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 4, [hl]
+ ld hl, $4e2b
+ jr .asm_0ddc2 ; 0x48e11
+.asm_ed8bc ; 0x48e13
+ ld hl, $4e36
+ jr .asm_0ddc2 ; 0x48e16
+.asm_f17c3 ; 0x48e18
+ ld hl, $4e31
+ jr .asm_0ddc2 ; 0x48e1b
+.asm_df794 ; 0x48e1d
+ ld hl, $4f19
+.asm_0ddc2 ; 0x48e20
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48e26,$48e3b - $48e26
+CeladonGameCornerText10: ; 0x48e3b
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 3, a
+ jr nz, .asm_ff080 ; 0x48e41
+ ld hl, $4e88
+ call PrintText
+ ld b,COIN_CASE
+ call $3493
+ jr z, .asm_4fb0c ; 0x48e4e
+ call $4f95
+ jr z, .asm_9505a ; 0x48e53
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $20
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 3, [hl]
+ ld hl, $4e8d
+ jr .asm_78d65 ; 0x48e73
+.asm_ff080 ; 0x48e75
+ ld hl, $4e98
+ jr .asm_78d65 ; 0x48e78
+.asm_9505a ; 0x48e7a
+ ld hl, $4e93
+ jr .asm_78d65 ; 0x48e7d
+.asm_4fb0c ; 0x48e7f
+ ld hl, $4f19
+.asm_78d65 ; 0x48e82
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$48e88,$48e9d - $48e88
+CeladonGameCornerText11: ; 0x48e9d
+ db $08 ; asm
+ ld hl, $4ece
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4ed3
+ ld de, $4ed3
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ xor a
+ ldh [$b4], a
+ ldh [$b3], a
+ ldh [$b2], a
+ ld a, $1
+ ld [$d65f], a
+ jp $24d7
+
+INCBIN "baserom.gbc",$48ece,$48edd - $48ece
+CeladonGameCornerText12: ; 0x48edd
+ db $08 ; asm
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $4f09
+ call PrintText
+ call $3748
+ ld a, $ad
+ call $23b1
+ call $3748
+ ld hl, $d77e
+ set 1, [hl]
+ ld a, $43
+ ld [$d09f], a
+ ld bc, $0208
+ ld a, $17
+ call Predef
+ jp $24d7
+
+INCBIN "baserom.gbc",$48f09,$97
CeladonGameCornerObject: ; 0x48fa0 (size=99)
db $f ; border tile
@@ -15713,36 +18377,48 @@ CeladonGameCornerObject: ; 0x48fa0 (size=99)
db SPRITE_GAMBLER, $f + 4, $b + 4, $ff, $d3, $8 ; person
db SPRITE_MART_GUY, $b + 4, $e + 4, $ff, $d2, $9 ; person
db SPRITE_GENTLEMAN, $d + 4, $11 + 4, $ff, $d3, $a ; person
- db SPRITE_ROCKET, $5 + 4, $9 + 4, $ff, $d1, $4b, $e6, $7 ; trainer
+ db SPRITE_ROCKET, $5 + 4, $9 + 4, $ff, $d1, $4b, ROCKET + $C8, $7 ; trainer
; warp-to
EVENT_DISP $a, $11, $f
EVENT_DISP $a, $11, $10
EVENT_DISP $a, $4, $11 ; ROCKET_HIDEOUT_1
-
CeladonGameCornerBlocks: ; 90
INCBIN "maps/celadongamecorner.blk"
-CeladonHouse_h: ; 0x4905d to 0x49069 (12 bytes) (bank=12) (id=136)
+CeladonMart5_h: ; 0x4905d to 0x49069 (12 bytes) (bank=12) (id=136)
db $12 ; tileset
db $04, $0a ; dimensions (y, x)
- dw CeladonHouseBlocks, $506c, $5069 ; blocks, texts, scripts
+ dw CeladonMart5Blocks, $506c, $5069 ; blocks, texts, scripts
db $00 ; connections
dw $5085 ; objects
-INCBIN "baserom.gbc",$49069,$49085 - $49069
-CeladonHouseObject: ; 0x49085 (size=55)
+INCBIN "baserom.gbc",$49069,$49076 - $49069
+
+CeladonMart5Text1: ; 0x49076
+ TX_FAR _CeladonMart5Text1
+ db $50
+
+CeladonMart5Text2: ; 0x4907b
+ TX_FAR _CeladonMart5Text2
+ db $50
+
+CeladonMart5Text5: ; 0x49080
+ TX_FAR _CeladonMart5Text5
+ db $50
+
+CeladonMart5Object: ; 0x49085 (size=55)
db $f ; border tile
db $3 ; warps
- db $1, $c, $0, CELADON_MART_5
+ db $1, $c, $0, CELADON_MART_ROOF
db $1, $10, $1, CELADON_MART_4
- db $1, $1, $0, CELADON_MART_6
+ db $1, $1, $0, CELADON_MART_ELEVATOR
db $1 ; signs
- db $1, $e, $5 ; CeladonHouseText5
+ db $1, $e, $5 ; CeladonMart5Text5
db $4 ; people
db SPRITE_GENTLEMAN, $5 + 4, $e + 4, $fe, $1, $1 ; person
@@ -15751,11 +18427,11 @@ CeladonHouseObject: ; 0x49085 (size=55)
db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $4 ; person
; warp-to
- EVENT_DISP $a, $1, $c ; CELADON_MART_5
+ EVENT_DISP $a, $1, $c ; CELADON_MART_ROOF
EVENT_DISP $a, $1, $10 ; CELADON_MART_4
- EVENT_DISP $a, $1, $1 ; CELADON_MART_6
+ EVENT_DISP $a, $1, $1 ; CELADON_MART_ELEVATOR
-CeladonHouseBlocks: ; 40
+CeladonMart5Blocks: ; 40
INCBIN "maps/celadonhouse.blk"
CeladonPrizeRoom_h: ; 0x490e4 to 0x490f0 (12 bytes) (bank=12) (id=137)
@@ -15766,7 +18442,17 @@ CeladonPrizeRoom_h: ; 0x490e4 to 0x490f0 (12 bytes) (bank=12) (id=137)
dw $5108 ; objects
-INCBIN "baserom.gbc",$490f0,$49108 - $490f0
+INCBIN "baserom.gbc",$490f0,$490fd - $490f0
+
+CeladonPrizeRoomText1: ; 0x490fd
+ TX_FAR _CeladonPrizeRoomText1
+ db $50
+
+CeladonPrizeRoomText2: ; 0x49102
+ TX_FAR _CeladonPrizeRoomText2
+ db $50
+
+INCBIN "baserom.gbc",$49107,$1
CeladonPrizeRoomObject: ; 0x49108 (size=41)
db $f ; border tile
@@ -15799,7 +18485,50 @@ CeladonDiner_h: ; 0x49145 to 0x49151 (12 bytes) (bank=12) (id=138)
dw $51bc ; objects
-INCBIN "baserom.gbc",$49151,$491bc - $49151
+INCBIN "baserom.gbc",$49151,$4915f - $49151
+
+CeladonDinerText1: ; 0x4915f
+ TX_FAR _CeladonDinerText1
+ db $50
+
+CeladonDinerText2: ; 0x49164
+ TX_FAR _CeladonDinerText2
+ db $50
+
+CeladonDinerText3: ; 0x49169
+ TX_FAR _CeladonDinerText3
+ db $50
+
+CeladonDinerText4: ; 0x4916e
+ TX_FAR _CeladonDinerText4
+ db $50
+
+CeladonDinerText5: ; 0x49173
+ db $08 ; asm
+ ld a, [$d783]
+ bit 0, a
+ jr nz, .asm_eb14d ; 0x49179
+ ld hl, $51a7
+ call PrintText
+ ld bc,(COIN_CASE << 8) | 1
+ call $3e2e
+ jr nc, .asm_78e93 ; 0x49187
+ ld hl, $d783
+ set 0, [hl]
+ ld hl, $51ac
+ call PrintText
+ jr .asm_68b61 ; 0x49194
+.asm_78e93 ; 0x49196
+ ld hl, $51b2
+ call PrintText
+ jr .asm_68b61 ; 0x4919c
+.asm_eb14d ; 0x4919e
+ ld hl, $51b7
+ call PrintText
+.asm_68b61 ; 0x491a4
+ jp $24d7
+
+INCBIN "baserom.gbc",$491a7,$15
CeladonDinerObject: ; 0x491bc (size=50)
db $f ; border tile
@@ -15832,7 +18561,21 @@ CeladonHouse2_h: ; 0x49202 to 0x4920e (12 bytes) (bank=12) (id=139)
dw $5227 ; objects
-INCBIN "baserom.gbc",$4920e,$49227 - $4920e
+INCBIN "baserom.gbc",$4920e,$49212 - $4920e
+CeladonHouse2Texts: ; 0x49212
+ dw CeladonHouse2Text1, CeladonHouse2Text2, CeladonHouse2Text3
+
+CeladonHouse2Text1: ; 0x49218
+ TX_FAR _CeladonHouse2Text1
+ db $50
+
+CeladonHouse2Text2: ; 0x4921d
+ TX_FAR _CeladonHouse2Text2
+ db $50
+
+CeladonHouse2Text3: ; 0x49222
+ TX_FAR _CeladonHouse2Text3
+ db $50
CeladonHouse2Object: ; 0x49227 (size=38)
db $f ; border tile
@@ -15863,7 +18606,21 @@ CeladonHotel_h: ; 0x4925d to 0x49269 (12 bytes) (bank=12) (id=140)
dw $5281 ; objects
-INCBIN "baserom.gbc",$49269,$49281 - $49269
+INCBIN "baserom.gbc",$49269,$4926c - $49269
+CeladonHotelTexts: ; 0x4926c
+ dw CeladonHotelText1, CeladonHotelText2, CeladonHotelText3
+
+CeladonHotelText1: ; 0x49272
+ TX_FAR _CeladonHotelText1
+ db $50
+
+CeladonHotelText2: ; 0x49277
+ TX_FAR _CeladonHotelText2
+ db $50
+
+CeladonHotelText3: ; 0x4927c
+ TX_FAR _CeladonHotelText3
+ db $50
CeladonHotelObject: ; 0x49281 (size=38)
db $0 ; border tile
@@ -15894,7 +18651,75 @@ MtMoonPokecenter_h: ; 0x492c3 to 0x492cf (12 bytes) (bank=12) (id=68)
dw $5376 ; objects
-INCBIN "baserom.gbc",$492cf,$49376 - $492cf
+INCBIN "baserom.gbc",$492cf,$492e1 - $492cf
+
+db $ff
+MtMoonPokecenterText1: ; 0x492e1
+ TX_FAR _MtMoonPokecenterText1
+ db $50
+
+MtMoonPokecenterText3: ; 0x492e7
+ TX_FAR _MtMoonPokecenterText3
+ db $50
+
+MtMoonPokecenterText4: ; 0x492ec
+ db $08 ; asm
+ ld a, [$d7c6]
+ add a
+ jp c, $5353
+ ld hl, $535c
+ call PrintText
+ ld a, $13
+ ld [$d125], a
+ call $30e8
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jp nz, $534e
+ ldh [$9f], a
+ ldh [$a1], a
+ ld a, $5
+ ldh [$a0], a
+ call $35a6
+ jr nc, .asm_faa09 ; 0x49317
+ ld hl, $5366
+ jr .asm_ae354 ; 0x4931c
+.asm_faa09 ; 0x4931e
+ ld bc,(MAGIKARP << 8) | 5
+ call GivePokemon
+ jr nc, .asm_38361 ; 0x49324
+ xor a
+ ld [W_WHICHTRADE], a
+ ld [$cd3f], a
+ ld a, $5
+ ld [$cd3e], a
+ ld hl, $cd3f
+ ld de, $d349
+ ld c, $3
+ ld a, $c
+ call Predef
+ ld a, $13
+ ld [$d125], a
+ call $30e8
+ ld hl, $d7c6
+ set 7, [hl]
+ jr .asm_38361 ; 0x4934c
+ ld hl, $5361
+ jr .asm_ae354 ; 0x49351
+ ld hl, $536b
+.asm_ae354 ; 0x49356
+ call PrintText
+.asm_38361 ; 0x49359
+ jp $24d7
+
+INCBIN "baserom.gbc",$4935c,$14
+
+MtMoonPokecenterText5: ; 0x49370
+ TX_FAR _MtMoonPokecenterText5
+ db $50
+
+;XXX wtf?
+db $f6
MtMoonPokecenterObject: ; 0x49376 (size=56)
db $0 ; border tile
@@ -15925,7 +18750,21 @@ RockTunnelPokecenter_h: ; 0x493ae to 0x493ba (12 bytes) (id=81)
dw $53d4 ; objects
-INCBIN "baserom.gbc",$493ba,$493d4 - $493ba
+INCBIN "baserom.gbc",$493ba,$493c8 - $493ba
+
+db $ff
+RockTunnelPokecenterText1: ; 0x493c8
+ TX_FAR _RockTunnelPokecenterText1
+
+INCBIN "baserom.gbc",$493cd,$493ce - $493cd
+
+RockTunnelPokecenterText3: ; 0x493ce
+ TX_FAR _RockTunnelPokecenterText3
+ db $50
+
+; RockTunnelPokecenterText4: ; 0x493d3
+
+INCBIN "baserom.gbc",$493ce+5,$493d4-($493ce+5)
RockTunnelPokecenterObject: ; 0x493d4 (size=44)
db $0 ; border tile
@@ -15954,7 +18793,13 @@ Route11Gate_h: ; 0x49400 to 0x4940c (12 bytes) (id=84)
dw $5416 ; objects
-INCBIN "baserom.gbc",$4940c,$49416 - $4940c
+INCBIN "baserom.gbc",$4940c,$4940f - $4940c
+Route11GateTexts: ; 0x4940f
+ dw Route11GateText1
+
+Route11GateText1: ; 0x49411
+ TX_FAR _Route11GateText1
+ db $50
Route11GateObject: ; 0x49416 (size=50)
db $a ; border tile
@@ -15986,7 +18831,31 @@ Route11GateUpstairs_h: ; 0x49448 to 0x49454 (12 bytes) (id=86)
dw $54da ; objects
-INCBIN "baserom.gbc",$49454,$494da - $49454
+INCBIN "baserom.gbc",$49454,$4945f - $49454
+Route11GateUpstairsText1: ; 0x4945f
+ db $08 ; asm
+ xor a
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
+INCBIN "baserom.gbc",$4946c,$494a8 - $4946c
+Route11GateUpstairsText3: ; 0x494a8
+ db $08 ; asm
+ ld a, [$c109]
+ cp $4
+ jp nz, $55c9
+ ld a, [$d7d8]
+ bit 7, a
+ ld hl, $54c4
+ jr z, .asm_5ac80 ; 0x494b9
+ ld hl, $54c9
+.asm_5ac80 ; 0x494be
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$494c4,$16
Route11GateUpstairsObject: ; 0x494da (size=30)
db $a ; border tile
@@ -16013,7 +18882,13 @@ Route12Gate_h: ; 0x494f8 to 0x49504 (12 bytes) (id=87)
dw $550e ; objects
-INCBIN "baserom.gbc",$49504,$4950e - $49504
+INCBIN "baserom.gbc",$49504,$49507 - $49504
+Route12GateTexts: ; 0x49507
+ dw Route12GateText1
+
+Route12GateText1: ; 0x49509
+ TX_FAR _Route12GateText1
+ db $50
Route12GateObject: ; 0x4950e (size=50)
db $a ; border tile
@@ -16048,7 +18923,61 @@ Route12GateUpstairs_h: ; 0x49554 to 0x49560 (12 bytes) (id=195)
dw $55de ; objects
-INCBIN "baserom.gbc",$49560,$495de - $49560
+INCBIN "baserom.gbc",$49560,$49569 - $49560
+Route12GateUpstairsText1: ; 0x49569
+ db $08 ; asm
+ ld a, [$d7d7]
+ rrca
+ jr c, .asm_0ad3c ; 0x4956e
+ ld hl, $559c
+ call PrintText
+ ld bc,(TM_39 << 8) | 1
+ call $3e2e
+ jr nc, .asm_4c2be ; 0x4957c
+ ld hl, $55a1
+ call PrintText
+ ld hl, $d7d7
+ set 0, [hl]
+ jr .asm_4ba56 ; 0x49589
+.asm_4c2be ; 0x4958b
+ ld hl, $55ac
+ call PrintText
+ jr .asm_4ba56 ; 0x49591
+.asm_0ad3c ; 0x49593
+ ld hl, $55a7
+ call PrintText
+.asm_4ba56 ; 0x49599
+ jp $24d7
+
+INCBIN "baserom.gbc",$4959c,$495b1 - $4959c
+Route12GateUpstairsText2: ; 0x495b1
+ db $08 ; asm
+ ld hl, $55b8
+ jp $55c9
+ rla
+ ld e, d
+ ld c, c
+ inc hl
+ ld d, b
+ ld [$c421], sp
+ ld d, l
+ jp $55c9
+ rla
+ add [hl]
+ ld c, c
+ inc hl
+ ld d, b
+ ld a, [$c109]
+ cp $4
+ jr z, .asm_2fb7f ; 0x495ce
+ ld a, $1
+ jr .asm_b02ad ; 0x495d2
+.asm_2fb7f ; 0x495d4
+ call PrintText
+ xor a
+.asm_b02ad ; 0x495d8
+ ld [$cc3c], a
+ jp $24d7
Route12GateUpstairsObject: ; 0x495de (size=24)
db $a ; border tile
@@ -16066,7 +18995,6 @@ Route12GateUpstairsObject: ; 0x495de (size=24)
; warp-to
EVENT_DISP $4, $7, $7 ; ROUTE_12_GATE
-
Route15Gate_h: ; 0x495f6 to 0x49602 (12 bytes) (id=184)
db $0c ; tileset
db $05, $04 ; dimensions (y, x)
@@ -16075,7 +19003,13 @@ Route15Gate_h: ; 0x495f6 to 0x49602 (12 bytes) (id=184)
dw $560c ; objects
-INCBIN "baserom.gbc",$49602,$4960c - $49602
+INCBIN "baserom.gbc",$49602,$49605 - $49602
+Route15GateTexts: ; 0x49605
+ dw Route15GateText1
+
+Route15GateText1: ; 0x49607
+ TX_FAR _Route15GateText1
+ db $50
Route15GateObject: ; 0x4960c (size=50)
db $a ; border tile
@@ -16109,7 +19043,25 @@ Route16GateMap_h: ; 0x496b2 to 0x496be (12 bytes) (id=186)
dw $578b ; objects
-INCBIN "baserom.gbc",$496be,$4978b - $496be
+INCBIN "baserom.gbc",$496be,$49760 - $496be
+Route16GateMapText1: ; 0x49760
+ db $08 ; asm
+ call $5755
+ jr z, .asm_0bdf3 ; 0x49764
+ ld hl, $577c
+ call PrintText
+ jr .asm_56c9d ; 0x4976c
+.asm_0bdf3 ; 0x4976e
+ ld hl, $5777
+ call PrintText
+.asm_56c9d ; 0x49774
+ jp $24d7
+
+INCBIN "baserom.gbc",$49777,$f
+
+Route16GateMapText2: ; 0x49786
+ TX_FAR _Route16GateMapText2
+ db $50
Route16GateMapObject: ; 0x4978b (size=88)
db $a ; border tile
@@ -16153,7 +19105,21 @@ Route16GateUpstairs_h: ; 0x497ff to 0x4980b (12 bytes) (id=187)
dw $584c ; objects
-INCBIN "baserom.gbc",$4980b,$4984c - $4980b
+INCBIN "baserom.gbc",$4980b,$49816 - $4980b
+Route16GateUpstairsText1: ; 0x49816
+ db $08 ; asm
+ ld hl, $5820
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$49820,$49825 - $49820
+Route16GateUpstairsText2: ; 0x49825
+ db $08 ; asm
+ ld hl, $582f
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$4982f,$1d
Route16GateUpstairsObject: ; 0x4984c (size=30)
db $a ; border tile
@@ -16180,7 +19146,21 @@ Route18Gate_h: ; 0x4986a to 0x49876 (12 bytes) (id=190)
dw $5937 ; objects
-INCBIN "baserom.gbc",$49876,$49937 - $49876
+INCBIN "baserom.gbc",$49876,$49911 - $49876
+Route18GateText1: ; 0x49911
+ db $08 ; asm
+ call $5755
+ jr z, .asm_3c84d ; 0x49915
+ ld hl, $592d
+ call PrintText
+ jr .asm_a8410 ; 0x4991d
+.asm_3c84d ; 0x4991f
+ ld hl, $5928
+ call PrintText
+.asm_a8410 ; 0x49925
+ jp $24d7
+
+INCBIN "baserom.gbc",$49928,$f
Route18GateObject: ; 0x49937 (size=50)
db $a ; border tile
@@ -16212,7 +19192,16 @@ Route18GateHeader_h: ; 0x49969 to 0x49975 (12 bytes) (id=191)
dw $59a4 ; objects
-INCBIN "baserom.gbc",$49975,$499a4 - $49975
+INCBIN "baserom.gbc",$49975,$4997e - $49975
+Route18GateHeaderText1: ; 0x4997e
+ db $08 ; asm
+ ld a, $5
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
+INCBIN "baserom.gbc",$4998c,$18
Route18GateHeaderObject: ; 0x499a4 (size=24)
db $a ; border tile
@@ -16238,7 +19227,54 @@ MtMoon1_h: ; 0x499bc to 0x499c8 (12 bytes) (id=59)
dw $5b06 ; objects
-INCBIN "baserom.gbc",$499c8,$49b06 - $499c8
+INCBIN "baserom.gbc",$499c8,$49a52 - $499c8
+MtMoon1Text1: ; 0x49a52
+ db $08 ; asm
+ ld hl, $59fd
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text2: ; 0x49a5c
+ db $08 ; asm
+ ld hl, $5a09
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text3: ; 0x49a66
+ db $08 ; asm
+ ld hl, $5a15
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text4: ; 0x49a70
+ db $08 ; asm
+ ld hl, $5a21
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text5: ; 0x49a7a
+ db $08 ; asm
+ ld hl, $5a2d
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text6: ; 0x49a84
+ db $08 ; asm
+ ld hl, $5a39
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon1Text7: ; 0x49a8e
+ db $08 ; asm
+ ld hl, $5a45
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$49a98,$69
+
+MtMoon1Text14: ; 0x49b01
+ TX_FAR _MtMoon1Text14
+ db $50
MtMoon1Object: ; 0x49b06 (size=145)
db $3 ; border tile
@@ -16254,19 +19290,19 @@ MtMoon1Object: ; 0x49b06 (size=145)
db $17, $f, $e ; MtMoon1Text14
db $d ; people
- db SPRITE_HIKER, $6 + 4, $5 + 4, $ff, $d0, $41, $d1, $1 ; trainer
- db SPRITE_BUG_CATCHER, $10 + 4, $c + 4, $ff, $d3, $42, $c9, $3 ; trainer
- db SPRITE_LASS, $4 + 4, $1e + 4, $ff, $d0, $43, $cb, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $1f + 4, $18 + 4, $ff, $d1, $44, $d0, $1 ; trainer
- db SPRITE_LASS, $17 + 4, $10 + 4, $ff, $d0, $45, $cb, $6 ; trainer
- db SPRITE_BUG_CATCHER, $16 + 4, $7 + 4, $ff, $d0, $46, $ca, $7 ; trainer
- db SPRITE_BUG_CATCHER, $1b + 4, $1e + 4, $ff, $d3, $47, $ca, $8 ; trainer
- db SPRITE_BALL, $14 + 4, $2 + 4, $ff, $ff, $88, $14 ; item
- db SPRITE_BALL, $2 + 4, $2 + 4, $ff, $ff, $89, $a ; item
- db SPRITE_BALL, $1f + 4, $23 + 4, $ff, $ff, $8a, $28 ; item
- db SPRITE_BALL, $17 + 4, $24 + 4, $ff, $ff, $8b, $1d ; item
- db SPRITE_BALL, $21 + 4, $14 + 4, $ff, $ff, $8c, $14 ; item
- db SPRITE_BALL, $20 + 4, $5 + 4, $ff, $ff, $8d, $d4 ; item
+ db SPRITE_HIKER, $6 + 4, $5 + 4, $ff, $d0, $41, HIKER + $C8, $1 ; trainer
+ db SPRITE_BUG_CATCHER, $10 + 4, $c + 4, $ff, $d3, $42, YOUNGSTER + $C8, $3 ; trainer
+ db SPRITE_LASS, $4 + 4, $1e + 4, $ff, $d0, $43, LASS + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $1f + 4, $18 + 4, $ff, $d1, $44, SUPER_NERD + $C8, $1 ; trainer
+ db SPRITE_LASS, $17 + 4, $10 + 4, $ff, $d0, $45, LASS + $C8, $6 ; trainer
+ db SPRITE_BUG_CATCHER, $16 + 4, $7 + 4, $ff, $d0, $46, BUG_CATCHER + $C8, $7 ; trainer
+ db SPRITE_BUG_CATCHER, $1b + 4, $1e + 4, $ff, $d3, $47, BUG_CATCHER + $C8, $8 ; trainer
+ db SPRITE_BALL, $14 + 4, $2 + 4, $ff, $ff, $88, POTION ; item
+ db SPRITE_BALL, $2 + 4, $2 + 4, $ff, $ff, $89, MOON_STONE ; item
+ db SPRITE_BALL, $1f + 4, $23 + 4, $ff, $ff, $8a, RARE_CANDY ; item
+ db SPRITE_BALL, $17 + 4, $24 + 4, $ff, $ff, $8b, ESCAPE_ROPE ; item
+ db SPRITE_BALL, $21 + 4, $14 + 4, $ff, $ff, $8c, POTION ; item
+ db SPRITE_BALL, $20 + 4, $5 + 4, $ff, $ff, $8d, TM_12 ; item
; warp-to
EVENT_DISP $14, $23, $e
@@ -16286,7 +19322,118 @@ MtMoon3_h: ; 0x49cff to 0x49d0b (12 bytes) (id=61)
dw $5fdb ; objects
-INCBIN "baserom.gbc",$49d0b,$49fdb - $49d0b
+INCBIN "baserom.gbc",$49d0b,$49e79 - $49d0b
+MtMoon3Text1: ; 0x49e79
+ db $08 ; asm
+ ld a, [$d7f6]
+ bit 1, a
+ jr z, .asm_be1e0 ; 0x49e7f
+ and $c0
+ jr nz, .asm_f8cd4 ; 0x49e83
+ ld hl, $5f8f
+ call PrintText
+ jr .asm_f1fba ; 0x49e8b
+.asm_be1e0 ; 0x49e8d
+ ld hl, $5f85
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $5f8a
+ ld de, $5f8a
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $3
+ ld [$d607], a
+ ld [$da39], a
+ jr .asm_f1fba ; 0x49eb6
+.asm_f8cd4 ; 0x49eb8
+ ld hl, $5f94
+ call PrintText
+.asm_f1fba ; 0x49ebe
+ jp $24d7
+
+MtMoon3Text2: ; 0x49ec1
+ db $08 ; asm
+ ld hl, $5e48
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon3Text3: ; 0x49ecb
+ db $08 ; asm
+ ld hl, $5e54
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon3Text4: ; 0x49ed5
+ db $08 ; asm
+ ld hl, $5e60
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon3Text5: ; 0x49edf
+ db $08 ; asm
+ ld hl, $5e6c
+ call LoadTrainerHeader
+ jp $24d7
+
+MtMoon3Text6: ; 0x49ee9
+ db $08 ; asm
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $5f24
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_1fa5e ; 0x49efc
+ ld bc,(DOME_FOSSIL << 8) | 1
+ call $3e2e
+ jp nc, $5f76
+ call $5f69
+ ld a, $6d
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld hl, $d7f6
+ set 6, [hl]
+ ld a, $4
+ ld [$d607], a
+ ld [$da39], a
+.asm_1fa5e ; 0x49f21
+ jp $24d7
+
+INCBIN "baserom.gbc",$49f24,$49f29 - $49f24
+MtMoon3Text7: ; 0x49f29
+ db $08 ; asm
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $5f64
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_8e988 ; 0x49f3c
+ ld bc,(HELIX_FOSSIL << 8) | 1
+ call $3e2e
+ jp nc, $5f76
+ call $5f69
+ ld a, $6e
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld hl, $d7f6
+ set 7, [hl]
+ ld a, $4
+ ld [$d607], a
+ ld [$da39], a
+.asm_8e988 ; 0x49f61
+ jp $24d7
+
+INCBIN "baserom.gbc",$49f64,$77
MtMoon3Object: ; 0x49fdb (size=102)
db $3 ; border tile
@@ -16300,15 +19447,15 @@ MtMoon3Object: ; 0x49fdb (size=102)
db $0 ; signs
db $9 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $c + 4, $ff, $d3, $41, $d0, $2 ; trainer
- db SPRITE_ROCKET, $10 + 4, $b + 4, $ff, $d0, $42, $e6, $1 ; trainer
- db SPRITE_ROCKET, $16 + 4, $f + 4, $ff, $d0, $43, $e6, $2 ; trainer
- db SPRITE_ROCKET, $b + 4, $1d + 4, $ff, $d1, $44, $e6, $3 ; trainer
- db SPRITE_ROCKET, $11 + 4, $1d + 4, $ff, $d2, $45, $e6, $4 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $c + 4, $ff, $d3, $41, SUPER_NERD + $C8, $2 ; trainer
+ db SPRITE_ROCKET, $10 + 4, $b + 4, $ff, $d0, $42, ROCKET + $C8, $1 ; trainer
+ db SPRITE_ROCKET, $16 + 4, $f + 4, $ff, $d0, $43, ROCKET + $C8, $2 ; trainer
+ db SPRITE_ROCKET, $b + 4, $1d + 4, $ff, $d1, $44, ROCKET + $C8, $3 ; trainer
+ db SPRITE_ROCKET, $11 + 4, $1d + 4, $ff, $d2, $45, ROCKET + $C8, $4 ; trainer
db SPRITE_OMANYTE, $6 + 4, $c + 4, $ff, $ff, $6 ; person
db SPRITE_OMANYTE, $6 + 4, $d + 4, $ff, $ff, $7 ; person
- db SPRITE_BALL, $15 + 4, $19 + 4, $ff, $ff, $88, $23 ; item
- db SPRITE_BALL, $5 + 4, $1d + 4, $ff, $ff, $89, $c9 ; item
+ db SPRITE_BALL, $15 + 4, $19 + 4, $ff, $ff, $88, HP_UP ; item
+ db SPRITE_BALL, $5 + 4, $1d + 4, $ff, $ff, $89, TM_01 ; item
; warp-to
EVENT_DISP $14, $9, $19 ; MT_MOON_2
@@ -16327,7 +19474,23 @@ SafariZoneWest_h: ; 0x4a1a9 to 0x4a1b5 (12 bytes) (id=219)
dw $61dc ; objects
-INCBIN "baserom.gbc",$4a1b5,$4a1dc - $4a1b5
+INCBIN "baserom.gbc",$4a1b5,$4a1c8 - $4a1b5
+
+SafariZoneWestText5: ; 0x4a1c8
+ TX_FAR _SafariZoneWestText5
+ db $50
+
+SafariZoneWestText6: ; 0x4a1cd
+ TX_FAR _SafariZoneWestText6
+ db $50
+
+SafariZoneWestText7: ; 0x4a1d2
+ TX_FAR _SafariZoneWestText7
+ db $50
+
+SafariZoneWestText8: ; 0x4a1d7
+ TX_FAR _SafariZoneWestText8
+ db $50
SafariZoneWestObject: ; 0x4a1dc (size=108)
db $0 ; border tile
@@ -16349,10 +19512,10 @@ SafariZoneWestObject: ; 0x4a1dc (size=108)
db $16, $18, $8 ; SafariZoneWestText8
db $4 ; people
- db SPRITE_BALL, $14 + 4, $8 + 4, $ff, $ff, $81, $11 ; item
- db SPRITE_BALL, $7 + 4, $9 + 4, $ff, $ff, $82, $e8 ; item
- db SPRITE_BALL, $12 + 4, $12 + 4, $ff, $ff, $83, $36 ; item
- db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $84, $40 ; item
+ db SPRITE_BALL, $14 + 4, $8 + 4, $ff, $ff, $81, MAX_POTION ; item
+ db SPRITE_BALL, $7 + 4, $9 + 4, $ff, $ff, $82, TM_32 ; item
+ db SPRITE_BALL, $12 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
+ db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $84, GOLD_TEETH ; item
; warp-to
EVENT_DISP $f, $0, $14 ; SAFARI_ZONE_NORTH
@@ -16364,7 +19527,6 @@ SafariZoneWestObject: ; 0x4a1dc (size=108)
EVENT_DISP $f, $3, $3 ; SAFARI_ZONE_SECRET_HOUSE
EVENT_DISP $f, $b, $b ; SAFARI_ZONE_REST_HOUSE_2
-
SafariZoneWestBlocks: ; 195
INCBIN "maps/safarizonewest.blk"
@@ -16376,7 +19538,33 @@ SafariZoneSecretHouse_h: ; 0x4a30b to 0x4a317 (12 bytes) (id=222)
dw $6365 ; objects
-INCBIN "baserom.gbc",$4a317,$4a365 - $4a317
+INCBIN "baserom.gbc",$4a317,$4a31c - $4a317
+SafariZoneSecretHouseText1: ; 0x4a31c
+ db $08 ; asm
+ ld a, [$d857]
+ bit 0, a
+ jr nz, .asm_20a9b ; 0x4a322
+ ld hl, $6350
+ call PrintText
+ ld bc,(HM_03 << 8) | 1
+ call $3e2e
+ jr nc, .asm_a21d2 ; 0x4a330
+ ld hl, $6355
+ call PrintText
+ ld hl, $d857
+ set 0, [hl]
+ jr .asm_8f1fc ; 0x4a33d
+.asm_a21d2 ; 0x4a33f
+ ld hl, $6360
+ call PrintText
+ jr .asm_8f1fc ; 0x4a345
+.asm_20a9b ; 0x4a347
+ ld hl, $635b
+ call PrintText
+.asm_8f1fc ; 0x4a34d
+ jp $24d7
+
+INCBIN "baserom.gbc",$4a350,$15
SafariZoneSecretHouseObject: ; 0x4a365 (size=26)
db $17 ; border tile
@@ -16393,7 +19581,6 @@ SafariZoneSecretHouseObject: ; 0x4a365 (size=26)
EVENT_DISP $4, $7, $2 ; SAFARI_ZONE_WEST
EVENT_DISP $4, $7, $3 ; SAFARI_ZONE_WEST
-
SafariZoneSecretHouseBlocks: ; 16
INCBIN "maps/safarizonesecrethouse.blk"
@@ -16501,7 +19688,14 @@ BattleCenterM_h: ; 0x4fd04 to 0x4fd10 (12 bytes) (id=239)
dw $7d53 ; objects
-INCBIN "baserom.gbc",$4fd10,$4fd53 - $4fd10
+INCBIN "baserom.gbc",$4fd10,$4fd4c - $4fd10
+BattleCenterMTexts: ; 0x4fd4c
+ dw BattleCenterMText1
+
+BattleCenterMText1: ; 0x4fd4e
+ TX_FAR _BattleCenterMText1
+ db $50
+
BattleCenterMObject: ; 0x4fd53 (size=10)
db $e ; border tile
@@ -16512,7 +19706,6 @@ BattleCenterMObject: ; 0x4fd53 (size=10)
db $1 ; people
db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
-
BattleCenterMBlocks: ; 20
INCBIN "maps/battlecenterm.blk"
@@ -16524,7 +19717,14 @@ TradeCenterM_h: ; 0x4fd71 to 0x4fd7d (12 bytes) (id=240)
dw $7d87 ; objects
-INCBIN "baserom.gbc",$4fd7d,$4fd87 - $4fd7d
+INCBIN "baserom.gbc",$4fd7d,$4fd80 - $4fd7d
+TradeCenterMTexts: ; 0x4fd80
+ dw TradeCenterMText1
+
+TradeCenterMText1: ; 0x4fd82
+ TX_FAR _TradeCenterMText1
+ db $50
+
TradeCenterMObject: ; 0x4fd87 (size=10)
db $e ; border tile
@@ -16535,7 +19735,6 @@ TradeCenterMObject: ; 0x4fd87 (size=10)
db $1 ; people
db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
-
TradeCenterMBlocks: ; 20
INCBIN "maps/tradecenterm.blk"
@@ -16685,7 +19884,7 @@ PredefPointers: ; 7E79
dbw $1C,$76BD
dbw $1C,$75E8
dbw $1C,$77E2
- dbw $1C,$5AD9
+ dbw BANK(Predef54),Predef54 ; 54 initiate trade
dbw $1D,$405C
dbw $11,$4169
dbw $1E,$45BA
@@ -16742,8 +19941,6 @@ Route22Object: ; 0x50022 (size=27)
; warp-to
EVENT_DISP $14, $5, $8 ; ROUTE_22_GATE
-INCBIN "baserom.gbc",$5003d,$0
-
Route22Blocks: ; 180
INCBIN "maps/route22.blk"
@@ -16783,23 +19980,21 @@ Route20Object: ; 0x50113 (size=106)
db $b, $39, $c ; Route20Text12
db $a ; people
- db SPRITE_SWIMMER, $8 + 4, $57 + 4, $ff, $d1, $41, $d7, $9 ; trainer
- db SPRITE_SWIMMER, $b + 4, $44 + 4, $ff, $d1, $42, $da, $f ; trainer
- db SPRITE_SWIMMER, $a + 4, $2d + 4, $ff, $d0, $43, $da, $6 ; trainer
- db SPRITE_SWIMMER, $e + 4, $37 + 4, $ff, $d3, $44, $ce, $18 ; trainer
- db SPRITE_SWIMMER, $d + 4, $26 + 4, $ff, $d0, $45, $d7, $a ; trainer
- db SPRITE_SWIMMER, $d + 4, $57 + 4, $ff, $d1, $46, $d7, $b ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $22 + 4, $ff, $d1, $47, $df, $b ; trainer
- db SPRITE_SWIMMER, $7 + 4, $19 + 4, $ff, $d1, $48, $da, $7 ; trainer
- db SPRITE_SWIMMER, $c + 4, $18 + 4, $ff, $d0, $49, $ce, $10 ; trainer
- db SPRITE_SWIMMER, $8 + 4, $f + 4, $ff, $d1, $4a, $da, $8 ; trainer
+ db SPRITE_SWIMMER, $8 + 4, $57 + 4, $ff, $d1, $41, SWIMMER + $C8, $9 ; trainer
+ db SPRITE_SWIMMER, $b + 4, $44 + 4, $ff, $d1, $42, BEAUTY + $C8, $f ; trainer
+ db SPRITE_SWIMMER, $a + 4, $2d + 4, $ff, $d0, $43, BEAUTY + $C8, $6 ; trainer
+ db SPRITE_SWIMMER, $e + 4, $37 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $18 ; trainer
+ db SPRITE_SWIMMER, $d + 4, $26 + 4, $ff, $d0, $45, SWIMMER + $C8, $a ; trainer
+ db SPRITE_SWIMMER, $d + 4, $57 + 4, $ff, $d1, $46, SWIMMER + $C8, $b ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $22 + 4, $ff, $d1, $47, BIRD_KEEPER + $C8, $b ; trainer
+ db SPRITE_SWIMMER, $7 + 4, $19 + 4, $ff, $d1, $48, BEAUTY + $C8, $7 ; trainer
+ db SPRITE_SWIMMER, $c + 4, $18 + 4, $ff, $d0, $49, JR__TRAINER_F + $C8, $10 ; trainer
+ db SPRITE_SWIMMER, $8 + 4, $f + 4, $ff, $d1, $4a, BEAUTY + $C8, $8 ; trainer
; warp-to
EVENT_DISP $32, $5, $30 ; SEAFOAM_ISLANDS_1
EVENT_DISP $32, $9, $3a ; SEAFOAM_ISLANDS_1
-INCBIN "baserom.gbc",$5017d,$0
-
Route20Blocks: ; 450
INCBIN "maps/route20.blk"
@@ -16854,8 +20049,6 @@ Route23Object: ; 0x50361 (size=81)
EVENT_DISP $a, $1f, $4 ; VICTORY_ROAD_1
EVENT_DISP $a, $1f, $e ; VICTORY_ROAD_2
-INCBIN "baserom.gbc",$503b2,$0
-
Route23Blocks: ; 720
INCBIN "maps/route23.blk"
@@ -16891,16 +20084,14 @@ Route24Object: ; 0x506a4 (size=67)
db $0 ; signs
db $8 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $b + 4, $ff, $d2, $41, $e6, $6 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $5 + 4, $ff, $d1, $42, $cd, $2 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $13 + 4, $b + 4, $ff, $d2, $43, $cd, $3 ; trainer
- db SPRITE_LASS, $16 + 4, $a + 4, $ff, $d3, $44, $cb, $7 ; trainer
- db SPRITE_BUG_CATCHER, $19 + 4, $b + 4, $ff, $d2, $45, $c9, $4 ; trainer
- db SPRITE_LASS, $1c + 4, $a + 4, $ff, $d3, $46, $cb, $8 ; trainer
- db SPRITE_BUG_CATCHER, $1f + 4, $b + 4, $ff, $d2, $47, $ca, $9 ; trainer
- db SPRITE_BALL, $5 + 4, $a + 4, $ff, $ff, $88, $f5 ; item
-
-INCBIN "baserom.gbc",$506e7,$0
+ db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $b + 4, $ff, $d2, $41, ROCKET + $C8, $6 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $5 + 4, $ff, $d1, $42, JR__TRAINER_M + $C8, $2 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $13 + 4, $b + 4, $ff, $d2, $43, JR__TRAINER_M + $C8, $3 ; trainer
+ db SPRITE_LASS, $16 + 4, $a + 4, $ff, $d3, $44, LASS + $C8, $7 ; trainer
+ db SPRITE_BUG_CATCHER, $19 + 4, $b + 4, $ff, $d2, $45, YOUNGSTER + $C8, $4 ; trainer
+ db SPRITE_LASS, $1c + 4, $a + 4, $ff, $d3, $46, LASS + $C8, $8 ; trainer
+ db SPRITE_BUG_CATCHER, $1f + 4, $b + 4, $ff, $d2, $47, BUG_CATCHER + $C8, $9 ; trainer
+ db SPRITE_BALL, $5 + 4, $a + 4, $ff, $ff, $88, TM_45 ; item
Route24Blocks: ; 180
INCBIN "maps/route24.blk"
@@ -16933,22 +20124,20 @@ Route25Object: ; 0x507b2 (size=94)
db $3, $2b, $b ; Route25Text11
db $a ; people
- db SPRITE_BUG_CATCHER, $2 + 4, $e + 4, $ff, $d0, $41, $c9, $5 ; trainer
- db SPRITE_BUG_CATCHER, $5 + 4, $12 + 4, $ff, $d1, $42, $c9, $6 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $18 + 4, $ff, $d0, $43, $cd, $2 ; trainer
- db SPRITE_LASS, $8 + 4, $12 + 4, $ff, $d3, $44, $cb, $9 ; trainer
- db SPRITE_BUG_CATCHER, $3 + 4, $20 + 4, $ff, $d2, $45, $c9, $7 ; trainer
- db SPRITE_LASS, $4 + 4, $25 + 4, $ff, $d0, $46, $cb, $a ; trainer
- db SPRITE_HIKER, $4 + 4, $8 + 4, $ff, $d3, $47, $d1, $2 ; trainer
- db SPRITE_HIKER, $9 + 4, $17 + 4, $ff, $d1, $48, $d1, $3 ; trainer
- db SPRITE_HIKER, $7 + 4, $d + 4, $ff, $d3, $49, $d1, $4 ; trainer
- db SPRITE_BALL, $2 + 4, $16 + 4, $ff, $ff, $8a, $db ; item
+ db SPRITE_BUG_CATCHER, $2 + 4, $e + 4, $ff, $d0, $41, YOUNGSTER + $C8, $5 ; trainer
+ db SPRITE_BUG_CATCHER, $5 + 4, $12 + 4, $ff, $d1, $42, YOUNGSTER + $C8, $6 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $18 + 4, $ff, $d0, $43, JR__TRAINER_M + $C8, $2 ; trainer
+ db SPRITE_LASS, $8 + 4, $12 + 4, $ff, $d3, $44, LASS + $C8, $9 ; trainer
+ db SPRITE_BUG_CATCHER, $3 + 4, $20 + 4, $ff, $d2, $45, YOUNGSTER + $C8, $7 ; trainer
+ db SPRITE_LASS, $4 + 4, $25 + 4, $ff, $d0, $46, LASS + $C8, $a ; trainer
+ db SPRITE_HIKER, $4 + 4, $8 + 4, $ff, $d3, $47, HIKER + $C8, $2 ; trainer
+ db SPRITE_HIKER, $9 + 4, $17 + 4, $ff, $d1, $48, HIKER + $C8, $3 ; trainer
+ db SPRITE_HIKER, $7 + 4, $d + 4, $ff, $d3, $49, HIKER + $C8, $4 ; trainer
+ db SPRITE_BALL, $2 + 4, $16 + 4, $ff, $ff, $8a, TM_19 ; item
; warp-to
EVENT_DISP $1e, $3, $2d ; BILLS_HOUSE
-INCBIN "baserom.gbc",$50810,$0
-
Route25Blocks: ; 270
INCBIN "maps/route25.blk"
@@ -16986,7 +20175,6 @@ IndigoPlateauObject: ; 0x50936 (size=20)
EVENT_DISP $a, $5, $9 ; INDIGO_PLATEAU_LOBBY
EVENT_DISP $a, $5, $a ; INDIGO_PLATEAU_LOBBY
-
IndigoPlateauBlocks: ; 90
INCBIN "maps/indigoplateau.blk"
@@ -17078,12 +20266,347 @@ SaffronCityObject: ; 0x509dc (size=188)
EVENT_DISP $14, $1d, $9 ; SAFFRON_POKECENTER
EVENT_DISP $14, $1d, $1d ; SAFFRON_HOUSE_2
-INCBIN "baserom.gbc",$50a98,$0
-
SaffronCityBlocks: ; 360
INCBIN "maps/saffroncity.blk"
-INCBIN "baserom.gbc",$50c00,$b91
+INCBIN "baserom.gbc",$50c00,$50c35 - $50c00
+
+SaffronCityText1: ; 0x50c35
+ TX_FAR _SaffronCityText1
+ db $50
+
+SaffronCityText2: ; 0x50c3a
+ TX_FAR _SaffronCityText2
+ db $50
+
+SaffronCityText3: ; 0x50c3f
+ TX_FAR _SaffronCityText3
+ db $50
+
+SaffronCityText4: ; 0x50c44
+ TX_FAR _SaffronCityText4
+ db $50
+
+SaffronCityText5: ; 0x50c49
+ TX_FAR _SaffronCityText5
+ db $50
+
+SaffronCityText6: ; 0x50c4e
+ TX_FAR _SaffronCityText6
+ db $50
+
+SaffronCityText7: ; 0x50c53
+ TX_FAR _SaffronCityText7
+ db $50
+
+SaffronCityText8: ; 0x50c58
+ TX_FAR _SaffronCityText8
+ db $50
+
+SaffronCityText9: ; 0x50c5d
+ TX_FAR _SaffronCityText9
+ db $50
+
+SaffronCityText10: ; 0x50c62
+ TX_FAR _SaffronCityText10
+ db $50
+
+SaffronCityText11: ; 0x50c67
+ TX_FAR _SaffronCityText11
+ db $50
+
+SaffronCityText12: ; 0x50c6c
+ TX_FAR _SaffronCityText12
+
+INCBIN "baserom.gbc",$50c70,$50c72 - $50c70
+
+SaffronCityText13: ; 0x50c72
+ TX_FAR _SaffronCityText13
+ db $50
+
+SaffronCityText14: ; 0x50c77
+ TX_FAR _SaffronCityText14
+ db $50
+
+SaffronCityText15: ; 0x50c7c
+ TX_FAR _SaffronCityText15
+ db $50
+
+SaffronCityText16: ; 0x50c81
+ TX_FAR _SaffronCityText16
+ db $50
+
+SaffronCityText17: ; 0x50c86
+ TX_FAR _SaffronCityText17
+ db $50
+
+SaffronCityText18: ; 0x50c8b
+ TX_FAR _SaffronCityText18
+ db $50
+
+SaffronCityText20: ; 0x50c90
+ TX_FAR _SaffronCityText20
+ db $50
+
+SaffronCityText21: ; 0x50c95
+ TX_FAR _SaffronCityText21
+ db $50
+
+SaffronCityText22: ; 0x50c9a
+ TX_FAR _SaffronCityText22
+ db $50
+
+SaffronCityText24: ; 0x50c9f
+ TX_FAR _SaffronCityText24
+ db $50
+
+SaffronCityText25: ; 0x50ca4
+ TX_FAR _SaffronCityText25
+ db $50
+
+INCBIN "baserom.gbc",$50ca9,$50db3 - $50ca9
+Route20Text1: ; 0x50db3
+ db $08 ; asm
+ ld hl, $4d3a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text2: ; 0x50dbd
+ db $08 ; asm
+ ld hl, $4d46
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text3: ; 0x50dc7
+ db $08 ; asm
+ ld hl, $4d52
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text4: ; 0x50dd1
+ db $08 ; asm
+ ld hl, $4d5e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text5: ; 0x50ddb
+ db $08 ; asm
+ ld hl, $4d6a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text6: ; 0x50de5
+ db $08 ; asm
+ ld hl, $4d76
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text7: ; 0x50def
+ db $08 ; asm
+ ld hl, $4d82
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text8: ; 0x50df9
+ db $08 ; asm
+ ld hl, $4d8e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text9: ; 0x50e03
+ db $08 ; asm
+ ld hl, $4d9a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route20Text10: ; 0x50e0d
+ db $08 ; asm
+ ld hl, $4da6
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$50e17,$96
+
+Route20Text12:
+Route20Text11: ; 0x50ead
+ TX_FAR _Route20Text11
+ db $50
+
+INCBIN "baserom.gbc",$50eb2,$5117b - $50eb2
+Route22Text1: ; 0x5117b
+ db $08 ; asm
+ ld a, [$d7eb]
+ bit 5, a
+ jr z, .asm_a88cf ; 0x51181
+ ld hl, $51b2
+ call PrintText
+ jr .asm_48088 ; 0x51189
+.asm_a88cf ; 0x5118b
+ ld hl, $51ad
+ call PrintText
+.asm_48088 ; 0x51191
+ jp $24d7
+
+Route22Text2: ; 0x51194
+ db $08 ; asm
+ ld a, [$d7eb]
+ bit 6, a
+ jr z, .asm_58c0a ; 0x5119a
+ ld hl, $51c6
+ call PrintText
+ jr .asm_673ee ; 0x511a2
+.asm_58c0a ; 0x511a4
+ ld hl, $51c1
+ call PrintText
+.asm_673ee ; 0x511aa
+ jp $24d7
+
+INCBIN "baserom.gbc",$511ad,$28
+
+Route22Text3: ; 0x511d5
+ TX_FAR _Route22Text3
+ db $50
+
+INCBIN "baserom.gbc",$511da,$51307 - $511da
+Route23Text1: ; 0x51307
+ db $08 ; asm
+ ld a, $6
+ call $5346
+ jp $24d7
+
+Route23Text2: ; 0x51310
+ db $08 ; asm
+ ld a, $5
+ call $5346
+ jp $24d7
+
+Route23Text3: ; 0x51319
+ db $08 ; asm
+ ld a, $4
+ call $5346
+ jp $24d7
+
+Route23Text4: ; 0x51322
+ db $08 ; asm
+ ld a, $3
+ call $5346
+ jp $24d7
+
+Route23Text5: ; 0x5132b
+ db $08 ; asm
+ ld a, $2
+ call $5346
+ jp $24d7
+
+Route23Text6: ; 0x51334
+ db $08 ; asm
+ ld a, $1
+ call $5346
+ jp $24d7
+
+INCBIN "baserom.gbc",$5133d,$6b
+
+Route23Text8: ; 0x513a8
+ TX_FAR _Route23Text8
+ db $50
+
+INCBIN "baserom.gbc",$513ad,$51535 - $513ad
+Route24Text2: ; 0x51535
+ db $08 ; asm
+ ld hl, $545b
+ call LoadTrainerHeader
+ jp $24d7
+
+Route24Text3: ; 0x5153f
+ db $08 ; asm
+ ld hl, $5467
+ call LoadTrainerHeader
+ jp $24d7
+
+Route24Text4: ; 0x51549
+ db $08 ; asm
+ ld hl, $5473
+ call LoadTrainerHeader
+ jp $24d7
+
+Route24Text5: ; 0x51553
+ db $08 ; asm
+ ld hl, $547f
+ call LoadTrainerHeader
+ jp $24d7
+
+Route24Text6: ; 0x5155d
+ db $08 ; asm
+ ld hl, $548b
+ call LoadTrainerHeader
+ jp $24d7
+
+Route24Text7: ; 0x51567
+ db $08 ; asm
+ ld hl, $5497
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51571,$516ab - $51571
+Route25Text1: ; 0x516ab
+ db $08 ; asm
+ ld hl, $563e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text2: ; 0x516b5
+ db $08 ; asm
+ ld hl, $564a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text3: ; 0x516bf
+ db $08 ; asm
+ ld hl, $5656
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text4: ; 0x516c9
+ db $08 ; asm
+ ld hl, $5662
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text5: ; 0x516d3
+ db $08 ; asm
+ ld hl, $566e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text6: ; 0x516dd
+ db $08 ; asm
+ ld hl, $567a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text7: ; 0x516e7
+ db $08 ; asm
+ ld hl, $5686
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text8: ; 0x516f1
+ db $08 ; asm
+ ld hl, $5692
+ call LoadTrainerHeader
+ jp $24d7
+
+Route25Text9: ; 0x516fb
+ db $08 ; asm
+ ld hl, $569e
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51705,$87
+
+Route25Text11: ; 0x5178c
+ TX_FAR _Route25Text11
+ db $50
VictoryRoad2_h: ; 0x51791 to 0x5179d (12 bytes) (id=194)
db $11 ; tileset
@@ -17093,7 +20616,44 @@ VictoryRoad2_h: ; 0x51791 to 0x5179d (12 bytes) (id=194)
dw $5915 ; objects
-INCBIN "baserom.gbc",$5179d,$51915 - $5179d
+INCBIN "baserom.gbc",$5179d,$5187e - $5179d
+VictoryRoad2Text1: ; 0x5187e
+ db $08 ; asm
+ ld hl, $5835
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad2Text2: ; 0x51888
+ db $08 ; asm
+ ld hl, $5841
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad2Text3: ; 0x51892
+ db $08 ; asm
+ ld hl, $584d
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad2Text4: ; 0x5189c
+ db $08 ; asm
+ ld hl, $5859
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad2Text5: ; 0x518a6
+ db $08 ; asm
+ ld hl, $5865
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad2Text6: ; 0x518b0
+ db $08 ; asm
+ ld hl, $5871
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$518ba,$5b
VictoryRoad2Object: ; 0x51915 (size=154)
db $7d ; border tile
@@ -17109,16 +20669,16 @@ VictoryRoad2Object: ; 0x51915 (size=154)
db $0 ; signs
db $d ; people
- db SPRITE_HIKER, $9 + 4, $c + 4, $ff, $d2, $41, $e0, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $15 + 4, $ff, $d2, $42, $dd, $2 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $8 + 4, $13 + 4, $ff, $d0, $43, $de, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $d0, $44, $cf, $6 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $3 + 4, $1a + 4, $ff, $d2, $45, $dd, $5 ; trainer
- db SPRITE_BIRD, $5 + 4, $b + 4, $ff, $d1, $46, $49, $32 ; trainer
- db SPRITE_BALL, $5 + 4, $1b + 4, $ff, $ff, $87, $d9 ; item
- db SPRITE_BALL, $9 + 4, $12 + 4, $ff, $ff, $88, $34 ; item
- db SPRITE_BALL, $b + 4, $9 + 4, $ff, $ff, $89, $cd ; item
- db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $8a, $37 ; item
+ db SPRITE_HIKER, $9 + 4, $c + 4, $ff, $d2, $41, BLACKBELT + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $15 + 4, $ff, $d2, $42, JUGGLER + $C8, $2 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $8 + 4, $13 + 4, $ff, $d0, $43, TAMER + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $d0, $44, POKEMANIAC + $C8, $6 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $3 + 4, $1a + 4, $ff, $d2, $45, JUGGLER + $C8, $5 ; trainer
+ db SPRITE_BIRD, $5 + 4, $b + 4, $ff, $d1, $46, MOLTRES, $32 ; trainer
+ db SPRITE_BALL, $5 + 4, $1b + 4, $ff, $ff, $87, TM_17 ; item
+ db SPRITE_BALL, $9 + 4, $12 + 4, $ff, $ff, $88, FULL_HEAL ; item
+ db SPRITE_BALL, $b + 4, $9 + 4, $ff, $ff, $89, TM_05 ; item
+ db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $8a, GUARD_SPEC_ ; item
db SPRITE_BOULDER, $e + 4, $4 + 4, $ff, $10, $b ; person
db SPRITE_BOULDER, $5 + 4, $5 + 4, $ff, $10, $c ; person
db SPRITE_BOULDER, $10 + 4, $17 + 4, $ff, $10, $d ; person
@@ -17132,7 +20692,6 @@ VictoryRoad2Object: ; 0x51915 (size=154)
EVENT_DISP $f, $7, $1b ; VICTORY_ROAD_3
EVENT_DISP $f, $1, $1 ; VICTORY_ROAD_3
-
VictoryRoad2Blocks: ; 135
INCBIN "maps/victoryroad2.blk"
@@ -17172,7 +20731,6 @@ MtMoon2Object: ; 0x51a4d (size=68)
EVENT_DISP $e, $3, $17 ; MT_MOON_3
EVENT_DISP $e, $3, $1b
-
MtMoon2Blocks: ; 196
INCBIN "maps/mtmoon2.blk"
@@ -17184,7 +20742,105 @@ SilphCo7_h: ; 0x51b55 to 0x51b61 (12 bytes) (id=212)
dw $5ed7 ; objects
-INCBIN "baserom.gbc",$51b61,$51ed7 - $51b61
+INCBIN "baserom.gbc",$51b61,$51d8e - $51b61
+SilphCo7Text1: ; 0x51d8e
+ db $08 ; asm
+ ld a, [$d72e]
+ bit 0, a
+ jr z, .asm_d7e17 ; 0x51d94
+ ld a, [$d838]
+ bit 7, a
+ jr nz, .asm_688b4 ; 0x51d9b
+ ld hl, $5ddd
+ call PrintText
+ jr .asm_b3069 ; 0x51da3
+.asm_d7e17 ; 0x51da5
+ ld hl, $5dd3
+ call PrintText
+ ld bc,(LAPRAS << 8) | 15
+ call GivePokemon
+ jr nc, .asm_b3069 ; 0x51db1
+ ld a, [$ccd3]
+ and a
+ call z, $3865
+ call $3c3c
+ ld hl, $5dd8
+ call PrintText
+ ld hl, $d72e
+ set 0, [hl]
+ jr .asm_b3069 ; 0x51dc8
+.asm_688b4 ; 0x51dca
+ ld hl, $5de2
+ call PrintText
+.asm_b3069 ; 0x51dd0
+ jp $24d7
+
+INCBIN "baserom.gbc",$51dd3,$51e0a - $51dd3
+SilphCo7Text3: ; 0x51e0a
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ jr nz, .asm_254aa ; 0x51e10
+ ld hl, $5e23
+ call PrintText
+ jr .asm_6472b ; 0x51e18
+.asm_254aa ; 0x51e1a
+ ld hl, $5e28
+ call PrintText
+.asm_6472b ; 0x51e20
+ jp $24d7
+
+INCBIN "baserom.gbc",$51e23,$51e2d - $51e23
+SilphCo7Text4: ; 0x51e2d
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ jr nz, .asm_0f7ee ; 0x51e33
+ ld hl, $5e46
+ call PrintText
+ jr .asm_27a32 ; 0x51e3b
+.asm_0f7ee ; 0x51e3d
+ ld hl, $5e4b
+ call PrintText
+.asm_27a32 ; 0x51e43
+ jp $24d7
+
+INCBIN "baserom.gbc",$51e46,$51e50 - $51e46
+SilphCo7Text5: ; 0x51e50
+ db $08 ; asm
+ ld hl, $5d5d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51e5a,$51e69 - $51e5a
+SilphCo7Text6: ; 0x51e69
+ db $08 ; asm
+ ld hl, $5d69
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51e73,$51e82 - $51e73
+SilphCo7Text7: ; 0x51e82
+ db $08 ; asm
+ ld hl, $5d75
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51e8c,$51e9b - $51e8c
+SilphCo7Text8: ; 0x51e9b
+ db $08 ; asm
+ ld hl, $5d81
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$51ea5,$51eb4 - $51ea5
+SilphCo7Text9: ; 0x51eb4
+ db $08 ; asm
+ ld hl, $5ebe
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$51ebe,$19
SilphCo7Object: ; 0x51ed7 (size=128)
db $2e ; border tile
@@ -17203,13 +20859,13 @@ SilphCo7Object: ; 0x51ed7 (size=128)
db SPRITE_LAPRAS_GIVER, $d + 4, $d + 4, $ff, $d1, $2 ; person
db SPRITE_LAPRAS_GIVER, $a + 4, $7 + 4, $ff, $ff, $3 ; person
db SPRITE_ERIKA, $8 + 4, $a + 4, $ff, $ff, $4 ; person
- db SPRITE_ROCKET, $1 + 4, $d + 4, $ff, $d0, $45, $e6, $20 ; trainer
- db SPRITE_OAK_AIDE, $d + 4, $2 + 4, $ff, $d0, $46, $e4, $8 ; trainer
- db SPRITE_ROCKET, $2 + 4, $14 + 4, $ff, $d2, $47, $e6, $21 ; trainer
- db SPRITE_ROCKET, $e + 4, $13 + 4, $ff, $d3, $48, $e6, $22 ; trainer
+ db SPRITE_ROCKET, $1 + 4, $d + 4, $ff, $d0, $45, ROCKET + $C8, $20 ; trainer
+ db SPRITE_OAK_AIDE, $d + 4, $2 + 4, $ff, $d0, $46, SCIENTIST + $C8, $8 ; trainer
+ db SPRITE_ROCKET, $2 + 4, $14 + 4, $ff, $d2, $47, ROCKET + $C8, $21 ; trainer
+ db SPRITE_ROCKET, $e + 4, $13 + 4, $ff, $d3, $48, ROCKET + $C8, $22 ; trainer
db SPRITE_BLUE, $7 + 4, $3 + 4, $ff, $d1, $9 ; person
- db SPRITE_BALL, $9 + 4, $1 + 4, $ff, $ff, $8a, $27 ; item
- db SPRITE_BALL, $b + 4, $18 + 4, $ff, $ff, $8b, $cb ; item
+ db SPRITE_BALL, $9 + 4, $1 + 4, $ff, $ff, $8a, CALCIUM ; item
+ db SPRITE_BALL, $b + 4, $18 + 4, $ff, $ff, $8b, TM_03 ; item
; warp-to
EVENT_DISP $d, $0, $10 ; SILPH_CO_8F
@@ -17219,7 +20875,6 @@ SilphCo7Object: ; 0x51ed7 (size=128)
EVENT_DISP $d, $3, $5 ; SILPH_CO_3F
EVENT_DISP $d, $f, $15 ; SILPH_CO_5F
-
SilphCo7Blocks: ; 117
INCBIN "maps/silphco7.blk"
@@ -17231,7 +20886,24 @@ Mansion2_h: ; 0x51fcc to 0x51fd8 (12 bytes) (id=214)
dw $60d1 ; objects
-INCBIN "baserom.gbc",$51fd8,$520d1 - $51fd8
+INCBIN "baserom.gbc",$51fd8,$52064 - $51fd8
+Mansion2Text1: ; 0x52064
+ db $08 ; asm
+ ld hl, $6057
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5206e,$f
+
+Mansion2Text3: ; 0x5207d
+ TX_FAR _Mansion2Text3
+ db $50
+
+Mansion2Text4: ; 0x52082
+ TX_FAR _Mansion2Text4
+ db $50
+
+INCBIN "baserom.gbc",$52087,$4a
Mansion2Object: ; 0x520d1 (size=63)
db $1 ; border tile
@@ -17244,8 +20916,8 @@ Mansion2Object: ; 0x520d1 (size=63)
db $0 ; signs
db $4 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $3 + 4, $fe, $2, $41, $d3, $7 ; trainer
- db SPRITE_BALL, $7 + 4, $1c + 4, $ff, $ff, $82, $27 ; item
+ db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $3 + 4, $fe, $2, $41, BURGLAR + $C8, $7 ; trainer
+ db SPRITE_BALL, $7 + 4, $1c + 4, $ff, $ff, $82, CALCIUM ; item
db SPRITE_BOOK_MAP_DEX, $2 + 4, $12 + 4, $ff, $ff, $3 ; person
db SPRITE_BOOK_MAP_DEX, $16 + 4, $3 + 4, $ff, $ff, $4 ; person
@@ -17265,7 +20937,20 @@ Mansion3_h: ; 0x521e2 to 0x521ee (12 bytes) (id=215)
dw $62e6 ; objects
-INCBIN "baserom.gbc",$521ee,$522e6 - $521ee
+INCBIN "baserom.gbc",$521ee,$522af - $521ee
+Mansion3Text1: ; 0x522af
+ db $08 ; asm
+ ld hl, $6296
+ call LoadTrainerHeader
+ jp $24d7
+
+Mansion3Text2: ; 0x522b9
+ db $08 ; asm
+ ld hl, $62a2
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$522c3,$23
Mansion3Object: ; 0x522e6 (size=64)
db $1 ; border tile
@@ -17277,10 +20962,10 @@ Mansion3Object: ; 0x522e6 (size=64)
db $0 ; signs
db $5 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $5 + 4, $fe, $2, $41, $d3, $8 ; trainer
- db SPRITE_OAK_AIDE, $b + 4, $14 + 4, $ff, $d2, $42, $e4, $c ; trainer
- db SPRITE_BALL, $10 + 4, $1 + 4, $ff, $ff, $83, $11 ; item
- db SPRITE_BALL, $5 + 4, $19 + 4, $ff, $ff, $84, $25 ; item
+ db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $5 + 4, $fe, $2, $41, BURGLAR + $C8, $8 ; trainer
+ db SPRITE_OAK_AIDE, $b + 4, $14 + 4, $ff, $d2, $42, SCIENTIST + $C8, $c ; trainer
+ db SPRITE_BALL, $10 + 4, $1 + 4, $ff, $ff, $83, MAX_POTION ; item
+ db SPRITE_BALL, $5 + 4, $19 + 4, $ff, $ff, $84, IRON ; item
db SPRITE_BOOK_MAP_DEX, $c + 4, $6 + 4, $ff, $ff, $5 ; person
; warp-to
@@ -17298,7 +20983,25 @@ Mansion4_h: ; 0x523ad to 0x523b9 (12 bytes) (id=216)
dw $6498 ; objects
-INCBIN "baserom.gbc",$523b9,$52498 - $523b9
+INCBIN "baserom.gbc",$523b9,$52461 - $523b9
+Mansion4Text1: ; 0x52461
+ db $08 ; asm
+ ld hl, $6448
+ call LoadTrainerHeader
+ jp $24d7
+
+Mansion4Text2: ; 0x5246b
+ db $08 ; asm
+ ld hl, $6454
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$52475,$1e
+
+Mansion4Text7: ; 0x52493
+ TX_FAR _Mansion4Text7
+ db $50
+
Mansion4Object: ; 0x52498 (size=69)
db $1 ; border tile
@@ -17308,14 +21011,14 @@ Mansion4Object: ; 0x52498 (size=69)
db $0 ; signs
db $8 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $17 + 4, $10 + 4, $ff, $ff, $41, $d3, $9 ; trainer
- db SPRITE_OAK_AIDE, $b + 4, $1b + 4, $ff, $d0, $42, $e4, $d ; trainer
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $83, $28 ; item
- db SPRITE_BALL, $16 + 4, $1 + 4, $ff, $ff, $84, $10 ; item
- db SPRITE_BALL, $19 + 4, $13 + 4, $ff, $ff, $85, $d6 ; item
- db SPRITE_BALL, $4 + 4, $5 + 4, $ff, $ff, $86, $de ; item
+ db SPRITE_BLACK_HAIR_BOY_2, $17 + 4, $10 + 4, $ff, $ff, $41, BURGLAR + $C8, $9 ; trainer
+ db SPRITE_OAK_AIDE, $b + 4, $1b + 4, $ff, $d0, $42, SCIENTIST + $C8, $d ; trainer
+ db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $83, RARE_CANDY ; item
+ db SPRITE_BALL, $16 + 4, $1 + 4, $ff, $ff, $84, FULL_RESTORE ; item
+ db SPRITE_BALL, $19 + 4, $13 + 4, $ff, $ff, $85, TM_14 ; item
+ db SPRITE_BALL, $4 + 4, $5 + 4, $ff, $ff, $86, TM_22 ; item
db SPRITE_BOOK_MAP_DEX, $14 + 4, $10 + 4, $ff, $ff, $7 ; person
- db SPRITE_BALL, $d + 4, $5 + 4, $ff, $ff, $88, $2b ; item
+ db SPRITE_BALL, $d + 4, $5 + 4, $ff, $ff, $88, SECRET_KEY ; item
; warp-to
EVENT_DISP $f, $16, $17 ; MANSION_1
@@ -17437,19 +21140,19 @@ GetPrizeMenuId: ; 14:678E
.putMonName\@ ; 14:67EC
ld a,[W_PRIZE1]
ld [$D11E],a
- call GetMonsterName
+ call GetMonName
FuncCoord 2,4
ld hl,Coord
call PlaceString
ld a,[W_PRIZE2]
ld [$D11E],a
- call GetMonsterName
+ call GetMonName
FuncCoord 2,6
ld hl,Coord
call PlaceString
ld a,[W_PRIZE3]
ld [$D11E],a
- call GetMonsterName
+ call GetMonName
FuncCoord 2,8
ld hl,Coord
call PlaceString
@@ -17584,7 +21287,7 @@ HandlePrizeChoice: ; 14:68C6
call GetItemName
jr .GivePrize\@
.GetMonName\@ ; 14:68E3
- call GetMonsterName
+ call GetMonName
.GivePrize\@ ; 14:68E6
ld hl,SoYouWantPrizeTextPtr
call PrintText
@@ -17711,8 +21414,8 @@ Route2Object: ; 0x54022 (size=72)
db $b, $b, $4 ; Route2Text4
db $2 ; people
- db SPRITE_BALL, $36 + 4, $d + 4, $ff, $ff, $81, $a ; item
- db SPRITE_BALL, $2d + 4, $d + 4, $ff, $ff, $82, $23 ; item
+ db SPRITE_BALL, $36 + 4, $d + 4, $ff, $ff, $81, MOON_STONE ; item
+ db SPRITE_BALL, $2d + 4, $d + 4, $ff, $ff, $82, HP_UP ; item
; warp-to
EVENT_DISP $a, $9, $c ; DIGLETTS_CAVE_EXIT
@@ -17761,16 +21464,14 @@ Route3Object: ; 0x54208 (size=77)
db $9 ; people
db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $39 + 4, $ff, $ff, $1 ; person
- db SPRITE_BUG_CATCHER, $6 + 4, $a + 4, $ff, $d3, $42, $ca, $4 ; trainer
- db SPRITE_BUG_CATCHER, $4 + 4, $e + 4, $ff, $d0, $43, $c9, $1 ; trainer
- db SPRITE_LASS, $9 + 4, $10 + 4, $ff, $d2, $44, $cb, $1 ; trainer
- db SPRITE_BUG_CATCHER, $5 + 4, $13 + 4, $ff, $d0, $45, $ca, $5 ; trainer
- db SPRITE_LASS, $4 + 4, $17 + 4, $ff, $d2, $46, $cb, $2 ; trainer
- db SPRITE_BUG_CATCHER, $9 + 4, $16 + 4, $ff, $d2, $47, $c9, $2 ; trainer
- db SPRITE_BUG_CATCHER, $6 + 4, $18 + 4, $ff, $d3, $48, $ca, $6 ; trainer
- db SPRITE_LASS, $a + 4, $21 + 4, $ff, $d1, $49, $cb, $3 ; trainer
-
-INCBIN "baserom.gbc",$54255,$0
+ db SPRITE_BUG_CATCHER, $6 + 4, $a + 4, $ff, $d3, $42, BUG_CATCHER + $C8, $4 ; trainer
+ db SPRITE_BUG_CATCHER, $4 + 4, $e + 4, $ff, $d0, $43, YOUNGSTER + $C8, $1 ; trainer
+ db SPRITE_LASS, $9 + 4, $10 + 4, $ff, $d2, $44, LASS + $C8, $1 ; trainer
+ db SPRITE_BUG_CATCHER, $5 + 4, $13 + 4, $ff, $d0, $45, BUG_CATCHER + $C8, $5 ; trainer
+ db SPRITE_LASS, $4 + 4, $17 + 4, $ff, $d2, $46, LASS + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $9 + 4, $16 + 4, $ff, $d2, $47, YOUNGSTER + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $6 + 4, $18 + 4, $ff, $d3, $48, BUG_CATCHER + $C8, $6 ; trainer
+ db SPRITE_LASS, $a + 4, $21 + 4, $ff, $d1, $49, LASS + $C8, $3 ; trainer
Route3Blocks: ; 315
INCBIN "maps/route3.blk"
@@ -17814,16 +21515,14 @@ Route4Object: ; 0x543b2 (size=58)
db $3 ; people
db SPRITE_LASS, $8 + 4, $9 + 4, $fe, $0, $1 ; person
- db SPRITE_LASS, $3 + 4, $3f + 4, $ff, $d3, $42, $cb, $4 ; trainer
- db SPRITE_BALL, $3 + 4, $39 + 4, $ff, $ff, $83, $cc ; item
+ db SPRITE_LASS, $3 + 4, $3f + 4, $ff, $d3, $42, LASS + $C8, $4 ; trainer
+ db SPRITE_BALL, $3 + 4, $39 + 4, $ff, $ff, $83, TM_04 ; item
; warp-to
EVENT_DISP $2d, $5, $b ; MT_MOON_POKECENTER
EVENT_DISP $2d, $5, $12 ; MT_MOON_1
EVENT_DISP $2d, $5, $18 ; MT_MOON_2
-INCBIN "baserom.gbc",$543ec,$0
-
Route4Blocks: ; 405
INCBIN "maps/route4.blk"
@@ -17873,8 +21572,6 @@ Route5Object: ; 0x545a3 (size=47)
EVENT_DISP $a, $1b, $11 ; PATH_ENTRANCE_ROUTE_5
EVENT_DISP $a, $15, $a ; DAYCAREM
-INCBIN "baserom.gbc",$545d2,$0
-
Route5Blocks: ; 180
INCBIN "maps/route5.blk"
@@ -17911,18 +21608,16 @@ Route9Object: ; 0x546a8 (size=86)
db $7, $19, $b ; Route9Text11
db $a ; people
- db SPRITE_LASS, $a + 4, $d + 4, $ff, $d2, $41, $ce, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $18 + 4, $ff, $d2, $42, $cd, $7 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $1f + 4, $ff, $d3, $43, $cd, $8 ; trainer
- db SPRITE_LASS, $8 + 4, $30 + 4, $ff, $d3, $44, $ce, $6 ; trainer
- db SPRITE_HIKER, $f + 4, $10 + 4, $ff, $d2, $45, $d1, $b ; trainer
- db SPRITE_HIKER, $3 + 4, $2b + 4, $ff, $d2, $46, $d1, $6 ; trainer
- db SPRITE_BUG_CATCHER, $2 + 4, $16 + 4, $ff, $d0, $47, $ca, $d ; trainer
- db SPRITE_HIKER, $f + 4, $2d + 4, $ff, $d3, $48, $d1, $5 ; trainer
- db SPRITE_BUG_CATCHER, $8 + 4, $28 + 4, $ff, $d3, $49, $ca, $e ; trainer
- db SPRITE_BALL, $f + 4, $a + 4, $ff, $ff, $8a, $e6 ; item
-
-INCBIN "baserom.gbc",$546fe,$0
+ db SPRITE_LASS, $a + 4, $d + 4, $ff, $d2, $41, JR__TRAINER_F + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $18 + 4, $ff, $d2, $42, JR__TRAINER_M + $C8, $7 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $1f + 4, $ff, $d3, $43, JR__TRAINER_M + $C8, $8 ; trainer
+ db SPRITE_LASS, $8 + 4, $30 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $6 ; trainer
+ db SPRITE_HIKER, $f + 4, $10 + 4, $ff, $d2, $45, HIKER + $C8, $b ; trainer
+ db SPRITE_HIKER, $3 + 4, $2b + 4, $ff, $d2, $46, HIKER + $C8, $6 ; trainer
+ db SPRITE_BUG_CATCHER, $2 + 4, $16 + 4, $ff, $d0, $47, BUG_CATCHER + $C8, $d ; trainer
+ db SPRITE_HIKER, $f + 4, $2d + 4, $ff, $d3, $48, HIKER + $C8, $5 ; trainer
+ db SPRITE_BUG_CATCHER, $8 + 4, $28 + 4, $ff, $d3, $49, BUG_CATCHER + $C8, $e ; trainer
+ db SPRITE_BALL, $f + 4, $a + 4, $ff, $ff, $8a, TM_30 ; item
Route9Blocks: ; 270
INCBIN "maps/route9.blk"
@@ -17962,18 +21657,16 @@ Route13Object: ; 0x5482e (size=93)
db $b, $1f, $d ; Route13Text13
db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $31 + 4, $ff, $d3, $41, $df, $1 ; trainer
- db SPRITE_LASS, $a + 4, $30 + 4, $ff, $d0, $42, $ce, $c ; trainer
- db SPRITE_LASS, $9 + 4, $1b + 4, $ff, $d0, $43, $ce, $d ; trainer
- db SPRITE_LASS, $a + 4, $17 + 4, $ff, $d2, $44, $ce, $e ; trainer
- db SPRITE_LASS, $5 + 4, $32 + 4, $ff, $d0, $45, $ce, $f ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $c + 4, $ff, $d3, $46, $df, $2 ; trainer
- db SPRITE_FOULARD_WOMAN, $6 + 4, $21 + 4, $ff, $d0, $47, $da, $4 ; trainer
- db SPRITE_FOULARD_WOMAN, $6 + 4, $20 + 4, $ff, $d0, $48, $da, $5 ; trainer
- db SPRITE_BIKER, $7 + 4, $a + 4, $ff, $d1, $49, $d2, $1 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $7 + 4, $ff, $d1, $4a, $df, $3 ; trainer
-
-INCBIN "baserom.gbc",$5488b,$0
+ db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $31 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $1 ; trainer
+ db SPRITE_LASS, $a + 4, $30 + 4, $ff, $d0, $42, JR__TRAINER_F + $C8, $c ; trainer
+ db SPRITE_LASS, $9 + 4, $1b + 4, $ff, $d0, $43, JR__TRAINER_F + $C8, $d ; trainer
+ db SPRITE_LASS, $a + 4, $17 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $e ; trainer
+ db SPRITE_LASS, $5 + 4, $32 + 4, $ff, $d0, $45, JR__TRAINER_F + $C8, $f ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $c + 4, $ff, $d3, $46, BIRD_KEEPER + $C8, $2 ; trainer
+ db SPRITE_FOULARD_WOMAN, $6 + 4, $21 + 4, $ff, $d0, $47, BEAUTY + $C8, $4 ; trainer
+ db SPRITE_FOULARD_WOMAN, $6 + 4, $20 + 4, $ff, $d0, $48, BEAUTY + $C8, $5 ; trainer
+ db SPRITE_BIKER, $7 + 4, $a + 4, $ff, $d1, $49, BIKER + $C8, $1 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $7 + 4, $ff, $d1, $4a, BIRD_KEEPER + $C8, $3 ; trainer
Route13Blocks: ; 270
INCBIN "maps/route13.blk"
@@ -18011,18 +21704,16 @@ Route14Object: ; 0x549bb (size=87)
db $d, $11, $b ; Route14Text11
db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $4 + 4, $ff, $d0, $41, $df, $e ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $f + 4, $ff, $d0, $42, $df, $f ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $c + 4, $ff, $d0, $43, $df, $10 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $e + 4, $ff, $d1, $44, $df, $11 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $f + 4, $ff, $d2, $45, $df, $4 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $31 + 4, $6 + 4, $ff, $d1, $46, $df, $5 ; trainer
- db SPRITE_BIKER, $27 + 4, $5 + 4, $ff, $d0, $47, $d2, $d ; trainer
- db SPRITE_BIKER, $1e + 4, $4 + 4, $ff, $d3, $48, $d2, $e ; trainer
- db SPRITE_BIKER, $1e + 4, $f + 4, $ff, $d2, $49, $d2, $f ; trainer
- db SPRITE_BIKER, $1f + 4, $4 + 4, $ff, $d3, $4a, $d2, $2 ; trainer
-
-INCBIN "baserom.gbc",$54a12,$0
+ db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $4 + 4, $ff, $d0, $41, BIRD_KEEPER + $C8, $e ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $f + 4, $ff, $d0, $42, BIRD_KEEPER + $C8, $f ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $c + 4, $ff, $d0, $43, BIRD_KEEPER + $C8, $10 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $e + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $11 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $f + 4, $ff, $d2, $45, BIRD_KEEPER + $C8, $4 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $31 + 4, $6 + 4, $ff, $d1, $46, BIRD_KEEPER + $C8, $5 ; trainer
+ db SPRITE_BIKER, $27 + 4, $5 + 4, $ff, $d0, $47, BIKER + $C8, $d ; trainer
+ db SPRITE_BIKER, $1e + 4, $4 + 4, $ff, $d3, $48, BIKER + $C8, $e ; trainer
+ db SPRITE_BIKER, $1e + 4, $f + 4, $ff, $d2, $49, BIKER + $C8, $f ; trainer
+ db SPRITE_BIKER, $1f + 4, $4 + 4, $ff, $d3, $4a, BIKER + $C8, $2 ; trainer
Route14Blocks: ; 270
INCBIN "maps/route14.blk"
@@ -18065,18 +21756,16 @@ Route17Object: ; 0x54b42 (size=102)
db $8d, $9, $10 ; Route17Text16
db $a ; people
- db SPRITE_BIKER, $13 + 4, $c + 4, $ff, $d2, $41, $d8, $4 ; trainer
- db SPRITE_BIKER, $10 + 4, $b + 4, $ff, $d3, $42, $d8, $5 ; trainer
- db SPRITE_BIKER, $12 + 4, $4 + 4, $ff, $d1, $43, $d2, $8 ; trainer
- db SPRITE_BIKER, $20 + 4, $7 + 4, $ff, $d2, $44, $d2, $9 ; trainer
- db SPRITE_BIKER, $22 + 4, $e + 4, $ff, $d3, $45, $d2, $a ; trainer
- db SPRITE_BIKER, $3a + 4, $11 + 4, $ff, $d2, $46, $d8, $6 ; trainer
- db SPRITE_BIKER, $44 + 4, $2 + 4, $ff, $d3, $47, $d8, $7 ; trainer
- db SPRITE_BIKER, $62 + 4, $e + 4, $ff, $d3, $48, $d8, $8 ; trainer
- db SPRITE_BIKER, $62 + 4, $5 + 4, $ff, $d2, $49, $d2, $b ; trainer
- db SPRITE_BIKER, $76 + 4, $a + 4, $ff, $d0, $4a, $d2, $c ; trainer
-
-INCBIN "baserom.gbc",$54ba8,$0
+ db SPRITE_BIKER, $13 + 4, $c + 4, $ff, $d2, $41, CUE_BALL + $C8, $4 ; trainer
+ db SPRITE_BIKER, $10 + 4, $b + 4, $ff, $d3, $42, CUE_BALL + $C8, $5 ; trainer
+ db SPRITE_BIKER, $12 + 4, $4 + 4, $ff, $d1, $43, BIKER + $C8, $8 ; trainer
+ db SPRITE_BIKER, $20 + 4, $7 + 4, $ff, $d2, $44, BIKER + $C8, $9 ; trainer
+ db SPRITE_BIKER, $22 + 4, $e + 4, $ff, $d3, $45, BIKER + $C8, $a ; trainer
+ db SPRITE_BIKER, $3a + 4, $11 + 4, $ff, $d2, $46, CUE_BALL + $C8, $6 ; trainer
+ db SPRITE_BIKER, $44 + 4, $2 + 4, $ff, $d3, $47, CUE_BALL + $C8, $7 ; trainer
+ db SPRITE_BIKER, $62 + 4, $e + 4, $ff, $d3, $48, CUE_BALL + $C8, $8 ; trainer
+ db SPRITE_BIKER, $62 + 4, $5 + 4, $ff, $d2, $49, BIKER + $C8, $b ; trainer
+ db SPRITE_BIKER, $76 + 4, $a + 4, $ff, $d0, $4a, BIKER + $C8, $c ; trainer
Route17Blocks: ; 720
INCBIN "maps/route17.blk"
@@ -18114,18 +21803,16 @@ Route19Object: ; 0x54e9a (size=87)
db $9, $b, $b ; Route19Text11
db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $8 + 4, $ff, $d2, $41, $d7, $2 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $d + 4, $ff, $d2, $42, $d7, $3 ; trainer
- db SPRITE_SWIMMER, $19 + 4, $d + 4, $ff, $d2, $43, $d7, $4 ; trainer
- db SPRITE_SWIMMER, $1b + 4, $4 + 4, $ff, $d3, $44, $d7, $5 ; trainer
- db SPRITE_SWIMMER, $1f + 4, $10 + 4, $ff, $d1, $45, $d7, $6 ; trainer
- db SPRITE_SWIMMER, $b + 4, $9 + 4, $ff, $d0, $46, $d7, $7 ; trainer
- db SPRITE_SWIMMER, $2b + 4, $8 + 4, $ff, $d2, $47, $da, $c ; trainer
- db SPRITE_SWIMMER, $2b + 4, $b + 4, $ff, $d3, $48, $da, $d ; trainer
- db SPRITE_SWIMMER, $2a + 4, $9 + 4, $ff, $d1, $49, $d7, $8 ; trainer
- db SPRITE_SWIMMER, $2c + 4, $a + 4, $ff, $d0, $4a, $da, $e ; trainer
-
-INCBIN "baserom.gbc",$54ef1,$0
+ db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $8 + 4, $ff, $d2, $41, SWIMMER + $C8, $2 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $d + 4, $ff, $d2, $42, SWIMMER + $C8, $3 ; trainer
+ db SPRITE_SWIMMER, $19 + 4, $d + 4, $ff, $d2, $43, SWIMMER + $C8, $4 ; trainer
+ db SPRITE_SWIMMER, $1b + 4, $4 + 4, $ff, $d3, $44, SWIMMER + $C8, $5 ; trainer
+ db SPRITE_SWIMMER, $1f + 4, $10 + 4, $ff, $d1, $45, SWIMMER + $C8, $6 ; trainer
+ db SPRITE_SWIMMER, $b + 4, $9 + 4, $ff, $d0, $46, SWIMMER + $C8, $7 ; trainer
+ db SPRITE_SWIMMER, $2b + 4, $8 + 4, $ff, $d2, $47, BEAUTY + $C8, $c ; trainer
+ db SPRITE_SWIMMER, $2b + 4, $b + 4, $ff, $d3, $48, BEAUTY + $C8, $d ; trainer
+ db SPRITE_SWIMMER, $2a + 4, $9 + 4, $ff, $d1, $49, SWIMMER + $C8, $8 ; trainer
+ db SPRITE_SWIMMER, $2c + 4, $a + 4, $ff, $d0, $4a, BEAUTY + $C8, $e ; trainer
Route19Blocks: ; 270
INCBIN "maps/route19.blk"
@@ -18162,17 +21849,15 @@ Route21Object: ; 0x55021 (size=76)
db $0 ; signs
db $9 ; people
- db SPRITE_FISHER2, $18 + 4, $4 + 4, $ff, $d2, $41, $d6, $7 ; trainer
- db SPRITE_FISHER2, $19 + 4, $6 + 4, $ff, $d0, $42, $d6, $9 ; trainer
- db SPRITE_SWIMMER, $1f + 4, $a + 4, $ff, $d1, $43, $d7, $c ; trainer
- db SPRITE_SWIMMER, $1e + 4, $c + 4, $ff, $d3, $44, $d8, $9 ; trainer
- db SPRITE_SWIMMER, $3f + 4, $10 + 4, $ff, $d0, $45, $d7, $d ; trainer
- db SPRITE_SWIMMER, $47 + 4, $5 + 4, $ff, $d3, $46, $d7, $e ; trainer
- db SPRITE_SWIMMER, $47 + 4, $f + 4, $ff, $d2, $47, $d7, $f ; trainer
- db SPRITE_FISHER2, $38 + 4, $e + 4, $ff, $d2, $48, $d6, $8 ; trainer
- db SPRITE_FISHER2, $39 + 4, $11 + 4, $ff, $d3, $49, $d6, $a ; trainer
-
-INCBIN "baserom.gbc",$5506d,$0
+ db SPRITE_FISHER2, $18 + 4, $4 + 4, $ff, $d2, $41, FISHER + $C8, $7 ; trainer
+ db SPRITE_FISHER2, $19 + 4, $6 + 4, $ff, $d0, $42, FISHER + $C8, $9 ; trainer
+ db SPRITE_SWIMMER, $1f + 4, $a + 4, $ff, $d1, $43, SWIMMER + $C8, $c ; trainer
+ db SPRITE_SWIMMER, $1e + 4, $c + 4, $ff, $d3, $44, CUE_BALL + $C8, $9 ; trainer
+ db SPRITE_SWIMMER, $3f + 4, $10 + 4, $ff, $d0, $45, SWIMMER + $C8, $d ; trainer
+ db SPRITE_SWIMMER, $47 + 4, $5 + 4, $ff, $d3, $46, SWIMMER + $C8, $e ; trainer
+ db SPRITE_SWIMMER, $47 + 4, $f + 4, $ff, $d2, $47, SWIMMER + $C8, $f ; trainer
+ db SPRITE_FISHER2, $38 + 4, $e + 4, $ff, $d2, $48, FISHER + $C8, $8 ; trainer
+ db SPRITE_FISHER2, $39 + 4, $11 + 4, $ff, $d3, $49, FISHER + $C8, $a ; trainer
Route21Blocks: ; 450
INCBIN "maps/route21.blk"
@@ -18183,7 +21868,530 @@ DayCareMBlocks: ; 16
FuchsiaHouse3Blocks: ; 16
INCBIN "maps/fuchsiahouse3.blk"
-INCBIN "baserom.gbc",$5524f,$e15
+INCBIN "baserom.gbc",$5524f,$554ee - $5524f
+
+Route2Text3: ; 0x554ee
+ TX_FAR _Route2Text3
+ db $50
+
+Route2Text4: ; 0x554f3
+ TX_FAR _Route2Text4
+ db $50
+
+INCBIN "baserom.gbc",$554f8,$55586 - $554f8
+
+Route3Text1: ; 0x55586
+ TX_FAR _Route3Text1
+ db $50
+
+Route3Text2: ; 0x5558b
+ db $08 ; asm
+ ld hl, $5525
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55595,$555a4 - $55595
+Route3Text3: ; 0x555a4
+ db $08 ; asm
+ ld hl, $5531
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$555ae,$555bd - $555ae
+Route3Text4: ; 0x555bd
+ db $08 ; asm
+ ld hl, $553d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$555c7,$555d6 - $555c7
+Route3Text5: ; 0x555d6
+ db $08 ; asm
+ ld hl, $5549
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$555e0,$555ef - $555e0
+Route3Text6: ; 0x555ef
+ db $08 ; asm
+ ld hl, $5555
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$555f9,$55608 - $555f9
+Route3Text7: ; 0x55608
+ db $08 ; asm
+ ld hl, $5561
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55612,$55621 - $55612
+Route3Text8: ; 0x55621
+ db $08 ; asm
+ ld hl, $556d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5562b,$5563a - $5562b
+Route3Text9: ; 0x5563a
+ db $08 ; asm
+ ld hl, $5579
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55644,$f
+
+Route3Text10: ; 0x55653
+ TX_FAR _Route3Text10
+ db $50
+
+INCBIN "baserom.gbc",$55658,$5568a - $55658
+
+Route4Text1: ; 0x5568a
+ TX_FAR _Route4Text1
+ db $50
+
+Route4Text2: ; 0x5568f
+ db $08 ; asm
+ ld hl, $567d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55699,$f
+
+Route4Text5: ; 0x556a8
+ TX_FAR _Route4Text5
+ db $50
+
+Route4Text6: ; 0x556ad
+ TX_FAR _Route4Text6
+ db $50
+
+INCBIN "baserom.gbc",$556b2,$556b5 - $556b2
+Route5Texts: ; 0x556b5
+ dw Route5Text1
+
+Route5Text1: ; 0x556b7
+ TX_FAR _Route5Text1
+ db $50
+
+INCBIN "baserom.gbc",$556bc,$55758 - $556bc
+Route9Text1: ; 0x55758
+ db $08 ; asm
+ ld hl, $56eb
+ jr .asm_4fe87 ; 0x5575c
+ ld [$f721], sp
+ ld d, [hl]
+ jr .asm_4fe87 ; 0x55762
+ ld [$0321], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x55768
+ ld [$0f21], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x5576e
+ ld [$1b21], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x55774
+ ld [$2721], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x5577a
+ ld [$3321], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x55780
+ ld [$3f21], sp
+ ld d, a
+ jr .asm_4fe87 ; 0x55786
+ ld [$4b21], sp
+ ld d, a
+.asm_4fe87 ; 0x5578c
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55792,$87
+
+Route9Text11: ; 0x55819
+ TX_FAR _Route9Text11
+ db $50
+
+INCBIN "baserom.gbc",$5581e,$558ca - $5581e
+Route13Text1: ; 0x558ca
+ db $08 ; asm
+ ld hl, $5851
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$558d4,$558e3 - $558d4
+Route13Text2: ; 0x558e3
+ db $08 ; asm
+ ld hl, $585d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$558ed,$558fc - $558ed
+Route13Text3: ; 0x558fc
+ db $08 ; asm
+ ld hl, $5869
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55906,$55915 - $55906
+Route13Text4: ; 0x55915
+ db $08 ; asm
+ ld hl, $5875
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5591f,$5592e - $5591f
+Route13Text5: ; 0x5592e
+ db $08 ; asm
+ ld hl, $5881
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55938,$55947 - $55938
+Route13Text6: ; 0x55947
+ db $08 ; asm
+ ld hl, $588d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55951,$55960 - $55951
+Route13Text7: ; 0x55960
+ db $08 ; asm
+ ld hl, $5899
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5596a,$55979 - $5596a
+Route13Text8: ; 0x55979
+ db $08 ; asm
+ ld hl, $58a5
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55983,$55992 - $55983
+Route13Text9: ; 0x55992
+ db $08 ; asm
+ ld hl, $58b1
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5599c,$559ab - $5599c
+Route13Text10: ; 0x559ab
+ db $08 ; asm
+ ld hl, $58bd
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$559b5,$f
+
+Route13Text11: ; 0x559c4
+ TX_FAR _Route13Text11
+ db $50
+
+Route13Text12: ; 0x559c9
+ TX_FAR _Route13Text12
+ db $50
+
+Route13Text13: ; 0x559ce
+ TX_FAR _Route13Text13
+ db $50
+
+INCBIN "baserom.gbc",$559d3,$55a7b - $559d3
+Route14Text1: ; 0x55a7b
+ db $08 ; asm
+ ld hl, $5a02
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55a85,$55a94 - $55a85
+Route14Text2: ; 0x55a94
+ db $08 ; asm
+ ld hl, $5a0e
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55a9e,$55aad - $55a9e
+Route14Text3: ; 0x55aad
+ db $08 ; asm
+ ld hl, $5a1a
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55ab7,$55ac6 - $55ab7
+Route14Text4: ; 0x55ac6
+ db $08 ; asm
+ ld hl, $5a26
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55ad0,$55adf - $55ad0
+Route14Text5: ; 0x55adf
+ db $08 ; asm
+ ld hl, $5a32
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55ae9,$55af8 - $55ae9
+Route14Text6: ; 0x55af8
+ db $08 ; asm
+ ld hl, $5a3e
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55b02,$55b11 - $55b02
+Route14Text7: ; 0x55b11
+ db $08 ; asm
+ ld hl, $5a4a
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55b1b,$55b2a - $55b1b
+Route14Text8: ; 0x55b2a
+ db $08 ; asm
+ ld hl, $5a56
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55b34,$55b43 - $55b34
+Route14Text9: ; 0x55b43
+ db $08 ; asm
+ ld hl, $5a62
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55b4d,$55b5c - $55b4d
+Route14Text10: ; 0x55b5c
+ db $08 ; asm
+ ld hl, $5a6e
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55b66,$f
+
+Route14Text11: ; 0x55b75
+ TX_FAR _Route14Text11
+ db $50
+
+INCBIN "baserom.gbc",$55b7a,$55c2c - $55b7a
+Route17Text1: ; 0x55c2c
+ db $08 ; asm
+ ld hl, $5bb3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55c36,$55c45 - $55c36
+Route17Text2: ; 0x55c45
+ db $08 ; asm
+ ld hl, $5bbf
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55c4f,$55c5e - $55c4f
+Route17Text3: ; 0x55c5e
+ db $08 ; asm
+ ld hl, $5bcb
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55c68,$55c77 - $55c68
+Route17Text4: ; 0x55c77
+ db $08 ; asm
+ ld hl, $5bd7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55c81,$55c90 - $55c81
+Route17Text5: ; 0x55c90
+ db $08 ; asm
+ ld hl, $5be3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55c9a,$55ca9 - $55c9a
+Route17Text6: ; 0x55ca9
+ db $08 ; asm
+ ld hl, $5bef
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55cb3,$55cc2 - $55cb3
+Route17Text7: ; 0x55cc2
+ db $08 ; asm
+ ld hl, $5bfb
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55ccc,$55cdb - $55ccc
+Route17Text8: ; 0x55cdb
+ db $08 ; asm
+ ld hl, $5c07
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55ce5,$55cf4 - $55ce5
+Route17Text9: ; 0x55cf4
+ db $08 ; asm
+ ld hl, $5c13
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55cfe,$55d0d - $55cfe
+Route17Text10: ; 0x55d0d
+ db $08 ; asm
+ ld hl, $5c1f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55d17,$f
+
+Route17Text11: ; 0x55d26
+ TX_FAR _Route17Text11
+ db $50
+
+Route17Text12: ; 0x55d2b
+ TX_FAR _Route17Text12
+ db $50
+
+Route17Text13: ; 0x55d30
+ TX_FAR _Route17Text13
+ db $50
+
+Route17Text14: ; 0x55d35
+ TX_FAR _Route17Text14
+ db $50
+
+Route17Text15: ; 0x55d3a
+ TX_FAR _Route17Text15
+ db $50
+
+Route17Text16: ; 0x55d3f
+ TX_FAR _Route17Text16
+ db $50
+
+INCBIN "baserom.gbc",$55d44,$55dec - $55d44
+Route19Text1: ; 0x55dec
+ db $08 ; asm
+ ld hl, $5d73
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text2: ; 0x55df6
+ db $08 ; asm
+ ld hl, $5d7f
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text3: ; 0x55e00
+ db $08 ; asm
+ ld hl, $5d8b
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text4: ; 0x55e0a
+ db $08 ; asm
+ ld hl, $5d97
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text5: ; 0x55e14
+ db $08 ; asm
+ ld hl, $5da3
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text6: ; 0x55e1e
+ db $08 ; asm
+ ld hl, $5daf
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text7: ; 0x55e28
+ db $08 ; asm
+ ld hl, $5dbb
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text8: ; 0x55e32
+ db $08 ; asm
+ ld hl, $5dc7
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text9: ; 0x55e3c
+ db $08 ; asm
+ ld hl, $5dd3
+ call LoadTrainerHeader
+ jp $24d7
+
+Route19Text10: ; 0x55e46
+ db $08 ; asm
+ ld hl, $5ddf
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55e50,$96
+
+Route19Text11: ; 0x55ee6
+ TX_FAR _Route19Text11
+ db $50
+
+INCBIN "baserom.gbc",$55eeb,$55f83 - $55eeb
+Route21Text1: ; 0x55f83
+ db $08 ; asm
+ ld hl, $5f16
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text2: ; 0x55f8d
+ db $08 ; asm
+ ld hl, $5f22
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text3: ; 0x55f97
+ db $08 ; asm
+ ld hl, $5f2e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text4: ; 0x55fa1
+ db $08 ; asm
+ ld hl, $5f3a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text5: ; 0x55fab
+ db $08 ; asm
+ ld hl, $5f46
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text6: ; 0x55fb5
+ db $08 ; asm
+ ld hl, $5f52
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text7: ; 0x55fbf
+ db $08 ; asm
+ ld hl, $5f5e
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text8: ; 0x55fc9
+ db $08 ; asm
+ ld hl, $5f6a
+ call LoadTrainerHeader
+ jp $24d7
+
+Route21Text9: ; 0x55fd3
+ db $08 ; asm
+ ld hl, $5f76
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$55fdd,$87
VermilionHouse2_h: ; 0x56064 to 0x56070 (12 bytes) (id=163)
db $08 ; tileset
@@ -18193,7 +22401,38 @@ VermilionHouse2_h: ; 0x56064 to 0x56070 (12 bytes) (id=163)
dw $60cf ; objects
-INCBIN "baserom.gbc",$56070,$560cf - $56070
+INCBIN "baserom.gbc",$56070,$56075 - $56070
+VermilionHouse2Text1: ; 0x56075
+ db $08 ; asm
+ ld a, [$d728]
+ bit 3, a
+ jr nz, .asm_03ef5 ; 0x5607b
+ ld hl, $60b1
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_eb1b7 ; 0x5608a
+ ld bc,(OLD_ROD << 8) | 1
+ call $3e2e
+ jr nc, .asm_fd67b ; 0x56092
+ ld hl, $d728
+ set 3, [hl]
+ ld hl, $60b6
+ jr .asm_5dd95 ; 0x5609c
+.asm_fd67b ; 0x5609e
+ ld hl, $60ca
+ jr .asm_5dd95 ; 0x560a1
+.asm_eb1b7 ; 0x560a3
+ ld hl, $60c0
+ jr .asm_5dd95 ; 0x560a6
+.asm_03ef5 ; 0x560a8
+ ld hl, $60c5
+.asm_5dd95 ; 0x560ab
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$560b1,$1e
VermilionHouse2Object: ; 0x560cf (size=26)
db $a ; border tile
@@ -18210,7 +22449,6 @@ VermilionHouse2Object: ; 0x560cf (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
CeladonMart2_h: ; 0x560e9 to 0x560f5 (12 bytes) (id=123)
db $12 ; tileset
db $04, $0a ; dimensions (y, x)
@@ -18219,14 +22457,27 @@ CeladonMart2_h: ; 0x560e9 to 0x560f5 (12 bytes) (id=123)
dw $6111 ; objects
-INCBIN "baserom.gbc",$560f5,$56111 - $560f5
+INCBIN "baserom.gbc",$560f5,$56102 - $560f5
+
+CeladonMart2Text3: ; 0x56102
+ TX_FAR _CeladonMart2Text3
+ db $50
+
+CeladonMart2Text4: ; 0x56107
+ TX_FAR _CeladonMart2Text4
+ db $50
+
+CeladonMart2Text5: ; 0x5610c
+ TX_FAR _CeladonMart2Text5
+ db $50
+
CeladonMart2Object: ; 0x56111 (size=55)
db $f ; border tile
db $3 ; warps
db $1, $c, $4, CELADON_MART_1
db $1, $10, $1, CELADON_MART_3
- db $1, $1, $0, CELADON_MART_6
+ db $1, $1, $0, CELADON_MART_ELEVATOR
db $1 ; signs
db $1, $e, $5 ; CeladonMart2Text5
@@ -18240,8 +22491,7 @@ CeladonMart2Object: ; 0x56111 (size=55)
; warp-to
EVENT_DISP $a, $1, $c ; CELADON_MART_1
EVENT_DISP $a, $1, $10 ; CELADON_MART_3
- EVENT_DISP $a, $1, $1 ; CELADON_MART_6
-
+ EVENT_DISP $a, $1, $1 ; CELADON_MART_ELEVATOR
CeladonMart2Blocks: ; 40
INCBIN "maps/celadonmart2.blk"
@@ -18254,7 +22504,38 @@ FuchsiaHouse3_h: ; 0x56170 to 0x5617c (12 bytes) (id=164)
dw $6221 ; objects
-INCBIN "baserom.gbc",$5617c,$56221 - $5617c
+INCBIN "baserom.gbc",$5617c,$56181 - $5617c
+FuchsiaHouse3Text1: ; 0x56181
+ db $08 ; asm
+ ld a, [$d728]
+ bit 4, a
+ jr nz, .asm_6084e ; 0x56187
+ ld hl, $61bd
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_3ace4 ; 0x56196
+ ld bc,(GOOD_ROD << 8) | 1
+ call $3e2e
+ jr nc, .asm_628ee ; 0x5619e
+ ld hl, $d728
+ set 4, [hl]
+ ld hl, $61c2
+ jr .asm_1b09c ; 0x561a8
+.asm_628ee ; 0x561aa
+ ld hl, $621c
+ jr .asm_1b09c ; 0x561ad
+.asm_3ace4 ; 0x561af
+ ld hl, $6212
+ jr .asm_1b09c ; 0x561b2
+.asm_6084e ; 0x561b4
+ ld hl, $6217
+.asm_1b09c ; 0x561b7
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$561bd,$64
FuchsiaHouse3Object: ; 0x56221 (size=34)
db $c ; border tile
@@ -18273,7 +22554,6 @@ FuchsiaHouse3Object: ; 0x56221 (size=34)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
DayCareM_h: ; 0x56243 to 0x5624f (12 bytes) (id=72)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -18299,7 +22579,6 @@ DayCareMObject: ; 0x56459 (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
Route12House_h: ; 0x56473 to 0x5647f (12 bytes) (id=189)
db $08 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -18308,7 +22587,38 @@ Route12House_h: ; 0x56473 to 0x5647f (12 bytes) (id=189)
dw $64de ; objects
-INCBIN "baserom.gbc",$5647f,$564de - $5647f
+INCBIN "baserom.gbc",$5647f,$56484 - $5647f
+Route12HouseText1: ; 0x56484
+ db $08 ; asm
+ ld a, [$d728]
+ bit 5, a
+ jr nz, .asm_b4cad ; 0x5648a
+ ld hl, $64c0
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_a2d76 ; 0x56499
+ ld bc,(SUPER_ROD << 8) | 1
+ call $3e2e
+ jr nc, .asm_e3b89 ; 0x564a1
+ ld hl, $d728
+ set 5, [hl]
+ ld hl, $64c5
+ jr .asm_df984 ; 0x564ab
+.asm_e3b89 ; 0x564ad
+ ld hl, $64d9
+ jr .asm_df984 ; 0x564b0
+.asm_a2d76 ; 0x564b2
+ ld hl, $64cf
+ jr .asm_df984 ; 0x564b5
+.asm_b4cad ; 0x564b7
+ ld hl, $64d4
+.asm_df984 ; 0x564ba
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$564c0,$1e
Route12HouseObject: ; 0x564de (size=26)
db $a ; border tile
@@ -18325,7 +22635,6 @@ Route12HouseObject: ; 0x564de (size=26)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
SilphCo8_h: ; 0x564f8 to 0x56504 (12 bytes) (id=213)
db $16 ; tileset
db $09, $0d ; dimensions (y, x)
@@ -18334,7 +22643,38 @@ SilphCo8_h: ; 0x564f8 to 0x56504 (12 bytes) (id=213)
dw $6613 ; objects
-INCBIN "baserom.gbc",$56504,$56613 - $56504
+INCBIN "baserom.gbc",$56504,$565aa - $56504
+SilphCo8Text1: ; 0x565aa
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ ld hl, $65c3
+ jr nz, .asm_a468f ; 0x565b3
+ ld hl, $65be
+.asm_a468f ; 0x565b8
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$565be,$565c8 - $565be
+SilphCo8Text2: ; 0x565c8
+ db $08 ; asm
+ ld hl, $6585
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo8Text3: ; 0x565d2
+ db $08 ; asm
+ ld hl, $6591
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo8Text4: ; 0x565dc
+ db $08 ; asm
+ ld hl, $659d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$565e6,$2d
SilphCo8Object: ; 0x56613 (size=90)
db $2e ; border tile
@@ -18351,9 +22691,9 @@ SilphCo8Object: ; 0x56613 (size=90)
db $4 ; people
db SPRITE_LAPRAS_GIVER, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $2 + 4, $13 + 4, $ff, $d2, $42, $e6, $23 ; trainer
- db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d0, $43, $e4, $9 ; trainer
- db SPRITE_ROCKET, $f + 4, $c + 4, $ff, $d3, $44, $e6, $24 ; trainer
+ db SPRITE_ROCKET, $2 + 4, $13 + 4, $ff, $d2, $42, ROCKET + $C8, $23 ; trainer
+ db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d0, $43, SCIENTIST + $C8, $9 ; trainer
+ db SPRITE_ROCKET, $f + 4, $c + 4, $ff, $d3, $44, ROCKET + $C8, $24 ; trainer
; warp-to
EVENT_DISP $d, $0, $10 ; SILPH_CO_9F
@@ -18364,7 +22704,6 @@ SilphCo8Object: ; 0x56613 (size=90)
EVENT_DISP $d, $5, $b ; SILPH_CO_2F
EVENT_DISP $d, $9, $b ; SILPH_CO_8F
-
SilphCo8Blocks: ; 117
INCBIN "maps/silphco8.blk"
@@ -18408,12 +22747,12 @@ Route6Object: ; 0x58022 (size=87)
db $f, $13, $7 ; Route6Text7
db $6 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $15 + 4, $a + 4, $ff, $d3, $41, $cd, $4 ; trainer
- db SPRITE_LASS, $15 + 4, $b + 4, $ff, $d2, $42, $ce, $2 ; trainer
- db SPRITE_BUG_CATCHER, $f + 4, $0 + 4, $ff, $d3, $43, $ca, $a ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $b + 4, $ff, $d2, $44, $cd, $5 ; trainer
- db SPRITE_LASS, $1e + 4, $b + 4, $ff, $d2, $45, $ce, $3 ; trainer
- db SPRITE_BUG_CATCHER, $1a + 4, $13 + 4, $ff, $d2, $46, $ca, $b ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $15 + 4, $a + 4, $ff, $d3, $41, JR__TRAINER_M + $C8, $4 ; trainer
+ db SPRITE_LASS, $15 + 4, $b + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $f + 4, $0 + 4, $ff, $d3, $43, BUG_CATCHER + $C8, $a ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $5 ; trainer
+ db SPRITE_LASS, $1e + 4, $b + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $3 ; trainer
+ db SPRITE_BUG_CATCHER, $1a + 4, $13 + 4, $ff, $d2, $46, BUG_CATCHER + $C8, $b ; trainer
; warp-to
EVENT_DISP $a, $1, $9 ; ROUTE_6_GATE
@@ -18421,8 +22760,6 @@ Route6Object: ; 0x58022 (size=87)
EVENT_DISP $a, $7, $a ; ROUTE_6_GATE
EVENT_DISP $a, $d, $11 ; PATH_ENTRANCE_ROUTE_6
-INCBIN "baserom.gbc",$58079,$0
-
Route6Blocks: ; 180
INCBIN "maps/route6.blk"
@@ -18464,15 +22801,15 @@ Route8Object: ; 0x5814f (size=119)
db $3, $11, $a ; Route8Text10
db $9 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $8 + 4, $ff, $d3, $41, $d0, $3 ; trainer
- db SPRITE_GAMBLER, $9 + 4, $d + 4, $ff, $d1, $42, $d9, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $6 + 4, $2a + 4, $ff, $d1, $43, $d0, $4 ; trainer
- db SPRITE_LASS, $3 + 4, $1a + 4, $ff, $d2, $44, $cb, $d ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $1a + 4, $ff, $d3, $45, $d0, $5 ; trainer
- db SPRITE_LASS, $5 + 4, $1a + 4, $ff, $d2, $46, $cb, $e ; trainer
- db SPRITE_LASS, $6 + 4, $1a + 4, $ff, $d3, $47, $cb, $f ; trainer
- db SPRITE_GAMBLER, $d + 4, $2e + 4, $ff, $d0, $48, $d9, $7 ; trainer
- db SPRITE_LASS, $c + 4, $33 + 4, $ff, $d2, $49, $cb, $10 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $8 + 4, $ff, $d3, $41, SUPER_NERD + $C8, $3 ; trainer
+ db SPRITE_GAMBLER, $9 + 4, $d + 4, $ff, $d1, $42, GAMBLER + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $6 + 4, $2a + 4, $ff, $d1, $43, SUPER_NERD + $C8, $4 ; trainer
+ db SPRITE_LASS, $3 + 4, $1a + 4, $ff, $d2, $44, LASS + $C8, $d ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $1a + 4, $ff, $d3, $45, SUPER_NERD + $C8, $5 ; trainer
+ db SPRITE_LASS, $5 + 4, $1a + 4, $ff, $d2, $46, LASS + $C8, $e ; trainer
+ db SPRITE_LASS, $6 + 4, $1a + 4, $ff, $d3, $47, LASS + $C8, $f ; trainer
+ db SPRITE_GAMBLER, $d + 4, $2e + 4, $ff, $d0, $48, GAMBLER + $C8, $7 ; trainer
+ db SPRITE_LASS, $c + 4, $33 + 4, $ff, $d2, $49, LASS + $C8, $10 ; trainer
; warp-to
EVENT_DISP $1e, $9, $1 ; ROUTE_8_GATE
@@ -18481,8 +22818,6 @@ Route8Object: ; 0x5814f (size=119)
EVENT_DISP $1e, $a, $8 ; ROUTE_8_GATE
EVENT_DISP $1e, $3, $d ; PATH_ENTRANCE_ROUTE_8
-INCBIN "baserom.gbc",$581c6,$0
-
Route8Blocks: ; 270
INCBIN "maps/route8.blk"
@@ -18526,12 +22861,12 @@ Route10Object: ; 0x582f6 (size=96)
db $29, $5, $a ; Route10Text10
db $6 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $2c + 4, $a + 4, $ff, $d2, $41, $cf, $1 ; trainer
- db SPRITE_HIKER, $39 + 4, $3 + 4, $ff, $d1, $42, $d1, $7 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $40 + 4, $e + 4, $ff, $d2, $43, $cf, $2 ; trainer
- db SPRITE_LASS, $19 + 4, $7 + 4, $ff, $d2, $44, $ce, $7 ; trainer
- db SPRITE_HIKER, $3d + 4, $3 + 4, $ff, $d0, $45, $d1, $8 ; trainer
- db SPRITE_LASS, $36 + 4, $7 + 4, $ff, $d0, $46, $ce, $8 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $2c + 4, $a + 4, $ff, $d2, $41, POKEMANIAC + $C8, $1 ; trainer
+ db SPRITE_HIKER, $39 + 4, $3 + 4, $ff, $d1, $42, HIKER + $C8, $7 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $40 + 4, $e + 4, $ff, $d2, $43, POKEMANIAC + $C8, $2 ; trainer
+ db SPRITE_LASS, $19 + 4, $7 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $7 ; trainer
+ db SPRITE_HIKER, $3d + 4, $3 + 4, $ff, $d0, $45, HIKER + $C8, $8 ; trainer
+ db SPRITE_LASS, $36 + 4, $7 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $8 ; trainer
; warp-to
EVENT_DISP $a, $13, $b ; ROCK_TUNNEL_POKECENTER
@@ -18539,8 +22874,6 @@ Route10Object: ; 0x582f6 (size=96)
EVENT_DISP $a, $35, $8 ; ROCK_TUNNEL_1
EVENT_DISP $a, $27, $6 ; POWER_PLANT
-INCBIN "baserom.gbc",$58356,$0
-
Route10Blocks: ; 360
INCBIN "maps/route10.blk"
@@ -18582,16 +22915,16 @@ Route11Object: ; 0x584e0 (size=127)
db $5, $1, $b ; Route11Text11
db $a ; people
- db SPRITE_GAMBLER, $e + 4, $a + 4, $ff, $d0, $41, $d9, $1 ; trainer
- db SPRITE_GAMBLER, $9 + 4, $1a + 4, $ff, $d0, $42, $d9, $2 ; trainer
- db SPRITE_BUG_CATCHER, $5 + 4, $d + 4, $ff, $d2, $43, $c9, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $24 + 4, $ff, $d0, $44, $d4, $2 ; trainer
- db SPRITE_BUG_CATCHER, $4 + 4, $16 + 4, $ff, $d1, $45, $c9, $a ; trainer
- db SPRITE_GAMBLER, $7 + 4, $2d + 4, $ff, $d0, $46, $d9, $3 ; trainer
- db SPRITE_GAMBLER, $3 + 4, $21 + 4, $ff, $d1, $47, $d9, $4 ; trainer
- db SPRITE_BUG_CATCHER, $5 + 4, $2b + 4, $ff, $d3, $48, $c9, $b ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $10 + 4, $2d + 4, $ff, $d2, $49, $d4, $3 ; trainer
- db SPRITE_BUG_CATCHER, $c + 4, $16 + 4, $ff, $d1, $4a, $c9, $c ; trainer
+ db SPRITE_GAMBLER, $e + 4, $a + 4, $ff, $d0, $41, GAMBLER + $C8, $1 ; trainer
+ db SPRITE_GAMBLER, $9 + 4, $1a + 4, $ff, $d0, $42, GAMBLER + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $5 + 4, $d + 4, $ff, $d2, $43, YOUNGSTER + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $24 + 4, $ff, $d0, $44, ENGINEER + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $4 + 4, $16 + 4, $ff, $d1, $45, YOUNGSTER + $C8, $a ; trainer
+ db SPRITE_GAMBLER, $7 + 4, $2d + 4, $ff, $d0, $46, GAMBLER + $C8, $3 ; trainer
+ db SPRITE_GAMBLER, $3 + 4, $21 + 4, $ff, $d1, $47, GAMBLER + $C8, $4 ; trainer
+ db SPRITE_BUG_CATCHER, $5 + 4, $2b + 4, $ff, $d3, $48, YOUNGSTER + $C8, $b ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $10 + 4, $2d + 4, $ff, $d2, $49, ENGINEER + $C8, $3 ; trainer
+ db SPRITE_BUG_CATCHER, $c + 4, $16 + 4, $ff, $d1, $4a, YOUNGSTER + $C8, $c ; trainer
; warp-to
EVENT_DISP $1e, $8, $31 ; ROUTE_11_GATE_1F
@@ -18600,8 +22933,6 @@ Route11Object: ; 0x584e0 (size=127)
EVENT_DISP $1e, $9, $3a ; ROUTE_11_GATE_1F
EVENT_DISP $1e, $5, $4 ; DIGLETTS_CAVE_ENTRANCE
-INCBIN "baserom.gbc",$5855f,$0
-
Route11Blocks: ; 270
INCBIN "maps/route11.blk"
@@ -18650,15 +22981,15 @@ Route12Object: ; 0x5869a (size=118)
db $a ; people
db SPRITE_SNORLAX, $3e + 4, $a + 4, $ff, $d0, $1 ; person
- db SPRITE_FISHER2, $1f + 4, $e + 4, $ff, $d2, $42, $d6, $3 ; trainer
- db SPRITE_FISHER2, $27 + 4, $5 + 4, $ff, $d1, $43, $d6, $4 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $5c + 4, $b + 4, $ff, $d2, $44, $cd, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $4c + 4, $e + 4, $ff, $d1, $45, $dc, $2 ; trainer
- db SPRITE_FISHER2, $28 + 4, $c + 4, $ff, $d2, $46, $d6, $5 ; trainer
- db SPRITE_FISHER2, $34 + 4, $9 + 4, $ff, $d3, $47, $d6, $6 ; trainer
- db SPRITE_FISHER2, $57 + 4, $6 + 4, $ff, $d0, $48, $d6, $b ; trainer
- db SPRITE_BALL, $23 + 4, $e + 4, $ff, $ff, $89, $d8 ; item
- db SPRITE_BALL, $59 + 4, $5 + 4, $ff, $ff, $8a, $25 ; item
+ db SPRITE_FISHER2, $1f + 4, $e + 4, $ff, $d2, $42, FISHER + $C8, $3 ; trainer
+ db SPRITE_FISHER2, $27 + 4, $5 + 4, $ff, $d1, $43, FISHER + $C8, $4 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $5c + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $4c + 4, $e + 4, $ff, $d1, $45, ROCKER + $C8, $2 ; trainer
+ db SPRITE_FISHER2, $28 + 4, $c + 4, $ff, $d2, $46, FISHER + $C8, $5 ; trainer
+ db SPRITE_FISHER2, $34 + 4, $9 + 4, $ff, $d3, $47, FISHER + $C8, $6 ; trainer
+ db SPRITE_FISHER2, $57 + 4, $6 + 4, $ff, $d0, $48, FISHER + $C8, $b ; trainer
+ db SPRITE_BALL, $23 + 4, $e + 4, $ff, $ff, $89, TM_16 ; item
+ db SPRITE_BALL, $59 + 4, $5 + 4, $ff, $ff, $8a, IRON ; item
; warp-to
EVENT_DISP $a, $f, $a ; ROUTE_12_GATE
@@ -18666,8 +22997,6 @@ Route12Object: ; 0x5869a (size=118)
EVENT_DISP $a, $15, $a ; ROUTE_12_GATE
EVENT_DISP $a, $4d, $b ; ROUTE_12_HOUSE
-INCBIN "baserom.gbc",$58710,$0
-
Route12Blocks: ; 540
INCBIN "maps/route12.blk"
@@ -18708,17 +23037,17 @@ Route15Object: ; 0x5894e (size=126)
db $9, $27, $c ; Route15Text12
db $b ; people
- db SPRITE_LASS, $b + 4, $29 + 4, $ff, $d0, $41, $ce, $14 ; trainer
- db SPRITE_LASS, $a + 4, $35 + 4, $ff, $d2, $42, $ce, $15 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $1f + 4, $ff, $d1, $43, $df, $6 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $23 + 4, $ff, $d1, $44, $df, $7 ; trainer
- db SPRITE_FOULARD_WOMAN, $b + 4, $35 + 4, $ff, $d0, $45, $da, $9 ; trainer
- db SPRITE_FOULARD_WOMAN, $a + 4, $29 + 4, $ff, $d3, $46, $da, $a ; trainer
- db SPRITE_BIKER, $a + 4, $30 + 4, $ff, $d0, $47, $d2, $3 ; trainer
- db SPRITE_BIKER, $a + 4, $2e + 4, $ff, $d0, $48, $d2, $4 ; trainer
- db SPRITE_LASS, $5 + 4, $25 + 4, $ff, $d3, $49, $ce, $16 ; trainer
- db SPRITE_LASS, $d + 4, $12 + 4, $ff, $d1, $4a, $ce, $17 ; trainer
- db SPRITE_BALL, $5 + 4, $12 + 4, $ff, $ff, $8b, $dc ; item
+ db SPRITE_LASS, $b + 4, $29 + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $14 ; trainer
+ db SPRITE_LASS, $a + 4, $35 + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $15 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $1f + 4, $ff, $d1, $43, BIRD_KEEPER + $C8, $6 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $23 + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $7 ; trainer
+ db SPRITE_FOULARD_WOMAN, $b + 4, $35 + 4, $ff, $d0, $45, BEAUTY + $C8, $9 ; trainer
+ db SPRITE_FOULARD_WOMAN, $a + 4, $29 + 4, $ff, $d3, $46, BEAUTY + $C8, $a ; trainer
+ db SPRITE_BIKER, $a + 4, $30 + 4, $ff, $d0, $47, BIKER + $C8, $3 ; trainer
+ db SPRITE_BIKER, $a + 4, $2e + 4, $ff, $d0, $48, BIKER + $C8, $4 ; trainer
+ db SPRITE_LASS, $5 + 4, $25 + 4, $ff, $d3, $49, JR__TRAINER_F + $C8, $16 ; trainer
+ db SPRITE_LASS, $d + 4, $12 + 4, $ff, $d1, $4a, JR__TRAINER_F + $C8, $17 ; trainer
+ db SPRITE_BALL, $5 + 4, $12 + 4, $ff, $ff, $8b, TM_20 ; item
; warp-to
EVENT_DISP $1e, $8, $7 ; ROUTE_15_GATE
@@ -18726,8 +23055,6 @@ Route15Object: ; 0x5894e (size=126)
EVENT_DISP $1e, $8, $e ; ROUTE_15_GATE
EVENT_DISP $1e, $9, $e ; ROUTE_15_GATE
-INCBIN "baserom.gbc",$589cc,$0
-
Route15Blocks: ; 270
INCBIN "maps/route15.blk"
@@ -18774,12 +23101,12 @@ Route16Object: ; 0x58afc (size=136)
db $11, $5, $9 ; Route16Text9
db $7 ; people
- db SPRITE_BIKER, $c + 4, $11 + 4, $ff, $d2, $41, $d2, $5 ; trainer
- db SPRITE_BIKER, $d + 4, $e + 4, $ff, $d3, $42, $d8, $1 ; trainer
- db SPRITE_BIKER, $c + 4, $b + 4, $ff, $d1, $43, $d8, $2 ; trainer
- db SPRITE_BIKER, $b + 4, $9 + 4, $ff, $d2, $44, $d2, $6 ; trainer
- db SPRITE_BIKER, $a + 4, $6 + 4, $ff, $d3, $45, $d8, $3 ; trainer
- db SPRITE_BIKER, $c + 4, $3 + 4, $ff, $d3, $46, $d2, $7 ; trainer
+ db SPRITE_BIKER, $c + 4, $11 + 4, $ff, $d2, $41, BIKER + $C8, $5 ; trainer
+ db SPRITE_BIKER, $d + 4, $e + 4, $ff, $d3, $42, CUE_BALL + $C8, $1 ; trainer
+ db SPRITE_BIKER, $c + 4, $b + 4, $ff, $d1, $43, CUE_BALL + $C8, $2 ; trainer
+ db SPRITE_BIKER, $b + 4, $9 + 4, $ff, $d2, $44, BIKER + $C8, $6 ; trainer
+ db SPRITE_BIKER, $a + 4, $6 + 4, $ff, $d3, $45, CUE_BALL + $C8, $3 ; trainer
+ db SPRITE_BIKER, $c + 4, $3 + 4, $ff, $d3, $46, BIKER + $C8, $7 ; trainer
db SPRITE_SNORLAX, $a + 4, $1a + 4, $ff, $d0, $7 ; person
; warp-to
@@ -18793,8 +23120,6 @@ Route16Object: ; 0x58afc (size=136)
EVENT_DISP $14, $5, $18 ; ROUTE_16_GATE_1F
EVENT_DISP $14, $5, $7 ; ROUTE_16_HOUSE
-INCBIN "baserom.gbc",$58b84,$0
-
Route16Blocks: ; 180
INCBIN "maps/route16.blk"
@@ -18836,9 +23161,9 @@ Route18Object: ; 0x58c5a (size=66)
db $5, $21, $5 ; Route18Text5
db $3 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $24 + 4, $ff, $d3, $41, $df, $8 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $28 + 4, $ff, $d2, $42, $df, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $2a + 4, $ff, $d2, $43, $df, $a ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $24 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $8 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $28 + 4, $ff, $d2, $42, BIRD_KEEPER + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $2a + 4, $ff, $d2, $43, BIRD_KEEPER + $C8, $a ; trainer
; warp-to
EVENT_DISP $19, $8, $21 ; ROUTE_18_GATE_1F
@@ -18846,12 +23171,428 @@ Route18Object: ; 0x58c5a (size=66)
EVENT_DISP $19, $8, $28 ; ROUTE_18_GATE_1F
EVENT_DISP $19, $9, $28 ; ROUTE_18_GATE_1F
-INCBIN "baserom.gbc",$58c9c,$0
-
Route18Blocks: ; 225
INCBIN "maps/route18.blk"
-INCBIN "baserom.gbc",$58d7d,$de7
+INCBIN "baserom.gbc",$58d7d,$59139 - $58d7d
+Route6Text2: ; 0x59139
+ db $08 ; asm
+ ld hl, $50e3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59143,$5914d - $59143
+Route6Text3: ; 0x5914d
+ db $08 ; asm
+ ld hl, $50ef
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59157,$59166 - $59157
+Route6Text4: ; 0x59166
+ db $08 ; asm
+ ld hl, $50fb
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59170,$5917f - $59170
+Route6Text5: ; 0x5917f
+ db $08 ; asm
+ ld hl, $5107
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59189,$59198 - $59189
+Route6Text6: ; 0x59198
+ db $08 ; asm
+ ld hl, $5113
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$591a2,$f
+
+Route6Text7: ; 0x591b1
+ TX_FAR _Route6Text7
+ db $50
+
+INCBIN "baserom.gbc",$591b6,$59269 - $591b6
+Route8Text2: ; 0x59269
+ db $08 ; asm
+ ld hl, $51ef
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59273,$59282 - $59273
+Route8Text3: ; 0x59282
+ db $08 ; asm
+ ld hl, $51fb
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5928c,$5929b - $5928c
+Route8Text4: ; 0x5929b
+ db $08 ; asm
+ ld hl, $5207
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$592a5,$592b4 - $592a5
+Route8Text5: ; 0x592b4
+ db $08 ; asm
+ ld hl, $5213
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$592be,$592cd - $592be
+Route8Text6: ; 0x592cd
+ db $08 ; asm
+ ld hl, $521f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$592d7,$592e6 - $592d7
+Route8Text7: ; 0x592e6
+ db $08 ; asm
+ ld hl, $522b
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$592f0,$592ff - $592f0
+Route8Text8: ; 0x592ff
+ db $08 ; asm
+ ld hl, $5237
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59309,$59318 - $59309
+Route8Text9: ; 0x59318
+ db $08 ; asm
+ ld hl, $5243
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59322,$f
+
+Route8Text10: ; 0x59331
+ TX_FAR _Route8Text10
+ db $50
+
+INCBIN "baserom.gbc",$59336,$593ac - $59336
+Route10Text1: ; 0x593ac
+ db $08 ; asm
+ ld hl, $5363
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$593b6,$593c5 - $593b6
+Route10Text2: ; 0x593c5
+ db $08 ; asm
+ ld hl, $536f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$593cf,$593de - $593cf
+Route10Text3: ; 0x593de
+ db $08 ; asm
+ ld hl, $537b
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$593e8,$593f7 - $593e8
+Route10Text4: ; 0x593f7
+ db $08 ; asm
+ ld hl, $5387
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59401,$59410 - $59401
+Route10Text5: ; 0x59410
+ db $08 ; asm
+ ld hl, $5393
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5941a,$59429 - $5941a
+Route10Text6: ; 0x59429
+ db $08 ; asm
+ ld hl, $539f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59433,$f
+
+Route10Text9: ; 0x59442
+Route10Text7: ; 0x59442
+ TX_FAR _Route10Text7 ; _Route10Text9
+ db $50
+
+Route10Text10: ; 0x59447
+ TX_FAR _Route10Text10
+ db $50
+
+INCBIN "baserom.gbc",$5944c,$5950d - $5944c
+Route11Text2: ; 0x5950d
+ db $08 ; asm
+ ld hl, $5487
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59517,$59526 - $59517
+Route11Text3: ; 0x59526
+ db $08 ; asm
+ ld hl, $5493
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59530,$5953f - $59530
+Route11Text4: ; 0x5953f
+ db $08 ; asm
+ ld hl, $549f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59549,$59558 - $59549
+Route11Text5: ; 0x59558
+ db $08 ; asm
+ ld hl, $54ab
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59562,$59571 - $59562
+Route11Text6: ; 0x59571
+ db $08 ; asm
+ ld hl, $54b7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5957b,$5958a - $5957b
+Route11Text7: ; 0x5958a
+ db $08 ; asm
+ ld hl, $54c3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59594,$595a3 - $59594
+Route11Text8: ; 0x595a3
+ db $08 ; asm
+ ld hl, $54cf
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$595ad,$595bc - $595ad
+Route11Text9: ; 0x595bc
+ db $08 ; asm
+ ld hl, $54db
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$595c6,$595d5 - $595c6
+Route11Text10: ; 0x595d5
+ db $08 ; asm
+ ld hl, $54e7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$595df,$f
+
+Route11Text11: ; 0x595ee
+ TX_FAR _Route11Text11
+ db $50
+
+INCBIN "baserom.gbc",$595f3,$596e6 - $595f3
+
+Route12Text1: ; 0x596e6
+ TX_FAR _Route12Text1
+ db $50
+
+INCBIN "baserom.gbc",$596eb,$596f5 - $596eb
+Route12Text2: ; 0x596f5
+ db $08 ; asm
+ ld hl, $5691
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$596ff,$5970e - $596ff
+Route12Text3: ; 0x5970e
+ db $08 ; asm
+ ld hl, $569d
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59718,$59727 - $59718
+Route12Text4: ; 0x59727
+ db $08 ; asm
+ ld hl, $56a9
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59731,$59740 - $59731
+Route12Text5: ; 0x59740
+ db $08 ; asm
+ ld hl, $56b5
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5974a,$59759 - $5974a
+Route12Text6: ; 0x59759
+ db $08 ; asm
+ ld hl, $56c1
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59763,$59772 - $59763
+Route12Text7: ; 0x59772
+ db $08 ; asm
+ ld hl, $56cd
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5977c,$5978b - $5977c
+Route12Text8: ; 0x5978b
+ db $08 ; asm
+ ld hl, $56d9
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59795,$f
+
+Route12Text11: ; 0x597a4
+ TX_FAR _Route12Text11
+ db $50
+
+Route12Text12: ; 0x597a9
+ TX_FAR _Route12Text12
+ db $50
+
+INCBIN "baserom.gbc",$597ae,$59858 - $597ae
+Route15Text1: ; 0x59858
+ db $08 ; asm
+ ld hl, $57df
+ jr .asm_31ef8 ; 0x5985c
+ ld [$eb21], sp
+ ld d, a
+ jr .asm_31ef8 ; 0x59862
+ ld [$f721], sp
+ ld d, a
+ jr .asm_31ef8 ; 0x59868
+ ld [$0321], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x5986e
+ ld [$0f21], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x59874
+ ld [$1b21], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x5987a
+ ld [$2721], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x59880
+ ld [$3321], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x59886
+ ld [$3f21], sp
+ ld e, b
+ jr .asm_31ef8 ; 0x5988c
+ ld [$4b21], sp
+ ld e, b
+.asm_31ef8 ; 0x59892
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59898,$96
+
+Route15Text12: ; 0x5992e
+ TX_FAR _Route15Text12
+ db $50
+
+INCBIN "baserom.gbc",$59933,$59a18 - $59933
+Route16Text1: ; 0x59a18
+ db $08 ; asm
+ ld hl, $59cf
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a22,$59a31 - $59a22
+Route16Text2: ; 0x59a31
+ db $08 ; asm
+ ld hl, $59db
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a3b,$59a4a - $59a3b
+Route16Text3: ; 0x59a4a
+ db $08 ; asm
+ ld hl, $59e7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a54,$59a63 - $59a54
+Route16Text4: ; 0x59a63
+ db $08 ; asm
+ ld hl, $59f3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a6d,$59a7c - $59a6d
+Route16Text5: ; 0x59a7c
+ db $08 ; asm
+ ld hl, $59ff
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a86,$59a95 - $59a86
+Route16Text6: ; 0x59a95
+ db $08 ; asm
+ ld hl, $5a0b
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59a9f,$f
+
+Route16Text7: ; 0x59aae
+ TX_FAR _Route16Text7
+ db $50
+
+INCBIN "baserom.gbc",$59ab3,$59abd - $59ab3
+
+Route16Text8: ; 0x59abd
+ TX_FAR _Route16Text8
+ db $50
+
+Route16Text9: ; 0x59ac2
+ TX_FAR _Route16Text9
+ db $50
+
+INCBIN "baserom.gbc",$59ac7,$59b0f - $59ac7
+Route18Text1: ; 0x59b0f
+ db $08 ; asm
+ ld hl, $5aea
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59b19,$59b28 - $59b19
+Route18Text2: ; 0x59b28
+ db $08 ; asm
+ ld hl, $5af6
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59b32,$59b41 - $59b32
+Route18Text3: ; 0x59b41
+ db $08 ; asm
+ ld hl, $5b02
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59b4b,$f
+
+Route18Text4: ; 0x59b5a
+ TX_FAR _Route18Text4
+ db $50
+
+Route18Text5: ; 0x59b5f
+ TX_FAR _Route18Text5
+ db $50
FanClub_h: ; 0x59b64 to 0x59b70 (12 bytes) (id=90)
db $10 ; tileset
@@ -18861,7 +23602,90 @@ FanClub_h: ; 0x59b64 to 0x59b70 (12 bytes) (id=90)
dw $5c97 ; objects
-INCBIN "baserom.gbc",$59b70,$59c97 - $59b70
+INCBIN "baserom.gbc",$59b70,$59b94 - $59b70
+FanClubText1: ; 0x59b94
+ db $08 ; asm
+ ld a, [$d771]
+ bit 7, a
+ jr nz, .asm_67b22 ; 0x59b9a
+ ld hl, $5bb7
+ call PrintText
+ ld hl, $d771
+ set 6, [hl]
+ jr .asm_64f01 ; 0x59ba7
+.asm_67b22 ; 0x59ba9
+ ld hl, $5bbc
+ call PrintText
+ ld hl, $d771
+ res 7, [hl]
+.asm_64f01 ; 0x59bb4
+ jp $24d7
+
+INCBIN "baserom.gbc",$59bb7,$59bc1 - $59bb7
+FanClubText2: ; 0x59bc1
+ db $08 ; asm
+ ld a, [$d771]
+ bit 6, a
+ jr nz, .asm_5cd59 ; 0x59bc7
+ ld hl, $5be4
+ call PrintText
+ ld hl, $d771
+ set 7, [hl]
+ jr .asm_59625 ; 0x59bd4
+.asm_5cd59 ; 0x59bd6
+ ld hl, $5be9
+ call PrintText
+ ld hl, $d771
+ res 6, [hl]
+.asm_59625 ; 0x59be1
+ jp $24d7
+
+INCBIN "baserom.gbc",$59be4,$59c05 - $59be4
+FanClubText4: ; 0x59c05
+ db $08 ; asm
+ ld hl, $5c17
+ call PrintText
+ ld a,SEEL
+ call $13d0
+ call $3748
+ jp $24d7
+
+INCBIN "baserom.gbc",$59c17,$59c1c - $59c17
+FanClubText5: ; 0x59c1c
+ db $08 ; asm
+ call $5b73
+ jr nz, .asm_38bb3 ; 0x59c20
+ ld hl, $5c65
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_2c8d7 ; 0x59c2f
+ ld hl, $5c6a
+ call PrintText
+ ld bc,(BIKE_VOUCHER << 8) | 1
+ call $3e2e
+ jr nc, .asm_867d4 ; 0x59c3d
+ ld hl, $5c6f
+ call PrintText
+ ld hl, $d771
+ set 1, [hl]
+ jr .asm_d3c26 ; 0x59c4a
+.asm_867d4 ; 0x59c4c
+ ld hl, $5c83
+ call PrintText
+ jr .asm_d3c26 ; 0x59c52
+.asm_2c8d7 ; 0x59c54
+ ld hl, $5c79
+ call PrintText
+ jr .asm_d3c26 ; 0x59c5a
+.asm_38bb3 ; 0x59c5c
+ ld hl, $5c7e
+ call PrintText
+.asm_d3c26 ; 0x59c62
+ jp $24d7
+
+INCBIN "baserom.gbc",$59c65,$32
FanClubObject: ; 0x59c97 (size=62)
db $d ; border tile
@@ -18885,7 +23709,6 @@ FanClubObject: ; 0x59c97 (size=62)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
FanClubBlocks: ; 16
INCBIN "maps/fanclub.blk"
@@ -18897,7 +23720,54 @@ SilphCo2_h: ; 0x59ce5 to 0x59cf1 (12 bytes) (id=207)
dw $5e66 ; objects
-INCBIN "baserom.gbc",$59cf1,$59e66 - $59cf1
+INCBIN "baserom.gbc",$59cf1,$59dc1 - $59cf1
+SilphCo2Text1: ; 0x59dc1
+ db $08 ; asm
+ ld a, [$d826]
+ bit 7, a
+ jr nz, .asm_b8a0d ; 0x59dc7
+ ld hl, $5ded
+ call PrintText
+ ld bc,(TM_36 << 8) | 1
+ call $3e2e
+ ld hl, $5dfd
+ jr nc, .asm_2c1e0 ; 0x59dd8
+ ld hl, $d826
+ set 7, [hl]
+ ld hl, $5df2
+ jr .asm_2c1e0 ; 0x59de2
+.asm_b8a0d ; 0x59de4
+ ld hl, $5df8
+.asm_2c1e0 ; 0x59de7
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$59ded,$59e02 - $59ded
+SilphCo2Text2: ; 0x59e02
+ db $08 ; asm
+ ld hl, $5d90
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo2Text3: ; 0x59e0c
+ db $08 ; asm
+ ld hl, $5d9c
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo2Text4: ; 0x59e16
+ db $08 ; asm
+ ld hl, $5da8
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo2Text5: ; 0x59e20
+ db $08 ; asm
+ ld hl, $5db4
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$59e2a,$3c
SilphCo2Object: ; 0x59e66 (size=98)
db $2e ; border tile
@@ -18914,10 +23784,10 @@ SilphCo2Object: ; 0x59e66 (size=98)
db $5 ; people
db SPRITE_ERIKA, $1 + 4, $a + 4, $ff, $d1, $1 ; person
- db SPRITE_OAK_AIDE, $c + 4, $5 + 4, $ff, $d0, $42, $e4, $2 ; trainer
- db SPRITE_OAK_AIDE, $d + 4, $18 + 4, $ff, $d2, $43, $e4, $3 ; trainer
- db SPRITE_ROCKET, $b + 4, $10 + 4, $ff, $d1, $44, $e6, $17 ; trainer
- db SPRITE_ROCKET, $7 + 4, $18 + 4, $ff, $d1, $45, $e6, $18 ; trainer
+ db SPRITE_OAK_AIDE, $c + 4, $5 + 4, $ff, $d0, $42, SCIENTIST + $C8, $2 ; trainer
+ db SPRITE_OAK_AIDE, $d + 4, $18 + 4, $ff, $d2, $43, SCIENTIST + $C8, $3 ; trainer
+ db SPRITE_ROCKET, $b + 4, $10 + 4, $ff, $d1, $44, ROCKET + $C8, $17 ; trainer
+ db SPRITE_ROCKET, $7 + 4, $18 + 4, $ff, $d1, $45, ROCKET + $C8, $18 ; trainer
; warp-to
EVENT_DISP $f, $0, $18 ; SILPH_CO_1F
@@ -18928,7 +23798,6 @@ SilphCo2Object: ; 0x59e66 (size=98)
EVENT_DISP $f, $f, $1b ; SILPH_CO_8F
EVENT_DISP $f, $f, $9 ; SILPH_CO_6F
-
SilphCo2Blocks: ; 135
INCBIN "maps/silphco2.blk"
@@ -18940,7 +23809,33 @@ SilphCo3_h: ; 0x59f4f to 0x59f5b (12 bytes) (id=208)
dw $6035 ; objects
-INCBIN "baserom.gbc",$59f5b,$5a035 - $59f5b
+INCBIN "baserom.gbc",$59f5b,$59fe5 - $59f5b
+SilphCo3Text1: ; 0x59fe5
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ ld hl, $5ffe
+ jr nz, .asm_8c56f ; 0x59fee
+ ld hl, $5ff9
+.asm_8c56f ; 0x59ff3
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$59ff9,$5a003 - $59ff9
+SilphCo3Text2: ; 0x5a003
+ db $08 ; asm
+ ld hl, $5fcc
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5a00d,$5a01c - $5a00d
+SilphCo3Text3: ; 0x5a01c
+ db $08 ; asm
+ ld hl, $5fd8
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5a026,$f
SilphCo3Object: ; 0x5a035 (size=113)
db $2e ; border tile
@@ -18960,9 +23855,9 @@ SilphCo3Object: ; 0x5a035 (size=113)
db $4 ; people
db SPRITE_LAPRAS_GIVER, $8 + 4, $18 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $7 + 4, $14 + 4, $ff, $d2, $42, $e6, $19 ; trainer
- db SPRITE_OAK_AIDE, $9 + 4, $7 + 4, $ff, $d0, $43, $e4, $4 ; trainer
- db SPRITE_BALL, $5 + 4, $8 + 4, $ff, $ff, $84, $12 ; item
+ db SPRITE_ROCKET, $7 + 4, $14 + 4, $ff, $d2, $42, ROCKET + $C8, $19 ; trainer
+ db SPRITE_OAK_AIDE, $9 + 4, $7 + 4, $ff, $d0, $43, SCIENTIST + $C8, $4 ; trainer
+ db SPRITE_BALL, $5 + 4, $8 + 4, $ff, $ff, $84, HYPER_POTION ; item
; warp-to
EVENT_DISP $f, $0, $1a ; SILPH_CO_2F
@@ -18976,7 +23871,6 @@ SilphCo3Object: ; 0x5a035 (size=113)
EVENT_DISP $f, $b, $b ; SILPH_CO_7F
EVENT_DISP $f, $f, $1b ; SILPH_CO_3F
-
SilphCo3Blocks: ; 135
INCBIN "maps/silphco3.blk"
@@ -18988,7 +23882,31 @@ SilphCo10_h: ; 0x5a12d to 0x5a139 (12 bytes) (id=234)
dw $61fb ; objects
-INCBIN "baserom.gbc",$5a139,$5a1fb - $5a139
+INCBIN "baserom.gbc",$5a139,$5a1ab - $5a139
+SilphCo10Text1: ; 0x5a1ab
+ db $08 ; asm
+ ld hl, $6192
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo10Text2: ; 0x5a1b5
+ db $08 ; asm
+ ld hl, $619e
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo10Text3: ; 0x5a1bf
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ ld hl, $61d8
+ jr nz, .asm_cf85f ; 0x5a1c8
+ ld hl, $61d3
+.asm_cf85f ; 0x5a1cd
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5a1d3,$28
SilphCo10Object: ; 0x5a1fb (size=95)
db $2e ; border tile
@@ -19003,12 +23921,12 @@ SilphCo10Object: ; 0x5a1fb (size=95)
db $0 ; signs
db $6 ; people
- db SPRITE_ROCKET, $9 + 4, $1 + 4, $ff, $d3, $41, $e6, $27 ; trainer
- db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d2, $42, $e4, $b ; trainer
+ db SPRITE_ROCKET, $9 + 4, $1 + 4, $ff, $d3, $41, ROCKET + $C8, $27 ; trainer
+ db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d2, $42, SCIENTIST + $C8, $b ; trainer
db SPRITE_ERIKA, $f + 4, $9 + 4, $fe, $0, $3 ; person
- db SPRITE_BALL, $c + 4, $2 + 4, $ff, $ff, $84, $e2 ; item
- db SPRITE_BALL, $e + 4, $4 + 4, $ff, $ff, $85, $28 ; item
- db SPRITE_BALL, $b + 4, $5 + 4, $ff, $ff, $86, $26 ; item
+ db SPRITE_BALL, $c + 4, $2 + 4, $ff, $ff, $84, TM_26 ; item
+ db SPRITE_BALL, $e + 4, $4 + 4, $ff, $ff, $85, RARE_CANDY ; item
+ db SPRITE_BALL, $b + 4, $5 + 4, $ff, $ff, $86, CARBOS ; item
; warp-to
EVENT_DISP $8, $0, $8 ; SILPH_CO_9F
@@ -19018,7 +23936,6 @@ SilphCo10Object: ; 0x5a1fb (size=95)
EVENT_DISP $8, $f, $d ; SILPH_CO_4F
EVENT_DISP $8, $7, $d ; SILPH_CO_4F
-
SilphCo10Blocks: ; 72
INCBIN "maps/silphco10.blk"
@@ -19030,7 +23947,14 @@ Lance_h: ; 0x5a2a2 to 0x5a2ae (12 bytes) (id=113)
dw $63c5 ; objects
-INCBIN "baserom.gbc",$5a2ae,$5a3c5 - $5a2ae
+INCBIN "baserom.gbc",$5a2ae,$5a3a4 - $5a2ae
+LanceText1: ; 0x5a3a4
+ db $08 ; asm
+ ld hl, $6397
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5a3ae,$17
LanceObject: ; 0x5a3c5 (size=36)
db $3 ; border tile
@@ -19042,14 +23966,13 @@ LanceObject: ; 0x5a3c5 (size=36)
db $0 ; signs
db $1 ; people
- db SPRITE_LANCE, $1 + 4, $6 + 4, $ff, $d0, $41, $f7, $1 ; trainer
+ db SPRITE_LANCE, $1 + 4, $6 + 4, $ff, $d0, $41, LANCE + $C8, $1 ; trainer
; warp-to
EVENT_DISP $d, $10, $18 ; AGATHAS_ROOM
EVENT_DISP $d, $0, $5 ; CHAMPIONS_ROOM
EVENT_DISP $d, $0, $6 ; CHAMPIONS_ROOM
-
LanceBlocks: ; 169
INCBIN "maps/lance.blk"
@@ -19061,7 +23984,14 @@ HallofFameRoom_h: ; 0x5a492 to 0x5a49e (12 bytes) (id=118)
dw $6571 ; objects
-INCBIN "baserom.gbc",$5a49e,$5a571 - $5a49e
+INCBIN "baserom.gbc",$5a49e,$5a56a - $5a49e
+HallofFameRoomTexts: ; 0x5a56a
+ dw HallofFameRoomText1
+
+HallofFameRoomText1: ; 0x5a56c
+ TX_FAR _HallofFameRoomText1
+ db $50
+
HallofFameRoomObject: ; 0x5a571 (size=26)
db $3 ; border tile
@@ -19078,7 +24008,6 @@ HallofFameRoomObject: ; 0x5a571 (size=26)
EVENT_DISP $5, $7, $4 ; CHAMPIONS_ROOM
EVENT_DISP $5, $7, $5 ; CHAMPIONS_ROOM
-
HallofFameRoomBlocks: ; 20
INCBIN "maps/halloffameroom.blk"
@@ -19104,8 +24033,6 @@ PewterPokecenterBlocks: ; 28
UndergroundTunnelEntranceRoute5Blocks: ; 16
INCBIN "maps/undergroundtunnelentranceroute5.blk"
-INCBIN "baserom.gbc",$5c090,$0
-
ViridianForestexitBlocks: ; 20
INCBIN "maps/viridianforestexit.blk"
@@ -19163,7 +24090,56 @@ MuseumF1_h: ; 0x5c0eb to 0x5c0f7 (12 bytes) (id=52)
dw $42c1 ; objects
-INCBIN "baserom.gbc",$5c0f7,$5c2c1 - $5c0f7
+INCBIN "baserom.gbc",$5c0f7,$5c247 - $5c0f7
+MuseumF1Text2: ; 0x5c247
+ db $08 ; asm
+ ld hl, $4251
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c251,$5c256 - $5c251
+MuseumF1Text3: ; 0x5c256
+ db $08 ; asm
+ ld a, [$d754]
+ bit 1, a
+ jr nz, .asm_16599 ; 0x5c25c
+ ld hl, $428e
+ call PrintText
+ ld bc,(OLD_AMBER << 8) | 1
+ call $3e2e
+ jr nc, .asm_91ebf ; 0x5c26a
+ ld hl, $d754
+ set 1, [hl]
+ ld a, $34
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld hl, $4293
+ jr .asm_52e0f ; 0x5c27e
+.asm_91ebf ; 0x5c280
+ ld hl, $429e
+ jr .asm_52e0f ; 0x5c283
+.asm_16599 ; 0x5c285
+ ld hl, $4299
+.asm_52e0f ; 0x5c288
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c28e,$5c2a3 - $5c28e
+MuseumF1Text4: ; 0x5c2a3
+ db $08 ; asm
+ ld hl, $42ad
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c2ad,$5c2b2 - $5c2ad
+MuseumF1Text5: ; 0x5c2b2
+ db $08 ; asm
+ ld hl, $42bc
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c2bc,$5
MuseumF1Object: ; 0x5c2c1 (size=74)
db $a ; border tile
@@ -19190,7 +24166,6 @@ MuseumF1Object: ; 0x5c2c1 (size=74)
EVENT_DISP $a, $7, $11
EVENT_DISP $a, $7, $7 ; MUSEUM_2F
-
MuseumF2_h: ; 0x5c30b to 0x5c317 (12 bytes) (id=53)
db $0a ; tileset
db $04, $07 ; dimensions (y, x)
@@ -19199,7 +24174,38 @@ MuseumF2_h: ; 0x5c30b to 0x5c317 (12 bytes) (id=53)
dw $434b ; objects
-INCBIN "baserom.gbc",$5c317,$5c34b - $5c317
+INCBIN "baserom.gbc",$5c317,$5c31a - $5c317
+MuseumF2Texts: ; 0x5c31a
+ dw MuseumF2Text1, MuseumF2Text2, MuseumF2Text3, MuseumF2Text4, MuseumF2Text5, MuseumF2Text6, MuseumF2Text7
+
+MuseumF2Text1: ; 0x5c328
+ TX_FAR _MuseumF2Text1
+ db $50
+
+MuseumF2Text2: ; 0x5c32d
+ TX_FAR _MuseumF2Text2
+ db $50
+
+MuseumF2Text3: ; 0x5c332
+ TX_FAR _MuseumF2Text3
+ db $50
+
+MuseumF2Text4: ; 0x5c337
+ TX_FAR _MuseumF2Text4
+ db $50
+
+MuseumF2Text5: ; 0x5c33c
+ TX_FAR _MuseumF2Text5
+ db $50
+
+MuseumF2Text6: ; 0x5c341
+ TX_FAR _MuseumF2Text6
+ db $50
+
+MuseumF2Text7: ; 0x5c346
+ TX_FAR _MuseumF2Text7
+ db $50
+
MuseumF2Object: ; 0x5c34b (size=48)
db $a ; border tile
@@ -19220,7 +24226,6 @@ MuseumF2Object: ; 0x5c34b (size=48)
; warp-to
EVENT_DISP $7, $7, $7 ; MUSEUM_1F
-
PewterGym_h: ; 0x5c37b to 0x5c387 (12 bytes) (id=54)
db $07 ; tileset
db $07, $05 ; dimensions (y, x)
@@ -19229,7 +24234,80 @@ PewterGym_h: ; 0x5c37b to 0x5c387 (12 bytes) (id=54)
dw $452e ; objects
-INCBIN "baserom.gbc",$5c387,$5c52e - $5c387
+INCBIN "baserom.gbc",$5c387,$5c44e - $5c387
+PewterGymText1: ; 0x5c44e
+ db $08 ; asm
+ ld a, [$d755]
+ bit 7, a
+ jr z, .asm_4a735 ; 0x5c454
+ bit 6, a
+ jr nz, .asm_ff7d0 ; 0x5c458
+ call z, $43df
+ call $30b6
+ jr .asm_e0ffb ; 0x5c460
+.asm_ff7d0 ; 0x5c462
+ ld hl, $44a3
+ call PrintText
+ jr .asm_e0ffb ; 0x5c468
+.asm_4a735 ; 0x5c46a
+ ld hl, $449e
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $44bc
+ ld de, $44bc
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $1
+ ld [$d05c], a
+ xor a
+ ldh [$b4], a
+ ld a, $3
+ ld [$d5fc], a
+ ld [$da39], a
+.asm_e0ffb ; 0x5c49b
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c49e,$5c4c6 - $5c49e
+PewterGymText2: ; 0x5c4c6
+ db $08 ; asm
+ ld hl, $4441
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c4d0,$5c4df - $5c4d0
+PewterGymText3: ; 0x5c4df
+ db $08 ; asm
+ ld a, [$d72a]
+ bit 0, a
+ jr nz, .asm_71369 ; 0x5c4e5
+ ld hl, $4515
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_6123a ; 0x5c4f4
+ ld hl, $451a
+ call PrintText
+ jr .asm_d1578 ; 0x5c4fc
+.asm_6123a ; 0x5c4fe
+ ld hl, $4524
+ call PrintText
+.asm_d1578 ; 0x5c504
+ ld hl, $451f
+ call PrintText
+ jr .asm_07013 ; 0x5c50a
+.asm_71369 ; 0x5c50c
+ ld hl, $4529
+ call PrintText
+.asm_07013 ; 0x5c512
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c515,$19
PewterGymObject: ; 0x5c52e (size=42)
db $3 ; border tile
@@ -19240,15 +24318,14 @@ PewterGymObject: ; 0x5c52e (size=42)
db $0 ; signs
db $3 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $1 + 4, $4 + 4, $ff, $d0, $41, $ea, $1 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $3 + 4, $ff, $d3, $42, $cd, $1 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $1 + 4, $4 + 4, $ff, $d0, $41, BROCK + $C8, $1 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $3 + 4, $ff, $d3, $42, JR__TRAINER_M + $C8, $1 ; trainer
db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $3 ; person
; warp-to
EVENT_DISP $5, $d, $4
EVENT_DISP $5, $d, $5
-
PewterGymBlocks: ; 35
INCBIN "maps/pewtergym.blk"
@@ -19260,7 +24337,21 @@ PewterPokecenter_h: ; 0x5c57b to 0x5c587 (12 bytes) (id=58)
dw $460d ; objects
-INCBIN "baserom.gbc",$5c587,$5c60d - $5c587
+INCBIN "baserom.gbc",$5c587,$5c595 - $5c587
+
+;XXX wtf? maybe a part of the text script?
+db $ff
+PewterPokecenterText1: ; 0x5c595
+ TX_FAR _PewterPokecenterText1
+
+INCBIN "baserom.gbc",$5c59a,$5c603 - $5c59a
+
+PewterPokecenterText4: ; broken TX_FAR to _PewterPokecenterText4
+ db $17, $44, $47, $26
+ db $50
+
+;XXX wtf?
+db $30, $38, $34, $3c, $f6
PewterPokecenterObject: ; 0x5c60d (size=44)
db $0 ; border tile
@@ -19280,7 +24371,6 @@ PewterPokecenterObject: ; 0x5c60d (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
CeruleanPokecenter_h: ; 0x5c639 to 0x5c645 (12 bytes) (id=64)
db $06 ; tileset
db $04, $07 ; dimensions (y, x)
@@ -19289,7 +24379,14 @@ CeruleanPokecenter_h: ; 0x5c639 to 0x5c645 (12 bytes) (id=64)
dw $465f ; objects
-INCBIN "baserom.gbc",$5c645,$5c65f - $5c645
+INCBIN "baserom.gbc",$5c645,$5c655 - $5c645
+
+CeruleanPokecenterText1: ; 0x5c654
+ TX_FAR _CeruleanPokecenterText1
+ db $50
+
+INCBIN "baserom.gbc",$5c65a,$5
+
CeruleanPokecenterObject: ; 0x5c65f (size=44)
db $0 ; border tile
@@ -19309,7 +24406,6 @@ CeruleanPokecenterObject: ; 0x5c65f (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
CeruleanPokecenterBlocks: ; 28
INCBIN "maps/ceruleanpokecenter.blk"
@@ -19321,7 +24417,73 @@ CeruleanGym_h: ; 0x5c6a7 to 0x5c6b3 (12 bytes) (id=65)
dw $4834 ; objects
-INCBIN "baserom.gbc",$5c6b3,$5c834 - $5c6b3
+INCBIN "baserom.gbc",$5c6b3,$5c771 - $5c6b3
+CeruleanGymText1: ; 0x5c771
+ db $08 ; asm
+ ld a, [$d75e]
+ bit 7, a
+ jr z, .asm_10854 ; 0x5c777
+ bit 6, a
+ jr nz, .asm_37a1b ; 0x5c77b
+ call z, $470d
+ call $30b6
+ jr .asm_95b04 ; 0x5c783
+.asm_37a1b ; 0x5c785
+ ld hl, $47c3
+ call PrintText
+ jr .asm_95b04 ; 0x5c78b
+.asm_10854 ; 0x5c78d
+ ld hl, $47be
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $47d8
+ ld de, $47d8
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $2
+ ld [$d05c], a
+ xor a
+ ldh [$b4], a
+ ld a, $3
+ ld [$d5fd], a
+.asm_95b04 ; 0x5c7bb
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c7be,$5c7df - $5c7be
+CeruleanGymText2: ; 0x5c7df
+ db $08 ; asm
+ ld hl, $4758
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c7e9,$5c7f8 - $5c7e9
+CeruleanGymText3: ; 0x5c7f8
+ db $08 ; asm
+ ld hl, $4764
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c802,$5c811 - $5c802
+CeruleanGymText4: ; 0x5c811
+ db $08 ; asm
+ ld a, [$d75e]
+ bit 7, a
+ jr nz, .asm_f80ce ; 0x5c817
+ ld hl, $482a
+ call PrintText
+ jr .asm_18a31 ; 0x5c81f
+.asm_f80ce ; 0x5c821
+ ld hl, $482f
+ call PrintText
+.asm_18a31 ; 0x5c827
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c82a,$a
CeruleanGymObject: ; 0x5c834 (size=50)
db $3 ; border tile
@@ -19332,16 +24494,15 @@ CeruleanGymObject: ; 0x5c834 (size=50)
db $0 ; signs
db $4 ; people
- db SPRITE_BRUNETTE_GIRL, $2 + 4, $4 + 4, $ff, $d0, $41, $eb, $1 ; trainer
- db SPRITE_LASS, $3 + 4, $2 + 4, $ff, $d3, $42, $ce, $1 ; trainer
- db SPRITE_SWIMMER, $7 + 4, $8 + 4, $ff, $d2, $43, $d7, $1 ; trainer
+ db SPRITE_BRUNETTE_GIRL, $2 + 4, $4 + 4, $ff, $d0, $41, MISTY + $C8, $1 ; trainer
+ db SPRITE_LASS, $3 + 4, $2 + 4, $ff, $d3, $42, JR__TRAINER_F + $C8, $1 ; trainer
+ db SPRITE_SWIMMER, $7 + 4, $8 + 4, $ff, $d2, $43, SWIMMER + $C8, $1 ; trainer
db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $4 ; person
; warp-to
EVENT_DISP $5, $d, $4
EVENT_DISP $5, $d, $5
-
CeruleanGymBlocks: ; 35
INCBIN "maps/ceruleangym.blk"
@@ -19353,7 +24514,16 @@ CeruleanMart_h: ; 0x5c889 to 0x5c895 (12 bytes) (id=67)
dw $48a8 ; objects
-INCBIN "baserom.gbc",$5c895,$5c8a8 - $5c895
+INCBIN "baserom.gbc",$5c895,$5c89e - $5c895
+
+CeruleanMartText2: ; 0x5c89e
+ TX_FAR _CeruleanMartText2
+ db $50
+
+CeruleanMartText3: ; 0x5c8a3
+ TX_FAR _CeruleanMartText3
+ db $50
+
CeruleanMartObject: ; 0x5c8a8 (size=38)
db $0 ; border tile
@@ -19372,7 +24542,6 @@ CeruleanMartObject: ; 0x5c8a8 (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
LavenderPokecenter_h: ; 0x5c8ce to 0x5c8da (12 bytes) (id=141)
db $06 ; tileset
db $04, $07 ; dimensions (y, x)
@@ -19381,7 +24550,13 @@ LavenderPokecenter_h: ; 0x5c8ce to 0x5c8da (12 bytes) (id=141)
dw $48f4 ; objects
-INCBIN "baserom.gbc",$5c8da,$5c8f4 - $5c8da
+INCBIN "baserom.gbc",$5c8da,$5c8ea - $5c8da
+
+LavenderPokecenterText1: ; 0x5c8e9
+ TX_FAR _LavenderPokecenterText1
+
+INCBIN "baserom.gbc",$5c8ea+4,$5c8f4 - ($5c8ea+4)
+
LavenderPokecenterObject: ; 0x5c8f4 (size=44)
db $0 ; border tile
@@ -19401,7 +24576,6 @@ LavenderPokecenterObject: ; 0x5c8f4 (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
LavenderMart_h: ; 0x5c920 to 0x5c92c (12 bytes) (id=150)
db $02 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -19410,7 +24584,27 @@ LavenderMart_h: ; 0x5c920 to 0x5c92c (12 bytes) (id=150)
dw $495d ; objects
-INCBIN "baserom.gbc",$5c92c,$5c95d - $5c92c
+INCBIN "baserom.gbc",$5c92c,$5c935 - $5c92c
+
+LavenderMartText2: ; 0x5c935
+ TX_FAR _LavenderMartText2
+ db $50
+
+LavenderMartText3: ; 0x5c93a
+ db $08 ; asm
+ ld a, [$d7e0]
+ bit 7, a
+ jr nz, .asm_c88d4 ; 0x5c940
+ ld hl, $4953
+ call PrintText
+ jr .asm_6d225 ; 0x5c948
+.asm_c88d4 ; 0x5c94a
+ ld hl, $4958
+ call PrintText
+.asm_6d225 ; 0x5c950
+ jp $24d7
+
+INCBIN "baserom.gbc",$5c953,$a
LavenderMartObject: ; 0x5c95d (size=38)
db $0 ; border tile
@@ -19429,7 +24623,6 @@ LavenderMartObject: ; 0x5c95d (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
VermilionPokecenter_h: ; 0x5c983 to 0x5c98f (12 bytes) (id=89)
db $06 ; tileset
db $04, $07 ; dimensions (y, x)
@@ -19438,7 +24631,12 @@ VermilionPokecenter_h: ; 0x5c983 to 0x5c98f (12 bytes) (id=89)
dw $49a9 ; objects
-INCBIN "baserom.gbc",$5c98f,$5c9a9 - $5c98f
+INCBIN "baserom.gbc",$5c98f,$5c99e - $5c98f
+
+VermilionPokecenterText1: ; 0x5c99d
+ TX_FAR _VermilionPokecenterText1
+
+INCBIN "baserom.gbc",$5c9a2,$7
VermilionPokecenterObject: ; 0x5c9a9 (size=44)
db $0 ; border tile
@@ -19458,7 +24656,6 @@ VermilionPokecenterObject: ; 0x5c9a9 (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
VermilionMart_h: ; 0x5c9d5 to 0x5c9e1 (12 bytes) (id=91)
db $02 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -19486,7 +24683,6 @@ VermilionMartObject: ; 0x5c9f4 (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
VermilionGym_h: ; 0x5ca1a to 0x5ca26 (12 bytes) (id=92)
db $07 ; tileset
db $09, $05 ; dimensions (y, x)
@@ -19495,7 +24691,81 @@ VermilionGym_h: ; 0x5ca1a to 0x5ca26 (12 bytes) (id=92)
dw $4bfe ; objects
-INCBIN "baserom.gbc",$5ca26,$5cbfe - $5ca26
+INCBIN "baserom.gbc",$5ca26,$5cb1d - $5ca26
+VermilionGymText1: ; 0x5cb1d
+ db $08 ; asm
+ ld a, [$d773]
+ bit 7, a
+ jr z, .asm_7cc29 ; 0x5cb23
+ bit 6, a
+ jr nz, .asm_41203 ; 0x5cb27
+ call z, $4aaa
+ call $30b6
+ jr .asm_23621 ; 0x5cb2f
+.asm_41203 ; 0x5cb31
+ ld hl, $4b72
+ call PrintText
+ jr .asm_23621 ; 0x5cb37
+.asm_7cc29 ; 0x5cb39
+ ld hl, $4b6d
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4b8b
+ ld de, $4b8b
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $3
+ ld [$d05c], a
+ xor a
+ ldh [$b4], a
+ ld a, $3
+ ld [$d5fe], a
+ ld [$da39], a
+.asm_23621 ; 0x5cb6a
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cb6d,$5cb90 - $5cb6d
+VermilionGymText2: ; 0x5cb90
+ db $08 ; asm
+ ld hl, $4af8
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cb9a,$5cba9 - $5cb9a
+VermilionGymText3: ; 0x5cba9
+ db $08 ; asm
+ ld hl, $4b04
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cbb3,$5cbc2 - $5cbb3
+VermilionGymText4: ; 0x5cbc2
+ db $08 ; asm
+ ld hl, $4b10
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cbcc,$5cbdb - $5cbcc
+VermilionGymText5: ; 0x5cbdb
+ db $08 ; asm
+ ld a, [$d72a]
+ bit 2, a
+ jr nz, .asm_13b67 ; 0x5cbe1
+ ld hl, $4bf4
+ call PrintText
+ jr .asm_c2b38 ; 0x5cbe9
+.asm_13b67 ; 0x5cbeb
+ ld hl, $4bf9
+ call PrintText
+.asm_c2b38 ; 0x5cbf1
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cbf4,$a
VermilionGymObject: ; 0x5cbfe (size=58)
db $3 ; border tile
@@ -19506,17 +24776,16 @@ VermilionGymObject: ; 0x5cbfe (size=58)
db $0 ; signs
db $5 ; people
- db SPRITE_ROCKER, $1 + 4, $5 + 4, $ff, $d0, $41, $ec, $1 ; trainer
- db SPRITE_GENTLEMAN, $6 + 4, $9 + 4, $ff, $d2, $42, $f1, $3 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d2, $43, $dc, $1 ; trainer
- db SPRITE_SAILOR, $a + 4, $0 + 4, $ff, $d3, $44, $cc, $8 ; trainer
+ db SPRITE_ROCKER, $1 + 4, $5 + 4, $ff, $d0, $41, LT__SURGE + $C8, $1 ; trainer
+ db SPRITE_GENTLEMAN, $6 + 4, $9 + 4, $ff, $d2, $42, GENTLEMAN + $C8, $3 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d2, $43, ROCKER + $C8, $1 ; trainer
+ db SPRITE_SAILOR, $a + 4, $0 + 4, $ff, $d3, $44, SAILOR + $C8, $8 ; trainer
db SPRITE_GYM_HELPER, $e + 4, $4 + 4, $ff, $d0, $5 ; person
; warp-to
EVENT_DISP $5, $11, $4
EVENT_DISP $5, $11, $5
-
VermilionGymBlocks: ; 45
INCBIN "maps/vermiliongym.blk"
@@ -19528,7 +24797,70 @@ CopycatsHouseF2_h: ; 0x5cc65 to 0x5cc71 (12 bytes) (id=176)
dw $4d21 ; objects
-INCBIN "baserom.gbc",$5cc71,$5cd21 - $5cc71
+INCBIN "baserom.gbc",$5cc71,$5cc82 - $5cc71
+CopycatsHouseF2Text1: ; 0x5cc82
+ db $08 ; asm
+ ld a, [$d7af]
+ bit 0, a
+ jr nz, .asm_7ccf3 ; 0x5cc88
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $4cd4
+ call PrintText
+ ld b,POKE_DOLL
+ call $3493
+ jr z, .asm_62ecd ; 0x5cc9a
+ ld hl, $4cd9
+ call PrintText
+ ld bc,(TM_31 << 8) | 1
+ call $3e2e
+ jr nc, .asm_16690 ; 0x5cca8
+ ld hl, $4cde
+ call PrintText
+ ld a, $33
+ ldh [$db], a
+ ld b, $5 ; BANK(MyFunction)
+ ld hl, $7f37 ; MyFunction
+ call Bankswitch
+ ld hl, $d7af
+ set 0, [hl]
+ jr .asm_62ecd ; 0x5ccc1
+.asm_16690 ; 0x5ccc3
+ ld hl, $4cee
+ call PrintText
+ jr .asm_62ecd ; 0x5ccc9
+.asm_7ccf3 ; 0x5cccb
+ ld hl, $4ce9
+ call PrintText
+.asm_62ecd ; 0x5ccd1
+ jp $24d7
+
+INCBIN "baserom.gbc",$5ccd4,$20
+
+CopycatsHouseF2Text2: ; 0x5ccf4
+ TX_FAR _CopycatsHouseF2Text2
+ db $50
+
+CopycatsHouseF2Text3: ; 0x5ccf9
+ TX_FAR _CopycatsHouseF2Text3
+ db $50
+
+CopycatsHouseF2Text6: ; 0x5ccfe
+ TX_FAR _CopycatsHouseF2Text6
+ db $50
+
+CopycatsHouseF2Text7: ; 0x5cd03
+ db $08 ; asm
+ ld a, [$c109]
+ cp $4
+ ld hl, $4d1c
+ jr nz, .asm_399a4 ; 0x5cd0c
+ ld hl, $4d17
+.asm_399a4 ; 0x5cd11
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cd17,$a
CopycatsHouseF2Object: ; 0x5cd21 (size=48)
db $a ; border tile
@@ -19549,7 +24881,6 @@ CopycatsHouseF2Object: ; 0x5cd21 (size=48)
; warp-to
EVENT_DISP $4, $1, $7 ; COPYCATS_HOUSE_1F
-
FightingDojo_h: ; 0x5cd51 to 0x5cd5d (12 bytes) (id=177)
db $05 ; tileset
db $06, $05 ; dimensions (y, x)
@@ -19558,7 +24889,133 @@ FightingDojo_h: ; 0x5cd51 to 0x5cd5d (12 bytes) (id=177)
dw $4f9b ; objects
-INCBIN "baserom.gbc",$5cd5d,$5cf9b - $5cd5d
+INCBIN "baserom.gbc",$5cd5d,$5ce44 - $5cd5d
+FightingDojoText1: ; 0x5ce44
+ db $08 ; asm
+ ld a, [$d7b1]
+ bit 0, a
+ jp nz, $4e7d
+ bit 1, a
+ jp nz, $4e85
+ ld hl, $4e8e
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4e93
+ ld de, $4e93
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $3
+ ld [$d642], a
+ ld [$da39], a
+ jr .asm_9dba4 ; 0x5ce7b
+ ld hl, $4e9d
+ call PrintText
+ jr .asm_9dba4 ; 0x5ce83
+ ld hl, $4e98
+ call PrintText
+.asm_9dba4 ; 0x5ce8b
+ jp $24d7
+
+INCBIN "baserom.gbc",$5ce8e,$5cea2 - $5ce8e
+FightingDojoText2: ; 0x5cea2
+ db $08 ; asm
+ ld hl, $4e13
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5ceac,$5cebb - $5ceac
+FightingDojoText3: ; 0x5cebb
+ db $08 ; asm
+ ld hl, $4e1f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cec5,$5ced4 - $5cec5
+FightingDojoText4: ; 0x5ced4
+ db $08 ; asm
+ ld hl, $4e2b
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cede,$5ceed - $5cede
+FightingDojoText5: ; 0x5ceed
+ db $08 ; asm
+ ld hl, $4e37
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cef7,$5cf06 - $5cef7
+FightingDojoText6: ; 0x5cf06
+ db $08 ; asm
+ ld a, [$d7b1]
+ and $c0
+ jr z, .asm_f8e28 ; 0x5cf0c
+ ld hl, $4f96
+ call PrintText
+ jr .asm_3a2c8 ; 0x5cf14
+.asm_f8e28 ; 0x5cf16
+ ld a, $2b
+ call $349b
+ ld hl, $4f49
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_3a2c8 ; 0x5cf28
+ ld a, [$cf91]
+ ld b, a
+ ld c,30
+ call GivePokemon
+ jr nc, .asm_3a2c8 ; 0x5cf33
+ ld a, $4a
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld hl, $d7b1
+ set 6, [hl]
+ set 0, [hl]
+.asm_3a2c8 ; 0x5cf46
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cf49,$5cf4e - $5cf49
+FightingDojoText7: ; 0x5cf4e
+ db $08 ; asm
+ ld a, [$d7b1]
+ and $c0
+ jr z, .asm_170a9 ; 0x5cf54
+ ld hl, $4f96
+ call PrintText
+ jr .asm_f1f47 ; 0x5cf5c
+.asm_170a9 ; 0x5cf5e
+ ld a, $2c
+ call $349b
+ ld hl, $4f91
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_f1f47 ; 0x5cf70
+ ld a, [$cf91]
+ ld b, a
+ ld c,30
+ call GivePokemon
+ jr nc, .asm_f1f47 ; 0x5cf7b
+ ld hl, $d7b1
+ set 7, [hl]
+ set 0, [hl]
+ ld a, $4b
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+.asm_f1f47 ; 0x5cf8e
+ jp $24d7
+
+INCBIN "baserom.gbc",$5cf91,$a
FightingDojoObject: ; 0x5cf9b (size=72)
db $3 ; border tile
@@ -19569,11 +25026,11 @@ FightingDojoObject: ; 0x5cf9b (size=72)
db $0 ; signs
db $7 ; people
- db SPRITE_HIKER, $3 + 4, $5 + 4, $ff, $d0, $41, $e0, $1 ; trainer
- db SPRITE_HIKER, $4 + 4, $3 + 4, $ff, $d3, $42, $e0, $2 ; trainer
- db SPRITE_HIKER, $6 + 4, $3 + 4, $ff, $d3, $43, $e0, $3 ; trainer
- db SPRITE_HIKER, $5 + 4, $5 + 4, $ff, $d2, $44, $e0, $4 ; trainer
- db SPRITE_HIKER, $7 + 4, $5 + 4, $ff, $d2, $45, $e0, $5 ; trainer
+ db SPRITE_HIKER, $3 + 4, $5 + 4, $ff, $d0, $41, BLACKBELT + $C8, $1 ; trainer
+ db SPRITE_HIKER, $4 + 4, $3 + 4, $ff, $d3, $42, BLACKBELT + $C8, $2 ; trainer
+ db SPRITE_HIKER, $6 + 4, $3 + 4, $ff, $d3, $43, BLACKBELT + $C8, $3 ; trainer
+ db SPRITE_HIKER, $5 + 4, $5 + 4, $ff, $d2, $44, BLACKBELT + $C8, $4 ; trainer
+ db SPRITE_HIKER, $7 + 4, $5 + 4, $ff, $d2, $45, BLACKBELT + $C8, $5 ; trainer
db SPRITE_BALL, $1 + 4, $4 + 4, $ff, $ff, $6 ; person
db SPRITE_BALL, $1 + 4, $5 + 4, $ff, $ff, $7 ; person
@@ -19581,7 +25038,6 @@ FightingDojoObject: ; 0x5cf9b (size=72)
EVENT_DISP $5, $b, $4
EVENT_DISP $5, $b, $5
-
FightingDojoBlocks: ; 30
INCBIN "maps/fightingdojo.blk"
@@ -19593,7 +25049,99 @@ SaffronGym_h: ; 0x5d001 to 0x5d00d (12 bytes) (id=178)
dw $5259 ; objects
-INCBIN "baserom.gbc",$5d00d,$5d259 - $5d00d
+INCBIN "baserom.gbc",$5d00d,$5d118 - $5d00d
+SaffronGymText1: ; 0x5d118
+ db $08 ; asm
+ ld a, [$d7b3]
+ bit 1, a
+ jr z, .asm_e3544 ; 0x5d11e
+ bit 0, a
+ jr nz, .asm_8d2f6 ; 0x5d122
+ call z, $5068
+ call $30b6
+ jr .asm_34c2c ; 0x5d12a
+.asm_8d2f6 ; 0x5d12c
+ ld hl, $516e
+ call PrintText
+ jr .asm_34c2c ; 0x5d132
+.asm_e3544 ; 0x5d134
+ ld hl, $5162
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $5167
+ ld de, $5167
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $6
+ ld [$d05c], a
+ ld a, $3
+ ld [$d65c], a
+.asm_34c2c ; 0x5d15f
+ jp $24d7
+
+INCBIN "baserom.gbc",$5d162,$5d187 - $5d162
+SaffronGymText2: ; 0x5d187
+ db $08 ; asm
+ ld hl, $50c3
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText3: ; 0x5d191
+ db $08 ; asm
+ ld hl, $50cf
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText4: ; 0x5d19b
+ db $08 ; asm
+ ld hl, $50db
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText5: ; 0x5d1a5
+ db $08 ; asm
+ ld hl, $50e7
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText6: ; 0x5d1af
+ db $08 ; asm
+ ld hl, $50f3
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText7: ; 0x5d1b9
+ db $08 ; asm
+ ld hl, $50ff
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText8: ; 0x5d1c3
+ db $08 ; asm
+ ld hl, $510b
+ call LoadTrainerHeader
+ jp $24d7
+
+SaffronGymText9: ; 0x5d1cd
+ db $08 ; asm
+ ld a, [$d7b3]
+ bit 1, a
+ jr nz, .asm_13f3c ; 0x5d1d3
+ ld hl, $51e6
+ call PrintText
+ jr .asm_e9907 ; 0x5d1db
+.asm_13f3c ; 0x5d1dd
+ ld hl, $51eb
+ call PrintText
+.asm_e9907 ; 0x5d1e3
+ jp $24d7
+
+INCBIN "baserom.gbc",$5d1e6,$73
SaffronGymObject: ; 0x5d259 (size=330)
db $2e ; border tile
@@ -19634,14 +25182,14 @@ SaffronGymObject: ; 0x5d259 (size=330)
db $0 ; signs
db $9 ; people
- db SPRITE_GIRL, $8 + 4, $9 + 4, $ff, $d0, $41, $f0, $1 ; trainer
- db SPRITE_MEDIUM, $1 + 4, $a + 4, $ff, $d0, $42, $f5, $16 ; trainer
- db SPRITE_BUG_CATCHER, $1 + 4, $11 + 4, $ff, $d0, $43, $db, $1 ; trainer
- db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d0, $44, $f5, $17 ; trainer
- db SPRITE_BUG_CATCHER, $7 + 4, $11 + 4, $ff, $d0, $45, $db, $2 ; trainer
- db SPRITE_MEDIUM, $d + 4, $3 + 4, $ff, $d0, $46, $f5, $18 ; trainer
- db SPRITE_BUG_CATCHER, $d + 4, $11 + 4, $ff, $d0, $47, $db, $3 ; trainer
- db SPRITE_BUG_CATCHER, $1 + 4, $3 + 4, $ff, $d0, $48, $db, $4 ; trainer
+ db SPRITE_GIRL, $8 + 4, $9 + 4, $ff, $d0, $41, SABRINA + $C8, $1 ; trainer
+ db SPRITE_MEDIUM, $1 + 4, $a + 4, $ff, $d0, $42, CHANNELER + $C8, $16 ; trainer
+ db SPRITE_BUG_CATCHER, $1 + 4, $11 + 4, $ff, $d0, $43, PSYCHIC_TR + $C8, $1 ; trainer
+ db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d0, $44, CHANNELER + $C8, $17 ; trainer
+ db SPRITE_BUG_CATCHER, $7 + 4, $11 + 4, $ff, $d0, $45, PSYCHIC_TR + $C8, $2 ; trainer
+ db SPRITE_MEDIUM, $d + 4, $3 + 4, $ff, $d0, $46, CHANNELER + $C8, $18 ; trainer
+ db SPRITE_BUG_CATCHER, $d + 4, $11 + 4, $ff, $d0, $47, PSYCHIC_TR + $C8, $3 ; trainer
+ db SPRITE_BUG_CATCHER, $1 + 4, $3 + 4, $ff, $d0, $48, PSYCHIC_TR + $C8, $4 ; trainer
db SPRITE_GYM_HELPER, $f + 4, $a + 4, $ff, $d0, $9 ; person
; warp-to
@@ -19678,7 +25226,6 @@ SaffronGymObject: ; 0x5d259 (size=330)
EVENT_DISP $a, $11, $f ; SAFFRON_GYM
EVENT_DISP $a, $11, $13 ; SAFFRON_GYM
-
SaffronGymBlocks: ; 90
INCBIN "maps/saffrongym.blk"
@@ -19690,7 +25237,16 @@ SaffronMart_h: ; 0x5d3fd to 0x5d409 (12 bytes) (id=180)
dw $541c ; objects
-INCBIN "baserom.gbc",$5d409,$5d41c - $5d409
+INCBIN "baserom.gbc",$5d409,$5d412 - $5d409
+
+SaffronMartText2: ; 0x5d412
+ TX_FAR _SaffronMartText2
+ db $50
+
+SaffronMartText3: ; 0x5d417
+ TX_FAR _SaffronMartText3
+ db $50
+
SaffronMartObject: ; 0x5d41c (size=38)
db $0 ; border tile
@@ -19709,7 +25265,6 @@ SaffronMartObject: ; 0x5d41c (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
SilphCo1_h: ; 0x5d442 to 0x5d44e (12 bytes) (id=181)
db $16 ; tileset
db $09, $0f ; dimensions (y, x)
@@ -19718,7 +25273,14 @@ SilphCo1_h: ; 0x5d442 to 0x5d44e (12 bytes) (id=181)
dw $5470 ; objects
-INCBIN "baserom.gbc",$5d44e,$5d470 - $5d44e
+INCBIN "baserom.gbc",$5d44e,$5d469 - $5d44e
+SilphCo1Texts: ; 0x5d469
+ dw SilphCo1Text1
+
+SilphCo1Text1: ; 0x5d46b
+ TX_FAR _SilphCo1Text1
+ db $50
+
SilphCo1Object: ; 0x5d470 (size=50)
db $2e ; border tile
@@ -19741,7 +25303,6 @@ SilphCo1Object: ; 0x5d470 (size=50)
EVENT_DISP $f, $0, $14 ; SILPH_CO_ELEVATOR
EVENT_DISP $f, $a, $10 ; SILPH_CO_3F
-
SilphCo1Blocks: ; 135
INCBIN "maps/silphco1.blk"
@@ -19753,7 +25314,14 @@ SaffronPokecenter_h: ; 0x5d529 to 0x5d535 (12 bytes) (id=182)
dw $554f ; objects
-INCBIN "baserom.gbc",$5d535,$5d54f - $5d535
+INCBIN "baserom.gbc",$5d535,$5d544 - $5d535
+
+SaffronPokecenterText2: ; maybe
+SaffronPokecenterText1: ; 0x5d543
+ TX_FAR _SaffronPokecenterText1
+
+INCBIN "baserom.gbc",$5d544+4,$5d54f - ($5d544+4)
+
SaffronPokecenterObject: ; 0x5d54f (size=44)
db $0 ; border tile
@@ -19773,7 +25341,6 @@ SaffronPokecenterObject: ; 0x5d54f (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
ViridianForestexit_h: ; 0x5d57b to 0x5d587 (12 bytes) (id=47)
db $09 ; tileset
db $04, $05 ; dimensions (y, x)
@@ -19782,7 +25349,18 @@ ViridianForestexit_h: ; 0x5d57b to 0x5d587 (12 bytes) (id=47)
dw $5598 ; objects
-INCBIN "baserom.gbc",$5d587,$5d598 - $5d587
+INCBIN "baserom.gbc",$5d587,$5d58a - $5d587
+ViridianForestexitTexts: ; 0x5d58a
+ dw ViridianForestexitText1, ViridianForestexitText2
+
+ViridianForestexitText1: ; 0x5d58e
+ TX_FAR _ViridianForestexitText1
+ db $50
+
+ViridianForestexitText2: ; 0x5d593
+ TX_FAR _ViridianForestexitText2
+ db $50
+
ViridianForestexitObject: ; 0x5d598 (size=48)
db $a ; border tile
@@ -19804,7 +25382,6 @@ ViridianForestexitObject: ; 0x5d598 (size=48)
EVENT_DISP $5, $7, $4 ; VIRIDIAN_FOREST
EVENT_DISP $5, $7, $5 ; VIRIDIAN_FOREST
-
Route2Gate_h: ; 0x5d5c8 to 0x5d5d4 (12 bytes) (id=49)
db $0c ; tileset
db $04, $05 ; dimensions (y, x)
@@ -19813,7 +25390,41 @@ Route2Gate_h: ; 0x5d5c8 to 0x5d5d4 (12 bytes) (id=49)
dw $5620 ; objects
-INCBIN "baserom.gbc",$5d5d4,$5d620 - $5d5d4
+INCBIN "baserom.gbc",$5d5d4,$5d5db - $5d5d4
+Route2GateText1: ; 0x5d5db
+ db $08 ; asm
+ ld a, [$d7c2]
+ bit 0, a
+ jr nz, .asm_6592c ; 0x5d5e1
+ ld a, $a
+ ldh [$db], a
+ ld a, $c8
+ ldh [$dc], a
+ ld [$d11e], a
+ call $2fcf
+ ld hl, $cd6d
+ ld de, $cc5b
+ ld bc, $000d
+ call CopyData
+ ld a, $62
+ call Predef
+ ldh a, [$db]
+ cp $1
+ jr nz, .asm_ad646 ; 0x5d606
+ ld hl, $d7c2
+ set 0, [hl]
+.asm_6592c ; 0x5d60d
+ ld hl, $5616
+ call PrintText
+.asm_ad646 ; 0x5d613
+ jp $24d7
+
+INCBIN "baserom.gbc",$5d616,$5
+
+Route2GateText2: ; 0x5d61b
+ TX_FAR _Route2GateText2
+ db $50
+
Route2GateObject: ; 0x5d620 (size=48)
db $a ; border tile
@@ -19835,7 +25446,6 @@ Route2GateObject: ; 0x5d620 (size=48)
EVENT_DISP $5, $7, $4
EVENT_DISP $5, $7, $5
-
ViridianForestEntrance_h: ; 0x5d650 to 0x5d65c (12 bytes) (id=50)
db $09 ; tileset
db $04, $05 ; dimensions (y, x)
@@ -19844,7 +25454,18 @@ ViridianForestEntrance_h: ; 0x5d650 to 0x5d65c (12 bytes) (id=50)
dw $566d ; objects
-INCBIN "baserom.gbc",$5d65c,$5d66d - $5d65c
+INCBIN "baserom.gbc",$5d65c,$5d65f - $5d65c
+ViridianForestEntranceTexts: ; 0x5d65f
+ dw ViridianForestEntranceText1, ViridianForestEntranceText2
+
+ViridianForestEntranceText1: ; 0x5d663
+ TX_FAR _ViridianForestEntranceText1
+ db $50
+
+ViridianForestEntranceText2: ; 0x5d668
+ TX_FAR _ViridianForestEntranceText2
+ db $50
+
ViridianForestEntranceObject: ; 0x5d66d (size=48)
db $a ; border tile
@@ -19866,7 +25487,6 @@ ViridianForestEntranceObject: ; 0x5d66d (size=48)
EVENT_DISP $5, $7, $4
EVENT_DISP $5, $7, $5
-
UndergroundTunnelEntranceRoute5_h: ; 0x5d69d to 0x5d6a9 (12 bytes) (id=71)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -19875,7 +25495,16 @@ UndergroundTunnelEntranceRoute5_h: ; 0x5d69d to 0x5d6a9 (12 bytes) (id=71)
dw $56c1 ; objects
-INCBIN "baserom.gbc",$5d6a9,$5d6c1 - $5d6a9
+INCBIN "baserom.gbc",$5d6a9,$5d6b2 - $5d6a9
+UndergroundTunnelEntranceRoute5Text1: ; 0x5d6b2
+ db $08 ; asm
+ ld a, $9
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ ld hl, $56af
+ ret
+
UndergroundTunnelEntranceRoute5Object: ; 0x5d6c1 (size=34)
db $a ; border tile
@@ -19894,7 +25523,6 @@ UndergroundTunnelEntranceRoute5Object: ; 0x5d6c1 (size=34)
EVENT_DISP $4, $7, $4
EVENT_DISP $4, $4, $4 ; UNDERGROUND_PATH_NS
-
UndergroundTunnelEntranceRoute6_h: ; 0x5d6e3 to 0x5d6ef (12 bytes) (id=74)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -19903,7 +25531,16 @@ UndergroundTunnelEntranceRoute6_h: ; 0x5d6e3 to 0x5d6ef (12 bytes) (id=74)
dw $56fe ; objects
-INCBIN "baserom.gbc",$5d6ef,$5d6fe - $5d6ef
+INCBIN "baserom.gbc",$5d6ef,$5d6f7 - $5d6ef
+UndergroundTunnelEntranceRoute6Texts: ; 0x5d6f7
+ dw UndergroundTunnelEntranceRoute6Text1
+
+;XXX wtf? syntax error on TX_FAR?
+UndergroundTunnelEntranceRoute6Text1: ; 0x5d6f9
+ db $17, $cb, $40, $23
+ ;TX_FAR _UndergroundTunnelEntranceRoute6Text1 ; $cb, $40, $23
+ db $50
+
UndergroundTunnelEntranceRoute6Object: ; 0x5d6fe (size=34)
db $a ; border tile
@@ -19922,7 +25559,6 @@ UndergroundTunnelEntranceRoute6Object: ; 0x5d6fe (size=34)
EVENT_DISP $4, $7, $4
EVENT_DISP $4, $4, $4 ; UNDERGROUND_PATH_NS
-
UndergroundPathEntranceRoute7_h: ; 0x5d720 to 0x5d72c (12 bytes) (id=77)
db $0c ; tileset
db $04, $04 ; dimensions (y, x)
@@ -19931,7 +25567,15 @@ UndergroundPathEntranceRoute7_h: ; 0x5d720 to 0x5d72c (12 bytes) (id=77)
dw $573b ; objects
-INCBIN "baserom.gbc",$5d72c,$5d73b - $5d72c
+INCBIN "baserom.gbc",$5d72c,$5d734 - $5d72c
+UndergroundPathEntranceRoute7Texts: ; 0x5d734
+ dw UndergroundPathEntranceRoute7Text1
+
+UndergroundPathEntranceRoute7Text1: ; 0x5d736
+ db $17, $ff, $40, $23
+ ;TX_FAR _UndergroundPathEntranceRoute7Text1
+ db $50
+
UndergroundPathEntranceRoute7Object: ; 0x5d73b (size=34)
db $a ; border tile
@@ -19960,7 +25604,48 @@ SilphCo9_h: ; 0x5d7af to 0x5d7bb (12 bytes) (id=233)
dw $593f ; objects
-INCBIN "baserom.gbc",$5d7bb,$5d93f - $5d7bb
+INCBIN "baserom.gbc",$5d7bb,$5d8b8 - $5d7bb
+SilphCo9Text1: ; 0x5d8b8
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a
+ jr nz, .asm_a14c3 ; 0x5d8be
+ ld hl, $58e5
+ call PrintText
+ ld a, $7
+ call Predef
+ call $20d8
+ call Delay3
+ call $20f6
+ ld hl, $58ea
+ call PrintText
+ jr .asm_b6e28 ; 0x5d8da
+.asm_a14c3 ; 0x5d8dc
+ ld hl, $58ef
+ call PrintText
+.asm_b6e28 ; 0x5d8e2
+ jp $24d7
+
+INCBIN "baserom.gbc",$5d8e5,$5d8f4 - $5d8e5
+SilphCo9Text2: ; 0x5d8f4
+ db $08 ; asm
+ ld hl, $5893
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo9Text3: ; 0x5d8fe
+ db $08 ; asm
+ ld hl, $589f
+ call LoadTrainerHeader
+ jp $24d7
+
+SilphCo9Text4: ; 0x5d908
+ db $08 ; asm
+ ld hl, $58ab
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5d912,$2d
SilphCo9Object: ; 0x5d93f (size=74)
db $2e ; border tile
@@ -19975,9 +25660,9 @@ SilphCo9Object: ; 0x5d93f (size=74)
db $4 ; people
db SPRITE_NURSE, $e + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKET, $4 + 4, $2 + 4, $ff, $d1, $42, $e6, $25 ; trainer
- db SPRITE_OAK_AIDE, $d + 4, $15 + 4, $ff, $d0, $43, $e4, $a ; trainer
- db SPRITE_ROCKET, $10 + 4, $d + 4, $ff, $d1, $44, $e6, $26 ; trainer
+ db SPRITE_ROCKET, $4 + 4, $2 + 4, $ff, $d1, $42, ROCKET + $C8, $25 ; trainer
+ db SPRITE_OAK_AIDE, $d + 4, $15 + 4, $ff, $d0, $43, SCIENTIST + $C8, $a ; trainer
+ db SPRITE_ROCKET, $10 + 4, $d + 4, $ff, $d1, $44, ROCKET + $C8, $26 ; trainer
; warp-to
EVENT_DISP $d, $0, $e ; SILPH_CO_10F
@@ -19986,7 +25671,6 @@ SilphCo9Object: ; 0x5d93f (size=74)
EVENT_DISP $d, $3, $9 ; SILPH_CO_3F
EVENT_DISP $d, $f, $11 ; SILPH_CO_5F
-
SilphCo9Blocks: ; 117
INCBIN "maps/silphco9.blk"
@@ -19998,7 +25682,20 @@ VictoryRoad1_h: ; 0x5d9fe to 0x5da0a (12 bytes) (id=108)
dw $5ab8 ; objects
-INCBIN "baserom.gbc",$5da0a,$5dab8 - $5da0a
+INCBIN "baserom.gbc",$5da0a,$5da86 - $5da0a
+VictoryRoad1Text1: ; 0x5da86
+ db $08 ; asm
+ ld hl, $5a6d
+ call LoadTrainerHeader
+ jp $24d7
+
+VictoryRoad1Text2: ; 0x5da90
+ db $08 ; asm
+ ld hl, $5a79
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$5da9a,$1e
VictoryRoad1Object: ; 0x5dab8 (size=76)
db $7d ; border tile
@@ -20010,10 +25707,10 @@ VictoryRoad1Object: ; 0x5dab8 (size=76)
db $0 ; signs
db $7 ; people
- db SPRITE_LASS, $5 + 4, $7 + 4, $ff, $d3, $41, $e8, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $3 + 4, $ff, $d0, $42, $e7, $5 ; trainer
- db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $83, $f3 ; item
- db SPRITE_BALL, $2 + 4, $9 + 4, $ff, $ff, $84, $28 ; item
+ db SPRITE_LASS, $5 + 4, $7 + 4, $ff, $d3, $41, COOLTRAINER_F + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $3 + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $5 ; trainer
+ db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $83, TM_43 ; item
+ db SPRITE_BALL, $2 + 4, $9 + 4, $ff, $ff, $84, RARE_CANDY ; item
db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $10, $5 ; person
db SPRITE_BOULDER, $2 + 4, $e + 4, $ff, $10, $6 ; person
db SPRITE_BOULDER, $a + 4, $2 + 4, $ff, $10, $7 ; person
@@ -20023,7 +25720,6 @@ VictoryRoad1Object: ; 0x5dab8 (size=76)
EVENT_DISP $a, $11, $9
EVENT_DISP $a, $1, $1 ; VICTORY_ROAD_2
-
VictoryRoad1Blocks: ; 90
INCBIN "maps/victoryroad1.blk"
@@ -20049,7 +25745,30 @@ PokemonTower1_h: ; 0x60420 to 0x6042c (12 bytes) (id=142)
dw $4452 ; objects
-INCBIN "baserom.gbc",$6042c,$60452 - $6042c
+INCBIN "baserom.gbc",$6042c,$6042f - $6042c
+PokemonTower1Texts: ; 0x6042f
+ dw PokemonTower1Text1, PokemonTower1Text2, PokemonTower1Text3, PokemonTower1Text4, PokemonTower1Text5
+
+PokemonTower1Text1: ; 0x60439
+ TX_FAR _PokemonTower1Text1
+ db $50
+
+PokemonTower1Text2: ; 0x6043e
+ TX_FAR _PokemonTower1Text2
+ db $50
+
+PokemonTower1Text3: ; 0x60443
+ TX_FAR _PokemonTower1Text3
+ db $50
+
+PokemonTower1Text4: ; 0x60448
+ TX_FAR _PokemonTower1Text4
+ db $50
+
+PokemonTower1Text5: ; 0x6044d
+ TX_FAR _PokemonTower1Text5
+ db $50
+
PokemonTower1Object: ; 0x60452 (size=58)
db $1 ; border tile
@@ -20072,7 +25791,6 @@ PokemonTower1Object: ; 0x60452 (size=58)
EVENT_DISP $a, $11, $b
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_2
-
PokemonTower1Blocks: ; 90
INCBIN "maps/pokemontower1.blk"
@@ -20084,7 +25802,52 @@ PokemonTower2_h: ; 0x604e6 to 0x604f2 (12 bytes) (id=143)
dw $4646 ; objects
-INCBIN "baserom.gbc",$604f2,$60646 - $604f2
+INCBIN "baserom.gbc",$604f2,$605df - $604f2
+PokemonTower2Text1: ; 0x605df
+ db $08 ; asm
+ ld a, [$d764]
+ bit 7, a
+ jr z, .asm_16f24 ; 0x605e5
+ ld hl, $463c
+ call PrintText
+ jr .asm_41852 ; 0x605ed
+.asm_16f24 ; 0x605ef
+ ld hl, $462d
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4632
+ ld de, $4637
+ call $3354
+ ld a, $f2
+ ld [$d059], a
+ ld a, [$d715]
+ cp $b1
+ jr nz, .asm_0860c ; 0x6060f
+ ld a, $4
+ jr .asm_99cea ; 0x60613
+.asm_0860c ; 0x60615
+ cp $99
+ jr nz, .asm_b3e6e ; 0x60617
+ ld a, $5
+ jr .asm_99cea ; 0x6061b
+.asm_b3e6e ; 0x6061d
+ ld a, $6
+.asm_99cea ; 0x6061f
+ ld [$d05d], a
+ ld a, $1
+ ld [$d62b], a
+ ld [$da39], a
+.asm_41852 ; 0x6062a
+ jp $24d7
+
+INCBIN "baserom.gbc",$6062d,$14
+
+PokemonTower2Text2: ; 0x60641
+ TX_FAR _PokemonTower2Text2
+ db $50
+
PokemonTower2Object: ; 0x60646 (size=32)
db $1 ; border tile
@@ -20102,7 +25865,6 @@ PokemonTower2Object: ; 0x60646 (size=32)
EVENT_DISP $a, $9, $3 ; POKEMONTOWER_3
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_1
-
PokemonTower2Blocks: ; 90
INCBIN "maps/pokemontower2.blk"
@@ -20114,7 +25876,26 @@ PokemonTower3_h: ; 0x606c0 to 0x606cc (12 bytes) (id=144)
dw $475d ; objects
-INCBIN "baserom.gbc",$606cc,$6075d - $606cc
+INCBIN "baserom.gbc",$606cc,$60712 - $606cc
+PokemonTower3Text1: ; 0x60712
+ db $08 ; asm
+ ld hl, $46ed
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower3Text2: ; 0x6071c
+ db $08 ; asm
+ ld hl, $46f9
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower3Text3: ; 0x60726
+ db $08 ; asm
+ ld hl, $4705
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$60730,$2d
PokemonTower3Object: ; 0x6075d (size=51)
db $1 ; border tile
@@ -20125,16 +25906,15 @@ PokemonTower3Object: ; 0x6075d (size=51)
db $0 ; signs
db $4 ; people
- db SPRITE_MEDIUM, $3 + 4, $c + 4, $ff, $d2, $41, $f5, $5 ; trainer
- db SPRITE_MEDIUM, $8 + 4, $9 + 4, $ff, $d0, $42, $f5, $6 ; trainer
- db SPRITE_MEDIUM, $d + 4, $a + 4, $ff, $d0, $43, $f5, $8 ; trainer
- db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $84, $1d ; item
+ db SPRITE_MEDIUM, $3 + 4, $c + 4, $ff, $d2, $41, CHANNELER + $C8, $5 ; trainer
+ db SPRITE_MEDIUM, $8 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $6 ; trainer
+ db SPRITE_MEDIUM, $d + 4, $a + 4, $ff, $d0, $43, CHANNELER + $C8, $8 ; trainer
+ db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $84, ESCAPE_ROPE ; item
; warp-to
EVENT_DISP $a, $9, $3 ; POKEMONTOWER_2
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_4
-
PokemonTower3Blocks: ; 90
INCBIN "maps/pokemontower3.blk"
@@ -20146,7 +25926,26 @@ PokemonTower4_h: ; 0x607ea to 0x607f6 (12 bytes) (id=145)
dw $488b ; objects
-INCBIN "baserom.gbc",$607f6,$6088b - $607f6
+INCBIN "baserom.gbc",$607f6,$60840 - $607f6
+PokemonTower4Text1: ; 0x60840
+ db $08 ; asm
+ ld hl, $481b
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower4Text2: ; 0x6084a
+ db $08 ; asm
+ ld hl, $4827
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower4Text3: ; 0x60854
+ db $08 ; asm
+ ld hl, $4833
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$6085e,$2d
PokemonTower4Object: ; 0x6088b (size=65)
db $1 ; border tile
@@ -20157,18 +25956,17 @@ PokemonTower4Object: ; 0x6088b (size=65)
db $0 ; signs
db $6 ; people
- db SPRITE_MEDIUM, $a + 4, $5 + 4, $ff, $d3, $41, $f5, $9 ; trainer
- db SPRITE_MEDIUM, $7 + 4, $f + 4, $ff, $d0, $42, $f5, $a ; trainer
- db SPRITE_MEDIUM, $c + 4, $e + 4, $ff, $d2, $43, $f5, $c ; trainer
- db SPRITE_BALL, $a + 4, $c + 4, $ff, $ff, $84, $52 ; item
- db SPRITE_BALL, $a + 4, $9 + 4, $ff, $ff, $85, $e ; item
- db SPRITE_BALL, $10 + 4, $c + 4, $ff, $ff, $86, $23 ; item
+ db SPRITE_MEDIUM, $a + 4, $5 + 4, $ff, $d3, $41, CHANNELER + $C8, $9 ; trainer
+ db SPRITE_MEDIUM, $7 + 4, $f + 4, $ff, $d0, $42, CHANNELER + $C8, $a ; trainer
+ db SPRITE_MEDIUM, $c + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $c ; trainer
+ db SPRITE_BALL, $a + 4, $c + 4, $ff, $ff, $84, ELIXER ; item
+ db SPRITE_BALL, $a + 4, $9 + 4, $ff, $ff, $85, AWAKENING ; item
+ db SPRITE_BALL, $10 + 4, $c + 4, $ff, $ff, $86, HP_UP ; item
; warp-to
EVENT_DISP $a, $9, $3 ; POKEMONTOWER_5
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_3
-
PokemonTower4Blocks: ; 90
INCBIN "maps/pokemontower4.blk"
@@ -20180,7 +25978,40 @@ PokemonTower5_h: ; 0x60926 to 0x60932 (12 bytes) (id=146)
dw $4a48 ; objects
-INCBIN "baserom.gbc",$60932,$60a48 - $60932
+INCBIN "baserom.gbc",$60932,$609da - $60932
+
+PokemonTower5Text1: ; 0x609da
+ TX_FAR _PokemonTower5Text1
+ db $50
+
+PokemonTower5Text2: ; 0x609df
+ db $08 ; asm
+ ld hl, $49a9
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$609e9,$609f8 - $609e9
+PokemonTower5Text3: ; 0x609f8
+ db $08 ; asm
+ ld hl, $49b5
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$60a02,$60a11 - $60a02
+PokemonTower5Text4: ; 0x60a11
+ db $08 ; asm
+ ld hl, $49c1
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$60a1b,$60a2a - $60a1b
+PokemonTower5Text5: ; 0x60a2a
+ db $08 ; asm
+ ld hl, $49cd
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$60a34,$14
PokemonTower5Object: ; 0x60a48 (size=65)
db $1 ; border tile
@@ -20192,17 +26023,16 @@ PokemonTower5Object: ; 0x60a48 (size=65)
db $6 ; people
db SPRITE_MEDIUM, $8 + 4, $c + 4, $ff, $ff, $1 ; person
- db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $42, $f5, $e ; trainer
- db SPRITE_MEDIUM, $3 + 4, $e + 4, $ff, $d2, $43, $f5, $10 ; trainer
- db SPRITE_MEDIUM, $a + 4, $6 + 4, $ff, $d3, $44, $f5, $11 ; trainer
- db SPRITE_MEDIUM, $10 + 4, $9 + 4, $ff, $d3, $45, $f5, $12 ; trainer
- db SPRITE_BALL, $e + 4, $6 + 4, $ff, $ff, $86, $31 ; item
+ db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $42, CHANNELER + $C8, $e ; trainer
+ db SPRITE_MEDIUM, $3 + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $10 ; trainer
+ db SPRITE_MEDIUM, $a + 4, $6 + 4, $ff, $d3, $44, CHANNELER + $C8, $11 ; trainer
+ db SPRITE_MEDIUM, $10 + 4, $9 + 4, $ff, $d3, $45, CHANNELER + $C8, $12 ; trainer
+ db SPRITE_BALL, $e + 4, $6 + 4, $ff, $ff, $86, NUGGET ; item
; warp-to
EVENT_DISP $a, $9, $3 ; POKEMONTOWER_4
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_6
-
PokemonTower5Blocks: ; 90
INCBIN "maps/pokemontower5.blk"
@@ -20214,7 +26044,26 @@ PokemonTower6_h: ; 0x60ae3 to 0x60aef (12 bytes) (id=147)
dw $4c5b ; objects
-INCBIN "baserom.gbc",$60aef,$60c5b - $60aef
+INCBIN "baserom.gbc",$60aef,$60be4 - $60aef
+PokemonTower6Text1: ; 0x60be4
+ db $08 ; asm
+ ld hl, $4bbf
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower6Text2: ; 0x60bee
+ db $08 ; asm
+ ld hl, $4bcb
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower6Text3: ; 0x60bf8
+ db $08 ; asm
+ ld hl, $4bd7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$60c02,$59
PokemonTower6Object: ; 0x60c5b (size=58)
db $1 ; border tile
@@ -20225,17 +26074,16 @@ PokemonTower6Object: ; 0x60c5b (size=58)
db $0 ; signs
db $5 ; people
- db SPRITE_MEDIUM, $a + 4, $c + 4, $ff, $d3, $41, $f5, $13 ; trainer
- db SPRITE_MEDIUM, $5 + 4, $9 + 4, $ff, $d0, $42, $f5, $14 ; trainer
- db SPRITE_MEDIUM, $5 + 4, $10 + 4, $ff, $d2, $43, $f5, $15 ; trainer
- db SPRITE_BALL, $8 + 4, $6 + 4, $ff, $ff, $84, $28 ; item
- db SPRITE_BALL, $e + 4, $e + 4, $ff, $ff, $85, $2e ; item
+ db SPRITE_MEDIUM, $a + 4, $c + 4, $ff, $d3, $41, CHANNELER + $C8, $13 ; trainer
+ db SPRITE_MEDIUM, $5 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $14 ; trainer
+ db SPRITE_MEDIUM, $5 + 4, $10 + 4, $ff, $d2, $43, CHANNELER + $C8, $15 ; trainer
+ db SPRITE_BALL, $8 + 4, $6 + 4, $ff, $ff, $84, RARE_CANDY ; item
+ db SPRITE_BALL, $e + 4, $e + 4, $ff, $ff, $85, X_ACCURACY ; item
; warp-to
EVENT_DISP $a, $9, $12 ; POKEMONTOWER_5
EVENT_DISP $a, $10, $9 ; POKEMONTOWER_7
-
PokemonTower6Blocks: ; 90
INCBIN "maps/pokemontower6.blk"
@@ -20249,7 +26097,51 @@ PokemonTower7_h: ; 0x60cf9 to 0x60d05 (12 bytes) (id=148)
dw $4ef6 ; objects
-INCBIN "baserom.gbc",$60d05,$60ef6 - $60d05
+INCBIN "baserom.gbc",$60d05,$60e6c - $60d05
+PokemonTower7Text1: ; 0x60e6c
+ db $08 ; asm
+ ld hl, $4e47
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower7Text2: ; 0x60e76
+ db $08 ; asm
+ ld hl, $4e53
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower7Text3: ; 0x60e80
+ db $08 ; asm
+ ld hl, $4e5f
+ call LoadTrainerHeader
+ jp $24d7
+
+PokemonTower7Text4: ; 0x60e8a
+ db $08 ; asm
+ ld hl, $4ec4
+ call PrintText
+ ld hl, $d7e0
+ set 7, [hl]
+ ld hl, $d769
+ set 7, [hl]
+ ld a, $44
+ ld [$cc4d], a
+ ld a, $15
+ call Predef
+ ld a, $17
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld a, $18
+ ld [$cc4d], a
+ ld a, $15
+ call Predef
+ ld a, $4
+ ld [$d630], a
+ ld [$da39], a
+ jp $24d7
+
+INCBIN "baserom.gbc",$60ec4,$32
PokemonTower7Object: ; 0x60ef6 (size=42)
db $1 ; border tile
@@ -20259,15 +26151,14 @@ PokemonTower7Object: ; 0x60ef6 (size=42)
db $0 ; signs
db $4 ; people
- db SPRITE_ROCKET, $b + 4, $9 + 4, $ff, $d3, $41, $e6, $13 ; trainer
- db SPRITE_ROCKET, $9 + 4, $c + 4, $ff, $d2, $42, $e6, $14 ; trainer
- db SPRITE_ROCKET, $7 + 4, $9 + 4, $ff, $d3, $43, $e6, $15 ; trainer
+ db SPRITE_ROCKET, $b + 4, $9 + 4, $ff, $d3, $41, ROCKET + $C8, $13 ; trainer
+ db SPRITE_ROCKET, $9 + 4, $c + 4, $ff, $d2, $42, ROCKET + $C8, $14 ; trainer
+ db SPRITE_ROCKET, $7 + 4, $9 + 4, $ff, $d3, $43, ROCKET + $C8, $15 ; trainer
db SPRITE_MR_FUJI, $3 + 4, $a + 4, $ff, $d0, $4 ; person
; warp-to
EVENT_DISP $a, $10, $9 ; POKEMONTOWER_6
-
PokemonTower7Blocks: ; 90
INCBIN "maps/pokemontower7.blk"
@@ -20279,7 +26170,22 @@ CeladonMart1_h: ; 0x60f7a to 0x60f86 (12 bytes) (id=122)
dw $4f9e ; objects
-INCBIN "baserom.gbc",$60f86,$60f9e - $60f86
+INCBIN "baserom.gbc",$60f86,$60f89 - $60f86
+CeladonMart1Texts: ; 0x60f89
+ dw CeladonMart1Text1, CeladonMart1Text2, CeladonMart1Text3
+
+CeladonMart1Text1: ; 0x60f8f
+ TX_FAR _CeladonMart1Text1
+ db $50
+
+CeladonMart1Text2: ; 0x60f94
+ TX_FAR _CeladonMart1Text2
+ db $50
+
+CeladonMart1Text3: ; 0x60f99
+ TX_FAR _CeladonMart1Text3
+ db $50
+
CeladonMart1Object: ; 0x60f9e (size=64)
db $f ; border tile
@@ -20289,7 +26195,7 @@ CeladonMart1Object: ; 0x60f9e (size=64)
db $7, $10, $1, $ff
db $7, $11, $1, $ff
db $1, $c, $0, CELADON_MART_2
- db $1, $1, $0, CELADON_MART_6
+ db $1, $1, $0, CELADON_MART_ELEVATOR
db $2 ; signs
db $4, $b, $2 ; CeladonMart1Text2
@@ -20304,8 +26210,7 @@ CeladonMart1Object: ; 0x60f9e (size=64)
EVENT_DISP $a, $7, $10
EVENT_DISP $a, $7, $11
EVENT_DISP $a, $1, $c ; CELADON_MART_2
- EVENT_DISP $a, $1, $1 ; CELADON_MART_6
-
+ EVENT_DISP $a, $1, $1 ; CELADON_MART_ELEVATOR
CeladonMart1Blocks: ; 40
INCBIN "maps/celadonmart1.blk"
@@ -20320,7 +26225,60 @@ ViridianForest_h: ; 0x61101 to 0x6110d (12 bytes) (id=51)
dw $51da ; objects
-INCBIN "baserom.gbc",$6110d,$611da - $6110d
+INCBIN "baserom.gbc",$6110d,$61167 - $6110d
+
+ViridianForestText1: ; 0x61167
+ TX_FAR _ViridianForestText1
+ db $50
+
+ViridianForestText2: ; 0x6116c
+ db $08 ; asm
+ ld hl, $5142
+ call LoadTrainerHeader
+ jp $24d7
+
+ViridianForestText3: ; 0x61176
+ db $08 ; asm
+ ld hl, $514e
+ call LoadTrainerHeader
+ jp $24d7
+
+ViridianForestText4: ; 0x61180
+ db $08 ; asm
+ ld hl, $515a
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$6118a,$2d
+
+ViridianForestText8: ; 0x611b7
+ TX_FAR _ViridianForestText8
+ db $50
+
+ViridianForestText9: ; 0x611bc
+ TX_FAR _ViridianForestText9
+ db $50
+
+ViridianForestText10: ; 0x611c1
+ TX_FAR _ViridianForestText10
+ db $50
+
+ViridianForestText11: ; 0x611c6
+ TX_FAR _ViridianForestText11
+ db $50
+
+ViridianForestText12: ; 0x611cb
+ TX_FAR _ViridianForestText12
+ db $50
+
+ViridianForestText13: ; 0x611d0
+ TX_FAR _ViridianForestText13
+ db $50
+
+ViridianForestText14: ; 0x611d5
+ TX_FAR _ViridianForestText14
+ db $50
+
ViridianForestObject: ; 0x611da (size=127)
db $3 ; border tile
@@ -20342,12 +26300,12 @@ ViridianForestObject: ; 0x611da (size=127)
db $8 ; people
db SPRITE_BUG_CATCHER, $2b + 4, $10 + 4, $ff, $ff, $1 ; person
- db SPRITE_BUG_CATCHER, $21 + 4, $1e + 4, $ff, $d2, $42, $ca, $1 ; trainer
- db SPRITE_BUG_CATCHER, $13 + 4, $1e + 4, $ff, $d2, $43, $ca, $2 ; trainer
- db SPRITE_BUG_CATCHER, $12 + 4, $2 + 4, $ff, $d2, $44, $ca, $3 ; trainer
- db SPRITE_BALL, $b + 4, $19 + 4, $ff, $ff, $85, $b ; item
- db SPRITE_BALL, $1d + 4, $c + 4, $ff, $ff, $86, $14 ; item
- db SPRITE_BALL, $1f + 4, $1 + 4, $ff, $ff, $87, $4 ; item
+ db SPRITE_BUG_CATCHER, $21 + 4, $1e + 4, $ff, $d2, $42, BUG_CATCHER + $C8, $1 ; trainer
+ db SPRITE_BUG_CATCHER, $13 + 4, $1e + 4, $ff, $d2, $43, BUG_CATCHER + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $12 + 4, $2 + 4, $ff, $d2, $44, BUG_CATCHER + $C8, $3 ; trainer
+ db SPRITE_BALL, $b + 4, $19 + 4, $ff, $ff, $85, ANTIDOTE ; item
+ db SPRITE_BALL, $1d + 4, $c + 4, $ff, $ff, $86, POTION ; item
+ db SPRITE_BALL, $1f + 4, $1 + 4, $ff, $ff, $87, POKE_BALL ; item
db SPRITE_BUG_CATCHER, $28 + 4, $1b + 4, $ff, $ff, $8 ; person
; warp-to
@@ -20358,7 +26316,6 @@ ViridianForestObject: ; 0x611da (size=127)
EVENT_DISP $11, $2f, $11 ; VIRIDIAN_FOREST_ENTRANCE
EVENT_DISP $11, $2f, $12 ; VIRIDIAN_FOREST_ENTRANCE
-
SSAnne1_h: ; 0x61259 to 0x61265 (12 bytes) (id=95)
db $0d ; tileset
db $09, $14 ; dimensions (y, x)
@@ -20403,7 +26360,6 @@ SSAnne1Object: ; 0x61277 (size=104)
EVENT_DISP $14, $f, $25 ; SS_ANNE_4
EVENT_DISP $14, $10, $3 ; SS_ANNE_6
-
SSAnne1Blocks: ; 180
INCBIN "maps/ssanne1.blk"
@@ -20434,7 +26390,7 @@ SSAnne2Object: ; 0x61514 (size=90)
db $2 ; people
db SPRITE_WAITER, $7 + 4, $3 + 4, $fe, $1, $1 ; person
- db SPRITE_BLUE, $4 + 4, $24 + 4, $ff, $d0, $42, $e1, $1 ; trainer
+ db SPRITE_BLUE, $4 + 4, $24 + 4, $ff, $d0, $42, SONY1 + $C8, $1 ; trainer
; warp-to
EVENT_DISP $14, $b, $9 ; SS_ANNE_9
@@ -20447,7 +26403,6 @@ SSAnne2Object: ; 0x61514 (size=90)
EVENT_DISP $14, $c, $2 ; SS_ANNE_3
EVENT_DISP $14, $4, $24 ; SS_ANNE_7
-
SSAnne2Blocks: ; 180
INCBIN "maps/ssanne2.blk"
@@ -20483,7 +26438,6 @@ SSAnne4Object: ; 0x61632 (size=52)
EVENT_DISP $f, $3, $7 ; SS_ANNE_10
EVENT_DISP $f, $5, $1b ; SS_ANNE_1
-
SSAnne4Blocks: ; 60
INCBIN "maps/ssanne4.blk"
@@ -20495,7 +26449,21 @@ SSAnne5_h: ; 0x616a2 to 0x616ae (12 bytes) (id=99)
dw $572b ; objects
-INCBIN "baserom.gbc",$616ae,$6172b - $616ae
+INCBIN "baserom.gbc",$616ae,$616f9 - $616ae
+SSAnne5Text4: ; 0x616f9
+ db $08 ; asm
+ ld hl, $56d1
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$61703,$61712 - $61703
+SSAnne5Text5: ; 0x61712
+ db $08 ; asm
+ ld hl, $56dd
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$6171c,$f
SSAnne5Object: ; 0x6172b (size=54)
db $23 ; border tile
@@ -20509,14 +26477,13 @@ SSAnne5Object: ; 0x6172b (size=54)
db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $5 + 4, $ff, $d1, $1 ; person
db SPRITE_SAILOR, $9 + 4, $4 + 4, $ff, $ff, $2 ; person
db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $7 + 4, $ff, $ff, $3 ; person
- db SPRITE_SAILOR, $4 + 4, $4 + 4, $ff, $d0, $44, $cc, $1 ; trainer
- db SPRITE_SAILOR, $8 + 4, $a + 4, $ff, $d1, $45, $cc, $2 ; trainer
+ db SPRITE_SAILOR, $4 + 4, $4 + 4, $ff, $d0, $44, SAILOR + $C8, $1 ; trainer
+ db SPRITE_SAILOR, $8 + 4, $a + 4, $ff, $d1, $45, SAILOR + $C8, $2 ; trainer
; warp-to
EVENT_DISP $a, $6, $d ; SS_ANNE_3
EVENT_DISP $a, $7, $d ; SS_ANNE_3
-
SSAnne5Blocks: ; 70
INCBIN "maps/ssanne5.blk"
@@ -20528,7 +26495,28 @@ SSAnne6_h: ; 0x617a7 to 0x617b3 (12 bytes) (id=100)
dw $581b ; objects
-INCBIN "baserom.gbc",$617b3,$6181b - $617b3
+INCBIN "baserom.gbc",$617b3,$617e3 - $617b3
+SSAnne6Text7: ; 0x617e3
+ db $08 ; asm
+ ld hl, $5807
+ call PrintText
+ ldh a, [$d3]
+ bit 7, a
+ jr z, .asm_93eb1 ; 0x617ee
+ ld hl, $580c
+ jr .asm_63292 ; 0x617f3
+.asm_93eb1 ; 0x617f5
+ bit 4, a
+ jr z, .asm_7436c ; 0x617f7
+ ld hl, $5811
+ jr .asm_63292 ; 0x617fc
+.asm_7436c ; 0x617fe
+ ld hl, $5816
+.asm_63292 ; 0x61801
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61807,$14
SSAnne6Object: ; 0x6181b (size=54)
db $c ; border tile
@@ -20549,7 +26537,6 @@ SSAnne6Object: ; 0x6181b (size=54)
; warp-to
EVENT_DISP $7, $0, $6 ; SS_ANNE_1
-
SSAnne6Blocks: ; 56
INCBIN "maps/ssanne6.blk"
@@ -20561,7 +26548,46 @@ SSAnne7_h: ; 0x61889 to 0x61895 (12 bytes) (id=101)
dw $5946 ; objects
-INCBIN "baserom.gbc",$61895,$61946 - $61895
+INCBIN "baserom.gbc",$61895,$618ad - $61895
+SSAnne7Text1: ; 0x618ad
+ db $08 ; asm
+ ld a, [$d803]
+ bit 0, a
+ jr nz, .asm_797c4 ; 0x618b3
+ ld hl, $58ec
+ call PrintText
+ ld hl, $5927
+ call PrintText
+ ld bc,(HM_01 << 8) | 1
+ call $3e2e
+ jr nc, .asm_ccdcd ; 0x618c7
+ ld hl, $592c
+ call PrintText
+ ld hl, $d803
+ set 0, [hl]
+ jr .asm_0faf5 ; 0x618d4
+.asm_ccdcd ; 0x618d6
+ ld hl, $5937
+ call PrintText
+ ld hl, $d72d
+ set 5, [hl]
+ jr .asm_0faf5 ; 0x618e1
+.asm_797c4 ; 0x618e3
+ ld hl, $5932
+ call PrintText
+.asm_0faf5 ; 0x618e9
+ jp $24d7
+
+INCBIN "baserom.gbc",$618ec,$50
+
+SSAnne7Text2: ; 0x6193c
+ TX_FAR _SSAnne7Text2
+ db $50
+
+SSAnne7Text3: ; 0x61941
+ TX_FAR _SSAnne7Text3
+ db $50
+
SSAnne7Object: ; 0x61946 (size=24)
db $c ; border tile
@@ -20578,7 +26604,6 @@ SSAnne7Object: ; 0x61946 (size=24)
; warp-to
EVENT_DISP $3, $7, $0 ; SS_ANNE_2
-
SSAnne7Blocks: ; 12
INCBIN "maps/ssanne7.blk"
@@ -20590,7 +26615,60 @@ SSAnne8_h: ; 0x6196a to 0x61976 (12 bytes) (id=102)
dw $5a60 ; objects
-INCBIN "baserom.gbc",$61976,$61a60 - $61976
+INCBIN "baserom.gbc",$61976,$619d6 - $61976
+SSAnne8Text1: ; 0x619d6
+ db $08 ; asm
+ ld hl, $59a5
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne8Text2: ; 0x619e0
+ db $08 ; asm
+ ld hl, $59b1
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne8Text3: ; 0x619ea
+ db $08 ; asm
+ ld hl, $59bd
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne8Text4: ; 0x619f4
+ db $08 ; asm
+ ld hl, $59c9
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne8Text8: ; 0x619fe
+ TX_FAR _SSAnne8Text8
+ db $08 ; asm
+ ld a, $65
+ call $13d0
+ jp $24d7
+
+INCBIN "baserom.gbc",$61a0b,60
+
+SSAnne8Text5: ; 0x61a47
+ TX_FAR _SSAnne8Text5
+ db $50
+
+SSAnne8Text6: ; 0x61a4c
+ TX_FAR _SSAnne8Text6
+ db $50
+
+SSAnne8Text7: ; 0x61a51
+ TX_FAR _SSAnne8Text7
+ db $50
+
+SSAnne8Text9: ; 0x61a56
+ TX_FAR _SSAnne8Text9
+ db $50
+
+SSAnne8Text11: ; 0x61a5b
+ TX_FAR _SSAnne8Text11
+ db $50
+
SSAnne8Object: ; 0x61a60 (size=127)
db $c ; border tile
@@ -20605,16 +26683,16 @@ SSAnne8Object: ; 0x61a60 (size=127)
db $0 ; signs
db $b ; people
- db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d2, $41, $f1, $1 ; trainer
- db SPRITE_GENTLEMAN, $4 + 4, $b + 4, $ff, $d1, $42, $f1, $2 ; trainer
- db SPRITE_BUG_CATCHER, $e + 4, $b + 4, $ff, $d1, $43, $c9, $8 ; trainer
- db SPRITE_LASS, $b + 4, $d + 4, $ff, $d2, $44, $cb, $b ; trainer
+ db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d2, $41, GENTLEMAN + $C8, $1 ; trainer
+ db SPRITE_GENTLEMAN, $4 + 4, $b + 4, $ff, $d1, $42, GENTLEMAN + $C8, $2 ; trainer
+ db SPRITE_BUG_CATCHER, $e + 4, $b + 4, $ff, $d1, $43, YOUNGSTER + $C8, $8 ; trainer
+ db SPRITE_LASS, $b + 4, $d + 4, $ff, $d2, $44, LASS + $C8, $b ; trainer
db SPRITE_GIRL, $3 + 4, $16 + 4, $fe, $1, $5 ; person
db SPRITE_FAT_BALD_GUY, $e + 4, $0 + 4, $ff, $ff, $6 ; person
db SPRITE_LITTLE_GIRL, $b + 4, $2 + 4, $ff, $d0, $7 ; person
db SPRITE_CLEFAIRY, $b + 4, $3 + 4, $ff, $d0, $8 ; person
db SPRITE_GIRL, $d + 4, $a + 4, $ff, $d3, $9 ; person
- db SPRITE_BALL, $f + 4, $c + 4, $ff, $ff, $8a, $d0 ; item
+ db SPRITE_BALL, $f + 4, $c + 4, $ff, $ff, $8a, TM_08 ; item
db SPRITE_GENTLEMAN, $d + 4, $15 + 4, $fe, $2, $b ; person
; warp-to
@@ -20625,7 +26703,6 @@ SSAnne8Object: ; 0x61a60 (size=127)
EVENT_DISP $c, $a, $a ; SS_ANNE_1
EVENT_DISP $c, $a, $14 ; SS_ANNE_1
-
SSAnne8Blocks: ; 96
INCBIN "maps/ssanne8.blk"
@@ -20637,7 +26714,84 @@ SSAnne9_h: ; 0x61b3f to 0x61b4b (12 bytes) (id=103)
dw $5c8d ; objects
-INCBIN "baserom.gbc",$61b4b,$61c8d - $61b4b
+INCBIN "baserom.gbc",$61b4b,$61bb5 - $61b4b
+SSAnne9Text1: ; 0x61bb5
+ db $08 ; asm
+ ld hl, $5b84
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne9Text2: ; 0x61bbf
+ db $08 ; asm
+ ld hl, $5b90
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne9Text3: ; 0x61bc9
+ db $08 ; asm
+ ld hl, $5b9c
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne9Text4: ; 0x61bd3
+ db $08 ; asm
+ ld hl, $5ba8
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne9Text5: ; 0x61bdd
+ db $08 ; asm
+ call $3719
+ ld hl, $5bf2
+ call PrintText
+ call $3725
+ ld a, $84
+ call $349b
+ jp $24d7
+
+INCBIN "baserom.gbc",$61bf2,$61bf7 - $61bf2
+SSAnne9Text7: ; 0x61bf7
+ db $08 ; asm
+ ld hl, $5c01
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c01,$61c06 - $61c01
+SSAnne9Text8: ; 0x61c06
+ db $08 ; asm
+ ld hl, $5c10
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c10,$61c15 - $61c10
+SSAnne9Text10: ; 0x61c15
+ db $08 ; asm
+ ld hl, $5c1f
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c1f,$61c24 - $61c1f
+SSAnne9Text11: ; 0x61c24
+ db $08 ; asm
+ ld hl, $5c2e
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c2e,$61c33 - $61c2e
+SSAnne9Text12: ; 0x61c33
+ db $08 ; asm
+ ld hl, $5c3d
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c3d,$61c42 - $61c3d
+SSAnne9Text13: ; 0x61c42
+ db $08 ; asm
+ ld hl, $5c4c
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$61c4c,$41
SSAnne9Object: ; 0x61c8d (size=188)
db $c ; border tile
@@ -20658,15 +26812,15 @@ SSAnne9Object: ; 0x61c8d (size=188)
db $0 ; signs
db $d ; people
- db SPRITE_GENTLEMAN, $2 + 4, $a + 4, $ff, $d3, $41, $f1, $3 ; trainer
- db SPRITE_FISHER2, $4 + 4, $d + 4, $ff, $d2, $42, $d6, $1 ; trainer
- db SPRITE_GENTLEMAN, $e + 4, $0 + 4, $ff, $d3, $43, $f1, $5 ; trainer
- db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d0, $44, $cb, $c ; trainer
+ db SPRITE_GENTLEMAN, $2 + 4, $a + 4, $ff, $d3, $41, GENTLEMAN + $C8, $3 ; trainer
+ db SPRITE_FISHER2, $4 + 4, $d + 4, $ff, $d2, $42, FISHER + $C8, $1 ; trainer
+ db SPRITE_GENTLEMAN, $e + 4, $0 + 4, $ff, $d3, $43, GENTLEMAN + $C8, $5 ; trainer
+ db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d0, $44, LASS + $C8, $c ; trainer
db SPRITE_GENTLEMAN, $2 + 4, $1 + 4, $ff, $d0, $5 ; person
- db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $86, $51 ; item
+ db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $86, MAX_ETHER ; item
db SPRITE_GENTLEMAN, $2 + 4, $15 + 4, $ff, $d0, $7 ; person
db SPRITE_OLD_PERSON, $1 + 4, $16 + 4, $ff, $d0, $8 ; person
- db SPRITE_BALL, $c + 4, $0 + 4, $ff, $ff, $89, $28 ; item
+ db SPRITE_BALL, $c + 4, $0 + 4, $ff, $ff, $89, RARE_CANDY ; item
db SPRITE_GENTLEMAN, $c + 4, $c + 4, $ff, $d0, $a ; person
db SPRITE_YOUNG_BOY, $e + 4, $b + 4, $ff, $ff, $b ; person
db SPRITE_BRUNETTE_GIRL, $c + 4, $16 + 4, $ff, $d2, $c ; person
@@ -20686,7 +26840,6 @@ SSAnne9Object: ; 0x61c8d (size=188)
EVENT_DISP $c, $f, $16 ; SS_ANNE_2
EVENT_DISP $c, $f, $17 ; SS_ANNE_2
-
SSAnne10_h: ; 0x61d49 to 0x61d55 (12 bytes) (id=104)
db $0d ; tileset
db $08, $0c ; dimensions (y, x)
@@ -20695,7 +26848,56 @@ SSAnne10_h: ; 0x61d49 to 0x61d55 (12 bytes) (id=104)
dw $5e75 ; objects
-INCBIN "baserom.gbc",$61d55,$61e75 - $61d55
+INCBIN "baserom.gbc",$61d55,$61dcd - $61d55
+SSAnne10Text1: ; 0x61dcd
+ db $08 ; asm
+ ld hl, $5d84
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text2: ; 0x61dd7
+ db $08 ; asm
+ ld hl, $5d90
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text3: ; 0x61de1
+ db $08 ; asm
+ ld hl, $5d9c
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text4: ; 0x61deb
+ db $08 ; asm
+ ld hl, $5da8
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text5: ; 0x61df5
+ db $08 ; asm
+ ld hl, $5db4
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text6: ; 0x61dff
+ db $08 ; asm
+ ld hl, $5dc0
+ call LoadTrainerHeader
+ jp $24d7
+
+SSAnne10Text8: ; 0x61e09
+ TX_FAR _SSAnne10Text8
+ db $8 ; 0x61e0d
+ ld a, $29
+ call $13d0
+ jp $24d7
+
+INCBIN "baserom.gbc",$61e16,$61e70 - $61e16
+
+SSAnne10Text7: ; 0x61e70
+ TX_FAR _SSAnne10Text7
+ db $50
+
SSAnne10Object: ; 0x61e75 (size=165)
db $c ; border tile
@@ -20714,17 +26916,17 @@ SSAnne10Object: ; 0x61e75 (size=165)
db $0 ; signs
db $b ; people
- db SPRITE_SAILOR, $d + 4, $0 + 4, $ff, $d0, $41, $cc, $3 ; trainer
- db SPRITE_SAILOR, $b + 4, $2 + 4, $ff, $d0, $42, $cc, $4 ; trainer
- db SPRITE_SAILOR, $3 + 4, $c + 4, $ff, $d2, $43, $cc, $5 ; trainer
- db SPRITE_SAILOR, $2 + 4, $16 + 4, $ff, $d0, $44, $cc, $6 ; trainer
- db SPRITE_SAILOR, $2 + 4, $0 + 4, $ff, $d3, $45, $cc, $7 ; trainer
- db SPRITE_FISHER2, $4 + 4, $0 + 4, $ff, $d3, $46, $d6, $2 ; trainer
+ db SPRITE_SAILOR, $d + 4, $0 + 4, $ff, $d0, $41, SAILOR + $C8, $3 ; trainer
+ db SPRITE_SAILOR, $b + 4, $2 + 4, $ff, $d0, $42, SAILOR + $C8, $4 ; trainer
+ db SPRITE_SAILOR, $3 + 4, $c + 4, $ff, $d2, $43, SAILOR + $C8, $5 ; trainer
+ db SPRITE_SAILOR, $2 + 4, $16 + 4, $ff, $d0, $44, SAILOR + $C8, $6 ; trainer
+ db SPRITE_SAILOR, $2 + 4, $0 + 4, $ff, $d3, $45, SAILOR + $C8, $7 ; trainer
+ db SPRITE_FISHER2, $4 + 4, $0 + 4, $ff, $d3, $46, FISHER + $C8, $2 ; trainer
db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $a + 4, $ff, $d3, $7 ; person
db SPRITE_SLOWBRO, $c + 4, $b + 4, $ff, $ff, $8 ; person
- db SPRITE_BALL, $2 + 4, $14 + 4, $ff, $ff, $89, $50 ; item
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $8a, $f4 ; item
- db SPRITE_BALL, $b + 4, $c + 4, $ff, $ff, $8b, $11 ; item
+ db SPRITE_BALL, $2 + 4, $14 + 4, $ff, $ff, $89, ETHER ; item
+ db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $8a, TM_44 ; item
+ db SPRITE_BALL, $b + 4, $c + 4, $ff, $ff, $8b, MAX_POTION ; item
; warp-to
EVENT_DISP $c, $5, $2 ; SS_ANNE_4
@@ -20738,7 +26940,6 @@ SSAnne10Object: ; 0x61e75 (size=165)
EVENT_DISP $c, $f, $c ; SS_ANNE_4
EVENT_DISP $c, $f, $d ; SS_ANNE_4
-
UndergroundPathNS_h: ; 0x61f1a to 0x61f26 (12 bytes) (id=119)
db $0b ; tileset
db $18, $04 ; dimensions (y, x)
@@ -20763,7 +26964,6 @@ UndergroundPathNSObject: ; 0x61f2a (size=20)
EVENT_DISP $4, $4, $5 ; PATH_ENTRANCE_ROUTE_5
EVENT_DISP $4, $29, $2 ; PATH_ENTRANCE_ROUTE_6
-
UndergroundPathWE_h: ; 0x61f3e to 0x61f4a (12 bytes) (id=121)
db $0b ; tileset
db $04, $19 ; dimensions (y, x)
@@ -20788,7 +26988,6 @@ UndergroundPathWEObject: ; 0x61f4e (size=20)
EVENT_DISP $19, $5, $2 ; PATH_ENTRANCE_ROUTE_7
EVENT_DISP $19, $2, $2f ; PATH_ENTRANCE_ROUTE_8
-
DiglettsCave_h: ; 0x61f62 to 0x61f6e (12 bytes) (id=197)
db $11 ; tileset
db $12, $14 ; dimensions (y, x)
@@ -20813,7 +27012,6 @@ DiglettsCaveObject: ; 0x61f72 (size=20)
EVENT_DISP $14, $5, $5 ; DIGLETTS_CAVE_EXIT
EVENT_DISP $14, $1f, $25 ; DIGLETTS_CAVE_ENTRANCE
-
DiglettsCaveBlocks: ; 360
INCBIN "maps/diglettscave.blk"
@@ -20825,7 +27023,56 @@ SilphCo11_h: ; 0x620ee to 0x620fa (12 bytes) (id=235)
dw $6380 ; objects
-INCBIN "baserom.gbc",$620fa,$62380 - $620fa
+INCBIN "baserom.gbc",$620fa,$622dc - $620fa
+SilphCo11Text1: ; 0x622dc
+ db $08 ; asm
+ ld a, [$d838]
+ bit 5, a
+ jp nz, $6308
+ ld hl, $6311
+ call PrintText
+ ld bc,(MASTER_BALL << 8) | 1
+ call $3e2e
+ jr nc, .asm_36088 ; 0x622f1
+ ld hl, $6316
+ call PrintText
+ ld hl, $d838
+ set 5, [hl]
+ jr .asm_fd405 ; 0x622fe
+.asm_36088 ; 0x62300
+ ld hl, $6321
+ call PrintText
+ jr .asm_fd405 ; 0x62306
+ ld hl, $631c
+ call PrintText
+.asm_fd405 ; 0x6230e
+ jp $24d7
+
+INCBIN "baserom.gbc",$62311,$15
+
+SilphCo11Text2: ; 0x62326
+ TX_FAR _SilphCo11Text2
+ db $50
+
+SilphCo11Text3: ; 0x6232b
+ TX_FAR _SilphCo11Text3
+ db $50
+
+INCBIN "baserom.gbc",$62330,$6233a - $62330
+SilphCo11Text4: ; 0x6233a
+ db $08 ; asm
+ ld hl, $62c3
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$62344,$62353 - $62344
+SilphCo11Text5: ; 0x62353
+ db $08 ; asm
+ ld hl, $62cf
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$6235d,$23
SilphCo11Object: ; 0x62380 (size=72)
db $d ; border tile
@@ -20840,9 +27087,9 @@ SilphCo11Object: ; 0x62380 (size=72)
db $5 ; people
db SPRITE_MR_MASTERBALL, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $ff, $d0, $2 ; person
- db SPRITE_GIOVANNI, $9 + 4, $6 + 4, $ff, $d0, $43, $e5, $2 ; trainer
- db SPRITE_ROCKET, $10 + 4, $3 + 4, $ff, $d1, $44, $e6, $29 ; trainer
- db SPRITE_ROCKET, $9 + 4, $f + 4, $ff, $d1, $45, $e6, $28 ; trainer
+ db SPRITE_GIOVANNI, $9 + 4, $6 + 4, $ff, $d0, $43, GIOVANNI + $C8, $2 ; trainer
+ db SPRITE_ROCKET, $10 + 4, $3 + 4, $ff, $d1, $44, ROCKET + $C8, $29 ; trainer
+ db SPRITE_ROCKET, $9 + 4, $f + 4, $ff, $d1, $45, ROCKET + $C8, $28 ; trainer
; warp-to
EVENT_DISP $9, $0, $9 ; SILPH_CO_10F
@@ -20850,7 +27097,6 @@ SilphCo11Object: ; 0x62380 (size=72)
EVENT_DISP $9, $5, $5
EVENT_DISP $9, $2, $3 ; SILPH_CO_7F
-
SilphCo11Blocks: ; 81
INCBIN "maps/silphco11.blk"
@@ -21189,12 +27435,97 @@ CeruleanCaveName:
PowerPlantName:
db "POWER PLANT@"
-INCBIN "baserom.gbc",$716BE,$71B7B-$716BE
+INCBIN "baserom.gbc",$716BE,$71AD9-$716BE
+
+Predef54: ; 0x71ad9
+; trigger the trade offer/action specified by W_WHICHTRADE
+ call $36f4
+ ld hl,TradeMons
+ ld a,[W_WHICHTRADE]
+ ld b,a
+ swap a
+ sub b
+ sub b
+ ld c,a
+ ld b,$0
+ add hl,bc
+ ld a,[hli]
+ ld [$cd0f],a
+ ld a,[hli]
+ ld [$cd34],a
+ ld a,[hli]
+ push af
+ ld de,$cd29
+ ld bc,$000b
+ call CopyData
+ pop af
+ ld l,a
+ ld h,$0
+ ld de,$5d64
+ add hl,hl
+ add hl,de
+ ld a,[hli]
+ ld [$cd10],a
+ ld a,[hl]
+ ld [$cd11],a
+ ld a,[$cd0f]
+ ld de,$cd13
+ call Function71b6a
+ ld a,[$cd34]
+ ld de,$cd1e
+ call Function71b6a
+ ld hl,$d737
+ ld a,[W_WHICHTRADE]
+ ld c,a
+ ld b,$2
+ ld a,$10
+ call Predef
+ ld a,c
+ and a
+ ld a,$4
+ ld [$cd12],a
+ jr nz,.asm_99bca ; 0x71b36 $20
+ xor a
+ ld [$cd12],a
+ call .asm_99bca
+ ld a,$1
+ ld [$cd12],a
+ call $35ec
+ ld a,[$cc26]
+ and a
+ jr nz,.asm_99bca ; 0x71b4b $b
+ call Function71c07
+ jr c,.asm_99bca ; 0x71b50 $6
+ ld hl,$5d8d
+ call PrintText
+.asm_99bca ; 0x71b58
+ ld hl,$cd12
+ ld a,[hld]
+ ld e,a
+ ld d,$0
+ ld a,[hld]
+ ld l,[hl]
+ ld h,a
+ add hl,de
+ add hl,de
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a
+ jp PrintText
+
+Function71b6a: ; 0x71b6a
+ push de
+ ld [$d11e],a
+ call GetMonName
+ ld hl,$cd6d
+ pop de
+ ld bc,$b
+ jp CopyData
TradeMons: ; 5B7B
; givemonster, getmonster, textstring, nickname (11 bytes), 14 bytes total
db NIDORINO, NIDORINA, 0,"TERRY@@@@@@"
- db ABRA, MR__MIME, 0,"MARCEL@@@@@"
+ db ABRA, MR_MIME, 0,"MARCEL@@@@@"
db BUTTERFREE,BEEDRILL, 2,"CHIKUCHIKU@"
db PONYTA, SEEL, 0,"SAILOR@@@@@"
db SPEAROW, FARFETCH_D,2,"DUX@@@@@@@@"
@@ -21204,7 +27535,78 @@ TradeMons: ; 5B7B
db VENONAT, TANGELA, 2,"CRINKLES@@@"
db NIDORAN_M, NIDORAN_F, 2,"SPOT@@@@@@@"
-INCBIN "baserom.gbc",$71C07,$725C8-$71C07
+Function71c07: ; 0x71c07
+ xor a
+ ld [$d07d],a
+ dec a
+ ld [$cfcb],a
+ call $13fc
+ push af
+ call $5ca2
+ pop af
+ ld a,$1
+ jp c,.asm_c4bc2
+ ld a,[$cd0f]
+ ld b,a
+ ld a,[$cf91]
+ cp b
+ ld a,$2
+ jr nz,.asm_c4bc2 ; 0x71c26 $75
+ ld a,[$cf92]
+ ld hl,$d18c
+ ld bc,$002c
+ call AddNTimes
+ ld a,[hl]
+ ld [$d127],a
+ ld hl,$d737
+ ld a,[W_WHICHTRADE]
+ ld c,a
+ ld b,$1
+ ld a,$10
+ call Predef
+ ld hl,$5d88
+ call PrintText
+ ld a,[$cf92]
+ push af
+ ld a,[$d127]
+ push af
+ call $36c0
+ call $5cc1
+ ld a,$38
+ call Predef
+ pop af
+ ld [$d127],a
+ pop af
+ ld [$cf92],a
+ ld a,[$cd34]
+ ld [$cf91],a
+ xor a
+ ld [$cc49],a
+ ld [$cf95],a
+ call $391f
+ ld a,$80
+ ld [$cc49],a
+ call AddPokemonToParty
+ call $5d19
+ ld hl,$7d7d
+ ld b,$5
+ call Bankswitch
+ call ClearScreen
+ call $5ca2
+ ld b,$3
+ ld hl,$6edc
+ call Bankswitch
+ and a
+ ld a,$3
+ jr .asm_ee803 ; 0x71c9b $1
+.asm_c4bc2 ; 0x71c9d
+ scf
+.asm_ee803 ; 0x71c9e
+ ld [$cd12],a
+ ret
+
+
+INCBIN "baserom.gbc",$71CA2,$725C8-$71CA2
MonsterPalettes: ; 65C8
db PAL_MEWMON ; MISSINGNO
@@ -21329,7 +27731,7 @@ MonsterPalettes: ; 65C8
db PAL_REDMON ; SEAKING
db PAL_REDMON ; STARYU
db PAL_GREYMON ; STARMIE
- db PAL_PINKMON ; MR__MIME
+ db PAL_PINKMON ; MR_MIME
db PAL_GREENMON ; SCYTHER
db PAL_MEWMON ; JYNX
db PAL_YELLOWMON ; ELECTABUZZ
@@ -21812,7 +28214,123 @@ ViridianGym_h: ; 0x74897 to 0x748a3 (12 bytes) (id=45)
dw $4bde ; objects
-INCBIN "baserom.gbc",$748a3,$74bde - $748a3
+INCBIN "baserom.gbc",$748a3,$74a69 - $748a3
+ViridianGymText1: ; 0x74a69
+ db $08 ; asm
+ ld a, [$d751]
+ bit 1, a
+ jr z, .asm_6de66 ; 0x74a6f
+ bit 0, a
+ jr nz, .asm_9fc95 ; 0x74a73
+ call z, $4995
+ call $30b6
+ jr .asm_6dff7 ; 0x74a7b
+.asm_9fc95 ; 0x74a7d
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, $4ad9
+ call PrintText
+ call $20ef
+ ld a, $32
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ call $2429
+ call Delay3
+ call $20d1
+ jr .asm_6dff7 ; 0x74a9e
+.asm_6de66 ; 0x74aa0
+ ld hl, $4ace
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $4ad3
+ ld de, $4ad3
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $8
+ ld [$d05c], a
+ ld a, $3
+ ld [$d5fb], a
+.asm_6dff7 ; 0x74acb
+ jp $24d7
+
+INCBIN "baserom.gbc",$74ace,$74af3 - $74ace
+ViridianGymText2: ; 0x74af3
+ db $08 ; asm
+ ld hl, $4a08
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74afd,$74b0c - $74afd
+ViridianGymText3: ; 0x74b0c
+ db $08 ; asm
+ ld hl, $4a14
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b16,$74b25 - $74b16
+ViridianGymText4: ; 0x74b25
+ db $08 ; asm
+ ld hl, $4a20
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b2f,$74b3e - $74b2f
+ViridianGymText5: ; 0x74b3e
+ db $08 ; asm
+ ld hl, $4a2c
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b48,$74b57 - $74b48
+ViridianGymText6: ; 0x74b57
+ db $08 ; asm
+ ld hl, $4a38
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b61,$74b70 - $74b61
+ViridianGymText7: ; 0x74b70
+ db $08 ; asm
+ ld hl, $4a44
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b7a,$74b89 - $74b7a
+ViridianGymText8: ; 0x74b89
+ db $08 ; asm
+ ld hl, $4a50
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74b93,$74ba2 - $74b93
+ViridianGymText9: ; 0x74ba2
+ db $08 ; asm
+ ld hl, $4a5c
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$74bac,$74bbb - $74bac
+ViridianGymText10: ; 0x74bbb
+ db $08 ; asm
+ ld a, [$d751]
+ bit 1, a
+ jr nz, .asm_1abd1 ; 0x74bc1
+ ld hl, $4bd4
+ call PrintText
+ jr .asm_6064d ; 0x74bc9
+.asm_1abd1 ; 0x74bcb
+ ld hl, $4bd9
+ call PrintText
+.asm_6064d ; 0x74bd1
+ jp $24d7
+
+INCBIN "baserom.gbc",$74bd4,$a
ViridianGymObject: ; 0x74bde (size=105)
db $3 ; border tile
@@ -21823,23 +28341,22 @@ ViridianGymObject: ; 0x74bde (size=105)
db $0 ; signs
db $b ; people
- db SPRITE_GIOVANNI, $1 + 4, $2 + 4, $ff, $d0, $41, $e5, $3 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $c + 4, $ff, $d0, $42, $e7, $9 ; trainer
- db SPRITE_HIKER, $b + 4, $b + 4, $ff, $d1, $43, $e0, $6 ; trainer
- db SPRITE_ROCKER, $7 + 4, $a + 4, $ff, $d0, $44, $de, $3 ; trainer
- db SPRITE_HIKER, $7 + 4, $3 + 4, $ff, $d2, $45, $e0, $7 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $d + 4, $ff, $d3, $46, $e7, $a ; trainer
- db SPRITE_HIKER, $1 + 4, $a + 4, $ff, $d0, $47, $e0, $8 ; trainer
- db SPRITE_ROCKER, $10 + 4, $2 + 4, $ff, $d3, $48, $de, $4 ; trainer
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $6 + 4, $ff, $d0, $49, $e7, $1 ; trainer
+ db SPRITE_GIOVANNI, $1 + 4, $2 + 4, $ff, $d0, $41, GIOVANNI + $C8, $3 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $c + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $9 ; trainer
+ db SPRITE_HIKER, $b + 4, $b + 4, $ff, $d1, $43, BLACKBELT + $C8, $6 ; trainer
+ db SPRITE_ROCKER, $7 + 4, $a + 4, $ff, $d0, $44, TAMER + $C8, $3 ; trainer
+ db SPRITE_HIKER, $7 + 4, $3 + 4, $ff, $d2, $45, BLACKBELT + $C8, $7 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $d + 4, $ff, $d3, $46, COOLTRAINER_M + $C8, $a ; trainer
+ db SPRITE_HIKER, $1 + 4, $a + 4, $ff, $d0, $47, BLACKBELT + $C8, $8 ; trainer
+ db SPRITE_ROCKER, $10 + 4, $2 + 4, $ff, $d3, $48, TAMER + $C8, $4 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $6 + 4, $ff, $d0, $49, COOLTRAINER_M + $C8, $1 ; trainer
db SPRITE_GYM_HELPER, $f + 4, $10 + 4, $ff, $d0, $a ; person
- db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $8b, $35 ; item
+ db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $8b, REVIVE ; item
; warp-to
EVENT_DISP $a, $11, $10
EVENT_DISP $a, $11, $11
-
ViridianGymBlocks: ; 90
INCBIN "maps/viridiangym.blk"
@@ -21851,7 +28368,21 @@ PewterMart_h: ; 0x74ca1 to 0x74cad (12 bytes) (id=56)
dw $4cda ; objects
-INCBIN "baserom.gbc",$74cad,$74cda - $74cad
+INCBIN "baserom.gbc",$74cad,$74cbc - $74cad
+PewterMartText2: ; 0x74cbc
+ db $08 ; asm
+ ld hl, $4cc6
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$74cc6,$74ccb - $74cc6
+PewterMartText3: ; 0x74ccb
+ db $08 ; asm
+ ld hl, $4cd5
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$74cd5,$5
PewterMartObject: ; 0x74cda (size=38)
db $0 ; border tile
@@ -21870,7 +28401,6 @@ PewterMartObject: ; 0x74cda (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
UnknownDungeon1_h: ; 0x74d00 to 0x74d0c (12 bytes) (id=228)
db $11 ; tileset
db $09, $0f ; dimensions (y, x)
@@ -21897,9 +28427,9 @@ UnknownDungeon1Object: ; 0x74d15 (size=97)
db $0 ; signs
db $3 ; people
- db SPRITE_BALL, $d + 4, $7 + 4, $ff, $ff, $81, $10 ; item
- db SPRITE_BALL, $3 + 4, $13 + 4, $ff, $ff, $82, $53 ; item
- db SPRITE_BALL, $0 + 4, $5 + 4, $ff, $ff, $83, $31 ; item
+ db SPRITE_BALL, $d + 4, $7 + 4, $ff, $ff, $81, FULL_RESTORE ; item
+ db SPRITE_BALL, $3 + 4, $13 + 4, $ff, $ff, $82, MAX_ELIXER ; item
+ db SPRITE_BALL, $0 + 4, $5 + 4, $ff, $ff, $83, NUGGET ; item
; warp-to
EVENT_DISP $f, $11, $18
@@ -21912,7 +28442,6 @@ UnknownDungeon1Object: ; 0x74d15 (size=97)
EVENT_DISP $f, $b, $3 ; UNKNOWN_DUNGEON_2
EVENT_DISP $f, $6, $0 ; UNKNOWN_DUNGEON_3
-
UnknownDungeon1Blocks: ; 135
INCBIN "maps/unknowndungeon1.blk"
@@ -21953,7 +28482,22 @@ FuchsiaHouse1_h: ; 0x7500c to 0x75018 (12 bytes) (id=153)
dw $5031 ; objects
-INCBIN "baserom.gbc",$75018,$75031 - $75018
+INCBIN "baserom.gbc",$75018,$7501c - $75018
+FuchsiaHouse1Texts: ; 0x7501c
+ dw FuchsiaHouse1Text1, FuchsiaHouse1Text2, FuchsiaHouse1Text3
+
+FuchsiaHouse1Text1: ; 0x75022
+ TX_FAR _FuchsiaHouse1Text1
+ db $50
+
+FuchsiaHouse1Text2: ; 0x75027
+ TX_FAR _FuchsiaHouse1Text2
+ db $50
+
+FuchsiaHouse1Text3: ; 0x7502c
+ TX_FAR _FuchsiaHouse1Text3
+ db $50
+
FuchsiaHouse1Object: ; 0x75031 (size=38)
db $a ; border tile
@@ -21972,7 +28516,6 @@ FuchsiaHouse1Object: ; 0x75031 (size=38)
EVENT_DISP $4, $7, $2
EVENT_DISP $4, $7, $3
-
FuchsiaPokecenter_h: ; 0x75057 to 0x75063 (12 bytes) (id=154)
db $06 ; tileset
db $04, $07 ; dimensions (y, x)
@@ -21981,7 +28524,15 @@ FuchsiaPokecenter_h: ; 0x75057 to 0x75063 (12 bytes) (id=154)
dw $507d ; objects
-INCBIN "baserom.gbc",$75063,$7507d - $75063
+INCBIN "baserom.gbc",$75063,$75072 - $75063
+
+FuchsiaPokecenterText1: ; 0x75071 or 0x75072
+ ;TX_FAR _FuchsiaPokecenterText1
+ db $17, $87, $63, $27, $50
+
+INCBIN "baserom.gbc",$75077,$6
+;db $17, $de, $63, $27, $50, $f6
+
FuchsiaPokecenterObject: ; 0x7507d (size=44)
db $0 ; border tile
@@ -22001,7 +28552,6 @@ FuchsiaPokecenterObject: ; 0x7507d (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
FuchsiaHouse2_h: ; 0x750a9 to 0x750b5 (12 bytes) (id=155)
db $14 ; tileset
db $04, $05 ; dimensions (y, x)
@@ -22010,7 +28560,73 @@ FuchsiaHouse2_h: ; 0x750a9 to 0x750b5 (12 bytes) (id=155)
dw $5180 ; objects
-INCBIN "baserom.gbc",$750b5,$75180 - $750b5
+INCBIN "baserom.gbc",$750b5,$750c2 - $750b5
+FuchsiaHouse2Text1: ; 0x750c2
+ db $08 ; asm
+ ld a, [$d78e]
+ bit 0, a
+ jr nz, .asm_58feb ; 0x750c8
+ ld b,GOLD_TEETH
+ call $3493
+ jr nz, .asm_3f30f ; 0x750cf
+ ld a, [$d78e]
+ bit 1, a
+ jr nz, .asm_60cba ; 0x750d6
+ ld hl, $5135
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ ld hl, $513f
+ jr nz, .asm_61238 ; 0x750e8
+ ld hl, $513a
+.asm_61238 ; 0x750ed
+ call PrintText
+ jr .asm_52039 ; 0x750f0
+.asm_3f30f ; 0x750f2
+ ld hl, $5144
+ call PrintText
+ ld a, $40
+ ldh [$db], a
+ ld b, $5 ; BANK(MyFunction)
+ ld hl, $7f37 ; MyFunction
+ call Bankswitch
+ ld hl, $d78e
+ set 1, [hl]
+.asm_60cba ; 0x75109
+ ld hl, $514e
+ call PrintText
+ ld bc,(HM_04 << 8) | 1
+ call $3e2e
+ jr nc, .asm_53b90 ; 0x75115
+ ld hl, $5153
+ call PrintText
+ ld hl, $d78e
+ set 0, [hl]
+ jr .asm_52039 ; 0x75122
+.asm_58feb ; 0x75124
+ ld hl, $5159
+ call PrintText
+ jr .asm_52039 ; 0x7512a
+.asm_53b90 ; 0x7512c
+ ld hl, $515e
+ call PrintText
+.asm_52039 ; 0x75132
+ jp $24d7
+
+INCBIN "baserom.gbc",$75135,$75163 - $75135
+FuchsiaHouse2Text4: ; 0x75163
+ db $08 ; asm
+ ldh a, [$8c]
+ cp $4
+ ld hl, $517b
+ jr nz, .asm_4c9a2 ; 0x7516b
+ ld hl, $5176
+.asm_4c9a2 ; 0x75170
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75176,$a
FuchsiaHouse2Object: ; 0x75180 (size=45)
db $17 ; border tile
@@ -22024,14 +28640,13 @@ FuchsiaHouse2Object: ; 0x75180 (size=45)
db $3 ; people
db SPRITE_WARDEN, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
- db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $82, $28 ; item
+ db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $82, RARE_CANDY ; item
db SPRITE_BOULDER, $4 + 4, $8 + 4, $ff, $10, $3 ; person
; warp-to
EVENT_DISP $5, $7, $4
EVENT_DISP $5, $7, $5
-
FuchsiaHouse2Blocks: ; 20
INCBIN "maps/fuchsiahouse2.blk"
@@ -22043,7 +28658,28 @@ SafariZoneEntrance_h: ; 0x751c1 to 0x751cd (12 bytes) (id=156)
dw $53f5 ; objects
-INCBIN "baserom.gbc",$751cd,$753f5 - $751cd
+INCBIN "baserom.gbc",$751cd,$752c5 - $751cd
+
+SafariZoneEntranceText1: ; 0x752c5
+ TX_FAR _SafariZoneEntranceText1
+ db $50
+
+INCBIN "baserom.gbc",$752ca,$753ca - $752ca
+SafariZoneEntranceText2: ; 0x753ca
+ db $08 ; asm
+ ld hl, $53e6
+ call PrintText
+ call $35ec
+ ld a, [$cc26]
+ and a
+ ld hl, $53f0
+ jr nz, .asm_278a6 ; 0x753db
+ ld hl, $53eb
+.asm_278a6 ; 0x753e0
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$753e6,$f
SafariZoneEntranceObject: ; 0x753f5 (size=48)
db $a ; border tile
@@ -22065,7 +28701,6 @@ SafariZoneEntranceObject: ; 0x753f5 (size=48)
EVENT_DISP $4, $0, $3 ; SAFARI_ZONE_CENTER
EVENT_DISP $4, $0, $4 ; SAFARI_ZONE_CENTER
-
SafariZoneEntranceBlocks: ; 12
INCBIN "maps/safarizoneentrance.blk"
@@ -22077,7 +28712,98 @@ FuchsiaGym_h: ; 0x75431 to 0x7543d (12 bytes) (id=157)
dw $5658 ; objects
-INCBIN "baserom.gbc",$7543d,$75658 - $7543d
+INCBIN "baserom.gbc",$7543d,$75534 - $7543d
+FuchsiaGymText1: ; 0x75534
+ db $08 ; asm
+ ld a, [$d792]
+ bit 1, a
+ jr z, .asm_181b6 ; 0x7553a
+ bit 0, a
+ jr nz, .asm_adc3b ; 0x7553e
+ call z, $5497
+ call $30b6
+ jr .asm_e84c6 ; 0x75546
+.asm_adc3b ; 0x75548
+ ld hl, $558b
+ call PrintText
+ jr .asm_e84c6 ; 0x7554e
+.asm_181b6 ; 0x75550
+ ld hl, $5581
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, $5586
+ ld de, $5586
+ call $3354
+ ldh a, [$8c]
+ ld [$cf13], a
+ call $336a
+ call $32d7
+ ld a, $5
+ ld [$d05c], a
+ xor a
+ ldh [$b4], a
+ ld a, $3
+ ld [$d65b], a
+.asm_e84c6 ; 0x7557e
+ jp $24d7
+
+INCBIN "baserom.gbc",$75581,$755a4 - $75581
+FuchsiaGymText2: ; 0x755a4
+ db $08 ; asm
+ ld hl, $54eb
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$755ae,$755bd - $755ae
+FuchsiaGymText3: ; 0x755bd
+ db $08 ; asm
+ ld hl, $54f7
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$755c7,$755d6 - $755c7
+FuchsiaGymText4: ; 0x755d6
+ db $08 ; asm
+ ld hl, $5503
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$755e0,$755ef - $755e0
+FuchsiaGymText5: ; 0x755ef
+ db $08 ; asm
+ ld hl, $550f
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$755f9,$75608 - $755f9
+FuchsiaGymText6: ; 0x75608
+ db $08 ; asm
+ ld hl, $551b
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$75612,$75621 - $75612
+FuchsiaGymText7: ; 0x75621
+ db $08 ; asm
+ ld hl, $5527
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$7562b,$7563a - $7562b
+FuchsiaGymText8: ; 0x7563a
+ db $08 ; asm
+ ld a, [$d792]
+ bit 1, a
+ ld hl, $5653
+ jr nz, .asm_50671 ; 0x75643
+ ld hl, $564e
+.asm_50671 ; 0x75648
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$7564e,$a
FuchsiaGymObject: ; 0x75658 (size=82)
db $3 ; border tile
@@ -22088,20 +28814,19 @@ FuchsiaGymObject: ; 0x75658 (size=82)
db $0 ; signs
db $8 ; people
- db SPRITE_BLACKBELT, $a + 4, $4 + 4, $ff, $d0, $41, $ee, $1 ; trainer
- db SPRITE_ROCKER, $d + 4, $8 + 4, $ff, $d0, $42, $dd, $7 ; trainer
- db SPRITE_ROCKER, $8 + 4, $7 + 4, $ff, $d3, $43, $dd, $3 ; trainer
- db SPRITE_ROCKER, $c + 4, $1 + 4, $ff, $d0, $44, $dd, $8 ; trainer
- db SPRITE_ROCKER, $5 + 4, $3 + 4, $ff, $d1, $45, $de, $1 ; trainer
- db SPRITE_ROCKER, $2 + 4, $8 + 4, $ff, $d0, $46, $de, $2 ; trainer
- db SPRITE_ROCKER, $7 + 4, $2 + 4, $ff, $d2, $47, $dd, $4 ; trainer
+ db SPRITE_BLACKBELT, $a + 4, $4 + 4, $ff, $d0, $41, KOGA + $C8, $1 ; trainer
+ db SPRITE_ROCKER, $d + 4, $8 + 4, $ff, $d0, $42, JUGGLER + $C8, $7 ; trainer
+ db SPRITE_ROCKER, $8 + 4, $7 + 4, $ff, $d3, $43, JUGGLER + $C8, $3 ; trainer
+ db SPRITE_ROCKER, $c + 4, $1 + 4, $ff, $d0, $44, JUGGLER + $C8, $8 ; trainer
+ db SPRITE_ROCKER, $5 + 4, $3 + 4, $ff, $d1, $45, TAMER + $C8, $1 ; trainer
+ db SPRITE_ROCKER, $2 + 4, $8 + 4, $ff, $d0, $46, TAMER + $C8, $2 ; trainer
+ db SPRITE_ROCKER, $7 + 4, $2 + 4, $ff, $d2, $47, JUGGLER + $C8, $4 ; trainer
db SPRITE_GYM_HELPER, $f + 4, $7 + 4, $ff, $d0, $8 ; person
; warp-to
EVENT_DISP $5, $11, $4
EVENT_DISP $5, $11, $5
-
FuchsiaGymBlocks: ; 45
INCBIN "maps/fuchsiagym.blk"
@@ -22113,7 +28838,22 @@ FuchsiaMeetingRoom_h: ; 0x756d7 to 0x756e3 (12 bytes) (id=158)
dw $56fc ; objects
-INCBIN "baserom.gbc",$756e3,$756fc - $756e3
+INCBIN "baserom.gbc",$756e3,$756e7 - $756e3
+FuchsiaMeetingRoomTexts: ; 0x756e7
+ dw FuchsiaMeetingRoomText1, FuchsiaMeetingRoomText2, FuchsiaMeetingRoomText3
+
+FuchsiaMeetingRoomText1: ; 0x756ed
+ TX_FAR _FuchsiaMeetingRoomText1
+ db $50
+
+FuchsiaMeetingRoomText2: ; 0x756f2
+ TX_FAR _FuchsiaMeetingRoomText2
+ db $50
+
+FuchsiaMeetingRoomText3: ; 0x756f7
+ TX_FAR _FuchsiaMeetingRoomText3
+ db $50
+
FuchsiaMeetingRoomObject: ; 0x756fc (size=38)
db $17 ; border tile
@@ -22132,7 +28872,6 @@ FuchsiaMeetingRoomObject: ; 0x756fc (size=38)
EVENT_DISP $7, $7, $4
EVENT_DISP $7, $7, $5
-
FuchsiaMeetingRoomBlocks: ; 28
INCBIN "maps/fuchsiameetingroom.blk"
@@ -22144,7 +28883,147 @@ CinnabarGym_h: ; 0x7573e to 0x7574a (12 bytes) (id=166)
dw $5acc ; objects
-INCBIN "baserom.gbc",$7574a,$75acc - $7574a
+INCBIN "baserom.gbc",$7574a,$75939 - $7574a
+CinnabarGymText2: ; 0x75939
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 2, a
+ jr nz, .asm_46bb4 ; 0x75942
+ ld hl, $595f
+ call PrintText
+ ld hl, $5964
+ ld de, $5964
+ call $3354
+ jp $58b7
+.asm_46bb4 ; 0x75956
+ ld hl, $5969
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$7595f,$7596e - $7595f
+CinnabarGymText3: ; 0x7596e
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 3, a
+ jr nz, .asm_4b406 ; 0x75977
+ ld hl, $5994
+ call PrintText
+ ld hl, $5999
+ ld de, $5999
+ call $3354
+ jp $58b7
+.asm_4b406 ; 0x7598b
+ ld hl, $599e
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75994,$759a3 - $75994
+CinnabarGymText4: ; 0x759a3
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 4, a
+ jr nz, .asm_c0673 ; 0x759ac
+ ld hl, $59c9
+ call PrintText
+ ld hl, $59ce
+ ld de, $59ce
+ call $3354
+ jp $58b7
+.asm_c0673 ; 0x759c0
+ ld hl, $59d3
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$759c9,$759d8 - $759c9
+CinnabarGymText5: ; 0x759d8
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 5, a
+ jr nz, .asm_5cfd7 ; 0x759e1
+ ld hl, $59fe
+ call PrintText
+ ld hl, $5a03
+ ld de, $5a03
+ call $3354
+ jp $58b7
+.asm_5cfd7 ; 0x759f5
+ ld hl, $5a08
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$759fe,$75a0d - $759fe
+CinnabarGymText6: ; 0x75a0d
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 6, a
+ jr nz, .asm_776b4 ; 0x75a16
+ ld hl, $5a33
+ call PrintText
+ ld hl, $5a38
+ ld de, $5a38
+ call $3354
+ jp $58b7
+.asm_776b4 ; 0x75a2a
+ ld hl, $5a3d
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75a33,$75a42 - $75a33
+CinnabarGymText7: ; 0x75a42
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79a]
+ bit 7, a
+ jr nz, .asm_2f755 ; 0x75a4b
+ ld hl, $5a68
+ call PrintText
+ ld hl, $5a6d
+ ld de, $5a6d
+ call $3354
+ jp $58b7
+.asm_2f755 ; 0x75a5f
+ ld hl, $5a72
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75a68,$75a77 - $75a68
+CinnabarGymText8: ; 0x75a77
+ db $08 ; asm
+ call $57a0
+ ld a, [$d79b]
+ bit 0, a
+ jr nz, .asm_d87be ; 0x75a80
+ ld hl, $5a9d
+ call PrintText
+ ld hl, $5aa2
+ ld de, $5aa2
+ call $3354
+ jp $58b7
+.asm_d87be ; 0x75a94
+ ld hl, $5aa7
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75a9d,$75aac - $75a9d
+CinnabarGymText9: ; 0x75aac
+ db $08 ; asm
+ ld a, [$d79a]
+ bit 1, a
+ jr nz, .asm_627d9 ; 0x75ab2
+ ld hl, $5ac2
+ jr .asm_0b11d ; 0x75ab7
+.asm_627d9 ; 0x75ab9
+ ld hl, $5ac7
+.asm_0b11d ; 0x75abc
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$75ac2,$a
CinnabarGymObject: ; 0x75acc (size=90)
db $2e ; border tile
@@ -22155,14 +29034,14 @@ CinnabarGymObject: ; 0x75acc (size=90)
db $0 ; signs
db $9 ; people
- db SPRITE_FAT_BALD_GUY, $3 + 4, $3 + 4, $ff, $d0, $41, $ef, $1 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $11 + 4, $ff, $d0, $42, $d0, $9 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $11 + 4, $ff, $d0, $43, $d3, $4 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $b + 4, $ff, $d0, $44, $d0, $a ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $b + 4, $ff, $d0, $45, $d3, $5 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $b + 4, $ff, $d0, $46, $d0, $b ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $3 + 4, $ff, $d0, $47, $d3, $6 ; trainer
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d0, $48, $d0, $c ; trainer
+ db SPRITE_FAT_BALD_GUY, $3 + 4, $3 + 4, $ff, $d0, $41, BLAINE + $C8, $1 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $11 + 4, $ff, $d0, $42, SUPER_NERD + $C8, $9 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $11 + 4, $ff, $d0, $43, BURGLAR + $C8, $4 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $b + 4, $ff, $d0, $44, SUPER_NERD + $C8, $a ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $b + 4, $ff, $d0, $45, BURGLAR + $C8, $5 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $b + 4, $ff, $d0, $46, SUPER_NERD + $C8, $b ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $3 + 4, $ff, $d0, $47, BURGLAR + $C8, $6 ; trainer
+ db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d0, $48, SUPER_NERD + $C8, $c ; trainer
db SPRITE_GYM_HELPER, $d + 4, $10 + 4, $ff, $d0, $9 ; person
; warp-to
@@ -22180,7 +29059,30 @@ Lab1_h: ; 0x75b80 to 0x75b8c (12 bytes) (id=167)
dw $5bb3 ; objects
-INCBIN "baserom.gbc",$75b8c,$75bb3 - $75b8c
+INCBIN "baserom.gbc",$75b8c,$75b90 - $75b8c
+Lab1Texts: ; 0x75b90
+ dw Lab1Text1, Lab1Text2, Lab1Text3, Lab1Text4, Lab1Text5
+
+Lab1Text1: ; 0x75b9a
+ TX_FAR _Lab1Text1
+ db $50
+
+Lab1Text2: ; 0x75b9f
+ TX_FAR _Lab1Text2
+ db $50
+
+Lab1Text3: ; 0x75ba4
+ TX_FAR _Lab1Text3
+ db $50
+
+Lab1Text4: ; 0x75ba9
+ TX_FAR _Lab1Text4
+ db $50
+
+Lab1Text5: ; 0x75bae
+ TX_FAR _Lab1Text5
+ db $50
+
Lab1Object: ; 0x75bb3 (size=62)
db $17 ; border tile
@@ -22207,7 +29109,6 @@ Lab1Object: ; 0x75bb3 (size=62)
EVENT_DISP $9, $4, $c ; CINNABAR_LAB_3
EVENT_DISP $9, $4, $10 ; CINNABAR_LAB_4
-
Lab1Blocks: ; 36
INCBIN "maps/lab1.blk"
@@ -22219,7 +29120,27 @@ Lab2_h: ; 0x75c15 to 0x75c21 (12 bytes) (id=168)
dw $5c45 ; objects
-INCBIN "baserom.gbc",$75c21,$75c45 - $75c21
+INCBIN "baserom.gbc",$75c21,$75c2a - $75c21
+
+Lab2Text1: ; 0x75c2a
+ TX_FAR _Lab2Text1
+ db $50
+
+Lab2Text2: ; 0x75c2f
+ db $8
+ ld a, $7
+ ld [W_WHICHTRADE], a
+ jr asm_78552 ; 0x75c35 $6
+
+Lab2Text3:
+ db $8
+ ld a, $8
+ ld [W_WHICHTRADE], a
+asm_78552: ; 0x75c3d
+ ld a, $54
+ call Predef
+ jp $24d7
+
Lab2Object: ; 0x75c45 (size=38)
db $17 ; border tile
@@ -22238,7 +29159,6 @@ Lab2Object: ; 0x75c45 (size=38)
EVENT_DISP $4, $7, $2 ; CINNABAR_LAB_1
EVENT_DISP $4, $7, $3 ; CINNABAR_LAB_1
-
Lab2Blocks: ; 16
INCBIN "maps/lab2.blk"
@@ -22250,7 +29170,46 @@ Lab3_h: ; 0x75c7b to 0x75c87 (12 bytes) (id=169)
dw $5cec ; objects
-INCBIN "baserom.gbc",$75c87,$75cec - $75c87
+INCBIN "baserom.gbc",$75c87,$75c94 - $75c87
+Lab3Text1: ; 0x75c94
+ db $08 ; asm
+ ld a, [$d7a1]
+ bit 7, a
+ jr nz, .asm_e551a ; 0x75c9a
+ ld hl, $5cc8
+ call PrintText
+ ld bc,(TM_35 << 8) | 1
+ call $3e2e
+ jr nc, .asm_6c187 ; 0x75ca8
+ ld hl, $5ccd
+ call PrintText
+ ld hl, $d7a1
+ set 7, [hl]
+ jr .asm_eb896 ; 0x75cb5
+.asm_6c187 ; 0x75cb7
+ ld hl, $5cd8
+ call PrintText
+ jr .asm_eb896 ; 0x75cbd
+.asm_e551a ; 0x75cbf
+ ld hl, $5cd3
+ call PrintText
+.asm_eb896 ; 0x75cc5
+ jp $24d7
+
+INCBIN "baserom.gbc",$75cc8,$15
+
+Lab3Text2: ; 0x75cdd
+ TX_FAR _Lab3Text2
+ db $50
+
+Lab3Text3: ; 0x75ce2
+ TX_FAR _Lab3Text3
+ db $50
+
+Lab3Text5: ; 0x75ce7
+ TX_FAR _Lab3Text5
+ db $50
+
Lab3Object: ; 0x75cec (size=41)
db $17 ; border tile
@@ -22271,7 +29230,6 @@ Lab3Object: ; 0x75cec (size=41)
EVENT_DISP $4, $7, $2 ; CINNABAR_LAB_1
EVENT_DISP $4, $7, $3 ; CINNABAR_LAB_1
-
Lab3Blocks: ; 16
INCBIN "maps/lab3.blk"
@@ -22283,7 +29241,16 @@ Lab4_h: ; 0x75d25 to 0x75d31 (12 bytes) (id=170)
dw $5df0 ; objects
-INCBIN "baserom.gbc",$75d31,$75df0 - $75d31
+INCBIN "baserom.gbc",$75d31,$75dda - $75d31
+Lab4Text2: ; 0x75dda
+ db $08 ; asm
+ ld a, $3
+ ld [W_WHICHTRADE], a
+ ld a, $54
+ call Predef
+ jp $24d7
+
+INCBIN "baserom.gbc",$75de8,$8
Lab4Object: ; 0x75df0 (size=32)
db $17 ; border tile
@@ -22301,7 +29268,6 @@ Lab4Object: ; 0x75df0 (size=32)
EVENT_DISP $4, $7, $2 ; CINNABAR_LAB_1
EVENT_DISP $4, $7, $3 ; CINNABAR_LAB_1
-
Lab4Blocks: ; 16
INCBIN "maps/lab4.blk"
@@ -22313,7 +29279,13 @@ CinnabarPokecenter_h: ; 0x75e20 to 0x75e2c (12 bytes) (id=171)
dw $5e46 ; objects
-INCBIN "baserom.gbc",$75e2c,$75e46 - $75e2c
+INCBIN "baserom.gbc",$75e2c,$75e3b - $75e2c
+
+CinnabarPokecenterText1: ; 0x75e3a
+ TX_FAR _CinnabarPokecenterText1
+
+INCBIN "baserom.gbc",$75e3b+4,$75e46-($75e3b+4)
+
CinnabarPokecenterObject: ; 0x75e46 (size=44)
db $0 ; border tile
@@ -22333,7 +29305,6 @@ CinnabarPokecenterObject: ; 0x75e46 (size=44)
EVENT_DISP $7, $7, $3
EVENT_DISP $7, $7, $4
-
CinnabarMart_h: ; 0x75e72 to 0x75e7e (12 bytes) (id=172)
db $02 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -22342,7 +29313,16 @@ CinnabarMart_h: ; 0x75e72 to 0x75e7e (12 bytes) (id=172)
dw $5e91 ; objects
-INCBIN "baserom.gbc",$75e7e,$75e91 - $75e7e
+INCBIN "baserom.gbc",$75e7e,$75e87 - $75e7e
+
+CinnabarMartText2: ; 0x75e87
+ TX_FAR _CinnabarMartText2
+ db $50
+
+CinnabarMartText3: ; 0x75e8c
+ TX_FAR _CinnabarMartText3
+ db $50
+
CinnabarMartObject: ; 0x75e91 (size=38)
db $0 ; border tile
@@ -22361,7 +29341,6 @@ CinnabarMartObject: ; 0x75e91 (size=38)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $7, $4
-
CopycatsHouseF1_h: ; 0x75eb7 to 0x75ec3 (12 bytes) (id=175)
db $01 ; tileset
db $04, $04 ; dimensions (y, x)
@@ -22370,7 +29349,25 @@ CopycatsHouseF1_h: ; 0x75eb7 to 0x75ec3 (12 bytes) (id=175)
dw $5ee3 ; objects
-INCBIN "baserom.gbc",$75ec3,$75ee3 - $75ec3
+INCBIN "baserom.gbc",$75ec3,$75ec6 - $75ec3
+CopycatsHouseF1Texts: ; 0x75ec6
+ dw CopycatsHouseF1Text1, CopycatsHouseF1Text2, CopycatsHouseF1Text3
+
+CopycatsHouseF1Text1: ; 0x75ecc
+ TX_FAR _CopycatsHouseF1Text1
+ db $50
+
+CopycatsHouseF1Text2: ; 0x75ed1
+ TX_FAR _CopycatsHouseF1Text2
+ db $50
+
+CopycatsHouseF1Text3: ; 0x75ed6
+ TX_FAR _CopycatsHouseF1Text3
+ db $8
+ ld a, $28
+ call $13d0
+ jp $24d7
+
CopycatsHouseF1Object: ; 0x75ee3 (size=46)
db $a ; border tile
@@ -22391,7 +29388,25 @@ CopycatsHouseF1Object: ; 0x75ee3 (size=46)
EVENT_DISP $4, $7, $3
EVENT_DISP $4, $1, $7 ; COPYCATS_HOUSE_2F
-INCBIN "baserom.gbc",$75f11,$21e
+INCBIN "baserom.gbc",$75f11,$760e0 - $75f11
+GaryText1: ; 0x760e0
+ db $08 ; asm
+ ld a, [$d867]
+ bit 1, a
+ ld hl, $60f4
+ jr z, .asm_17e9f ; 0x760e9
+ ld hl, $6103
+.asm_17e9f ; 0x760ee
+ call PrintText
+ jp $24d7
+
+INCBIN "baserom.gbc",$760f4,$14
+
+GaryText2: ; 0x76108
+ TX_FAR _GaryText2
+ db $50
+
+INCBIN "baserom.gbc",$7610d,$22
GaryObject: ; 0x7612f (size=48)
db $3 ; border tile
@@ -22413,7 +29428,6 @@ GaryObject: ; 0x7612f (size=48)
EVENT_DISP $4, $0, $3 ; HALL_OF_FAME
EVENT_DISP $4, $0, $4 ; HALL_OF_FAME
-
GaryBlocks: ; 16
INCBIN "maps/gary.blk"
@@ -22425,7 +29439,14 @@ Loreli_h: ; 0x7616f to 0x7617b (12 bytes) (id=245)
dw $6280 ; objects
-INCBIN "baserom.gbc",$7617b,$76280 - $7617b
+INCBIN "baserom.gbc",$7617b,$76262 - $7617b
+LoreliText1: ; 0x76262
+ db $08 ; asm
+ ld hl, $6255
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$7626c,$14
LoreliObject: ; 0x76280 (size=44)
db $3 ; border tile
@@ -22438,7 +29459,7 @@ LoreliObject: ; 0x76280 (size=44)
db $0 ; signs
db $1 ; people
- db SPRITE_LORELEI, $2 + 4, $5 + 4, $ff, $d0, $41, $f4, $1 ; trainer
+ db SPRITE_LORELEI, $2 + 4, $5 + 4, $ff, $d0, $41, LORELEI + $C8, $1 ; trainer
; warp-to
EVENT_DISP $5, $b, $4 ; INDIGO_PLATEAU_LOBBY
@@ -22446,7 +29467,6 @@ LoreliObject: ; 0x76280 (size=44)
EVENT_DISP $5, $0, $4 ; BRUNOS_ROOM
EVENT_DISP $5, $0, $5 ; BRUNOS_ROOM
-
LoreliBlocks: ; 30
INCBIN "maps/loreli.blk"
@@ -22458,7 +29478,14 @@ Bruno_h: ; 0x762ca to 0x762d6 (12 bytes) (id=246)
dw $63d7 ; objects
-INCBIN "baserom.gbc",$762d6,$763d7 - $762d6
+INCBIN "baserom.gbc",$762d6,$763b9 - $762d6
+BrunoText1: ; 0x763b9
+ db $08 ; asm
+ ld hl, $63ac
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$763c3,$14
BrunoObject: ; 0x763d7 (size=44)
db $3 ; border tile
@@ -22471,7 +29498,7 @@ BrunoObject: ; 0x763d7 (size=44)
db $0 ; signs
db $1 ; people
- db SPRITE_BRUNO, $2 + 4, $5 + 4, $ff, $d0, $41, $e9, $1 ; trainer
+ db SPRITE_BRUNO, $2 + 4, $5 + 4, $ff, $d0, $41, BRUNO + $C8, $1 ; trainer
; warp-to
EVENT_DISP $5, $b, $4 ; LORELEIS_ROOM
@@ -22479,7 +29506,6 @@ BrunoObject: ; 0x763d7 (size=44)
EVENT_DISP $5, $0, $4 ; AGATHAS_ROOM
EVENT_DISP $5, $0, $5 ; AGATHAS_ROOM
-
BrunoBlocks: ; 30
INCBIN "maps/bruno.blk"
@@ -22491,7 +29517,14 @@ Agatha_h: ; 0x76421 to 0x7642d (12 bytes) (id=247)
dw $6534 ; objects
-INCBIN "baserom.gbc",$7642d,$76534 - $7642d
+INCBIN "baserom.gbc",$7642d,$76516 - $7642d
+AgathaText1: ; 0x76516
+ db $08 ; asm
+ ld hl, $6509
+ call LoadTrainerHeader
+ jp $24d7
+
+INCBIN "baserom.gbc",$76520,$14
AgathaObject: ; 0x76534 (size=44)
db $0 ; border tile
@@ -22504,7 +29537,7 @@ AgathaObject: ; 0x76534 (size=44)
db $0 ; signs
db $1 ; people
- db SPRITE_AGATHA, $2 + 4, $5 + 4, $ff, $d0, $41, $f6, $1 ; trainer
+ db SPRITE_AGATHA, $2 + 4, $5 + 4, $ff, $d0, $41, AGATHA + $C8, $1 ; trainer
; warp-to
EVENT_DISP $5, $b, $4 ; BRUNOS_ROOM
@@ -22512,7 +29545,6 @@ AgathaObject: ; 0x76534 (size=44)
EVENT_DISP $5, $0, $4 ; LANCES_ROOM
EVENT_DISP $5, $0, $5 ; LANCES_ROOM
-
AgathaBlocks: ; 30
INCBIN "maps/agatha.blk"
INCBIN "baserom.gbc",$7657e,$1a82
@@ -22990,7 +30022,6 @@ MoveSoundTable:
db $a1,$00,$80
db $a1,$00,$80
-
INCBIN "baserom.gbc",$79AAE,$79E16 - $79AAE
TossBallAnimation: ; 5E16
@@ -23184,27 +30215,27 @@ INCBIN "baserom.gbc",$7C000,$4000
SECTION "bank20",DATA,BANK[$20]
INCBIN "baserom.gbc",$80000,$800b1 - $80000
-_VictoryRoad3Text10:
-_VictoryRoad3Text9:
-_VictoryRoad3Text8:
-_VictoryRoad3Text7:
-_VictoryRoad2Text13:
-_VictoryRoad2Text12:
-_VictoryRoad2Text11:
-_SeafoamIslands1Text2:
-_SeafoamIslands1Text1:
-_SeafoamIslands5Text2:
-_SeafoamIslands5Text1:
-_SeafoamIslands4Text6:
-_SeafoamIslands4Text5:
-_SeafoamIslands4Text4:
-_SeafoamIslands4Text3:
-_SeafoamIslands4Text2:
-_SeafoamIslands4Text1:
-_SeafoamIslands3Text2:
-_SeafoamIslands3Text1:
-_SeafoamIslands2Text2:
-_SeafoamIslands2Text1:
+_VictoryRoad3Text10:
+_VictoryRoad3Text9:
+_VictoryRoad3Text8:
+_VictoryRoad3Text7:
+_VictoryRoad2Text13:
+_VictoryRoad2Text12:
+_VictoryRoad2Text11:
+_SeafoamIslands1Text2:
+_SeafoamIslands1Text1:
+_SeafoamIslands5Text2:
+_SeafoamIslands5Text1:
+_SeafoamIslands4Text6:
+_SeafoamIslands4Text5:
+_SeafoamIslands4Text4:
+_SeafoamIslands4Text3:
+_SeafoamIslands4Text2:
+_SeafoamIslands4Text1:
+_SeafoamIslands3Text2:
+_SeafoamIslands3Text1:
+_SeafoamIslands2Text2:
+_SeafoamIslands2Text1:
_FuchsiaHouse2Text3:
_VictoryRoad1Text7:
_VictoryRoad1Text6:
@@ -23212,12 +30243,12 @@ _VictoryRoad1Text5: ; 0x800b1
db $0, "This requires", $4f
db "STRENGTH to move!", $57
-_SaffronCityText19:
-_CinnabarIslandText4:
-_FuchsiaCityText14:
-_VermilionCityText9:
-_LavendarTownText6:
-_CeruleanCityText14:
+_SaffronCityText19:
+_CinnabarIslandText4:
+_FuchsiaCityText14:
+_VermilionCityText9:
+_LavenderTownText6:
+_CeruleanCityText14:
_PewterCityText8:
_ViridianCityText11: ; 0x800d2
db $0, "All your item", $4f
@@ -23697,8 +30728,6 @@ _SeafoamIslands5Text5: ; 0x880a8
db $0, "DANGER", $4f
db "Fast current!", $57
-INCBIN "baserom.gbc",$880be,$0
-
_AIBattleWithdrawText:
db 1
dw $D04A
@@ -23860,7 +30889,6 @@ _Char00Text:
_Char55Text:
db 0,$4B,"@@"
-
_DiglettsCaveRoute2Text1: ; 0x8a6a7
db $0, "I went to ROCK", $4f
db "TUNNEL, but it's", $55
@@ -24270,8 +31298,6 @@ _BattleCenterMText1: ; 0x94b01
_TradeCenterMText1: ; 0x94b04
db $0, "!", $57
-INCBIN "baserom.gbc",$94b07,$0
-
INCLUDE "text/mapRedsHouse1F.tx"
INCLUDE "text/mapBluesHouse.tx"
@@ -24321,8 +31347,13 @@ _SchoolText2: ; 0x95d40
db "the blackboard", $55
db "carefully!", $57
-_ViridianHouseText1:
-INCBIN "baserom.gbc",$95d71,$95dc7 - $95d71
+_ViridianHouseText1: ; 0x95d71
+ db $0, "Coming up with", $4f
+ db "nicknames is fun,", $55
+ db "but hard.", $51
+ db "Simple names are", $4f
+ db "the easiest to", $55
+ db "remember.", $57
_ViridianHouseText2: ; 0x95dc7
db $0, "My Daddy loves", $4f
@@ -24373,23 +31404,13 @@ _MuseumF2Text7: ; 0x9694b
INCBIN "baserom.gbc",$9697a,$1686
-;_ViridianHouseText1: ; 0x95d71
-; db $0, "Coming up with", $4f
-; db "nicknames is fun,", $55
-; db "but hard.", $51
-; db "Simple names are", $4f
-; db "the easiest to", $55
-; db "remember.", $57
-;
-;inc-BIN "baserom.gbc",$95dc7,$2239
-
SECTION "bank26",DATA,BANK[$26]
+
INCBIN "baserom.gbc",$98000,$984ce - $98000
_PewterHouse1Text1: ; 0x984ce
db $0, "NIDORAN: Bowbow!@@"
-
_PewterHouse1Text2: ; 0x984e1
db $0, "NIDORAN sit!", $57
@@ -24553,7 +31574,6 @@ INCBIN "baserom.gbc",$9999f,$99f72 - $9999f
_LavenderHouse1Text3: ; 0x99f72
db $0, "PSYDUCK: Gwappa!@@"
-
_LavenderHouse1Text4: ; 0x99f85
db $0, "NIDORINO: Gaoo!@@"
@@ -24656,7 +31676,6 @@ _VermilionHouse1Text1: ; 0x9c449
_VermilionHouse1Text2: ; 0x9c488
db $0, "PIDGEY: Kurukkoo!@@"
-
_VermilionHouse1Text3: ; 0x9c49c
db $0, "Dear PIPPI, I hope", $4f
db "to see you soon.", $51
@@ -24791,7 +31810,7 @@ _CeladonMart4Text4: ; 0x9cb56
INCBIN "baserom.gbc",$9cbb5,$9cd97 - $9cbb5
-_CeladonMart5Text1: ; 0x9cd97
+_CeladonMartRoofText1: ; 0x9cd97
db $0, "My sister is a", $4f
db "trainer, believe", $55
db "it or not.", $51
@@ -24801,7 +31820,7 @@ _CeladonMart5Text1: ; 0x9cd97
INCBIN "baserom.gbc",$9cdee,$9ce50 - $9cdee
-_CeladonMart5Text6: ; 0x9ce50
+_CeladonMartRoofText6: ; 0x9ce50
db $0, "ROOFTOP SQUARE:", $4f
db "VENDING MACHINES", $57
@@ -24810,7 +31829,6 @@ INCBIN "baserom.gbc",$9ce72,$9ceee - $9ce72
_CeladonMansion1Text1: ; 0x9ceee
db $0, "MEOWTH: Meow!@@"
-
_CeladonMansion1Text2: ; 0x9cefe
db $0, "My dear #MON", $4f
db "keep me company.", $51
@@ -24821,12 +31839,10 @@ _CeladonMansion1Text3: ; 0x9cf3c
db $0, "CLEFAIRY: Pi", $4f
db "pippippi!@@"
-
_CeladonMansion1Text4: ; 0x9cf55
db $0, "NIDORAN: Kya", $4f
db "kyaoo!@@"
-
_CeladonMansion1Text5: ; 0x9cf6b
db $0, "CELADON MANSION", $4f
db "Manager's Suite", $57
@@ -24934,7 +31950,7 @@ _CeladonGameCornerText8: ; 0x9dc06
INCBIN "baserom.gbc",$9dc33,$9ddff - $9dc33
-_CeladonHouseText1: ; 0x9ddff
+_CeladonMart5Text1: ; 0x9ddff
db $0, "#MON ability", $4f
db "enhancers can be", $55
db "bought only here.", $51
@@ -24944,7 +31960,7 @@ _CeladonHouseText1: ; 0x9ddff
db "Use CARBOS to", $4f
db "increase SPEED.", $57
-_CeladonHouseText2: ; 0x9de79
+_CeladonMart5Text2: ; 0x9de79
db $0, "I'm here for", $4f
db "#MON ability", $55
db "enhancers.", $51
@@ -24953,7 +31969,7 @@ _CeladonHouseText2: ; 0x9de79
db "IRON increases", $4f
db "DEFENSE!", $57
-_CeladonHouseText5: ; 0x9ded6
+_CeladonMart5Text5: ; 0x9ded6
db $0, "5F: DRUG STORE", $57
_CeladonPrizeRoomText1: ; 0x9dee6
@@ -25170,7 +32186,7 @@ _Lab3Text5: ; 0xa10d8
INCBIN "baserom.gbc",$a10e8,$a12de - $a10e8
-_CinnabarPokecenterText2:
+_CinnabarPokecenterText2:
_CinnabarPokecenterText1: ; 0xa12de
db $0, "You can cancel", $4f
db "evolution.", $51
@@ -25267,7 +32283,6 @@ _SaffronHouse1Text1: ; 0xa2305
_SaffronHouse1Text2: ; 0xa2352
db $0, "PIDGEY: Kurukkoo!@@"
-
_SaffronHouse1Text3: ; 0xa2366
db $0, "The COPYCAT is", $4f
db "cute! I'm getting", $55
@@ -25489,7 +32504,7 @@ _CeruleanCityText17: ; 0xa5445
INCBIN "baserom.gbc",$a5482,$a5506 - $a5482
-_LavendarTownText2: ; 0xa5506
+_LavenderTownText2: ; 0xa5506
db $0, "This town is known", $4f
db "as the grave site", $55
db "of #MON.", $51
@@ -25497,7 +32512,7 @@ _LavendarTownText2: ; 0xa5506
db "are held in", $55
db "#MON TOWER.", $57
-_LavendarTownText3: ; 0xa555f
+_LavenderTownText3: ; 0xa555f
db $0, "GHOSTs appeared", $4f
db "in #MON TOWER.", $51
db "I think they're", $4f
@@ -25505,22 +32520,22 @@ _LavendarTownText3: ; 0xa555f
db "#MON that the", $55
db "ROCKETs killed.", $57
-_LavendarTownText4: ; 0xa55bb
+_LavenderTownText4: ; 0xa55bb
db $0, "LAVENDER TOWN", $4f
db "The Noble Purple", $55
db "Town", $57
-_LavendarTownText5: ; 0xa55e0
+_LavenderTownText5: ; 0xa55e0
db $0, "New SILPH SCOPE!", $51
db "Make the Invisible", $4f
db "Plain to See!", $51
db "SILPH CO.", $57
-_LavendarTownText8: ; 0xa561d
+_LavenderTownText8: ; 0xa561d
db $0, "LAVENDER VOLUNTEER", $4f
db "#MON HOUSE", $57
-_LavendarTownText9: ; 0xa563c
+_LavenderTownText9: ; 0xa563c
db $0, "May the Souls of", $4f
db "#MON Rest Easy", $55
db "#MON TOWER", $57
@@ -25621,7 +32636,6 @@ _CeladonCityText7: ; 0xa5c30
db $0, "POLIWRATH: Ribi", $4f
db "ribit!@@"
-
_CeladonCityText8: ; 0xa5c49
db $0, "What are you", $4f
db "staring at?", $57
@@ -25699,7 +32713,7 @@ _FuchsiaCityText2: ; 0xa5ede
_FuchsiaCityText3: ; 0xa5f3e
db $0, "ERIK: Where's", $4f
- db "SARA? I said I'd", $55 ; XXX fix textpre.awk
+ db "SARA? I said I'd", $55
db "meet her here.", $57
_FuchsiaCityText4: ; 0xa5f6b
@@ -25820,7 +32834,6 @@ _SaffronCityText11: ; 0xa6475
_SaffronCityText12: ; 0xa64d6
db $0, "PIDGEOT: Bi bibii!@@"
-
_SaffronCityText13: ; 0xa64eb
db $0, "I saw ROCKET", $4f
db "BOSS escaping", $55
@@ -25885,8 +32898,6 @@ _SaffronCityText25: ; 0xa66f5
db "Release to be", $4f
db "determined...", $57
-INCBIN "baserom.gbc",$a6729,$0
-
_ItemUseBallText00:
db 0,"It dodged the",$4F
db "thrown BALL!",$51