ホーム - ツール - 実験中 Neko Project 21/W(np21w, np21/w, ねこープロジェクト21/W),Neko Project II (NP2) 改変(np2kai)用のハードディスクステートセーブ

実験中 Neko Project 21/W(np21w, np21/w, ねこープロジェクト21/W),Neko Project II (NP2) 改変(np2kai)用のハードディスクステートセーブ

1. 説明

2. 使い方

非公開機能のステートセーブを有効にします。(マニュアル参照)

NVL.DLL(np21w用)、libnvl.so(np2kai用)はここからダウンロードしたものを使用してください。

通常のステートセーブと同様に、状態を保存したいときにセーブ、状態を復元したいときにロードを行います。

セーブを行うごとにハードディスクイメージファイルがひとつ増えます。同じスロットに複数回セーブした場合も同様にどんどん増えていきます。それらすべてのハードディスクイメージファイルが必要ですので削除しないでください。不要になった状態をマージすればファイルを減らすことができるのですが、その機能はまだありません。

ステートセーブ(状態の復元)が完全に不要になった場合は増えたハードディスクイメージファイルを1つにマージすることでファイルひとつに戻すことができるのですが、その機能はまだありません。ゲストOSの電源を切ってからスロット番号と日時が付加されていないファイル名のファイル(HDDのメニューで指定しているファイル)をNHCで開いて、VirtualPC形式(または他の形式)に変換することでほぼ同じ処理ができます。これには新しいNHC(link:../nhc.html[Ver.0 alpha48])を使用してください。また変換先は元の差分イメージとは別のフォルダにして、その後そのファイルを元の差分イメージに上書きしてください。

試す前に、ゲストの電源が切れている状態でハードディスクイメージファイルの差分イメージを作成(Windows付属のコマンドやNHCで作れるかと思います)し、それを起動するようにすると、元のハードディスクイメージファイルに対して書き込みや削除を行わなくなるため少し安全になるかもしれません。また、この方法だとVirtualPCの容量固定タイプに対してもステートセーブを行うことができます。

差分イメージを作成するプログラムを追加しました。これを使用するとVirtualPCのVHD形式以外の形式のハードディスクイメージファイルに対しても差分イメージを作成することができます。それによってNHD形式やHDI形式でもステートセーブが使用できるようになります。また、VHD形式以外から作成した差分イメージは通常のVHD形式とは異なる(元ファイルがVHD形式でない)ため、NVL.DLLのみで使用できる形式になります。元ファイルの処理についてもNVL.DLLで行うため、np2標準のイメージファイルの処理を通りません。そのあたりのデバッグを行っている場合は注意してください。

以下のように実行すると差分イメージを作成します。

> nvlvhd D basefile.nhd difffile.vhd

作成した差分イメージの方をエミュレータのハードディスクに指定します。

3. 手順

  1. 使用中のハードディスクイメージファイルを system.nhd とします。ゲストの電源は切った状態にします。

  2. ステートセーブ用の差分イメージを作成します。system_ss.vhd とします。

    > nvlvhd D system.nhd system_ss.vhd
  3. エミュレータのハードディスクには作成した差分イメージ(system_ss.vhd)を指定します。

  4. ステートセーブやステートロードを使用して望む状態になる、または確認したいことが確認できるまで操作します。(通常のステートセーブやステートロードと同じです。)
    差分イメージが複数存在する状態になります。

  5. その後の操作

    1. 状態の選択

      • 差分イメージを元の1つのハードディスクイメージファイルに統合したい場合(現在の状態が必要な場合)

        現在の状態の差分から最初の差分までを元のファイルに統合します。

        > nvlvhd P system_ss.vhd system.nhd

        その後、次の削除操作を行います。

      • 現在の状態が不要な場合

        次の削除操作を行います。

    2. 不要になったファイルの削除

      使用したすべてのスロットのステートセーブファイルを削除します。たとえば0番のスロットを使用していた場合

      • [エミュレータの実行ファイル名].S00 (例: np21w.S00)

      • system_ss.vhd_S00_[日時] (例: system_ss.vhd_S00_20190101112233000)

      というファイルを削除します。

    3. エミュレータのハードディスクに最初に使用していた system.nhd を指定します。

4. 実装について

VHDの差分イメージを作成することでステートセーブを行っています。

セーブ時には末端のファイルの名前にスロット番号と日時を付加し、それに対して新しい差分イメージを作成しそれを末端とします。ファイル名の変更と小さいファイルの作成だけなので(ハードディスクについては)短い時間で完了します。データのコピーはありません。

ロード時には末端のファイルを削除し、指定されたスロット番号の中で一番大きい日時のファイル名の差分イメージに対して新しい差分イメージを作成しそれを末端とします。ファイルの削除と小さいファイルの作成だけなので(ハードディスクについては)短い時間で完了します。データのコピーはありません。

5. ダウンロード

5.1. Neko Project 21/W(np21w, np21/w, ねこープロジェクト21/W)用

ソース,DLL,nvlvhd 2020/05/09 更新
実行ファイル 64ビット 2019/03/10 更新
実行ファイル 32ビット 2019/03/10 更新

5.2. Neko Project II (NP2) 改変(np2kai)用

ソース 2019/03/10 更新
共有ライブラリ 64ビット 2019/05/26 更新
共有ライブラリ 32ビット 2019/05/26 更新
nvlvhd 64ビット 2019/06/09 更新
nvlvhd 32ビット 2019/06/09 更新

5.3. RetroPie lr-np2kai用

ソース 2019/07/15 更新
共有ライブラリ 2019/07/15 更新
nvlvhd 2019/07/15 更新
バイナリ 2019/07/15 更新

inserted by FC2 system