summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/items/names.asm256
-rw-r--r--data/moves/names.asm252
-rw-r--r--main.asm8
-rw-r--r--shim.sym3
-rw-r--r--tools/dump_names.py92
5 files changed, 607 insertions, 4 deletions
diff --git a/data/items/names.asm b/data/items/names.asm
new file mode 100644
index 0000000..e4cb9cd
--- /dev/null
+++ b/data/items/names.asm
@@ -0,0 +1,256 @@
+ItemNames::
+ db "マスターボール@"
+ db "ハイパーボール@"
+ db "しようきんし@"
+ db "スーパーボール@"
+ db "モンスターボール@"
+ db "タウンマップ@"
+ db "じてんしゃ@"
+ db "つきのいし@"
+ db "どくけし@"
+ db "やけどなおし@"
+ db "こおりなおし@"
+ db "ねむけざまし@"
+ db "まひなおし@"
+ db "かいふくのくすり@"
+ db "まんたんのくすり@"
+ db "すごいキズぐすり@"
+ db "いいキズぐすり@"
+ db "キズぐすり@"
+ db "あなぬけのヒモ@"
+ db "むしよけスプレー@"
+ db "ピーピーマックス@"
+ db "ほのおのいし@"
+ db "かみなりのいし@"
+ db "みずのいし@"
+ db "しようきんし@"
+ db "マックスアップ@"
+ db "タウりン@"
+ db "ブロムへキシン@"
+ db "インドメタシン@"
+ db "しようきんし@"
+ db "りゾチウム@"
+ db "ふしぎなアメ@"
+ db "ヨクアタール@"
+ db "りーフのいし@"
+ db "しようきんし@"
+ db "きんのたま@"
+ db "ピッピにんぎょう@"
+ db "なんでもなおし@"
+ db "げんきのかけら@"
+ db "げんきのかたまり@"
+ db "エフェクトガード@"
+ db "シルバースプレー@"
+ db "ゴールドスプレー@"
+ db "クりィテカッター@"
+ db "しようきんし@"
+ db "おいしいみず@"
+ db "サイコソーダ@"
+ db "ミックスオレ@"
+ db "プラスパワー@"
+ db "しようきんし@"
+ db "ディフェンダー@"
+ db "スピーダー@"
+ db "スぺシャルアップ@"
+ db "コインケース@"
+ db "ダウジングマシン@"
+ db "ポケモンのふえ@"
+ db "がくしゅうそうち@"
+ db "ボロのつりざお@"
+ db "いいつりざお@"
+ db "しようきんし@"
+ db "すごいつりざお@"
+ db "ポイントアップ@"
+ db "ピーピーエイド@"
+ db "ピーピーりカバー@"
+ db "ピーピーエイダー@"
+ db "しんぴのはなびら@"
+ db "しろいハネ@"
+ db "どさくさのツメ@"
+ db "ちしきのたま@"
+ db "はがねのこうら@"
+ db "アップグレード@"
+ db "ふしぎないと@"
+ db "おっきなはっぱ@"
+ db "せんせいのハり@"
+ db "しようきんし@"
+ db "とがったいし@"
+ db "くろいハネ@"
+ db "とがったまえば@"
+ db "へビのぬけがら@"
+ db "でんきぶくろ@"
+ db "もうどくバり@"
+ db "おうじゃのしるし@"
+ db "ふしぎなちから@"
+ db "いのちのおふだ@"
+ db "どくのキバ@"
+ db "とうちゅうかそう@"
+ db "りゅうのキバ@"
+ db "ぎんのこな@"
+ db "あなほりのツメ@"
+ db "しようきんし@"
+ db "おまもりこばん@"
+ db "ずつうのタネ@"
+ db "はんげきのうでわ@"
+ db "まよけのおふだ@"
+ db "ふしぎなみず@"
+ db "まがったスプーン@"
+ db "こうげきバり@"
+ db "パワーりスト@"
+ db "かたいいし@"
+ db "しようきんし@"
+ db "ぷよぷよふうせん@"
+ db "ほのおのたてがみ@"
+ db "おいしいシッポ@"
+ db "アース@"
+ db "ながねぎ@"
+ db "にげあしのハネ@"
+ db "こおりのキバ@"
+ db "かせきのかけら@"
+ db "きたないゴミ@"
+ db "おっきなしんじゅ@"
+ db "おうじゃのべルト@"
+ db "おふだ@"
+ db "のろいのおふだ@"
+ db "5えんだま@"
+ db "まもりのいと@"
+ db "しげきだま@"
+ db "おちつきのみ@"
+ db "ふといホネ@"
+ db "きあいだま@"
+ db "しようきんし@"
+ db "みきりだま@"
+ db "ながいした@"
+ db "ふくびきけん@"
+ db "かわらずのいし@"
+ db "とがったツノ@"
+ db "しあわせタマゴ@"
+ db "ながいツタ@"
+ db "ははのあい@"
+ db "えんまく@"
+ db "しめったツノ@"
+ db "スケボー@"
+ db "まっかなほうせき@"
+ db "みえないカべ@"
+ db "するどいカマ@"
+ db "しようきんし@"
+ db "こおりのビキニ@"
+ db "いかずちのキバ@"
+ db "ほのおのツメ@"
+ db "2ほんのツノ@"
+ db "ごすんくぎ@"
+ db "きのみ@"
+ db "りンゴ@"
+ db "メタルコート@"
+ db "きれいなシッポ@"
+ db "みずのシッポ@"
+ db "たべのこし@"
+ db "こおりのつばさ@"
+ db "かみなりのつばさ@"
+ db "ほのおのつばさ@"
+ db "しようきんし@"
+ db "りゅうのウロコ@"
+ db "はかいのいでんし@"
+ db "こころのいし@"
+ db "ほのおのシッポ@"
+ db "かみなりのシッポ@"
+ db "せいなるはい@"
+ db "わざマシンホルダ@"
+ db "メール@"
+ db "ボールホルダ@"
+ db "どうぐ@"
+ db "だいじなどうぐ@"
+ db "どくのいし@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "しようきんし@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "しようきんし@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "しようきんし@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "みしよう@"
+ db "わざマシン01@"
+ db "わざマシン02@"
+ db "わざマシン03@"
+ db "わざマシン04@"
+ db "しようきんし@"
+ db "わざマシン05@"
+ db "わざマシン06@"
+ db "わざマシン07@"
+ db "わざマシン08@"
+ db "わざマシン09@"
+ db "わざマシン10@"
+ db "わざマシン11@"
+ db "わざマシン12@"
+ db "わざマシン13@"
+ db "わざマシン14@"
+ db "わざマシン15@"
+ db "わざマシン16@"
+ db "わざマシン17@"
+ db "わざマシン18@"
+ db "わざマシン19@"
+ db "わざマシン20@"
+ db "わざマシン21@"
+ db "わざマシン22@"
+ db "わざマシン23@"
+ db "わざマシン24@"
+ db "わざマシン25@"
+ db "わざマシン26@"
+ db "わざマシン27@"
+ db "わざマシン28@"
+ db "しようきんし@"
+ db "わざマシン29@"
+ db "わざマシン30@"
+ db "わざマシン31@"
+ db "わざマシン32@"
+ db "わざマシン33@"
+ db "わざマシン34@"
+ db "わざマシン35@"
+ db "わざマシン36@"
+ db "わざマシン37@"
+ db "わざマシン38@"
+ db "わざマシン39@"
+ db "わざマシン40@"
+ db "わざマシン41@"
+ db "わざマシン42@"
+ db "わざマシン43@"
+ db "わざマシン44@"
+ db "わざマシン45@"
+ db "わざマシン46@"
+ db "わざマシン47@"
+ db "わざマシン48@"
+ db "わざマシン49@"
+ db "わざマシン50@"
+ db "ひでんマシン01@"
+ db "ひでんマシン02@"
+ db "ひでんマシン03@"
+ db "ひでんマシン04@"
+ db "ひでんマシン05@"
+ db "ひでんマシン06@"
+ db "ひでんマシン07@"
+ db "しようきんし@"
diff --git a/data/moves/names.asm b/data/moves/names.asm
new file mode 100644
index 0000000..f73cf98
--- /dev/null
+++ b/data/moves/names.asm
@@ -0,0 +1,252 @@
+MoveNames::
+ db "はたく@"
+ db "からてチョップ@"
+ db "おうふくビンタ@"
+ db "れんぞくパンチ@"
+ db "メガトンパンチ@"
+ db "ねこにこばん@"
+ db "ほのおのパンチ@"
+ db "れいとうパンチ@"
+ db "かみなりパンチ@"
+ db "ひっかく@"
+ db "はさむ@"
+ db "ハサミギロチン@"
+ db "かまいたち@"
+ db "つるぎのまい@"
+ db "いあいぎり@"
+ db "かぜおこし@"
+ db "つばさでうつ@"
+ db "ふきとばし@"
+ db "そらをとぶ@"
+ db "しめつける@"
+ db "たたきつける@"
+ db "つるのムチ@"
+ db "ふみつけ@"
+ db "にどげり@"
+ db "メガトンキック@"
+ db "とびげり@"
+ db "まわしげり@"
+ db "すなかけ@"
+ db "ずつき@"
+ db "つのでつく@"
+ db "みだれづき@"
+ db "つのドりル@"
+ db "たいあたり@"
+ db "のしかかり@"
+ db "まきつく@"
+ db "とっしん@"
+ db "あばれる@"
+ db "すてみタックル@"
+ db "しっぽをふる@"
+ db "どくばり@"
+ db "ダブルニードル@"
+ db "ミサイルばり@"
+ db "にらみつける@"
+ db "かみつく@"
+ db "なきごえ@"
+ db "ほえる@"
+ db "うたう@"
+ db "ちょうおんぱ@"
+ db "ソニックブーム@"
+ db "かなしばり@"
+ db "ようかいえき@"
+ db "ひのこ@"
+ db "かえんほうしゃ@"
+ db "しろいきり@"
+ db "みずでっぽう@"
+ db "ハイドロポンプ@"
+ db "なみのり@"
+ db "れいとうビーム@"
+ db "ふぶき@"
+ db "サイケこうせん@"
+ db "バブルこうせん@"
+ db "オーロラビーム@"
+ db "はかいこうせん@"
+ db "つつく@"
+ db "ドりルくちばし@"
+ db "じごくぐるま@"
+ db "けたぐり@"
+ db "カウンター@"
+ db "ちきゅうなげ@"
+ db "かいりき@"
+ db "すいとる@"
+ db "メガドレイン@"
+ db "やどりぎのタネ@"
+ db "せいちょう@"
+ db "はっぱカッター@"
+ db "ソーラービーム@"
+ db "どくのこな@"
+ db "しびれごな@"
+ db "ねむりごな@"
+ db "はなびらのまい@"
+ db "いとをはく@"
+ db "りゅうのいかり@"
+ db "ほのおのうず@"
+ db "でんきショック@"
+ db "10まんボルト@"
+ db "でんじは@"
+ db "かみなり@"
+ db "いわおとし@"
+ db "じしん@"
+ db "じわれ@"
+ db "あなをほる@"
+ db "どくどく@"
+ db "ねんりき@"
+ db "サイコキネシス@"
+ db "さいみんじゅつ@"
+ db "ヨガのポーズ@"
+ db "こうそくいどう@"
+ db "でんこうせっか@"
+ db "いかり@"
+ db "テレポート@"
+ db "ナイトへッド@"
+ db "ものまね@"
+ db "いやなおと@"
+ db "かげぶんしん@"
+ db "じこさいせい@"
+ db "かたくなる@"
+ db "ちいさくなる@"
+ db "えんまく@"
+ db "あやしいひかり@"
+ db "からにこもる@"
+ db "まるくなる@"
+ db "バりアー@"
+ db "ひかりのかべ@"
+ db "くろいきり@"
+ db "りフレクター@"
+ db "きあいだめ@"
+ db "がまん@"
+ db "ゆびをふる@"
+ db "オウムがえし@"
+ db "じばく@"
+ db "タマゴばくだん@"
+ db "したでなめる@"
+ db "スモッグ@"
+ db "へドロこうげき@"
+ db "ホネこんぼう@"
+ db "だいもんじ@"
+ db "たきのぼり@"
+ db "からではさむ@"
+ db "スピードスター@"
+ db "ロケットずつき@"
+ db "とげキャノン@"
+ db "からみつく@"
+ db "ドわすれ@"
+ db "スプーンまげ@"
+ db "タマゴうみ@"
+ db "とびひざげり@"
+ db "へびにらみ@"
+ db "ゆめくい@"
+ db "どくガス@"
+ db "たまなげ@"
+ db "きゅうけつ@"
+ db "あくまのキッス@"
+ db "ゴッドバード@"
+ db "へんしん@"
+ db "あわ@"
+ db "ピヨピヨパンチ@"
+ db "キノコのほうし@"
+ db "フラッシュ@"
+ db "サイコウェーブ@"
+ db "はねる@"
+ db "とける@"
+ db "クラブハンマー@"
+ db "だいばくはつ@"
+ db "みだれひっかき@"
+ db "ホネブーメラン@"
+ db "ねむる@"
+ db "いわなだれ@"
+ db "ひっさつまえば@"
+ db "かくばる@"
+ db "テクスチャー@"
+ db "トライアタック@"
+ db "いかりのまえば@"
+ db "きりさく@"
+ db "みがわり@"
+ db "わるあがき@"
+ db "スケッチ@"
+ db "トりプルキック@"
+ db "どろぼう@"
+ db "クモのす@"
+ db "こころのめ@"
+ db "あくむ@"
+ db "かえんぐるま@"
+ db "いびき@"
+ db "クギをうつ@"
+ db "じたばた@"
+ db "テクスチャー2@"
+ db "こばんなげ@"
+ db "わたほうし@"
+ db "きしかいせい@"
+ db "うらみ@"
+ db "こなゆき@"
+ db "まもる@"
+ db "マッハパンチ@"
+ db "こわいかお@"
+ db "だましうち@"
+ db "てんしのキッス@"
+ db "はらだいこ@"
+ db "へドロばくだん@"
+ db "どろかけ@"
+ db "オクタンほう@"
+ db "まきびし@"
+ db "でんじほう@"
+ db "みやぶる@"
+ db "みちづれ@"
+ db "ほろびのうた@"
+ db "シンクロ@"
+ db "みきり@"
+ db "ホネホネロック@"
+ db "ロックオン@"
+ db "げきりん@"
+ db "すなあらし@"
+ db "ギガドレイン@"
+ db "こらえる@"
+ db "あまえる@"
+ db "ころがる@"
+ db "みねうち@"
+ db "いばる@"
+ db "ミルクのみ@"
+ db "スパーク@"
+ db "れんぞくぎり@"
+ db "はがねのつばさ@"
+ db "ストーカー@"
+ db "メロメロ@"
+ db "ねごと@"
+ db "すずのおと@"
+ db "おんがえし@"
+ db "プレゼント@"
+ db "やつあたり@"
+ db "しんぴのまもり@"
+ db "いたみわけ@"
+ db "せいなるほのお@"
+ db "マグニチュード@"
+ db "ばくれつパンチ@"
+ db "メガホーン@"
+ db "りゅうのいぶき@"
+ db "バトンタッチ@"
+ db "アンコール@"
+ db "おいうち@"
+ db "こうそくスピン@"
+ db "えさをまく@"
+ db "アイアンテール@"
+ db "いしあたま@"
+ db "あてみなげ@"
+ db "あさのひざし@"
+ db "こうごうせい@"
+ db "つきのひかり@"
+ db "めざめるパワー@"
+ db "クロスカッター@"
+ db "たつまき@"
+ db "あまごい@"
+ db "にほんばれ@"
+ db "?@"
+ db "?@"
+ db "?@"
+ db "ひっこぬく@"
+ db "かぜにのる@"
+ db "みずあそび@"
+ db "てつわん@"
+ db "ひかりゴケ@"
+ db "うずしお@"
+ db "とびはねる@"
diff --git a/main.asm b/main.asm
index 56df9bd..410a911 100644
--- a/main.asm
+++ b/main.asm
@@ -38,6 +38,9 @@ MainMenuStrings: ; 01:5428
db "じかんセット@"
; 01:5457
+SECTION "ItemNames", ROMX[$6FEC],BANK[$01]
+INCLUDE "data/items/names.asm"
+
SECTION "Mon Nest Icon", ROMX[$4A0F], BANK[$02]
PokedexNestIconGFX::
INCBIN "gfx/pokegear/dexmap_nest_icon.1bpp"
@@ -172,7 +175,7 @@ INCBIN "gfx/tilesets/tileset_0c.2bpp"
SECTION "Type Matchups", ROMX[$506D],BANK[$0D]
INCLUDE "data/types/type_matchups.asm"
-SECTION "TrainerClassNames", ROMX[$4D90],BANK[$E]
+SECTION "TrainerClassNames", ROMX[$4D90],BANK[$0E]
INCLUDE "data/trainers/class_names.asm"
INCLUDE "data/trainers/parties.asm"
@@ -180,6 +183,9 @@ INCLUDE "data/trainers/parties.asm"
SECTION "Alphabetical Pokedex Order", ROMX[$4943],BANK[$10]
INCLUDE "data/pokemon/dex_order_alpha.asm"
+SECTION "MoveNames", ROMX[$52A1],BANK[$10]
+INCLUDE "data/moves/names.asm"
+
SECTION "Evolutions and Attacks", ROMX[$6493],BANK[$10]
INCLUDE "data/pokemon/evos_attacks.asm"
diff --git a/shim.sym b/shim.sym
index 8293946..93ab5f4 100644
--- a/shim.sym
+++ b/shim.sym
@@ -60,7 +60,6 @@
00:3E32 Unk_3E32 ; What the f*** is this???
01:53cc MainMenu
-01:6FEC ItemNames
02:4856 DecompTownMapTilemap
02:48da DecompTownMapTilemap.tilemap ; compressed
@@ -78,8 +77,6 @@
0e:4ba0 LoadTrainerClassName.got_name
0e:4ba9 LoadTrainerClass
-10:52A1 MoveNames
-
14:6D75 PokemonNames
23:4349 OverworldFadeOut
diff --git a/tools/dump_names.py b/tools/dump_names.py
new file mode 100644
index 0000000..bd2078e
--- /dev/null
+++ b/tools/dump_names.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+
+import sys, os, io
+
+def parse_int(s):
+ s = s.strip()
+ if s.startswith('$'):
+ return int(s[1:], 16)
+ if s.startswith('%'):
+ return int(s[1:], 2)
+ return int(s)
+
+def parse_string(s):
+ # assumes strings are literal, no STRCAT() etc
+ return s.strip('" ')
+
+def strip_comment(s):
+ # assumes ";" is not in the charmap
+ return s.split(';')[0].rstrip()
+
+def get_project_dir():
+ script_path = os.path.realpath(__file__)
+ script_dir = os.path.dirname(script_path)
+ project_dir = os.path.join(script_dir, '..')
+ return os.path.normpath(project_dir)
+
+def get_charmap_path():
+ project_dir = get_project_dir()
+ return os.path.join(project_dir, 'charmap.asm')
+
+def get_baserom_path():
+ project_dir = get_project_dir()
+ return os.path.join(project_dir, 'baserom.gb')
+
+def read_charmap():
+ charmap_path = get_charmap_path()
+ charmap = {}
+ with io.open(charmap_path, 'r', encoding='utf-8') as f:
+ lines = f.readlines()
+ for line in lines:
+ line = strip_comment(line).lstrip()
+ if not line.startswith('charmap '):
+ continue
+ char, value = line[len('charmap '):].rsplit(',', 1)
+ char = parse_string(char)
+ value = parse_int(value)
+ charmap[value] = char
+ return charmap
+
+def dump_strings(data):
+ charmap = read_charmap()
+ ss = []
+ chars = []
+ for v in data:
+ if v in charmap:
+ c = charmap[v]
+ chars.append(c)
+ else:
+ if chars:
+ ss.append('"%s"' % ''.join(chars))
+ chars = []
+ ss.append('$%02x' % v)
+ if v == 0x50:
+ if chars:
+ ss.append('"%s"' % ''.join(chars))
+ chars = []
+ print '\tdb %s' % ', '.join(ss)
+ ss = []
+ if ss:
+ print '\tdb %s' % ', '.join(ss)
+
+def read_data(bank, address, n):
+ offset = bank * 0x4000 + address - 0x4000
+ baserom_path = get_baserom_path()
+ with open(baserom_path, 'rb') as f:
+ f.seek(offset)
+ data = []
+ i = 0
+ while i < n:
+ c = f.read(1)
+ v = ord(c)
+ if v == 0x50:
+ i += 1
+ data.append(v)
+ return data
+
+#data = read_data(0x0E, 0x4D90, 64) # TrainerClassNames
+#data = read_data(0x01, 0x6FEC, 255) # ItemNames
+#data = read_data(0x10, 0x52A1, 251) # MoveNames
+data = read_data(0x14, 0x6D75, 251) # PokemonNames
+
+dump_strings(data)