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 | ✅ | ✅ | ✅ |
|
| Dolphin | GameCube, Wii | ✅ | ✅ | ✅ |
|
||||||
| RPCS3 | PlayStation 3 | ✅ | — | ✅ |
|
| RPCS3 | PlayStation 3 | ✅ | — | ✅ |
|
||||||
| Eden | Nintendo Switch | ✅ | ✅ | ✅ |
|
| Eden | Nintendo Switch | ✅ | ✅ | ✅ |
|
||||||
|
| Ryujinx | Nintendo Switch | ✅ | ✅ | ✅ |
|
||||||
| PCSX2 | PlayStation 2 | ✅ | ✅ | ✅ |
|
| PCSX2 | PlayStation 2 | ✅ | ✅ | ✅ |
|
||||||
| DuckStation | PlayStation 1 | ✅ | ✅ | ✅ |
|
| DuckStation | PlayStation 1 | ✅ | ✅ | ✅ |
|
||||||
| Mednafen | PS1, PC Engine, Lynx, Neo Geo Pocket, WonderSwan | ✅ | ✅ | ✅ |
|
| Mednafen | PS1, PC Engine, Lynx, Neo Geo Pocket, WonderSwan | ✅ | ✅ | ✅ |
|
||||||
|
|||||||
Generated
+6
-6
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "omniemu2",
|
"name": "omniemu2",
|
||||||
"version": "0.3.1",
|
"version": "0.3.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "omniemu2",
|
"name": "omniemu2",
|
||||||
"version": "0.3.1",
|
"version": "0.3.3",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"@vitejs/plugin-react": "^4.4.0",
|
"@vitejs/plugin-react": "^4.4.0",
|
||||||
"7zip-bin": "^5.2.0",
|
"7zip-bin": "^5.2.0",
|
||||||
"concurrently": "^9.1.0",
|
"concurrently": "^9.1.0",
|
||||||
"electron": "^43.1.0",
|
"electron": "^43.2.0",
|
||||||
"electron-builder": "^25.1.0",
|
"electron-builder": "^25.1.0",
|
||||||
"typescript": "^5.7.0",
|
"typescript": "^5.7.0",
|
||||||
"vite": "^6.0.0"
|
"vite": "^6.0.0"
|
||||||
@@ -3318,9 +3318,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron": {
|
"node_modules/electron": {
|
||||||
"version": "43.1.0",
|
"version": "43.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron/-/electron-43.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron/-/electron-43.3.0.tgz",
|
||||||
"integrity": "sha512-DPfxpQLd4NL3BJ8DBxYAfmLUKKesF5Rx9dQx5FyczAP8bhOPScjHE48GArVeXu68LlAainuwkmQTQvdZwpIIAQ==",
|
"integrity": "sha512-nLlvu0WFjftWsSaTkV2B/c4NDuJBspTyXu8vKSQ6vLvFt8uG3NgN49LLKcXddwX0GqVvAQDhciWp+4xOdTdhew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -91,6 +91,26 @@ CPU:
|
|||||||
"shader_cache": true,
|
"shader_cache": true,
|
||||||
"audio_backend": "OpenAL",
|
"audio_backend": "OpenAL",
|
||||||
"controller": "SDL"
|
"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'),
|
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'Eden'),
|
||||||
linux: join(require('os').homedir(), '.config', '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: {
|
flycast: {
|
||||||
win32: join(process.env.APPDATA || '', 'flycast'),
|
win32: join(process.env.APPDATA || '', 'flycast'),
|
||||||
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'flycast'),
|
darwin: join(require('os').homedir(), 'Library', 'Application Support', 'flycast'),
|
||||||
@@ -551,6 +576,7 @@ const esdeEmulatorNames: Record<string, string> = {
|
|||||||
melonds: 'MELONDS',
|
melonds: 'MELONDS',
|
||||||
flycast: 'FLYCAST',
|
flycast: 'FLYCAST',
|
||||||
eden: 'EDEN',
|
eden: 'EDEN',
|
||||||
|
ryujinx: 'RYUJINX',
|
||||||
mednafen: 'MEDNAFEN',
|
mednafen: 'MEDNAFEN',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,52 @@ export const knownEmulators: EmulatorConfig[] = [
|
|||||||
linux: 'https://eden-emu.dev/',
|
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',
|
id: 'pcsx2',
|
||||||
name: 'PCSX2',
|
name: 'PCSX2',
|
||||||
@@ -1031,6 +1077,13 @@ function alternativePaths(emulatorId: string): string[] {
|
|||||||
join(omniEmuDir, 'PCSX2'),
|
join(omniEmuDir, 'PCSX2'),
|
||||||
join(omniEmuDir, 'pcsx2.AppImage'),
|
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: [
|
mame: [
|
||||||
join(omniEmuDir, 'mame64.exe'),
|
join(omniEmuDir, 'mame64.exe'),
|
||||||
join(omniEmuDir, 'mame'),
|
join(omniEmuDir, 'mame'),
|
||||||
@@ -1299,6 +1352,8 @@ function launchArgs(emulatorId: string, romPath: string): string[] {
|
|||||||
return [romPath];
|
return [romPath];
|
||||||
case 'eden':
|
case 'eden':
|
||||||
return [romPath];
|
return [romPath];
|
||||||
|
case 'ryujinx':
|
||||||
|
return [romPath];
|
||||||
case 'pcsx2':
|
case 'pcsx2':
|
||||||
return [romPath];
|
return [romPath];
|
||||||
case 'mame':
|
case 'mame':
|
||||||
|
|||||||
@@ -143,6 +143,13 @@ function emulatorSaveDirs(emuId: string): SaveDirConfig | null {
|
|||||||
? join(home, 'Library', 'Application Support', 'Eden', 'sdmc', '0000000000000000')
|
? join(home, 'Library', 'Application Support', 'Eden', 'sdmc', '0000000000000000')
|
||||||
: join(home, '.local', 'share', '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: {
|
pcsx2: {
|
||||||
saves: platform === 'win32'
|
saves: platform === 'win32'
|
||||||
? join(process.env.USERPROFILE || home, 'Documents', 'PCSX2', 'memcards')
|
? join(process.env.USERPROFILE || home, 'Documents', 'PCSX2', 'memcards')
|
||||||
@@ -321,7 +328,7 @@ export { emulatorSaveDirs };
|
|||||||
|
|
||||||
export function guessSavePathFromLabel(label: string): string | null {
|
export function guessSavePathFromLabel(label: string): string | null {
|
||||||
const lower = label.toLowerCase();
|
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);
|
if (lower.includes(emu)) return getSaveDir(emu);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -332,6 +339,7 @@ const EMU_SAVE_META: { id: string; name: string }[] = [
|
|||||||
{ id: 'dolphin', name: 'Dolphin' },
|
{ id: 'dolphin', name: 'Dolphin' },
|
||||||
{ id: 'rpcs3', name: 'RPCS3' },
|
{ id: 'rpcs3', name: 'RPCS3' },
|
||||||
{ id: 'eden', name: 'Eden' },
|
{ id: 'eden', name: 'Eden' },
|
||||||
|
{ id: 'ryujinx', name: 'Ryujinx' },
|
||||||
{ id: 'pcsx2', name: 'PCSX2' },
|
{ id: 'pcsx2', name: 'PCSX2' },
|
||||||
{ id: 'duckstation', name: 'DuckStation' },
|
{ id: 'duckstation', name: 'DuckStation' },
|
||||||
{ id: 'flycast', name: 'Flycast' },
|
{ id: 'flycast', name: 'Flycast' },
|
||||||
|
|||||||
Reference in New Issue
Block a user