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

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

MAME (64-bit) 軟體圖示 MAME (64-bit) 0.190 (64-bit) 資料更新 2017-09-27 閱讀約 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)

mame0190b_64bit.exe · 52.8 MB · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

MAMETesters Bugs Fixed:
- [Sound] (homedata.cpp) hourouki: It is missing voices of "Reach", "Ron" etc.
- [Plugins] (mappy.cpp) mappy, mappyj: When using cheats driven by <parameter, left arrow doesn't change displayed value (Carl)
- [Sound] (starwars.cpp) starwars: Missing/malfunctioning sound
- [DIP/Input] (subsino.cpp) stbsub: Missing dip-switch info
- [Sound] (namcos2.cpp) metlhawk: Missing sound
- [Sound] (cinemat.cpp) qb3: Missing AY-3-8910 sound

New working machines:
- Altered Beast (Tiger handheld)
- Laser 2001 [cvemu]
- Mephisto Modena
- Mephisto Monte Carlo
- Mephisto Super Mondial II
- Mephisto Super Mondial
- R-Zone: Batman Forever
- R-Zone: Indy 500
- unknown Italian poker game

New working clones:
- Alligator Hunt (World, protected)
- Beast Busters (Japan, Version 2, J3)
- Big Buck Hunter - Shooter's Challenge (v1.60.01)
- Chuka Taisen (Japan) (P0-025-A PCB)
- Iron Horse (version K)
- Kick Off (bootleg)
- Lady Master of Kung Fu (set 2, older)
- Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 1.0) (AT89c52 protected)
- Maniac Square (protected, Version 1.0, Checksum DEEE)
- Royal Card / Royal Jackpot (with a third draw)(encrypted)
- Syvalion (US, PS2 Taito Legends 2)
- Syvalion (World, PS2 Taito Legends 2)

Machines promoted to working:
- Alligator Hunt (Spain, protected)
- Big Buck Hunter - Shooter's Challenge (v1.60.01)
- Big Buck Hunter Call of the Wild (v3.02.5)
- Big Buck Hunter II - Sportsman's Paradise (v2.02.11)
- Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994)
- Great Guns
- Maniac Square (protected, Version 1.0, Checksum CF2D)
- Mazer Blazer (set 1)
- Mephisto Mega IV
- Tecmo World Cup '94 (set 1)
- Virtual Pool

Clones promoted to working:
- Big Buck Hunter - Shooter's Challenge (v1.50.07)
- Glass (Ver 1.0, Break Edition, Checksum C5513F3C)
- Glass (Ver 1.0, Break Edition, Checksum D3864FDB)
- Mazer Blazer (set 2)
- Mephisto Monte Carlo IV LE
- Slap Fight (A76 set, GX-006-A PCB)
- Tecmo World Cup '94 (set 2)

New machines marked as NOT_WORKING:
- Cisco/Fisco 400
- Convergent Miniframe
- Gaelco Football
- Gran Trak 10/Trak 10/Formula K
- Gran Trak 20/Trak 20/Twin Racer
- Le Mans
- Nintendo DS
- Qwak!/Quack
- Triumph-Adler alphatronic P3
- New clones marked as NOT_WORKING:
- AEG Olympia Olytext 30
- Bingo Wave
- Ericsson PC
- Ericsson Portable PC
- Guns N Roses (2.00)
- Meteor (Stern, set 2)
- PC/AT 386SX (VGA, MF2 Keyboard)
- Robot Hunting (bootleg of Death Race) [TTL]
- Schneider EURO PC II
- Schneider EURO XT
- Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B -P

New working software list additions:
- apple2: Thief
- apple2_cass: Color Demosoft / Little Brickout, Lords of Karma, Startrek / Starwars
- archimedes: SCSI Support Disc
- bbcb_flop: ArcPinball
- c128_cart: VizaWrite 128
- hp85_rom: Assembler ROM, I/O ROM, Matrix ROM, Service ROM, Service ROM (fixed)
- ibm5150
- Concurrent PC DOS 3.2, Concurrent PC DOS 4.1, Concurrent DOS XM 6.0, Concurrent DOS XM 6.01, Concurrent DOS XM 6.21
- ibm5170
- Freddy Pharkas, Frontier Pharmacist
- Wing Commander II - Special Operations 1, Wing Commander II - Special Operations 2
- Concurrent DOS 386 2.0, Concurrent DOS 386 3.01
- kayproii: Digital Keyboards' Synergy Host Control System
- laser2001_cart: Salora Disk Drive
- pce_tourvision: Bomberman 93, Die Hard, Hit The Ice, Knight Rider Special
- spectrum_cass: Currah MicroSpeech Demo, Fuller Box Orator Demonstration, Shadow of the Unicorn, Spectrum Voice Chess

Translations added or modified:
- Dutch
- Italian
- Spanish
- Turkish

Source changes:
- Added new AM9513 System Timing Controller device

Improved 28XX parallel EEPROM emulation:
- Emulated direct manipulation of /OE line for read/write mode control
- Added special handling for data polling before a write has completed
- Allow optional configuration to lock EEPROM after each write, as often used by Atari
- Replaced Atari EEPROM interface devices with base device - to use old NVRAM files, rename them from eeprom_eeprom to eeprom
- dblewing: Modernized soundlatch; improved IRQ arbitration for (hopefully) fewer dropped sound commands.
- cninjabl2: Fixed sound banking.

z8 improvements:
- Made data space optional
- Fixed stack pop semantics
- Mask addresses for external memory accesses based on P0 control bits
- Fixed C flag polarity for CP/SBC/SUB, and actually subtract with carry in SBC (lets amerihok pass initial checksum)
- Fixed interrupts
- megaplay: Routed start buttons through BIOS, still not working properly. [AJR]
- quizpun2: Emulate COP402 MCU.

COP400 overhaul:
- Rewrote execution control logic to fetch each byte of an instruction separately in one pass of the main loop
- Provides EEPROM-compatible timing for the SIO shift register, allowing the 93C46 on quizpun2 to be read and written properly
- Added M pseudo-register (internal RAM referenced by B) to debugger state
- Added T register to debugger state on devices where it only affects SKT
- Display SIO state in binary when it is defined as a shift register
- Allowed skipped instructions and the SKIP flag to be debugged using a compile-time switch (disabled by default)
- weststry: Prevent mistimed interrupts that were killing sound.
- rs232: Added 9615 Baud rate actually used by a number of systems.
- Fixed Lunar Lander Language ROM - now passes self-test (built from source).

gstriker.cpp updates:
- Added MCU simulation to clone romset twrldc94a
- Added buffered spriteram (sprites being ahead 2 frames)
- Fixed tournament logic for Tecmo World Cup '94
- Improved mb60553 zooming alignment (mostly noticeable in Tecmo World Cup '94)
- Added rotation to mb60553 core (used by V Goal Soccer during football field display)
- ninjaw.cpp: Changed to saner interleave CPU timings, attempted to fix missing enemies bug in Ninja Warriors.
- rockrage.cpp: Fixed priorities and text tile banking for Rock N Rage.
- Fixes stage 1 boss eyes flashing and Shena display inside the bubble at stage 5 boss

mb_vcu.cpp updates:
- Added multi-layer drawing
- Improved layer clearing for Mazer Blazer, fixed layer clearing for Great Guns
- Added collision detection feature, specific to Mazer Blazer
- mazerbla.cpp: Added backup RAM, fixed lightgun inputs for Great Guns.

itech8.cpp: Ninja Clowns improvements:
- Fixed palette read accesses, fixes many color bugs
- Fixed 0x40000-0x7ffff constant area, program ROM now checksums correctly
- Moved vblank IRQ generation - fixes frames per second jerkiness
- model2.cpp: Fixed luma overflow (Virtua Striker flag colors)
- ymf271.cpp: Added slot end status bits (fixes at least missing shots samples for Desert War)
- saturn.cpp: Fire a VDP1 IRQ when an illegal sprite opcode is encountered (fixes Sexy Parodius booting)
- pce_cd.cpp: Fixed few bogus CD-ROM state bugs (fixes booting for Snatcher)
- ladyfrog.cpp: Added missing DAC sound chip (fixes death scream in Touche Me)
- flstory.cpp: Merged memory maps and fixed gfx bank default (fixes Onna Sanshirou POST messages)
- bigevglf.cpp: Added DAC (cup in, crowd applauses samples)

buggychl.cpp updates:
- Fixed sound timer IRQ frequency (fixes enter initials BGM tempo)
- Fixed background pen and clipping enable (fixes title screen and stage 3 graphics)
- Fixed inputs, namely accelerator being analog now
- vicdual.cpp: Added sound samples to Borderline
- ioport.cpp: Fixed a longstanding INP playback desync bug caused by a rand() call in the MAME core
- leland: Fixed missing DAC sounds in later Ataxx-era audio.
- vamphalf.cpp: Added idle skipping speedup hack for coolminii
- luaengine: Added translation support
- altos8600: Added serial board
- c64_cart.xml: Added accompanying disk to 4040+Fast Hack'em cartridge
- Demoted Megaplay to not working
- Demoted Panic Road to not working - playtesting shows that the collisions aren't right
- floppy: Added drive LED callback
- Added Data East IRQ Controller device used by games in the cninja and deco32 drivers
- pktgaldx: Added vblank interrupt acknowledge

deco32 improvements and cleanups:
- Emulated LC7535-based volume control for Dragon Gun board based games
- Added DSW3 and DIP switch locations to Captain Avenger
- deco156: Cleaned up palette.
- Fixed ROM size for Tank (atarittl.cpp) based on recent verification dump.

Miscellaneous Master System/Game Gear fixes:
- Corrected author of the SMS multipad device hardware
- Map upper addresses of the SMS2/GG memory map unused by devices to RAM (fixes 'shero' GG game)
- Added PCB info for 'termntr' and fixed mapper of 'jangpun2' entries of the SMS software list
- Fixed a soft reset bug in the mapper code for the '4pak' entry of the SMS software list
- Remove two obsolete comments from the period when MESS didn't support BIOS selection
- Changed two comments to document that player inputs on GG aren't disabled even in SMS mode
- hp85: Added support for optional ROM cartridges and started a software list
- a2arcadebd: Added port mirrors so all programs on the test disk work
- apple2: Added preliminary support for the Synetix SuperSprite card
- segasp.cpp: Dumped original CF card for "Dinosaur King - Operation: Dinosaur Rescue"
- dbox: Added 29F800B flash boot device, hooked up RS232/modem ports
- mc68681: Added the DUART-compatible 68340 serial module
- tmu: Fixed MCR register enum error, silenced some logerror spam by turning them into LOGx statements

improvements:
- Deskeletonized the serial module as a device derived from the DUART device (defined in mc68681.cpp)
- Fixed SIM module read register bug and added informative chip select logic LOG messages
- Simplified code by making the timer module implementation a device with two independent instances
- Implemented Candela PAL-driven address map (fixes several BASIC commands).
- upd7725: Ignore DPL field if destination is DP, and ignore RPDCR bit if destination is RP.
- Added support for viewing PLS100/82S100/PLS101/82S101 equations to jedutil.
- Adding PAL dumps from Guzzler (Swimmer Conversion).
- dccons.cpp: Virginized DC Flash ROM dumps to fresh factory state and documented Dreamcast Flash ROM structure.
- Return a reference from corestr.cpp calls to avoid unnecessary string copies.
- Added validation checks for PORT_CHAR character values.
- Made -validate verb report an error if no drivers match pattern.
- Attempted to sanitize/rationalize UTF-8 command line arguments are accessed.
- Also fixes a bug in imgtool where non-7 bit ASCII was not being handled correctly under Windows
- spectrum: Added expansion slot and devices, removed Kempston Joystick Interface from driver.
- Working devices: Currah MicroSlot, Currah MicroSource, Currah MicroSpeech, Didaktik Melodik, Fuller Box
- Kempston Joystick Interface, Mikro-Plus (Shadow of the Unicorn), Protek Joystick Interface, ZX Interface 2
- Non-working devices: ZX Interface 1
- Thanks to Thomas Busse for preliminary work on Currah MicroSpeech
- spec128: Added expansion slot and devices, removed Kempston Joystick Interface from driver.
- Working devices: Kempston Joystick Interface, Mikro-Plus (Shadow of the Unicorn), Protek Joystick Interface
- Spectrum +2 Test Software, ZX Interface 2
- Non-working devices: ZX Interface 1
- tube_casper: Corrected CPU clock to 4MHz.
- m68k: Fixed abcd/sbcd/nbcd to pass 68k-bcd-verifier.
- upd765: Added support for i82072 including sense interrupt status logic and motor on/off logic.
- i82586: Fixed 82586 initialisation.

clipper interrupt handling fixes:
- Improved interrupt vector handling
- Fixed C300 interrupt entry and stack frame
- Fixed pushw where source register is same as stack register
- apple2e: Don't update 80-column screen immediately on page switch.
- psi98: Added basic stub layout with drive LEDs. [rfka01]

unkitpkr improvements:
- Improved the input system and mapped remaining inputs, hooked the AY8912 port and rerouted the DIP switches there
- Added technical notes about the hacked code
- Added proper palette resnet
- Confirmed the bipolar PROM dump, it matches the Wall Crash one

Royal Jackpot improvements:
- Added proper inputs/DIP switches and default NVRAM, changed game description and promoted to working
- Added the three missing PLDs as NO_DUMP
- Added a DIP switches table from manual and implemented default positions from factory
- Added some notes about the third draw feature
- arm7: Added ARM946ES variant, fixed up CPU ID values.
- cgc7900: Attached keyboard and serial port, and force cold boot
- Corrected regions/titles for Namco System 22 and System 23 games
- Implemented program counter break point to PlayStation CPU, and re-added PlayStation EXE, CPE and PSF loading
- Added named constants for INS8250 registers/bits (LSR/MCR/LSR)
- HP HIL: Pass through commands between devices

HP9000/300 improvements:
- Added HIL keyboard support
- Fixed detection of DIO cards
- Disabled DMA controller workaround (caused ROM to use unimplemented DMA functionality, now falls back to PIO)
- Added SN76494 sound device
- hp9k_3xx: Hooked up keyboard/sound to HP9000/332, added 98603 ROM card
- hp16500: Connected HIL MLC
- tourvis: Added new BIOS dump, clarified BIOS names, and updated several games with newly discovered ID codes. [system11, Tafoid]
- iteagle: Set medium resolution as default for virtpool and remove MACHINE_IMPERFECT_GRAPHICS

Cleaned up and optimised common code:
- Made natural keyboard prefer lower shift states and eliminated O(n) character lookup
- Turned most ROM entry accessor macros into templates and made them work on tiny_rom_entry/rom_entry pointers/references
- Started adding iterable class wrappers for specific types of ROM entries
- Added support for C++ output streams to logmacro.h using LOG_OUTPUT_STREAM macro
- Improved -listxml performance by another 10% or so
- Made ROM BIOS reported in -listxml output match what ROM loading does
- buggychl: Removed NMI trampolines and added mirrors to memory map
- grchamp.cpp: Improved sound CPU commuication
- taitosj: Improved sound CPU communication and added mirrors to sound CPU memory map
- upd7725: Fixed OV1 and S1 flag calculation

superqix.cpp updates:
- Implemented 8751 port2 latch and fixed semaphores
- Replaced pending communication hacks with scheduler synchronization barriers
- Split up state class, consolidated port2 handling, and removed unnecessary trampolines
- Traced out correct clock divider for CPU and MCU from PCB
- Added emulation of the 8031 bootleg MCU port 3 output latch
- Fixed corrupt bytes in two MC68705 dumps after re-analyzing raw dump data
- retofinvb3: Fixed colors
- hexion.cpp: Fixed INT_TIME callback from K053252 CCU (fixes music speed), fixed music pitch for hexionb
- notetaker.cpp: Updated notes, and added PROMs typed from source listings
- Updated hiscore.dat
- tnzs.cpp: Corrected ROM PCB locations and added Guru-Readme for the P0-25-A PCB