higan(bsnes)游戏模拟器的编译和试玩

2024-04-26 03:08

本文主要是介绍higan(bsnes)游戏模拟器的编译和试玩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

higan 是一款开源的游戏模拟器实现,这里直接引用英文介绍:

higan (formerly bsnes) is a Nintendo multi-system emulator that began development on 2004-10-14.

It currently supports the following systems:

  • Nintendo Famicom
  • Nintendo Super Famicom
    • Super Game Boy
    • BS-X Satellaview
    • Sufami Turbo
  • Nintendo Game Boy
  • Nintendo Game Boy Color
  • Nintendo Game Boy Advance
  • Sega Master System
  • Sega Game Gear
  • Sega Mega Drive
  • NEC PC Engine
  • NEC SuperGrafx
  • Bandai WonderSwan
  • Bandai WonderSwan Color

higan focuses on accuracy and clean code above all else. It never uses speed or compatibility hacks. As a result, the minimum system requirements are higher than with other emulators.

higan可以在ubuntu下编译运行, 下面列出详细过程.

step 1: 获取源码

     higan采用GPLV3协议,源码托管在gitlab. 执行git clone https://gitlab.com/higan/higan.git 下载源码到本地

     本测试使用的commid id号为: 23dd28952b20de9c47dd4619214019beaad2fc93

step 2: 安装环境依赖文件:

sudo apt-get install build-essential libgtk2.0-dev libpulse-dev \mesa-common-dev libgtksourceview2.0-dev libcairo2-dev libsdl1.2-dev \libxv-dev libao-dev libopenal-dev libudev-dev

step 3:

    修改两个个文件,否则编译不过

    modified:   higan/GNUmakefile
    modified:   nall/random.hpp

GNUmakefile:

  higan支持两个编译目标,默认是bsnes, bsnes支持的游戏文件较少,不支持GBA游戏文件. 所以这里改为higan目标。

diff --git a/higan/GNUmakefile b/higan/GNUmakefile
index b74420d..03d2fb3 100644
--- a/higan/GNUmakefile
+++ b/higan/GNUmakefile
@@ -1,4 +1,4 @@
-target := bsnes
+target := higan
 binary := application
 build := performance
 openmp := true

random.hpp:

  删除getrandom调用和头文件引用,否则编译不过。

diff --git a/nall/random.hpp b/nall/random.hpp
index 1684996..7d01f0f 100644
--- a/nall/random.hpp
+++ b/nall/random.hpp
@@ -8,7 +8,7 @@
 #include <nall/cipher/chacha20.hpp>
 
 #if defined(PLATFORM_LINUX)
-  #include <sys/random.h>
+  //#include <sys/random.h>
 #elif defined(PLATFORM_WINDOWS)
   #include <wincrypt.h>
 #endif
@@ -38,7 +38,7 @@ protected:
     #if defined(PLATFORM_BSD) || defined(PLATFORM_MACOS)
     for(uint n : range(8)) seed = seed << 32 | (uint32_t)arc4random();
     #elif defined(PLATFORM_LINUX)
-    getrandom(&seed, 32, GRND_NONBLOCK);
+    //getrandom(&seed, 32, GRND_NONBLOCK);
     #elif defined(PLATFORM_WINDOWS)

step4:

 编译 higan:

  执行 make -C higan/

编译 icario:

  执行make -C icario/

其中icario是一个游戏加载程序,用来加载游戏文件。 higan是模拟器本身可执行程序。

step 5 安装:

  执行

make -C higan/ install

 make -C icario/ install

step6 :设置环境变量:

  默认情况下可执行文件安装在~/.local/bin,需要设置PATH环境变量导向这个位置.

在.bashrc末尾追加一行

export PATH=~/.local/bin:$PATH

step6: 安装bios.rom

  GBA游戏需要bios.rom文件引导. 模拟器本质上是一个虚拟机,bios.rom用来引导虚拟机到正确的工作状态。

 下载bios.rom文件,地址:All BIOSes - Down10.Software

 下载过来后,解压重命名伟bios.rom, 并copy到

  ~/.local/share/higan/systems/Game Boy Advance.sys/  目录

~/.local/share/higan/systems/Game Boy Advance.sys$ ls -l
total 20
-rw-rw-r-- 1 czl czl 16384 11月  9 10:57 bios.rom
-rw-rw-r-- 1 czl czl    68 11月  9 10:56 manifest.bml

step 7:

 执行 higan命令,出现模拟器 GUI 界面

step 8: 加载gba游戏:

step9: 运行

step10: 设置GBA游戏ROM路径

step 11: 设置游戏文件路径,在系统下载目录存在game.gba拳皇游戏文件

setp 12: gaoji shezhi , select the display backedn and other settings.

step 13:重新加载bios,进入游戏:

参考资料:

https://higan.readthedocs.io/en/stable/install/linux/

General - higan

Game Folders - higan

这篇关于higan(bsnes)游戏模拟器的编译和试玩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936552

相关文章

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

C++/《C/C++程序编译流程》

程序的基本流程如图:   1.预处理        预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。 读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,如:“#if”、“

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte