x86架构ubuntu22下运行3DS模拟器Citra

news2024/9/22 7:06:22

0. 环境


i5 ubuntu22(安装系统时候选择 自动上网下载第三方驱动软件,主要是显卡驱动opengl)

1. apt安装依赖


1.1 SDL2

sudo apt install libsdl2-dev

1.2 OpenSSL (optional)

sudo apt install libssl-dev

1.3 Qt 6.2+

sudo apt install qt6-base-dev qt6-base-private-dev qt6-multimedia-dev
sudo apt install qt6-l10n-tools qt6-tools-dev qt6-tools-dev-tools
sudo apt install libgl-dev 

1.4 PORTAUDIO

sudo apt install libasound-dev

1.5 XORG

sudo apt install xorg-dev libx11-dev libxext-dev


1.6 JACK Audio Connection Kit

sudo apt install jackd

1.7 PipeWire

sudo apt install libpipewire-0.3-dev

1.8 FFMPEG 4.0+

sudo apt install ffmpeg libswscale-dev libavformat-dev libavcodec-dev libavdevice-dev


1.9 sndio

sudo apt install libsndio-dev

(跳过)1.10 Gnome esound

(需要编译安装https://download.gnome.org/sources/esound)
wget https://download.gnome.org/sources/esound/0.2/esound-0.2.41.tar.gz
tar -zvxf esound-0.2.41.tar.gz

1.11 GCC 10.0+.

sudo apt install build-essential


1.12 CMake 3.20+

sudo apt install cmake

1.13 整合 1.1-1.12:

sudo apt install aptitude
sudo aptitude install libsdl2-dev libssl-dev 
sudo apt install qt6-base-dev qt6-base-private-dev qt6-multimedia-dev libasound-dev xorg-dev libx11-dev libxext-dev jackd libpipewire-0.3-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev libavdevice-dev libsndio-dev build-essential cmake

2. 编译


2.1 获取源码

sudo apt install git
git clone --recursive https://github.com/citra-emu/citra
cd citra
git submodule update --init --recursive

2.2 编译

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j8


2.3 运行测试

cd bin/Release
# SDL
cd build/bin/
./citra

# Qt
cd build/bin/
./citra-qt

# Dedicated room
cd build/bin/
./citra-room


3. 问题:


3.1 安装vmware-tools 出现Segmentation fault (core dumped)

先删除现有的VMware
cd vmware-tools-distrib/bin(就是到你那个安装文件的根目录)

然后运行
sudo ./vmware-uninstall-tools.pl(运行vmware-uninstall-tools.pl这个文件来删除现有的VMware)

最后打开终端,输入
sudo apt-get install open-vm-tools open-vm-tools-desktop

3.2 安装SDL2出现 E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages


sudo apt install aptitude
sudo aptitude install libsdl2-dev libssl-dev

3.3 git clone --recursive出错


cd citra
git submodule update --init --recursive
git submodule update --recursive

3.4 Required program `glslangValidator` not found.


mkdir tmp && cd tmp
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
unzip glslang-master-linux-Release.zip

sudo mv bin/* /usr/local/bin/
sudo mv lib/* /usr/local/lib/
sudo mv include/* /usr/local/include/

3.5 fdk-aac/aacdecoder_lib.h: No such file or directory


wget https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.1.tar.gz
tar -zxvf fdk-aac-2.0.1.tar.gz
cd fdk-aac-2.0.1/
autoreconf -fiv
sudo ./configure --prefix=/usr --disable-shared

3.5.1 autoreconf


sudo apt install autoreconf

3.5.2 Can't exec "libtoolize


sudo apt install aptitude
sudo aptitude install libtool

3.5.3 automake-1.15 command not found


sudo ln -s /usr/bin/automake-1.16 /usr/bin/automake-1.15


编译
sudo make -j4
sudo make install

3.6 Warning: Ignoring WAYLAND_DISPLAY on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.


虚拟机显卡驱动支持不完善。需要从opengl切换到software。

4. 压缩备份


tar -zcvf citra_git_src_20230715.tar.gz citra/
 

5.运行测试

5.1 虚拟机下

用SOFTWARE方式,基本不能玩,2 FPS. 

 

5.2 i5 ubuntu22实体机

 OPENGL方式可以。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础学Python-必备工具安装

文章目录 1. Python 安装与卸载Python 安装包下载安装Python如何验证Python 安装成功扩展 电脑中其实可以装多个不同版本的python 卸载Python 2. Python 开发有哪些常用的IDEPyCharm 安装PyCharm 安装包下载安装PyCharm PyCharm 使用VScode 安装VScode 安装包下载安装VScodeVsc…

libbpf-bootstrap开发指南:网络包监测-tc

目录 前置知识 代码分析 BPF部分 功能说明 struct __sk_buff 说明 bpf_htons & bpf_ntohs 为什么有l2 1、l31 data 数据的排布 用户部分 功能说明 DECLARE_LIBBPF_OPTS 执行效果 前置知识 IP数据包的总长度指的是整个IP数据包的长度,包括IP头部和…

React(2)

题外话&#xff1a;vscode有个插件可以很方便的快速写代码 输入rcc回车 1.组件嵌套 import React, { Component } from reactclass Navbar extends Component{render(){return <div>Navbar</div>} }const Swiper()>{return <div>Swiper</div> }cons…

学习babylon.js --- [2] 项目工程搭建

本文讲述如何搭建babylonjs的项目工程。 一 准备 首先创建一个目录叫MyProject&#xff0c;然后在这个目录里再创建三个目录&#xff1a;dist&#xff0c;public和src&#xff0c;如下&#xff0c; 接着在src目录里添加一个文件叫app.ts&#xff0c;本文使用typescript&#…

论文笔记--PTR: Prompt Tuning with Rules for Text Classification

论文笔记--PTR: Prompt Tuning with Rules for Text Classification 1. 文章简介2. 文章概括3 文章重点技术3.1 Pre-training & Fine-tuning & Prompt-based Fine Tuning3.2 PTR(Prompt Tuning with Rules)3.3 task decomposition3.4 Sub-prompts composition3.5 多个l…

平衡二叉搜索树--AVL详解剖析

目录 一、什么是AVL树 二、AVL树的作用 三、树节点的定义 四、节点的插入 五、旋转 1.左单旋 2.右单旋 左右双旋代码 &#xff1a; 4.右左双旋 一、什么是AVL树 AVL树就是二叉搜索树的进一步的优化&#xff0c;二叉搜索树虽可以缩短查找的效率&#xff0c;但是当数据有…

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

SpringFactoriesLoader解析

一、SpringFactoriesLoader 介绍 1.1 SpringFactoriesLoader 简介 SpringFactoriesLoader 工厂加载机制是 Spring 内部提供的一个约定俗成的加载方式&#xff0c;与 java spi 类似&#xff0c;只需要在模块的 META-INF/spring.factories 文件中&#xff0c;以 Properties 类型…

DOT slam论文翻译

DOT:视觉SLAM的动态目标跟踪 摘要 - 在本文中&#xff0c;我们提出了DOT(动态目标跟踪)&#xff0c;这是一个添加到现有SLAM系统中的前端&#xff0c;可以显着提高其在高动态环境中的鲁棒性和准确性。DOT结合实例分割和多视图几何来生成动态对象的掩模&#xff0c;以允许基于刚…

实现 Rollup 插件alias 并使用单元测试提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件&#xff0c;因为插件使用了ty…

DevOps系列文章之Argo CD 使用

一、什么是 argo cd Argo CD 是用于 Kubernetes 的声明性 GitOps 连续交付工具。 二、为什么使用 argo cd Argo CD 可在指定的目标环境中自动部署所需的应用程序状态&#xff0c;应用程序部署可以在 Git 提交时跟踪对分支&#xff0c;标签的更新&#xff0c;或固定到清单的特…

测试开发之路 ---- 可读性,可维护性,可扩展性

目录 前言 测试框架与测试脚本的目标&#xff08;部分&#xff09; 分层 使用类似 xml 这种可扩展性强的语义存储数据 代码复用&#xff1a;抽象一切可抽象的&#xff0c;减少一切可能的代码相似与重复 活用 java 注解和反射&#xff08;python 中应该也有相关的机制&…

如何从视频中提取音频?分享三个免费的方法给大家!

在数字时代&#xff0c;视频和音频的使用越来越广泛。有时&#xff0c;您可能希望从视频中提取音频&#xff0c;以便单独使用或与他人分享。无需购买昂贵的软件或具备专业技能&#xff0c;下面将介绍三种免费的方法&#xff0c;帮助您从视频中提取音频。这些方法简单易行&#…

Unity学习笔记--siki学院保卫萝卜

生命周期&#xff1a; 在同一个脚本中的执行先后顺序&#xff1a;先左后右 Inspector 赋值 > 外部调用 > Awake > OnEnable > Start 脚本对象的失活与激活不作用于Awake方法&#xff0c;当方法中只有Awake方法时&#xff0c;控制脚本激活失活的对勾会消失掉 当…

vue3 中ref的函数用法

简介 这里说的ref不是响应式ref,是用在组件身上的ref标识&#xff0c;一般都是ref“某一个字符串”&#xff0c;本文介绍第二种用法&#xff0c;ref“()>{}”,对没错&#xff0c;ref可以等于一个回调函数 ref可以是一个回调 <el-input:ref"(vc: any) > (inputAr…

lwip-2.1.3自带的httpd网页服务器使用教程(三)使用CGI获取URL参数(GET类型表单)

上一篇&#xff1a;lwip-2.1.3自带的httpd网页服务器使用教程&#xff08;二&#xff09;使用SSI动态生成网页部分内容 认识URL参数 在上网的时候&#xff0c;我们经常会见到在网址后面带有?AB&CD这样的语法格式。例如&#xff1a;https://blog.csdn.net/ZLK1214/articl…

OpenCV的HSV颜色空间在无人车中颜色识别的应用

RGB属于三基色空间&#xff0c;是大家最为熟悉的&#xff0c;看到的任何一种颜色都可以由三基色进行混合而成。然而一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;HSV(色调Hue,饱和度Saturation,亮度Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角…

如何撤销git上一次的commit(或已push)

如何撤销git上一次的commit&#xff08;或已push&#xff09; 当多人开发时&#xff0c;我们本地commit后&#xff0c;刚要push&#xff0c;发现忘记pull最新代码&#xff0c;此时会有冲突push失败&#xff0c; 我们想要撤销最近的一次commit 我们先简单介绍一下git git有三大…

GreenPlum数据库日常维护

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

使用 YOLOv8 和 Streamlit 构建实时对象检测和跟踪应用程序:第3部分:添加跟踪算法

介绍 对象跟踪是随着时间的推移识别一系列帧中的特定对象或多个对象的过程。它涉及定位对象在每个帧中的位置并跟踪其跨帧的移动。对象跟踪在各个领域都有广泛的应用,包括监控、机器人、自动驾驶、运动分析等。 跟踪算法使用各种技术(例如颜色直方图、运动分析、深度学习等)…