2015/02/03

RetroN5のカスタムアプリケーションに関するメモ

retronlaboさんの作成されたカスタムアプリケーション(という表現で良いのかな?)のテストに参加させて頂いたので、試してみたこと・試すことのメモ書き。

何ができるようになるのかは、retronlaboさんのツイートまたは、動画を参照してください。


SG-1000の起動について

  • 手持ちの変換器を使ってみたが、カートリッジを挿入しても読み込んではくれなかった。
  • 以前にセガマークⅢ用の自作ゲームを動かすために分解した、チャンピオンサッカーのROMをイメージ化して読み込ませてみたが、これならば正常に動作。
    その場合は、拡張子を「sms」にする必要あり。
  • 発色はセガマークⅢでSG-1000のゲームを動作させた時の色。TMS9918Aの発色ではない。 
それでも動作しなかったSG-1000が起動するようになっただけで十分すぎます! 

データベースに無いゲームの挙動

カスタムファームウェアによりカートリッジの吸い出しが可能になったので、手持ちのゲームでデータベースに無かったファミコンのグラディウスを数回読み込ませてみたが、都度チェックサムの異なるイメージデータが作成された。

やはり接触不良が原因なのだろうか?
しかも、一度読み込ませるたびに2つのイメージデータが作成されるが何だろう?
キャラクターROMとプログラムROMに分かれている訳ではなさそうだし・・・。

動作しなかったゲームの挙動

手持ちのゲームで起動しなかった、ファミコンのファンタジーゾーンⅡを読み込ませてみたが、作成されたイメージデータのサイズが明らかにおかしい。
但し、何回読み込ませても同じチェックサムのデータが作成されたので、恐らくマッパーが対応してないのかな?
・・・でも、データベース上にはデータがあるんだよな。
調べた限りだと、水戸黄門Ⅱが同じマッパーのようだが、こちらは起動するのかな?

データベースの差し替えについて

各ゲームのデータベースを差し替えして、メニュー画面で表示されるゲーム名を日本語化することもできるが、差し替えした後に一度RetroN5を再起動してあげないと反映されない様子。

データベースの書式は、チェックサム(CRC32)とタイトル名を記述してあげれば良いみたいだが、NES(ファミコン)のファイルだけ記述が異なる。※追記あり

(CRC32);aa;bb;cc;dd;ee;ff;(ゲームタイトル)

・・・このような記述で、何らかのパラメータを16進数で与えている様子だが、憶測では

aa:プログラムROM容量を16kバイト×16進数の形で与えているか?
bb:キャラクターROM容量を8kバイト×16進数の形で与えているか?
cc:不明
dd:不明
ee:バッテリバックアップの有無か?(00:なし,01:あり)
ff:リージョンか?(00:USAまたはWorld,01:EUR,02:JAP)

リストをソートしてみたら、もう少し何かが見えてくるだろうか?

とりあえず、キラキラスターナイトをリストに加えて差し替えしてみたが、うまく反映されずNESの全ゲームが「Unknown cartridge」になってしまった。
この状態でも普通にゲームで遊べたが、そう考えるとパラメータみたいなもの関係してるのかな?

思いっきり勘違い&認識不足みたいだった・・・。
ひとつはデータベースファイル先頭の数値に、ディスクシステム用のデータは含まれていない様子。
ROMベースのゲームを追加する場合は、ディスクシステムのリストの前に追加する必要があるようだ。
Windowsのメモ帳で編集していたからわからなかった・・・。

ふたつめは、CRC32の値はイメージファイルの値と異なる(場合がある?)のね。
ファイルのチェックサムを算出するフリーウェアで得られた値ではダメで、VirtuaNESのROM情報の「ALL CRC」の値を書き込むことでうまくいった。
 とりあえず、パラメータみたいなものは適当なゲームのものをコピーしたが、問題はない様子。
そう考えると、カートリッジを吸い出したイメージデータに、ヘッダー情報として付加するためのデータなのかな?

標準アプリケーションへのロールバック

今のところは特別不具合は無いが、何かあった時のために標準アプリケーション(Ver.1.6)にロールバックしてみたが、特に問題なく行えた。
またすぐにカスタムアプリケーションに戻したので、ロールバックによる不都合が発生するかは未確認。

その他

もしかしたら、IPSパッチ機能が動作していない(?)
IPS機能を使って無理やりイメージデータを起動する方法が取れなくなっている様子。
・・・まあ、そんなことをする必要はなくなっているんだけれど。

追加されたエミュレータの動作など、もう少し続きます。



(追記)
NESのデータベースに記述するパラメータみたいなものって、iNESフォーマットの3バイトめ以降を記述すれば良いのか?
でも、ここのマッパー情報と照らし合わすと少し違うような・・・。

(追記2)
retronlaboさんとメールをやり取りしてみたところ、データベースファイル先頭のデータ件数は現在認識しておらず、データの追記場所も最終行で良いとの事。
テストしてみたが、問題なく反映されることを確認した。

また、パラメータについてはRetorN5の動作自体には影響がないとの事だったが、少し自分で調べてみたところ、やはりNESファイルのヘッダー情報のようだ。
試しに手持ちのファミコンソフトで「Unknown cartridge」になる、N in 1の類のカートリッジのデータベースを作成し、パラメータを「12;34;・・・」とデタラメな値に設定してみたところ、作成されたNESファイルのヘッダーにこの値が設定されることを確認した。

(追記3)
IPS機能はツインビーのAC化パッチで正常に機能していることを確認したが、あくまでカートリッジから起動したものに限るみたい。
吸い出したイメージで起動したツインビーへ、AC化パッチを当てるということは出来なかった。

(追記4)
ファミコンのパラメータについて、記載忘れてたので追記。
データベース上では、

  (CRC32);aa;bb;cc;dd;ee;ff;(ゲームタイトル)

このような記述であることは記事の通りだが、

aa:PRG-ROMサイズ(16kバイト×16進数)
bb:CHR-ROMサイズ(8kバイト×16進数)
cc:上位4bitがマッパーNoの下位。下位4bitがセーブ機能有無などのフラグ。
dd:上位4bitがマッパーNoの上位。下位4bitがVS-SYSTEMなどのフラグ。
   …但しデータベース上では、VS-SYSTEM・PlayChoice-10とも設定されておらず。
   (何だかよくわからないスーパーマリオのハックロムでは設定されている)
ee:サブマッパーNo?…これがよくわからない。
ff: リージョン情報(00:USAまたはWorld,01:EUR,02:JAP)
   …これはRetroN5独自のパラメータのようだ。

また、RetroN5のマッパー情報は、NES-DEVなどの情報と合っていないものがあった。
エミュレーションの精度には関係なさそうだけど、ナムコのマッパー210のゲームがRetroN5のデータベース上ではマッパー19として記述されていることを見付けた。

もしも、RetroN5で吸い出したイメージが、他のエミュレータで動作しない場合は、ここらへんのチェックが必要かも。

0 件のコメント:

コメントを投稿