雑記 NEO-CMCの自家ビルド

エミュレーター,日常FinalBurnNEO,VisualStudio,エミュレーター,ネタ

忘れるので忘備録(メモ)です

NEOGEOのROMは復号化されているものがたま~にありまして
任意のタイトルのCやVを暗号化したいときには
NEO-CMCを改造するのが便利です。

自分が度忘れしがちなので、せっかくなので記事にしてみました。

下準備

VisualStudio2022をインストールします


参考)

一般的なオプションを選べば問題ないと思います。
後から必要になった場合は追加できるので、気楽にやりましょう。

スクラップAさんのサイトからメタルスラッグコンプリート用の
MSC_extract_v2.zipをダウンロードします

任意のフォルダーに解凍しておきます。

VisualStudioにプロジェクトを作成

コードなしで続行を選びます。

新規作成既存のコードからプロジェクトを作成を選びます。

ウィザードが立ち上がるのでVisual C++を確認して次へを押します。

プロジェクトファイルの場所
(解凍先の任意のドライブとフォルダー)¥src¥neo-cmc を選びます。
プロジェクト名を任意の名前にします。
自分の場合は、改造するのでMODを追加しておきました。
入力が終わったら、次へを押します。

プロジェクトのビルド方法
VisualStudioを使用するの中のプロジェクトの種類
コンソール アプリケーション プロジェクトに変更します。
操作が終わったら完了を押します。

これでslnファイルが生成されるので
次回からはslnをダブルクリックすれば、この画面になります。

画像では17と記載がありますが、vs2017もインストールされているからです。

完了後にRelease x86を確認しておきます
あとは自分でソースコードを変更してビルドすればOKです。

変更ポイント

testmain.cppを書き換えて自分が暗号化したいタイトルに変更します。

どうやってタイトル名_GFX_KEYが分かるのかというと
prot_cmc.hの中に対応しているタイトルが記載されているのでコピペでOKです。

例えばKOF2003のCを暗号化したいなら
コピペでtestmain.cppのcaseの中から
KOF2003_GFX_KEYと入れ替えればOK

KOF2003、ROTD、PREISLE2、ZUPAPAとかは有用かもしれません
タイトル網羅してくださったスクラップAさんに感謝感謝。

int titleflag = 0;	//0:ZUPAPA 1:PREISLE2 2:ROTD 3:kof2001 4:SAMSHO5 5:samsh5sp 6:KOF2003 7:mslug5

//(略)

		switch (titleflag) {
		case 0:
			extra_xor = ZUPAPA_GFX_KEY;
			break;

		case 1:
			extra_xor = PREISLE2_GFX_KEY;
			break;

		case 2:
			extra_xor = ROTD_GFX_KEY;
			break;

		case 3:
			extra_xor = KOF2001_GFX_KEY;
			break;

		case 4:
			extra_xor = SAMSHO5_GFX_KEY;
			break;

		case 5:
			extra_xor = SAMSHO5SP_GFX_KEY;
			break;

		case 6:
			extra_xor = KOF2003_GFX_KEY;
			break;

		case 7:
			extra_xor = MSLUG5_GFX_KEY;
			break;

ダウンロード

ね?かんたんでしょ?

上記でビルドしたものがこちらになります(実行ファイルとソース同梱)
全てで動作確認できていないので、うまく暗号化できるか分かりません。

ソース込みで公開してくださったScrapA様には、この場で感謝申し上げます。

今回はビルドと自家改造について触れてみました
まぁおそらく、ほとんど需要はないでしょうね(´・ω・)

凄いのはコード書いてるプログラマーさんであって
自分みたいなのは、ざぁこざぁこなのです
なので皆さん気後れせずにビルドしましょう!

で、ビルド繋がりですがFBNeoは開発者さん曰く
x86推奨でx64はバグがあるから非推奨だそうな(詳細不明)
公式見ててもWin x64のビルドボットで
ちょいちょい失敗しがちなのでビルドに失敗する!
という人はx86のがいいかもしれません。ダメな時はダメですけどね!

あとkarilleraのDLLはx86のみなので、x64では動かなくなります
(いまさらkarilleraで通信対戦しないけど)

まぁそっちはGGPO対応のファイトケード2の方がいいでしょうね

ただしファイトケードはFBNeoのlicense違反だと
本家に切れられていますし、本家にもGGPO対応の予定はあるようです
(実装は可能だけど手を付けるかは別問題)