M1.NET - 解密街机音频





5.00/5 (15投票s)
名为M1.NET的软件,展示了解密街机游戏音频的细节
引言
街机在20世纪90年代很受欢迎。许多经典的街机游戏是在著名的系统板上发布的。例如:CPS-1板上的《街头霸王II:冠军版》,Capcom CPS-1(Qsound)板上的《恐龙快打》,Neo Geo板上的《拳皇》系列,Namco System 1板上的《坦克部队》……有一些模拟器可以模拟它们:MAME、WinKawaks、Nebula、FBA……
街机的音效也令人惊叹。我找到了名为M1的唯一一款软件,可以重现街机游戏的音乐。M1可以让你欣赏超过1900款街机游戏的音乐。但M1不是开源软件。
MAME是一个严格的非盈利项目。它的主要目的是作为街机模拟器内部工作原理的参考。你可以用MAME的源代码做任何与街机游戏相关的事情。为了展示解密街机游戏音频的细节,我编写了这个名为M1.NET的软件。
它是如何工作的?
M1.NET支持以下街机系统板:M72、M92、Taito、Taibo B、Capcom、CPS-1、CPS-1(Qsound)、CPS2、Data East、Tehkan、Konami 68000、Neo Geo、Namco System 1。
Irem M72板上有2个CPU在工作:一个NEC V30 CPU和一个Zilog Z80 CPU。V30具有20位地址和16位数据。Z80具有16位地址和8位数据。V30 CPU以8MHz运行。程序将文件“maincpu.rom”加载为V30 ROM。Z80 CPU以3579545 Hz运行。程序将文件“soundcpu.rom”加载为Z80 ROM。有两个声卡芯片:Yamaha YM2151,DAC芯片。
Irem M92板上有2个CPU在工作:一个NEC V33 CPU和一个NEC V30 CPU。两个CPU都具有20位地址和16位数据。V30 CPU以7159090 Hz运行。程序将文件“soundcpu.rom”加载为V30 ROM。有两个声卡芯片:Yamaha YM2151,Irem GA20。
对于Taito板,CPU和芯片的设置各不相同。相关的声卡芯片有:General Instrument AY8910、Yamaha YM2203、Yamaha YM3526。
对于Taito B板,Z80 CPU以4MHz运行,并且有两个声卡芯片:General Instrument AY8910、Yamaha YM2610。程序将文件“audiocpu.rom”加载为Z80 ROM,文件“ymsnd.rom”和可选文件“ymsnddeltat.rom”加载为Yamaha YM2610 ROM。
对于Capcom板,CPU和芯片的设置各不相同。
对于CPS-1,Z80 CPU以3579545 Hz运行,并且有两个声卡芯片:Yamaha YM2151、Oki OKI6295。程序将文件“audiocpu.rom”加载为Z80 ROM,文件“oki.rom”加载为OKI6295 ROM。然后Z80 CPU运行。
对于CPS-1(Qsound)和CPS2,Z80 CPU以8000000 Hz运行,并且有一个Q-Sound芯片。CPS-1(Qsound)使用Kabuki加密了Z80代码。程序将文件“audiocpu.rom”加载为仅用于ReadMemory的Z80 ROM,文件“audiocpuop.rom”加载为仅用于ReadOp的Z80 ROM。CPS2将文件“audiocpu.rom”加载为Z80 ROM。CPS-1(Qsound)和CPS2将文件“qsound.rom”加载为Q-Sound芯片ROM。
对于Data East板,M6502 CPU以1500000Hz运行,并且有四个声卡芯片:General Instrument AY8910、Yamaha YM2203、Yamaha YM3812、Oki MSM5205。
对于Tehkan板,Z80 CPU以3072000Hz运行,并且有3个General Instrument AY8910声卡芯片。
对于Konami 68000板,CPU和芯片的设置各不相同。相关的声卡芯片有:Yamaha YM2151、Konami K007232、Konami K053260、Konami K054539、NEC UPD7759。
对于Neo Geo,Z80 CPU以4000000 Hz运行,并且有两个声卡芯片:General Instrument AY8910和Yamaha YM2610。程序将文件“audiocpu.rom”加载为Z80 ROM,文件“ymsnd.rom”和可选文件“ymsnddeltat.rom”加载为YM2610 ROM。
对于Namco System 1,有两个CPU负责音频:一个Motorola M6809 CPU和一个Hitachi HD63701 CPU。这两个CPU都以1536000 Hz运行。有三个声卡芯片:Yamaha YM2151、Namco CUS30和DAC。程序将文件“audiocpu.rom”加载为M6809 ROM,文件“voice.rom”和“cus64-64a1.mcu”加载为HD63701 ROM。
当双击曲目或单击播放按钮时,会触发`PlayDelegate`、`StopDelegate`、`StopAndPlayDelegate`函数。通过检查运行中的MAME,我发现了这些函数的细节。文件“emu\Inptport.cs”、“mame\cps\CPS.cs”、“mame\neogeo\Neogeo.cs”和“mame\namcos1\Namcos1.cs”显示了这些细节。
该程序使用与M1相同的.lst文件,并使用BridgeM1
的“m1.xml”文件的截断格式。运行程序前,您应安装Microsoft .NET Framework 3.5或更高版本。用户界面简单,功能与BridgeM1
类似。我添加了一些.lst文件。您可以编辑“m1.xml”和.lst文件,并为任何游戏制作ROM来获取其音频。
制作ROM
现在我将解释如何为两个主板制作ROM。
对于CPS-1游戏“ffight
”,我将制作以下文件:“audiocpu.rom”、“oki.rom”。从MAME CPS1代码
https://github.com/mamedev/mame/blob/master/src/mame/drivers/cps1.cpp.
找到以下代码
/* B-Board 89624B-3 */
ROM_START( ffight )
…
ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
ROM_LOAD( "ff_09.12b", 0x00000, 0x08000,
CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
ROM_LOAD( "ff_18.11c", 0x00000, 0x20000,
CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
ROM_LOAD( "ff_19.12c", 0x20000, 0x20000,
CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
…
ROM_END
在文件“ff_09.12b”(早期版本中可能为其他名称,只需检查CRC32 `b8367eb5`以确认文件)的偏移量`0x8000`处插入`0x8000`个零字节,并将其保存为长度为`0x18000`的文件“audiocpu.rom”。简单地按顺序连接文件“ff_18.11c”、“ff_19.12c”到一个文件“oki.rom”,长度为`0x40000`。您可以使用WinHex轻松完成。
对于Capcom QSound(CPS版本)游戏“wof
”,我将制作以下文件:“audiocpu.rom”、“audiocpuop.rom”、“qsound.rom”。从MAME CPS1代码找到以下代码
/* B-Board 91635B-2 */
ROM_START( wof )
…
ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000,
CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
ROM_CONTINUE( ; 0x10000, 0x18000 )
ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000,
CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000,
CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000,
CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000,
CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
…
ROM_END
简单地按顺序连接文件“tk2-q1.1k”、“tk2-q2.2k”、“tk2-q3.3k”、“tk2-q4.4k”到一个文件“qsound.rom”,长度为`0x200000`。通过调试MAME,您可以在源文件“src\mame\machine\kabuki.c”中“kabuki_decode
”函数的末尾设置一个断点,找到起始地址,然后将内存转储到文件中
起始地址 | length | 文件名 |
0x048114c0(dest_op地址) | 0x8000 | audiocpuop.rom |
0x04798660(dest_data地址) | 0x28000 | audiocpu.rom |
或者,您也可以为文件“audiocpu.rom”执行与CPS-1类型相同的工作。然后从正在运行的进程(例如:MAME
、WinKawaks
、Nebula
、FBA
、BridgeM1
…)加载ROM时,通过查找关键字节来转储内存,并替换文件“audiocpu.rom”的前0x8000字节。并转储长度为0x8000的“audiocpuop.rom”的内存。
支持的游戏
我已经支持了以下游戏
- Air Duel (Japan, M72) [airduelm72]
- Lightning Swords [ltswords]
- Gunforce - Battle Fire Engulfed Terror Island (World) [gunforce]
- Blade Master (World) [bmaster]
- Lethal Thunder (World) [lethalth]
- Undercover Cops (World) [uccops]
- Mystic Riders (World) [mysticri]
- Major Title 2 (World, set 1) [majtitl2]
- Hook (World) [hook]
- R-Type Leo (World) [rtypeleo]
- In The Hunt (World) [inthunt]
- Superior Soldiers (US) [ssoldier]
- Gun Force II (US) [gunforc2]
- Tokio / Scramble Formation (newer) [tokio]
- Bubble Bobble (Japan, Ver 0.1) [bublbobl]
- Silent Dragon (World) [silentd]
- Puzzle Bobble (Japan, B-System) [pbobble]
- Ghosts'n Goblins (World? set 1) [gng]
- Street Fighter (US, set 1) [sf]
- Forgotten Worlds (World, newer) [forgottn]
- Lost Worlds (Japan) [lostwrld]
- Ghouls'n Ghosts (World) [ghouls]
- Strider (USA, B-Board 89624B-2) [strider]
- Strider (USA, B-Board 89624B-3) [striderua]
- Dynasty Wars (USA, B-Board 89624B-?) [dynwar]
- Tenchi wo Kurau (Japan) [dynwarj]
- Willow (World) [willow]
- U.N. Squadron (US) [unsquad]
- Final Fight (World, set 1) [ffight]
- 1941: Counter Attack (World 900227) [1941]
- Mercs (World 900302) [mercs]
- Mega Twins (World 900619) [mtwins]
- Magic Sword: Heroic Fantasy (World 900725) [msword]
- Carrier Air Wing (World 901012) [cawing]
- Nemo (World 901130) [nemo]
- Street Fighter II: The World Warrior (World 910522) [sf2]
- Three Wonders (World 910520) [3wonders]
- Three Wonders (World 910513) [3wondersr1]
- The King of Dragons (World 910805) [kod]
- The King of Dragons (World 910711) [kodr1]
- Captain Commando (World 911202) [captcomm]
- Knights of the Round (World 911127) [knights]
- Street Fighter II': Champion Edition (World 920513) [sf2ce]
- Street Fighter II': Champion Edition (L735 Test Rom, bootleg) [sf2amf2]
- Adventure Quiz Capcom World 2 (Japan 920611) [cworld2j]
- Varth: Operation Thunderstorm (World 920714) [varth]
- Quiz & Dragons: Capcom Quiz Game (USA 920701) [qad]
- Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921) [qadjr]
- Warriors of Fate (World 921031) [wof]
- Huo Feng Huang (Chinese bootleg of Sangokushi II) [wofhfh]
- Cadillacs and Dinosaurs (World 930201) [dino]
- Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs) [dinohunt]
- The Punisher (World 930422) [punisher]
- Biaofeng Zhanjing (Chinese bootleg of The Punisher) [punisherbz]
- Saturday Night Slam Masters (World 930713) [slammast]
- Muscle Bomber Duo: Ultimate Team Battle (World 931206) [mbombrd]
- Pnickies (Japan 940608) [pnickj]
- Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123) [qtono2j]
- Mega Man: The Power Battle (CPS1, USA 951006) [megaman]
- Pokonyan! Balloon (Japan 940322) [pokonyan]
- Pang! 3 (Euro 950601) [pang3]
- Street Fighter Zero (CPS Changer, Japan 951020) [sfzch]
- Super Street Fighter II: The New Challengers (World 931005) [ssf2]
- Eco Fighters (World 931203) [ecofghtr]
- Dungeons & Dragons: Tower of Doom (Euro 940412) [ddtod]
- Super Street Fighter II Turbo (World 940223) [ssf2t]
- Alien vs. Predator (Euro 940520) [avsp]
- Darkstalkers: The Night Warriors (Euro 940705) [dstlk]
- Ring of Destruction: Slammasters II (Euro 940902) [ringdest]
- Armored Warriors (Euro 941024) [armwar]
- X-Men: Children of the Atom (Euro 950331) [xmcota]
- Night Warriors: Darkstalkers' Revenge (Euro 950316) [nwarr]
- Cyberbots: Fullmetal Madness (Euro 950424) [cybots]
- Street Fighter Alpha: Warriors' Dreams (Euro 950727) [sfa]
- Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version) [mmancp2u]
- Marvel Super Heroes (Euro 951024) [msh]
- 19XX: The War Against Destiny (USA 951207) [19xx]
- Dungeons & Dragons: Shadow over Mystara (Euro 960619) [ddsom]
- Street Fighter Alpha 2 (Euro 960229) [sfa2]
- Super Puzzle Fighter II Turbo (Euro 960529) [spf2t]
- Mega Man 2: The Power Fighters (USA 960708) [megaman2]
- Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826) [qndream]
- X-Men Vs. Street Fighter (Euro 961004) [xmvsf]
- Battle Circuit (Euro 970319) [batcir]
- Vampire Savior: The Lord of Vampire (Euro 970519) [vsav]
- Marvel Super Heroes Vs. Street Fighter (Euro 970625) [mshvsf]
- Capcom Sports Club (Euro 971017) [csclub]
- Super Gem Fighter Mini Mix (USA 970904) [sgemf]
- Vampire Hunter 2: Darkstalkers Revenge (Japan 970929) [vhunt2]
- Vampire Savior 2: The Lord of Vampire (Japan 970913) [vsav2]
- Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123) [mvsc]
- Street Fighter Alpha 3 (Euro 980904) [sfa3]
- Jyangokushi: Haoh no Saihai (Japan 990527) [jyangoku]
- Hyper Street Fighter II: The Anniversary Edition (USA 040202) [hsf2]
- Giga Wing (USA 990222) [gigawing]
- Mars Matrix: Hyper Solid Shooting (USA 000412) [mmatrix]
- Mighty! Pang (Euro 001010) [mpang]
- Mighty! Pang (Japan 001011) [mpangj]
- Puzz Loop 2 (Euro 010302) [pzloop2]
- Janpai Puzzle Choukou (Japan 010820) [choko]
- Dimahoo (Euro 000121) [dimahoo]
- 1944: The Loop Master (USA 000620) [1944]
- Progear (USA 010117) [progear]
- Pocket Gal (Japan) [pcktgal]
- Pinball Action (set 1) [pbaction]
- M.I.A. - Missing in Action (version T) [mia]
- Teenage Mutant Ninja Turtles (World 4 Players, version X) [tmnt]
- Punk Shot (US 4 Players) [punkshot]
- Lightning Fighters (World) [lgtnfght]
- Bells & Whistles (World, version L) [blswhstl]
- Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UAA) [tmnt2]
- Quiz Gakumon no Susume (Japan ver. JA2 Type L) [qgakumon]
- Sunset Riders (4 Players ver EAC) [ssriders]
- Thunder Cross II (World) [thndrx2]
- NAM-1975 (NGM-001 ~ NGH-001) [nam1975]
- Baseball Stars Professional (NGM-002) [bstars]
- Top Player's Golf (NGM-003 ~ NGH-003) [tpgolf]
- Mahjong Kyo Retsuden (NGM-004 ~ NGH-004) [mahretsu]
- Riding Hero (NGM-006 ~ NGH-006) [ridhero]
- Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007) [alpham2]
- Alpha Mission II / ASO II - Last Guardian (prototype) [alpham2p]
- Cyber-Lip (NGM-010) [cyberlip]
- The Super Spy (NGM-011 ~ NGH-011) [superspy]
- Mutation Nation (NGM-014 ~ NGH-014) [mutnat]
- King of the Monsters (set 1) [kotm]
- Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017) [sengoku]
- Burning Fight (NGM-018 ~ NGH-018) [burningf]
- Burning Fight (prototype, older) [burningfp]
- League Bowling (NGM-019 ~ NGH-019) [lbowling]
- Ghost Pilots (NGM-020 ~ NGH-020) [gpilots]
- Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021) [joyjoy]
- Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023) [quizdais]
- Last Resort [lresort]
- Eight Man (NGM-025 ~ NGH-025) [eightman]
- Legend of Success Joe / Ashita no Joe Densetsu [legendos]
- 2020 Super Baseball (set 1) [2020bb]
- Soccer Brawl (NGM-031) [socbrawl]
- Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033) [fatfury1]
- Robo Army [roboarmy]
- Football Frenzy (NGM-034 ~ NGH-034) [fbfrenzy]
- King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039) [kotm2]
- Sengoku 2 / Sengoku Denshou 2 [sengoku2]
- Baseball Stars 2 [bstars2]
- Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042) [quizdai2]
- 3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043) [3countb]
- Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044) [aof]
- Samurai Shodown / Samurai Spirits (NGM-045) [samsho]
- Top Hunter - Roddy & Cathy (NGM-046) [tophuntr]
- Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047) [fatfury2]
- Super Sidekicks / Tokuten Ou [ssideki]
- The King of Fighters '94 (NGM-055 ~ NGH-055) [kof94]
- Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056) [aof2]
- Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1) [fatfursp]
- Savage Reign / Fu'un Mokushiroku - Kakutou Sousei [savagere]
- Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061) [ssideki2]
- Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063) [samsho2]
- Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069) [fatfury3]
- Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi [ssideki3]
- The King of Fighters '95 (NGM-084) [kof95]
- Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087) [samsho3]
- Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095) [rbff1]
- Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden [aof3]
- The King of Fighters '96 (NGM-214) [kof96]
- The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero [ssideki4]
- Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle [kizuna]
- Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222) [samsho4]
- Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special [rbffspec]
- The King of Fighters '97 (NGM-2320) [kof97]
- The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340) [lastblad]
- The Irritating Maze / Ultra Denryu Iraira Bou [irrmaze]
- Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400) [rbff2]
- Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410) [mslug2]
- The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420) [kof98]
- The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430) [lastbld2]
- Neo-Geo Cup '98 - The Road to the Victory [neocup98]
- Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500) [mslugx]
- The King of Fighters '99 - Millennium Battle (NGM-2510) [kof99]
- Garou - Mark of the Wolves (NGM-2530) [garou]
- Metal Slug 3 (NGM-2560) [mslug3]
- The King of Fighters 2000 (NGM-2570 ~ NGH-2570) [kof2000]
- Zupapa! [zupapa]
- Sengoku 3 / Sengoku Densho 2001 [sengoku3]
- The King of Fighters 2001 (NGM-262?) [kof2001]
- The King of Fighters 2002 (NGM-2650 ~ NGH-2650) [kof2002]
- Metal Slug 5 (NGM-2680) [mslug5]
- SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690) [svc]
- Samurai Shodown V / Samurai Spirits Zero (NGM-2700) [samsho5]
- The King of Fighters 2003 (NGM-2710) [kof2003]
- Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720) [samsh5sp]
- Magician Lord (NGM-005) [maglord]
- Ninja Combat (NGM-009) [ncombat]
- Blue's Journey / Raguy (ALM-001 ~ ALH-001) [bjourney]
- Crossed Swords (ALM-002 ~ ALH-002) [crsword]
- Thrash Rally (ALM-003 ~ ALH-003) [trally]
- Ninja Commando [ncommand]
- World Heroes (ALM-005) [wh1]
- World Heroes 2 (ALM-006 ~ ALH-006) [wh2]
- World Heroes 2 Jet (ADM-007 ~ ADH-007) [wh2j]
- Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008) [aodk]
- World Heroes Perfect [whp]
- Shougi No Tatsujin - Master of Shougi [moshougi]
- Over Top [overtop]
- Ninja Master's - Haoh-ninpo-cho [ninjamas]
- Twinkle Star Sprites [twinspri]
- Zintrick / Oshidashi Zentrix (bootleg of CD version) [zintrckb]
- Crossed Swords 2 (bootleg of CD version) [crswd2bl]
- Viewpoint [viewpoin]
- Janshin Densetsu - Quest of Jongmaster [janshin]
- Pulstar [pulstar]
- Blazing Star [blazstar]
- Prehistoric Isle 2 [preisle2]
- Spin Master / Miracle Adventure [spinmast]
- Windjammers / Flying Power Disc [wjammers]
- Karnov's Revenge / Fighter's History Dynamite [karnovr]
- Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004) [strhoop]
- Ghostlop (prototype) [ghostlop]
- Magical Drop II [magdrop2]
- Magical Drop III [magdrop3]
- Nightmare in the Dark [nitd]
- Gururin [gururin]
- Money Puzzle Exchanger / Money Idol Exchanger [miexchng]
- Panic Bomber [panicbom]
- Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den [kabukikl]
- Neo Bomberman [neobombe]
- Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001) [minasan]
- Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002) [bakatono]
- Neo Turf Masters / Big Tournament Golf [turfmast]
- Metal Slug - Super Vehicle-001 [mslug]
- Zed Blade / Operation Ragnarok [zedblade]
- Strikers 1945 Plus [s1945p]
- Quiz King of Fighters (SAM-080 ~ SAH-080) [quizkof]
- Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi [stakwin]
- Ragnagard / Shin-Oh-Ken [ragnagrd]
- Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219) [pgoal]
- Choutetsu Brikin'ger - Iron Clad (prototype) [ironclad]
- Stakes Winner 2 [stakwin2]
- Shock Troopers (set 1) [shocktro]
- Shock Troopers - 2nd Squad [shocktr2]
- Galaxy Fight - Universal Warriors [galaxyfg]
- Waku Waku 7 [wakuwak7]
- Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083) [pbobblen]
- Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo) [pbobbl2n]
- Pochi and Nyaa [pnyaa]
- Chibi Marukochan Deluxe Quiz [marukodq]
- Double Dragon (Neo-Geo) [doubledr]
- Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer [gowcaizr]
- Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu [sdodgeb]
- Tecmo World Soccer '96 [tws96]
- Fight Fever (set 1) [fightfev]
- Power Spikes II (NGM-068) [pspikes2]
- Aero Fighters 2 / Sonic Wings 2 [sonicwi2]
- Aero Fighters 3 / Sonic Wings 3 [sonicwi3]
- Pop 'n Bounce / Gapporin [popbounc]
- Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version) [froman2b]
- Andro Dunos (NGM-049 ~ NGH-049) [androdun]
- Puzzle De Pon! [puzzledp]
- Neo Mr. Do! [neomrdo]
- Goal! Goal! Goal! [goalx3]
- Neo Drift Out - New Technology [neodrift]
- Breakers [breakers]
- Breakers Revenge [breakrev]
- Battle Flip Shot [flipshot]
- Captain Tomaday [ctomaday]
- Ganryu / Musashi Ganryuki [ganryu]
- Bang Bead [bangbead]
- Bang Bang Busters (2010 NCI release) [b2b]
- Metal Slug 4 (NGM-2630) [mslug4]
- Rage of the Dragons (NGM-2640?) [rotd]
- Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660) [matrim]
- Jockey Grand Prix (set 1) [jockeygp]
- V-Liner (set 1) [vliner]
- Digger Man (prototype) [diggerma]
- Last Hope (bootleg AES to MVS conversion, no coin support) [lasthope]
- Shadowland (YD3) [shadowld]
- Dragon Spirit (new version (DS3)) [dspirit]
- Blazer (Japan) [blazer]
- Quester (Japan) [quester]
- Pac-Mania [pacmania]
- Pac-Mania (Japan) [pacmaniaj]
- Galaga '88 [galaga88]
- World Stadium (Japan) [ws]
- Beraboh Man (Japan, Rev C) [berabohm]
- Marchen Maze (Japan) [mmaze]
- Bakutotsu Kijuutei [bakutotu]
- World Court (Japan) [wldcourt]
- Splatter House (World, new version (SH3)) [splatter]
- Face Off (Japan 2 Players) [faceoff]
- Rompers (Japan, new version (Rev B)) [rompers]
- Blast Off (Japan) [blastoff]
- World Stadium '89 (Japan) [ws89]
- Dangerous Seed (Japan) [dangseed]
- Pistol Daimyo no Bouken (Japan) [pistoldm]
- Boxy Boy (SB?) [boxyboy]
- Puzzle Club (Japan prototype) [puzlclub]
- Tank Force (US, 2 Player) [tankfrce]
结论
我完成了M1.NET。它搞清楚了音频ROM是如何工作的。您可以支持任何其他游戏。通过将C语言翻译成C#,没有使用不安全代码,代码也更具可读性。我保留了MAME的主要架构。程序员可以参考此进行更多操作。例如:使其支持其他声卡芯片,编写类似WinKawaks的模拟器……
历史
- 2013-09-01: 完成M1.NET(版本20130901)
- 2016-09-13: 支持43款游戏(版本20160913)
- 2017-12-21: 支持265款游戏(版本20171221)
- 2020-06-18: 添加M72和M92板,支持278款游戏(版本20200618)
- 2021-08-17: 添加Taito B、Capcom、Konami 68000板,支持290款游戏(版本20210817)
- 2023-02-06: 添加Taito板,支持292款游戏(版本20230206)
- 2024-06-12: 添加Data East、Tehkan板,支持295款游戏(版本20240612)
参考文献
- MAME - Multiple Arcade Machine Emulator - https://github.com/mamedev/mame
- MSDN - https://msdn.microsoft.com
- bizhawk Z80 code - https://github.com/TASEmulators/BizHawk/tree/master/src/BizHawk.Emulation.Cores/CPUs/Z80A
- VCMAME detail by Bryan McPhail - https://codeproject.org.cn/Articles/4923/VCMAME-Multiple-Arcade-Machine-Emulator-for-Visual
- MAME 和 MAMEUI Visual C 项目文件 - http://www.mikesarcade.com/arcade/vcmame.html
- BridgeM1 - https://e2j.net/downloads/
- WinHex - https://www.x-ways.net/winhex/