diff options
author | Rangi <remy.oukaour+rangi@gmail.com> | 2018-05-30 16:35:43 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi@gmail.com> | 2018-05-30 16:35:43 -0400 |
commit | 0b20a757535ca11c2d57a93675a7f278f78036e1 (patch) | |
tree | 1216a15b08a6c96b776fb235b8fe710ce36a2c1c | |
parent | 20a2f81a2b0a9895f3210986584a5c1fd2083e3e (diff) |
Dump item and move names
-rw-r--r-- | data/items/names.asm | 256 | ||||
-rw-r--r-- | data/moves/names.asm | 252 | ||||
-rw-r--r-- | main.asm | 8 | ||||
-rw-r--r-- | shim.sym | 3 | ||||
-rw-r--r-- | tools/dump_names.py | 92 |
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 "とびはねる@" @@ -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" @@ -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) |