全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

news/2025/1/22 10:55:34/

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


http://www.ppmy.cn/news/407413.html

相关文章

gba模拟器html5源码,酷!用 JS 做的 GBA 模拟器

Advance Wars 高级战争 Advance Wars 2 Aladdin 阿拉丁 Alien Hominid 外星原始人 Bomberman Max 2 - Blue Advance 炸弹人 (小编喜欢玩这个) Bomberman Tournament Bubble Bobble: Old and New 泡泡龙 Croket! - Yume no Banker Survival! Croket! 2 - Yami no Bank to Banque…

gba模拟器 linux,在Ubuntu上运行GBA模拟器

想在Ubuntu上面找一个开源的GBA模拟器,因为如果没有开源的模拟器的话,怎么能放到开发板去玩呢?所以果断先百度一下,看有没有这种可能性。 百度之下,果然有一款叫mednafen的开源模拟器,而且我也下了我最喜欢…

【Java基础】注解——自定义注解

什么是注解? Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 比如我们常见的Override和Deprecated都是注解,注解可以加在类、方法、成员变量等上面,类似于给他们“打标签"。 注解怎么定义? public interface…

ChatGPT 使用 拓展资料: OPENAI 函数调用和其他 API 更新

ChatGPT 使用 拓展资料: OPENAI 函数调用和其他 API 更新 我们在今年早些时候发布gpt-3.5-turbo,gpt-4在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。 今天,我们将跟进一些令人兴奋的更新: Chat Completions API 中的新函数调用功能 gpt-…

Velocity的基本介绍

详情可见 什么是Velocity?Velocity 是一个简单易用、性能极高、功能丰富的轻量级JS动画库。它能和 jQuery/Zepto 完美协作,并和$.animate()有相同的 API, 但它不依赖 jQuery,可单独使用。Velocity 不仅包含了 $.animate() 的全部功能&#x…

moverel

这个函数用于移动当前点。 有些绘图操作会从“当前点”开始,这个函数可以设置该点。还可以用 moveto 设置当前点。 void moverel(int dx,int dy ); 参数 dx 将当前点沿 x 轴移动 dx。 dy 将当前点沿 y 轴移动 dy。 返回值 无 示例 无

Velocity介绍- -

Velocity介绍- - 1.Velocity 的使用 Velocity是一个开放源吗的模版引擎,由apache.org小组负责开发,现在最新的版本是Velocity1.3.1,http://jakarta.apache.org/velocity/index.html 可以了解Velocity的最新信息。Velocity允许我们在模版中设…

android手机跑分测试,性能跑分测试与测试总结

性能跑分测试与测试总结 Quadrant测试结果 3926分 安兔兔测试结果 6938分 Vellamo测试 1286分 总结:价格实在,功能到位 Ascend P1 在发表时看来颇为高端的规格,但台湾推出时间点较晚,在目前四核当道、双核成主流的手机市场来看&am…