===================================================================================================== rominfoの内容について ===================================================================================================== [書式] 例)CPS1PSPのlostwrld FILENAME( lostwrld, forgottn, 1, 1, 0, 0 ) REGION( 0x200000, CPU1, 0 ) ROMX( 2, lw-11c.14f, 0x00000, 0x20000, 0x67e42546, 1, 1 ) ROMX( 2, lw-15c.14g, 0x00001, 0x20000, 0x402e2a46, 1, 1 ) ROMX( 2, lw-10c.13f, 0x40000, 0x20000, 0xc46479d7, 1, 1 ) ROMX( 2, lw-14c.13g, 0x40001, 0x20000, 0x97670f4a, 1, 1 ) ROM( 0, lw-07, 0x80000, 0x80000, 0xfd252a26 ) REGION( 0x400000, GFX1, 0 ) ROMX( 0, lw-02, 0x000000, 0x80000, 0x43e6c5c8, 2, 6 ) ROMX( 0, lw-09, 0x000002, 0x80000, 0x899cb4ad, 2, 6 ) ROMX( 0, lw-06, 0x000004, 0x80000, 0x5b9edffc, 2, 6 ) ROMX( 0, lw-13, 0x000006, 0x80000, 0x8e058ef5, 2, 6 ) ROMX( 0, lw-01, 0x200000, 0x80000, 0x0318f298, 2, 6 ) ROMX( 0, lw-08, 0x200002, 0x80000, 0x25a8e43c, 2, 6 ) ROMX( 0, lw-05, 0x200004, 0x80000, 0xe4552fd7, 2, 6 ) ROMX( 0, lw-12, 0x200006, 0x80000, 0x8e6a832b, 2, 6 ) REGION( 0x28000, CPU2, 0 ) ROM( 0, lwu00, 0x00000, 0x08000, 0x59df2a63 ) ROM( 1, 0x10000, 0x08000, 0x00000000 ) REGION( 0x40000, SOUND1, 0 ) ROM( 0, lw-03.14c, 0x00000, 0x20000, 0xce2159e7 ) ROM( 0, lw-04.13c, 0x20000, 0x20000, 0x39305536 ) END ---------------------------------------------------------------------------------------------------- 比較用のMAMEのドライバ記述例 #define CODE_SIZE 0x200000 ROM_START( lostwrld ) ROM_REGION( CODE_SIZE, REGION_CPU1, 0 ) ROM_LOAD16_BYTE( "lw-11c.14f", 0x00000, 0x20000, CRC(67e42546) SHA1(3e385661f71616180a26b74e443978077246fe66) ) ROM_LOAD16_BYTE( "lw-15c.14g", 0x00001, 0x20000, CRC(402e2a46) SHA1(cbb7017e75a425706505717bf83c2615f53309f9) ) ROM_LOAD16_BYTE( "lw-10c.13f", 0x40000, 0x20000, CRC(c46479d7) SHA1(84fd9ef33ae7d0af2110e8dc299de25c0f039cee) ) ROM_LOAD16_BYTE( "lw-14c.13g", 0x40001, 0x20000, CRC(97670f4a) SHA1(f249977c814abdff85007216d7fa57db5684be0f) ) ROM_LOAD16_WORD_SWAP( "lw-07", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) ROM_REGION( 0x400000, REGION_GFX1, 0 ) ROMX_LOAD( "lw-02", 0x000000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-09", 0x000002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-06", 0x000004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-13", 0x000006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-01", 0x200000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-08", 0x200002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-05", 0x200004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) ROMX_LOAD( "lw-12", 0x200006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) ROM_REGION( 0x8000, REGION_GFX2, 0 ) ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */ ROM_REGION( 0x18000, REGION_CPU2, 0 ) ROM_LOAD( "lwu00", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) ROM_CONTINUE( 0x10000, 0x08000 ) ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Samples */ ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) ) ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) ) ROM_END /* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ GAME( 1988, forgottn, 0, forgottn, forgottn, cps1, ROT0, "Capcom", "Forgotten Worlds (US)", 0 ) GAME( 1988, lostwrld, forgottn, forgottn, forgottn, cps1, ROT0, "Capcom", "Lost Worlds (Japan)", 0 ) ※MVSの場合 /* YEAR NAME PARENT BIOS MACHINE INPUT INIT MONITOR */ GAMEB( 1990, nam1975, neogeo, neogeo, neogeo_s, neogeo, neogeo, ROT0, "SNK", "NAM-1975", 0 ) GAMEB( 1990, bstars, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Baseball Stars Professional", 0 ) ===================================================================================================== 基本的な事 ・FILENAMEではじめて、ENDで必ず閉じること。 ・FILENAMEの行とENDの行の先頭には空白等は入れないこと。 ・REGION、ROM、ROMXはタブではじめること。また、タブの後に空白等は入れないこと。 ・1行は最大255文字まで。 ・各パラメータはカンマ(,)と半角空白で区切ること。半角空白は何文字入れてもかまいません。 ===================================================================================================== FILENAME( ROMセット名, 親セット名, マシンタイプ, 入力タイプ, 初期化タイプ, 画面タイプ ) ゲームの各種情報を設定します。 ROMセット名: MAMEのドライバの ROM_START()に書かれている名前を記入してください。 親セット名: GAME()またはGAMEB()の左から3番目のPARENTの名前を記入します。 PARENTが 0 の場合は、CPS1ならcps1、CPS2ならcps2を記入してください。 MVSは特殊で、0 の場合はPCB基板なので、pcbと記入してください。 マシンタイプ: GAME()の場合は左から4番目、MVSの場合は左から5番目のMACHINEの名前に該当するものを 下記のリストから探し、該当する番号を記入します。無い場合はソースコードの変更が必要です。 入力タイプ: GAME()の場合は左から5番目、MVSの場合は左から6番目のINPUTの名前に該当するものを 下記のリストから探し、該当する番号を記入します。無い場合はソースコードの変更が必要です。 初期化タイプ: GAME()の場合は左から6番目、MVSの場合は左から7番目のINITの名前に該当するものを 下記のリストから探し、該当する番号を記入します。無い場合はソースコードの変更が必要です。 また、romcnvの変更も必要になります。 画面タイプ: GAME()の場合は左から7番目、MVSの場合は左から8番目のMONITORの値が ROT0 なら 0 を、 それ以外であれば 1 を記入します。 ------------------------------------------------------------------------------------------------------- <マシンタイプ:CPS1> 0: cps1 1: forgottn 2: sf2 3: qsound 4: pang3 5: kodb (RELEASEフラグ無効時のみ) <マシンタイプ:CPS2> 0: cps2 (これしかないので、全て 0 を指定) <マシンタイプ:MVS> 0: neogeo 0: neogeo_s (最近追加されたようですが、MVSPSPでは分けていないので、全て 0 を指定) ------------------------------------------------------------------------------------------------------- <入力タイプ:CPS1> 0: cps1 1: forgottn 2: ghouls 3: ghoulsu 4: daimakai 5: strider 6: stridrua 7: dynwar 8: willow 9: unsquad 10: ffight 11: 1941 12: mercs 13: mtwins 14: msword 15: cawing 16: nemo 17: sf2 18: sf2j 19: 3wonders 20: kod 21: kodj 22: captcomm 23: knights 24: varth 25: cworld2j 26: qad 27: qadj 28: qtono2 29: megaman 30: rockmanj 31: wof 32: dino 33: punisher 34: slammast 35: pnickj 36: pang3 37: sfzch 38: knightsh (RELEASEフラグ無効時のみ) 39: wofh (RELEASEフラグ無効時のみ) 40: wof3js (RELEASEフラグ無効時のみ) 41: wofsj (RELEASEフラグ無効時のみ) 42: wofsjb (RELEASEフラグ無効時のみ) 43: dinoh (RELEASEフラグ無効時のみ) <入力タイプ:CPS2> 0: cps2 1: ssf2 2: ddtod 3: sgemf 4: avsp 5: cybots 6: 19xx 7: qndream 8: batcir 9: pzloop2 10: daimahoo <入力タイプ:MVS> (この値は見ていないので、全て 0 を指定) 0: neogeo 0: mjneogeo 0: kog 0: irrmaze 0: svcpcb 0: jockeygp 0: vliner ------------------------------------------------------------------------------------------------------- <初期化タイプ:CPS1> 0: cps1 1: wof 2: dino 3: punisher 4: slammast 5: pang3 6: kodb (RELEASEフラグ無効時のみ) 7: sf2m13 (RELEASEフラグ無効時のみ) 8: wofh (RELEASEフラグ無効時のみ) 9: wof3js (RELEASEフラグ無効時のみ) 10: wof3sj (RELEASEフラグ無効時のみ) 11: wofsjb (RELEASEフラグ無効時のみ) 12: dinob (RELEASEフラグ無効時のみ) 13: dinoh (RELEASEフラグ無効時のみ) <初期化タイプ:CPS2> 0: cps2 0: ssf2tb (トーナメントバトル用に最近分けられたようですが、対応していないので 0 を指定) 1: puzloop2 <初期化タイプ:MVS> 0: neogeo 1: fatfury2 2: kof98 3: mslugx 4: kof99 5: kof99n 6: garou 7: garouo 8: mslug3 9: mslug3n 10: kof2000 11: kof2000n 12: zupapa 13: sengoku3 14: kof2001 15: kof2002 16: mslug5 17: svchaosa 18: samsho5 19: kof2003 20: samsh5sp 21: nitd 22: s1945p 23: pnyaa 24: preisle2 25: ganryu 26: bangbead 27: mslug4 28: rotd 29: matrim 30: ms5pcb 31: svcpcb 32: kf2k3pcb 33: jockeygp 34: vliner 35: garoubl (RELEASEフラグ無効時のみ) 36: kf2k2pls (RELEASEフラグ無効時のみ) 37: kf2k2mp (RELEASEフラグ無効時のみ) 38: kf2k2mp2 (RELEASEフラグ無効時のみ) 39: ms5plus (RELEASEフラグ無効時のみ) 40: svcboot (RELEASEフラグ無効時のみ) 41: svcplus (RELEASEフラグ無効時のみ) 42: svcplusa (RELEASEフラグ無効時のみ) 43: svcsplus (RELEASEフラグ無効時のみ) 44: samsho5b (RELEASEフラグ無効時のみ) 45: kf2k3bl (RELEASEフラグ無効時のみ) 46: kf2k3pl (RELEASEフラグ無効時のみ) 47: kf2k3upl (RELEASEフラグ無効時のみ) 48: kog (RELEASEフラグ無効時のみ) 49: kof10th (RELEASEフラグ無効時のみ) 50: kf10thep (RELEASEフラグ無効時のみ) 51: kf2k5uni (RELEASEフラグ無効時のみ) 52: cthd2003 (RELEASEフラグ無効時のみ) 53: ct2k3sp (RELEASEフラグ無効時のみ) 54: kof2k4se (RELEASEフラグ無効時のみ) 55: lans2004 (RELEASEフラグ無効時のみ) 56: mslug3b6 (RELEASEフラグ無効時のみ) 57: ms4plus (RELEASEフラグ無効時のみ) 58: kof96ep (RELEASEフラグ無効時のみ) 59: kf2k1pls (RELEASEフラグ無効時のみ) 60: kf2k1pa (RELEASEフラグ無効時のみ) 61: cthd2k3a (RELEASEフラグ無効時のみ) 62: kof2002b (RELEASEフラグ無効時のみ) 63: matrimbl (RELEASEフラグ無効時のみ) 64: kf2k2plc (RELEASEフラグ無効時のみ) 65: kf2k4pls (RELEASEフラグ無効時のみ) 66: kof97pla (RELEASEフラグ無効時のみ) 67: fr2ch (RELEASEフラグ無効時のみ) 68: mslug5b (RELEASEフラグ無効時のみ) 69: ct2k3sa (RELEASEフラグ無効時のみ) ===================================================================================================== REGION( メモリ領域のサイズ, メモリ領域の種類, フラグ ) 指定したメモリ領域の情報を設定します。 フラグ以外は MAME の ROM_REGION() と同じ意味です。 メモリ領域のサイズ: MAMEのドライバの ROM_REGION()に書かれているサイズを記入してください。 基本的にはMAMEのドライバの値をそのまま記述すればよいですが、Z80(CPU2)のサイズのみ、 MAMEの値に+0x10000した値を記述してください。 メモリ領域の種類: MAMEのドライバの ROM_REGION()に書かれている種類の名前から、 REGION_ を 除いた名前を記入してください。(例: REGION_GFX1 -> GFX1を記入) フラグ: MVS以外では 0 を記入してください。 MVSでは、以下の値のうち、該当する項目を記入してください。 該当する項目が無ければ、他と同じく 0 を記入します。 複数の場合は、 | で続けて記入します。 ENCRYPTED 暗号化されたROM SOUND_DISABLE SOUND1用。以前はサウンド用のメモリを確保できない場合に、サウンドを無効にしていたため このような名前になっていますが、実際にはPCMキャッシュを使用するかどうかのフラグです。 ===================================================================================================== ROM( 読み込みフラグ, ファイル名, メモリ開始オフセット, サイズ, CRC32 ) ROMX( 読み込みフラグ, ファイル名, メモリ開始オフセット, サイズ, CRC32, 書き込み単位, 書き込みスキップ数 ) ROMファイルの読み込み位置等を設定します。MAMEほど細かく分類していませんが、内容は同じです。 ROM()とROMX()と読み込みフラグの組み合わせ方は、MAMEの各ドライバのソースとrominfoに登録済みのデータ を比較してください。細かく説明するのはかなり面倒なので割愛させていただきますが、似たような記述の ゲームを真似して書けばそれほど大変ではないと思います。 読み込みフラグ: 0 = 通常の読み込み。 1 = CONTINUE。直前のファイルをそのまま別の位置に読み込むとき使用します。 2 = WORD_SWAP。バイトオーダーを入れ替えます。 ファイル名: MAMEでのファイル名です。CRCが一致するファイルが見つからなかった際のエラー検出 に使用するだけで、読み込み時はこれを参照するわけではありません。 メモリ開始オフセット: メモリ上のどの位置へ書き込みを開始するかを記述します。 MAMEのドライバの値をそのまま記述すればよいです。 サイズ: 読み込みサイズを記述します。 CRC32: ファイルのCRC32の値を記述します。全てのファイルはこれを基準に判断しているので、 この値を間違えるとエラーになります。 MAMEのドライバの値をそのまま記述すればよいです。 書き込み単位: ROMX()専用のフラグです。書き込みの最小単位をバイト数で指定します。 MAMEでROM_GROUPWORDフラグが指定されていたり、ROM_LOAD32_WORD/ROM_LOAD32_WORD_SWAP の場合には 2 を、それ以外は 1 を記述すれば大体問題ないと思います。 書き込みスキップ数: ROMX()専用のフラグです。書き込み時に書き込み単位分処理した後、何バイトスキップ するかをバイト数で指定します。MAMEのROM_SKIP()の値が指定されていればそれを、 ROM_LOAD16_BYTEなら 1 を、ROM_LOAD32_WORD/ROM_LOAD32_WORD_SWAPなら 2 を記述すれば 良いと思います。既に設定済みのデータを参照してください。 ===================================================================================================== END ROMセットの情報の終端をあらわします。これが無いとその後も引き続き情報が続いていると判断されて しまうので注意してください。 ===================================================================================================== zipname/zipnamejについて 見れば分かると思います。ゲーム名に , は使えないので、他の文字に置き換えてください。 ----------------------------------------------------------------------------------------------------- 以上。