mirror of
https://github.com/mileswolfallen2/OmniEmu2.0.git
synced 2026-09-08 11:23:17 +00:00
Add Ryujinx emulator support and update dependencies
This commit is contained in:
@@ -36,6 +36,7 @@ OmniEmu is a cross-platform emulator manager, game launcher, and ROM library for
|
||||
| Dolphin | GameCube, Wii | ✅ | ✅ | ✅ |
|
||||
| RPCS3 | PlayStation 3 | ✅ | — | ✅ |
|
||||
| Eden | Nintendo Switch | ✅ | ✅ | ✅ |
|
||||
| Ryujinx | Nintendo Switch | ✅ | ✅ | ✅ |
|
||||
| PCSX2 | PlayStation 2 | ✅ | ✅ | ✅ |
|
||||
| DuckStation | PlayStation 1 | ✅ | ✅ | ✅ |
|
||||
| Mednafen | PS1, PC Engine, Lynx, Neo Geo Pocket, WonderSwan | ✅ | ✅ | ✅ |
|
||||
|
||||
Generated
+6
-6
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "omniemu2",
|
||||
"version": "0.3.1",
|
||||
"version": "0.3.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "omniemu2",
|
||||
"version": "0.3.1",
|
||||
"version": "0.3.3",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -20,7 +20,7 @@
|
||||
"@vitejs/plugin-react": "^4.4.0",
|
||||
"7zip-bin": "^5.2.0",
|
||||
"concurrently": "^9.1.0",
|
||||
"electron": "^43.1.0",
|
||||
"electron": "^43.2.0",
|
||||
"electron-builder": "^25.1.0",
|
||||
"typescript": "^5.7.0",
|
||||
"vite": "^6.0.0"
|
||||
@@ -3318,9 +3318,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/electron": {
|
||||
"version": "43.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-43.1.0.tgz",
|
||||
"integrity": "sha512-DPfxpQLd4NL3BJ8DBxYAfmLUKKesF5Rx9dQx5FyczAP8bhOPScjHE48GArVeXu68LlAainuwkmQTQvdZwpIIAQ==",
|
||||
"version": "43.3.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-43.3.0.tgz",
|
||||
"integrity": "sha512-nLlvu0WFjftWsSaTkV2B/c4NDuJBspTyXu8vKSQ6vLvFt8uG3NgN49LLKcXddwX0GqVvAQDhciWp+4xOdTdhew==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
@@ -91,6 +91,26 @@ CPU:
|
||||
"shader_cache": true,
|
||||
"audio_backend": "OpenAL",
|
||||
"controller": "SDL"
|
||||
}`,
|
||||
},
|
||||
},
|
||||
],
|
||||
ryujinx: [
|
||||
{
|
||||
name: 'OmniEmu Recommended',
|
||||
description: 'Best settings for Ryujinx Switch emulation',
|
||||
files: {
|
||||
'Config.json': `{
|
||||
"graphics_backend": "Vulkan",
|
||||
"resolution_scale": 2,
|
||||
"docked_mode": true,
|
||||
"max_anisotropy": 4,
|
||||
"aspect_ratio": "16:9",
|
||||
"enable_vsync": true,
|
||||
"enable_ptc": true,
|
||||
"enable_multi_thread_rendering": true,
|
||||
"audio_backend": "SDL2",
|
||||
"enable_discord_integration": false
|
||||
}`,
|
||||
},
|
||||
},
|
||||
@@ -399,6 +419,11 @@ function getConfigDir(emulatorId: string, installPath: string): string {
|
||||
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'Eden'),
|
||||
linux: join(require('os').homedir(), '.config', 'Eden'),
|
||||
},
|
||||
ryujinx: {
|
||||
win32: join(process.env.APPDATA || '', 'Ryujinx'),
|
||||
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'Ryujinx'),
|
||||
linux: join(require('os').homedir(), '.config', 'Ryujinx'),
|
||||
},
|
||||
flycast: {
|
||||
win32: join(process.env.APPDATA || '', 'flycast'),
|
||||
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'flycast'),
|
||||
@@ -551,6 +576,7 @@ const esdeEmulatorNames: Record<string, string> = {
|
||||
melonds: 'MELONDS',
|
||||
flycast: 'FLYCAST',
|
||||
eden: 'EDEN',
|
||||
ryujinx: 'RYUJINX',
|
||||
mednafen: 'MEDNAFEN',
|
||||
};
|
||||
|
||||
|
||||
@@ -128,6 +128,52 @@ export const knownEmulators: EmulatorConfig[] = [
|
||||
linux: 'https://eden-emu.dev/',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'ryujinx',
|
||||
name: 'Ryujinx',
|
||||
description: 'Nintendo Switch emulator',
|
||||
platforms: ['switch'],
|
||||
defaultPath: {
|
||||
win32: 'C:\\Program Files\\Ryujinx\\Ryujinx.exe',
|
||||
darwin: '/Applications/Ryujinx.app/Contents/MacOS/Ryujinx',
|
||||
linux: '/usr/bin/ryujinx',
|
||||
},
|
||||
downloads: {
|
||||
win32: [
|
||||
{
|
||||
url: 'https://git.ryujinx.app/projects/Ryubing/releases/download/1.3.3/ryujinx-1.3.3-win_x64.zip',
|
||||
format: 'zip',
|
||||
executablePath: 'Ryujinx.exe',
|
||||
arch: 'x64',
|
||||
},
|
||||
],
|
||||
darwin: [
|
||||
{
|
||||
url: 'https://git.ryujinx.app/projects/Ryubing/releases/download/1.3.3/ryujinx-1.3.3-macos_universal.app.tar.gz',
|
||||
format: 'tar.gz',
|
||||
executablePath: 'Ryujinx.app/Contents/MacOS/Ryujinx',
|
||||
},
|
||||
],
|
||||
linux: [
|
||||
{
|
||||
url: 'https://git.ryujinx.app/projects/Ryubing/releases/download/1.3.3/ryujinx-1.3.3-x64.AppImage',
|
||||
format: 'appimage',
|
||||
arch: 'x64',
|
||||
},
|
||||
{
|
||||
url: 'https://git.ryujinx.app/projects/Ryubing/releases/download/1.3.3/ryujinx-1.3.3-arm64.AppImage',
|
||||
format: 'appimage',
|
||||
arch: 'arm64',
|
||||
},
|
||||
],
|
||||
},
|
||||
supported: true,
|
||||
websiteUrl: {
|
||||
win32: 'https://ryujinx.app/download',
|
||||
darwin: 'https://ryujinx.app/download',
|
||||
linux: 'https://ryujinx.app/download',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'pcsx2',
|
||||
name: 'PCSX2',
|
||||
@@ -1031,6 +1077,13 @@ function alternativePaths(emulatorId: string): string[] {
|
||||
join(omniEmuDir, 'PCSX2'),
|
||||
join(omniEmuDir, 'pcsx2.AppImage'),
|
||||
],
|
||||
ryujinx: [
|
||||
join(omniEmuDir, 'Ryujinx.exe'),
|
||||
join(omniEmuDir, 'ryujinx'),
|
||||
join(omniEmuDir, 'Ryujinx'),
|
||||
join(omniEmuDir, 'Ryujinx.AppImage'),
|
||||
join(omniEmuDir, 'Ryujinx.app', 'Contents', 'MacOS', 'Ryujinx'),
|
||||
],
|
||||
mame: [
|
||||
join(omniEmuDir, 'mame64.exe'),
|
||||
join(omniEmuDir, 'mame'),
|
||||
@@ -1299,6 +1352,8 @@ function launchArgs(emulatorId: string, romPath: string): string[] {
|
||||
return [romPath];
|
||||
case 'eden':
|
||||
return [romPath];
|
||||
case 'ryujinx':
|
||||
return [romPath];
|
||||
case 'pcsx2':
|
||||
return [romPath];
|
||||
case 'mame':
|
||||
|
||||
@@ -143,6 +143,13 @@ function emulatorSaveDirs(emuId: string): SaveDirConfig | null {
|
||||
? join(home, 'Library', 'Application Support', 'Eden', 'sdmc', '0000000000000000')
|
||||
: join(home, '.local', 'share', 'eden', 'sdmc', '0000000000000000'),
|
||||
},
|
||||
ryujinx: {
|
||||
saves: platform === 'win32'
|
||||
? join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), 'Ryujinx', 'bis', 'user', 'save')
|
||||
: platform === 'darwin'
|
||||
? join(home, 'Library', 'Application Support', 'Ryujinx', 'bis', 'user', 'save')
|
||||
: join(home, '.config', 'Ryujinx', 'bis', 'user', 'save'),
|
||||
},
|
||||
pcsx2: {
|
||||
saves: platform === 'win32'
|
||||
? join(process.env.USERPROFILE || home, 'Documents', 'PCSX2', 'memcards')
|
||||
@@ -321,7 +328,7 @@ export { emulatorSaveDirs };
|
||||
|
||||
export function guessSavePathFromLabel(label: string): string | null {
|
||||
const lower = label.toLowerCase();
|
||||
for (const emu of ['retroarch', 'dolphin', 'rpcs3', 'eden', 'pcsx2', 'duckstation', 'flycast', 'ppsspp']) {
|
||||
for (const emu of ['retroarch', 'dolphin', 'rpcs3', 'eden', 'ryujinx', 'pcsx2', 'duckstation', 'flycast', 'ppsspp']) {
|
||||
if (lower.includes(emu)) return getSaveDir(emu);
|
||||
}
|
||||
return null;
|
||||
@@ -332,6 +339,7 @@ const EMU_SAVE_META: { id: string; name: string }[] = [
|
||||
{ id: 'dolphin', name: 'Dolphin' },
|
||||
{ id: 'rpcs3', name: 'RPCS3' },
|
||||
{ id: 'eden', name: 'Eden' },
|
||||
{ id: 'ryujinx', name: 'Ryujinx' },
|
||||
{ id: 'pcsx2', name: 'PCSX2' },
|
||||
{ id: 'duckstation', name: 'DuckStation' },
|
||||
{ id: 'flycast', name: 'Flycast' },
|
||||
|
||||
Reference in New Issue
Block a user