プライムゲーミング分用KOF2003のHBMAME用差分の一部(PROM暗号化完全完了したのでこの記事は参考記事になりました)(2024/03/24更新)
2024/03/24追記
陳俞佑さんが再アップロードしてくれたのでリンクを変更しておきます
ありがとうございます!
ミラーリング分も念の為残しておきます
kof2003(MVS)分PROM暗号化ツール
2024/03/18追記 2024/03/24変更
再アップロードしていただけたので現在ダウンロードできますが
念の為ミラーリング分も残しておきます
(全く同じものなのでPrime Gaming分は入っておりません)
Prime Gaming分はこちらの記事にあります
2024/03/04追記
陳俞佑さんがコメントして頂いた
kof2003(MVS)セットPROM暗号用コードを
参考にkof2003h(AES)セットもPROM暗号化できるようになったので
公式MAMEや公式FBneoで対応してるセット作成できるようになりました
そんなわけでこの記事はPROM復号分セットの参考記事となりました
自分の作ったプライムゲーミング分セットは
自前でPROMのみ暗号化できなかったため
PROM復号分で動作するドライバー自分で書いてました
陳俞佑さん、ありがとうございました!
PROM暗号化したい方は予習からお願いします
今更ですがプライムゲーミング版やアケアカ等で普通にプレイできるのに
なぜこんなことをやっているのかの解説
真ボスはムカイ(無界)なのですがムカイ(無界)と戦うには
途中で乱入してくるKUSANAGIを超必殺技で倒さなければなりません
すべてのチームのエンディングを見たい場合はレベル1に設定しても
普通のプレイヤーではかなり難しい条件と思われます
そこで邪道ですがラズさんによるUNIBIOSを使って
UNIBIOSに内蔵されているチートを使い
その条件を緩和させようかと思い立ったのが始まりです(というのは建前で本音は未だにPROMのみ暗号化できないため)
このページのHBMAME差分コードで使用するROMセットは
予めこちらを参考にして作成しておいてくだしあ
kof2003.cpp追加分
2023/11/29追記
MVS版に合わせるため都合上ファイル名変更しましたスマセン
2023/11/30追記の追記(2024/02/21)
FBneoの海賊版での動作を知りたかったので
CROM暗号化のテストしてましたがCRCは合ったので
CROM暗号化セットも追加してCROM復号版と暗号化版両方対応させました
公式FBneoの海賊版で無理やり使えるセットとは
完全に別になりました
もしかしてセット名も変更するかもしれないのでスンマセンPROMの暗号化ができれば正規MAME分になるのでそれで完全完了ですPROM暗号化できたので正規MAME分になりました
やっと完全完了致しました
※重要※
2024/03/04追記
PROM暗号化できたのでこの記事は参考用となりました
2024/02/21追記
結局PROM暗号化できませんでしたが自家ビルド分
FBneoでも問題なく動作するようになったので
ソースも変更します
ロムセットも変更しました
ゲーム名等についてはHBMAMEに合わせてますが
最終的にはFBneoと同じに合わせるかもしれません
HBMAMEのUIだと文字がほぼ見切れるのであえて短くしてます
HBMAMEのセットもCROM暗号化分にできたのですが
CROM暗号化できない人がいそうなので復号版も残しておきます
CROM復号分用コード(kf2k3hdfセット分)
//void neogeo_state::init_kof2k3hd()を参考に
//以下作成(MVS版もこちらを使用)
void neogeo_state::init_kof2k3df()
{
init_neogeo();
m_sprgen->m_fixed_layer_bank_type = 2;
//PROM復号部分を無効にするだけ
//m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); // different to kof2k3d
m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
}
ROM_START( kf2k3hdf ) // Fully decrypted version of kof2003h
ROM_REGION( 0x800000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "271-p1hd.p1", 0x000000, 0x400000, CRC(3eb63d66) SHA1(cf97c598e47a54782b9a9095c9907d05613cc19c) )
ROM_LOAD16_WORD_SWAP( "271-p2d.p2", 0x400000, 0x400000, CRC(61cf0139) SHA1(af62ec0aa60ee8c7dbc04658066105add23e4274) )
NEO_SFIX_MT_512K
NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
ROM_REGION( 0x1000000, "ymsnd:adpcma", 0 )
ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
ROM_LOAD( "271-v1c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
ROM_REGION( 0x4000000, "sprites", 0 ) // Decrypted C not Merge SROM
ROM_LOAD16_BYTE( "271-c1d.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
ROM_LOAD16_BYTE( "271-c2d.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
ROM_LOAD16_BYTE( "271-c3d.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
ROM_LOAD16_BYTE( "271-c4d.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
ROM_LOAD16_BYTE( "271-c5d.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
ROM_LOAD16_BYTE( "271-c6d.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
ROM_LOAD16_BYTE( "271-c7hd.c7", 0x3000000, 0x800000, CRC(efe714f8) SHA1(c239744cf372f6f7b2cd1b539a59f792038fe179) )
ROM_LOAD16_BYTE( "271-c8hd.c8", 0x3000001, 0x800000, CRC(c015cdb7) SHA1(baa1bf179f13e07bd93d33bf40b37deaf65d0b0c) )
ROM_END
GAME( 2003, kf2k3hdf, kof2003, neogeo_noslot, neogeo, neogeo_state, init_kof2k3df, ROT0, "SNK Playmore", "Kof2003 (NGH-271)(Decrypted P&C Prime Gaming Version)", MACHINE_SUPPORTS_SAVE )
kf2k3hdfセット(CROM復号分)ではなく
kf2k3hdpセット(FBneo自家ビルド分と同じCROM暗号化分セット)のコードは
こちら(これもkof2003.cppに追記でおk)です
//以下作成(MVS版もこちらを使用)
void neogeo_state::init_kof2003d()
{
init_neogeo();
// PROM復号部分を無効にするだけ
// m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size);
m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
m_sprgen->m_fixed_layer_bank_type = 2;
m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
}
ROM_START( kf2k3hdp ) // Decrypted P version of kof2003h
ROM_REGION( 0x800000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "271-p1hd.p1", 0x000000, 0x400000, CRC(3eb63d66) SHA1(cf97c598e47a54782b9a9095c9907d05613cc19c) )
ROM_LOAD16_WORD_SWAP( "271-p2d.p2", 0x400000, 0x400000, CRC(61cf0139) SHA1(af62ec0aa60ee8c7dbc04658066105add23e4274) )
NEO_SFIX_MT_512K
NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
ROM_REGION( 0x1000000, "ymsnd:adpcma", 0 )
ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
ROM_LOAD( "271-v1c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
ROM_REGION( 0x4000000, "sprites", 0 )
ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) )
ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) )
ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) )
ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) )
ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) )
ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) )
ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) )
ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) )
ROM_END
GAME( 2003, kf2k3hdp, kof2003, neogeo_noslot, neogeo, neogeo_state, init_kof2003d, ROT0, "SNK Playmore", "Kof2003 (NGH-2710)(Decrypted P Prime Gaming Version)", MACHINE_SUPPORTS_SAVE )
neogeo.h追加分(MVS版にも使うのでこちらで定義)
//CROM復号分セット用
void init_kof2k3df();
//CROM暗号化分セット用
void init_kof2003d();
HBMAME用ほぼ最終のCROM復号分セット
(PROMは相変わらず復号分です)
とりあえず入れているS1ファイルは
128KBのS1ではなく512KBのものに変更してます
(FBneo自家ビルド分で使用します)
どちらにせよプライムゲーミング分所持していたら
今後変更があっても全く問題ありません
Listing of archive : kf2k3hdf.zip
Original Packed Ratio Date Time Attr Method CRC-32 Name
---------- ---------- ------ ---------- -------- ----- -------- -------- --------------
8388608 3512289 41.8% 2024/02/19 15:19:58 ---W Deflate e42fc226 271-c1d.c1
8388608 2391618 28.5% 2024/02/19 15:19:58 ---W Deflate 1b5e3b58 271-c2d.c2
8388608 4041968 48.1% 2024/02/19 15:19:58 ---W Deflate d334fdd9 271-c3d.c3
8388608 2802457 33.4% 2024/02/19 15:19:58 ---W Deflate 0d457699 271-c4d.c4
8388608 3881963 46.2% 2024/02/19 15:19:58 ---W Deflate 8a91aae4 271-c5d.c5
8388608 2456121 29.2% 2024/02/19 15:19:58 ---W Deflate 9f8674b8 271-c6d.c6
8388608 3473104 41.4% 2024/02/19 15:19:58 ---W Deflate efe714f8 271-c7hd.c7
8388608 2264745 26.9% 2024/02/19 15:19:58 ---W Deflate c015cdb7 271-c8hd.c8
524288 433440 82.6% 2024/02/19 15:19:54 ---W Deflate 48d9affe 271-m1k.m1
4194304 1109765 26.4% 2024/02/19 15:19:42 ---W Deflate 3eb63d66 271-p1d.p1
4194304 647294 15.4% 2024/02/19 15:19:42 ---W Deflate 61cf0139 271-p2hd.p2
524288 59226 11.2% 2022/12/29 20:38:58 ---W Deflate 1d4ecb1e 271-s1hd.s1
8388608 7848495 93.5% 2024/02/19 15:19:42 ---W Deflate ffa3f8c7 271-v1c.v1
8388608 7743487 92.3% 2024/02/19 15:19:42 ---W Deflate 5382c7d1 271-v2c.v2
---------- ---------- ------ ---------- -------- ----- -------- -------- --------------
93323264 42665972 45.7% 14 files
HBMAMECROM暗号化及び
自家ビルド分FBneo用CROMセットsooner ROMset CROM暗号化分です それ以外の変更はありません
CROM以外のファイルはkf2k3hdfセットのものを使用します
セット名はkf2k3hdpです
(HBMAMEではSROM使用しませんが都合上必ず入れておいてください)
こっちだと圧縮がほとんどかからずファイルサイズが大きくなるので注意
Listing of archive : kf2k3hdp.zip
Original Packed Ratio Date Time Attr Method CRC-32 Name
---------- ---------- ------ ---------- -------- ----- -------- -------- --------------
8388608 8052949 95.9% 2023/11/30 17:17:12 ---W Deflate efb9dd24 271-c1k.c1
8388608 8049480 95.9% 2023/11/30 17:17:12 ---W Deflate 3fb90447 271-c2k.c2
8388608 8051870 95.9% 2023/11/30 17:17:12 ---W Deflate 27950f28 271-c3k.c3
8388608 8049063 95.9% 2023/11/30 17:17:12 ---W Deflate 735177f8 271-c4k.c4
8388608 8051804 95.9% 2023/11/30 17:17:12 ---W Deflate a51b7c0f 271-c5k.c5
8388608 8048421 95.9% 2023/11/30 17:17:12 ---W Deflate d5cae4e0 271-c6k.c6
8388608 8053146 96.0% 2023/11/30 17:17:12 ---W Deflate e65ae2d0 271-c7k.c7
8388608 8048946 95.9% 2023/11/30 17:17:12 ---W Deflate 312f528c 271-c8k.c8
---------- ---------- ------ ---------- -------- ----- -------- -------- --------------
67108864 64405679 95.9% 8 files
hbmame.lstの@source:kof2003.cpp以下に追加
@source:kof2003.cpp
//CROM復号分
kf2k3hdf
//CROM暗号化分
kf2k3hdp
これだけの変更でビルド成功しましたが大多数の方が多分この画面になると思います
これに関してはコマンドラインで直接HBMAME kf2k3hdfと入力すれば起動すると思います?(多分)
似たようなBIOSでごまかすなら
neogeo.hを以下のように上書き変更(UNIBIOSは足りない分はダウンロードしておいてください)
そんなに考えないでごまかしてるので自分で適切に変更したほうがいいと思います
#define NEOGEO_BIOS \
ROM_REGION16_BE( 0x80000, "mainbios", 0 ) \
ROMX_LOAD( "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543), ROM_GROUPWORD | ROM_REVERSE ) \
ROM_SYSTEM_BIOS( 0, "euro", "Europe MVS (Ver. 2)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543) ) /* 5 Dark Blue - Europe, 1 Slot, has also been found on 2 Slot and 4 Slot (the old hacks were designed for this one) */ \
ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* 3 Dark Blue - Europe, 4 Slot */ \
ROM_SYSTEM_BIOS( 2, "asia-mv1c", "Asia NEO-MVH MV1C" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* 6 Dark Blue - Latest Asia bios (MV1C - mask ROM) */ \
ROM_SYSTEM_BIOS( 3, "asia-mv1b", "Asia MV1B" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-s3.sp1", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* 6 Dark Blue - Asia (MV1B) */ \
\
ROM_SYSTEM_BIOS( 4, "us", "US MVS (Ver. 2?)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "sp-u2.sp1", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* 5 Cyan - US, 2 Slot */ \
ROM_SYSTEM_BIOS( 5, "us-e", "US MVS (Ver. 1)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* 5 Yellow - US, 6 Slot (V5?) */ \
ROM_SYSTEM_BIOS( 6, "us-v2", "US MVS (4 slot, Ver 2)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp1-u2", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* 3 Cyan - US, 4 slot - also seen with "v2" label*/ \
ROM_SYSTEM_BIOS( 7, "us-u4", "US MVS (U4)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1-u4.bin", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* 3 Green - 4 Slot (MV-4F) */ \
ROM_SYSTEM_BIOS( 8, "us-u3", "US MVS (U3)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1-u3.bin", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* 2 Green - 6 Slot */ \
\
ROM_SYSTEM_BIOS( 9, "japan", "Japan MVS (Ver. 3)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 9, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* 6 Red - Japan, Ver 6 VS Bios */ \
ROM_SYSTEM_BIOS( 10, "japan-s2", "Japan MVS (Ver. 2)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 10, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* 5 Red - Japan, Older */ \
ROM_SYSTEM_BIOS( 11, "japan-s1", "Japan MVS (Ver. 1)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 11, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* 3 Red - Japan, Older */ \
ROM_SYSTEM_BIOS( 12, "japan-mv1b", "Japan MV1B" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 12, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* 6 Red - Latest Japan bios (MV1B) */ \
ROM_SYSTEM_BIOS( 13, "japan-j3a", "Japan MVS (J3, alt)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 13, "sp1-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* 2 Red - 6 Slot */ \
ROM_SYSTEM_BIOS( 14, "japan-mv1c", "Japan NEO-MVH MV1C" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 14, "sp-j3.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* 6 Red - Latest Japan bios (MV1C - mask ROM) */ \
\
ROM_SYSTEM_BIOS( 15, "japan-hotel", "Custom Japanese Hotel" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 15, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 6 Red - 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \
\
NEOGEO_UNIBIOS(16) \
NEOGEO_UNIBIOS_1_2_AND_OLDER(16) \
ROM_DEFAULT_BIOS("unibios40")
起動確認です
暫定版とりあえず終わり
ビルド環境作成は公式MAMEのこちらを見れば分かるかと
HBMAME公式はこちらです
自分はGCC10.1ではないので念のためこちらでビルドしてます
それでも不安定です
make TARGET=hbmame SYMBOLS=0 NO_SYMBOLS=1 DEPRECATED=0
デバッグモードも大丈夫っぽいです
今更なんですが…
なにかしらやっぱりオリジナルドライバ側に2つ復号化分ありますね…PCB,MVS,AESどれか分からないのですが…
しかもFixedってなんなんだ…
これはまた今度…
一つは例のkof2003dでした
ややこしい、やっぱりいらん子や…
Fixedというのは多分それを元にした
ゲージ半透明モドキにならないやつなのでスルーしてよさそうですね
多分両方ともPCBハック版です(いらん)
この記事が気に入ったらサポートをしてみませんか?