基于i.mx6q平台的NES模拟器移植
小时候一直希望自己能够制作一台游戏机,那时玩的游戏大多都是NES游戏和GBA游戏,那今天就在i.mx6q平台下移植一下NES模拟器吧,后续有时间再移植一下GBA模拟器。下面开始移植NES模拟器。
硬件环境:
我采用的是i.mx6q开发板,屏幕分辨率为800x480
系统环境:
linux 4.1.15
根文件系统用的是开发板自带的根文件系统,里面已经移植好了alsa相关的库文件
模拟器:
NES源码地址:(https://github.com/nejidev/arm-NES-linux)
游戏合集:(https://pan.baidu.com/s/16hIWwYQQEX9aOBDG1dVa0A) 提取码:asdf
移植过程中碰到的问题:
1.游戏集合里的超级玛丽没有声音,在调试时以为移植有问题,后来发现是游戏本身问题,魂斗罗声音正常,其他的没试验。
2.移植过程中刚开始移植后发现显示不正常,会花屏,于是编写了一段代码测试屏幕,最后发现虽然屏幕是800x480的,但是分配内存和使用时需要用832x480。
3.由于问题2所以在移植NES时,进入arm-NES-linux-master/linux路径下
打开InfoNES_System_Linux.cpp,做如下修改
line_width = (var.xres+32) * px_width;
//screen_width = var.yres * line_width;
screen_width =(var.xres+32) * var.yres * var.bits_per_pixel / 8; // 一屏多少byte
lcd_width = var.xres+32;
修改后保存。
修改makefile:
install:
install ./xx/xx (自己的安装路径)
之后make (一定要用交叉编译哦)
make install
将移植好的模拟器拷到开发板下,运行游戏就可以了