PR
[PR]アフィリエイト広告を利用しています
[PR]アフィリエイト広告を利用しています

【初級★☆☆】BizHawkのセーブステートが消えた・見つからない?|保存/読込とホットキーの仕組み・変更方法

BizHawkのセーブステートのスロット0-9を示す抽象アイコンと巻き戻し矢印の概念イメージ レトロゲーム環境構築

【難易度】初級★☆☆【対象環境】Windows 10(64bit)・Windows 11/BizHawk 2.9系(EmuHawk)/再生・検証するのは自分で購入・所有しているソフトのみ・オフライン環境

【PR】本記事はアフィリエイトリンク(Amazonアソシエイト)を含みます。Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。

【技術検証に関する法的注意事項・免責事項】
本記事に掲載されているメモリ解析、Luaスクリプト実行、およびAIコード生成に関する技術情報は、自らが所有するゲームソフトおよびオフライン環境における技術研究・教育目的の検証記録です。著作権法第47条の3に配慮し、複製ROMの配布、コピーガードの回避(DRM解除)、オンライン環境での不正操作(BOT化)等に関する情報は一切取り扱いません。掲載情報の実行によって生じた損害について、当ブログは一切の責任を負いかねます。

結論から書きます。BizHawkのセーブステートは「File → Save State」「File → Load State」で保存・読込ができ、日常的に使うなら番号付きスロット(0〜9)に対する保存/読込をホットキーへ割り当てるのが最短です。ゲーム内のセーブとは別物で、その瞬間のメモリの中身をまるごと保存するため、セーブポイントの外でも、ボス戦の1フレーム前でも、好きな場所に置けます。

この違いが効いてくるのは、実は「遊ぶ」場面より「調べる」場面です。同じ状況を何度でも再現できるということは、メモリ解析やLuaでの動作確認をするときに、毎回セーブポイントまで手動で進め直す必要がないということです。この記事では基本操作からホットキーの仕組み、スロットの使い分け、詰まりやすいポイントまでを順番に扱い、最後に旗クラスタ(メモリ解析)への橋渡しをします。

なお、ホットキーの初期値(デフォルトのキー割り当て)はBizHawkのバージョンによって変わることがあります。この記事では「どこを開けば自分の環境の初期値が分かるか」「どう変更するか」という手順を書き、未確認の具体的なキー番号を断定しては書きません。実機での確認が取れ次第、実際の画面キャプチャを追記します。

セーブステートを使えるまでの3段階(メニュー操作→ホットキー設定→スロットの使い分け)を示す概念図
①メニュー操作(File→Save/Load State)→②ホットキーの設定(Config→Hotkeys…)→③スロットの使い分け、の順に押さえます。②と①はそれぞれ別の設定画面です。

前提の確認

項目 この記事の前提
OS Windows 10(64bit)または Windows 11
エミュレーター BizHawk(EmuHawk)2.9系。導入がまだの場合は末尾のリンクから先に済ませてください
ソフト 自分で購入・所有しているソフトのみ。オフライン環境で使用
この記事の範囲 セーブステートの保存/読込・ホットキー・スロット運用。コントローラーの入力割り当てそのものは別記事(末尾リンク)

1. セーブステートとゲーム内セーブの違い(3行で)

  • ゲーム内セーブ:ソフト側が用意したセーブ機能。セーブポイントやメニューなど、ソフトが許した場所でしか保存できない
  • セーブステート:エミュレーター側の機能。メモリ・レジスタ・タイミング情報を丸ごと1つのファイルに書き出すため、ゲーム内で保存できない場所(戦闘中の1フレーム、ムービー再生中など)でも保存できる
  • この「任意の瞬間を固定できる」性質が、後述するメモリ解析での再現性に直結します

2. メニューからの基本操作(保存/読込)

手順はこの4つです。

  1. 自分が所有しているソフトを読み込みます(File → Open ROM
  2. 保存したい場面まで進めます
  3. メニューの File を開き、Save State にカーソルを合わせます。サブメニューに スロット0〜9Save Named State...(任意のファイル名で保存)が並んでいます
  4. 使いたいスロット番号をクリックすれば、その瞬間の状態がそのスロットへ保存されます

読み込みは同じ構造です。File → Load State から、保存したスロット番号を選ぶだけです。誤って別のスロットを選ぶと関係ない場面がロードされるので、後述の「スロットの使い分け」を先に決めておくと事故が減ります。

判別条件(ここで止まる場合):

  • Save State のサブメニューがグレーアウトしている → ソフトが読み込まれていません。手順1からやり直してください
  • Load State を選んでも画面が変わらない → そのスロットにまだ何も保存されていません。空スロットを読み込んでも何も起きないだけで、エラーにはなりません

3. ホットキーで素早く保存/読込する

毎回メニューを開くのは実用的ではないので、ホットキー(キーボードショートカット)を使います。割り当ての一覧は次の場所にあります。

  1. メニューの Config を開きます
  2. Hotkeys... を選びます
  3. 一覧の中に Save State 0Save State 9Load State 0Load State 9Save StateLoad State(現在選択中のスロットに対する保存/読込)、Select State 09(スロットの選択)といった項目が並んでいます
  4. 各項目の右側にある欄をクリックし、割り当てたいキーを押すと登録されます

この画面を自分の目で開いて確認することを強くすすめます。バージョンによって初期値が空欄のこともあれば、既定のキーが入っていることもあります。ここで「今どのキーに何が割り当たっているか」を一度確認しておくと、後で「押したのに反応しない」で悩む時間がなくなります。

判別条件:

  • 一覧に Save State / Load State 系の項目が見当たらない → 検索欄(Hotkeysウィンドウ上部にあることが多い)に State と入力して絞り込んでください
  • キーを押しても登録欄に反応がない → すでに他の項目へ割り当て済みのキーを使おうとしている可能性があります。一覧を上から目視でスキャンし、重複を外してください

4. ホットキーを自分用に変更する(コントローラー割り当てとは別枠)

コントローラーのボタン割り当て自体は末尾の「次に読む」で紹介する別記事で扱っていますが、Save State / Load State 系のホットキーは Config → Controllers… ではなく Config → Hotkeys... の管轄です。この2つの設定画面は別物なので、コントローラー設定を見直してもセーブステートのキーは変わりません。ここを混同すると「設定したのに反映されない」という詰まり方をします。

変更手順:

  1. Config → Hotkeys... を開きます
  2. 変更したい項目(例:Save State 0)の欄をクリックします
  3. 新しく割り当てたいキー、または接続済みのコントローラーのボタンを押します(BizHawkはホットキーにもゲームパッドの入力を割り当てられます)
  4. 他の操作(メニュー操作やゲーム内の入力)と重複しないキーを選びます
  5. ウィンドウを閉じて保存します

おすすめの考え方:ゲームの操作に使わない範囲(F1F12Shiftとの組み合わせなど)にまとめて寄せておくと、遊んでいる最中に誤操作でセーブ/ロードしてしまう事故を防げます。ゲームパッドで頻繁に遊ぶ場合は、あまり押さないボタン(背面ボタンなど)に割り当てると誤爆が減ります。

5. スロットの使い分け方(実践的な運用ルール)

スロットは0〜9の10個ですが、何も決めずに使うと「どこに何を保存したか忘れる」事故が起きます。解析や検証の用途では、次のように役割を固定しておくと迷いません。

スロット 用途の例
0 直前のチェックポイント(数分おきに上書き)
1 今の検証セッションの開始地点(Luaスクリプトの動作確認をやり直すときに戻る場所)
2〜4 ゲーム内の重要な区切り(章の始まり、ボス戦直前など)
5〜9 一時的な実験用(試して不要になったら気にせず上書き)

長期的に残しておきたい状態は、番号スロットではなくSave Named State...で名前を付けて保存してください。番号スロットは日常的に上書きされる前提の一時領域、名前付きステートは保管用、と分けて考えると事故が減ります。

6. よくある詰まりどころ

①保存したはずのステートが消えている:別のセッションで同じスロット番号に上書きしていないか確認してください。番号スロットは上書き前提です。

②ロードしても真っ黒/フリーズする:保存時と読み込み時でROMのバージョンやコア(使用しているエミュレーションコア)が違うと、正しく読み込めないことがあります。同じROMファイル・同じコア設定で保存/読込することが前提です。

③ステートファイルがどこにあるか分からない:既定では、ROMを読み込んだフォルダを基準にした場所に自動保存されます。保存先を明示的に確認したい場合は、Save Named State...を使うと保存ダイアログが開き、実際の保存先フォルダを目で確認できます。

④TAStudioと併用すると挙動が変わる:TAStudioを開いている状態では、通常のセーブステートの扱いがTAStudio側のフレーム管理と連動することがあります。まずTAStudioを閉じた状態で本記事の手順を確認することをおすすめします。

⑤Luaスクリプト実行中にロードすると変数がリセットされる:ステートの保存対象はゲーム側のメモリで、Lua側で自分で持っている変数(スクリプトのローカル変数など)までは復元されません。スクリプト内の状態管理は別途設計が必要です。

7. セーブステートを解析の足場にする

ここからが当ブログの本題に近い部分です。メモリ解析やLuaでの動作確認をするとき、いちばん時間を食うのは「さっきと同じ状況を作り直す」作業です。セーブステートを使えば、この再現作業をワンクリックに圧縮できます。

たとえば「HPが減った直後のメモリ値を読みたい」という検証をするとき、毎回ボスに殴られ直すのではなく、HPが減った直後の状態を1つのスロットに保存しておき、そこから何度でもロードし直して条件を変えながら試すという使い方をします。同じ出発点から何度も試行できることは、メモリの中のどの値が変化しているかを特定する作業(RAM Searchなど)の精度に直結します。

実際にメモリの値を読み取って画面に表示するところまでは、この記事の範囲を越えます。次の記事で、読み出した値を画面に表示し続ける最小構成のテンプレートを扱っています。

8. AIに状況を伝えるときの渡し方

セーブステートまわりの不具合は、「どのスロットで」「保存時と読込時で何が同じで何が違うか」を明確に伝えると、AIからの提案の的中率が上がります。実際に使える形にすると、こうなります。

BizHawk(2.9系)でセーブステートを使っています。
スロット2に保存した状態をロードすると、画面が固まって反応しなくなります。

確認済みのことは以下です。
- スロット0・1のロードは問題なく動く
- スロット2を保存したときと、今読み込もうとしているROMファイルは同じファイル
- TAStudioは開いていない
- 保存した直後にゲームを続行できることは確認した(保存自体は成功している)

この条件で考えられる原因を、可能性の高い順に3つまで挙げてください。
それぞれについて、次に確認すべき手順を1つだけ書いてください。

ポイントは3つです。①バージョンとスロット番号という具体情報を先に渡す。②「同じで何が違うか」を書くことで、AIが的外れな一般論を返しにくくなる。③「原因3つ・次の手順1つ」と出力形式を絞ることで、長い一般論の羅列を避ける。

よくある質問

Q. セーブステートを使うと、ゲーム内のセーブデータは消えますか?
A. いいえ。セーブステートとゲーム内セーブは別のファイルとして扱われます。セーブステートをいくら保存・読込しても、ゲーム内セーブのデータには影響しません。

Q. セーブステートのファイルを配布してもいいですか?
A. 当ブログでは取り扱いません。セーブステートにはROM本体のメモリ状態が含まれるため、配布は著作権上の問題になり得ます。あくまで自分の環境内での検証用途にとどめてください。

Q. スロット数を10個より増やせますか?
A. 番号付きスロットは0〜9の10個が基本です。それ以上必要な場合はSave Named State...で任意の名前をつけて、必要なだけ保存してください。

Q. これは「改造」にあたる作業ですか?
A. いいえ。この記事で扱っているのはエミュレーター標準の保存/読込機能の使い方だけで、ROMの内容を書き換える操作ではありません。当ブログは複製ROM・BIOS・セーブデータの配布、コピーガードの回避(DRM解除)を一切取り扱いません。

まとめ:セーブステートの使い方

  • 基本は File → Save State / Load State。日常的に使うなら Config → Hotkeys... でスロットごとのキーを割り当てる
  • ゲーム内セーブとは別物。メモリの状態を丸ごと保存するので、任意の瞬間を固定できる
  • 番号スロット(0〜9)は上書き前提の一時領域。長期保管は Save Named State... を使う
  • ロードして固まる・真っ黒になる場合は、まずROM・コアが保存時と一致しているかを疑う
  • ホットキーの初期値はバージョン差があるため、自分の環境で Config → Hotkeys... を開いて確認するのが確実
  • 解析・検証の場面では、セーブステートが「同じ状況を何度でも再現する」ための土台になる

【予告】この記事のスロット運用ルールを含む「PCでレトロゲームを遊ぶ環境構築キット」を配布予定です。価格・配布日は未定で、決まり次第この記事に追記します。

次に読む

BizHawkの導入がまだの場合は、まずこちらです。ダウンロードから日本語化、Lua Consoleの初期設定までをまとめています。

【入門】BizHawk 導入・使い方 完全ガイド(Windows)|ダウンロードから日本語化の正解・Lua Console初期設定まで最短4ステップ
BizHawkの導入は「公式GitHubから本体zip+prereqsを入手→prereqsを先に実行→半角英数パスへ展開してEmuHawk.exeを起動→コントローラー割当とLua Console初回起動」の4ステップ。公式の日本語UIは無いため、日本語化の正解は「日本語パスを避ける・対訳表を持つ・表示は半角英数」の3点です。Claudeに動作確認用Luaを書かせた試行錯誤ログと、英語メニュー対訳表つき。

コントローラーのボタン割り当てや、認識しないときの切り分けはこちらの記事で扱っています。今回のセーブステートのホットキーとは別画面(Config → Controllers… ではなく Config → Hotkeys...)である点に注意してください。

【初級★☆☆】BizHawkのコントローラー設定 完全手順|キー割り当て・ホットキー・認識しない時の切り分け5項目
BizHawkのコントローラー設定は Config → Controllers… で行いますが、先に自分が所有するソフトのデータを読み込んでいないと割り当て欄が作られません。キー割り当ての基本手順、巻き戻し・早送り・状態保存のホットキー、パッドが認識しないときの切り分け5項目、2P追加、デッドゾーン、config.iniのバックアップまでを初級向けにまとめました。

環境づくり全体の中で、今どこにいるかを確認したい場合はこちらの工程表を見てください。この記事はその中の1工程です。

【初級★☆☆】PCでレトロゲームを遊ぶ 完全ガイド|何から始めるか5ステップ
PCで昔のゲームを遊びたいけれど何から始めればいいか分からない方へ。①前提の確認→②何で遊ぶか決める→③PCとコントローラー→④画面に映す→⑤AIで解析・制御する、の5ステップで全体像を整理しました。各ステップの詳しい手順記事へ案内する地図として使えます。自己所有ソフト・オフライン環境での技術検証を前提としています。

そして、同じ状況を何度でも再現できるようになったら、次はいよいよメモリの中身を読む番です。値を画面に表示し続ける最小構成のテンプレートをこちらにまとめています。

【入門】BizHawk×Lua×AI(Claude)でゲームのメモリ値を画面表示する最小テンプレ|RAM Searchで所持金アドレスを特定する手順
BizHawkのRAM Searchで所持金アドレスを特定し、Claudeに書かせたLuaで値を画面に常時表示する最小テンプレを解説。改造ではなくメモリ解析・状態検証の入門です。


動作確認用の定番パッド
8BitDo Pro 2

BizHawkの入力設定を詰めるとき、接続モード(X-input/D-input/Switch)を本体スイッチで切り替えられるのが効く。認識しない原因がドライバ側かエミュ側かを、機材を替えずに切り分けられる。

  • 接続モードを本体スイッチで切替
  • ホールエフェクト式スティックでドリフトしにくい
  • Windows/Steam Deck/Android対応

Amazonで詳細を見る

※価格・在庫・仕様は変動します。最新の情報はAmazonの商品ページでご確認ください。

コメント