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

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

剑指offer(C++)--孩子们的游戏(圆圈中最后剩下的数)

题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

iOS:编译时出现no such file or directory:xxx以及use twice...filenames are used to distinguish private dec

简    注册  登录   添加关注 作者  婉卿容若 2016.04.29 11:22 写了21870字,被16人关注,获得了14个喜欢 iOS:编译时出现"no such file or directory:xxx"以及"use twice...filenames are used to distinguish private

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( )   >   Update( )   >   LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环,这个循环也是通过物理时间累计看是不是大于0.02了,然后调用一次。有

Java的简易编译命令

生成jar包 编译生成.class 文件 编译.class文件的命令,其中的参数是输出,原文件路径 javac -sourcepath class.class MyClass.java 如果有包名的需要创建对应包的文件夹,建文件移动对应的包名下在开始包下创建meta-inf文件夹在meta-inf文件下创建manifest.mf文件 生成可运行的jar包 解压 生成了jar包后,进