GBA模拟器移植
百度网站
一、下载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
在此处修改按键定义文章来源:https://www.toymoban.com/news/detail-567757.html
#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文章来源地址https://www.toymoban.com/news/detail-567757.html
到了这里,关于全志F1C100s主线linux入坑记录 (7)GBA模拟器移植的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!