OERV兴趣探索:模拟器移植

news/2025/2/27 16:45:35/文章来源:https://www.cnblogs.com/ChebyshevTST/p/18741338

  最近看了很多开源项目,主要都集中在模拟器方面,我指的是游戏模拟器比如GameBoy或者PlayStation这一类。现在想玩这系列的游戏可以在手机或者电脑下载相应的模拟器,并且获取对应的ROM文件,不过也有一些模拟器是可以运行在Linux上面的,为了进一步探索,我选择了相对较小的项目并尝试将它移植到OERV上面,本次实验的环境是OpenEuler 24.03 SP1(RISC-V架构)。

  我选择的项目是gbemu,这个项目可以在Github上面找到,项目本身并不大,拿到项目直接在本地运行make就可以编译,非常简单。但是会出现缺包的问题,这个就得需要对OpenEuler的软件包比较熟悉。

  先上手看看这个CMakeLists.txt,关注到了find_package这个部分

  既然是find_package(SDL2),说明需要SDL2-devel这个软件包(通常需要开发文件),因此也只需要dnf install SDL2-devel就能解决重要的依赖。

  由于这个项目比较小而且也相对简单,需要的依赖不复杂,因此编译的过程没什么阻碍。相比于其它GameBoy模拟器的项目,往往都需要各种复杂的依赖甚至对图形驱动有要求,以及复杂的编译参数。不过最终gbemu这个项目运行也依然出现了一些问题。

  

  看起来似乎运行成功,不过没有图形显示出来,相比之下,我放到了Ubuntu x86的本机试了一下,是可以运行出窗口的,这个原因主要跟图形驱动有关,暂时先跳过。

  第二个项目是gbsplay,用于播放 Game Boy 游戏机音效的程序或工具。这个项目也是为数不多可以顺利进行编译的,只需要先./configure配置好环境再make编译即可。

  gbsplay gbs2gb gbsinfo都是编译出来的可执行程序,顺利通过编译~

 

  总结:

  1、目前还有大量的GameBoy Emulator值得去研究,不过对软件包依赖较高,需要先将依赖解决,这些依赖可能OE本身没有。

  2、即便编译通过了但是也没有运行成功,这个可能跟驱动,有机会获得合适的硬件环境的话再试试看。

  3、GameBoy模拟器有一些项目里面涉及到了SIMD指令集,如果放到RISC-V上面的话得做RVV优化,这是一个可以做的点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/890694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘

title: HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘 🍕 date: 2025/2/27 updated: 2025/2/27 author: cmdragon excerpt: 📦 本系列第二篇通过披萨店创业的完整案例,手把手教你: 用外卖订单理解HTTP协议细节 5个RESTful设计常见误区与修正方案 …

全局注册svg批量自动引入,动态修改svg以及样式配置问题

1.安装依赖npm i vite-plugin-svg-icons2.文件存放svg 3.全局组件svg-icon(直接放到全局组件目录下)<template><svg class="svg-icon"><use :xlink:href="`#icon-${props.name}`" class="mySVG":style="stroke: + props.…

msyql中单表语句

二、聚合函数 (1)max 最小值 select max(math) from student (2)min 最大值 select min(math) from student (3)sum 总数 select sum(math) from student (4)avg平均数 select avg(math) from student (5)count 统计个数 select count(math) from stu…

Java SpringBoot实现简易扫码登录流程 附项目代码

SpringBoot实现简易扫码登录流程,附项目代码先总结流程:移动端请求扫码登录,服务端生成二维码并缓存二维码ID和状态,将二维码的Base64格式返回给前端展示; PC端页面轮询检查二维码状态; 手机扫码后调用扫码接口,携带移动端的Token和二维码ID请求服务端,服务端根据扫码的…

Salesforce宣布2025年不招工程师,技术岗位真的会消失吗?

Salesforce CEO Marc Benioff 最近放出了一条让科技圈热议的消息:2025年,Salesforce将不再招聘新的软件工程师。作为全球最大的CRM软件提供商之一,这一决定引发了许多人对AI对就业市场影响的思考。 AI改变工作模式,工程师岗位需求减少 Marc Benioff 在采访中透露,2024年,…

mysql查询语句

一、查询语句 1、select查询一个表中的所有数据 格式: select * from 表名 ; 案例: select * from student ;2、查询部分字段信息数据 格式: select 字段1,字段2 from 表名; 案例: select name,math from student;3、查询字段可以用as 取别名 格式: select 字…

Vue3安装配置+VSCode开发环境搭建,超详细保姆级教程(图文)

目录1. node.js 下载安装2. 查看 node.js 是否安装成功3. 配置 npm 下载的默认安装、缓存环境(1) 添加文件夹(2) 设置系统环境变量(3) 修改下载模块的存放路径4. npm 镜像源配置(1) 输入cmd打开命令提示符窗口,(2) 如果配置报错(3) 查看镜像配置是否成功5. 安装 vue-cli 工具6.…

Windows下Redis哨兵模式配置以及在.NetCore中使用StackExchange.Redis连接哨兵

一,Redis哨兵模式配置 1,下载Redis,然后解压复制5个文件夹分别如下命名。 2,哨兵模式配置 (1)修改主节点Redis-6379中redis.windows.conf配置文件如下 (2)修改从节点Redis-6380中redis.windows.conf配置文件如下(3)配置哨兵,在哨兵文件夹下添加Sentinel.conf配置文件…

zabbix监控http

一、模版复制与配置变更 1、模版复制2、修改宏 全克隆并修改好宏端口二、测试httpd服务状态 1、检查模块是否启用 apachectl -M | grep status修复 #ServerName www.example.com:80 ServerName 192.168.0.152:13000 重新执行后正常2、检查状态 http://112.81.86.33:13001/serve…

Ubuntu 22.04 或更高版本的系统中安装.NET Core 3.1的解决方案(使用1panel进行可视化演示)

第一步:先安装长期支持版本.NET 6 或更高 (这一步不是必须的,如果是干净的服务器建议这么做,因为安装完后会自动创建路径和环境变量方便后续操作)安装方法sudo apt update sudo apt install -y dotnet6如果安装时出现异常:A fatal error occurred. The folder [/usr/lib/dot…

考古新视野:LiDAR 揭开雨林下的玛雅古城!

一、当科技遇见文明:LiDAR 的考古革命茂密的雨林曾是考古学家的噩梦——藤蔓缠绕的树冠遮蔽了地面,人力勘探耗时费力,无数古代遗迹深藏其中。然而,激光雷达(LiDAR)技术的出现,如同一把“数字X光刀”,穿透了雨林的绿色屏障,将玛雅文明的失落之城从历史的尘埃中重新点亮…

mysql知识面试day2

mysql具有哪些锁 按锁的粒度分配:行级锁,表级锁,页级锁。mvcc的实现原理 MVCC--一份数据保留多个版本的一种方式,查询时通过readview和版本链获得对应版本的数据 好处:提升并发性能,对于高并发场景,mvcc比行级锁开销更小 实现原理 MVCC的实现依赖于版本链,版本链具有三个隐…