N64 どうぶつの森のコンバーター

第2回目は、N64のどうぶつの森、これのゲーム中に表示される
動物たちとの会話をコンバートしてみましょう。
今回のコンバーターは、前回のものよりも複雑になっています。


・テーブルファイルの作成
なにはともあれ、まずはテーブルファイルを作るわけなのですが、
以前、これの改造コードをサーチしていたときに、フォント配列も調べていたので
今回はこれを利用してみました。

もし、一からテーブルファイルを作るなら、カートリッジの電池が
切れたときに表示されるメッセージから探してみましょう。





GCCODEをつかいト?アツカイセツ?イシで検索してみて下さい。
一件だけ該当があると思います。


出力してみると、いくつか抜けてたり、ずれてるようです。
これをもとにちゃんとしたテーブルを作ります。


・特殊処理の判定
画面と比べてみて、CDは、改行を意味している
ようだということはわかりますが、

く わ し い 改行 た い し ょ ほ う に つ い て は
07 C1 0B 01 CD 0F 01 0B CB 1D 02 15 11 01 12 19
、 改行 と り あ つ か い
84 7F 04 CD 7F 50 E1 1E D7 0C 13 7C 00 11 05 01
せ つ め い し ょ を 改行 ご ら ん く だ さ い 。
0D 11 24 01 0B CB C2 CD EB 7B C3 07 F1 0A 01 81

7F04
7F50E11ED70C

の、謎の処理があります。
他の場所も調べてみるとどうやら、
7F〜という値は、なにかしら処理をするという値のようです。
ちなみに、7F04はボタン入力待ち、
7F50xxyyzzppは文字の色を変更のようのです。

ほかにも種類があり、たとえば、

7F1A:主人公の名前
7F1C:文章の語尾。〜でシ、〜なのサ、〜まんねんとか。
7F2F:村の名前
7F54:文字の大きさを変える

などなどいろいろ種類があります。
Cソースにコメントを入れているので
詳しくはそれを見てください。

7Fxxにどのような処理があるのか調べるときは
すぐ表示できるメッセージをバイナリエディタで直接書き換えて試してみるのが
1番手っ取り早いと思います。


・プログラミング
共通なものを省いて、ソースでどのようなことをやっているか、
かなりがんばったので、説明しますw

○74〜86行目
どうぶつの森のメッセージは、1行に表示できる文字数は
通常メッセージは17文字、掲示板、手紙は16文字となっています。
もし16文字表示した時点で、2バイト先が改行だったらそのまま、
文字だったら改行を挿入し、「f」に1を代入するようになっています。

○89〜442行目
0x7Fを読込んだ場合の判定処理です。
プログラムのほとんどがこれの処理にあてられています。
短くできますが、わかりやすいように
ばらばらに書いています。

○443〜451行目
改行判定処理です。
文字制限処理で改行したかどうかも判定します。

○452〜456
テーブルファイルから文字を表示します

※番外
○38〜70行目
どうぶつの森のロムデータかどうか判定。


・ダウンロード
はい、というわけで完成品です。
ソースも同梱していますので、
興味がある人はみてみましょう。


完成品ダウンロード




戻る