チラシの裏その2 ROM抽出編
全て自己責任の上で作業は行ってください
カプコンファイティングコレクション他のROM抽出
対象ソフト
Steamで配信されている
カプコンファイティングコレクション
カプコンベルトアクションコレクション
カプコンアーケードスタジアム他、その他多数のゲームを抽出できるスクリプトです
カプコンアーケードスタジアム1は圧縮形式の問題から
旧バージョンをダウンロードする必要があります
こちらの記事を参考にしてください。
game-extraction-toolboxの配布先
game-extraction-toolboxが正式名称になります。
インストール方法
WindowsはPython 3.7以上3.9以上をインストールして環境構築する(作者推奨のサイト 英語)
py -m pip install --user pipx
py -m pipx ensurepath
本体のインストール
pipx install game-extraction-toolbox
特にエラーも出ず、手動の追加等はなくインストールできました
過去にインストールした事がある人は下記コマンドで更新できますが
おかしくなったらuninstallしてinstallし直しが良いかと
pipx upgrade game-extraction-toolbox
Ubuntu(wsl)のインストール
インストールできる手前までいきますが
pyproject.toml内に記載のpython-magic-bin >= 0.4.14が
Linuxで解決不可能な依存関係エラー出てムリでした
いちおうpython-magic-bin をムリヤリ入れてインストールできるっぽいのですが
pip install git+https://github.com/julian-r/python-magic.git
pip install game-extraction-toolbox
コレでインストールすると実行ファイルのgextoolbox
がドコーってなりますし
2023年4月15日追記
python3 -m pip install -U pip
作者さんのスクリプト更新により0.16では
python-magic-binのインストール要件がWindowsのみに改善されました。
さらにPIPをアップデートすることで、問題なくインストール可能になりました
さらに動作の確認も取れています。
おわび
先日、解凍方法が旧バージョンの書式に戻ったと記載しましたが
うちのPython環境がぶっ壊れてたようです
(まだちょっとおかしいけど)環境構築をゼロからやりなおして確認とりました
抽出
gextoolbox.exe tasks extract --task 対応ゲームの変換略称 --srcdir "Steamのインストール先、またはダウンロードしたDepotフォルダ" --destdir "解凍先のフォルダ"
フォルダ名に空白が有るとエラー出るので""で囲ってあげるといいと思います
2023年10月追記
ACACに関してはバージョン更新により
最新版の実行ファイルでは抽出できなくなったようです。
お手数ですがDepotDownloaderなどを使い
旧版のMANIFESTID:47564409887200277をダウンロードすれば
0.15で抽出が可能だったと、あきさんからコメントいただきました
ご報告ありがとうございました!
実際に抽出を行った事例は上記になります。
オプションなど
対応ゲームの変換略称の一覧は下記コマンドで出てくるとのこと
gextoolbox.exe tasks list
詳細は下記コマンド
gextoolbox.exe tasks details --task <対応ゲームの変換略称>
カプコンファイティングコレクションは
ウォーザード以外はプレイ可能になったそうな(作者の詳細情報より)
ROMはdl-1425.bin(qsoundのrom)が不要で
CPS2の暗号化処理が本体に含まれている
MAME 0.139 (RetroArch の Mame 2010)で動作可能とのこと
Decappingについて
dl-1425.binを個人がデキャップするのは非現実的っぽいですね
画像から読み取れとか拷問か何かかな?
最近は画像認識ソフトで読ませちゃうそうですが
チュートリアル見てると気が遠くなります
稀にみんなでbit読んで解読しようぜ!とかやってたり
ここまでしてMAMEが更新されたのは
Qサウンドの解析と実装でエミュレーションが不正確だったものを改善したと
ただ、当時は動かないって難民が大量発生したようで・・・
Decappingそのものは、半導体集積回路の回路配置に関する法律などで
日本と米国双方に10年間、特許権で20年となりますが
CPS2のシステムボードは93年発売ですし
修理サポートもすでに打ち切られています
特に今回はゲームのROMではない部分になるので問題はなさそう?かなと
Keyについて
また、この変換ではKEYは含まれないので
自前でcps2のkeyファイルを用意する必要があります(参考)
こちらもユーザーの自己修理のために
CPS2 desuiciderやCPicS2が流通しています
基板派のヒトは使ってる方も多いのではと
参考リンク)CPicS2の使い方
ま、ファイコレはまだまだお高いのと
カプコンはわりと値下げ幅大きいんで(色々な意味でも)ちょい様子見です。
ARCADE GAME SERIES 3-in-1 Pack抽出しました
セールの時に個別で購入しておいたのです。何故かバラバラの方が安かった・・・
抽出方法は上記記事を参考にしてください(英語)
LinuxかLinux 用 Windows サブシステム(Ubuntu)で変換出来ます
もしくは上記のgame-extraction-toolboxでも抽出可能です。
MiyooMiniのOnionUI導入して検証しました
RetroarchのMAME2003コアでパックマンとディグダグが動作
FinalBurnAlpha2012コアでギャラガが動作しました
おそらく同Librettoコアなら動作するかもしれません
古典も古典ですが今でも楽しいです、ちょっとした時間の暇つぶしに最適。
本体が小さいので余り操作が煩雑な物はツライんですよね・・・
いまのところレトロビットジェネレーション3から吸い出した
サイドポケットとかをちまちま遊んでます
付属のMicroSD?著作権ぶっちぎりすぎていっそ清々しいけどポイっとしました。
ディスカッション
コメント一覧
technojapan.netです。
記事紹介ありがとうございます。
PrimeGamesのNEOGEOタイトルは何タイトルかはそのままneogeo.zipやROMファイルが入ってたので使っていますがSteamで購入したカプコン系はファイル覗いてもそのままじゃ無理っぽくて放置してました。
試してみようと思います!(基板持ってるのにw)
H/de.様コメント頂きありがとうございます
こちらこそ、15khz中華液晶の情報とかNanoBartop制作などなど
たくさんの記事を興味深く読ませて頂いてます!
カプコンに限らず、近年の復刻製品は拾える物が多いのでお試し頂ければと
基板所有されてても吸い出しは手間暇かかりますし、アリではないかなとw
すみません
STEAM版カプコンアーケードスタジアム 1&2を吸出ありますか?
ありがとう。
1は古い圧縮形式のバージョンなら可能ですが
最近のバージョンは解凍できないので、非対応になっています。(解析待ち)
抽出コマンドを実行しても、gextoolbox.exe tasks listを実行しても、
以下のエラーとなってしまうのですが、
何が原因なのでしょうか?
環境としては、windows10にPython3.79をインストールしております。
—————————————————————————-
Traceback (most recent call last):
File “C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37\lib\runpy.py”, line 193, in _run_module_as_main
“__main__”, mod_spec)
File “C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37\lib\runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “c:\users\ユーザ名\.local\bin\gextoolbox.exe\__main__.py”, line 4, in
File “C:\Users\ユーザ名\.local\pipx\venvs\game-extraction-toolbox\lib\site-packages\gex\toolbox.py”, line 6, in
from gex.commands.file.file import file
File “C:\Users\ユーザ名\.local\pipx\venvs\game-extraction-toolbox\lib\site-packages\gex\commands\file\file.py”, line 3, in
from .deinterleave import deinterleave
File “C:\Users\ユーザ名\.local\pipx\venvs\game-extraction-toolbox\lib\site-packages\gex\commands\file\deinterleave.py”, line 5, in
from gex.lib.utils.blob import transforms
File “C:\Users\ユーザ名\.local\pipx\venvs\game-extraction-toolbox\lib\site-packages\gex\lib\utils\blob\transforms.py”, line 20, in
def merge(chunks: list[bytes]) -> bytearray:
TypeError: ‘type’ object is not subscriptable
———————————————————————————-
夜中に相談した者です。
このページ上部のgame-extraction-toolbox配布先のGithubを確認したところ、
最新のツールはPython3.9以降が対応の旨が記載されておりましたので、
Python3.9xをインストールの上、再度ツールのインストールからやり直したところ、正常に実行できました。
大変お騒がせいたしました。
無事に解決されたようで何よりです!
Arcade Classics Anniversary Collection(acac)ですが、以下エラーとなり抽出できないようです。「Could not identify version…」とあるので最新パッチを当てていると抽出NGなのでしょうか。
—–
> gextoolbox.exe tasks extract –task acac –srcdir “C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection” –destdir “C:\tmp\acac”
WARNING:root:Could not identify version of C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection\AA_AC_ArcadeClassics.exe!
Traceback (most recent call last):
File “”, line 198, in _run_module_as_main
File “”, line 88, in _run_code
File “c:\users\akisi\.local\bin\gextoolbox.exe\__main__.py”, line 7, in
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\click\core.py”, line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\gex\commands\tasks\extract.py”, line 43, in extract
task_class.execute(src_dir, dest_dir)
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\gex\lib\tasks\impl\acac\__init__.py”, line 45, in execute
out_files.extend(self._handle_nemesis(src_contents, file_ver))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\akisi\.local\pipx\venvs\game-extraction-toolbox\Lib\site-packages\gex\lib\tasks\impl\acac\__init__.py”, line 137, in _handle_nemesis
int(extract_metadata[‘versions’][version][‘start’], 0),
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: None
Arcade Classics Anniversary Collection(acac)ですが、以下エラーとなり抽出できないようです。「Could not identify version…」とあるので最新パッチを当てていると抽出NGなのでしょうか。
—–
> gextoolbox.exe tasks extract –task acac –srcdir “C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection” –destdir “C:\tmp\acac”
WARNING:root:Could not identify version of C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection\AA_AC_ArcadeClassics.exe!
以下省略
Arcade Classics Anniversary Collection(acac)ですが、以下エラーとなり抽出できないようです。「Could not identify version…」とあるので最新パッチを当てていると抽出NGなのでしょうか。
—–
> gextoolbox.exe tasks extract –task acac –srcdir “C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection” –destdir “C:\tmp\acac”
WARNING:root:Could not identify version of C:\Program Files (x86)\Steam\steamapps\common\Arcade Classics Anniversary Collection\AA_AC_ArcadeClassics.exe!
以下省略
恐らく対策されたのかなと思います。
DepotDownloaderで
旧バージョンをダウンロードすれば抽出可能だと思います。
使い方はお手数ですが検索して調べていただければ。
返信ありがとうございます。
色々試してみましたところ、game-extraction-toolbox 0.1.5、MANIFESTID:47564409887200277 の組みあわせでエラーが出ず抽出できました。
あきさん、検証結果をコメントいただきありがとうございました。
抽出できたとのことでよかったです。
toolbox 0.1.5で抽出できたとのことで
マニフェストID 47564409887200277はキープしておいた方がよさそうですね。