热门内容:拳皇 侍魂 西游 三国 街霸

当前位置:主页 > 街机文章 > 街机秘籍 > 经典模拟器MAME架构、编译及配置浅析,街机经典模拟器MAME架构、编译及配置浅析,

经典模拟器MAME架构、编译及配置浅析,街机经典模拟器MAME架构、编译及配置浅析,

来源:互联网作者:匿名投稿时间:2019-11-21

经典模拟器MAME架构、编译及配置浅析:[摘要] 众所周知,M A M E是目前世界上支持驱动最多、模拟精确程度最高、开发团队实力最强及影响力最

经典模拟器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 下一页

街机网发布此文仅为传递信息

不代表街机网认同其观点或证实其描述

最新发布

更多
  • 街机游戏-原创赏析0062:拳皇97中几个著名的BUG
    街机游戏-原创赏析0062:拳皇97中几个著名的BUG
    10/112024
    街机游戏-原创赏析0062:拳皇97中几个著名的BUG街机游戏文章作者:rnmb(情深似海)街机游戏文章出处:因为要用大蛇和暴走,所以我使用
    编辑人:匿名投稿    /    来源:超能街机
  • 三界谕2秘籍-作弊码指令秘籍
    三界谕2秘籍-作弊码指令秘籍
    10/112024
    三界谕2秘籍-作弊码指令秘籍
    编辑人:匿名投稿    /    来源:超能街机
  • 《拳皇97》角色能力TOP10排行榜
    《拳皇97》角色能力TOP10排行榜
    10/112024
    相信不少8090甚至是00后都难以忘怀曾经风靡世界的街机王者:拳皇,这款游戏整整支撑了15年却依旧火爆如初。时至今日,《拳皇97》依然活跃于街机厅和网络对战平台。相信大家一定对《拳皇97》中前十强会有争议,每个人都有他心中的NO1,以下排名仅供参考。
    编辑人:匿名投稿    /    来源:超能街机
  • 硬核机甲启示萨维娜角色情报
    硬核机甲启示萨维娜角色情报
    06/072024
    硬核机甲启示萨维娜这个驾驶员不少玩家不了解,小编带来了关于这个驾驶员的一些相关信息,可以参考一下。
    编辑人:匿名投稿    /    来源:超能街机

站内推荐

更多