Note: This section hasn’t been translated into English yet. The original Japanese version is below…
セーブは、ゲームボーイ本体が終了しても動作し続けるカートリッジ上のメモリ領域である SRAM (0xa000-0xbfff)
にゲーム進行状況をコピーすることで行われる
セーブに関する処理は engine/save.asm
にまとめられている
セーブデータを読み込む処理は LoadSAV
で行われる
LoadSAV
は タイトル画面でボタンを押して メインメニュー(CONTINUE, NEW GAME, ...)に入ったときに実行される
読み込み処理は
- セーブデータのチェックサムを検証
- チェックサムが正しいならデータを SRAMのバンク1 から WRAMにコピー
- チェックサムが一致しないなら セーブデータは破損していますというメッセージを表示
という手順で行われる
データのセーブは SaveSAV
で行われる
セーブ処理は
- セーブを行うかユーザーに確認
- 確認が取れたなら、WRAM から SRAMのバンク1 にゲーム進行状況に関するデータをコピー
- チェックサムを計算して SRAM に格納
- セーブ終了の旨をユーザーに伝える
WRAM から SRAM に写すデータは ゲーム進行に関わるWRAM領域 を加工せずまるまるコピーしたものである
おそらく加工処理が入ると セーブ時間が延びることや SRAMの要領を考えてそのままコピーしても問題がなさそうなのでそのままコピーを選択したと思われる