一种掌上娱乐终端游戏模拟器系统及其实现方法

文档序号:1591836阅读:462来源:国知局
专利名称:一种掌上娱乐终端游戏模拟器系统及其实现方法
技术领域
本发明涉及一种游戏模拟器系统,尤其涉及掌上娱乐终端模拟器系统及其实现方法。
背景技术
目前随着互联网的发展,网络游戏逐渐成为人们生活中不可缺少的娱乐内容之一。不同的游戏所需的运行环境不一样,即使是同一款游戏,在普通PC机上能够运行但如果移植到便携式游戏机上,也不一定能够实现。
从70年代到现在已经有超过3300个不同的经典大型街机游戏,为了保存纪念这些游戏,全球的许多组织开发了许许多多的模拟平台来模拟街机游戏,但这种模拟器主要运行于个人PC及服务器上,提供标准的游戏平台,满足不同的游戏运营需要。但通用的PC、各种类型的服务器以及其他大型游戏设备与轻便灵活的掌上型游戏娱乐设备硬件环境的不同,其运行游戏所需的环境要求也不一致,在PC上运行游戏的模拟器不能满足便携式掌机的游戏兼容性要求。
掌上型随身互动娱乐终端模拟器系统,是基于目前最先进的掌上电脑平台Microsoft Windows CE 5.0(微软公司做的一种嵌入式操作系统,以下简称WinCE)嵌入式操作系统,实现了对Taito B,Taito f2,Taito L等一系列游戏机基板的模拟,支持高度准确的图像与声音还原,以及硬件支持下的8方向控制。这是针对特定基板而定制开发的模拟器,后续还可以再添加扩充对其它基板的支持。同时,如果依循这种开发模式也可以开发出具有自主版权的基于其它平台的街机游戏模拟器。

发明内容
本发明要解决的技术问题是提供一种便于携带、轻巧、能够模拟各种游戏的掌上型娱乐终端游戏模拟器系统及其进行游戏模拟的方法。
为解决上述技术问题,本发明由预先读入所要模拟的游戏的CPU代码的ROM读取模块;检测用户输入的CE控制输入模块;传输图像数据到显示设备的CE图像输出模块;传输声音数据到音频设备的CE声音输出模块;接受来自ROM读取模块和CE控制输入模块的信息代码的MEMORY接口模块;接受来自ROM读取模块中的游戏代码信息并启动所述模拟器系统的CHIP模拟模块;在模拟器启动时配置所要模拟的游戏代码及其它模拟设备代码的控制模拟模块;受控制模拟模块激活并从MEMORY接口模块读取游戏代码的CPU模拟模块;接受CPU模拟模块调取自MEMORY接口模块的图像数据的图像模拟模块;接受CPU模拟模块调取自MEMORY接口模块的声音数据的声音模拟模块所组成。
为解决上述技术问题,本发明进行游戏模拟的方法,包含下列步骤控制模拟模块初始化游戏配置;ROM读取模块读取游戏数据;CE控制输入模块检测用户输入;CPU模拟模块运行;声音模拟模块更新音频数据;图像模拟模块更新画面;VBLANK中断。
本发明由于完全采用软件技术方案来模拟游戏硬件运行环境的体系结构以及基本的软件环境,解决了在便携式娱乐设备上运行各种游戏的需求。


图1是本发明掌上娱乐终端游戏模拟器系统的模块框图;图2是本发明掌上娱乐终端游戏模拟器系统的流程图。
具体实施例方式
下面结合附图对本发明作进一步详细的说明。
掌上游戏机实质上是一种很特殊的计算机(单片机),包括CPU、内存、图形设备、声音设备和输入输出等设备。街机游戏模拟器的开发任务就是根据游戏机的硬件类型,通过软件指令实现游戏机主机CPU所有指令,同时将游戏机的内存、显示、声音、输入映射到目标机上,从而通过软件实现了一个虚拟的游戏机,而这个虚拟的游戏机如果模拟的好,那与真实的游戏机几乎没什么差别。
模拟器系统模型主要有外围的ROM读取模块、CE控制输入模块、CE图像输出模块、CE声音输出模块,和核心的CPU模拟模块、芯片(CHIP)模拟模块、内存(MEMORY)接口模块、图像模拟模块、声音模拟模块、控制模拟模块,其模型图如图1所示。
如图2所示,掌上娱乐终端游戏模拟器系统进行游戏模拟的方式是这样的,在启动一个游戏的时候,即插式加载模块负责把一个游戏的所有数据从zip文件中解压并且装载到内存接口模块中,当然装载的位置是有要求的,要符合要模拟的机板的要求,这些文件中有数据文件(如图形信息,声音信息等),程序文件(二进制的可执行程序,是在街机上运行的,也是我们要在PC上模拟的代码。),这些文件是以一个zip压缩文件的形式存放在所述即插式加载模块上面的。这是游戏启动的第一步。
当加载完成后,是建立模拟器的工作了,在这个工程中,我们的程序会根据这个游戏所对应的机板来初始化运行模拟器所必要的工作。初始化声音系统,建立从声音数据到声音输出的整个通路系统;初始化图形系统,初始化图形解码和显示的所有准备工作;初始化被模拟的指令执行系统,建立对应所需要的CPU的各项参数。
当所有这些准备工作完成后,模拟器启动,也就真正开始了我们的游戏,软CPU模拟模块模拟硬CPU的执行过程,不停的取指令和执行指令,当然这中间会有时间片来同步的,模拟被模拟的CPU的时钟。在CPU执行的过程中所有输出的声音,图形都会被送到各自的内存接口模块中去,当这些内存更新后,会回调对应的更新模块,把这些更新同步到用户界面上去。
实施例1Pbobble游戏的模拟器的实施过程要模拟一个游戏,首先要了解它的运行环境,才能配置它所需要的模拟模块。根据相关资料,我们获悉Pbobble游戏用了两个CPU,即M68000和Z80(其中Z80用做音频处理用),还用了一个Yamaha的音频芯片。这几部分内容也就是我们模拟器需要模拟的几大主要模块。日模拟器运行时,在WinMain()函数里根据传进来的参数得知所要运行的游戏,game_index=parse_cmd_line(lpCmdLine);如Pbobble的game_index是2。然后我们在运行游戏时将这个game_index传进去,res=run_game(game_index);在run_game()函数里设置Pbobble的Driver。
在模拟器启动的过程中,在控制模拟模块里(在文件tatio_b.c中)配置Pbobble游戏的CPU和其它模拟设置,例如MDRV_CPU_ADD(M68000,3000000) /*配置M68000CPU并设置模拟3MHz的主频*/MDRV_CPU_ADD(Z80,2500000) /*配置Z80CPU并设置模拟2.5MHz的主频*/MDRV_SOUND_ADD(YM2610B,8000000)/*配置Yamaha音频芯片*/其它主要配置还有配置游戏的中断,配置游戏的INPUT_PORTS和ADDRESS_MAP读写。
模拟器通过外围的ROM读取模块取得游戏的数据,包括游戏程序和游戏音频、视频数据两部分;读取到游戏程序和游戏数据后就可以在模拟器上运行。
在显示的时,图象解码模块里调用游戏所设定的那些驱动,如在intvh_open(void)函数里,调用decode_graphics()函数对取得的Pbobble游戏图像数据进行解码,解码后的图形形成在模拟器的显示存储里面,然后通过图形格式的转换到掌机的显示设备里面。
配置好以后游戏的模拟运行基本与具体的游戏无关了,去掉ROM读取模块,游戏在运行时需要一直读取数据。然后,模拟器会自动按照配置好的参数运行,读取到的游戏程序和数据,关于这部分各个游戏的运行都是一样的。
整个游戏模拟器的运行是靠定时器按时间片的模式轮流让各个CPU去执行,CPU模拟模块通过CPU的接口使所配置的游戏里所要模拟的CPU都运行起来,每个CPU得到时间片后都会调用“int(*execute)(int cycles)”接口执行一定的周期。
CPU的接口定义如下struct cpu_interface{void (*get_info)(UINT32 state,union cpuinfo*info);
void(*set_info)(UINT32 state,union cpuinfo*info);void(*get_context)(void*buffer);void(*set_context)(void*buffer);void(*init)(void);void(*reset)(voi d*param);void(*exit)(void);int (*execute)(int cycles);void(*burn)(int cycles);offs_t (*disassemble)(char*buffer,offs_t pc);size_t context_size;intaddress_shift;int*icount;};模拟器的时间片轮询工作方式的伪代码示意如下while(1){设置模拟器VBlank中断();PUSH M68KCPU的context();按时间片运行模拟器M68KCPU n个周期();POP M68KCPU的context();PUSH Z80CPU的context();
按时间片运行模拟器Z80CPU n个周期();POP Z80CPU的context();声音模拟模块更新音频采样();CE声音输出模块输出一帧音频数据();图像模拟模块更新视频数据();CE图像输出模块输出一帧图像数据();}在此轮询中,更新音频和视频时调用到了声音模拟模块和图像模拟模块,从此整个模拟器就按一定的频率(例如60Hz或者低于60Hz)运行起来,每运行一帧,模拟器就会检测用户的输入,按照游戏程序运行游戏逻辑,并产生一帧图像和产生时间长度为1/60秒的音频数据,音频数据再通过声音输出模块送到音频设备,而图像画面则通过贴图(Tile)转换成符合当前屏幕格式的位图,通过图像输出模块显示到显示设备。
权利要求
1.一种掌上娱乐终端游戏模拟器系统,其特征在于,由外围模块与核心模块所组成,且所述外围模块包含预先读入所要模拟的游戏的CPU代码的ROM读取模块;检测用户输入的CE控制输入模块;传输图像数据到显示设备的CE图像输出模块;传输声音数据到音频设备的CE声音输出模块;所述核心模块包含接受来自ROM读取模块和CE控制输入模块的信息代码的MEMORY接口模块;接受来自ROM读取模块中的游戏代码信息并启动所述模拟器系统的CHIP模拟模块;在模拟器启动时配置所要模拟的游戏代码及其它模拟设备代码的控制模拟模块;受控制模拟模块激活并从MEMORY接口模块读取游戏代码的CPU模拟模块;接受CPU模拟模块调取自MEMORY接口模块的图像数据的图像模拟模块;接受CPU模拟模块调取自MEMORY接口模块的声音数据的声音模拟模块。
2.根据权利要求1所述的掌上娱乐终端游戏模拟器系统,其特征在于,还包括一配置游戏的中断、配置游戏的INPUT_PORTS和ADDRESS_MAP读写。
3.一种利用权利要求1所述的掌上娱乐终端游戏模拟器系统进行游戏模拟的方法,其特征在于,包含下列步骤控制模拟模块初始化游戏配置;ROM读取模块读取游戏数据;CE控制输入模块检测用户输入;CPU模拟模块运行;声音模拟模块更新音频数据;图像模拟模块更新画面;VBLANK中断。
全文摘要
本发明公开了一种掌上娱乐终端游戏模拟器系统,该系统由外围的ROM读取模块、CE控制输入模块、CE图像输出模块、CE声音输出模块,和核心的控制模拟模块、CPU模拟模块、MEMORY接口模块、CHIP模拟模块、图像模拟模块、声音模拟模块组成,通过软件设计模拟掌上网络娱乐终端设备的硬件以及基本的软件环境。解决了在便携式娱乐设备上运行各种游戏的需求。
文档编号A63F13/00GK101038557SQ20061002466
公开日2007年9月19日 申请日期2006年3月14日 优先权日2006年3月14日
发明者朱笑靖, 张红涛 申请人:盛大计算机(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1