OERV兴趣探索:模拟器移植
最近看了很多开源项目,主要都集中在模拟器方面,我指的是游戏模拟器比如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优化,这是一个可以做的点。
OERV兴趣探索:模拟器移植的更多相关文章
- PyNN:神经网络模拟器的通用接口
PyNN:神经网络模拟器的通用接口 计算神经科学已经产生了用于模拟神经元网络的多样化软件,同时具有消极和积极的后果.一方面,每个模拟器都使用自己的编程或配置语言,导致将模型从一个模拟器移植到另一个模拟 ...
- Appium&python
Appium官网所描述的特性,都很吸引人,刚好最近在研究Mobile Automation Testing,所以很有兴趣探索下Appium这个年轻的工具. 不过看了官网的documents,实在是让初 ...
- ASP.NET Core官方计划路线及需要废除的一些Framework技术
概述 下面是 ASP.NET Core的时间表和路线图. 注意日期和特性都可能更改. 作为.NET Core这么大的一个项目,很难准确预测每一个计划的是否有变动. 即便如此,我们还是计划公开和透明的实 ...
- 使用NuGet管理项目类库引用
NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2012 ,VS2013中默认集成了N ...
- China Brain Project: Basic Neuroscience, Brain Diseases, and Brain-Inspired Computing
日前,中国科学院神经科学研究所.中国科学院脑科学与智能技术卓越创新中心.香港科技大学生命科学部和分子神经科学国家重点实验室.中国科技大学自动化研究所在 Cell 上联合发表了一篇概述论文<Chi ...
- NuGet管理
使用NuGet管理项目类库引用 NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2 ...
- 人人都是CEO
在这个互联网崛起的时代有些流行说法,比如:人人都是产品经理,人人都是程序员以突显行业繁荣的特点,但从更基本的出发点,难道人人不都是 CEO 么?个人的 CEO. 从这个名字套路出发,我沿着想了下去,作 ...
- 如何在Python中从零开始实现随机森林
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 决策树可能会受到高度变异的影响,使得结果对所使用的特定测试数据而言变得脆弱. 根据您的测试数据样本构建多个模型(称为套袋)可以减少这种差异,但是 ...
- 【20170920校内模拟赛】小Z爱学习
所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...
- AWTK(Toolkit AnyWhere): 为嵌入式、手机和桌面开发的通用GUI【转】
转自:https://blog.csdn.net/absurd/article/details/80958279 AWTK = Toolkit AnyWhere AWTK是吸取了FTK和CanTK的精 ...
随机推荐
- Python 证件照换底色
# -*- coding: utf-8 -*- ''' @Time : 2021/4/12 19:06 @Author : 水一RAR ''' import numpy as np import cv ...
- 即时通讯技术文集(第38期):IM代码入门实践(Part2) [共15篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第38 期. [- 1 -] 高仿Android版手机QQ首页侧滑菜单源码 [附件下载] [链接 ...
- minimind复现记录
- 使用pytorch从零开始实现一个简单的gpt
使用pytorch从零开始实现一个简单的gpt 本文由prompt引导ChatGPT生成简易版gpt模型,根据比较关心的问题,使用了以下的prompt进行内容和代码的生成: prompt:->如 ...
- Dynamic CRM插件中获取Entity属性值问题
插件中获取Entity不同类型字段时稍有区别,一般用如下两种方式: Entity targetEntity = (Entity)context.InputParameters["Target ...
- CDS标准视图:一次性账户的客户行项目 I_ONETIMEACCOUNTCUSTOMER
视图名称:一次性账户的客户行项目 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'One-Time Account Data for Customer Items' ...
- js操作shadow-root内的DOM元素
其实就是 documentfragment元素,就是动态生成的文档碎片元素. 1,项目中在DOM结构里遇到了shadow-root(open),用JS方法无法直接获取其内的DOM元素 2.shadow ...
- springcloud-路由gateway-zuul
spring-cloud-Gateway是spring-cloud的一个子项目.而zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已.因为zuul ...
- C# 使用NPOI生成Excel文件——合并单元格、设置Style
using System; using System.IO; using NPOI.HSSF; using NPOI.HPSF; using NPOI.HSSF.UserModel; using NP ...
- MySQL数据定义语言
原文链接:https://blog.liuzijian.com/post/83cdb010-fa97-e8ff-5b28-22da08e739e9.html 1.库操作 1.1 创建数据库 CREAT ...