レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
スレ立てるまでもない質問
-
GCさんが使われているローダーが何かわからないのですが、WINF2A2xx
である場合には下記のようになると私は勝手に推測しています。たぶん
間違っているのでしょうけれど、どりあえずこの理屈で考えて今のところ
うまく行っていますので、恥をしのんで申し述べます。
まず最初にF2A-ULのにおけるセーブの基本原理を下記のように仮定します。
1. あるゲームで遊んでセーブを行い電源をOFFにした時点でセーブデータ
はF2A-ULの作業領域に保存されるだけで、F2A-ULのセーブ用メイン
バンクにはまだ保存されない。
2. 再度電源をONにしてローダーが起動した時点でF2A-ULの作業領域に保存
されていた前回遊んだゲームのセーブデータがF2A-ULのセーブ用メイン
バンクに保存される。
F2A-ULはセーブ用メインバンク上でセーブデータを管理しますこの管理手
法は一種のRAMディスクのようなもので、メモリーディスク領域でセーブデ
ータをファイルとして連続的に詰め込むことができます。このようにセー
ブ用メインバンクは外部F2A-ULで直接管理されるため、FMからSRAM ALLで
全8Mbit(1024K Byte)のデータとして読み出したものは、F2A-ULのSRAM全体
のバックアップとしてのみ使うことが出来ます。もちろんその中には個々の
ゲームのセーブデータも入っているはずですが、取り出すことはできないと
考えるべきでしょう。
さて、それではどうやって個々のゲームのセーブデータにアクセスすれば
良いのでしょうか?これは、作業領域にあるデータを、個々のゲームの
セーブデータの大きさで扱えば良いことになります。作業領域のデータに
どうやってアクセスするかが問題になります。実際にこれは簡単なことで、
あるセーブサイズが64K Byteのゲームでセーブしたデータは、ゲームを終
了し電源をOFFした時点で作業領域に保存されているというのは上記1.
に示した通りです。そして、次に電源を入れたときにFMを起動させた時に、
FMからアクセスできるSRAMはセーブ用メインバンクではなく、作業領域
になります。このとき、FMを立ち上げ損ないローダを起動してしまうと、
上記2.で示した通り作業領域のデータはセーブ用メインバンクに正式に
保存されてしまうので、もう1度ゲームを起動してやり直さなければなり
ません。
セーブデータファイルをF2A-ULに書き戻す場合にもやはり作業領域に書
き戻さなければなりません。作業領域が口を開けてくれるのはゲームを
起動して電源OFFし、再度電源ONした時点で起動したFMからのSRAMアクセ
ス時のみですので、このタイミングでSRAMへの書き込みを行えば、最後
に立ち上げたゲームの作業領域へセーブデータを書き込むことになり、
次にローダーが起動されたときにめでたくにセーブ用メインバンクに正
式に保存されます。
FMを使って読み出したセーブデータは、ゲームのセーブメモリがSRAMで
ある場合には、そのままVBAで使えるのですが、EEPROMやFLASHなどの場
合にはセーブが移行できない場合があるようです。これはROMファイル
にパッチを当てていたか否かにも関係するのだそうです。FMでもEEPROM
についてはセーブパッチに対するオプションがありますが使い方を理解
するためには、何が行われているのかを理解しなければならないでしょ
う。
さて、本当のメカニズムを知っている方がいらっしゃいましたらば、
教えてくださ〜い!
|
|
掲示板管理者へ連絡
無料レンタル掲示板