打印

建议按顺序看这几篇**

[复制链接]
2180|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxyhome|  楼主 | 2008-2-2 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 最近想在手机上实现一个简单的游戏模拟器,用来运行ads编译c语言写的小游戏代码生成的lib(二进制文件).

想了一下,要实现这个模拟器,思路如下:

(1)必须能够解析(Lib文件)二进制文件中的各种指令(ARM集或Thumb集).可能还需要写寄存器.

(2)必须要能够做到把解析的指令,拷贝到sram中运行以提高运行速度.

(3)为了减少麻烦,我们可以把图片,声音作成数组直接写进游戏代码,经过ads编译成二进制代码.

===========================================================
总的来说就是要直接实现把游戏代码经ads编译生成的lib文件,拷贝到手机里,通过此游戏模拟器能够实现c语言代码的直接运行,不需要把代码一起编译到整个手机软件里.

目前手机平台大多是ARM7的.不知道各位有什么好的建议,或者有人能够开发的找我Q聊.
QQ247529378

相关帖子

沙发
xwj| | 2008-2-2 14:35 | 只看该作者

你这个不是模拟器,而是运行器吧?

手机用的什么核?什么指令系统?
游戏代码又是用的什么?

如果一致的话,只要统一规定好入口调入执行就行了,或者用文件方式直接Sheel调用
如果不一致,那就麻烦了,此时才需要做模拟器,工作量估计相当大...

使用特权

评论回复
板凳
jxyhome|  楼主 | 2008-2-2 14:48 | 只看该作者

回LS

手机用的什么核?什么指令系统?
游戏代码又是用的什么?

如果一致的话,只要统一规定好入口调入执行就行了,或者用文件方式直接Sheel调用
如果不一致,那就麻烦了,此时才需要做模拟器,工作量估计相当大...

_________________
手机就目前的mtk平台,我做了套SDK,将这个平台的一些东西封装起来并集成很多应用功能.而游戏的话就是用上面的SDK开发的(也是c语言的游戏).mtk一般是ARM7EJ-S处理器,一般支持ARM指令集.

目前差的就是如何让游戏这块代码独立出来,编译生成个lib然后直接在手机上运行.不知道楼上有什么好的建议没?

因为我的想法是只提供接口给人开发,然后只要将SDK和游戏生成的二进制代码拷贝给厂商就能够直接运行.这样就很方便,目前仅仅考虑支持c语言的游戏.

使用特权

评论回复
地板
jxyhome|  楼主 | 2008-2-2 14:50 | 只看该作者

目的就是不需要编译能够平行移植

使用特权

评论回复
5
dld2| | 2008-2-2 16:28 | 只看该作者

俺有土方法,可以在一定限制条件下实现

模块的代码和数据用分散加载来定位在指定位置。
模块与平台编译链接。
由于模块定位在指定位置,可以通过调试工具把这部分的代码数据导出,存成二进制文件。
该二进制文件可以下载到具有相同平台的手机上。
下载了模块后,就可以跳转到指定位置(模块的入口)去运行。

再说高级方法,就是动态链接了。
在运行时解决被下载模块对平台的符号引用。

使用特权

评论回复
6
jxyhome|  楼主 | 2008-2-2 17:04 | 只看该作者

LS的第二种方法可行

不知道你的联系方式多少,我们具体详细谈!

使用特权

评论回复
7
dld2| | 2008-2-2 17:20 | 只看该作者

哈哈,俺只大概知道个概念,再深入就不清楚了

使用特权

评论回复
8
xwj| | 2008-2-3 11:19 | 只看该作者

那就好办了,方法太多,建议LZ去看看游戏机、卡的管理方法

越老的方法往往越简单高效,毕竟硬件性能限制,不动脑筋就玩不转:-)

使用特权

评论回复
9
qq26358275| | 2008-2-3 16:48 | 只看该作者

建议按顺序看这几篇**

COM技术内幕
深度剖析BREW实现原理
BREW Overview.pdf
BREW_Architecture_Extensions.pdf
BREW SDK v2.0.0

我们公司正在搞这样的东东

使用特权

评论回复
10
qq26358275| | 2008-2-3 18:17 | 只看该作者

re

算和lz有缘
一个月前老大让我做类似的东西时, 也曾经一筹莫展, 后来遇到个高手点拨了一下, 花了一周时间调通hello world. 记得当时还在论坛上求助过, 可惜没人理我...
刚才也点拨了下lz, 其实按顺序看完上面列的五份资料后, 一般人都能写出在arm7平台上的二进制文件运行器的demo. 不过demo和产品还是有很长很长很长的路要走...这就帮不了lz了

使用特权

评论回复
11
阿南| | 2008-2-4 18:00 | 只看该作者

没有做过,但是俺觉得楼主把问题复杂化了

您可以把游戏模拟器当作是普通的一个应用程序,类似于在PC机上运行的一个应用程序.如果您是在PC的平台上运行,您决对不会去考虑X86的指令,同理您也不需要考虑您手机的ARM及是否支持ARM的指令等问题.您只需考虑您的手机运行的是什么操作系统,然后基于该操作系统和硬件的开发环境即可.如您的手机运行的是S3C2440和Linux,那么您需要在PC机上安装基本S3C2440A的Linux内核和Linux及交叉编译工具,然后编译目标平台(您的手机)上的应用程序,再将该程序放在目标平台上运行即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

74

帖子

0

粉丝