经典模拟器MAME架构、编译及配置浅析,街机经典模拟器MAME架构、编译及配置浅析,
街机cn 来源:厂商 发表于:2019-11-21经典模拟器MAME架构、编译及配置浅析:
[摘要] 众所周知,M.A.M.E是目前世界上支持驱动最多、模拟精确程度最高、开发团队实力最强及影响力最为广泛的通用街机模拟器。本文以Mame 0.105b为例,尝试从编译配置和源码结构角度出发,简要分析和描述了Mame的软件架构,并且详细论述了Mame的配置、编译及裁剪过程。作为一篇启蒙性质的文章,本文主要面向希望深入了解Mame的模拟新手,以及对Mame源码感兴趣、且具备一定技术水平的模拟老手。
1. Mame源码结构
Mame 0.105b源代码目录树结构如下:
makefile是一种用于自动编译的特殊脚本,里面记录了所有源码的编译步骤、规则及相互依赖关系,多用于跨平台的命令行编译场合。它可以类比于我们熟悉的Windows中VC++的"工程文件",但是与IDE自动生成的工程文件不同,makefile脚本一般由开发者手工编写。为简洁起见,在Mame的makefile中定义了大量模板规则(pattern rule),同时,其整套编译脚本也从功能性的角度被划分为如下6个文件:
其中,后5个mak脚本用来生成相应的功能模块,而作为主控脚本./makefile则负责调用(include)上述的5个mak脚本,实现5个功能模块的链接并生成最终的mame.exe文件。
2. Mame软件架构
2.1 总体架构
早期Mame的软件架构变动得非常频繁,只有Nicola Salmoria和Aaron Giles等少数几个教父级核心开发者才能把握其细节。随着Mame的逐步成熟及其支持驱动数量的日趋庞大,Mame Team已经充分意识到了架构稳定的重要性,并终于在2005年的上半年宣布Mame的结构基本定型,这同时也说明:从源码分析角度一窥其堂奥的机会终于成熟了。鉴于0.106u2版之后的Mame引入了全新的显示系统,该系统目前仍在测试中,因此在这里我们将主要以较新的0.105稳定版作为具体分析实例。
根据Mame的源码及makefile编译结构,我们可得出其目前的总体架构图如上。如图所示,整个Mame架构可划分为核心层和OSD层共2个层次;其中的核心层又引用了驱动、CPU核心及声音芯片核心等3个模块,它们都是平台无关的;而针对Windows的OSD层则为核心层集中提供了面向操作系统的具体实现接口,所有的Win32 API和DirectX实际调用均由OSD层来实现。可以看出,通过替换OSD层,可以很方便地将Mame移植到不同的操作系统中,并使用不同的底层多媒体控制机制,如MacOS-Linux/SDL等,但是反过来,这种具备良好移植性的分层结构恰恰也是导致Mame模拟效率低下的主要原因之一,对移植性的追求使得Mame不可能100%的充分利用平台相关的硬件加速能力。
1 2 3 4 下一页 |
相关文章
更多- 05/20mame模拟器的好处:推荐大家使用mame的原因(不论单机还是联网)
- 05/19Mame 0.156新模拟支持游戏
- 04/06mame模拟器设置,mame模拟器怎么用
- 04/01MAME模拟器ROM管理的一些心得
- 03/29MAME所有游戏键盘设置+格斗游戏这样按
- 12/17mame0.198中文街机模拟器发布下载
猜你喜欢
游戏热度高
-
-
下载
- 138合1童年经典红白机游戏
- 街机合集 | 1 MB
-
-
下载
- 电神魔傀2(电精2守护将军)
- 格斗街机 | 36.3 MB
-
-
下载
- 【SFC】SD机动战记2
- SFC游戏 | 1.25 MB
-
-
下载
- 街机游戏合集500合1
- 格斗街机 | 4.1 GB
-
-
下载
- 街机游戏合集500中文版
- 街机合集 | 18.98 MB
-
-
下载
- 三国战纪风云再起(整合版+模拟器)
- 街机合集 | 41.87 MB
-
-
下载
- 龙虎争霸2大满贯单机版
- 技能街机ROM | 1.26 MB
-
-
下载
- 尼尔:机械纪元免安装中文版
- 角色扮演 | 47.29 GB