MAME

**MAME**，全名 **M**ultiple **A**rcade **M**achine **E**mulator（多重大型電玩模擬器）是一套設計給個人電腦使用的軟體應用程式，其目標在於盡可能的忠實且精確地類比許多街機遊戲，宗旨在於儲存遊戲的歷史，並防止古老的遊戲被遺失或遺忘。

## 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 負責管理與發佈。

### 中間更新

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 的定義

在大多數的街機中，遊戲資料（包含了執行的程式、圖形及音效等）都是儲存於遊戲機板上的唯讀記憶體（**R**ead-**O**nly **M**emory）晶片裡（因此這些資料被簡稱為 ROM），當然也有採用其他儲存媒介的，像是卡匣、磁片、硬碟、光碟、鐳射光碟等。將儲存於其中的遊戲資料讀出後儲存成為一般電腦使用的檔案格式，這個過程稱為轉儲或吸出（dumping）。因為大多數遊戲資料都是儲存於唯讀記憶體，漸漸地不管這些檔案原先是被儲存於怎樣的媒介，吸出後的檔案都通稱為 ROM 映像檔或 ROM。

在要執行某一特定的遊戲時，MAME 就需要這些吸出自原始街機的整組檔案，這一整組的檔案稱之為「ROM 集合」，但是礙於法規 MAME 不會內建這些檔案。

### ROM 存放形式

1. 一般的 ROM 集合。將一個遊戲中所包含的全部吸出資料後，以壓縮方式存放於一個內定名稱的 **ZIP** 格式壓縮檔（也可以未壓縮方式存放於同名的資料夾）。
2. CHD 的 ROM 集合。只針對遊戲中包含硬碟、光碟的大型儲存媒介，將單一媒介中的資料吸出為映像檔後，再壓縮為單一 **CHD**（**C**ompressed **H**unks of **D**ata）格式的壓縮檔。

### ROM 集合類型

1. 原作版遊戲 ROM 集合，又稱之為主版本。這些 ROM 檔包含供遊戲執行所需要的所有資料，但不包含 BIOS 檔案。 
MAME 開發團隊會訂定每種遊戲的原作版，通常都是挑選最新的版本當成原作版，如果有多種區域版本的話，則通常挑選世界版或是美國版。
2. 仿製版遊戲 ROM 集合，又稱之為子版本。與原作版本有差異的版本，或是變體版（例如 _Street Fighter II Turbo_ 為 _Street Fighter II Champion Edition_ 的變體版）。包含有：替換版 (alternate)、盜版 (bootleg)、駭客版 (hack)、解密版 (decrypted)、衍生版 (derivative)、開發版 (prototype)、複製版、相容版、授權版、變體版、新舊版、各種區域版、各種語言版等。 
通常會被歸類為仿製版和原作版此兩者相依性關係的遊戲，主要原因在於這些遊戲的 ROM 結構有雷同的內容，所以便將其中之一個歸類為該另一個遊戲的子版本。仿製版的遊戲一定會有一個原作版，原作版遊戲卻不一定帶有仿製版、而有些原作版遊戲還帶有一個以上的仿製版。
3. BIOS 的 ROM 集合，這是通用於標準化的街機系統（例如 NeoGeo），主要用於啟動硬體，然後交由遊戲軟體接管系統。

### ROM 取得管道

1. 如果擁有實際的街機遊戲基版及 EPROM 吸出工具，可自行讀出這些 ROM 檔案。
2. 部分像是 Capcom 及 Atari 公司提供自家已淘汰的老舊街機遊戲 ROM 販賣服務，採個別販售或是包含於其他產品中。
3. 還有一些 ROM 集合因為遊戲的著作權持有人開放了在非商業行為下的自由散佈權利，這些集合可以在 MAME 網站 （頁面存檔備份，存於網際網路檔案館）上取得（例如 _Robby Roto_）。

## 外部連結

### 官方網站

* MAME 開發團隊官方網站 （頁面存檔備份，存於網際網路檔案館） - 提供 Windows 命令列版本和中間更新
* SDLMAME 官方原始碼 （頁面存檔備份，存於網際網路檔案館） - 官方提供的 SDLMAME 原始碼，採用 SDL 跨平臺多媒體函式庫
* MAME 開發團隊維基網站 （頁面存檔備份，存於網際網路檔案館） - 提供給開發人員各種相關資訊

### 衍生版本

* MAMEUI 官方網站 （頁面存檔備份，存於網際網路檔案館） - Windows 圖形使用介面的官方授權改版
* MAME Plus! - Windows 圖形使用介面的多國語言版本
* XMAME （頁面存檔備份，存於網際網路檔案館） - Unix-like 版本
* MacMAME - Mac OS（麥金塔）版本
* BeMAME （頁面存檔備份，存於網際網路檔案館） - BeOS 版本
* MAME/MESS for Mac OS X - 64-bit Intel （頁面存檔備份，存於網際網路檔案館） - macOS 版本

### 相關資料

* Mame History.dat （頁面存檔備份，存於網際網路檔案館） - 記錄各個遊戲的歷史資料
* Mameinfo.dat （頁面存檔備份，存於網際網路檔案館） - 記錄各個驅動的類比進度
* MAME 遊戲的非官方譯名對照：Za-Zz

## 參照資料