diff options
author | mid-kid <esteve.varela@gmail.com> | 2020-09-13 21:41:06 +0200 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2020-09-13 21:57:24 +0200 |
commit | 3c0dd80c38d702ae2f0fc5031809cc9ed4800d84 (patch) | |
tree | 50e5de8e92aaccb59da71c497a645ed4ffb63e1e | |
parent | f58179bed21a68e9952d2984caaf0b16d9d22ff9 (diff) |
Dump bank 9 strings
-rw-r--r-- | data/data.mk | 5 | ||||
-rw-r--r-- | data/messages.txt | 1 | ||||
-rw-r--r-- | data/strings.txt | 961 | ||||
-rw-r--r-- | data/strings_pointers.asm | 243 | ||||
-rw-r--r-- | shim.sym | 1 | ||||
-rw-r--r-- | source/bank_00.asm | 4 | ||||
-rwxr-xr-x | tools/dump_string.py | 42 | ||||
-rwxr-xr-x | tools/messages.py | 61 |
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 @@ -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") |