這是歷史版本頁面 — 看 MAME (64-bit) 最新版本

想玩懷舊街機遊戲,MAME 能做些什麼

MAME (64-bit) 軟體圖示 MAME (64-bit) 0.188 (64-bit) 資料更新 2017-07-26 閱讀約 7 分鐘

你最近是不是突然很想玩小時候在雜貨店或大機台前投幣玩過的那幾款街機遊戲?可能是格鬥、射擊或大型電玩,但現在這些機台早就消失,網路上找到的遊戲畫面又模糊不清,不然就是下載到來路不明的檔案,根本不知道怎麼開始。你只是想重溫那個手感,卻卡在「不知道從哪裡找遊戲」和「找到之後怎麼跑起來」這兩步之間。

一般人會先想到去抓模擬器,但模擬器百百種,有的只支援特定主機,有的設定複雜到要改一堆參數,還有的根本跑不動。更麻煩的是,就算模擬器裝好了,遊戲 ROM 要放哪裡、怎麼設定按鍵、畫面為什麼是黑的,這些問題沒人解釋,最後只能放棄。這類工具真正的切入點,是模擬原始機台的硬體,讓舊遊戲在現代電腦上重現,但前提是你得先搞懂它的基本邏輯,才有辦法順利玩到遊戲。

01MAME 是什麼?它能玩哪些遊戲?

MAME 是一套模擬大型電玩機台的開源軟體,官方說明指出它收錄超過一萬個遊戲 ROM,涵蓋動作、射擊、格鬥、益智等多種類型。它不只是一套遊戲,而是模擬當年機台的硬體,讓那些老遊戲能在現代電腦上跑。要注意的是,軟體本身不附遊戲,你需要自行準備 ROM 檔,而且 ROM 的合法性取決於你是否擁有原版遊戲,這點要自己確認。

02它怎麼做到畫面跟聲音跟以前一樣?

它的做法是盡可能精確模擬原始機台的硬體元件,包括處理器、顯示晶片和音效晶片,所以畫面、聲音和操作感會貼近原版。官方說明強調這種精確度是它的核心目標,不是只把畫面放大或套濾鏡。不過,精確模擬的代價是某些遊戲可能需要額外的 BIOS 檔才能正常執行,這在官方 FAQ 中有提到,你需要在網路上找對應的 BIOS 並放進指定資料夾。

03可以自己設定按鍵嗎?我想用搖桿玩。

可以。官方功能說明提到,它提供控制設定,你可以把鍵盤、遊戲手把或搖桿對應到機台的按鍵。設定方式是從主選單進入控制選項,逐項指定你要用的輸入裝置。如果你用的是大型搖桿,通常會被辨識為遊戲手把,設定起來不難。但要注意,不同遊戲的按鍵配置可能不同,你可能需要針對每款遊戲個別調整,這在初次設定時會花一點時間。

04玩到一半可以存檔嗎?我怕打不過。

可以。它支援儲存遊戲狀態,讓你可以隨時暫停並存檔,之後再從同一個進度繼續。另外還有倒帶功能,玩到一半失手可以往回退幾秒,重新挑戰。這兩個功能對練技術很有幫助,尤其是那種一失誤就要重來的關卡。使用方式很直覺,從選單或快捷鍵就能觸發,不需要額外設定。

05畫面在現在的螢幕上會不會很模糊?

它支援高解析度顯示,可以將遊戲畫面縮放到現代螢幕的原始解析度,官方說明指出這樣能維持視覺品質。你也可以套用圖形濾鏡來調整畫面,讓像素看起來更平滑或更接近舊螢幕的質感。不過,實際效果取決於你的螢幕和顯示卡,如果你的顯示卡不支援 OpenGL 3.3 以上,可能無法使用某些顯示功能,這在系統需求中有提到。

06我只有一台普通電腦,跑得動嗎?

官方列出的系統需求是雙核心 2 GHz 以上處理器、4 GB 記憶體、100 MB 可用空間,以及 OpenGL 3.3 相容的顯示卡。以這個標準來看,近十年的電腦大多符合。但要注意,某些較新的遊戲或需要大量模擬的機台可能對效能要求更高,實際跑起來順不順,還是要看你執行的遊戲和電腦配備。如果你只是玩早期的 2D 遊戲,一般文書機應該沒問題。

07我完全沒碰過模擬器,會不會很難上手?

官方說明強調它的介面設計以簡單和易用為目標,主選單乾淨直覺,可以快速瀏覽遊戲庫和調整設定。但官方 FAQ 也坦承,初始設定對新手可能有點門檻,尤其是要搞懂 ROM 檔要放哪裡、BIOS 是什麼、為什麼有些遊戲開了沒畫面。如果你願意花一點時間看教學或社群討論,通常一兩個小時內可以搞定。如果完全不想碰設定,這套軟體可能不適合你。

08我收藏了很多舊遊戲光碟,可以用它玩嗎?

官方資料沒有提到支援光碟讀取或實體媒體的功能,它主要設計是讀取 ROM 檔,也就是從機台或卡帶中抽取出來的檔案。如果你有舊光碟,可能需要先轉成 ROM 格式,但這部分官方沒有提供相關說明,你需要自行確認轉檔工具和格式相容性。如果你的遊戲是大型電玩機台,通常沒有光碟,而是用 ROM 晶片,這點要特別注意。

09我想跟朋友線上對戰,它支援嗎?

官方說明明確指出,它本身沒有內建線上多人功能。不過,官方 FAQ 提到有第三方工具可以做到線上連線對戰,但這些方法需要額外的設定和網路知識,不是裝好就能用。如果你只是想跟朋友在同一台電腦輪流玩,那沒問題;但如果是想透過網路連線對戰,你得另外找工具,而且不一定每款遊戲都支援。

10我只有手機,可以用它玩嗎?

官方說明指出,這套軟體主要設計給桌面系統,也就是 Windows、macOS 和 Linux。雖然有 Android 版本,但那是另外的變體,不是這套 64 位元版本。官方 FAQ 也提到,手機版本可能有特定的需求和限制,你需要在安裝前確認相容性。如果你主要是用手機玩,建議先查清楚 Android 版的支援狀況,再決定要不要裝。

11我擔心法律問題,用 ROM 會不會違法?

官方 FAQ 說得很清楚:軟體本身是合法的,因為它是模擬器,不侵犯著作權。但 ROM 的合法性取決於你所在的地區,以及你是否擁有原版遊戲。如果你有原版機台或卡帶,在某些地區可能可以合法使用 ROM;如果沒有,下載 ROM 可能違反著作權法。官方建議你查閱當地法律再決定,這部分沒有標準答案,你要自己判斷。

12我比較想玩任天堂或 PS 的遊戲,它適合嗎?

官方說明指出,MAME 的目標是模擬大型電玩機台,不是家用主機。如果你想玩的是任天堂或 PlayStation 的遊戲,這套軟體幫不上忙,你應該找對應的模擬器,例如 Dolphin Emulator 或 Project64 這類專門模擬特定主機的工具。MAME 的遊戲庫雖然超過一萬款,但都是街機遊戲,這點要先確認清楚,才不會裝了之後發現遊戲類型不對。

下載與官方連結

前往官方網站 下載 MAME (64-bit)

mame0188b_64bit.exe · 52.4 MB · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

MAMETesters Bugs Fixed:
- [Sound] (ddenlovr.cpp) funkyfig, funkyfiga: Missing music and partial sound FX
- [Sound] (polepos.cpp) polepos2: Crowd Cheering sounds are messed up at the chequered flag (goal)
- [Save/Restore] (vegas.cpp) sf2049se, sf2049te: Crashes on reload (-str 8) in a staggered -str 20 run
- [Crash/Freeze] All sets in octopus.cpp, zorba.cpp: Fatal Error when using various terminal/printers in slots
- [Crash/Freeze] (ti99_4x.cpp) All sets in ti99_4x.cpp, ti99_4p.cpp: SuperAMS memory expansion card (samsmem) Fatal Error when mounted
- [Interface] Various problems with software loading/unloading: Various problems with software loading
- [Interface] Regression loading softlist items from the command line with changed slot options
- [DIP/Input] (nbmj8891.cpp) chinmoku: DSW B should not exist
- [Crash/Freeze] (rohga.cpp) schmeisr: Exception on exit
- [Crash/Freeze] (itech8.cpp) ninclown: During final boss Twisto the game can potentially crash
- [Misc.] (mc10.cpp) Emulation of the right-shift and rotate instructions (ASR, LSR, ROR) do not correctly modify the overflow flag
- [Sound] (segas32.cpp) kokoroj2: Missing voice in game
- [Sound] (vgmplay.cpp) vgmplay: Attempting to play a .vgm/.vgz file containing 2 X POKEY does not play back correctly

New working machines:
- A-One Arrange Ball/Tandy Zingo/LJN Computer Impulse
- Blades of Steel (Konami handheld)
- Bucky O'Hare (Konami handheld)
- Double Dragon (Tiger handheld)
- Gauntlet (Tiger handheld)
- Go Go Cowboy (English, prize)
- INTELLEC 4/MOD 4
- INTELLEC 4/MOD 40
- Legend (SNES bootleg)
- Milton Bradley Arcade Mania
- Sonic The Hedgehog (Tiger handheld)
- Space Jam (Tiger handheld)

New working clones:
- Act-Fancer Cybernetick Hyper Weapon (World revision 3)
- Bubble Bobble (prototype on Tokio hardware)
- Cobra-Command (World/US revision 4)
- Deco Cassette System Multigame (ROM based)
- Explorers of Space
- Fidelity Excel 68000 Mach III
- Fidelity Excel 68000 Mach II (rev. C+)
- Game & Watch: Egg
- Golden Poker Double Up (bootleg)
- HP 85
- Kageki (World)
- Logger (Rev.2)
- Nu, pogodi!
- Operation Wolf (Japan, SC)
- Player's Edge Plus (PP0006) Standard Draw Poker
- Return of the Invaders (bootleg no MCU set 3)
- Silk Worm (prototype?)
- Solar Assault (ver JAA)
- [ShouTime, pablopelos, Dullaron, Paul Vining, Jason Wible, Surgeville, Sean Sutton, David Mercer, John Cunningham, Smitdogg,
- The Dumping Union]
- Solar Assault Revised (ver JAA)
- Space Invaders (Nas Corp bootleg)
- Street Fighter II: The World Warrior (Japan 911210, CPS-B-17)
- Super Triv (English questions)
- Taisen Idol-Mahjong Final Romance 2 (Japan, newer)
- Tetris (v341R)
- The Ninja Warriors (World, earlier version)
- Xevious 3D/G (World, XV32/VER.A)

Machines promoted to working:
- Alphatronic PC
- Black Touch '96
- Explorer (DECO Cassette) (US)
- Game & Watch: Mickey Mouse
- Mega Double Poker (conversion kit, version 2.3 MD)
- Ron II Mah-Jongg
- The Roulette (Visco)
- Touch & Go (World)
- World Rally 2: Twin Racing

Clones promoted to working:
- Frogger (bootleg on Amigo? hardware)
- Mega Double Poker (conversion kit, version 2.1 MD)
- Sega Ninja (315-5113)
- Touch & Go (Non North America)
- Touch & Go (earlier revision)

New machines marked as NOT_WORKING:
- Abnormal Check
- Ai-mode - Pet Shiiku
- Block Pong-Pong
- Casino Strip
- Casino Strip IX
- Casino Strip VIII
- Dam Dam Boy
- MAC Jungle
- Mahjong Gal-pri - World Gal-con Grandprix (Japan)
- Mahjong Hanafuda Cosplay Tengoku 6 - Junai-hen (Japan)
- Mahjong Mogitate
- Need for Speed - 4 Cab Link (2 Discs) (v1.0.1 Rev B)
- Need for Speed GT (Hard Drive+2 Discs) (v1.1.0 Rev C)
- Nichibutsu DVD Select (Japan)
- Percussion Freaks 4th Mix (G*A25 VER. AAA)
- PokoaPoka Onsen de CHU - Bijin 3 Shimai ni Kiotsukete! (Japan)
- Renai Mahjong Idol Gakuen (Japan)
- Sharp FontWriter FW-700 (German)
- Super Derby II
- Tsuugakuro no Yuuwaku (Japan)
- VG Pocket Mini (VG-1500)
- VG Pocket (VG-2000)
- Virtua Striker 4 (Export) (GDT-0014)
- Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)
- VT330
- WaiWai Drive
- War: The Final Assault (EPROM 1.91 Apr 13 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999)
- World Kicks PCB (World, WKC2 Ver.A)
- Yamaha TG100

New clones marked as NOT_WORKING:
- Beat the Clock (with flasher support)
- Commodore PC 10
- Dirty Harry (LF-2)
- Fighting Vipers (Revision B)
- Motocross Go! (MG2 Ver. A, set 2)
- New Super Triv III
- Tazz-Mania (Rodmar bootleg)
- Triv Five Special Edition

New working software list additions:
- abc80_flop: ABCDatastorm
- coco_flop: Pacman (z80 to 6809 Transcoded - v1.01) (512kb)
- gameboy: Sachen 4 in 1 (Euro, 4B-003)

ibm5150:
- Le Manoir de Mortevielle
- Battle Chess, Blades of Steel, Castlevania, Double Dribble, Earl Weaver Baseball, Future Wars - Adventures in Time,
- Gamer's Edge Sampler - Catacomb and Dangerous Dave, Hardball 2, Heroes of the Lance, John Madden Football, King's Bounty,
- Lakers vs Celtics and the NBA Playoffs, Links - Championship Course - Bountiful Golf Course, Links - The Challenge of Golf,
- Mean Streets, Monopoly v2.00 (Shareware), Monty Python's Flying Circus, Ninja Gaiden II, Nova 9, Over the Net, Pharaoh's Pursuit,
- Secret of the Silver Blades, Speedball II, Street Fighting Man, Super C, Superstar Ice Hockey, Superstar Indoor Soccer,
- Superstar Indoor Sports, Superstar Outdoor Soccer, The Cycles, Top 10 Solid Gold Volume II, Wings of Fury, Zool

ibm5170:
- B-17 Flying Fortress, Body Blows, Corncob Deluxe, DOS/V (multiple versions), Dune, Global Conquest, King's Quest V, Lightspeed,
- MS-DOS (Version 6.22, Brazilian Portuguese), Star Trek - 25th Anniversary
- pce_tourvision: Doraemon - Nobita no Dorabian Night, Majin Eiyuu Den Wataru
- x68k_flop: Chourensha 68k (v1.00)

New NOT_WORKING software list additions:
- ibm5150: Boulder Dash Construction Kit
- ibm5170: IBM Personal Computer DOS (Version J5.00/V) (Japanese), PC-DOS (multiple sets using XDF disk format)

Source Changes:
- z8: Fixed disassembly of DECW RR opcode, added more control registers to state for debugger
- Added support for experimental overclocking of sound devices through UI sliders with -cheat enabled
- ym2151, ymf271, namco: Added support for dynamic changes to clock frequency
- Fixed scheduler overflow when a device executes for more cycles than there are in a second
- nibbler, levers: Changed joysticks to 4-way as documented in manuals
- megadpkr: Hooked up 68705P5 MCU, figured out banking, and added timekeeper RAM and inputs
- colt: Fixed colors
- vgmplay enhancements: [AJR]
- Added support for YMZ280B and YMF271
- Fixed clock speed for dual POKEY
- Produce error message when nonexistent file is specified
- froggeram: Fixed PPI accesses allowing sound emulation to work
- listxml enhancements: [AJR]
- Match arguments against device names as well as driver names
- Allowed DTD output for -listxml, -listsoftware and -getsoftlist to be suppressed with -nodtd option
- gunfront: Corrected "Upright Controls" DIP switch - OFF is Single, and should not be the default
- mrdo: Load protection PAL data (not used at the moment)
- mastboy: Changed parallel EEPROM type to "EAROM" (rather than generic NVRAM)
- MC6800: Fixed LSR/ROR/ASR overflow flag generation (N XOR C)
-funystrp: Added serial EEPROM for high score entries
- ygv608.cpp: Added CRTC function, turned IRQs into handler callbacks, added border color
- blackt96.cpp improvements: [Angelo Salese]
- Added flip screen and coin counter support
- Reimplemented text layer as tilemap
- Added notes, promoted game to MACHINE_IS_INCOMPLETE - bugs like the timer not decrementing are actually caused by sloppy coding
- cvs.cpp: Kludged a protection check in Superbike that was resetting the machine under certain conditions
- Also demoted to MACHINE_UNEMULATED_PROTECTION since game can lock indefinitely under a particular condition
- Wrote a new device container for Nichibutsu sound hardware, used by csplayh5.cpp and niyanpai.cpp
- Standardized button layout for PCE bootlegs
- Fixed screen misalignment regression in Bionic Commando
- Added sound samples to PT Reach Mahjong
- socrates: Reimplemented keyboard MCU simulation as a separate timer-driven function
- Fixes issues with super painter and a few other games not recognizing keyboard input
- Also eliminated anonymous timers and keyboard tagmap lookups, and added savestate support
- arkanoid.cpp: Added machine definition for Akranoid bootleg with 68705P3 and AY-3-8910, matching real hardware
- Also added notes about which sets bootlegs are derived from dectalk.cpp: Removed unnecessary driver init and replaced with machine_start, eliminated anonymous timers, and added savestate support
- taitocchip.cpp: Hooked up the four 'ASIC RAM' shared bytes/semaphores/command registers between external CPU and the C-chip, got rid of hack for megablast
- Implemented DIP switches and tweaked inputs for Bubble Bobble prototype so that the stage editor works
- missb2 updates: [Lord Nightmare]
- Fixed OKI read/write bitswap so what seem to be the correct sound effects are played
- Replaced the corrupt OKI ROM dump with the bublpong OKI ROM - all non-corrupted areas are identical
- Added watchdog
- retofinv.cpp: Added original Taito 68705 MCU dump
- Moved bootleg 68705 MCU to its own set, renamed sets to make it more obvious which are bootlegs
- Verified XTAL, dividers, and SN76489A type from PCB pictures
- Added missing original color PROMs and allowed video/retofinv.cpp to use either those or the single bootleg color PROM
- Added correct palette weighting for all dec8 games
- Made DECO RM-C3 into a device used by dec8 and karnov.cpp games
- Fixed colours in Crude Buster (verified against real hardware); added documentation to cbuster.cpp
- pc9801: Moved cbus to bus and added WIP mpu401 support
- plugins/cheat updates: [Carl]
- Poll for setting hotkeys
- Link simple cheats
- Added Motorola MC14411 Bit Rate Generator device
- fccpu1 updates
- Updated LOG system and replaced CLOCK_SIGNAL_HANDLER with real MC14411 BRG device
- Added machine configuration for baud rates for all three serial ports using MC14411 device
- Added newer version of firmware Force Debugger v1.1
- 68340: Added configuration macros and callbacks for 8-bit ports A and B, updated LOG system
- sda5708: Added layout support and state saving
- sda5708: Added layout with generated bezels and program snippet to redo it as a comment
- dbox: Added sda5708 matrix display layout (displays version number on start but hangs shortly thereafter)
- ti99: Changed Hexbus chaining; moved Hexbus up one level (from bus/ti99 to bus)
- Overhauled MAME options handling
- The new options system is more dynamic and should detect errors earlier
- The slot menu now shows updated options in response to selections made by the user
- Added a menu listing existing state files displayed when choosing a position to save/load
- Any position may be selected with keyboard 0-9/A-Z or joystick buttons
- Existing positions may be selected using UI navigation controls
- Made the length parameter for debugger 'load' command optional (defaults to length of file), converted code from stdio to iostream
- MC6847: Fixed "Semigraphics 6" mode on CoCo/MC-10 (issue reported by Jim Gerrie)
- Displays "stripes" for video bytes $00-$7F because INT/EXT is asserted but A/S is not, and there is no external ROM
- Cleaned up the MC-10 driver
- Fixed regression in ROM loading that resulted in not all actual hashes being printed on mismatch
- sdl: Added SDL_WINDOW_BORDERLESS for fullscreen, required by some Linux window managers
- dvdisasm: Simplified by decoupling information creation and display rendering
- debugcpu: Eliminated direct() from read_opcode
- options: Set the value when setting the default as before
- mameopts: Don't lose the system inipath when looking for hashpath
- dimemory: Lifted cap on number of address spaces per device, renamed AS_DECRYPTED_OPCODES to AS_OPCODES
- Fixed media option numbering with custom instance names (github issue 2468)
- cbuster.cpp: Added a x3 hack to the YM2203 clock frequency to fix incorrect pitch
- Improved -romident performance by dynamically allocating large arrays at device_start time
- m377xx: Added preliminary M37720 support
- alphatro improvements
- Added correct banking and partial floppy support
- Corrected motor on and FDC reset
- Corrected number of driver (real machine only has two), and fixed B: drive
- output: Fleshed out network output provider to have the same capabilities as legacy Win32 provider
- Messages are of form "verb = value1"; "hello = 1" on successful connection, "mamerun = 0" on shutdown
- Send "send_id = n" to query IDs where n=0 means machine shortname, and n=1-? are output node names
- Rewrote MCS-40 (4004/4040) emulation/disassembly
- Added support for all 4040 features besides interrupts
- Split address/status, RAM/ROM ports, and program memory into separate address spaces
- Emulated 8-clock instruction cycle, interruptible at any point, bus signals exposed
- Converted inputs to input lines, added callbacks for chip select outputs and 4008/4009/4289 signals
- Made disassembly output closer to what ASL accepts as input
- Allowed 4-bit registers to be set independently through the debugger
- Added INTELLEC 4 driver with support for MOD 4 and MOD 40 variants
- Supports TTY, PROM programmer, and all front-panel debugging features using clickable artwork
- Supports PROM, program/data storage and high-speed paper tape reader cards
- Updated flicker to use new MCS-40 core and improved emulation
- Re-implemented I/O based on how hardware actually works (wasn't possible with previous 4004 core)
- Corrected flicker RAM size, removed NVRAM, and connected playfield lamps and operator adjustments
- Added save state support
- Layout system improvements
- Made scripts do substantial validation of layouts at build time
- Drop views that don't validate at runtime rather than entire layouts to help machines with terminals connected by default
- Cleaned up serial, matrix keyboard and TI-8x link protocol interfaces
- Switched to delegate timers and moved state registration to post-start, making implementations a bit less error-prone
- Made device_memory_interface own its address space objects
- Made parent/clone loops raise a fatal error rather than hanging in a loop appending to a string
- Made internal UI list missing/incorrect files when audit fails
- Cocoa debugger improvements
- Save/restore window positions/sizes/splits/scrolling/expressions/focus (excluding device info viewer)
- Fixed scroll jump on clicking a memory/disassembly view that's been scrolled while unfocused
- Made XML file a specialisation of data node that can be easily managed with smart pointers, and added a method for copying a data node/subtree into a different tree
- Fixed fatal error on selecting a software part with internal UI, and made software parts menu sort by name
- Cleaned up Gaelco protection MCU interface device

hh_sm510 artwork updates:
- Added background vector graphics to gnw_ml102
- Improved gnw_mw56 SVG screen and added background graphics
- Improved gnw_jr55 LCD segments
- Added background graphics to nupogodi.svg
- Added background graphics to gnw_dm53.svg
- segas16b.cpp: Replaced goldnaxe2 317-0122 i8751 bad dump with working redump from undamaged chip and removed simulation code
- segas32.cpp: Redumped kokoroj2 sound data ROM
- Improved WD2010 emulation
- Better feedback on cylinder positions, almost all checks pass except low level tests expecting manufacturer or diagnostic tracks
- Added Commodore D9060 82S137 PROM dumps
- r9751: Added preliminary SMIOC device with 8237 DMA controllers and RS-232 ports
- Added an external panel for the Ensoniq VFX family of keyboards, with a websocket interface and an HTML/Javascript implementation that can be served over HTTP
-Fixed QT 5.5.1 for Ubuntu 14.04 "Trusty Tahr" (allows Travis CI build to complete)
- naomi.cpp: Dumped earlier Sega Gun Board firmware
- opwolf, opwolfa, opwolfj, opwolfjsc, opwolfu: Added C-chip dumps (game-specific EPROM still bad)
- Touch & Go, World Rally 2, TH Strikes Back: Dumped DS5002FP security modules, replaced simulation
- Created Taito C-chip device and used in asuka.cpp, opwolf.cpp, rbisland.cpp, taito_f2.cpp, taito_x.cpp and volfied.cpp
- srdarwin: Replace MCU simulation with internal ROM dump
- Using real dump for srdarwin, and hand-modified version to satisfy srdarwinj
- Fixes incorrect behaviour for 6th boss (no longer skips first form)
- Split decocass state class up so that the dongle types aren't polluting base class
- Also added support for bootleg multigame and fixed regression caused by change in draw order
- tehkanwc.cpp: Fixed DIP switches for tehkanwcd (different setup to other sets); added DIP switch locations for all sets in driver
- Identified DIP switches for a number of DECO Cassette sets
- Irem M62 cleanups
- Split PROM regions up by function (legacy from when MAME only allowed a single PROM region per system)
- Made use of multiple palettes and gfxdecode structures
- upd7810, upd7811: Added internal address maps
- gaelco/ds5002fp updates
- Made ds5002fp store battery-backed internal RAM and SFR registers as NVRAM
- Made SFR defaults configurable in ROM loading like NVRAM defaults
- Made external SRAM persistent as well (some games store scores etc. in it)
- Cleaned up Touch & Go dump and added preconfigured internal RAM
- Created device for Gaelco protection module and removed remaining simulation code
- Decrypted SEGA_315_5133 used by 'seganinja' set
- Shares identical code with other sets, just encryped with a different key
- Add DIP switches to Tsukande Toru Chicchi
- Initial HP series 80 emulation
- Working HP-85A with 16kB RAM, including Capricorn CPU, keyboard, CRT text/graphics modes, timers, and beeper
- DC100 cassette, extension ROMs, I/O modules, and integrated printer are not supported
- ITT3030: Corrected 70-track drive type, and added 35-track drive type and format definition
- Added Commodore PC10-III ROM dumps collected by German vintage computer forum users
- Added original Commodore PC 10/PC 20/ PC 30 in two BIOS variants
- Fixed default DIP switch settings for Parodius
- Enhanced Emscripten support
- Fixed save/load support and scheduled exit
- Improved main loop, simplified integration points, and made JavaScript entry points static members of running_machine
- Exposed soft_reset, hard_reset, exit load and save functions, allowing more control of emulation session from JavaScript
- Fixed #include path with USE_LIBSDL on macOS
- Hooked up ibm5150 softlist to compc and europc drivers; changed europc to use single built-in 3.5" drive
- snk.cpp: Added PAL dumps to victroad
- wolfpack: Fixed missing Torpedo trail
- z80scc: Added basic wait/DMA request support, renamed WRDY to WREQ to match datasheet

ncr5390 improvements:
- Improved initiator transfer information logic
- Split transfer count/counter
- Added rudimentary 53C90A/53C94 support
- Reworked initiator transfer information state machine, should now support all SCSI phases
- Improved handling of DMA/non-DMA commands
- Added an undocumented hack to make InterPro work
- Implemented interrupt status flag in status register for 53C90A (critical for InterPro)
- Improved tcounter and DMA/DRQ handling
- Corrected tcounter and transfer count zero handling (based on transfers to/from SCSI bus, not DMA)
- Prevent fifo over/underrun, requires restarting state machine from dma_r()/dma_w()
- Corrected bus/function complete with FIFO (interrupt only when it empties, but state detected based on SCSI bus)
- Clear status, istatus and sequence when reading istatus (not status) with active interrupt
- Tweaked DRQ behaviour - only assert if there is insufficient data in FIFO
- nscsi_hd: Corrected INQUIRY command handling when a non-zero LUN is requested
- interpro: Got SCSI working and other improvements
- Reworked DMA, added eth registers
- Improved 5390 device, removed legacy 539x SCSI stuff
- Passes all iogadiag tests if bus error hack is enabled
- Implemented basic serial DMA
- Switched to ncr53c94
- Initial preparation for Ethernet implementation
- Implemented timer-based DMA
- Implemented i82586 Ethernet MAC, ~90% complete
- Improved wheel board on Midway Seattle and Vegas, and added layout for sf2049
- sun1: Replaced console hack with upd7201 device
- chihiro.cpp: Added Quest of D Firmware Update DVD dump
- freekick.cpp: Dumped color PROMs for Omega (Nihon System), correcting the colors
- Redumped Time Limit color PROMs
- shootaw2: Added dumped EEPROM image
- Added skeleton driver for Yamaha TG100 MIDI module
- H8/520 CPU is not implemented, sound chip is Yamaha YMW258-F (likely to be identical to Sega MultiPCM)
- Game Boy/Super Game Boy improvements
- Added Super Chinese Land 1.2.3' to MBC1 Collection check code
- Fixed MMM01 zero-adjust logic for ROM bank
- Fixed Super Game Boy VRAM transfers and removed border ha
- Fixed various code style and comment issues
- macpci: Added more Pippin ROM sets
- retofinv.cpp: Added DIP switch locations and documented edge connectors
- wrally.cpp: Added World Rally PCB layout
- targeth.cpp: Added PCB layout, defined CPU clocks in terms of OSC/resonator, corrected OKI clock, and corrected Target Hits v1.1 program ROM labels
- stv.cpp: Corrected Taiwan BIOS label
- sms.xml updates
- Fix The Terminator by adding their on-cart RAM
- Added notes for games with SK-1100 keyboard support
- Corrected Great Baseball (Euro, USA, Bra) release year
- Corrected Teddy Boy Blues (Jpn, Ep-MyCard, Prototype) and Ghost House (Sega Card, Prototype) interface types
- kinst.cpp: Updated hardware info
- abcheck: Added default EEPROM so the game boots without going into service mode first
- Updated compiling instructions for Fedora Linux
- Updated hiscore.dat
- Added -output option to documentation with description of available choices
- megasys1.cpp: Added information regarding R&T (Rod-Land Prototype)
- SDL sound: Fill buffer with silence on underrun