MAME(最初是多個街機仿真器的首字母縮寫詞)是一種免費的開源模擬器,旨在在現代個人計算機和其他平台上在軟件中重新創建街機遊戲系統的硬件。[2]目的是通過防止老式遊戲迷失或遺忘來保護遊戲歷史。 MAME的目的是引用模擬街機機的內部工作。實際玩遊戲的能力被認為是“不錯的副作用”。[3] Joystiq已將MAME列為每個Windows和Mac遊戲玩家都應該擁有的應用程序。[4]
第一個公共MAME發布是由Nicola Salmoria於1997年2月5日由Nicola Salmoria發行的。模擬器現在支持7,000多種獨特的遊戲和10,000個實際的ROM圖像集,儘管並非所有支持的遊戲都可以玩。 Mess是許多基於MAME Core的許多視頻遊戲機和計算機系統的模擬器,並於2015年將其集成到MAME上。
MAME(多街機模擬器)是一種免費的開源模擬器,旨在在現代個人計算機和其他平台上在軟件中重新創建街機遊戲系統的硬件。 mame.net是一個基於C#的街機仿真器,它保持了MAME相同的架構。通過使用C#和功能強大的集成開發環境 - Microsoft Visual Studio,沒有宏,您可以在任何地方調試支持的街機遊戲。到目前為止,有一些經典董事會支持:M72,M92,CPS-1,CPS-1(QSound),CPS2,Neo Geo,Namco System 1,IGS011,PGM(Poldgame Master)。
MAME.NET按以下步驟運行:加載ROM,初始化機器,軟重置機器,然後循環“ CPUEXEC_TIMESLICE”操作。 “ cpuexec_timeslice”操作是指在一個時間切片中依次執行每個CPU,並執行計時器回調。計時器回調包含:視頻更新,軟重置,CPU中斷,聲音更新,看門狗重置和其他中斷。通過這些步驟,mame.net成功地模擬了街機板。 mame.net具有更多功能:保存和加載狀態,記錄和重播輸入,作弊,騙子搜索,IPS(補丁主ROM),董事會調試器,CPU調試器。



當加載遊戲的ROM時,模擬器會自動暫停。按P繼續。
*有時會發生GDI+誤差,並顯示一個紅十字會。您可以單擊“文件復位圖片框”以處理錯誤。
1歷史和概述2設計2.1遊戲數據3哲學和準確性4法律狀態5原始MAME-LICENSE 6另見7參考8外部鏈接
該項目由意大利程序員Nicola Salmoria創立。 Mame將其根源追溯到一個名為Multi-Pac的較早的模擬器項目,但是隨著MAME Framework中越來越多的遊戲開始,該名稱被更改了。第一個版本於1996年發布。[5] 1997年4月,薩爾莫里亞(Salmoria)辭去了他的國民服務承諾,將該項目的管理交給了意大利米爾科·布法尼(Mirko Buffoni),為期半年。 2003年5月,大衛·海伍德(David Haywood)接管了協調員的工作。從2005年4月到2011年4月,該項目由亞倫·吉爾斯(Aaron Giles)協調。[6]安吉洛·薩萊斯(Angelo Salese)介入了新的協調員。[7] 2012年,Miodrag Milanovic接管了。[8]該項目得到了世界各地數百名開發商和數千名外部貢獻者的支持。
首先,MAME是專門針對MS-DOS開發的,但很快將移植到Unix樣系統(X/MAME),Macintosh(MacMame和後來的MAME OS X)和Windows(Mame32)。自2001年5月24日以來,版本為0.37B15 [6],主要開發發生在Windows平台上,大多數其他平台都通過SDLMAME項目支持,該項目於2006年集成到主要開發源樹中。[9]此外,不同版本的MAME已移植到其他計算機,遊戲機,手機和PDA上,甚至在某一時刻到數碼相機。[10] 2012年,Google將MAME移植到本地客戶端,這使Mame可以在Chrome內部運行。[11]
媽媽的主要發行大約每月發生一次。 Windows的可執行文件中的32位和64位時尚都在開發團隊的官方網站以及完整的源代碼上發布。[12]每週發布較小的增量“ U”(用於更新)版本(直到版本0.149U1)作為源差異,以使開發人員之間的代碼保持同步。[13] MAME源代碼是在公共GitHub存儲庫上開發的。[14]這使那些具有所需專業知識和工具的人可以構建代碼的最新版本,並以拉動請求的形式貢獻增強功能。不存在歷史版本數為0.32,並且包含0.38至0.52;由於Mame32變體的類似命名(此後,由於遷移到64位的構建而被更名為Mameui),而後者被跳過了,而後者的數字由於0.37 Beta週期中的眾多發行版而被跳過(此後這些版本的數字在此後已在其官方MAMEDEV網站上標記為等於0.37 Beta beta beta beta beta beta beta beta extere equart office beta beta。
多年來,MAME的建築已得到廣泛的改善。在項目的前六個月中,添加了對柵格和矢量顯示器以及多個CPU和聲音芯片的支持。實現了一個靈活的計時器系統,以協調多個模擬CPU內核之間的同步,並且根據其存儲在它們存儲的ZIP文件中的CRC32 HASH開始加載ROM圖像。[6] Mame率先開創了許多無證件系統體系結構的反向工程,各種CPU(例如帶有新說明的M6809衍生定制konami CPU)和聲音芯片(例如,Yamaha FM Sound芯片),Mame Developers以及MAME Developers已在許多主題中都具有反向工程。這些例子包括NEO GEO,CP System II,CP System III等。[需要引用]
瑪梅(Mame)的受歡迎程度自以來就已經很奇怪地進入了主流,愛好者建立了自己的街機遊戲櫃來重溫舊遊戲,並且公司生產了將安裝在街機中的非法衍生產品。可以通過從頭開始建造機櫃,也可以通過拆開和修改曾經與內部的真實硬件一起使用的真正街機遊戲機櫃。[16] [17]還可以購買並組裝受經典街機遊戲啟發的櫥櫃(可选和MAME預裝)。[18]
儘管MAME包含一個基本的用戶界面,但在街機遊戲櫃和家庭劇院中使用MAME需要具有更高級用戶界面的前端的特殊啟動器應用程序。前端提供了不同程度的自定義 - 允許一個人查看櫥櫃的圖像,遊戲的歷史以及有關如何玩遊戲的技巧,甚至可以看到遊戲玩法或吸引遊戲模式的視頻。
MAME中包含的信息是免費的,可以重複使用,並且眾所周知,公司在現代系統上重新創建其舊經典時使用MAME。有些人甚至僱用了MAME開發人員為其舊屬性創建仿真器。一個例子是Taito Legends Pack,其中包含在Mame的精選版本上可讀取的ROM。[19]
自2012年以來,MAME一直由當時的Mess項目負責人MiodragMilanović維護。[8]
2015年5月27日(0.162),遊戲機和計算機系統模擬器混亂與MAME集成在一起(因此,MAME的Mess用戶手冊仍然是MAME非階段部分的最重要用法指令)。[20]
2015年5月,宣布,Mame的開發人員計劃根據更常見的免費和開源許可重新許可該軟件,遠離原始MAME許可。 MAME Developer Miodrag Milanovic解釋說,該更改旨在吸引該項目的更多開發人員興趣,使遊戲的製造商可以分發MAME來模仿自己的遊戲,並使軟件成為“為開發委員會工作的開發人員學習工具”。 MAME的許可過渡到BSD/GPL許可證於2016年3月完成。[21] [22]隨著許可證的更改,MAME的大多數源代碼(90%+)均可在三個條件BSD許可下獲得,並且完整的項目在GNU通用公共許可證版本2或更高版本下。[21] [23]
2016年2月24日(0.171),Mame嵌入了Mewui前端(開發人員加入了團隊),為MAME提供了靈活,更完整的UI。[24]
本節可能包含原始研究。請通過驗證提出的索賠並添加內聯引用來改進它。應刪除僅由原始研究組成的陳述。 (2019年7月)(了解如何以及何時刪除此模板消息)MAME Core協調了幾個元素的仿真。這些元素複製了原始街機機中存在的硬件的行為。 MAME可以模仿許多不同的中央處理單元(CPU)和相關的硬件。這些元素是虛擬化的,因此MAME充當遊戲原始程序之間的軟件層,而平台MAME則繼續進行。 MAME支持任意屏幕分辨率,刷新率和顯示配置。如達里烏斯(Darius)所要求的多個模擬監視器也得到了支持。
單個街機系統由採用C預處理器宏的驅動程序指定。這些驅動程序指定要模擬的各個組件以及它們如何相互交流。儘管MAME最初是在C中編寫的,但需要面向對象的編程導致開發團隊開始將所有代碼作為MAME 0.136的C ++編譯為C ++,從而利用該語言的其他功能。
儘管絕大多數CPU仿真核心都是解釋性的,但MAME還通過稱為通用機器語言(UML)的中間語言支持動態重新編譯,以提高仿真速度。支持的後端目標是X86和X64。 AC後端也可用於進一步幫助驗證正確性。以這種方式模擬的CPU是SH-2,MIPS R3000和PowerPC。
原始的程序代碼,圖形和聲音數據需要存在,以便可以模仿遊戲。在大多數街機計算機中,數據都存儲在僅讀取的內存芯片(ROM)中,儘管還使用了其他設備,例如盒式磁帶,軟盤,硬盤,激光盤和緊湊型光盤。在稱為“傾銷”的過程中,大多數這些設備的內容都可以復製到計算機文件。所得文件通常通常稱為ROM圖像或ROM,而不管它們來自哪種存儲。遊戲通常由多個ROM和PAL圖像組成;這些集體存儲在單個zip文件中,構成一個ROM集。除了“父母” ROM集(通常選擇為遊戲的最新“世界”版本)之外,遊戲可能具有帶有不同程序代碼的“克隆” ROM集,用於不同市場的不同語言文本等。例如,Street Fighter II Turbo被認為是Street Fighter II Champion Edition的變體。像Neo Geo這樣的系統委員會在多個遊戲之間共享ROM,要求將ROM存儲在“ BIOS” ROM集中並適當命名。
硬盤,緊湊型盤和激光盤以稱為CHD的特定格式(壓縮數據)存儲。[25]一些街機機使用類似硬件(例如LaserDiscs)來存儲和播放音頻/視頻數據,例如配樂和電影。這些數據必須捕獲並編碼為可以通過MAME讀取的數字文件。 MAME不支持使用外部模擬設備,而該設備(以及相同的演講者和演講者的外殼)對於100%忠實地繁殖了街機體驗。許多遊戲都使用尚未成功模擬的聲音芯片。這些遊戲需要WAV文件格式的聲音樣本才能進行仿真。 MAME另外支持Bezel和覆蓋圖形的PNG格式的藝術品文件。
該項目的既定目的是記錄硬件,因此Mame對仿真的看法有些純粹,禁止編程駭客,這些黑客可能會使遊戲運行不當或以仿真精度為代價更快地運行。諸如CPU之類的組件在可能的情況下以低級別(意味著模擬單個說明)進行模擬,並且僅在芯片完全沒有記錄時才使用高級仿真(HLE),並且不能詳細地對其進行反向工程。信號水平仿真用於仿真由模擬組件組成的音頻電路。
我們想記錄硬件。現在很多人會說; “您的文檔在哪裡?您只是寫了一堆源代碼。”是的,這是真的。我了解到的一件事是,將文檔與源代碼同步幾乎是不可能的。最好的證明您的文檔是正確的,就是“是否可以使用此代碼”。
- 亞倫·吉爾斯(Aaron Giles),加利福尼亞極限2008 [26] MAME模擬了超過一千種不同的街機系統董事會,其中大多數是完全沒有證件的,並且旨在量身定制,旨在運行單個遊戲或很少的遊戲。 MAME在準確性方面採取的方法是增量。系統被盡可能準確地模擬。遊戲的盜版副本通常是第一個被模擬的,以後會模仿適當(和復制保護的)版本。除了加密外,街機遊戲通常還使用自定義的微控制器單元(MCU)保護,該單元(MCUS)實現了遊戲邏輯或其他一些重要功能。即使對遊戲本身幾乎沒有立即可見的影響,這些芯片的仿真也是優選的。例如,直到通過芯片的銷售將自定義MCU的代碼和數據包含的代碼和數據包含的代碼和數據才能完善泡沫中的怪物行為。[27]隨著遊戲的模擬越來越準確,這會導致ROM集要求的變化,從而導致舊版本的ROM集合在MAME的較新版本中變得無法使用。
可移植性和通用性也對MAME也很重要。結合準確性的毫不妥協的立場,這通常會導致高系統要求。儘管2 GHz處理器足以運行幾乎所有2D遊戲,但即使在最快的計算機上,更近的系統,尤其是具有3D圖形的系統也可能會慢慢慢。 MAME當前不利用硬件加速度來加快3D圖形的渲染,部分原因是缺乏穩定的跨平台3D API,部分原因是從理論上講,軟件渲染可以是對街機遊戲中使用的各種自定義3D渲染方法的精確複製。
在大多數國家,擁有和分發MAME本身是合法的,因為它僅僅是模擬器。索尼等公司試圖在法庭上防止其他軟件,例如虛擬遊戲站,索尼PlayStation模擬器被出售,但最終卻沒有成功。[28]迄今為止,瑪梅本身並不是任何法院案件的主題。
大多數街機遊戲仍然受版權覆蓋。未經版權持有人許可下載或分發受版權保護的ROM幾乎總是違反版權法。但是,一些國家(包括美國)[29]允許董事會的所有者將其ROM芯片中包含的數據傳輸到其擁有的個人計算機或其他設備。一些版權持有人探索了通過許可使公眾可為公眾提供的街機遊戲ROM。例如,2003年,Atari在Internet STAR Star ROM上提供了27場街機遊戲,使Mame兼容ROM。但是,到2006年,ROM不再在那裡出售。有一次,與Hanaho製造的Hotrod Arcade Coystick一起出售了各種Capcom遊戲,但也停止了這種安排。其他版權持有人也發布了不再在禁止商業使用遊戲的許可下免費為公眾免費提供商業可行的遊戲。這些遊戲中的許多可以從官方MAME網站合法下載。[30]西班牙街機遊戲開發商Gaelco還在其網站上發布了世界集會,以供非商業用途。[31]
MAME社區與其他團體通過互聯網或物理媒體重新分配ROM距離,聲稱他們公然侵犯了版權,並通過可能使該項目脫穎而出。[32]儘管如此,ROM的非法分佈在Internet上是廣泛的,並且也存在許多“完整集”,其中包含了特定版本的ROM的完整集合。[33] [34]此外,許多盜版遊戲系統(例如街機多推車)經常使用MAME版本來運行遊戲。
Mame以前是根據自定義自己寫的CopyLeft許可證(稱為“ Mame License”或“ Mame Like Like”許可證的,該許可證也是由其他項目(例如Visual Pinball)採用的。這種舊的“ MAME許可證”可確保源代碼的可用性,而商業活動的重新分配則被禁止。由於此子句,該許可證與OSI的開源定義和FSF的免費軟件定義不相容。該非商業條款旨在防止街機操作員安裝Mame櫥櫃並從遊戲的原始製造商的作品中獲利。[22]定義“商業”的歧義導致許可證法律問題。[35] [36]
自2016年3月以來,MAME本身轉向了普通免費和開源軟件許可證,BSD和GPL許可證。[37]