mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-21 07:18:33 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cbb74b3e70 | |||
| 7da774f766 |
@@ -9,3 +9,11 @@ At the moment of writing, we do not support CFW such as Atmosphere, due to:
|
|||||||
We do however, maintain HLE compatibility with the former mentioned CFW, applications that require Atmosphere to run will run fine in the emulator without any adjustments.
|
We do however, maintain HLE compatibility with the former mentioned CFW, applications that require Atmosphere to run will run fine in the emulator without any adjustments.
|
||||||
|
|
||||||
If they don't run - then that's a bug!
|
If they don't run - then that's a bug!
|
||||||
|
|
||||||
|
## Atmosphere
|
||||||
|
|
||||||
|
Fusee Galee, the bootloader and other low-level mechanisms are not emulated at the moment.
|
||||||
|
|
||||||
|
Having OFW is recommended, but may not be required (untested).
|
||||||
|
|
||||||
|
Extract the contents of Atmosphere into `sdmc`. Then to launch simply use `-hlaunch` instead (orthogonal to `-qlaunch`).
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ There are two main applications, an SDL-based app (`eden-cli`) and a Qt based ap
|
|||||||
- `-u <number>`: Select the index of the user to load as.
|
- `-u <number>`: Select the index of the user to load as.
|
||||||
- `-input-profile <name>`: Specifies input profile name to use (for player #0 only).
|
- `-input-profile <name>`: Specifies input profile name to use (for player #0 only).
|
||||||
- `-qlaunch`: Launch QLaunch.
|
- `-qlaunch`: Launch QLaunch.
|
||||||
|
- `-hlaunch`: Launch homebrew launcher `nx-hbloader`.
|
||||||
|
- Requires a copy of Atmosphere to be extracted onto `sdmc`.
|
||||||
|
- This is a shorthand for `<eden folder>/sdmc/atmosphere/hbl.nsp`.
|
||||||
- `-setup`: Launch setup applet.
|
- `-setup`: Launch setup applet.
|
||||||
|
|
||||||
## eden-cli
|
## eden-cli
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
@@ -268,7 +271,8 @@ Result KCapabilities::SetHandleTableCapability(const u32 cap) {
|
|||||||
Result KCapabilities::SetDebugFlagsCapability(const u32 cap) {
|
Result KCapabilities::SetDebugFlagsCapability(const u32 cap) {
|
||||||
// Validate.
|
// Validate.
|
||||||
const DebugFlags pack{cap};
|
const DebugFlags pack{cap};
|
||||||
R_UNLESS(pack.reserved == 0, ResultReservedUsed);
|
// TODO: Enabling this breaks compatibility with HBloader and such
|
||||||
|
//R_UNLESS(pack.reserved == 0, ResultReservedUsed);
|
||||||
|
|
||||||
DebugFlags debug_capabilities{m_debug_capabilities};
|
DebugFlags debug_capabilities{m_debug_capabilities};
|
||||||
debug_capabilities.allow_debug.Assign(pack.allow_debug);
|
debug_capabilities.allow_debug.Assign(pack.allow_debug);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// Qt on macOS doesn't define VMA shit
|
// Qt on macOS doesn't define VMA shit
|
||||||
#include <boost/algorithm/string/split.hpp>
|
#include <boost/algorithm/string/split.hpp>
|
||||||
|
#include "common/fs/path_util.h"
|
||||||
#include "common/settings.h"
|
#include "common/settings.h"
|
||||||
#include "common/settings_enums.h"
|
#include "common/settings_enums.h"
|
||||||
#include "frontend_common/settings_generator.h"
|
#include "frontend_common/settings_generator.h"
|
||||||
@@ -635,6 +636,7 @@ MainWindow::MainWindow(bool has_broken_vulkan)
|
|||||||
|
|
||||||
QString game_path;
|
QString game_path;
|
||||||
bool should_launch_qlaunch = false;
|
bool should_launch_qlaunch = false;
|
||||||
|
bool should_launch_hlaunch = false;
|
||||||
bool should_launch_setup = false;
|
bool should_launch_setup = false;
|
||||||
bool has_gamepath = false;
|
bool has_gamepath = false;
|
||||||
bool is_fullscreen = false;
|
bool is_fullscreen = false;
|
||||||
@@ -676,6 +678,8 @@ MainWindow::MainWindow(bool has_broken_vulkan)
|
|||||||
players[0].profile_name = args[++i].toStdString();
|
players[0].profile_name = args[++i].toStdString();
|
||||||
} else if (args[i] == QStringLiteral("-qlaunch")) {
|
} else if (args[i] == QStringLiteral("-qlaunch")) {
|
||||||
should_launch_qlaunch = true;
|
should_launch_qlaunch = true;
|
||||||
|
} else if (args[i] == QStringLiteral("-hlaunch")) {
|
||||||
|
should_launch_hlaunch = true;
|
||||||
} else if (args[i] == QStringLiteral("-setup")) {
|
} else if (args[i] == QStringLiteral("-setup")) {
|
||||||
should_launch_setup = true;
|
should_launch_setup = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -694,10 +698,12 @@ MainWindow::MainWindow(bool has_broken_vulkan)
|
|||||||
} else {
|
} else {
|
||||||
if (!game_path.isEmpty()) {
|
if (!game_path.isEmpty()) {
|
||||||
BootGame(game_path, ApplicationAppletParameters());
|
BootGame(game_path, ApplicationAppletParameters());
|
||||||
} else {
|
} else if (should_launch_qlaunch) {
|
||||||
if (should_launch_qlaunch) {
|
LaunchFirmwareApplet(u64(Service::AM::AppletProgramId::QLaunch), std::nullopt);
|
||||||
LaunchFirmwareApplet(u64(Service::AM::AppletProgramId::QLaunch), std::nullopt);
|
} else if (should_launch_hlaunch) {
|
||||||
}
|
std::filesystem::path const sd_dir = Common::FS::GetEdenPathString(Common::FS::EdenPath::SDMCDir);
|
||||||
|
auto const hbl_path = (sd_dir / "atmosphere" / "hbl.nsp").string();
|
||||||
|
BootGame(QString::fromStdString(hbl_path), ApplicationAppletParameters());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user