WiiVCのネタ (240327Update)
WiiのVC抽出ネタ
元々はゲームの隠し要素や
隠しメッセージなどを開示してるwikiなのですが
ユーザーページにWiiVCのSegaネタが落ちてたのでペタ
こっちはWiiVCのNEOGEOにも対応したPythonの抽出スクリプト
PythonとPyCryptodomeのインストールが必要になります。
スペースハリアーの抽出を読めば
復元やセガ系の癖のある3バイトごとの分割が
書かれているので参考になるかと
あれでいいならHSP不要になるかも?
ARCADE物は、定義がないと何も出力されないようなので、事実上人力解析必須。
#insert line 38
'055': (convert_kof94, "kof94"),
#insert Line 143
def convert_kof94(input, output):
output.createFile("p1.p1",
getPart(input.regions['P'].data, 1, 1024*KILOBYTE)
+ getPart(input.regions['P'].data, 0, 1024*KILOBYTE))
output.createFile("m1.m1", input.regions['M'].data)
split_region(input, output, 'V1', ['v1.v1', 'v2.v2', 'v3.v3'])
output.createFile("s1.s1", pad(input.regions['S'].data, 128*KILOBYTE))
convert_common_c(input, output, 4)
neogeo_convert.pyを編集してROMの切り貼りを記載しないと
でたらめな切り分けで出力されてしまうようです
例として上記にKof94追加分を記載してみました。Pが天地返しで全てOKです。
プルリク出しておいたので認可されれば、更新で対応できるようになります
オマケでもう1個ふえてますが、PでCRCエラー出るので注意
気が短い人はうちのフォークからダウンロードすればいいと思います。
うまくいかない時の注意点まとめ
・WADはShowMiiWadsのNAND形式で抽出
・日本語タイトルはコケる可能性がある
・その際はWadder3.01betaで、タイトルをすべて英語にしてWAD変換→NAND抽出
・NeogeoはROMリストにない場合、自分でneogeo_convert.py内に記述しないと正常出力されない
・PyCryptodomeを認識しないことがある、別環境(WSLや仮想環境)でやり直すのもあり?
そのまま抽出できるタイトルもあります
はむさんが抽出されていたティンクルスタースプライツや
わくわく7は暗号化がかかっていないので、そのまま抽出可能となっています。
ただVCのROMは権利表記などで改変されてたり
なんか難読化やら、いじられてたりすることも多いようなので
CRCがあわなかったり動作不良はあるかも。
うちも没ネタになりましたからねえ;
しめ
具体的な抽出がなくて申し訳ないです
WIIのVC記事は他のサイトでも相当数みかけますが
コンシューマー物がノーガードだったのも大きいですね
ほとんどの記事がそれらを記載するものばかりです
いまでこそVCのNEOGEOはメリットがあまりありませんが
アーケード物はそれなりに魅力的なのもあるかなと思います。
ディスカッション
コメント一覧
どもですー
tcrfはとても参考になりますよね
自分もなにかしら貢献したいところですが特になかったりします
わくわく7に関してだけですがWiiからWii Uに
VCも移行させて確認しましたがやはりPROMがバッドダンプ(?)の模様です・・・
操作のチュートリアルで画面暗くならなかったり
キャラ選択時の回転ぽいのがなくなります
DotEmu製のメタルスラッグXのCRC合わないやつと
化けかた(?)がほぼ同じなのが気になります
しげるさん、どもでーす
tcrfは、おお!みたいな感じで読ませてもらってますが
貢献は中々できないですね;
GarouのSMAファイルに怪文章入ってるとか今更でしょうし。
やはりPが改変されてるんですねぇ;
メタルスラッグXと同じ、ということは
似たような改変入ってる可能性大ですかぁ
Wii用のNEOGEOエミュレーターに合わせて弄ってるのか
はたまた何か法則でもあるのか・・・
個人的にはWiiVC KOF94のCROMをアケアカのと
キメラすれば正規化あるのかなぁ?と思ったんですけどね
これでVCのCが改変されてたらオワタですけど;
Richard Roeさん
kof94のvcなら持ってるので、crc確認しましたが、
romcnvのロムセットに書かれてあったのと全部一緒だったので、問題ないはずです。
しかしキーをエミュレーターで抽出は危ない気がしますね。。。
本体から抽出ならまだしも。
それ以外手段がないですけど。。。
サイフォンさん
コメントおよび検証をありがとうございます!
おお、一致してるなら大丈夫そうですね
終息してますし、配信もすでに終わってるので
怒られる可能性はほぼないかなと
うちは詳細書かないから自己責任でやってね!って感じです
(関係者がブチギレたらリポジトリが消えるでしょうし・・・)
あとは実行中のDolphinからメモリダンプとか?(復号化されてるかもですが)
Richard Roeさん
>終息してますし、配信もすでに終わってるので
怒られる可能性はほぼないかなと
そうですね。
まずできる人が相当限られてますからね。
kof94くらいなら、ヤフオクでvcのソフトを紹介しているwiiに入ってる場合があるので、それを回収するのがベストですね。
>あとは実行中のDolphinからメモリダンプとか?(復号化されてるかもですが)
このやり方だとcromのみ取得できませんでしたね。
軽い容量のならいけそうですけど。
リアルバウト2と月華2幕は駄目でした。
それ以外のデータは問題なくダンプできますよ。
ところでアケアカのkof94ってどのデータが改変されてるんですか?
あんこさんへ
似たような改変だと思ったのは勘違いでした、すいません
自分で書いたブログ記事のWiiのわくわく7の不具合をちょっとだけ修正する
71,4e,71,4eというバイナリ改変部分がメタスラXの中に大量にあっただけでした
わくわく7はもっと色々改変されてますね
メタルスラッグXの改変は判明しました
オリジナルのデータをDotEmuのに突っ込んでプレイすると
tcrfに書いてあるように海賊版対策が発動しました!
海賊版対策の部分潰してるようです
MVS実機+UNI-BIOSで遊んでるとき一度だけなにかの拍子で
発動して見たことはあったのですが久しぶりに見れて嬉しかったですw
なのでCRCは合わないものの他のエミュレータで遊ぶなら
海賊版対策部分は基本的にスルーする仕様になってるはずなので
問題はなさそうです
わくわく7はWii実機の時点で不具合が判明しているので
バッドダンプ扱いでいいと思ってます
(実は去年まで気づいてなかったですがw)
わくわく7に関しては現段階では意図した改変というか
なにかしらミスってる可能性大ですね
WiiのVCのはDotEmuさんのみたいに特殊な事やってないと思うので
KOF94とか他のは多分改変されてないと思うんですけどねぇ
自分は7年前にやってたのでやり方とかすっかり忘れてます
なんとかリバースシリーズをPCでやりたかったついでの部分だったりするのでw
しげるさんへ
>海賊版対策の部分潰してるようです
>MVS実機+UNI-BIOSで遊んでるとき一度だけなにかの拍子で
>発動して見たことはあったのですが久しぶりに見れて嬉しかったですw
おお!まさかのROM改変は海賊版チェック回避だったのですね
しかしdotemuは公式デバッグ用のエミュレーターでも使ったんでしょうかね;
最近だとARESがプロテクトで起動しなかったりエラー吹いたりしますね
あれは厳密動作をモットーにしてるんで、そういうものなのでしょうけども。
でも意図的に見ることはあんまりないのでレアですなw
>わくわく7はWii実機の時点で不具合が判明しているので
>バッドダンプ扱いでいいと思ってます
>わくわく7に関しては現段階では意図した改変というか
>なにかしらミスってる可能性大ですね
アカン。何で弄ったのかよく分からないってもねえ;
>自分は7年前にやってたのでやり方とかすっかり忘れてます
>なんとかリバースシリーズをPCでやりたかったついでの部分だったりするのでw
NEOGEO界隈もそうですが、年数過ぎると失われたノウハウも多い印象があります
特にエミュレーター界隈は消えたサイトも多いので。
リバースはSwitchでも販売すべきですよねぇ
自分もギリ確保しましたけど
入手や遊ぶ手段が断たれちゃうのはこまったもんです
Richard Roeさん
しげるさん
わくわく7はもしかしたら、フラッシュ対策かもしれないですね。
けっこうチカチカする演出がある感じなので。
サイフォンさんへ
あ!そういえばと思って今確認してましたが
KO時のフラッシュとか確かになくなってました!!
キャラ選択時の背景が高速で動くのも確かにてんかん発作起こしそうな
動きといえばそうですけどやりすぎ感はありますね・・・
ほぼフラッシュ対策で確定ですね(謎がまた解けた)
しかしその副作用でチュートリアルで画面暗くならなくなっているという凡ミス・・・
そもそも現在発売されているアケアカ版ではフラッシュも全部そのまま再現されてるという・・・
ひどい・・・
あんこさんへ
リバースシリーズはSwitchでも発売すべきですよねぇ・・・
Wii Uと3DSももうすぐオンラインサービス終わるので
前のWiiの時みたいになってるようですが
再ダウンロードはそれより長く続けるという任天堂のアナウンスもあってややこしいです
パッチも恐らく再ダウンロードに含まれると思いますが
後、なんやかんやいっていたPrime Gaming分KOF2003の
PROM変換ツール改変版もどうやら大丈夫そうなので公開しておきました
なぜ昔にあったのにほぼ同じm1暗号化ツールが最近公開されたのかも分かりましたw
失われたノウハウですが当時は結構ハック等で動作させてるものも多かったので
厳密に動作するエミュレータとか増えてきている現在では既にややこしくなり始めてますね
サイフォンさん
まさかの光過敏対策ですか。これも時世ってやつでしょうかねえ;
しげるさんへ
任天堂の古い製品はアカウント紐づけじゃないんで
本体が壊れたら終わりっていう限界が切ないところですね;
まぁそこまで遊ばせることが考慮されてないんでしょうけど。
さすがにSwitchはアカウントあるんで
そこから紐づけでSwitch2でも遊べるとは思いますが。
>後、なんやかんやいっていたPrime Gaming分KOF2003の
>PROM変換ツール改変版もどうやら大丈夫そうなので公開しておきました
お!ありがとうございます。色々参考にさせてもらいますね!
>なぜ昔にあったのにほぼ同じm1暗号化ツールが最近公開されたのかも分かりましたw
はて、なんでだろう?対応の違いとかでしょうか。
>失われたノウハウですが当時は結構ハック等で動作させてるものも多かったので
>厳密に動作するエミュレータとか増えてきている現在では既にややこしくなり始めてますね
Romsetの由来が謎でしげるさんがブチギレまくってましたものね;
特に復号化済みとか、オフィシャルっぽい名前で実は違うとかw
過去は復号物が多くてハックも飛び交ってましたから
今は全部解読済なので逆に迷惑みたいな感じではありますね;
Richard Roeさん
しげるさん
解決できたようで何よりです。
まあフラッシュはない方が健康的ですからね。
ところで、wiiのメモリダンプですが、
容量の少ないゲームならcromいけそうですが、
そうでない場合はcromは抽出できません。
それ以外のデータはいけます。
サイフォンさんへ
やっぱ容量大きいゲームはオンメモリに展開できないんですかね;
なるほどですね~コンシューマーゆえの制限って感じですな
NEOGEOCDも4MBまでしか読めなくて色々削られてるようですし・・・
あんこさんへ
最近m1ツールがリリースされたのは陳さんが大昔にm1暗号化ツールが
あったことを知らずにiq_132さんにお願いしたからだそうですw
なぜいきなり公開されたのか疑問に思ってたのですが納得の理由でしたw
そんなわけで改変前のPROM変換ツールもiq_132さん経由らしいので
それなら問題ないかなと思って改変分も公開した次第です
kof2003dって絶対存在しない超キメラハックですからね
今後のために名前変更とかしておいてほしかったです
知ってたはずなんですがものすごい昔なので
完全に忘れてました
最初から純粋なNEOGEO本来の動作をしてないんですよ
そういえばFBneoでkof2k1fdとして復号分が動くのも気づいてなかったのですが
あれは家庭用なので本来(クリーミーマミさん採用分含む)kof2k1hdセット
じゃないとだめなんですよ
って感じにすでになっちゃってるのでややこしすぎますね…ムムム
しげるさんへ
なるほど、そういうことだったんですね~
IQさんもNeoconvとかでコード気に入らないと
さっくりと作り直したりする人なんで
被っても気にしなかったのかも?
公開してもらったのでひゃっほいってなりました
今日はマージでボコボコにされてヘロってるので
中身は後日見させてもらいます!
2003dとか、お?なんかの正当バリエーションかな?ってなりますよ;
挙動が全然違うとかキメラにもほどがあります。
あの辺の時代ってとりあえず何でもいいから動かすって
ことが主眼になってたので、完全に解析された今だとかみ合わない事多いですよね。
なんとkof2k1fdも正規じゃないキメラなんですね;
まぁ見てると、そこらへんの修正はあまりされなさそうかなぁと
仕切り直しとかで整理することがあれば別でしょうけど・・・
公式にkof2k1fd増やして!とかリクエストだしても、またなんか言われそう(怖
そういえば、WiiVCのNEOGEOにも対応したPythonの抽出スクリプトを試してみましたが、
どうも1つ目のソフト(斬サム)変換時、ロムデータは変換されるものの、セーブデータの変換あたりでエラーが出てうまくいきませんでした。
サイフォンさん
ありゃま?あんまり数の検証してなさそうなスクリプトなので
対応が万全じゃあないのかもしれません。
ところどころ謎のファイルがぽつぽつありますし;
セーブデーター周りは飛ばすように改造しちゃってもいいかもですね。
Richard Roeさん
ところがそのあたりはファイル名などを処理しているようで、変換自体ができなくなります。
問題の箇所は以下です。
wiimetadata.py
class NandDump(object):
# path: path on filesystem to the extracted NAND dump
def __init__(self, path):
self.path = path + ‘/’
def scantickets(self):
tickets = os.listdir(os.path.join(self.path, ‘ticket’, ‘00010001’))
for ticket in tickets:
id = ticket.rstrip(‘.tik’)
content = os.path.join(‘title’, ‘00010001’, id, ‘content’)←これ
title = os.path.join(content, ‘title.tmd’)
if(os.path.exists(os.path.join(self.path, title))):
appname = self.getappname(title)
if not appname: continue
#print(title, content + appname)
name = self.gettitle(os.path.join(content, appname), id)
channeltype = self.channeltype(ticket)
if name and channeltype:
print(‘%s: %s (ID: %s)’ % (channeltype, name, id))
ext = RomExtractor(id, name, channeltype, self)
ext.extract()
print()←これ
if __name__ == ‘__main__’:
import sys
nand = NandDump(sys.argv[1])
nand.scantickets()←これ
エラー内容は、encodeとdecodeがどうのこうのってなってました
サイフォンさんへ
ありゃま;変換止まっちゃうんですか、これはもうしわけない;
メタデータ処理とかNAND扱いのファイルの解凍とかで引っかかってる?
ぱっとみるとtik(ticket)を見てるようなんでNANDの解凍関係かな?
鍵周りがなんかあるんかなぁ。
抜いた鍵が違うとエラー出るから数回試せってありますが
可能性とすればそこか、後は共通鍵でしょうか。
作者さんが反応することを期待してissueあげてみるといいかもですが
ただ放置されてるとほとんど反応は望めないんですよねえ。
Richard Roeさん
return title.decode(ascii)をreturn titleだけにすればネオジオの変換くらいはできます。
ただ、キーをneogeo_key.pyに格納しろといっても
neogeo_key.pyがないので、どこに格納すればいいのかわかりません。
サイフォンさん
作者のReadmeとコミットを改めて読んでみたんですが
自分も見落としていまして
PyCryptodomeのインストールすることで
pip install pycryptodome
AESは暗号自動解除できるように変更したようです
Dolphinからのメモリダンプは不要になってました。
neogeo_key.pyはその際に削除されていました。
https://github.com/JanErikGunnar/vcromclaim/commit/ddbb800a80a64c6e4b05aa496b419d2f4387ff69
neogeo_convert.pyをカスタムする必要があるかも?という記載がありました
一部のNEOGEOには処理が書かれてるようです。分割数などを指定すればいいようですね。
そのままリストにないROMをぶち込むと、めちゃくちゃな分割がされるようです。(Vが6MB1個とか)
もし旧版の方がいいなら
https://github.com/JanErikGunnar/vcromclaim/tree/a9dafcac9c951e0d16771d2f7a134f5b9cd2bdac
こっちからダウンロードすればいいかと思います
(念のため)エラーに関してはShowMiiWadsでEXTRACT→NANDで行えば止まらないと思います
folderにしているとなんかそれっぽいエラーが出ました。
自分もチェックが甘くて申し訳なかったです、すみませんでした。
Richard Roeさん
いえいえ、ご教授助かります。
こちらでもいろいろ頑張ってみます。
先程のとおり、return title.decode(ascii)をreturn titleだけにして変換したものの、以下のエラー内容が出ました。
「キーを取得しましたが、AES 復号化に失敗しました。PyCryptodome または PyCrypto がインストールされていることを確認してください。」
でもPyCryptodomeインストールしてるんですよね。
何が足りないのだろう?
neogeo_convert.py
//line38
‘055’: (convert_kof94, “kof94”),
//line175
def convert_kof94(input, output):
output.createFile(“p1.p1”,
getPart(input.regions[‘P’].data, 1, 1024*KILOBYTE)
+ getPart(input.regions[‘P’].data, 0, 1024*KILOBYTE))
output.createFile(“m1.m1”, input.regions[‘M’].data)
split_region(input, output, ‘V1’, [‘v1.v1’, ‘v2.v2’, ‘v3.v3’])
output.createFile(“s1.s1”, pad(input.regions[‘S’].data, 128*KILOBYTE))
convert_common_c(input, output, 4)
こんな感じで追加すれば、きちんと切ってくれるようです。
このままコピペだと記号が変換されてるので記事に追加しておきます。
サイフォンさん
うちはPS4の8分切断ん時にPyCryptodome入れてそのまま問題なく動いたっぽい?です
バージョンとかで問題起きるのかなぁ。あんまりこの辺解決に至らなくて申し訳ない。
なんかブログでPyCryptodomeは定義が衝突することがあって
インストールしてるのに呼び出せないことがあるとか記載がありました
その方は古いPyCryptoとPyCryptodomeアンインストールから
PyCryptodome再インストールでなおったとか。
タイトル関係は
もしかするとchannel titleが日本語だったり
空白だとエラー吹くのかも?
もしそこら辺ならWADder v3.1 beta使ってみて
タイトル全部の言語で英語に書き換えてください
https://gbatemp.net/download/wadder.36938/updates
んで、未改造のスクリプトで動作させてみたらどうでしょうか?
ちょっと自分も色々試してみるのでまた明日以降にでも(もう翌日だけど)
Richard Roeさん
PyCryptodomeをアンインストール後、再度インストールしましたが、やはり駄目でした。
古いほうも試したものの、キーを読み込まないので
変換はできませんでした。
仕方がないので諦めます。
サイフォンさんへ
ありゃま;WindowsでダメならWsl/仮想PC上でPython使うとかダメですかね?
なんか申し訳ない;
Richard Roeさん
無事に変換できました!
今回のツールとPythonツール一式があるフォルダを結びつけていなかったのが原因でした。
ありがとうございました。
サイフォンさん
お、変換できましたか!パスの問題だったのかな?
ほっとしましたよ~よかったです!
追伸 一部スパムに行ってたようです、ごめんなさい;
サイフォンさんへ(亀レスすみません)
アケアカはCが不一致って話だったようです
逆にVCはPが弄られてることが多いという。
Richard Roeさん
はい、パスの問題でしたね。
それでもメガドラや一部ネオジオソフト変換時エラーがでるのですが、cr00、つまりサッカーブロール以降に配信されたもの以外はすでに自力で変換済みですので問題はないですけどね。
cr00対応のゲームもcrom以外はメモリダンプしてました。
こんなことなら得点王買っとけばよかったと思いますが、サッカーゲームって2,3試合やればお腹いっぱいなんですよね。。。
ネオジオCD版の2,3やりましたが、そんな感じでしたので。。。
だから優先度が低かったんですよね~
>アケアカはCが不一致
そうなんですね。
じゃあkof94も差分調べてみますか。
なお、ベースボールスターズ2のネオジオCD版買って検証し、見事cromを抽出できました。
>VCはPが弄られてることが多いという。
vcはみんなフラッシュ対策ですね。
くにおくんのドッジボールもそうですし。
そこはcrc合わせるツールで解決するうえ、むしろ目に優しいので助かるという。
サイフォンさんへ
なるほどなるほど(大体把握)
得点王はそんな感じで面倒くさいことになってたんですねえ;
スポーツゲーム自体あんまり…って感じですねぇ
なぜか受けがいいのか続編作られてますけども
得点王とかステークスウィナー2なんかは
ヤフオクでROMだけ1000円前後で売ってたので
ROMリーダーあれば吸い出して終わるので
そっちのがいいかもですね(人を選ぶけど)
>なお、ベースボールスターズ2のネオジオCD版買って検証し、見事cromを抽出できました。
おお!おめでとうございます!すばらしい。
VCのP弄りはフラッシュ対策でしたか。
後年になって規制なしが売られるあたり、やっぱ時世だったんでしょうなぁ。
Richard Roeさん
フラッシュ対策は歓迎しますが、
台湾あるから販売中止はないですよね。
それさえなければ、得点王シリーズは行けてましたよ。
スポーツ系って常に新鮮でないと、すぐワゴンですから、結局需要ないという。
とりあえずアケアカkof94の変更点の把握と、ネオジオCD版との差分を調べますかね。
あと今回の変換で、wiivcのネオジオにて、ステークスウィナー1,2の正常なcromが入手できました。
アケアカ版は変更されてましたからね。
サイフォンさんへ
スポーツ系は入れ替わりですぐワゴンですもんねぇ
そも遊んでて理不尽感じやすいんですよね
昔のスポーツゲームって;
台湾NGはちょっと前まで中国資本だった影響もあるのかなぁと
あのゆるゆるDotEmuがGOGでも全ROM差し替えてましたし。
(公開停止した古いのは、そのままでしたが)
龍虎2の旭日旗修正は韓国に上場してた影響かなぁ?(今はアラブ資本で上場廃止)
こっちはGOGなどは放置してたので
いかに台湾が許されざるなのか分かる話です
カプコンもそうなんですが修正したり
しなかったりするのが一番イラっとしますわ;
本田面の修正はcasだとしてるけどSF30thはしてないんですよね・・・
NEOGEOCDだとC削ってる説書かれてましたが
初期のKOFはロードが超ながかったんでワンちゃんあるかも?
ステークスウィナーおめですよ!
Richard Roeさん
アケアカ版kof94ですが、Cromは一緒でした。
むしろPromが大幅に変わっていたので、ネオジオCD版ではどうしようもありませんでした。
ただし、PSPのアーケードクラシックからメモリダンプして、上下入れ替えたあと、1329DC〜1329DDをF4 67に書き換えれば正規Promが入手できます。
サイフォンさんへ
わざわざ検証ありがとうございます!
まさかのPROM不一致でしたか;
そしてPSPからも抜けるという新事実
ホントにありがとうございました!!