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的精 ...
随机推荐
- 中电金信:“人工智能+”首次写入政府工作报告,各大企业何以破局AI模型挑战
2024年全球新一轮技术变革加速来临,大模型作为人工智能发展的核心引擎,正引发一场全新的工业革命.今年全国两会期间,人工智能成为最热话题之一."人工智能+"首次被写入政府工作报告 ...
- Java 基于接口的动态代理
UserDao接口 package com.pry.cn; public interface UserDao { public int add(int a,int b); public String ...
- shell之变量默认值
{var:-default_value}当var 不存在,或者值为空时,返回default_value name不存在,返回了一个默认值,但是name并没有改变, 后续不可访问 $ set -u # ...
- 会话丢失-NGINX配置之underscores_in_headers
1.描述问题NGINX代理某个web服务时,单机情况下也出现不停的要求认证的情况 初步分析去掉NGINX代理,直接访问服务,未出现上述情况: 进一步分析:查看经过NGINX的请求和直接访问服务请求区别 ...
- Qt编写的项目作品5-物联网管理平台
一.功能特点 1 软件模块 设备监控模块,包括数据监控(表格形式展示).设备面板(面板形式展示).地图监控(地图形式展示).曲线监控(曲线形式展示). 数据查询模块,包括报警记录.运行记录.操作记录. ...
- .NET Bioss相关数据读写
本文我们介绍针对Bios如何读取.写入数据,比如最常见的SN读取以及烧录 WMI查询 先看看WMI方式,可以用于查询和管理Windows系统的各种信息,包括读取BIOS信息 WMI-Win32_BIO ...
- Solution -「AGC 031E」Snuke the Phantom Thief
\(\mathscr{Description}\) Link. 在一个网格图内有 \(n\) 个格子有正价值,给出四种限制:横 / 纵坐标不大于 / 不小于 \(a\) 的格子不能选超过 \( ...
- 深度剖析 GROUP BY 和 HAVING 子句:优化 SQL 查询的利器
title: 深度剖析 GROUP BY 和 HAVING 子句:优化 SQL 查询的利器 date: 2025/1/14 updated: 2025/1/14 author: cmdragon ex ...
- 前端(一)-Html
1.网页基本信息 <!DOCTYPE html> 浏览器使用的规范 <head> 网页头 <body> 主体部分 <meta> 元数据 meta的nam ...
- 分布式全局唯一ID解决方案详解
--------------------- ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Inn ...