IREM ARCADE HITSのROM抽出 その2 (日本語版)
前提
作業においては自己責任でお願いいたします
また改造部分の保証はしません、無保証での提供になります
こちらの記事でWindows版のIREM ARCADE HITSを変換できる事が前提条件です
ちなみにMac版では日本語版のデータがそもそも含まれていないとか
注意点
dotemu2mame.jsのライセンスが不明瞭(ライセンスなし?)なので
原作者さんから怒られた場合は、記事ごと消す対応になります
そのため、同一保持権の観点から改変済のファイル配布はしない方針です
私的利用はOKのはずなので、各自で改造して貰うと言うかたちです。
アンダーカバーコップス(日本語版)の抽出
日本語版用のスクリプト追記分
Original Author cxx dotemu2mame.js
https://gist.github.com/cxx/81b9f45eb5b3cb87b4f3783ccdf8894f
function uccopsj(srcdir)
{
convert_roms('uccopsj', srcdir, {
maincpu: {
input: 'UCCOPSJ_CPU1.BIN',
output: ['uc_l0_a.ic39', 'uc_l1_a.ic38',
'uc_h0_a.ic28', 'uc_h1_a.ic27'],
transform: bin =>
interleave(bin.slice(0, 0xc0000)).flatMap(b => {
return split_at(b, 0x40000);
})
},
soundcpu: {
input: 'UCCOPSJ_CPU2.BIN',
output: ['uc_sl0.ic31', 'uc_sh0.ic30'],
transform: interleave
},
gfx1: {
input: 'UCCOPSJ_GFX1.BIN',
output: ['uc_c0.ic26', 'uc_c1.ic25',
'uc_c2.ic24', 'uc_c3.ic23']
},
gfx2: {
input: 'UCCOPSJ_GFX2.BIN',
output: ['uc_030.ic37', 'uc_020.ic36',
'uc_010.ic35', 'uc_000.ic34']
},
irem: { input: 'UCCOPSJ_SOUND.BIN', output: 'uc_da.bin' }
});
}
上記を2000行付近からコピーアンドペーストで挿入します
2022年12月12日 uc_020.ic35→uc_020.ic36のミスを修正しました
MAME 0.250/FBN/FBAで監査OK確認
uccopsj(srcdir);
2601行付近に挿入します。(前後でもOK)
バイナリデータ処理
このまま抽出をかけるとuc_sh0.ic30とuc_sl0.ic31が
本来は64kbなのに512kbもあるぞ!と怒られます(怒られた)
convertedフォルダ内のUCCOPSJ_CPU2.BINをサイズ調整します
単純に先頭分の128kbを取り出せばOKです(下部分はゴミ)
一番泥臭いやり方として
変換元のUCCOPSJ_CPU2.BINをバイナリエディタで開きます
0000(先頭)から1FFFFからまでコピーします
新規ファイル→ペーストしUCCOPSJ_CPU2.BINとして保存します
あとはWSLのDD使うとかバイナリカットソフト使うとか、ご自由に
Mrヘリの大冒険の抽出
Mr.ヘリ用スクリプト追記分
function mrheli(srcdir)
{
convert_roms('mrheli', srcdir, {
maincpu: {
input: 'MRHELI_CPU.BIN',
output: ['mh-c-l0.bin', 'mh-c-l1-bin', 'mh-c-l3.bin',
'mh-c-h0.bin', 'mh-c-h1.bin', 'mh-c-h3.rom'],
transform: bin =>
interleave(bin).flatMap(b => {
var a = split(b, 0x10000);
return [a[0], a[1], a[3]];
})
},
sprites: {
input: 'MRHELI_GFX1.BIN',
output: ['mh-c-00.bin', 'mh-c-10.bin',
'mh-c-20.bin', 'mh-c-30.bin']
},
gfx2: {
input: 'MRHELI_GFX2.BIN',
output: ['mh-b-a0.bin', 'mh-b-a1.bin', 'mh-b-a2.bin', 'mh-b-a3.bin']
},
gfx3: {
input: 'MRHELI_GFX3.BIN',
output: ['b-b0-.rom', 'b-b1-.rom', 'b-b2-.rom', 'b-b3-.rom']
},
samples: { input: 'MRHELI_SAMPLES.BIN', output: 'c-v0-b.rom' }
});
}
1600行付近に挿入するとbchopperと並びが良いです。
mrheli(srcdir);
2616行付近だと良いかなと
抽出時の注意
あとはスクリプトを実行するだけなのですが
node dotemu2mame.js converted
変換済のZipファイルが残っているとエラーで止まる事があります
そのため、以前に抽出したROMファイル(zip)が残っている場合には
全て移動または削除してから行ってください
うまく行けば2つ日本語版のuccopsjとmrheliが追加で抽出できるようになります。
動作確認
タイトルが日本語版になってます(難易度も違うような?)
全面クリアしてないので問題が起きるかもしれません
デモや面がちゃんと日本語になってます、キャラ名も日本版ですね
Mrヘリはともかくアンダーカバーコップスの方は
日本語版が嬉しい人も多いのではないかなと
再現性重視の人はMAME0.250でもROMが使えますから
そちらがオススメ、特に音楽関係は聞こえてなかったボイスとかが聞ける気が?
動作に関しての補足事項
Mr.ヘリの大冒険はMCUが含まれていないので
Decapされたmh_c-pr-.ic1がMAME0.160から足りないと言われます
MAME0.159(2015年)までは要求されません
FBNの1.0.0.2はoptional扱いで不足してもプレイ可能でした
nightly builds 1.0.0.3ではprogramとなりプレイ不可
他ゲームもRomset更新により認識されなくなります
そのため、手間をかけたくない人はFBNeoの1.0.0.2を推奨します。
エアデュエルから派生したアイレムM72系Decapの関係で
MAME 0.250では他アイレム系でも、けっこうな数がNGになります
(旧バージョンのAndroid版 RTYPE I・IIから変換したROMとかも)
FBNEOで修正が入る前のドライバーファイルに差し替えてビルドすれば
既存のRomでプレイ可能なのを確認しました。詳細は上記記事からどうぞ。
オチ
2年前にすでに変換されてたよ!
(´・ω・)まぁこっちのが楽できると言う事で一つ
ディスカッション
コメント一覧
まだ、コメントがありません