GBA模拟器移植
百度网站
文章目录
- GBA模拟器移植
- 一、下载gpsp 源代碼
- 二、gpsp环境配置
- 参考
一、下载gpsp 源代碼
gpsp源码
解压文件
7z x gpsp.7z
二、gpsp环境配置
gpsp需要SDL环境我们先在bulidroot中添加SDL包
make menuconfig
Target packages ---> Graphic libraries and applications (graphic/text) --->[*] SDL
我们全选SDL路径下的所有选项
打开之前解压的 gpsp 文件夹配置Makefile
cd gpsp/bittboy
vi Makefile
添加 buildroot 的 gcc 编译器
告知 SDL.h 位置以及 SDL 元件库位置
其实很简单在buildroot文件夹搜索 sdl-config 位置在哪里,然后在Makfike里替换自己的路径就可以了
尝试编译看到编译成功
我们把文件传入板子里运行看看什么情况
提示需要一个 Gameboy Advance BIOS 文件我们网上搜索之后放入文件在运行试试看
Gameboy Advance BIOS
**非常好,运行后发现直接段错误,经过一顿找问题调试下,在晕哥的指导下终于找到问题所在 SDL_Init出错 **
export SDL_NOMOUSE=1
再次运行我们发现已经不再报错了
我们下载一个 gba rom 文件运行试试看效果
gba rom下载地址
alsactl restore -f /var/lib/alsa/asound.state 声卡配置
export SDL_NOMOUSE=1
./gpsp kdyg.gba
可以看到运行起来了,画面已经跑起来了
没声音的话别忘了打开声卡,设置声卡配置
alsactl restore -f /var/lib/alsa/asound.state
在此处修改按键定义
#if defined(PC_BUILD)u32 key_map(SDLKey key_sym)
{switch(key_sym){case SDLK_LSHIFT:case SDLK_BACKSPACE:return BUTTON_R;case SDLK_SPACE:case SDLK_TAB:return BUTTON_L;case SDLK_DOWN:return BUTTON_DOWN;case SDLK_UP:return BUTTON_UP;case SDLK_LEFT:return BUTTON_LEFT;case SDLK_RIGHT:return BUTTON_RIGHT;case SDLK_RETURN:return BUTTON_START;case SDLK_ESCAPE:return BUTTON_SELECT;case SDLK_LCTRL:return BUTTON_B;case SDLK_LALT:return BUTTON_A;default:return BUTTON_NONE;}
}
#endif
参考
感谢司徒大神的无私开源,感谢晕哥的大力帮助
https://whycan.com/t_7909.html#p80061
https://debugdump.com/topic/1679/%E5%8F%B8%E5%BE%92gpsp%E6%B8%B8%E6%88%8F%E6%9C%BA%E6%A8%A1%E6%8B%9F%E5%99%A8%E6%BA%90%E7%A0%81%E7%A7%BB%E6%A4%8D%E5%88%B0%E5%85%A8%E5%BF%97v3s-r11%E7%AD%89soc-%E8%BD%AC?_=1670746814627