安装
好的,让我稍微谈一下安装:
我已经安装了Visual Studio 2008(试用90天版本),从this Github issue下载了MRE SDK 3.0,Sourcery Codebench Lite for ARM EABI以及ARM Realview Development suite 3.1(但它需要许可证,而我懒得去破解它,而且我更喜欢开源GCC而不是商业软件)。我将编译器设置为Sourcery Codebench的GCC。
我可以在联发科技的模拟器上编译和运行vxp
文件,没有任何问题。
问题
在ARM平台编译后,这是[project_dir]\arm
中的输出:
我尝试将Default.vxp
复制到我的诺基亚255的SD卡上,然后在手机上打开该文件,但手机显示暂时无法打开此应用
。
我还尝试在SD卡上创建一个appmanager
文件夹,然后是我的手机内部存储,然后将vxp
文件复制到那里,但在应用程序列表中,除了默认应用程序之外仍然没有其他应用程序,并且vxp
文件仍然无法运行。
其他vxp文件
我从http://shifat100.xtgem.com/
下载了一些vxp
文件,将它们放在SD卡上并从中运行。有些会起作用,例如Asphalt 6游戏,但有些不会,例如Gold rush游戏,它们会显示暂时无法打开此应用
。
我使用file
命令检查Asphalt 6游戏的vxp
格式,它显示为data
。但是我检查了我的Default.vxp
,它是ELF格式。我认为这就是问题所在,但不知道如何将ELF转换/打包成vxp。
使用 binwalk 工具分析 Asphalt 6 游戏的 vxp 文件,可以得到两个 zlib 压缩文件和两个 GIF 图片,它们是游戏的图标。其中一个压缩文件解包后包含了许多名称,例如:
splash_320x240.bsprite
splash_menu_320x240_200k.bsprite
splash_menu_split_320x240_200k.bsprite
splash_title.bsprite
hollywood_320x240_200k.bsprite
new.png
font_small.bsprite
font_large.bsprite
interface_font.bsprite
copter.bsprite
car_tourist.bsprite
cars_fx.bsprite
cars_shadow.bsprite
所以我认为这是资源文件。另一个可能包含代码,我在其中找到了一些异常字符串,例如
Unknown signal
Invalid Operation
Divide By Zero
Overflow
Underflow
Inexact Result
: Heap memory corrupted
Abnormal termination
Arithmetic exception:
Illegal instruction
Interrupt received
Illegal address
Termination request
Stack overflow
Redirect: can't open:
Out of heap memory
User-defined signal 1
User-defined signal 2
Pure virtual fn called
C++ library exception
还有一些(可能是)S30+平台的API,例如
vm_get_mre_modules
vm_get_mre_total_mem_size
vm_get_mre_version
那么问题可能是什么呢?屏幕分辨率?我已经更改了它,但仍然不起作用。SDK版本?我也尝试了所有3个版本,但没有运气。文件格式?编译器的差异?(请注意,我正在使用GCC,而大多数留在互联网上的教程建议使用RVCS)我不知道。
有什么想法吗?谢谢!
如果您需要获取任何文件,请告诉我,我会把它放在这里。