Retrofan 2003
Member
Say listen I was having some problems with the hud trying to make some Japanese text for famicom games and I was wondering if there was anyone who could help me or other people with that sort of thing. And thank you.
On the same subject, how would you recommend doing the actual translation. I can use the entire HUD so about 62 characters available because I'm not using that tileset for anything else. Do you think Google translator is accurate enough or does the language have certain elements which might be badly translated without human input?The whole thing is just puzzling (the graphic tiles from your hud tileset... using the corresponding keyboard letters)
Thank you for the advice. I've found someone on fiverr who has good reviews. Would the same apply for a this website as Google?For the translation itself. Google will produce shitty texts.
I'd suggest to find a real person who can translate your texts for you (and simplify them, in order to use the minimum kanji / hiragana or katakana for the entire game).


この問題を無事に解決できたかどうかわかりませんが、私なりに今実装している日本語メッセージの使用について書き連ねていきます。
なお、おそらくこの内容を役立てられる人は日本語のわかる人だけだと思うので、日本語で記述していきます。
View attachment 8617
実際にゲーム画面です。
平仮名とカタカナが混じったメッセージがテキストボックスで表示されています。
View attachment 8618
使っている文字の種類はおよそ92文字となります。
BGのタイル#90から#BFまでの48文字と#D0から#FFまでの48文字を合わせた数から、
テキストボックスのスペースや空白に使うタイルを取り除いた数が文字として使えるBGタイルの最大数と認識しています。
ちなみに通常のNesmakerのモジュールだとHudのタイルで書かれた文字(#D0から#FFまでの48文字)しか使えない為
空白を除いた46文字しかテキストで使えませんが、以下のリンクから学ぶことで倍の92文字が使用できるようになります。
http://www.nesmakers.com/index.php?threads/upper-and-lowercase-text-in-version-4-5.5341/post-47739
日本語には片仮名と平仮名だけで50文字ずつあり、さらに句読点や50音に無い文字や記号も必要になります。
したがってゲームに使用できる文字の数は非常に限られたものになります。
そのため、私の場合はまずゲームで表示するすべての文章を下書きし、その文章の中から使用頻度の高低を決め、
使用頻度の低い文字は言い回しを変えたりしています。
そして文字の配置がバラバラなのは日本語キーボードのキートップに書かれている平仮名(かな打ち用の表記)を基準にしているからです。
それは下書きをゲームで使用できるテキストに変換する際に非常に便利だからです。
上記のBGであればNesmakerで入力する文字は
「おはよう」→「6f94」となります。
下書きの文章をアプリケーションで一括変換すれば楽ですが、細かいテキストを追加したりする際にはキーボードで\直接入力します。
もし92文字以上の文字を使いたいのなら、何らかのスクリプトでHud.bmpやPathTiles00.bmpを書き換えるスクリプトが必要となるでしょう。
素晴らしいですね。私は日本人なので日本語を使いたいと思ってました。この問題を無事に解決できたかどうかわかりませんが、私なりに今実装している日本語メッセージの使用について書き連ねていきます。
なお、おそらくこの内容を役立てられる人は日本語のわかる人だけだと思うので、日本語で記述していきます。
View attachment 8617
実際にゲーム画面です。
平仮名とカタカナが混じったメッセージがテキストボックスで表示されています。
View attachment 8618
使っている文字の種類はおよそ92文字となります。
BGのタイル#90から#BFまでの48文字と#D0から#FFまでの48文字を合わせた数から、
テキストボックスのスペースや空白に使うタイルを取り除いた数が文字として使えるBGタイルの最大数と認識しています。
ちなみに通常のNesmakerのモジュールだとHudのタイルで書かれた文字(#D0から#FFまでの48文字)しか使えない為
空白を除いた46文字しかテキストで使えませんが、以下のリンクから学ぶことで倍の92文字が使用できるようになります。
http://www.nesmakers.com/index.php?threads/upper-and-lowercase-text-in-version-4-5.5341/post-47739
日本語には片仮名と平仮名だけで50文字ずつあり、さらに句読点や50音に無い文字や記号も必要になります。
したがってゲームに使用できる文字の数は非常に限られたものになります。
そのため、私の場合はまずゲームで表示するすべての文章を下書きし、その文章の中から使用頻度の高低を決め、
使用頻度の低い文字は言い回しを変えたりしています。
そして文字の配置がバラバラなのは日本語キーボードのキートップに書かれている平仮名(かな打ち用の表記)を基準にしているからです。
それは下書きをゲームで使用できるテキストに変換する際に非常に便利だからです。
上記のBGであればNesmakerで入力する文字は
「おはよう」→「6f94」となります。
下書きの文章をアプリケーションで一括変換すれば楽ですが、細かいテキストを追加したりする際にはキーボードで\直接入力します。
もし92文字以上の文字を使いたいのなら、何らかのスクリプトでHud.bmpやPathTiles00.bmpを書き換えるスクリプトが必要となるでしょう。
画面ごとに異なるHUD.BMPを読み込めるのは素晴らしいですね。妻の協力を得て、私たちも同じ方法を取りました。まず、すべての文章を紙に下書きし、カタカナの使用文字数を減らすために文章を修正・簡略化しました(特に共通の文字をできるだけ多く使うように調整)。その後、カタカナの文字とNESmakerのタイル(テキストボックスに入力する文字や記号)との対応表を作成しました。
『SkateCat』では、少し異なる(やや複雑な)方法を使用しました。特定のスクリプトを作成し、各テキスト画面ごとに異なるHUD.BMPを読み込むようにしました。これにより、各画面で約30種類の異なる文字を使用することが可能になりました。
@BITVADER あなたのゲームの演出は本当に素晴らしいですね。カットシーンのテキスト表現も見事です!
質問はこのリンク先の、caps onを書く場所が分からないのです。どうしたんだい、おまえたち?
いいか、『ダウンタウン熱血物語』のコードをそのままパクればいいのさ。あんな感じだったろ:
1. まず、値を読み込む。
2. もし「濁音」なら、上に濁点をつけてからステップ4へ。
3. もし「半濁音」なら、上に半濁点をつけてからステップ4へ。
4. 文字を書き込む。
5.「終止符」がくるまで、最初から繰り返す。
実は、とてもシンプルなことなんです。分かってほしいとまでは言いませんけれど、少しだけ考えてみていただけませんか? もしかしたら、あなたの中でふと腑に落ちることもあるかもしれません。……そもそも、私はNesmakerのユーザーではありませんしね。質問はこのリンク先の、caps onを書く場所が分からないのです。
http://www.nesmakers.com/index.php?threads/upper-and-lowercase-text-in-version-4-5.5341/post-47739
テキストを書き込む前に、まだスクリプトが完成してないのです。
こちらは初心者なので、簡単な言葉の回答は望んでいません。
以上。
STA $2006 ;VRAMアドレスの上位バイトを書き込み(画面上のタイル描画位置)
LDA $2A ;ゼロページ($2A)の値をAにロード
STA $2006 ;VRAMアドレスの下位バイトを書き込み
LDX #$03 ;Xレジスタに3を代入
LDA #$00 ;Aレジスタに0を代入
MARK1:
STA $2007 ;背景タイルを書き込み(書き込むたびにアドレスが自動インクリメントされる)
DEX ;Xレジスタの値から1を引く
BPL MARK1 ;マイナスフラグが立っていなければMARK1へジャンプ
LDA $2A ;ゼロページ($2A)の値をAにロード
CLC ;キャリーフラグをクリア
ADC #$20 ;Aに$20を加算(次の行へ移動)
PHA ;Aレジスタの値をスタックに保存
LDA $2B ;ゼロページ($2B)の値をAにロード
ADC #$00 ;キャリーを含めて0を加算
STA $2006 ;VRAMアドレスの上位バイトを書き込み
PLA ;スタックから値をAレジスタに戻す
STA $2006 ;VRAMアドレスの下位バイトを書き込み
LDX #$03 ;Xレジスタに3を代入
LDA #$00 ;Aレジスタに0を代入
MARK2:
STA $2007 ;背景タイルを書き込み
DEX ;Xレジスタの値から1を引く
BPL MARK2 ;マイナスフラグが立っていなければMARK2へジャンプ
INC $0681 ;RAM($0681)の値に1を加算
INC $0681
INC $0681
INC $0681
JSR $E330 ;サブルーチン呼び出し(戻り先アドレスをスタックに保存)
LDA $0681 ;AにRAM($0681)の値をロード
CMP #$40 ;Aと$40を比較(ステータスフラグのみ変化)
RTS ;サブルーチンから復帰
ご返答ありがとうございます。実は、とてもシンプルなことなんです。分かってほしいとまでは言いませんけれど、少しだけ考えてみていただけませんか? もしかしたら、あなたの中でふと腑に落ちることもあるかもしれません。……そもそも、私はNesmakerのユーザーではありませんしね。
Code:STA $2006 ;VRAMアドレスの上位バイトを書き込み(画面上のタイル描画位置) LDA $2A ;ゼロページ($2A)の値をAにロード STA $2006 ;VRAMアドレスの下位バイトを書き込み LDX #$03 ;Xレジスタに3を代入 LDA #$00 ;Aレジスタに0を代入 MARK1: STA $2007 ;背景タイルを書き込み(書き込むたびにアドレスが自動インクリメントされる) DEX ;Xレジスタの値から1を引く BPL MARK1 ;マイナスフラグが立っていなければMARK1へジャンプ LDA $2A ;ゼロページ($2A)の値をAにロード CLC ;キャリーフラグをクリア ADC #$20 ;Aに$20を加算(次の行へ移動) PHA ;Aレジスタの値をスタックに保存 LDA $2B ;ゼロページ($2B)の値をAにロード ADC #$00 ;キャリーを含めて0を加算 STA $2006 ;VRAMアドレスの上位バイトを書き込み PLA ;スタックから値をAレジスタに戻す STA $2006 ;VRAMアドレスの下位バイトを書き込み LDX #$03 ;Xレジスタに3を代入 LDA #$00 ;Aレジスタに0を代入 MARK2: STA $2007 ;背景タイルを書き込み DEX ;Xレジスタの値から1を引く BPL MARK2 ;マイナスフラグが立っていなければMARK2へジャンプ INC $0681 ;RAM($0681)の値に1を加算 INC $0681 INC $0681 INC $0681 JSR $E330 ;サブルーチン呼び出し(戻り先アドレスをスタックに保存) LDA $0681 ;AにRAM($0681)の値をロード CMP #$40 ;Aと$40を比較(ステータスフラグのみ変化) RTS ;サブルーチンから復帰
最終的にバケットマウス氏のスクリプトを正しく実装していれば、92文字を使う事が出来ました。ご返答ありがとうございます。
質問はこのリンクhttp://www.nesmakers.com/index.php?threads/upper-and-lowercase-text-in-version-4-5.5341/post-47739
での実装が可能か不可能かを聞きました。
別のスクリプトを実装しなければ出来ないのでしょうか?
ご返信ありがとうございます^^最終的にバケットマウス氏のスクリプトを正しく実装していれば、92文字を使う事が出来ました。
ただ大文字小文字を使い分ける方法が異なっていたのです。
上の段(#90からの片仮名もじ)を使うときは文字の前に「$」をつける必要がありました。