雑 疲れたのでひとやすみ&サイフォンさんのKOF99パッチ(途中分)&HLE MAME改造指示書(忘備録)
祝・幼女戦記2期
どう見てもドイツなんだよなぁ(挨拶
すっかり続編の目がないものと思ってましたが
いやはや、ようやく2期が放送されるようです
Amazonのブラックフライデーセール
neocade /4299円
安すぎぃ!
ちなみにファイルコピーだけでROMがバックアップ可能です
Evercade Toaplan Arcade 4 / 4500円位
割とレア扱いだったようですが発売時よりはプチ安く
他にも東亜物はちょっと下がってる傾向にあるようです。
中身はSDカードなので、アダプター(難度高め)を作ればコピーするだけです。
UNICOのIGSゲーム詰め合わせ機 /4599円
IGS詰め合わせはROMがほぼ独自形式らしいので注意(感謝:doritosさん情報)
DanceDanceRevolutionMini /
ZUIKIさんのライセンス関係なのか今年末で終了みたいです
参考)
一部版権曲はあれこれやらないと鳴らないそうなので注意
サイフォンさんのKOF99パッチ(中途分)
* Patch for 152-p2.sp2 *
* Made by バイナリ書き替え君 Version 2.03 *
*DCパッチは未適応*
*== TARGET_FILE ================
FILENAME 152-p2.sp2
* FileSize: 4194304 bytes
* LastMod : 2025/11/30 12:33:56
*===============================
002646F8: FC→F0
002646F9: E4→E0
002646FA: 14→10
002646FB: 24→20
002646FC: 31→31
002646FD: FD→FD
002646FE: FC→EC
002646FF: EC→E4
00264700: 10→0C
00264701: 2C→24
002A9399: 00→06
002A939F: 00→06
002A93A5: 00→06
002A93AB: 00→06
002A93B1: 00→06
002A93B7: 00→06
002A65A4: 0C→0C
002A65A5: 03→03
002A65A6: 00→00
002A65A7: 00→04
002A65A8: 01→01
002A65A9: 03→03
002A65AA: 0E→10
002A65AB: 03→03
002A65AC: 00→00
002A65AD: 00→04
002A65AE: 01→01
002A65AF: 03→03
002A65B0: 10→12
002A65B1: 03→03
002A65B2: 00→00
002A65B3: 00→04
002A65B4: 01→01
002A65B5: 03→03
002A65B6: 12→14
002A65B7: 03→03
002A65B8: 00→00
002A65B9: 00→04
002A65BA: 01→01
002A65BB: 03→03
002A65BC: 14→10
002A65BD: 03→03
002A65BE: 00→00
002A65BF: 00→04
002A65C0: 01→00
002A65C1: 03→03
002A65C2: 10→12
002A65C3: 03→03
002A65C4: 00→00
002A65C5: 00→0C
002A65C6: 00→00
002A65C7: 03→06
002A65C8: 12→14
002A65C9: 03→03
002A65CA: 00→00
002A65CB: 0C→0C
002A65CC: 00→00
002A65CD: 06→03
002A65CE: 14→0C
002A65CF: 03→03
002A65D0: 00→00
002A65D1: 0C→0C
002A65D2: 00→00
002A65D3: 03→FE
002A65D4: 0C→00
002A65D5: 03→FE
002A65D6: 00→00
002A65D7: 0C→FE
002A65D8: 00→00
00272039: C4→D4
0027203A: 14→10
0027203B: 10→1C
0027203C: 61→61
0027203D: FD→FD
0027203E: D4→D4
0027203F: CC→CC
00272040: 14→14
00272041: 18→18
00272042: 0E→0E
00272043: FD→FD
00272044: C4→C0
00272045: CC→D0
00272046: 10→14
00272047: 10→14
00272048: 03→0F
00272049: 01→FD
0027204A: D3→E0
0027204B: 00→E0
0027204C: 51→20
0027204D: 0F→14
0027204E: 00→03
0027204F: 01→01
00272050: 95→D3
00272051: 02→00
00272052: 00→51
00272053: 0C→0F
00272054: 00→00
00272055: FB→01
00272056: F8→95
00272057: FF→02
00272058: 00→00
00272059: 00→0C
0027205A: 0E→00
0027205B: FD→FB
0027205C: D8→F8
0027205D: C8→FF
0027205E: 0C→00
0027205F: 0C→00
00272060: 13→0E
00272061: FD→FD
00272062: EC→D8
00272063: DC→C8
00272064: 14→0C
00272065: 14→0C
00272086: EC→E4
00272088: 14→1C
00272096: 70→88
002720A6: 14→18
002720AE: 03→00
002720AF: 02→04
002720B2: 51→09
002720C7: 01→05
002720CA: 00→08
002720DF: 01→05
002720F7: 01→03
002720FD: FB→03
002720FE: FC→9D
002720FF: FF→02
00272101: 00→06
00273310: 18→19
00273438: 18→19
00270A4A: 82→7F
00275877: 01→02
0027587D: 02→03
00275883: 02→03
00275889: 06→08
00290C25: 06→00
00290C2B: 06→00
00290C9C: 05→01
00290C9D: FD→02
00290C9E: D4→9D
00290C9F: 00→01
00290CA0: 0C→00
00290CA1: 0C→00
00290CA2: 0A→01
00290CA3: FD→02
00290CA4: EC→28
00290CA5: 00→00
00290CA6: 14→00
00290CA7: 10→00
00290CA8: 01→01
00290CA9: 03→02
00290CAA: 15→29
00290CAB: 00→00
00290CAC: 00→00
00290CAD: 06→00
00290CAE: 01→01
00290CAF: 03→02
00290CB0: 16→2A
00290CB1: 00→00
00290CB2: 00→00
00290CB3: 06→00
00290CB4: 00→01
0028BFF5: 00→06
0028BFFB: 00→06
0028B612: C0→CC
0028B613: E0→D9
0028B614: 10→14
0028B620: 21→20
0028B688: C0→CC
0028B689: E8→DB
0028B68A: 10→14
00288EE6: D4→D8
00288F28: A4→05
00289176: 78→05
00289182: D4→0A
002891B8: 78→05
002891CA: 60→0A
002891F4: A4→05
00289E8E: B0→05
00257604: B4→BE
00257633: 0C→10
0021D374: 80→12
0021D375: 00→13
0028DC0E: BC→C0
0028DC14: BC→C0
0028DC15: F8→F0
0028DC16: 0C→14
0028DC17: 20→1C
0028DC86: AC→B8
0028DC88: 18→1C
0028DC8C: B0→B8
0028DC8D: F4→F0
0028DC8E: 1C→20
0028DC94: 1C→14
0028DC95: 10→14
0028DC9D: 01→02
0028DCFA: B8→BC
0028DCFB: F0→F0
0028DCFC: 0C→10
0028DD00: B8→BC
0028DD01: F8→F0
0028DD02: 0C→14
0028DD03: 20→1C
0028DD72: B0→B8
0028DD73: EC→EC
0028DD74: 18→1C
0028DD78: B0→B8
0028DD79: F0→EC
0028DD7A: 1C→20
0028DD7E: B4→B8
0028DD80: 18→14
0028DD81: 10→14
0028DD89: 01→02
0028C001: 00→06
0028C007: 00→06
0028C00D: 00→06
0028E533: 02→00
0028E535: 02→00
0028E575: 0F→0D
0028E583: 02→00
0028E595: 02→00
0028E5C5: 0F→0D
0028E7FC: 00→80
0028E802: 00→80
0028EA55: 02→00
0028EA67: 02→00
0028EA97: 0F→0D
0028F2AF: 02→00
0028F2B5: 02→00
0028F2BB: 02→00
0028F2C1: 02→00
00263ADF: 02→00
00263AE5: 02→00
00214FF9: 02→00
00216F8A: 04→00
00216F8B: 00→00
00216F8C: CC→00
00216F8D: FF→00
00216FF8: 04→00
00216FF9: 00→00
00216FFA: CC→00
00216FFB: FF→00
002173FE: 03→00
002173FF: 00→00
00217400: CA→00
00217401: FF→00
00218510: A4→A4
00218511: FD→FD
00218512: 90→C0
00218513: C4→BC
00218514: 20→1C
00218515: 18→18
00218516: 61→61
00218517: FD→FD
00218518: 90→C0
00218519: C4→BC
0021851A: 24→20
0021851B: 14→1C
00218578: A4→A4
00218579: FD→FD
0021857A: 94→B4
0021857B: C4→BC
0021857C: 20→18
0021857D: 14→1C
0021857E: 61→61
0021857F: FD→FD
00218580: 8C→B4
00218581: C4→BC
00218582: 2C→1C
00218583: 10→20
002186EF: 03→01
00216C9E: 0E→0E
00216C9F: FD→FD
00216CA0: B4→B4
00216CA1: F8→FC
00216CA2: 1C→1C
00216CA3: 10→10
00216CA4: 00→00
00216CA5: 07→05
00216CA6: 50→50
00216CA7: 01→01
00216CA8: 00→00
00216CA9: 04→04
00216CAA: 00→00
00216CAB: 01→01
00216CAC: 51→51
00216CAD: 01→01
00216CAE: 00→00
00216CAF: 04→04
00216CB0: B4→B4
00216CB1: FD→FD
00216CB2: B4→B4
00216CB3: B8→CC
00216CB4: 18→0C
00216CB5: 18→1C
00216CB6: 61→61
00216CB7: FD→FD
00216CB8: B4→B4
00216CB9: C0→CC
00216CBA: 14→10
00216CBB: 24→20
00216CBC: 0E→0E
00216CBD: FD→FD
00216CBE: B0→B4
00216CBF: F8→F8
00216CC0: 1C→20
00216CC1: 10→10
00216CC2: 0F→0F
00216CC3: FD→FD
00216CC4: C4→BC
00216CC5: D4→D8
00216CC6: 10→10
00216CC7: 20→1C
00216D9D: FC→00
00216DA3: FC→00
00216DA7: 03→02
00216DAF: FC→00
00216DB5: FC→00
00216DC1: 0C→00
00216DCF: FC→00
00216DD5: FC→00
00216DE1: FC→00
00216DE7: FC→00
00216DF3: 0C→00
002A375A: 90→10
002A3760: 90→10
002A3765: 0F→4F
00278953: 03→04
00278D72: F2→01
00278D73: FA→01
00278D74: 24→0F
00278D75: 00→01
00278D76: C0→00
00278D77: FF→00
00278D78: F3→F2
00278D79: FA→FA
00278D7A: 24→24
00278D7B: 00→00
00278D7C: C0→C0
00278D7D: FF→FF
00278D7E: 5A→F3
00278D7F: FA→FA
00278D80: 24→24
00278D81: 00→00
00278D82: C0→C0
00278D83: FF→FF
00278D84: 01→5A
00278D85: 02→FA
00278D86: 0E→24
00278D87: 01→00
00278D88: 00→C0
00278D89: 00→FF
00278D8A: 01→01
00278D8B: 02→02
00278D8C: 0F→0F
00278D8D: 01→01
00278D8E: 00→00
00278D8F: 00→00
00278D90: 0D→0D
00278D91: FD→FD
00278D92: CC→CC
00278D93: 1C→1C
00278D94: 10→10
00278D95: 10→10
00278D96: 12→12
00278D97: FD→FD
00278D98: E8→E8
00278D99: 08→08
00278D9A: 18→18
00278D9B: 14→14
00278D9C: 01→01
00278D9D: 1A→06
00278F52: 02→03
00278F99: 02→03
00278FC9: 02→03
00279079: 02→03
002791F5: 02→03
00279219: 02→03
00279237: 02→03
00278AF9: 0C→4C
00278B2B: 02→03
00278BF9: 02→03
002788C6: 00→53
002788CA: 00→40
0027AD18: CC→D0
0027AD1E: D8→D4
0027AD1F: 00→FC
0027AD26: 28→20
0027AD43: FD→FD
0027AD44: BC→BC
0027AD45: F0→EC
0027AD46: 14→1C
0027AD47: 1C→1C
0027AD48: 16→16
0027AD49: FD→FD
0027AD4A: D0→CC
0027AD4B: 00→00
0027AD4C: 18→1C
0027AD4D: 14→18
0027AD4E: 00→00
0027AD4F: 03→03
0027AD50: F7→F7
0027AD51: 00→00
0027AD52: 20→21
0027AD53: 07→07
0027AD54: 00→00
0027AD55: 03→03
0027AD56: F8→F8
0027AD57: 00→00
0027AD58: 20→21
0027AD59: 07→07
0027AD5A: 00→00
0027AD5B: 03→03
0027AD5C: F9→F9
0027AD5D: 00→00
0027AD5E: 20→21
0027AD5F: 07→07
0027AD60: 00→00
0027AD61: 03→03
0027AD62: FA→FA
0027AD63: 00→00
0027AD64: 20→21
0027AD65: 07→07
0027AD66: 6C→6C
0027AD67: FD→FD
0027AD68: CC→CC
0027AD69: D8→D8
0027AD6A: 14→14
0027AD6B: 14→14
0027AD6C: 61→61
0027AD6D: FD→FD
0027AD6E: D0→CC
0027AD6F: E4→D8
0027AD70: 10→18
0027AD71: 20→18
0027AD72: 00→00
0027AD73: 03→03
0027AD74: FB→FB
0027AD75: 00→00
0027AD76: 00→01
0005BD3F: 03→01
0005BD9F: 03→01
0005BDBF: 03→01
00254B9F: 06→0C
00255657: 02→00
00255658: F1→F1
00255659: FA→FA
0025565A: F9→F9
0025565B: FF→FF
0025565C: CD→CD
0025565D: FF→FF
0025565E: 3C→F3
0025565F: FA→FA
00255660: F9→F9
00255661: FF→FF
00255662: CD→CD
00255663: FF→FF
00255664: 01→3C
00255665: 02→FA
00255666: FD→F9
00255667: 00→FF
00255668: 00→CD
00255669: 02→FF
0025566A: FA→01
0025566B: FA→04
0025566C: 00→FD
00255808: 31→61
0025581C: 31→61
00255832: 00→80
0025583C: 31→61
0025586B: 04→03
00255871: 04→03
0025594A: 25→21
0025595D: 17→26
0026FD95: 02→01
0025F56C: 04→00
00242D7A: 52→50
00242D80: 52→50
00242D86: 52→50
00242D8C: 52→50
0022F362: 0C→00
0022F37A: 0C→00
00232E56: 61→31
0022228B: 0E→04
002222DB: 0E→04
002222F5: 0E→0C
002224DD: 02→00
002224F7: 0E→0C
002B67EE: 34→00
002B67EF: 98→00
002B67F0: 01→00
002B67F1: 10→03
002BD17F: 00→04
002BD18F: 01→02
002BD1AA: 08→00
002BD1B0: 08→00
002BD1B3: 08→0A
002BD1B6: 08→00
002BD1B9: 06→08
002BD1BC: 08→00
002BD1BF: 04→06
002BD25E: F0→EC
002BD260: 10→14
002BD263: 00→01
002BD269: 00→01
002BD26F: 00→01
002BD2B5: 02→04
002B65EC: 40→E1
002B65F8: 41→E2
002B6604: 41→E2
002B6610: 41→E2
002B661C: 41→E2
002B662E: EB→E3
002B64FE: 40→E1
002B650A: 41→E2
002B6516: 41→E2
002B6522: 41→E2
002B652E: 41→E2
002B6540: EB→E3
002B54F0: 43→E4
002B557E: 43→E4
002B48A0: 40→E1
002B48AC: 41→E2
002B48B8: 41→E2
002B48E4: 40→E1
002B48F0: 41→E2
002B48FC: 41→E2
002B4928: 40→E1
002B4934: 41→E2
002B4940: 41→E2
002B42EE: 42→E3
002B41BA: 41→E2
002B41BB: FA→FA
002B41AE: 40→E1
002B40BE: 42→E3
002B40F6: 41→E2
002B4102: 41→E2
002B411A: 42→E3
002B3F1E: 41→E2
002B3F1F: FA→FA
002B3F12: 40→E1
002B367A: 43→E4
002B36FA: 43→E4
002AE74A: B4→29
002AE74B: FD→FA
002AE74C: B8→00
002AE74D: E4→00
002AE74E: 20→00
002AE74F: 18→00
002AE750: 61→47
002AE751: FD→FA
002AE752: B8→D0
002AE753: E4→FF
002AE754: 24→C0
002AE755: 1C→FF
002AE756: 0E→56
002AE757: FD→FA
002AE758: B4→FC
002AE759: F8→FF
002AE75A: 10→00
002AE75B: 18→00
002AE75C: 13→57
002AE75D: FD→FA
002AE75E: E0→FC
002AE75F: FC→FF
002AE760: 20→00
002AE761: 18→00
002AE762: 00→B4
002AE763: 00→FD
002AE764: A3→B8
002AE765: 03→E4
002AE766: 00→20
002AE767: 0C→18
002AE768: 00→00
002AE769: 01→00
002AE76A: A5→A3
002AE5F8: B8→29
002AE5F9: FD→FA
002AE5FA: B8→00
002AE5FB: E4→00
002AE5FC: 20→00
002AE5FD: 18→00
002AE5FE: 61→47
002AE5FF: FD→FA
002AE600: B8→D0
002AE601: E4→FF
002AE602: 24→C0
002AE603: 1C→FF
002AE604: 0E→56
002AE605: FD→FA
002AE606: B4→FC
002AE607: F8→FF
002AE608: 10→00
002AE609: 18→00
002AE60A: 13→57
002AE60B: FD→FA
002AE60C: E0→FC
002AE60D: FC→FF
002AE60E: 20→00
002AE60F: 18→00
002AE610: 20→BC
002AE611: 00→FD
002AE612: A3→B8
002AE613: 03→E4
002AE614: 60→20
002AE615: 0C→18
002AE616: 00→20
002AE617: 01→00
002AE618: A5→A3
002AE619: 03→03
002AE61A: 00→60
002AE4A6: 6C→29
002AE4A7: FD→FA
002AE4A8: B8→00
002AE4A9: E4→00
002AE4AA: 20→00
002AE4AB: 18→00
002AE4AC: 61→47
002AE4AD: FD→FA
002AE4AE: B8→D0
002AE4AF: E4→FF
002AE4B0: 24→C0
002AE4B1: 1C→FF
002AE4B2: 0E→56
002AE4B3: FD→FA
002AE4B4: B4→FC
002AE4B5: F8→FF
002AE4B6: 10→00
002AE4B7: 18→00
002AE4B8: 13→57
002AE4B9: FD→FA
002AE4BA: E0→FC
002AE4BB: FC→FF
002AE4BC: 20→00
002AE4BD: 18→00
002AE4BE: 00→6C
002AE4BF: 00→FD
002AE4C0: A3→B8
002AE4C1: 03→E4
002AE4C2: 00→20
002AE4C3: 0C→18
002AE4C4: 00→00
002AE4C5: 01→00
002AE4C6: A5→A3
002AD657: 10→08
002AD695: 10→09
002AD8FF: 02→01
002AD905: 02→01
002AD90B: 02→01
002B1073: 00→01
002879BF: E0→F0
002879C1: 2C→1C
00287A21: E0→F0
00287A23: 2C→1C
002862D4: 60→90
00286314: 60→90
00242D6E: 52→50
00242D74: 52→50
00241C9A: 05→1D
0021ADC1: FC→00
0021CEBE: 08→F8
0021CEBF: 00→FF
0021D390: 0B→03
0021D394: 22→20
0021D396: 0B→03
0021D39A: 22→20
0021D39C: 0B→03
0021D3A0: 22→20
0021D3A2: 0B→03
パッチ冒頭にも記載していますが
K’追加分は素パッチでは対応できない部分があるので後回しです
DCパッチ対応分も未記載ですが、バグフィックス分はすべて記述してあります
ミスがありましたらコメントまでお願いします。
patファイルの適応はバイナリ書き換え君とか使う感じで一つ。HXDバッチ版は盛大にバグりましたゴメンナサイ
同じ場所にコピーして実行すれば行けるはずです。
ジョイスティック改造の進捗
とりあえずProMicroサイズのRP2040(中華互換)が到着しました
ざっくり言うと1段ピンをずらせば互換が取れます
GP2040CEを焼く場合はsparkfunのProMicroで焼かないと
スタートボタンがショートできないので詰みます(注意)
ただGNDピンを任意設定するにはGP2040CEの
カスタムビルドが必要?なのかなと(よくわかってない)
あとはボタンが足りないです、本家同様にFunction式にすると
LED設定のボタンがスタート&セレクト&他のボタンなので押せません
仕方ないので、スタートとセレクトの同時押しピンをGPIOに当てて増設する方向です。
Qsound HLE MAMEの改造指示書(忘備録)
ダウンロードだけではサーバーが消えてしまうと、入手不可能になるのでメモがてら
================================================================================
MAME QSound HLE ROMレス化 - 完全版修正指示書
================================================================================
【目的】
MAME の QSound HLE 実装で dl-1425.bin を不要にする
【方針】
- DSP内部ROM (dl-1425.bin) のテーブルデータをハードコード化
- サンプルROM (*.qsnd) アクセス機能は維持
- device_rom_interface はサンプルROM用に保持
================================================================================
ファイル1: src/devices/sound/qsoundhle.h の修正
================================================================================
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-1】17行目:クラス宣言の確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【正しい状態を確認】
class qsound_hle_device : public device_t, public device_sound_interface, public device_rom_interface<24>
※ device_rom_interface<24> が含まれていること
※ 末尾にカンマがないこと
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-2】約23行目:parent_rom_device_type() 宣言を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除する行】
static auto parent_rom_device_type(); // QSOUND
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-3】約30行目:device_rom_region() 宣言を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除する行】
tiny_rom_entry const *device_rom_region() const override;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-4】約37行目:rom_bank_pre_change() 宣言を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除する行(2行)】
// device_rom_interface implementation
virtual void rom_bank_pre_change() override;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-5】約130行目:m_dsp_rom メンバー変数を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【場所】
// MAME resources
sound_stream *m_stream;
required_region_ptr<uint16_t> m_dsp_rom; ← この行を削除
uint16_t m_data_latch;
【変更後】
// MAME resources
sound_stream *m_stream;
uint16_t m_data_latch;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 H-6】約167行目:read_dsp_rom() 宣言を変更
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【変更前】
inline uint16_t read_dsp_rom(uint16_t addr) { return m_dsp_rom[addr & 0xfff]; }
【変更後】
int16_t read_dsp_rom(uint16_t offset);
================================================================================
ファイル2: src/devices/sound/qsoundhle.cpp の修正
================================================================================
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-1】28行目付近:ハードコードテーブルを追加
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【挿入位置】
#include <algorithm>
#include <limits>
↓ この直後に以下を追加 ↓
【追加するコード】
──────────────────────────────────────────
// ============================================================================
// ハードコードされたDSP ROMテーブル(FBNeoより移植)
// ============================================================================
// ドライミックステーブル(パンニング用)
static const int16_t qsound_dry_mix_table[33] = {
-16384,-16384,-16384,-16384,-16384,-16384,-16384,-16384,
-16384,-16384,-16384,-16384,-16384,-16384,-16384,-16384,
-16384,-14746,-13107,-11633,-10486,-9175,-8520,-7209,
-6226,-5226,-4588,-3768,-3277,-2703,-2130,-1802,
0
};
// ウェットミックステーブル(パンニング用)
static const int16_t qsound_wet_mix_table[33] = {
0,-1638,-1966,-2458,-2949,-3441,-4096,-4669,
-4915,-5120,-5489,-6144,-7537,-8831,-9339,-9830,
-10240,-10322,-10486,-10568,-10650,-11796,-12288,-12288,
-12534,-12648,-12780,-12829,-12943,-13107,-13418,-14090,
-16384
};
// リニアミックステーブル(リニアパンニング用)
static const int16_t qsound_linear_mix_table[33] = {
-16379,-16338,-16257,-16135,-15973,-15772,-15531,-15251,
-14934,-14580,-14189,-13763,-13303,-12810,-12284,-11729,
-11729,-11144,-10531,-9893,-9229,-8543,-7836,-7109,
-6364,-5604,-4829,-4043,-3246,-2442,-1631,-817,
0
};
// FIRフィルター係数テーブル(5種類、各95タップ)
static const int16_t qsound_filter_data[5][95] = {
{ // テーブル0(アドレス 0xd53)
0,0,0,6,44,-24,-53,-10,59,-40,-27,1,39,-27,56,127,174,36,-13,49,
212,142,143,-73,-20,66,-108,-117,-399,-265,-392,-569,-473,-71,95,-319,-218,-230,331,638,
449,477,-180,532,1107,750,9899,3828,-2418,1071,-176,191,-431,64,117,-150,-274,-97,-238,165,
166,250,-19,4,37,204,186,-6,140,-77,-1,1,18,-10,-151,-149,-103,-9,55,23,
-102,-97,-11,13,-48,-27,5,18,-61,-30,64,72,0,0,0,
},
{ // テーブル1(アドレス 0xdb2)- デフォルト左チャンネルフィルター
0,0,0,85,24,-76,-123,-86,-29,-14,-20,-7,6,-28,-87,-89,-5,100,154,160,
150,118,41,-48,-78,-23,59,83,-2,-176,-333,-344,-203,-66,-39,2,224,495,495,280,
432,1340,2483,5377,1905,658,0,97,347,285,35,-95,-78,-82,-151,-192,-171,-149,-147,-113,
-22,71,118,129,127,110,71,31,20,36,46,23,-27,-63,-53,-21,-19,-60,-92,-69,
-12,25,29,30,40,41,29,30,46,39,-15,-74,0,0,0,
},
{ // テーブル2(アドレス 0xe11)- デフォルト右チャンネルフィルター
0,0,0,23,42,47,29,10,2,-14,-54,-92,-93,-70,-64,-77,-57,18,94,113,
87,69,67,50,25,29,58,62,24,-39,-131,-256,-325,-234,-45,58,78,223,485,496,
127,6,857,2283,2683,4928,1328,132,79,314,189,-80,-90,35,-21,-186,-195,-99,-136,-258,
-189,82,257,185,53,41,84,68,38,63,77,14,-60,-71,-71,-120,-151,-84,14,29,
-8,7,66,69,12,-3,54,92,52,-6,-15,-2,0,0,0,
},
{ // テーブル3(アドレス 0xe70)
0,0,0,2,-28,-37,-17,0,-9,-22,-3,35,52,39,20,7,-6,2,55,121,
129,67,8,1,9,-6,-16,16,66,96,118,130,75,-47,-92,43,223,239,151,219,
440,475,226,206,940,2100,2663,4980,865,49,-33,186,231,103,42,114,191,184,116,29,
-47,-72,-21,60,96,68,31,32,63,87,76,39,7,14,55,85,67,18,-12,-3,
21,34,29,6,-27,-49,-37,-2,16,0,-21,-16,0,0,0,
},
{ // テーブル4(アドレス 0xecf)
0,0,0,48,7,-22,-29,-10,24,54,59,29,-36,-117,-185,-213,-185,-99,13,90,
83,24,-5,23,53,47,38,56,67,57,75,107,16,-242,-440,-355,-120,-33,-47,152,
501,472,-57,-292,544,1937,2277,6145,1240,153,47,200,152,36,64,134,74,-82,-208,-266,
-268,-188,-42,65,74,56,89,133,114,44,-3,-1,17,29,29,-2,-76,-156,-187,-151,
-85,-31,-5,7,20,32,24,-5,-20,6,48,62,0,0,0,
}
};
// モード2および特殊フィルター用データ(209値)
static const int16_t qsound_filter_data2[209] = {
// アドレス 0xf2e - 出力無効化フィルター(95個のゼロ)
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,
// アドレス 0xf73 - モード2フィルター(45値)
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,
-371,-196,-268,-512,-303,-315,-184,-76,276,-256,298,196,990,236,1114,-126,4377,6549,791,
// アドレス 0xfa0 - フィルタリング無効(中央タップ = -16384)
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,-16384,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
// ADPCMステップサイズテーブル
static const int16_t adpcm_step_table[16] = {
154, 154, 128, 102, 77, 58, 58, 58,
58, 58, 58, 58, 77, 102, 128, 154
};
──────────────────────────────────────────
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-2】約29-37行目:parent_rom_device_type() 関数を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除するコード(9行)】
//-------------------------------------------------
// parent_rom_device_type - get parent device type
// for ROM search
//-------------------------------------------------
inline auto qsound_hle_device::parent_rom_device_type()
{
return &QSOUND;
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-3】約42-49行目:ROM_START ブロックを削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除するコード(8行)】
// DSP internal ROM region
ROM_START( qsound_hle )
ROM_REGION16_LE( 0x2000, "dsp", 0 )
// removing WORD_SWAP from original definition
ROM_LOAD16_WORD( "dl-1425.bin", 0x0000, 0x2000, CRC(d6cf5ef5) SHA1(555f50fe5cdf127619da7d854c03f4a244a0c501) )
ROM_IGNORE( 0x4000 )
ROM_END
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-4】約63-71行目:コンストラクタを修正
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【変更前】
qsound_hle_device::qsound_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, QSOUND_HLE, tag, owner, clock)
, device_sound_interface(mconfig, *this)
, device_rom_interface(mconfig, *this)
, m_stream(nullptr)
, m_dsp_rom(*this, "dsp")
, m_data_latch(0)
{
}
【変更後】
qsound_hle_device::qsound_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, QSOUND_HLE, tag, owner, clock)
, device_sound_interface(mconfig, *this)
, device_rom_interface(mconfig, *this)
, m_stream(nullptr)
, m_data_latch(0)
{
}
※ 「, m_dsp_rom(*this, "dsp")」の行を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-5】約71-79行目:device_rom_region() 関数を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除するコード(9行)】
//-------------------------------------------------
// rom_region - return a pointer to the device's
// internal ROM region
//-------------------------------------------------
const tiny_rom_entry *qsound_hle_device::device_rom_region() const
{
return ROM_NAME( qsound_hle );
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-6】約81-89行目:rom_bank_pre_change() 関数を削除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【削除するコード(9行)】
//-------------------------------------------------
// rom_bank_pre_change - refresh the stream if the
// ROM banking changes
//-------------------------------------------------
void qsound_hle_device::rom_bank_pre_change()
{
m_stream->update();
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【修正 C-7】約345行目:read_dsp_rom() 関数を追加
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【挿入位置】
int16_t qsound_hle_device::read_sample(uint16_t bank, uint16_t address)
{
bank &= 0x7fff;
const uint32_t rom_addr = (bank << 16) | (address << 0);
const uint8_t sample_data = read_byte(rom_addr);
return (int16_t)(sample_data << 8); // bit0-7 is tied to ground
}
↓ この直後に以下の関数を追加 ↓
【追加するコード】
──────────────────────────────────────────
int16_t qsound_hle_device::read_dsp_rom(uint16_t offset)
{
// フィルター係数(モード1用、5テーブル × 95タップ)
if (offset >= 0xd53 && offset < 0xd53 + (5 * 95))
{
int table_index = (offset - 0xd53) / 95;
int tap_index = (offset - 0xd53) % 95;
return qsound_filter_data[table_index][tap_index];
}
// フィルターデータ2(モード2および特殊フィルター)
if (offset >= 0xf2e && offset < 0xfff)
{
int index = offset - 0xf2e;
if (index < 209)
return qsound_filter_data2[index];
}
// パンテーブル
if (offset >= DATA_PAN_TAB)
{
int pan_offset = offset - DATA_PAN_TAB;
int channel = pan_offset / 196;
int local_offset = pan_offset % 196;
bool is_wet = (local_offset >= 98);
int pan_index = is_wet ? (local_offset - 98) : local_offset;
if (pan_index <= 32)
{
int table_idx = (channel == 0) ? pan_index : (32 - pan_index);
return is_wet ? qsound_wet_mix_table[table_idx] : qsound_dry_mix_table[table_idx];
}
else if (pan_index >= 48 && pan_index <= 80)
{
int linear_idx = pan_index - 48;
if (linear_idx <= 32)
{
int table_idx = (channel == 0) ? linear_idx : (32 - linear_idx);
return is_wet ? 0 : qsound_linear_mix_table[table_idx];
}
}
}
// ADPCMステップテーブル
if (offset >= DATA_ADPCM_TAB + 8 && offset < DATA_ADPCM_TAB + 24)
{
int index = offset - (DATA_ADPCM_TAB + 8);
if (index >= 0 && index < 16)
return adpcm_step_table[index];
}
return 0;
}
──────────────────────────────────────────
================================================================================
修正箇所チェックリスト
================================================================================
【qsoundhle.h】
□ H-1: device_rom_interface<24> が含まれている(末尾カンマなし)
□ H-2: parent_rom_device_type() 宣言を削除
□ H-3: device_rom_region() 宣言を削除
□ H-4: rom_bank_pre_change() 宣言を削除(コメント含む2行)
□ H-5: m_dsp_rom メンバー変数を削除
□ H-6: read_dsp_rom() 宣言を変更
【qsoundhle.cpp】
□ C-1: ハードコードテーブルを追加
□ C-2: parent_rom_device_type() 関数を削除(9行)
□ C-3: ROM_START ブロックを削除(8行)
□ C-4: コンストラクタから m_dsp_rom 初期化を削除
□ C-5: device_rom_region() 関数を削除(9行)
□ C-6: rom_bank_pre_change() 関数を削除(9行)
□ C-7: read_dsp_rom() 関数を追加
================================================================================
変更しないもの(重要)
================================================================================
【保持する項目】
✓ device_rom_interface<24> の継承
✓ device_rom_interface(mconfig, *this) の初期化
✓ read_byte() の使用
✓ read_sample() 関数
✓ その他すべての既存関数
================================================================================
ビルドとテスト
================================================================================
# クリーンビルド
make clean
make
# テスト実行
./mame sfii -window
./mame vhuntjr2 -window
# 確認事項
✓ "dl-1425.bin not found" エラーが出ないこと
✓ "Required memory region ':qsound:dsp' not found" エラーが出ないこと
✓ 音声が正常に再生されること
✓ エコー/リバーブが機能していること
================================================================================
最終的なファイル構成
================================================================================
【qsoundhle.h】
✓ device_rom_interface<24> を継承(サンプルROM用)
✓ read_dsp_rom() 宣言あり
✗ m_dsp_rom メンバー変数なし
✗ parent_rom_device_type() なし
✗ device_rom_region() なし
✗ rom_bank_pre_change() なし
【qsoundhle.cpp】
✓ ハードコードテーブルあり
✓ read_dsp_rom() 実装あり
✓ device_rom_interface 初期化あり(サンプルROM用)
✗ m_dsp_rom 初期化なし
✗ parent_rom_device_type() 関数なし
✗ ROM_START ブロックなし
✗ device_rom_region() 関数なし
✗ rom_bank_pre_change() 関数なし
================================================================================
成果
================================================================================
✓ dl-1425.bin が完全に不要になりました
✓ サンプルROM (*.qsnd) は引き続き使用できます
✓ QSound HLE が FBNeo と同様にROMレスで動作します
================================================================================
以上
================================================================================最悪、指示書が残っていればコミット進んでもどうにかなるでしょうし
WEB上に残しておくことも大事かなと。
ファイルそのものは以下の記事からどうぞ
旧来のインターフェイスが欲しい人はARCADEx64版もあります
しめ
NanoBananaのお陰で
クソコラがすぐ作れるいい時代になりましたねえ(挨拶
プロンプトは以下の通り(参考)
ビートマニアの曲名元画像は自分で用意してアップロードする事
ビートマニアというゲームのプレイ前の曲名表示がされた画面です
この中心にある曲名の(元の曲名)という文字を書式を変えずに
(任意の曲名)に変更してください。
最下段の(元のアーティスト名)は(任意のアーティスト名)に変更してください
”(元のジャンル名)”は"(任意のジャンル名)"に変更してください。
本気で弄るならComfyUI→テンプレートから
NanoBananaを使ってAPI経由が良さそう(1枚21円)ですね。
金曜日で体力使い果たして土曜日にくたばってました;
はんだ付け間違えたりパッチいれ間違えたので、休息に専念することに
今さらAM4のCPUを買いましたが、載せ替える気力もでなくてばたんきゅーでした
年齢が積み重なると、いやおうなしに衰えを自覚させられますなぁ(ヨレヨレ
寒暖差の波が激しいですが、皆様もお体に気を付けてお過ごしくださいませ。































ディスカッション
コメント一覧
NeoGeoの改造ネタで思い出しましたが、Retroarchを使っているなら、systemフォルダ配下のfbneoフォルダにpatchedフォルダを作成したら特別権限のあるフォルダになるので、そこに放り込まれたROMは全てのCRCを無視して起動してくれるとか
Visco Collection に収録の ネオドリフトアウト は改変されているが、上記の方法で動かす事が出来ました
他に改変されたタイトル(ベースボールスターズ2 や レイジ・オブ・ザ・ドラゴンズ 等)やパッチを当てたタイトル等、CRCが変わっているものも動きそうです
ファイル名やファイルサイズは正しくしておく必要はありますけど
既にご存じの方もいるでしょうが一応。。。
その仕様が表に出てないんで、みんな混乱するんですよね;
IPSもパッチできるようになったようなんですが説明がないという
元々FBNって実装してもだんまりが多すぎるのと
libretro版は真ボスがメインなので、ますますよく分からんのです。
本来は本家同様にCRC不備でも読み込んでたのを
アホが動かないとかクラッシュしたって言ったようで厳格化したようですし…
PCベースだと速度落ちることもあって
中華機とかラズパイくらいでしか使わないので
あんまりRetroArchはさわってないんです;
UI設計が(ピー)すぎて、設定が分かりにくすぎて切れそうになるんすよねえ
特にコントローラーまわり。
Steam「Mortal Kombat Legacy Kollection」が発売して一ケ月にも関わらずセールに来ていたので買ってみました
20%offとまだまだ割引率は渋いけど
海外PS用のbin+cueはそのまま格納されており、他はcowabungaで抽出が可能です
(出力されるzipファイルは11GB以上になる為、注意が必要)
SNES/Genesis/32x/GG/海外GB/海外GBAのファイルが抽出でき、32xのBIOSは以下コマンドで切り出し
bcut.exe mk_legacy_kollection.exe 32X_Master-BIOS.bin 0xd0ee50 0x800
bcut.exe mk_legacy_kollection.exe 32X_Slave-BIOS.bin 0xd0f650 0x400
AC用データも格納されており、抽出できるような気がします
(Mortal Kombat 4用に別途必要とされる tms32032 も格納されていました)
お、モーコン解析ありがとうございました!
32xのBIOSまで抜けるのですね
ACの方は要解析って感じでしょうか。
基本的に32Xのbiosは出番無いとはいえ、他に抽出媒体も無いですし、結構嬉しいですね。
買っておこうかなぁ
BIOSで困らないっていう点ではありかと思います
問題は復刻されるのかとか入手性がって言うのがありますけども;
Steam「Mortal Kombat Legacy Kollection」からAC版「Ultimate Mortal Kombat 3」の抽出バッチを作成してみました
① cowabunga にて抽出に必要なファイルを抽出、作成された11GB超のzipファイル内にある \roms\moo\Midway\UltimateMortalKombat3配下のファイルより抽出する
② 下記の4cut.txtを事前に作成しておく
[4cut.txt]=================================================================
4
0 0
1 1
2 2
3 3
=================================================================
③ 下記のumk3.batを実行する
[umk3.bat]=================================================================
bswap.exe d B umk3.maincpu oddeven.txt um312u54.bin um312u63.bin
bcut.exe umk3.dcs.packed umk3-u2.bin 0 0x100000
bcut.exe umk3.dcs.packed mk3-u3.bin 0x100000 0x100000
bcut.exe umk3.dcs.packed mk3-u4.bin 0x200000 0x100000
bcut.exe umk3.dcs.packed mk3-u5.bin 0x300000 0x100000
bswap.exe d B umk3.gfxrom 4cut.txt umk3.gfxrom.0 umk3.gfxrom.1 umk3.gfxrom.2 umk3.gfxrom.3
bcut.exe umk3.gfxrom.0 mk3-u133.bin 0 0x100000
bcut.exe umk3.gfxrom.0 mk3-u129.bin 0x100000 0x100000
bcut.exe umk3.gfxrom.0 mk3-u125.bin 0x200000 0x100000
bcut.exe umk3.gfxrom.0 umk-u121.bin 0x300000 0x100000
bcut.exe umk3.gfxrom.0 umk-u113.bin 0x500000 0x100000
bcut.exe umk3.gfxrom.1 mk3-u132.bin 0 0x100000
bcut.exe umk3.gfxrom.1 mk3-u128.bin 0x100000 0x100000
bcut.exe umk3.gfxrom.1 mk3-u124.bin 0x200000 0x100000
bcut.exe umk3.gfxrom.1 umk-u120.bin 0x300000 0x100000
bcut.exe umk3.gfxrom.1 umk-u112.bin 0x500000 0x100000
bcut.exe umk3.gfxrom.2 mk3-u131.bin 0 0x100000
bcut.exe umk3.gfxrom.2 mk3-u127.bin 0x100000 0x100000
bcut.exe umk3.gfxrom.2 mk3-u123.bin 0x200000 0x100000
bcut.exe umk3.gfxrom.2 umk-u119.bin 0x300000 0x100000
bcut.exe umk3.gfxrom.2 umk-u111.bin 0x500000 0x100000
bcut.exe umk3.gfxrom.3 mk3-u130.bin 0 0x100000
bcut.exe umk3.gfxrom.3 mk3-u126.bin 0x100000 0x100000
bcut.exe umk3.gfxrom.3 mk3-u122.bin 0x200000 0x100000
bcut.exe umk3.gfxrom.3 umk-u118.bin 0x300000 0x100000
bcut.exe umk3.gfxrom.3 umk-u110.bin 0x500000 0x100000
del umk3.gfxrom.0 umk3.gfxrom.1 umk3.gfxrom.2 umk3.gfxrom.3
copy /b umk3.serial_security_pic 463_mk3_ultimate.u64
=================================================================
④ batファイルにて作成された27ケのファイルを umk3.bat として圧縮する
FBneo、MAME2003plus、MAME2010で起動を確認
ちなみに Mortal Kombat 3 の mk321u54.bin と mk321u63.bin は mk3.maincpu を oddeven分割しればいけると思ったがCRCが一致しませんでした
Mortal Kombat の1や2はromセットが多いので特定するのが大変かも?
普段は抽出対象となるファイルと http://adb.arcadeitalia.net/default.php の情報からromセット、ファイル名、ファイルサイズ、CRCなどを参考に抽出するので
ACモータルコンバット3の抽出を投稿いただきありがとうございます
1とか2は大変でしょうけどもマージ差分を総当たりする感じかなぁ?
ローリングサンダーですら面倒でしたからねぇ;
Mortal Kombat 1/2/3 の抽出batです
[mk.bat]==================================================================
copy /b mk.adpcm_cpu mks-u3.rom
bcut.exe mk.adpcm_oki mks-u12.rom 0 0x40000
bcut.exe mk.adpcm_oki mks-u13.rom 0x80000 0x40000
bswap.exe d B mk.gfxrom 4cut.txt mk.gfxrom.0 mk.gfxrom.1 mk.gfxrom.2 mk.gfxrom.3
bcut.exe mk.gfxrom.0 mkt-ug14.bin 0 0x80000
bcut.exe mk.gfxrom.0 mkt-ug16.bin 0x80000 0x80000
bcut.exe mk.gfxrom.0 mkt-ug17.bin 0x100000 0x80000
bcut.exe mk.gfxrom.1 mkt-uj14.bin 0 0x80000
bcut.exe mk.gfxrom.1 mkt-uj16.bin 0x80000 0x80000
bcut.exe mk.gfxrom.1 mkt-uj17.bin 0x100000 0x80000
bcut.exe mk.gfxrom.2 mkt-ug19.bin 0 0x80000
bcut.exe mk.gfxrom.2 mkt-ug20.bin 0x80000 0x80000
bcut.exe mk.gfxrom.2 mkt-ug22.bin 0x100000 0x80000
bcut.exe mk.gfxrom.3 mkt-uj19.bin 0 0x80000
bcut.exe mk.gfxrom.3 mkt-uj20.bin 0x80000 0x80000
bcut.exe mk.gfxrom.3 mkt-uj22.bin 0x100000 0x80000
del mk.gfxrom.0 mk.gfxrom.1 mk.gfxrom.2 mk.gfxrom.3
bswap.exe d B mkr4.maincpu oddeven.txt mkt-uj12.bin mkt-ug12.bin
====================================================================
mkt-uj12.bin mkt-ug12.bin はCRCが一致しないが、MAME2000plus/MAME2010では動作可能
[mk2.bat]==================================================================
bcut.exe mk2.dcs.packed su2.l1 0 0x80000
bcut.exe mk2.dcs.packed su3.l1 0x80000 0x80000
bcut.exe mk2.dcs.packed su4.l1 0x100000 0x80000
bcut.exe mk2.dcs.packed su5.l1 0x180000 0x80000
bcut.exe mk2.dcs.packed su6.l1 0x200000 0x80000
bcut.exe mk2.dcs.packed su7.l1 0x280000 0x80000
bswap.exe d B mk2.gfxrom 4cut.txt mk2.gfxrom.0 mk2.gfxrom.1 mk2.gfxrom.2 mk2.gfxrom.3
bcut.exe mk2.gfxrom.0 ug14-vid 0 0x100000
bcut.exe mk2.gfxrom.0 ug16-vid 0x100000 0x100000
bcut.exe mk2.gfxrom.0 ug17-vid 0x200000 0x100000
bcut.exe mk2.gfxrom.1 uj14-vid 0 0x100000
bcut.exe mk2.gfxrom.1 uj16-vid 0x100000 0x100000
bcut.exe mk2.gfxrom.1 uj17-vid 0x200000 0x100000
bcut.exe mk2.gfxrom.2 ug19-vid 0 0x100000
bcut.exe mk2.gfxrom.2 ug20-vid 0x100000 0x100000
bcut.exe mk2.gfxrom.2 ug22-vid 0x200000 0x100000
bcut.exe mk2.gfxrom.3 uj19-vid 0 0x100000
bcut.exe mk2.gfxrom.3 uj20-vid 0x100000 0x100000
bcut.exe mk2.gfxrom.3 uj22-vid 0x200000 0x100000
del mk2.gfxrom.0 mk2.gfxrom.1 mk2.gfxrom.2 mk2.gfxrom.3
bswap.exe d B mk2.maincpu oddeven.txt uj12.l31 ug12.l31
====================================================================
uj12.l31 ug12.l31 はCRCが一致しないが、MAME2000plus/MAME2010では動作可能
[mk3.bat]==================================================================
bcut.exe mk3.dcs.packed mk3-u2.bin 0 0x100000
bcut.exe mk3.dcs.packed mk3-u3.bin 0x100000 0x100000
bcut.exe mk3.dcs.packed mk3-u4.bin 0x200000 0x100000
bcut.exe mk3.dcs.packed mk3-u5.bin 0x300000 0x100000
bswap.exe d B mk3.gfxrom 4cut.txt mk3.gfxrom.0 mk3.gfxrom.1 mk3.gfxrom.2 mk3.gfxrom.3
bcut.exe mk3.gfxrom.0 mk3-u133.bin 0 0x100000
bcut.exe mk3.gfxrom.0 mk3-u129.bin 0x100000 0x100000
bcut.exe mk3.gfxrom.0 mk3-u125.bin 0x200000 0x100000
bcut.exe mk3.gfxrom.0 mk3-u121.bin 0x300000 0x100000
bcut.exe mk3.gfxrom.0 mk3-u117.bin 0x400000 0x80000
bcut.exe mk3.gfxrom.1 mk3-u132.bin 0 0x100000
bcut.exe mk3.gfxrom.1 mk3-u128.bin 0x100000 0x100000
bcut.exe mk3.gfxrom.1 mk3-u124.bin 0x200000 0x100000
bcut.exe mk3.gfxrom.1 mk3-u120.bin 0x300000 0x100000
bcut.exe mk3.gfxrom.1 mk3-u116.bin 0x400000 0x80000
bcut.exe mk3.gfxrom.2 mk3-u131.bin 0 0x100000
bcut.exe mk3.gfxrom.2 mk3-u127.bin 0x100000 0x100000
bcut.exe mk3.gfxrom.2 mk3-u123.bin 0x200000 0x100000
bcut.exe mk3.gfxrom.2 mk3-u119.bin 0x300000 0x100000
bcut.exe mk3.gfxrom.2 mk3-u115.bin 0x400000 0x80000
bcut.exe mk3.gfxrom.3 mk3-u130.bin 0 0x100000
bcut.exe mk3.gfxrom.3 mk3-u126.bin 0x100000 0x100000
bcut.exe mk3.gfxrom.3 mk3-u122.bin 0x200000 0x100000
bcut.exe mk3.gfxrom.3 mk3-u118.bin 0x300000 0x100000
bcut.exe mk3.gfxrom.3 mk3-u114.bin 0x400000 0x80000
del mk3.gfxrom.0 mk3.gfxrom.1 mk3.gfxrom.2 mk3.gfxrom.3
bswap.exe d B mk3.maincpu oddeven.txt mk321u54.bin mk321u63.bin
====================================================================
mk321u54.bin mk321u63.bin はCRCが一致しないが、MAME2010では動作可能
昨日、モータルコンバット1/2/3の抽出バッチを投稿しましたが、スパム扱いになってる?
モーコンの解析ありがとうございました!
というかサクサク解析されましたねえ。すごい。
スパムってました;
投稿いただきありがとうございます!