ホーム - ツール - 実験中 Neko Project 21/W(np21w, np21/w, ねこープロジェクト21/W),Neko Project II (NP2) 改変(np2kai)用のハードディスクステートセーブ
ハードディスクを含めてスナップショット(どこでもセーブ)を作成する実験を行っています。
VMware PlayerとNHMでスナップショットを作成する方法とほぼ同じことを行います。
np21wを変更してビルドする必要はありません。NVL.DLLは必要になります。NHMはこのページからダウンロードしてください。
np21wのResume機能を使用します。ステートセーブは使用できないため有効にしないでください。
実際正しく機能するのかはまだわかりません。
必ず、失敗して起動不可能になっても問題のない環境(ハードディスクイメージファイル)で試してください。
通常と同じ方法で環境を構築します。
INIファイルのファイル名を適当に変更します。
NHMを起動して[オプション] - [オプション]でオプションダイアログを表示し、[VMware Player 実行ファイル]にNP2の実行ファイル(np21w.exe)のフルパスを設定します。
[ファイル] - [新規作成]で、最初のファイル選択でNP2の実行ファイルのフォルダにNHMファイルを作成し、次のファイル選択で名前を変更したNP2のINIファイルを選択します。(ファイルの種類で[NP2 INIファイル]を選択してからファイル選択してください。)
ひとつだけ表示されている項目を右クリックして[子の作成]を選択し、表示されているフォルダをそのまま選択します。
新しく追加された項目を右クリックして[実行]を選択してnp21wを起動します。
スナップショットを作成したい場面になったらnp21wの[Emulate] - [Configure]でConfigureダイアログを表示し、下から2番目の[Resume]のチェックをONにします。その後[Emulate] - [Exit]でnp21wを終了します。(この時点で再度NHMから右クリックで実行をすると終了した時点から開始します。)
追加された項目の右クリックのメニューから[子の作成]を選択すると今の状態を保存して新しい状態を作成します。
これ以降はVMware PlayerでNHMを使用する場合とほぼ同じ操作となるためNHMのページを参照してください。
NHM 作成中ZM5z 32ビット 2021/05/05 更新
NHM 作成中ZM5z 64ビット UNICODE版 2021/05/05 更新
NVL.DLL
環境
Windows
ハードディスクを含めてステートセーブ(どこでもセーブ)する実験を行っています。途中のソースをダウンロードできます。
ビルドを行う必要があります。
np21w用
こちらを参考にしてください。一応こちらでビルドした実行ファイルがダウンロードできます。
np2kai用
こちらを参考にしてください。np2kaiのGitHubに登録されている最新のソースではMakefile.amの編集は不要です。
VirtualPCの容量可変タイプのハードディスクイメージファイルだけで使用できます。他の形式も差分イメージを作成することで使用できるかもしれません。
実際正しく機能するのかはまだわかりません。
必ず、失敗して起動不可能になっても問題のない環境(ハードディスクイメージファイル)で試してください。
非公開機能のステートセーブを有効にします。(マニュアル参照)
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
作成した差分イメージの方をエミュレータのハードディスクに指定します。
使用中のハードディスクイメージファイルを system.nhd
とします。ゲストの電源は切った状態にします。
ステートセーブ用の差分イメージを作成します。system_ss.vhd
とします。
> nvlvhd D system.nhd system_ss.vhd
エミュレータのハードディスクには作成した差分イメージ(system_ss.vhd
)を指定します。
ステートセーブやステートロードを使用して望む状態になる、または確認したいことが確認できるまで操作します。(通常のステートセーブやステートロードと同じです。)
差分イメージが複数存在する状態になります。
その後の操作
状態の選択
差分イメージを元の1つのハードディスクイメージファイルに統合したい場合(現在の状態が必要な場合)
現在の状態の差分から最初の差分までを元のファイルに統合します。
> nvlvhd P system_ss.vhd system.nhd
その後、次の削除操作を行います。
現在の状態が不要な場合
次の削除操作を行います。
不要になったファイルの削除
使用したすべてのスロットのステートセーブファイルを削除します。たとえば0番のスロットを使用していた場合
[エミュレータの実行ファイル名].S00
(例: np21w.S00
)
system_ss.vhd_S00_[日時]
(例: system_ss.vhd_S00_20190101112233000
)
というファイルを削除します。
エミュレータのハードディスクに最初に使用していた system.nhd
を指定します。
VHDの差分イメージを作成することでステートセーブを行っています。
セーブ時には末端のファイルの名前にスロット番号と日時を付加し、それに対して新しい差分イメージを作成しそれを末端とします。ファイル名の変更と小さいファイルの作成だけなので(ハードディスクについては)短い時間で完了します。データのコピーはありません。
ロード時には末端のファイルを削除し、指定されたスロット番号の中で一番大きい日時のファイル名の差分イメージに対して新しい差分イメージを作成しそれを末端とします。ファイルの削除と小さいファイルの作成だけなので(ハードディスクについては)短い時間で完了します。データのコピーはありません。
ソース,DLL,nvlvhd 2020/05/09 更新
実行ファイル 64ビット 2019/03/10 更新
実行ファイル 32ビット 2019/03/10 更新
変更対象バージョン
ver0.86 rev56
環境
Windows
ソース 2019/03/10 更新
共有ライブラリ 64ビット 2019/05/26 更新
共有ライブラリ 32ビット 2019/05/26 更新
nvlvhd 64ビット 2019/06/09 更新
nvlvhd 32ビット 2019/06/09 更新
変更対象バージョン
ver.0.86 kai rev.18
環境
Linux
ソース 2019/07/15 更新
共有ライブラリ 2019/07/15 更新
nvlvhd 2019/07/15 更新
バイナリ 2019/07/15 更新
変更対象バージョン
np2kai 2019/07/14 3f9684fce319420b041b8dc5a9e6b9ce8a3ef9e1 版
ステートセーブはRetroPieの機能ではなくnp2kaiのメニューから行ってください。
環境
RetroPie 4.5