MAME,全名 Multiple Arcade Machine Emulator(多重大型電玩模擬器)是一套設計給個人電腦使用的軟件應用程式,其目標在於盡可能的忠實且精確地模擬許多街機遊戲,宗旨在於儲存遊戲的歷史,並防止古老的遊戲被遺失或遺忘。
![]() | |
![]() MAME 主菜單 (0.209 標準) | |
開發者 | Nicola Salmoria 與 MAME 團隊 |
---|---|
首次發佈 | 1997年2月5日 |
目前版本 |
|
原始碼庫 | |
程式語言 | C++語言[2] |
作業系統 | 跨平台 |
類型 | 模擬器 |
許可協定 | BSD license, GNU GPL v2 or later |
網站 | mamedev.org |
MAME 版本
MAME 主要是由C語言寫成的跨平台應用程式(從 0.137 版開始支援C++語言),有許多不同平台的衍生版本,官方只發佈對應 Windows 平台的執行檔。開發目前是以 Windows 平台的命令列版本為主(在 0.37b14 版之前的開發是以 MS-DOS 平台為主,現已停止發佈),從 0.137 版開始提供 SDL 跨平臺函式庫的 SDLMAME 原始碼(不提供執行檔);其他非官方的衍生版有加入 Windows 圖形使用介面的 MAMEUI,以及 Unix-like 系統的 XMAME、Mac OS X 系統的 MacMAME。
根據 MAME 官方網站描述,第一個公眾 MAME 版本 (0.1) 是在1997年2月5日,由意大利程式設計師 Nicola Salmoria 發佈。目前 MAME 發展至今已超過十年,官方為了紀念十周年這個里程碑,選在2007年2月5日的十週年生日推出新版本 (0.112) 以茲紀念。一直以來,除了 MAME 官方開發團隊致力於程式開發之外,尚有數百名來自全世界的非官方程式設計師參與編寫,目前此開發專案由官方開發團隊核心成員 Angelo Salese[3]負責管理與發佈。
MAME 除了正式發行的版本之外,在開發團隊官方網站尚有階段性的發佈中間更新,這是介於現時官方正式版和未來正式版之間的最新更新。中間更新是以原始碼差異部分的補綴檔案形式發佈,並未提供可執行的檔案,用戶必須自行編譯成執行檔才能使用,或是使用同版號的MAME衍生版本。
MAME 宣告
MAME 是一套模擬器:或多或少忠實的重現了部分業務機台的效能,但是沒有軟件的硬件是毫無用處的,所以必須要有 ROM 映像檔配合執行,這種 ROM 檔跟其它任何一種商業軟件一樣都具有版權,因此如果您並不擁有原始機台而去使用它們,乃是違法的行為。不言而喻,這些 ROM 檔不能連同 MAME 一起散佈,將 MAME 和 ROM 映像檔一起散佈的行為已經違反了版權法,應該盡速向這些作者回報,以便採取適當的法律措施。
MAME 是免費的,其原始碼也是免費的,但在2016年3月更改授權許可前不允許銷售。
MAME 是公開原始碼的免費軟件(Freeware),雖然使用其軟件及原始碼完全免費,也可以重新分配,但卻不允許銷售,也不允許製成商業產品或是用於商業活動,故不能歸類為標準的開放原始碼(Open source)或自由軟件(Free software),因為在某些授權條例上是有所牴觸的,所有授權規範一切依照官方制定的 MAME 授權協定 (頁面存檔備份,存於互聯網檔案館)為準則。按照理查德·斯托曼的說法,MAME是准自由軟件(Semi-free Software)。
不過在特定情況下,無論是修改或是未修改過,且「再次散佈的情形下不得被販售,或者是被用於商業產品及活動」,MAME 即能以原始碼或是執行檔的形式再次散佈。但另外修改過的再次散佈版(衍生版本)必須包含完整的對應原始碼(類似 Copyleft)。參考 MAME 授權協定 (頁面存檔備份,存於互聯網檔案館)。
MAME已於2015年5月開始更改其授權許可,至2016年3月止已改爲使用BSD license和GNU GPL v2+,成爲真正的自由軟件。
工作原理
MAME 由多個元件組成,包含:中央處理器模擬器,用以模擬各種街機中的 CPU 裝置;輸入系統模擬,用以模擬各種街機輸入裝置,例如按鈕、搖桿、光線槍和其他控制器的輸入系統;街機顯示和聲音的模擬器。MAME 唯一不包含的是 ROM 映像,也就是原始街機遊戲中的軟件。在 MAME 運行時,就如同多年前的原本遊戲在運行,只不過是在不同的裝置上,以模擬原始裝置的方式運行罷了。
ROM 的定義
在大多數的街機中,遊戲資料(包含了執行的程式、圖形及音效等)都是儲存於遊戲機板上的唯讀記憶體(Read-Only Memory)晶片裏(因此這些資料被簡稱為 ROM),當然也有採用其他儲存媒介的,像是卡匣、磁片、硬碟、光碟、鐳射光碟等。將儲存於其中的遊戲資料讀出後儲存成為一般電腦使用的檔案格式,這個過程稱為轉儲或吸出(dumping)。因為大多數遊戲資料都是儲存於唯讀記憶體,漸漸地不管這些檔案原先是被儲存於怎樣的媒介,吸出後的檔案都通稱為 ROM 映像檔或 ROM。
在要執行某一特定的遊戲時,MAME 就需要這些吸出自原始街機的整組檔案,這一整組的檔案稱之為「ROM 集合」,但是礙於法規 MAME 不會內建這些檔案。
- 一般的 ROM 集合。將一個遊戲中所包含的全部吸出資料後,以壓縮方式存放於一個內定名稱的 ZIP 格式壓縮檔(也可以未壓縮方式存放於同名的資料夾)。
- CHD 的 ROM 集合。只針對遊戲中包含硬碟、光碟的大型儲存媒介,將單一媒介中的資料吸出為映像檔後,再壓縮為單一 CHD(Compressed Hunks of Data)格式的壓縮檔。
- 原作版遊戲 ROM 集合,又稱之為主版本。這些 ROM 檔包含供遊戲執行所需要的所有資料,但不包含 BIOS 檔案。
MAME 開發團隊會訂定每種遊戲的原作版,通常都是挑選最新的版本當成原作版,如果有多種區域版本的話,則通常挑選世界版或是美國版。 - 仿製版遊戲 ROM 集合,又稱之為子版本。與原作版本有差異的版本,或是變體版(例如 Street Fighter II Turbo 為 Street Fighter II Champion Edition 的變體版)。包含有:替換版 (alternate)、盜版 (bootleg)、黑客版 (hack)、解密版 (decrypted)、衍生版 (derivative)、開發版 (prototype)、複製版、相容版、授權版、變體版、新舊版、各種區域版、各種語言版等。
通常會被歸類為仿製版和原作版此兩者相依性關係的遊戲,主要原因在於這些遊戲的 ROM 結構有雷同的內容,所以便將其中之一個歸類為該另一個遊戲的子版本。仿製版的遊戲一定會有一個原作版,原作版遊戲卻不一定帶有仿製版、而有些原作版遊戲還帶有一個以上的仿製版。 - BIOS 的 ROM 集合,這是通用於標準化的街機系統(例如 NeoGeo),主要用於啟動硬件,然後交由遊戲軟件接管系統。
外部連結
- MAME 開發團隊官方網站 (頁面存檔備份,存於互聯網檔案館) - 提供 Windows 命令列版本和中間更新
- SDLMAME 官方原始碼 (頁面存檔備份,存於互聯網檔案館) - 官方提供的 SDLMAME 原始碼,採用 SDL 跨平臺多媒體函式庫
- MAME 開發團隊維基網站 (頁面存檔備份,存於互聯網檔案館) - 提供給開發人員各種相關資訊
- Mame History.dat (頁面存檔備份,存於互聯網檔案館) - 記錄各個遊戲的歷史資料
- Mameinfo.dat (頁面存檔備份,存於互聯網檔案館) - 記錄各個驅動的模擬進度
- MAME 遊戲的非官方譯名對照:Za-Zz