Add Ryujinx
This commit is contained in:
parent
746ea89cc4
commit
c1876ccfa0
7 changed files with 1428 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.flatpak-builder
|
3
flathub.json
Normal file
3
flathub.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"only-arches": ["x86_64"]
|
||||
}
|
1269
nuget_sources.json
Normal file
1269
nuget_sources.json
Normal file
File diff suppressed because it is too large
Load diff
59
org.ryujinx.Ryujinx.appdata.xml
Normal file
59
org.ryujinx.Ryujinx.appdata.xml
Normal file
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>org.ryujinx.Ryujinx</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>MIT</project_license>
|
||||
<name>Ryujinx</name>
|
||||
<developer_name>Ryujinx team</developer_name>
|
||||
<summary>A Nintendo Switch Emulator</summary>
|
||||
<categories>
|
||||
<category>Emulator</category>
|
||||
<category>Game</category>
|
||||
</categories>
|
||||
<description>
|
||||
<p>Ryujinx is an open-source Nintendo Switch emulator written in C#</p>
|
||||
<p>This emulator aims at providing excellent accuracy and performance, a user-friendly interface, and consistent builds.</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">org.ryujinx.Ryujinx.desktop</launchable>
|
||||
<provides>
|
||||
<binary>Ryujinx</binary>
|
||||
<mediatype>application/x-nx-nca</mediatype>
|
||||
<mediatype>application/x-nx-nro</mediatype>
|
||||
<mediatype>application/x-nx-nso</mediatype>
|
||||
<mediatype>application/x-nx-nsp</mediatype>
|
||||
<mediatype>application/x-nx-xci</mediatype>
|
||||
</provides>
|
||||
<url type="homepage">https://ryujinx.org/</url>
|
||||
<url type="bugtracker">https://github.com/Ryujinx/Ryujinx/issues</url>
|
||||
<url type="faq">https://github.com/Ryujinx/Ryujinx/wiki/Frequently-Asked-Questions</url>
|
||||
<url type="donation">https://www.patreon.com/ryujinx</url>
|
||||
<url type="help">https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-%26-Configuration-Guide</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Main screen</caption>
|
||||
<image>https://raw.githubusercontent.com/Ryujinx/Ryujinx-Website/master/static/public/shell_fullsize.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<releases>
|
||||
<release version="1.1.0"/>
|
||||
</releases>
|
||||
<content_rating type="oars-1.1"/>
|
||||
<requires>
|
||||
<kernel version="4.1" compare="ge">Linux</kernel>
|
||||
<memory>8192</memory>
|
||||
</requires>
|
||||
<supports>
|
||||
<control>keyboard</control>
|
||||
<control>pointing</control>
|
||||
<control>gamepad</control>
|
||||
<control>tablet</control>
|
||||
</supports>
|
||||
<recommends>
|
||||
<control>gamepad</control>
|
||||
</recommends>
|
||||
<!-- For Gnome Software (https://gitlab.gnome.org/GNOME/gnome-software/-/blob/main/doc/kudos.md) -->
|
||||
<kudos>
|
||||
<kudo>HiDpiIcon</kudo>
|
||||
<kudo>ModernToolkit</kudo>
|
||||
</kudos>
|
||||
</component>
|
29
org.ryujinx.Ryujinx.yml
Normal file
29
org.ryujinx.Ryujinx.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
app-id: org.ryujinx.Ryujinx
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '21.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
sdk-extensions:
|
||||
- org.freedesktop.Sdk.Extension.dotnet6
|
||||
add-extensions:
|
||||
org.freedesktop.Platform.ffmpeg-full:
|
||||
version: '21.08'
|
||||
directory: lib/ffmpeg
|
||||
add-ld-path: .
|
||||
finish-args:
|
||||
# IPC access (required by X11)
|
||||
- --share=ipc
|
||||
# X11 access (TODO: Allows Wayland when EGL is supported correctly on SPB side)
|
||||
- --socket=x11
|
||||
# OpenGL and hidraw (SDL2 controllers) access
|
||||
- --device=all
|
||||
# PulseAudio access
|
||||
- --socket=pulseaudio
|
||||
# Network access (Used by Amiibo API and emulated games)
|
||||
- --share=network
|
||||
# Allows standard filesystem access (Users can load emulated games but also unpack their content)
|
||||
- --filesystem=host
|
||||
- --filesystem=xdg-run/app/com.discordapp.Discord:create
|
||||
rename-icon: ryujinx
|
||||
command: ryujinx-wrapper
|
||||
modules:
|
||||
- ryujinx.yml
|
7
ryujinx-wrapper
Normal file
7
ryujinx-wrapper
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
for i in {0..9}; do
|
||||
test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
|
||||
done
|
||||
|
||||
Ryujinx $@
|
60
ryujinx.yml
Normal file
60
ryujinx.yml
Normal file
|
@ -0,0 +1,60 @@
|
|||
name: Ryujinx
|
||||
sources:
|
||||
- nuget_sources.json
|
||||
- type: git
|
||||
url: https://github.com/Ryujinx/Ryujinx.git
|
||||
commit: ac21abbb9d23432879b1026eb5bc48ad3d4583d8
|
||||
- type: file
|
||||
path: ryujinx-wrapper
|
||||
- type: file
|
||||
path: org.ryujinx.Ryujinx.appdata.xml
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
append-path: /usr/lib/sdk/dotnet6/bin
|
||||
append-ld-library-path: /usr/lib/sdk/dotnet6/lib
|
||||
arch:
|
||||
x86_64:
|
||||
env:
|
||||
RUNTIME: linux-x64
|
||||
env:
|
||||
PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/sdk/dotnet6/lib/pkgconfig
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
|
||||
|
||||
RYUJINX_VERSION: "1.1.56"
|
||||
RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: "flathub"
|
||||
RYUJINX_TARGET_RELEASE_CHANNEL_REPO: "org.ryujinx.Ryujinx"
|
||||
RYUJINX_TARGET_RELEASE_CHANNEL_NAME: "master"
|
||||
build-commands:
|
||||
- |
|
||||
export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
|
||||
sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs
|
||||
sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs
|
||||
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs
|
||||
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs
|
||||
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs
|
||||
mkdir -p /app/bin
|
||||
dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER --self-contained --source nuget-sources
|
||||
cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net6.0/$RUNTIME/publish/* /app/bin/
|
||||
mkdir -p /app/lib/ffmpeg
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
|
||||
post-install:
|
||||
- install -Dm644 $FLATPAK_ID.appdata.xml /app/share/metainfo/$FLATPAK_ID.appdata.xml
|
||||
- install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
|
||||
- |
|
||||
install -Dm644 distribution/linux/ryujinx-logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
|
||||
icon_in="distribution/linux/ryujinx-logo.svg";
|
||||
icon_out="ryujinx.png";
|
||||
for s in {16,22,24,32,36,48,64,72,96,128,192,256,512}; do
|
||||
[[ ! -f "/app/share/icons/hicolor/${s}x${s}/apps/${icon_out}" ]] || continue;
|
||||
rsvg-convert "${icon_in}" -w "${s}" -h "${s}" -a -f png -o "${icon_out}";
|
||||
install -p -D -m 0644 "${icon_out}" -t "/app/share/icons/hicolor/${s}x${s}/apps/";
|
||||
done;
|
||||
gtk-update-icon-cache --force --ignore-theme-index /app/share/icons/hicolor
|
||||
- |
|
||||
mkdir -p /app/share/mime/packages/
|
||||
install -m644 distribution/linux/ryujinx-mime.xml /app/share/mime/packages/$FLATPAK_ID.mime.xml
|
||||
update-mime-database /app/share/mime
|
||||
- |
|
||||
install -Dm644 distribution/linux/ryujinx.desktop /app/share/applications/$FLATPAK_ID.desktop
|
||||
desktop-file-edit --set-key="Exec" --set-value="ryujinx-wrapper %f" /app/share/applications/$FLATPAK_ID.desktop
|
Loading…
Reference in a new issue