这篇文章给大家聊聊关于nes模拟器,以及NES模拟器移植对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
NES模拟器图像可以直接在嵌入式的framebuffer上绘制。Ubuntu中也可以使用framebuffer显示。在Ubuntu中如果要方便测试,用SDL更好。
InfoNES097JRC1.zip
InfoNES音频部分需要alsa相关的组件
对于alsa-utils可以直接通过apt-getinstallalsa-utils进行安装
对于alsa-lib,用命令apt-getinstalllibasound2-dev安装
也可以下载源码进行移植alsalib。
如果不使用音频,清空掉InfoNES_System_Linux.cpp中Sound有关的函数。
voidInfoNES_SoundInit(void)\n{\n}\nintInfoNES_SoundOpen(intsamples_per_sync,intsample_rate)\n{\nreturn1;\n}\nvoidInfoNES_SoundClose(void)\n{\n}\nvoidInfoNES_SoundOutput(intsamples,BYTE*wave1,BYTE*wave2,BYTE*wave3,BYTE*wave4,BYTE*wave5)\n{\n}
去掉音频头文件包含及变量声明
--#include<alsa/asoundlib.h>\n--staticsnd_pcm_t*playback_handle;
Makefile去掉动态库的链接-lasound.
上面下载nes代码,作者已经完成了下面三个部分的修改,所以直接进入arm-NES-linux-master/linux_fb目录下执行make命令就能直接编译了。
略,这部分使用event实现,比较简单,只需要关心摇杆按键的映射。
在Ubuntu中,屏幕实际尺寸并不等于每行像素的长宽,有填充字节,这里需要注意一下。
否则画面会错位。可以通过FBIOGET_FSCREENINFO获取到一行所占字节宽度。
模拟器支持的颜色模式为RGB555.所以需要按照自己的屏幕颜色进项转换,常见的是RGB565与RGB8888.
InfoNES_Wait()增加如下内容,否则在Ubuntu中可能出现画面速率过快。不是很明白为什么要sleep(0);
voidInfoNES_Wait()\n{\nstaticintwLines=0;\nwLines++;\nif(wLines<lcd_height)\n{\nreturn;\n}\nwLines=0;\nsleep(0);\n}
接下来就在linux目录下执行
make
命令,等待编译结束就可以在当前目录下看到一个叫InfoNES的软件,这就是编译好的模拟器。
将下载好的《魂斗罗.nes》放到指定目录,然后运行程序
关于nes模拟器的内容到此结束,希望对大家有所帮助。
标题:nes模拟器 NES模拟器移植
链接:https://www.jzkong.com//news/rj/157721.html
版权:文章转载自网络,如有侵权,请联系删除!