MiSTer FPGAで最後に遊んだゲームを再起動後も自動起動!新ツール「MnemoCore」公開

MiSTer FPGAで最後に遊んだゲームを再起動後も自動起動!新ツール「MnemoCore」公開

MiSTer FPGAを再起動したときに、最後に遊んでいたゲームを自動的に起動してくれる非公式ツール「MnemoCore」が公開されました。

●MnemoCore
https://github.com/ElFDA/mnemocore

開発したのはFederico D’Achille氏(ElFDA)。GitHub上でMITライセンスのオープンソースソフトウェアとして公開されています。

MiSTer FPGAには標準でbootcore=lastcorelastexactcoreといった設定が用意されており、最後に使用していたコアを起動することができます。

しかし、これらはあくまでも「最後に使用していたコア」を起動する機能です。たとえばメガドライブのゲームを遊んでいた場合、再起動後にメガドライブコアまでは呼び出せても、遊んでいたゲームそのものまでは自動的に起動してくれません。

「MnemoCore」は、この部分を一歩進めて、最後に選択していたゲームまで自動的に起動できるようにしたツールです。

MiSTerが記録しているrecent情報から最後のゲームを特定

「MnemoCore」では、バックグラウンドで動作するデーモンが約3秒ごとにMiSTerの状態を確認します。

利用しているのは、現在動作中のコア名が記録されている/tmp/CORENAMEと、MiSTerが最近選択したファイルを記録する<CORENAME>_recent_1.cfg、さらにアーケードゲームなどで利用されるcores_recent.cfgです。

つまり、独自のゲーム履歴データベースを構築するのではなく、MiSTer自身がもともと記録している情報を利用しているのが特徴です。

コンソールやコンピューター系のコアでは、最後に使用したROMなどの情報をもとにAutoBoot.mglを自動生成。次回起動時にこのファイルを呼び出すことで、該当するコアとゲームを起動します。

一方、アーケードコアでは.mraファイルをbootcore=から直接指定する仕組みになっています。

なお、最後にMiSTerのメニューを表示していただけの場合は設定を書き換えず、最後に正常に記録されたゲームの情報がそのまま残ります。

MiSTer標準のPython 3だけで動作

「MnemoCore」は、MiSTerに標準で用意されているPython 3を利用するため、追加のPythonパッケージや外部サービスなどは必要ありません。自動インストーラーも用意されており、導入時にはMiSTer.iniに、

bootcore=AutoBoot.mgl

bootcore_timeout=1

recents=1

といった設定が追加されます。このうちrecents=1は重要な設定です。これが無効になっていると、MnemoCoreが参照するrecent関連のファイル自体がMiSTer側で生成されないため、ゲームを特定できません。

自動インストーラーを利用した場合、変更前のMiSTer.iniMiSTer.ini.mnemocore-bakとしてバックアップされます。

また、すべてのシステムを一括で有効/無効にできるほか、アーケードや各ゲーム機など、システムごとに自動起動の対象から除外することも可能です。

自動起動ならではのboot loop対策も用意

便利な機能である一方で、自動起動には注意点もあります。最後に起動したコアやゲームに問題があり、ブラックスクリーンなどでMiSTerのOSDを開けなくなった場合、再起動するたびに同じゲームが読み込まれ続ける、いわゆるboot loopに陥る可能性があります。

その対策として「MnemoCore」にはantipanic.shが用意されています。

SSH経由でこのスクリプトを実行すると、bootcore=AutoBoot.mglに戻したうえで同ファイルを削除し、次回起動時に通常のMiSTerメニューへ戻せる仕組みです。

また、bootcore_timeout=1に設定されている場合でも、起動直後にキーボードやコントローラーを操作することで自動起動をキャンセルできる短い時間が設けられています。余裕を持ってキャンセルしたい場合は、この数値を大きくすることも可能です。

ただし、こうした対策が用意されていても自動起動に伴うリスクが完全になくなるわけではないため、導入時には注意が必要です。

セーブステートを復元する機能ではないので注意

ここで注意しておきたいのが、「MnemoCore」が復元するのは最後に遊んでいた「ゲーム」であり、ゲーム内の状態ではないということです。

たとえばゲームの途中でMiSTerの電源を切った場合、次回起動時に同じゲームを自動的に立ち上げることはできますが、電源を切った瞬間の場面から続きが始まるわけではありません。いわゆるセーブステートを自動保存・復元するツールとは異なります。

特殊な複数ファイル形式などには未対応

現時点ではいくつか制限もあります。複数のファイルを同時に読み込む必要がある特殊な形式には現在のロジックでは対応していません。READMEでは例として、C64の.d64のようにディスクのマウントと自動実行で複数の<file>指定が必要になるケースが挙げられています。

また、対応するコアの情報はmnemocore_helper.py内のPROFILESテーブルで管理されており、登録されていないコアは自動起動の対象になりません。

システムによって複数のファイルタイプやスロットを使い分ける場合も、現在はコアごとに固定されたひとつのprofileを使用する仕様になっています。

さらに、コンソール系で使用するAutoBoot.mglは必要に応じて上書きされるため、同名ファイルをほかの用途で使用している場合は注意が必要です。

正式なRelease版はまだなし

「MnemoCore」のリポジトリは日本時間2026年8月28日未明に公開されたばかりで、記事執筆時点ではGitHubの正式なReleaseやバージョンタグは用意されていません。現在はmasterブランチ上で開発・公開されている段階です。

READMEではMiSTer標準のlastcorelastexactcoreのほか、LastPlayedやZaparoo Coreなど既存の方法との比較も掲載されています。ただし、これらのツールに対する評価や動作の信頼性については、あくまでもMnemoCore開発者による検証・見解として捉えておいたほうがいいでしょう。

MiSTerを起動するたびに遊ぶゲームを選び直すのが面倒だった人にとって、「最後のコア」ではなく「最後のゲーム」まで自動的に呼び出せるというのは、なかなかユニークな追加機能といえそうです。

ABOUT US
アバター画像
retrogamer