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

article/2025/9/21 14:08:36

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://chatgpt.dhexx.cn/article/lAYhp26W.shtml

相关文章

9、Lctech Pi(F1C200S)开启I2C0(CherryPi,Mangopi,F1C100S)

本次主要参考: https://github.com/mangopi-sbc/buildroot-mangopi-r https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html (如果方便请给这几位大佬一个关注) 注意代码块之间的空行 配置设备树文件 1、打开linux-5.7.1/a…

全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD

适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD一、修改U-boot屏幕参数二、修改linux内核文件三、测试效果 一、修改U-boot屏幕参数 修改对应屏幕的参数(我这里是1024*600的屏幕) 修改 -> ARM architecture -> Enable graphical ub…

全志F1C100S从零开发记录(1)

1.刚买到板子,开箱如下图所示: 2.管脚焊接(焊接串口,用来看串口打印信息),5v供电: 3.通过usb转ttl接到电脑上: . 4.设置串口波特率115200 ,打开串口,上电出…

7、Lctech Pi(F1C200S)开启RNDIS,通过USB与电脑联网(CherryPi,Mangopi,F1C100S)

本次主要参考: 荔枝nano开启RNDIS驱动,无需补丁。 https://github.com/peng-zhihui/Planck-Pi#head23 https://github.com/mangopi-sbc/buildroot-mangopi-r https://www.cnblogs.com/listenscience/p/13758272.html (如果方便请给这几位大佬…

全志F1C200S F1C100S 介绍

很久以前发现了一颗性价比极高而且比较好玩的SOC,加群请仔细阅读本博客(见DKTool界面,请备注“来自博客”) 那就是全志F1C100S F1C200S,其中F1C100S内置32MB DDR1内存,F1C200S内置64MB DDR1内存。 这个片…

6、Lctech Pi(F1C200S)4.3寸(480*272)16位RGB565LCD屏驱动适配(CherryPi,Mangopi,F1C100S)

本次主要参考: https://blog.csdn.net/wending1986/article/details/106837597/ http://blog.chinaunix.net/uid-20543672-id-3246283.html https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html 李山文大佬 (如果方便请给这几位大佬一个…

【F1C100S】编译启动所需的uboot,kernel,rootfs

个人画了块没有连接任何其他模块的F1C100S开发板,没有链接任何外设,本文是编译所有启动所需的三大件。(只要编译出三个东西复制到sd卡就可启动,不需要制作成镜像img文件) 环境:使用安装了ubuntu18的电脑进…

荔枝派nano(f1c100s)从零开始TF卡启动(附源码下载)

本文所使用的所有文件都已打包到SDK中,可以直接使用,有些细节我已省略,直接使用我包里的文件即可。 (无需积分,免费下载,里面的东西都来源于官方) 觉得可以的,可以点个赞、点个关注&#xff0…

全志F1C100s使用记录:u-boot linux rootfs 编译与烧录测试(基于SD卡)

文章目录 目的基础准备硬件准备开发环境 制作toolchain和rootfs设置编译工具链 u-boot & linux编译u-bootboot.scrlinux 测试程序文件烧录分区设置分块烧录 上电测试系统镜像制作镜像文件使用镜像文件 可能会遇到的问题SDK数据包总结 目的 这篇文章中将测试在 F1C100s 中运…

【f1c200s/f1c100s】RGB接口 LCD驱动适配

【f1c200s/f1c100s】RGB接口 LCD驱动适配 RGB模式介绍F1C200s/F1C100s RGB LCD驱动适配设备树修改源码修改结果 RGB模式介绍 RGB 模式就是我们通过说的 RGB 屏,以 RGB(TTL 信号)并行数据线传输,广泛的应用于 5 寸及以上的 TFT-LC…

全志F1C100s入坑与填坑 uboot Linux Kernel 与buildroot

全志F1C100s 入手了几块全志的板子准备玩一玩随便记录一下!! 如图 是一块荔枝派 Nano 从sipeed官网可得如下介绍 官网传送门-----》 sipeed Nano 硬件参数# 硬件参数 CPU: 全志 F1C100s, ARM 926EJS , 最高 900MHz 内存&#xf…

全志F1C100S声卡驱动探究

如果有问题,请加QQ群 891339868 进行交流 最近刚上手全志的F1C100S这个片子,听一下音乐,本来想着挺简单,内核配置一下驱动就OK,谁知道上来就一闷棍,主线内核不支持内置声卡,经过多方面的研究&am…

【f1c200s/f1c100s】全志f1c200s开发板设计(含原理图和PCB)

f1c200s开发板设计 芯片特征开发板包含资源 开发板如图所示,模仿树莓派取了一个mango-pi的名字,haha~。 硬件主要参考了荔枝派nano和正点原子开发板。经过测试,全部功能正常。 芯片特征 全志F1C200s与F1C100s的区别为F1C200s含有64M SIP RA…

全志F1C100s使用记录:资料索引与基础说明

文章目录 前言资料来源u-boot & linux基础特性启动过程FEL模式电路设计 前言 最早接触到F1C100s是前两年的一个文章,里面使用F1C100s制作了一张可以运行Linux的名片,就是下图这个。下图上实际电路部分就占用角落一点点面积,当时觉得蛮有…

MySql 内连接与外连接 作用和 区别

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。 左外连接:左边表数据行全部保留…

php左内连接,内连接和外连接的区别是什么

内连接和外连接的区别:1、连接结果不同,内连接的连接结果仅包含符合连接条件的行,而外连接的连接结果包含了符合连接条件的行;2、注意事项不同,内连接需要注意区分在嵌套查询时使用的any以及all的区别,外连…

Mysql内连接和外连接的区别

内连接 简单来说:就是根据交集的部分来链接到一条完整的数据,以此来完成查询 以两张表相同的部分来链接上两张表的数据,而不是说,内连接查询的就是交集的部分,那样查询出来的不就是表的id信息了或者仅仅是关联的信息 …

mysql内连接和左连接的区别_MySQL连接查询 内连接和外连接的区别

展开全部 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连62616964757a686964616fe78988e69d8331333363393638接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连…

mysql内外三种连接,mysql内连接和外连接的区别

以下面两张表为例来看一下内连接与外连接的区别: 一、内连接( 最常用 ) 定义:仅将两个表中满足连接条件的行组合起来作为结果集。 关键词:INNER JOINselect * from employees e inner join department d on e.employee_id d.department_id …

Sql 中内连接、外连接、全连接、交叉连接的区别

外连接(out join) 外连接分为外左连接(left outer join)和外右连接(right outer join) 注释:left outer join 与 left join 等价, 一般写成left join right outer join 与 right join等价,一般写成right join 左连接&#xf…