Skip to content

Commit

Permalink
fix german characters and add optional textboxes
Browse files Browse the repository at this point in the history
I feel more and more pain
  • Loading branch information
Jaybe-Games committed Jul 27, 2024
1 parent 2f41f53 commit c6f76e9
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 29 deletions.
Binary file added font_manifests/bold
Binary file not shown.
Binary file added font_manifests/regular
Binary file not shown.
7 changes: 7 additions & 0 deletions locale_base/replace_chars.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Ä
Ü
Ö
ä
ü
ö
ß
Binary file added optional/textbox clean/msgtex.txa
Binary file not shown.
Binary file added optional/textbox default/msgtex.txa
Binary file not shown.
Binary file added optional/textbox red/msgtex.txa
Binary file not shown.
Binary file modified repack/rom-repack/font/bold
Binary file not shown.
Binary file modified repack/rom-repack/font/regular
Binary file not shown.
17 changes: 17 additions & 0 deletions replace_chars.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// This script replaces unusual (non-English) characters with their Unicode values.
// Used during translations to other languages.

const fs = require('fs')

const intlCharacters = fs.readFileSync('replace_chars.txt', 'utf-8').split('\n').map(x => x.trim()).filter(x => x)

let script = fs.readFileSync('script.rb', 'utf-8')

for (const character of intlCharacters) {
const code = character.codePointAt()
const regex = new RegExp(character, 'g')
script = script.replace(regex, `@u${code}.`)
}

fs.writeFileSync('script.rb', script)

7 changes: 7 additions & 0 deletions replace_chars.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Ä
Ü
Ö
ä
ü
ö
ß
Binary file added romfs/msgtex.txa
Binary file not shown.
58 changes: 29 additions & 29 deletions script.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17014,49 +17014,49 @@ def raw_apply(snr)
s.ins 0x41, byte(0), ushort(19), 1000
s.ins 0x41, byte(0), ushort(20), 1000
s.label :addr_0x8f534
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '新規本編お茶会裏お茶会新規立ち絵テスト'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '新規 本編 お茶会 裏お茶会 新規立ち絵テスト '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8f58f, :addr_0x8f9ce, :addr_0x8fa8d, :addr_0x8fb4c, :addr_0x90454
s.label :addr_0x8f58f
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る翼羽咲翼CS追加'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る 翼 羽 咲 翼CS追加 '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8f534, :addr_0x8f5d8, :addr_0x8f87b, :addr_0x8f8c6, :addr_0x8f91c
s.label :addr_0x8f5d8
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻るStory01 Letter of BernkastelStory02 魔女たちの七夕は甘くないStory03 ゲームマスター戦人Story04 朱志香の母の日プレゼント'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る Story01 Letter of Bernkastel Story02 魔女たちの七夕は甘くない Story03 ゲームマスター戦人 Story04 朱志香の母の日プレゼント'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f58f, :addr_0x878108, :addr_0x879fdf, :addr_0x8809ad, :addr_0x88e389, :addr_0x8f68e
s.label :addr_0x8f68e
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←Story05 朱志香と恋のおまじないStory06 Memoirs of the ΛΔStory07 ある料理人の雑記Story08 勤労感謝の日の贈り物'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← Story05 朱志香と恋のおまじない Story06 Memoirs of the ΛΔ Story07 ある料理人の雑記 Story08 勤労感謝の日の贈り物'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f5d8, :addr_0x891f0d, :addr_0x897d47, :addr_0x89be9c, :addr_0x8a378a, :addr_0x8f739
s.label :addr_0x8f739
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←Story09 七姉妹のバレンタインStory10 ベアトリーチェのホワイトデーStory11 新人司祭コーネリアStory12 だれのおちゃかい?'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← Story09 七姉妹のバレンタイン Story10 ベアトリーチェのホワイトデー Story11 新人司祭コーネリア Story12 だれのおちゃかい?'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f68e, :addr_0x8ade80, :addr_0x8b881f, :addr_0x8c6721, :addr_0x8d1666, :addr_0x8f7eb
s.label :addr_0x8f7eb
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←Story13 バレンタインペーパーStory14 さくたろう、煉獄山へStory15 Arigato for 556Postscript'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← Story13 バレンタインペーパー Story14 さくたろう、煉獄山へ Story15 Arigato for 556 Postscript '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8f739, :addr_0x8d323d, :addr_0x8d8538, :addr_0x8db401, :addr_0x8e19a0
s.label :addr_0x8f87b
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る朱志香と殺人扇風機戯書No,xxx'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る 朱志香と殺人扇風機 戯書No,xxx '
s.ins 0x4a, Register.new(1), ushort(3), :addr_0x8f58f, :addr_0x8e2345, :addr_0x8ebca4
s.label :addr_0x8f8c6
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る我らの告白Last note of the golden witch'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る 我らの告白 Last note of the golden witch '
s.ins 0x4a, Register.new(1), ushort(3), :addr_0x8f58f, :addr_0x8f1923, :addr_0x90653c
s.label :addr_0x8f91c
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻るStory16 あるウィッチハンターの取材テープStory17 召喚師からの手紙Story18 魔法についての重要事項Story19 天使17歳 東シ-44a'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る Story16 あるウィッチハンターの取材テープ Story17 召喚師からの手紙 Story18 魔法についての重要事項 Story19 天使17歳 東シ-44a '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8f58f, :addr_0x92c33d, :addr_0x930995, :addr_0x932010, :addr_0x933c69
s.label :addr_0x8f9ce
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻るepisode 1episode 2episode 3episode 4'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る episode 1 episode 2 episode 3 episode 4'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f534, :addr_0x932df, :addr_0x165a31, :addr_0x23d80d, :addr_0x341bab, :addr_0x8fa32
s.label :addr_0x8fa32
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←episode 5episode 6episode 7episode 8'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← episode 5 episode 6 episode 7 episode 8 '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8f9ce, :addr_0x473ccf, :addr_0x571a45, :addr_0x67ad88, :addr_0x7640c2
s.label :addr_0x8fa8d
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻るepisode 1episode 2episode 3episode 4'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る episode 1 episode 2 episode 3 episode 4'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f534, :addr_0x1598e7, :addr_0x232f4f, :addr_0x3383f1, :addr_0x455dec, :addr_0x8faf1
s.label :addr_0x8faf1
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←episode 5episode 6episode 7episode 8'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← episode 5 episode 6 episode 7 episode 8 '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8fa8d, :addr_0x552cfe, :addr_0x670c80, :addr_0x72c6cd, :addr_0x86b53b
s.label :addr_0x8fb4c
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻るepisode 1episode 2episode 3episode 4'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '戻る episode 1 episode 2 episode 3 episode 4'
s.ins 0x4a, Register.new(1), ushort(6), :addr_0x8f534, :addr_0x1639e1, :addr_0x2395ac, :addr_0x33baa2, :addr_0x470110, :addr_0x8fbb0
s.label :addr_0x8fbb0
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '←episode 5episode 6episode 7episode 8'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '← episode 5 episode 6 episode 7 episode 8 '
s.ins 0x4a, Register.new(1), ushort(5), :addr_0x8fb4c, :addr_0x556981, :addr_0x6766d1, :addr_0x761eae, :addr_0x86ee2f
s.ins 0xc1, 0, byte(2), 0, byte(1), 260
s.ins 0x86, ushort(0), byte(0), byte(1), '@r@[MOVIE_NO0018A@]'
Expand Down Expand Up @@ -18432,7 +18432,7 @@ def raw_apply(snr)
s.ins 0xc0, -3
s.ins 0xc0, -4
s.ins 0xa0, byte(0), 'Episode1 Legend of the golden witch'
s.ins 0xa0, byte(1), 'Prologue'
s.ins 0xa0, byte(1), 'Prolog'
s.ins 0xa1
s.ins 0x4f, :addr_0x92d69, []
s.ins 0x8e, 0, 0, 10, byte(0)
Expand Down Expand Up @@ -18471,11 +18471,11 @@ def raw_apply(snr)
s.ins 0x4f, :addr_0x92d9a, [8, 2499, -369, -8]
s.ins 0x8e, 0, 0, 10, byte(0)
s.ins 0x90, 21, 0, 0, 700
s.ins 0x86, ushort(109), byte(0), byte(1), s.layout('Nanjo@r@v19/11900001."............You\'ve...@k@v19/11900002.been indulging in alcohol again, haven\'t you?"')
s.ins 0x86, ushort(109), byte(0), byte(1), s.layout('Nanjo@r@v19/11900001."............Du...@k@v19/11900002. hast wieder angefangen zu trinken, nicht wahr?"')
s.ins 0x4f, :addr_0x92d9a, [8, 2506, -369, -8]
s.ins 0x8e, 0, 0, 10, byte(0)
s.ins 0x86, ushort(110), byte(0), byte(1), s.layout('@rThe old physician let out a sigh as he removed the stethoscope.')
s.ins 0x86, ushort(111), byte(0), byte(1), s.layout('@rTwo elderly men could be seen in the dimly lit study, which was filled with dust and a sickly sweet stench.')
s.ins 0x86, ushort(110), byte(0), byte(1), s.layout('@rDer alte Arzt seufzte, als er das Stethoskop abnahm.')
s.ins 0x86, ushort(111), byte(0), byte(1), s.layout('@rZwei @u228.ltere M@u228.nner waren in dem schwach beleuchteten Arbeitszimmer zu sehen, das von Staub und einem s@u252.@u223.lichen Mief erf@u252.llt war.')
s.ins 0x8a, byte(0)
s.ins 0x83, byte(0), 10
s.ins 0x4f, :addr_0x92d69, []
Expand Down Expand Up @@ -378107,7 +378107,7 @@ def raw_apply(snr)
s.ins 0x4f, :addr_0x92d69, []
s.ins 0x4f, :addr_0x92e30, [61440]
s.ins 0x4f, :addr_0x926e2, [2, 0]
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '信用できる紫発言を探せ絶対に犯人でないのは誰?ト書きは真実を語る南條と朱志香はシロ!確実な死者をどんどん探せ9人の無実次のヒント'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '信用できる紫発言を探せ 絶対に犯人でないのは誰? ト書きは真実を語る 南條と朱志香はシロ! 確実な死者をどんどん探せ 9人の無実 次のヒント '
s.ins 0x46, byte(0), Register.new(1), 0, :addr_0x7cf59e
s.ins 0x46, byte(0), Register.new(1), 1, :addr_0x7cfda8
s.ins 0x46, byte(0), Register.new(1), 2, :addr_0x7d02bb
Expand All @@ -378116,7 +378116,7 @@ def raw_apply(snr)
s.ins 0x46, byte(0), Register.new(1), 5, :addr_0x7d18ae
s.ins 0x46, byte(0), Register.new(1), 6, :addr_0x7cf328
s.label :addr_0x7cf328
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', 'マスターキーが使えない?赤き真実に違和感?確実に6人を殺した?犯人は閉じ込められた?共犯の存在紗音は譲治以外の誰にでも殺せる次のヒント'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', 'マスターキーが使えない? 赤き真実に違和感? 確実に6人を殺した? 犯人は閉じ込められた? 共犯の存在 紗音は譲治以外の誰にでも殺せる 次のヒント '
s.ins 0x46, byte(0), Register.new(1), 0, :addr_0x7d253e
s.ins 0x46, byte(0), Register.new(1), 1, :addr_0x7d2b5c
s.ins 0x46, byte(0), Register.new(1), 2, :addr_0x7d34e5
Expand All @@ -378125,7 +378125,7 @@ def raw_apply(snr)
s.ins 0x46, byte(0), Register.new(1), 5, :addr_0x7d4dba
s.ins 0x46, byte(0), Register.new(1), 6, :addr_0x7cf405
s.label :addr_0x7cf405
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '死んだフリをした犯人がいる。〜さらにもう1人犯人がいる?譲治と真里亞はニワトリとタマゴ真里亞犯人説検証譲治犯人説検証譲治の紫発言次のヒント'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '死んだフリをした犯人がいる。〜 さらにもう1人犯人がいる? 譲治と真里亞はニワトリとタマゴ 真里亞犯人説検証 譲治犯人説検証 譲治の紫発言 次のヒント '
s.ins 0x46, byte(0), Register.new(1), 0, :addr_0x7d5396
s.ins 0x46, byte(0), Register.new(1), 1, :addr_0x7d5b76
s.ins 0x46, byte(0), Register.new(1), 2, :addr_0x7d633d
Expand All @@ -378134,12 +378134,12 @@ def raw_apply(snr)
s.ins 0x46, byte(0), Register.new(1), 5, :addr_0x7d795f
s.ins 0x46, byte(0), Register.new(1), 6, :addr_0x7cf4e6
s.label :addr_0x7cf4e6
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '大人2人、子供1人。犯人の3人は家族。子供の犯人は戦人戻る'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '大人2人、子供1人。 犯人の3人は家族。 子供の犯人は戦人 戻る '
s.ins 0x46, byte(0), Register.new(1), 0, :addr_0x7d7d0e
s.ins 0x46, byte(0), Register.new(1), 1, :addr_0x7d81e3
s.ins 0x46, byte(0), Register.new(1), 2, :addr_0x7d84f6
s.ins 0x46, byte(0), Register.new(1), 3, :addr_0x7c9ac7
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '犯人特定メイン画面に戻る'
s.ins 0x8d, ushort(0), ushort(0), ushort(1), 4095, 'NCSELECT', '犯人特定 メイン画面に戻る '
s.ins 0x46, byte(0), Register.new(1), 0, :addr_0x7d8b89
s.ins 0x46, byte(0), Register.new(1), 1, :addr_0x7c9ac7
s.label :addr_0x7cf59e
Expand Down Expand Up @@ -440913,7 +440913,7 @@ def raw_apply(snr)
s.label :addr_0x8d35ef
s.ins 0x4f, :addr_0x926e2, [22, 0]
s.label :addr_0x8d35f7
s.ins 0x8d, ushort(1), ushort(1), ushort(1), Register.new(38), 'Choice', 'LuciferLeviathanSatanBelphegorMammonBeelzebubAsmodeus'
s.ins 0x8d, ushort(1), ushort(1), ushort(1), Register.new(38), 'Choice', 'Lucifer Leviathan Satan Belphegor Mammon Beelzebub Asmodeus '
s.ins 0x4a, Register.new(1), ushort(7), :addr_0x8d3679, :addr_0x8d39ee, :addr_0x8d3d3c, :addr_0x8d40b8, :addr_0x8d43ed, :addr_0x8d473d, :addr_0x8d4ae2
s.label :addr_0x8d3679
s.ins 0xcb
Expand Down Expand Up @@ -441614,7 +441614,7 @@ def raw_apply(snr)
s.label :addr_0x8d5189
s.ins 0x4f, :addr_0x926e2, [22, 0]
s.label :addr_0x8d5191
s.ins 0x8d, ushort(8), ushort(2), ushort(1), Register.new(38), 'Choice', 'Chiester00Chiester410Chiester45Chiester556'
s.ins 0x8d, ushort(8), ushort(2), ushort(1), Register.new(38), 'Choice', 'Chiester00 Chiester410 Chiester45 Chiester556 '
s.ins 0x4a, Register.new(1), ushort(4), :addr_0x8d51f2, :addr_0x8d54d8, :addr_0x8d5823, :addr_0x8d5b7f
s.label :addr_0x8d51f2
s.ins 0x4f, :addr_0x92d9a, [8, 9044, -719, -8]
Expand Down Expand Up @@ -442023,7 +442023,7 @@ def raw_apply(snr)
s.label :addr_0x8d6218
s.ins 0x4f, :addr_0x926e2, [22, 0]
s.label :addr_0x8d6220
s.ins 0x8d, ushort(12), ushort(3), ushort(1), Register.new(38), 'Choice', 'DlanorCorneliaGertrude'
s.ins 0x8d, ushort(12), ushort(3), ushort(1), Register.new(38), 'Choice', 'Dlanor Cornelia Gertrude '
s.ins 0x4a, Register.new(1), ushort(3), :addr_0x8d6268, :addr_0x8d66f3, :addr_0x8d6a8b
s.label :addr_0x8d6268
s.ins 0x4f, :addr_0x92d9a, [8, 10027, -549, -8]
Expand Down Expand Up @@ -442392,7 +442392,7 @@ def raw_apply(snr)
s.ins 0xc3, 10, 5, byte(1), -8
s.label :addr_0x8d6ff7
s.ins 0x4f, :addr_0x926e2, [22, 0]
s.ins 0x8d, ushort(15), ushort(4), ushort(1), Register.new(38), 'Choice', 'ZeparFurfur'
s.ins 0x8d, ushort(15), ushort(4), ushort(1), Register.new(38), 'Choice', 'Zepar Furfur '
s.ins 0x4a, Register.new(1), ushort(2), :addr_0x8d7030, :addr_0x8d747a
s.label :addr_0x8d7030
s.ins 0x4f, :addr_0x92d9a, [8, 10326, -369, -8]
Expand Down Expand Up @@ -449046,7 +449046,7 @@ def raw_apply(snr)
s.ins 0x4f, :addr_0x930a8, [-1]
s.ins 0x83, byte(0), 30
s.ins 0x86, ushort(5073), byte(1), byte(1), s.layout('@rDoth thou kill the cat? Or not?@rBeyond lies... the inside of the cat\'s stomach.@e')
s.ins 0x8d, ushort(17), ushort(5), ushort(1), 4095, 'Choice', 'KillDon\'t'
s.ins 0x8d, ushort(17), ushort(5), ushort(1), 4095, 'Choice', 'Kill Don\'t '
s.ins 0x4a, Register.new(1), ushort(1), :addr_0x8f2c6e
s.ins 0x8a, byte(0)
s.ins 0x83, byte(0), 10
Expand Down

0 comments on commit c6f76e9

Please sign in to comment.