summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/data.mk5
-rw-r--r--data/messages.txt1
-rw-r--r--data/strings.txt961
-rw-r--r--data/strings_pointers.asm243
-rw-r--r--shim.sym1
-rw-r--r--source/bank_00.asm4
-rwxr-xr-xtools/dump_string.py42
-rwxr-xr-xtools/messages.py61
8 files changed, 1284 insertions, 34 deletions
diff --git a/data/data.mk b/data/data.mk
index a756981..fa8f188 100644
--- a/data/data.mk
+++ b/data/data.mk
@@ -8,3 +8,8 @@ data += $(dir_build)/data/messages.asm
objects += $(dir_build)/data/messages.o
$(dir_build)/data/messages.asm: data/charmap.txt data/messages.txt | $$(dir $$@)
./tools/messages.py $^ > $@
+
+data += $(dir_build)/data/strings.asm
+objects += $(dir_build)/data/strings.o
+$(dir_build)/data/strings.asm: data/charmap.txt data/strings.txt | $$(dir $$@)
+ ./tools/messages.py $^ > $@
diff --git a/data/messages.txt b/data/messages.txt
index d46880e..4ff0866 100644
--- a/data/messages.txt
+++ b/data/messages.txt
@@ -281,6 +281,7 @@ GAMEOVERになるかも
# Empty
[message_02_693c]
+{}
[tutorial_message_04]
ただしくけずることが できたら{TX_LF}
diff --git a/data/strings.txt b/data/strings.txt
new file mode 100644
index 0000000..f03063c
--- /dev/null
+++ b/data/strings.txt
@@ -0,0 +1,961 @@
+.org 09:41e0
+
+[string_09_41e0]
+.val 99
+ポケモンずかん
+
+[string_09_41f3]
+.val 105
+タウンマップ
+
+[string_09_4204]
+.val 99
+スロットマシーン
+
+[string_09_4219]
+.val 104
+ふしぎなあめ
+
+[string_09_422a]
+.val 111
+パソコン
+
+[string_09_4237]
+.val 98
+むしよけスプレー
+
+[string_09_424c]
+.val 101
+シルフスコープ
+
+[string_09_425f]
+.val 98
+ピッピにんぎょう
+
+[string_09_4274]
+.val 103
+きんのいれば
+
+[string_09_4285]
+.val 100
+プリンのマイク
+
+[string_09_4298]
+.val 99
+すごいつりざお
+
+[string_09_42ab]
+.val 100
+ポケモンのふえ
+
+[string_09_42be]
+.val 112
+ふうせん
+
+[string_09_42cb]
+.val 110
+じてんしゃ
+
+[string_09_42da]
+.val 116
+ぼうし
+
+[string_09_42e5]
+.val 111
+ディグダ
+
+[string_09_42f2]
+.val 116
+ゴース
+
+[string_09_42fd]
+.val 109
+オムナイト
+
+[string_09_430c]
+.val 109
+ベトベトン
+
+[string_09_431b]
+.val 116
+カブト
+
+[string_09_4326]
+.val 113
+コラッタ
+
+[string_09_4333]
+.val 116
+プリン
+
+[string_09_433e]
+.val 113
+マンキー
+
+[string_09_434b]
+.val 117
+ヤドン
+
+[string_09_4356]
+.val 114
+ニョロモ
+
+[string_09_4363]
+.val 108
+パラセクト
+
+[string_09_4372]
+.val 111
+コンパン
+
+[string_09_437f]
+.val 113
+ニョロゾ
+
+[string_09_438c]
+.val 111
+ハクリュー
+
+[string_09_439b]
+.val 110
+リザードン
+
+[string_09_43aa]
+.val 114
+ラッキー
+
+[string_09_43b7]
+.val 111
+ポリゴン
+
+[string_09_43c4]
+.val 111
+ゲンガー
+
+[string_09_43d1]
+.val 112
+メタモン
+
+[string_09_43de]
+.val 107
+マダツボミ
+
+[string_09_43ed]
+.val 113
+ゴースト
+
+[string_09_43fa]
+.val 113
+ドガース
+
+[string_09_4407]
+.val 112
+カイロス
+
+[string_09_4414]
+.val 114
+タッツー
+
+[string_09_4421]
+.val 110
+ニドラン♀
+
+[string_09_4430]
+.val 110
+ミニリュウ
+
+[string_09_443f]
+.val 113
+ウツドン
+
+[string_09_444c]
+.val 108
+ヒトデマン
+
+[string_09_445b]
+.val 108
+ダグトリオ
+
+[string_09_446a]
+.val 107
+フシギバナ
+
+[string_09_4479]
+.val 113
+スリープ
+
+[string_09_4486]
+.val 114
+シードラ
+
+[string_09_4493]
+.val 108
+ニドラン♂
+
+[string_09_44a2]
+.val 112
+プクリン
+
+[string_09_44af]
+.val 113
+ブーバー
+
+[string_09_44bc]
+.val 108
+フシギソウ
+
+[string_09_44cb]
+.val 113
+コクーン
+
+[string_09_44d8]
+.val 117
+ピッピ
+
+[string_09_44e3]
+.val 107
+オニスズメ
+
+[string_09_44f2]
+.val 111
+スターミー
+
+[string_09_4501]
+.val 113
+ズバット
+
+[string_09_450e]
+.val 108
+ビリリダマ
+
+[string_09_451d]
+.val 108
+パルシェン
+
+[string_09_452c]
+.val 114
+ナッシー
+
+[string_09_4539]
+.val 107
+コイキング
+
+[string_09_4548]
+.val 111
+パウワウ
+
+[string_09_4555]
+.val 109
+シェルダー
+
+[string_09_4564]
+.val 114
+ニャース
+
+[string_09_4571]
+.val 109
+オニドリル
+
+[string_09_4580]
+.val 113
+ビードル
+
+[string_09_458d]
+.val 116
+コイル
+
+[string_09_4598]
+.val 109
+ストライク
+
+[string_09_45a7]
+.val 116
+ロコン
+
+[string_09_45b2]
+.val 109
+トランセル
+
+[string_09_45c1]
+.val 109
+モルフォン
+
+[string_09_45d0]
+.val 113
+エレブー
+
+[string_09_45dd]
+.val 109
+モンジャラ
+
+[string_09_45ec]
+.val 110
+トサキント
+
+[string_09_45fb]
+.val 109
+ニドクイン
+
+[string_09_460a]
+.val 109
+ギャラドス
+
+[string_09_4619]
+.val 108
+ペルシアン
+
+[string_09_4628]
+.val 111
+ドードリオ
+
+[string_09_4637]
+.val 108
+サンダース
+
+[string_09_4646]
+.val 107
+ゴルダック
+
+[string_09_4655]
+.val 110
+バリヤード
+
+[string_09_4664]
+.val 109
+バタフリー
+
+[string_09_4673]
+.val 112
+ゴローン
+
+[string_09_4680]
+.val 117
+ラッタ
+
+[string_09_468b]
+.val 110
+フーディン
+
+[string_09_469a]
+.val 112
+ガルーラ
+
+[string_09_46a7]
+.val 108
+クサイハナ
+
+[string_09_46b6]
+.val 113
+ポニータ
+
+[string_09_46c3]
+.val 111
+ニドリーノ
+
+[string_09_46d2]
+.val 108
+ニドキング
+
+[string_09_46e1]
+.val 109
+カメックス
+
+[string_09_46f0]
+.val 108
+オコリザル
+
+[string_09_46ff]
+.val 110
+ゴーリキー
+
+[string_09_470e]
+.val 109
+ギャロップ
+
+[string_09_471d]
+.val 109
+ベトベター
+
+[string_09_472c]
+.val 113
+イワーク
+
+[string_09_4739]
+.val 110
+カイリキー
+
+[string_09_4748]
+.val 109
+ラフレシア
+
+[string_09_4757]
+.val 115
+パラス
+
+[string_09_4762]
+.val 112
+ラプラス
+
+[string_09_476f]
+.val 107
+フシギダネ
+
+[string_09_477e]
+.val 110
+ワンリキー
+
+[string_09_478d]
+.val 109
+レアコイル
+
+[string_09_479c]
+.val 107
+アズマオウ
+
+[string_09_47ab]
+.val 110
+ゼニガメ
+
+[string_09_47b8]
+.val 111
+カイリュー
+
+[string_09_47c7]
+.val 109
+オムスター
+
+[string_09_47d6]
+.val 113
+ガーディ
+
+[string_09_47e3]
+.val 109
+シャワーズ
+
+[string_09_47f2]
+.val 112
+カモネギ
+
+[string_09_47ff]
+.val 113
+スピアー
+
+[string_09_480c]
+.val 109
+ゴローニャ
+
+[string_09_481b]
+.val 109
+ブースター
+
+[string_09_482a]
+.val 112
+ヒトカゲ
+
+[string_09_4837]
+.val 115
+クラブ
+
+[string_09_4842]
+.val 112
+カラカラ
+
+[string_09_484f]
+.val 110
+アーボック
+
+[string_09_485e]
+.val 109
+サイホーン
+
+[string_09_486d]
+.val 109
+キュウコン
+
+[string_09_487c]
+.val 115
+ケーシィ
+
+[string_09_4889]
+.val 111
+ミュウツー
+
+[string_09_4898]
+.val 113
+サイドン
+
+[string_09_48a5]
+.val 109
+ライチュウ
+
+[string_09_48b4]
+.val 108
+ケンタロス
+
+[string_09_48c3]
+.val 109
+サワムラー
+
+[string_09_48d2]
+.val 113
+ピクシー
+
+[string_09_48df]
+.val 107
+ベロリンガ
+
+[string_09_48ee]
+.val 112
+イーブイ
+
+[string_09_48fb]
+.val 109
+ピカチュウ
+
+[string_09_490a]
+.val 110
+キャタピー
+
+[string_09_4919]
+.val 110
+ニドリーナ
+
+[string_09_4928]
+.val 110
+ガラガラ
+
+[string_09_4935]
+.val 109
+ウインディ
+
+[string_09_4944]
+.val 108
+ユンゲラー
+
+[string_09_4953]
+.val 110
+ウツボット
+
+[string_09_4962]
+.val 110
+ファイヤー
+
+[string_09_4971]
+.val 115
+ドードー
+
+[string_09_497e]
+.val 110
+ルージュラ
+
+[string_09_498d]
+.val 109
+ゴルバット
+
+[string_09_499c]
+.val 108
+サンドパン
+
+[string_09_49ab]
+.val 108
+ドククラゲ
+
+[string_09_49ba]
+.val 111
+ピジョット
+
+[string_09_49c9]
+.val 112
+ジュゴン
+
+[string_09_49d6]
+.val 108
+キングラー
+
+[string_09_49e5]
+.val 111
+カビゴン
+
+[string_09_49f2]
+.val 112
+タマタマ
+
+[string_09_49ff]
+.val 108
+マタドガス
+
+[string_09_4a0e]
+.val 108
+マルマイン
+
+[string_09_4a1d]
+.val 116
+プテラ
+
+[string_09_4a28]
+.val 113
+カメール
+
+[string_09_4a35]
+.val 110
+フリーザー
+
+[string_09_4a44]
+.val 109
+エビワラー
+
+[string_09_4a53]
+.val 113
+ヤドラン
+
+[string_09_4a60]
+.val 113
+ピジョン
+
+[string_09_4a6d]
+.val 110
+スリーパー
+
+[string_09_4a7c]
+.val 108
+カブトプス
+
+[string_09_4a8b]
+.val 117
+サンド
+
+[string_09_4a96]
+.val 117
+アーボ
+
+[string_09_4aa1]
+.val 109
+ニョロボン
+
+[string_09_4ab0]
+.val 114
+リザード
+
+[string_09_4abd]
+.val 112
+コダック
+
+[string_09_4aca]
+.val 108
+ナゾノクサ
+
+[string_09_4ad9]
+.val 108
+メノクラゲ
+
+[string_09_4ae8]
+.val 116
+ポッポ
+
+[string_09_4af3]
+.val 107
+イシツブテ
+
+[string_09_4b02]
+.val 112
+サンダー
+
+[string_09_4b0f]
+.val 118
+ミュウ
+
+[string_09_4b1a]
+.val 113
+トゲピー
+
+[string_09_4b27]
+.val 113
+ゴースト
+
+[string_09_4b34]
+.val 96
+ミュウとミュウツー
+
+[string_09_4b4b]
+.val 110
+にらめっこ
+
+[string_09_4b5a]
+.val 89
+ラプラスとピカチュウ
+
+[string_09_4b73]
+.val 94
+なみのりピカチュウ
+
+[string_09_4b8a]
+.val 87
+スターミーとヒトデマン
+
+[string_09_4ba5]
+.val 102
+パウワウショー
+
+[string_09_4bb8]
+.val 94
+たまのりピカチュウ
+
+[string_09_4bcf]
+.val 95
+つみきとポリゴン
+
+[string_09_4be4]
+.val 108
+こいのぼり
+
+[string_09_4bf3]
+.val 95
+クラブとおにぎり
+
+[string_09_4c08]
+.val 116
+コイル
+
+[string_09_4c13]
+.val 96
+へんしんメタモン
+
+[string_09_4c28]
+.val 86
+ひけしのゼニガメだん
+
+[string_09_4c41]
+.val 99
+ピジョットおやこ
+
+[string_09_4c56]
+.val 94
+おてだまバリヤード
+
+[string_09_4c6d]
+.val 90
+ヒトカゲとゼニガメ
+
+[string_09_4c84]
+.val 89
+カイロスとトランセル
+
+[string_09_4c9d]
+.val 113
+おひるね
+
+[string_09_4caa]
+.val 96
+いつものコダック
+
+[string_09_4cbf]
+.val 93
+しあわせのひととき
+
+[string_09_4cd6]
+.val 95
+いっしょにたべよう
+
+[string_09_4ced]
+.val 98
+ピッピとピクシー
+
+[string_09_4d02]
+.val 93
+おえかきピカチュウ
+
+[string_09_4d19]
+.val 113
+あめふり
+
+[string_09_4d26]
+.val 107
+うでずもう
+
+[string_09_4d35]
+.val 91
+タッツーとシェルダー
+
+[string_09_4d4e]
+.val 101
+おうふくビンタ
+
+[string_09_4d61]
+.val 101
+うたってプリン
+
+[string_09_4d74]
+.val 102
+きねんしゃしん
+
+[string_09_4d87]
+.val 113
+しょうぶ
+
+[string_09_4d94]
+.val 106
+かいすいよく
+
+[string_09_4da5]
+.val 109
+バタフリー
+
+[string_09_4db4]
+.val 102
+でんきショック
+
+[string_09_4dc7]
+.val 96
+おおぐいたいけつ
+
+[string_09_4ddc]
+.val 107
+ゆきあそび
+
+[string_09_4deb]
+.val 100
+かせきポケモン
+
+[string_09_4dfe]
+.val 105
+もぐらたたき
+
+[string_09_4e0f]
+.val 95
+でんせつポケモン
+
+[string_09_4e24]
+.val 93
+タマタマとトゲピー
+
+[string_09_4e3b]
+.val 89
+カラカラとバタフリー
+
+[string_09_4e54]
+.val 110
+きょうそう
+
+[string_09_4e63]
+.val 93
+ヤドランとコダック
+
+[string_09_4e7a]
+.val 97
+ヤドンとヤドラン
+
+[string_09_4e8f]
+.val 97
+さるかにがっせん
+
+[string_09_4ea4]
+.val 100
+3だいポケモン
+
+[string_09_4eb7]
+.val 98
+くさいクサイハナ
+
+[string_09_4ecc]
+.val 106
+ロケットだん
+
+[string_09_4edd]
+.val 90
+ピカチュウとトゲピー
+
+[string_09_4ef6]
+.val 88
+かくれざとのポケモン
+
+[string_09_4f0f]
+.val 109
+ゆきだるま
+
+[string_09_4f1e]
+.val 98
+ピカチュウのもり
+
+[string_09_4f33]
+.val 98
+モンスターボール
+
+[string_09_4f48]
+.val 109
+ピカチュウ
+
+[string_09_4f57]
+.val 100
+ひみつのコハク
+
+[string_09_4f6a]
+.val 111
+けつばん
+
+[string_09_4f77]
+.val 111
+けつばん
+
+[string_09_4f84]
+.val 111
+けつばん
+
+[string_09_4f91]
+.val 111
+けつばん
+
+[string_09_4f9e]
+.val 111
+けつばん
+
+[string_09_4fab]
+.val 111
+けつばん
+
+[string_09_4fb8]
+.val 111
+けつばん
+
+[string_09_4fc5]
+.val 111
+けつばん
+
+[string_09_4fd2]
+.val 111
+けつばん
+
+[string_09_4fdf]
+.val 111
+けつばん
+
+[string_09_4fec]
+.val 111
+けつばん
+
+[string_09_4ff9]
+.val 111
+けつばん
+
+[string_09_5006]
+.val 111
+けつばん
+
+[string_09_5013]
+.val 111
+けつばん
+
+[string_09_5020]
+.val 111
+けつばん
+
+[string_09_502d]
+.val 111
+けつばん
+
+[string_09_503a]
+.val 111
+けつばん
+
+[string_09_5047]
+.val 111
+けつばん
diff --git a/data/strings_pointers.asm b/data/strings_pointers.asm
new file mode 100644
index 0000000..0ca1ae0
--- /dev/null
+++ b/data/strings_pointers.asm
@@ -0,0 +1,243 @@
+SECTION "strings_pointers", ROMX[$4000], BANK[$09]
+
+strings_pointers:
+ dw string_09_41e0
+ dw string_09_41f3
+ dw string_09_4204
+ dw string_09_4219
+ dw string_09_422a
+ dw string_09_4237
+ dw string_09_424c
+ dw string_09_425f
+ dw string_09_4274
+ dw string_09_4285
+ dw string_09_4298
+ dw string_09_42ab
+ dw string_09_42be
+ dw string_09_42cb
+ dw string_09_42da
+ dw string_09_42e5
+ dw string_09_42f2
+ dw string_09_42fd
+ dw string_09_430c
+ dw string_09_431b
+ dw string_09_4326
+ dw string_09_4333
+ dw string_09_433e
+ dw string_09_434b
+ dw string_09_4356
+ dw string_09_4363
+ dw string_09_4372
+ dw string_09_437f
+ dw string_09_438c
+ dw string_09_439b
+ dw string_09_43aa
+ dw string_09_43b7
+ dw string_09_43c4
+ dw string_09_43d1
+ dw string_09_43de
+ dw string_09_43ed
+ dw string_09_43fa
+ dw string_09_4407
+ dw string_09_4414
+ dw string_09_4421
+ dw string_09_4430
+ dw string_09_443f
+ dw string_09_444c
+ dw string_09_445b
+ dw string_09_446a
+ dw string_09_4479
+ dw string_09_4486
+ dw string_09_4493
+ dw string_09_44a2
+ dw string_09_44af
+ dw string_09_44bc
+ dw string_09_44cb
+ dw string_09_44d8
+ dw string_09_44e3
+ dw string_09_44f2
+ dw string_09_4501
+ dw string_09_450e
+ dw string_09_451d
+ dw string_09_452c
+ dw string_09_4539
+ dw string_09_4548
+ dw string_09_4555
+ dw string_09_4564
+ dw string_09_4571
+ dw string_09_4580
+ dw string_09_458d
+ dw string_09_4598
+ dw string_09_45a7
+ dw string_09_45b2
+ dw string_09_45c1
+ dw string_09_45d0
+ dw string_09_45dd
+ dw string_09_45ec
+ dw string_09_45fb
+ dw string_09_460a
+ dw string_09_4619
+ dw string_09_4628
+ dw string_09_4637
+ dw string_09_4646
+ dw string_09_4655
+ dw string_09_4664
+ dw string_09_4673
+ dw string_09_4680
+ dw string_09_468b
+ dw string_09_469a
+ dw string_09_46a7
+ dw string_09_46b6
+ dw string_09_46c3
+ dw string_09_46d2
+ dw string_09_46e1
+ dw string_09_46f0
+ dw string_09_46ff
+ dw string_09_470e
+ dw string_09_471d
+ dw string_09_472c
+ dw string_09_4739
+ dw string_09_4748
+ dw string_09_4757
+ dw string_09_4762
+ dw string_09_476f
+ dw string_09_477e
+ dw string_09_478d
+ dw string_09_479c
+ dw string_09_47ab
+ dw string_09_47b8
+ dw string_09_47c7
+ dw string_09_47d6
+ dw string_09_47e3
+ dw string_09_47f2
+ dw string_09_47ff
+ dw string_09_480c
+ dw string_09_481b
+ dw string_09_482a
+ dw string_09_4837
+ dw string_09_4842
+ dw string_09_484f
+ dw string_09_485e
+ dw string_09_486d
+ dw string_09_487c
+ dw string_09_4889
+ dw string_09_4898
+ dw string_09_48a5
+ dw string_09_48b4
+ dw string_09_48c3
+ dw string_09_48d2
+ dw string_09_48df
+ dw string_09_48ee
+ dw string_09_48fb
+ dw string_09_490a
+ dw string_09_4919
+ dw string_09_4928
+ dw string_09_4935
+ dw string_09_4944
+ dw string_09_4953
+ dw string_09_4962
+ dw string_09_4971
+ dw string_09_497e
+ dw string_09_498d
+ dw string_09_499c
+ dw string_09_49ab
+ dw string_09_49ba
+ dw string_09_49c9
+ dw string_09_49d6
+ dw string_09_49e5
+ dw string_09_49f2
+ dw string_09_49ff
+ dw string_09_4a0e
+ dw string_09_4a1d
+ dw string_09_4a28
+ dw string_09_4a35
+ dw string_09_4a44
+ dw string_09_4a53
+ dw string_09_4a60
+ dw string_09_4a6d
+ dw string_09_4a7c
+ dw string_09_4a8b
+ dw string_09_4a96
+ dw string_09_4aa1
+ dw string_09_4ab0
+ dw string_09_4abd
+ dw string_09_4aca
+ dw string_09_4ad9
+ dw string_09_4ae8
+ dw string_09_4af3
+ dw string_09_4b02
+ dw string_09_4b0f
+ dw string_09_4b1a
+ dw string_09_4b27
+ dw string_09_4b34
+ dw string_09_4b4b
+ dw string_09_4b5a
+ dw string_09_4b73
+ dw string_09_4b8a
+ dw string_09_4ba5
+ dw string_09_4bb8
+ dw string_09_4bcf
+ dw string_09_4be4
+ dw string_09_4bf3
+ dw string_09_4c08
+ dw string_09_4c13
+ dw string_09_4c28
+ dw string_09_4c41
+ dw string_09_4c56
+ dw string_09_4c6d
+ dw string_09_4c84
+ dw string_09_4c9d
+ dw string_09_4caa
+ dw string_09_4cbf
+ dw string_09_4cd6
+ dw string_09_4ced
+ dw string_09_4d02
+ dw string_09_4d19
+ dw string_09_4d26
+ dw string_09_4d35
+ dw string_09_4d4e
+ dw string_09_4d61
+ dw string_09_4d74
+ dw string_09_4d87
+ dw string_09_4d94
+ dw string_09_4da5
+ dw string_09_4db4
+ dw string_09_4dc7
+ dw string_09_4ddc
+ dw string_09_4deb
+ dw string_09_4dfe
+ dw string_09_4e0f
+ dw string_09_4e24
+ dw string_09_4e3b
+ dw string_09_4e54
+ dw string_09_4e63
+ dw string_09_4e7a
+ dw string_09_4e8f
+ dw string_09_4ea4
+ dw string_09_4eb7
+ dw string_09_4ecc
+ dw string_09_4edd
+ dw string_09_4ef6
+ dw string_09_4f0f
+ dw string_09_4f1e
+ dw string_09_4f33
+ dw string_09_4f48
+ dw string_09_4f57
+ dw string_09_4f6a
+ dw string_09_4f77
+ dw string_09_4f84
+ dw string_09_4f91
+ dw string_09_4f9e
+ dw string_09_4fab
+ dw string_09_4fb8
+ dw string_09_4fc5
+ dw string_09_4fd2
+ dw string_09_4fdf
+ dw string_09_4fec
+ dw string_09_4ff9
+ dw string_09_5006
+ dw string_09_5013
+ dw string_09_5020
+ dw string_09_502d
+ dw string_09_503a
+ dw string_09_5047
diff --git a/shim.sym b/shim.sym
index fab7caa..1090e7d 100644
--- a/shim.sym
+++ b/shim.sym
@@ -42,7 +42,6 @@
08:42b8 function_08_42b8
-09:4000 string_table
09:5a50 function_09_5a50
22:47e2 function_22_47e2
diff --git a/source/bank_00.asm b/source/bank_00.asm
index d1de5cb..6c4a634 100644
--- a/source/bank_00.asm
+++ b/source/bank_00.asm
@@ -1341,12 +1341,12 @@ SECTION "home_text", ROM0[$1883]
text_print::
ld a, [w_bank_rom]
push af
- ld a, BANK(string_table)
+ ld a, BANK(strings_pointers)
ld [w_bank_rom], a
ld [rROMB0], a
; Get string address
- ld hl, string_table
+ ld hl, strings_pointers
ld a, [w_text_index + 0]
ld c, a
ld a, [w_text_index + 1]
diff --git a/tools/dump_string.py b/tools/dump_string.py
index 1641944..caf361b 100755
--- a/tools/dump_string.py
+++ b/tools/dump_string.py
@@ -5,6 +5,11 @@ from charmap import parse_charmap
file = open("DMGAKVJ0.1", "rb").read()
+multistring = False
+if argv[1] == "-m":
+ argv.pop(1)
+ multistring = True
+
bank = int(argv[1], 16)
addr = int(argv[2], 16)
count = 1
@@ -28,19 +33,32 @@ for x in range(count):
if bank > 0:
addr += 0x4000
- print("[message_%02x_%04x]" % (bank, addr))
+ print("[string_%02x_%04x]" % (bank, addr))
while True:
- value = file[offset] | (file[offset + 1] << 8)
- offset += 2
+ if multistring:
+ if file[offset] == 0:
+ offset += 1
+ print("\n.db 0\n")
+ break
+ val = file[offset] | (file[offset + 1] << 8)
+ print(".dw %d" % val)
+ offset += 2
+
+ while True:
+ value = file[offset] | (file[offset + 1] << 8)
+ offset += 2
+
+ if value == 0xffff:
+ break
+ elif value == 0xfffe:
+ print()
+ continue
+
+ if value in charmap:
+ print(charmap[value], end="")
+ else:
+ print("<%02x>" % value, end="")
- if value == 0xffff:
+ if not multistring:
print("\n")
break
- elif value == 0xfffe:
- print()
- continue
-
- if value in charmap:
- print(charmap[value], end="")
- else:
- print("<%02x>" % value, end="")
diff --git a/tools/messages.py b/tools/messages.py
index 089bbdd..cb98d00 100755
--- a/tools/messages.py
+++ b/tools/messages.py
@@ -21,6 +21,9 @@ def convert_message(message):
continue
break
+ if not message:
+ return None
+
values = []
in_braces = False
constant = ""
@@ -31,12 +34,13 @@ def convert_message(message):
continue
if char == "}" and in_braces:
in_braces = False
- if constant in constants:
- values.append(constants[constant])
- elif constant in charmap:
- values.append(charmap[constant])
- else:
- err("%s: Unrecognized constant %s" % (filename, constant))
+ if constant:
+ if constant in constants:
+ values.append(constants[constant])
+ elif constant in charmap:
+ values.append(charmap[constant])
+ else:
+ err("%s: Unrecognized constant %s" % (filename, constant))
continue
if in_braces:
@@ -57,8 +61,16 @@ def convert_message(message):
values.append(0xffff)
return " dw " + ", ".join(["$%04x" % val for val in values])
-name = None
message = None
+def print_message():
+ global message
+ if message is not None:
+ text = convert_message(message)
+ if text is not None:
+ print(text)
+ message = ""
+
+has_val = False
for i, line in enumerate(open(filename)):
if i == 0 and not line.startswith(".org"):
print("SECTION \"%s\", ROMX" % filename)
@@ -67,11 +79,22 @@ for i, line in enumerate(open(filename)):
continue
if line.startswith("[") and line.endswith("]\n"):
- if name is not None or message is not None:
- print("\n%s::" % name)
- print(convert_message(message))
- name = line[1:-2]
- message = ""
+ print_message()
+ if has_val:
+ print(" db $00")
+ has_val = False
+ print("\n%s::" % line[1:-2])
+ continue
+
+ if line.startswith(".val "):
+ split = line.split(" ", 1)
+ if len(split) < 2:
+ continue
+ value = int(split[1].strip(), 0)
+
+ print_message()
+ print(" dw $%04x" % value)
+ has_val = True
continue
if line.startswith(".org "):
@@ -84,10 +107,10 @@ for i, line in enumerate(open(filename)):
bank = split[0]
addr = split[1]
- if name is not None or message is not None:
- print("\n%s::" % name)
- print(convert_message(message))
- name = None
+ print_message()
+ if has_val:
+ print(" db $00")
+ has_val = False
message = None
if i != 0:
@@ -99,6 +122,6 @@ for i, line in enumerate(open(filename)):
if message is not None:
message += line
-if name is not None and message is not None:
- print("\n%s::" % name)
- print(convert_message(message))
+print_message()
+if has_val:
+ print(" db $00")