したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

スレ立てるまでもない質問

612Mikan:2004/11/01(月) 12:11
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
についてはセーブパッチに対するオプションがありますが使い方を理解
するためには、何が行われているのかを理解しなければならないでしょ
う。

さて、本当のメカニズムを知っている方がいらっしゃいましたらば、
教えてくださ〜い!




掲示板管理者へ連絡 無料レンタル掲示板