作者ggg12345 (ggg)
看板Emulator
标题Re: [转录][问题] 电玩模拟器是怎麽写出来的?
时间Wed Sep 3 11:44:26 2008
※ 引述《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
1F:推 conpo:好文推 09/03 13:14
2F:推 gfneo:push 09/03 19:59
3F:推 reallurker:推先看後~~ 09/03 21:07
4F:推 nehex:推好文 09/03 22:46
5F:推 f9548001:GOOD!! 09/04 02:13
6F:推 dansha:推好文 09/04 12:22
7F:推 dux:很多字推! 09/05 21:54