diff --git a/const.py b/const.py index fb5c26b..98eef9d 100644 --- a/const.py +++ b/const.py @@ -36,48 +36,78 @@ Glyphs_JP[0xD2] = '。' Glyphs_JP[0xE3] = '[洋剣]' Glyphs_JP[0xE7:0xF0] = ['[刂]', '[槍]', '[鉞]', '[刀]', '[棒]', '[杖]', '[弓]', '♪', '[鞭]'] Glyphs_JP2 = list(Glyphs_JP) # Japanese glyphs using the dakuten encoding -Glyphs_JP2[0x20:0x52] = [ +Glyphs_JP2[0x20:0x53] = [ 'バ','ば','ビ','び', 'ブ','ぶ','ベ','べ', 'ボ','ぼ','ガ','が', 'ギ','ぎ','グ','ぐ', # 0x20 'ゲ','げ','ゴ','ご', 'ザ','ざ','ジ','じ', 'ズ','ず','ゼ','ぜ', 'ゾ','ぞ','ダ','だ', # 0x30 - 'ヂ','ぢ','ヅ','づ', 'デ','で','ド','ど', # 0x40-0x48 - 'パ','ぱ','ピ','ぴ', 'プ','ぷ','ペ','ぺ', 'ポ','ぽ'] # 0x48-0x52 + 'ヂ','ぢ','ヅ','づ', 'デ','で','ド','ど', 'ヴ', # 0x40-0x49 + 'パ','ぱ','ピ','ぴ', 'プ','ぷ','ペ','ぺ', 'ポ','ぽ'] # 0x49-0x53 Glyphs_JP_large = list(Glyphs_JP2) # Large glyphs are subtly different again Glyphs_JP_large[0xC7] = '⋯' Glyphs_JP_large[0xE0:0xEB] = ['←','→','+','、', '◯', '『', 'F', '°C', '・', '(', ')'] Glyphs_JP_large[0xFF] = ' ' Glyphs_Kanji1 = ( # TODO: finish this - '王','行','力','様', '飛','世','界','封', '入','城','竜','士', '船','印','海','父', # 0x000 - '人','見','魔','物', '大',' ',' ','何', ' ',' ',' ','手', '言',' ',' ',' ', # 0x010 - ' ','心','間',' ', '風',' ',' ',' ', ' ',' ',' ','兵', '火',' ',' ',' ', # 0x020 - ' ',' ',' ',' ', ' ','女',' ',' ', '地',' ',' ',' ', ' ',' ',' ',' ', # 0x030 - ' ',' ',' ','水', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ','一',' ',' ', # 0x040 - ' ',' ','神',' ', ' ',' ','殿',' ', ' ',' ',' ',' ', ' ','子',' ',' ', # 0x050 - ' ',' ','書',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x060 - ' ',' ','階',' ', ' ',' ',' ',' ', ' ',' ','土',' ', ' ',' ',' ',' ', # 0x070 + '王', '行', '力', '様', '飛', '世', '界', '封', # 0x000 + '入', '城', '竜', '士', '船', '印', '海', '父', # 0x008 + '人', '見', '魔', '物', '大', '者', ' ', '何', # 0x010 + ' ', ' ', ' ', '手', '言', '石', '守', ' ', # 0x018 + '無', '心', '間', '前', '風', ' ', '私', ' ', # 0x020 + ' ', '武', '器', '兵', '火', '使', '中', '急', # 0x028 + '時', '森', '来', '砂', '動', '女', ' ', ' ', # 0x030 + '地', ' ', ' ', ' ', '上', ' ', ' ', ' ', # 0x038 - ' ',' ',' ',' ', ' ',' ','古','図', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x080 - ' ',' ',' ',' ', ' ','下',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x090 - '願',' ',' ',' ', ' ',' ',' ','舘', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x0A0 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ','運','河',' ', # 0x0B0 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ','少',' ',' ', # 0x0C0 - ' ',' ',' ',' ', ' ',' ',' ','代', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x0D0 - ' ',' ',' ',' ', ' ','博',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x0E0 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x0F0 + '思', '持', '変', '水', '塔', ' ', ' ', ' ', # 0x040 + ' ', ' ', ' ', ' ', ' ', '一', ' ', ' ', # 0x048 + '聞', '械', '神', '流', ' ', ' ', '町', '殿', # 0x050 + ' ', '空', ' ', '村', ' ', '子', '格', '納', # 0x058 + '伝', '消', '書', '長', ' ', ' ', '所', '場', # 0x060 + ' ', '北', ' ', ' ', ' ', ' ', '詩', '吟', # 0x068 + '落', '自', '階', ' ', ' ', ' ', ' ', '休', # 0x070-7 + ' ', ' ', '土', ' ', ' ', '発', ' ', ' ', # 0x078-F - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x100 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x110 - '次',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x120 - ' ',' ',' ',' ', ' ',' ',' ',' ', '元',' ',' ',' ', ' ',' ',' ',' ', # 0x130 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x140 - '炎',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x150 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x160 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x170 + '死', '国', '旅', ' ', ' ', '林', '古', '図', # 0x080 + ' ', ' ', '島', ' ', '部', ' ', ' ', ' ', # 0x088 + '防', '向', '先', ' ', ' ', '下', ' ', ' ', # 0x090 + ' ', '木', ' ', ' ', '配', ' ', ' ', ' ', # 0x098 + '願', '門', '東', '開', ' ', ' ', ' ', '舘', # 0x0A0 + '道', '身', '老', '西', ' ', '層', '第', ' ', # 0x0A8 + '光', '読', '外', ' ', ' ', ' ', '谷', ' ', # 0x0B0 + ' ', ' ', ' ', '屋', ' ', '運', '河', '聖', # 0x0B8 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ','刀',' ',' ', ' ',' ',' ',' ', # 0x180 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', # 0x190 - ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ') # 0x1A0 -Glyphs_Kanji = [g if g!=' ' else '${:03X}'.format(i) for (i,g) in enumerate(Glyphs_Kanji1)] # This is only until they are fully transcribed + '必', '南', '方', '黒', ' ', ' ', '艇', '山', # 0x0C0 + ' ', '名', ' ', ' ', ' ', '少', ' ', '倉', # 0x0C8 + '然', '的', '男', '用', '酒', ' ', ' ', '代', # 0x0D0 + ' ', '具', ' ', ' ', ' ', ' ', '庫', ' ', # 0x0D8 + '日', '窟', '砲', '広', ' ', '博', ' ', ' ', # 0x0E0 + '室', '洞', ' ', ' ', ' ', ' ', ' ', ' ', # 0x0E8 + '宝', '毒', '売', ' ', ' ', ' ', '月', ' ', # 0x0F0 + ' ', ' ', '感', '宿', ' ', ' ', '決', ' ', # 0x0F8 + + '団', '異', '初', ' ', '家', ' ', ' ', ' ', # 0x100 + '墓', ' ', '跡', '遺', '内', ' ', '教', ' ', # 0x108 + '頭', '再', '高', ' ', ' ', ' ', ' ', ' ', # 0x110 + ' ', ' ', ' ', ' ', ' ', ' ', ' ', '滝', # 0x118 + '次', '閉', '求', ' ', ' ', ' ', ' ', ' ', # 0x120 + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', # 0x128 + '役', '放', '衛', ' ', ' ', ' ', ' ', ' ', # 0x130 + '元', ' ', ' ', ' ', '遊', '頂', ' ', ' ', # 0x138 + + '追', '暗', ' ', ' ', ' ', ' ', ' ', ' ', # 0x140 + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', # 0x148 + '炎', '望', '雨', ' ', ' ', ' ', ' ', '白', # 0x150 + ' ', ' ', ' ', ' ', ' ', ' ', '三', ' ', # 0x158 + '夜', '病', '半', ' ', ' ', ' ', ' ', ' ', # 0x160 + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', # 0x168 + '薬', '弟', '経', ' ', ' ', ' ', ' ', ' ', # 0x170 + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', # 0x178 + + '宣', '告', ' ', ' ', ' ', ' ', ' ', ' ', # 0x180 + ' ', '刀', ' ', ' ', ' ', ' ', ' ', '漠', # 0x188 + '特', '胸', '永', ' ', ' ', ' ', ' ', ' ', # 0x190 + ' ', ' ', ' ', ' ', '利', ' ', ' ', ' ', # 0x198 + '紙', '胸', '平', ' ', ' ', ' ', ' ', '孤', # 0x1A0 + '溝', ' ') # 0x1A8 +Glyphs_Kanji = [g if g != ' ' else '<${:03X}>'.format(i) for (i, g) in enumerate(Glyphs_Kanji1)] # This is only until they are fully transcribed Dialogue_Macros_EN = { 0x02: [0x61, 0x7A, 0x8B, 0x8D, 0x93], # expands to Bartz (or whatever his name is) diff --git a/ff5reader.py b/ff5reader.py index f8ca06f..1289c5d 100644 --- a/ff5reader.py +++ b/ff5reader.py @@ -116,6 +116,7 @@ class FF5Reader(QMainWindow): magics = make_string_img_list(0x111C80, 6, 87) more_magics = make_string_img_list(0x111E8A, 9, 73) enemy_names = make_string_img_list(0x200050, 10, 0x180, 0x105C00, 8) + character_names = make_string_img_list(0x115500, 6, 5) job_names = make_string_img_list(0x115600, 8, 22) ability_names = make_string_img_list(0x116200, 8, 33) battle_commands = make_string_img_list(0x201150, 7, 0x60, 0x115800, 5) @@ -227,6 +228,7 @@ class FF5Reader(QMainWindow): strings_tab.addTab(make_table(imglist_headers, magics, row_labels=False), "Magics") strings_tab.addTab(make_table(imglist_headers, more_magics, row_labels=False), "More Magics") strings_tab.addTab(make_table(imglist_headers, enemy_names, row_labels=False), "Enemy Names") + strings_tab.addTab(make_table(imglist_headers, character_names, row_labels=False), "Character Names") strings_tab.addTab(make_table(imglist_headers, job_names, row_labels=False), "Job Names") strings_tab.addTab(make_table(imglist_headers, ability_names, row_labels=False), "Ability Names") strings_tab.addTab(make_table(imglist_headers, battle_commands, row_labels=False), "Battle Commands") @@ -417,7 +419,7 @@ def make_string_img_large(bytestring, macros=None, jp=False): string = "" # Because the length of the input has little bearing on the size of the image thanks to linebreaks and macros, we overprovision then clip away. max_width = 256 # This seems to check out, but the EN dialogue has linebreaks virtually everywhere anyway - max_height = 512 # I've seen up to 58 rows in EN, 36 in JP. Stay safe. + max_height = 1024 # I've seen up to 58 rows in EN, 36 in JP. Stay safe. img = QImage(max_width, max_height, QImage.Format_RGB16) img.fill(bg_color) painter = QtGui.QPainter(img)