Re: [轉錄][問題] 電玩模擬器是怎麼寫出來的?

看板Emulator作者 (ggg)時間15年前 (2008/09/03 11:44), 編輯推噓7(700)
留言7則, 7人參與, 最新討論串4/4 (看更多)
※ 引述《BillyJr (Billy Jr.)》之銘言: : : 方法1:廠商有公佈or流出電玩的spec. : : 聽說當年GBA模擬器能那麼快寫出來,就是規格外洩 : : 但那些規格未知的電玩模擬器是怎麼寫的? : 當時的 GBA 其實是根據 GBA 的遊戲開發套件寫的,至於算不算外洩 hmm.. : 只要有完整的遊戲開發套件跟過人的毅力基本上都能把主機模擬的不錯 像是 : PS、SS、N64 其實都有很完整的遊戲開發套件資料 (遊戲額外保護不算) ====== 有開發套件指的就是底層的硬體與基本的 function library 及簡單的範 例已經有了. 需要使用模擬器的技術應該是不能(不可以)製造底層的硬體, 在受限下, 需要用其他類似的硬體代替, 但模擬對象的硬體與底層軟體功能不是很清 楚, 所以就從開發討件的 function library 來揣測底層的功能規格, 再 用現成已知已有的硬體與底層軟體來合成. 基本上講, 就是造一層中間層的軟體, 使電玩軟體與底層硬體軔體銜接. : : 方法2:拆解硬體,然後寫出模擬器 : : 覺得這方法根本是天方夜譚 = = : 這不是天方夜譚.. 相反的比例佔了很大,說個模擬器的黑暗面好了.. 其實在 : 96~2000 年開始模擬器走向蓬勃發展的那段時間,幕後很大的黑手其實來至於 : 遊戲盜版/破解商的資源,因為有這些硬體破解的資料,才能支援那一卡車特殊 : 晶片、保護的遊戲,而且最重要的,單純只靠開發套件,沒有辦法模擬到令人 : 滿意的準確度,有很多很細微的調整不會在開發套件上,主機開發廠商也不會 : 告訴你,你只能靠自己反像追蹤測試,這裡面包括了 FC、SFC、SEGA MD ... : 尤其是 FC .. 即使到了今天還是有誤差.. SFC 在 bsnes 上已經有接近一百分 : 的硬體模擬了,只是要有一百分硬體模擬速度在我雙核的電腦上,跑不到30fps ====== 這應該是指的被模擬的電玩硬體裝置有獨家的 IC chip set , 同時具有獨家 的特異功能(譬如畫某種圖的特異速度), 因此就想要用類似的硬體零件合成 來逼近. 或者是這特異功能也可能是底層(軟)韌體的演算法, 但必須重寫一 套來配合硬體, 所以就用 "追蹤測試" 來記錄被模擬對象執行時的處理步驟. 模擬器再提供出類似步驟的功能. 基本上, 這還是在提供出相同的 function library 或 function unit 給上層 的電玩應用軟體來使用. : : 方法3:軟體逆向工程 : : 例如藉由廠商公佈電玩支援的指令集、API....等 : : 然後分析這些指令、API對應到的機碼,藉此寫出模擬器 : : 不過這方法是我亂想到的,不知道可行嗎? : 其實這也算是蠻大一部份的,尤其是一開始完全沒資料的情況下,從遊戲做逆向 : 工程的模擬其實很多,優點是很快就能看到一些東西模擬出來,缺點是準確性差 : 大部分的 arcade 遊戲模擬都是用這方法的,其中 PGM、CPS2、CPS3 大家應該 : 比較熟悉,不過用這方法模擬的有一個比較大的問題就是.. 只能追求遊戲能玩 : 就好... ohh.. 忘了說,在大家不知道有發表的 A'can 也是用這方法模擬的, : A'can 其實有在之前某一版的 Mess (lynx 版) 支援過.. 但現在拿掉了 逆向工程(reverse engineering) 跟 emulation 是不相同方向的兩種技術, 兩者都 可以達到與某已知對象相容的作用. 但逆向工程主要是從拆解已知系統的組件開始, 取得功能關係後再還原原來的設計圖, 最後取得整個原設計的高階抽象意念, 主要 是還原原來的設計構想, 設計圖與文件. 有了還原的設計圖就幾乎可以照抄照做, 但也可以是類似性的模仿, emulation 是從模仿構思做起, 但實現的組件與作法可 以不同, 甚至是使用通用的裝置, 使用通用的程序步驟, 但在功能上要模仿出特定 的功能, 進一步有更突出的效用. MAME 是使用 emulator 技術來模擬 arcade machine 讓原來的電玩 ROM 程式可以 類似的再現. 假如原設計規格與設計圖(流程)已消失, 原來的硬體平台也不再重造, emalator 的技術是想讓電玩 ROM 程式在 PC 機以模擬形式在不同的平台再現. 這 類電玩多數是 video game , 速度要求不高下, 可以使用 PC game 平台來模擬. 做模擬器的總是有個模仿的對象, 對象的規格與設計不清楚下, 就不容易做出同樣 的功能動作, 因此逆向工程的某些技術就難免要使用到. 不過, 透過現在的網路互 動, 有使用過原裝產品者就能指出模擬器表現的差異, 只要指出狀況, 做模擬器的 自然能抓出問題改進, 所以不必進行澈底完全的逆向工程工作. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.4.12

09/03 13:14, , 1F
好文推
09/03 13:14, 1F

09/03 19:59, , 2F
push
09/03 19:59, 2F

09/03 21:07, , 3F
推先看後~~
09/03 21:07, 3F

09/03 22:46, , 4F
推好文
09/03 22:46, 4F

09/04 02:13, , 5F
GOOD!!
09/04 02:13, 5F

09/04 12:22, , 6F
推好文
09/04 12:22, 6F

09/05 21:54, , 7F
很多字推!
09/05 21:54, 7F
文章代碼(AID): #18lWWRxd (Emulator)
討論串 (同標題文章)
文章代碼(AID): #18lWWRxd (Emulator)