mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-28 00:29:01 +02:00
[hle, kernel] Add support for FW21 and kernel changes (#3004)
- Adapts kernel changes from atmosphere for firmware 21.0.0.
- Fixes launch error of firmware 21.0.0 applets.
- Adds new commands for `prepo` (New `SaveSystemReport` & `SaveSystemReportWithUser`).
- Adds new commands for `IReadOnlyApplicationControlDataInterface` (cmd 19; incomplete!)
- Adds `{12010, nullptr, "SetButtonConfigLeft"},` undocumented IHidServer.
- Adds new commands for `ngc:u` (`Mask2` and `Check2`)
- Adds new commands for system settings server (GetHttpAuthConfig) for webapplet
- Removes incompatible firmware popup warning.
Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored by: maufeat sahyno1996@gmail.com
Co-authored-by: crueter <crueter@eden-emu.dev>
Co-authored-by: JPikachu <jpikachu.eden@gmail.com>
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3004
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
parent
b690813196
commit
7d239df065
35 changed files with 1624 additions and 1363 deletions
|
|
@ -121,18 +121,12 @@ FirmwareManager::FirmwareCheckResult FirmwareManager::VerifyFirmware(Core::Syste
|
|||
return ErrorFirmwareMissing;
|
||||
} else {
|
||||
const auto pair = GetFirmwareVersion(system);
|
||||
const auto firmware_data = pair.first;
|
||||
const auto result = pair.second;
|
||||
|
||||
if (result.IsError()) {
|
||||
LOG_INFO(Frontend, "Unable to read firmware");
|
||||
return ErrorFirmwareCorrupted;
|
||||
}
|
||||
|
||||
// TODO: update this whenever newer firmware is properly supported
|
||||
if (firmware_data.major > 20) {
|
||||
return ErrorFirmwareTooNew;
|
||||
}
|
||||
}
|
||||
|
||||
return FirmwareGood;
|
||||
|
|
|
|||
|
|
@ -53,21 +53,10 @@ inline constexpr bool GameRequiresFirmware(u64 program_id)
|
|||
!= FIRMWARE_REQUIRED_GAMES.end();
|
||||
}
|
||||
|
||||
|
||||
enum FirmwareCheckResult {
|
||||
FirmwareGood,
|
||||
ErrorFirmwareMissing,
|
||||
ErrorFirmwareCorrupted,
|
||||
ErrorFirmwareTooNew,
|
||||
};
|
||||
|
||||
static constexpr std::array<const char *, 4> FIRMWARE_CHECK_STRINGS = {
|
||||
"",
|
||||
"Firmware missing. Firmware is required to run certain games and use the Home Menu. "
|
||||
"Eden only works with firmware 19.0.1 and earlier.",
|
||||
"Firmware reported as present, but was unable to be read. Check for decryption keys and "
|
||||
"redump firmware if necessary.",
|
||||
"Firmware is too new or could not be read. Eden only works with firmware 19.0.1 and earlier.",
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -100,16 +89,6 @@ inline bool CheckFirmwarePresence(Core::System &system)
|
|||
*/
|
||||
FirmwareCheckResult VerifyFirmware(Core::System &system);
|
||||
|
||||
/**
|
||||
* \brief Get a string representation of a result from CheckFirmwareVersion.
|
||||
* \param result The result code.
|
||||
* \return A string representation of the passed result code.
|
||||
*/
|
||||
inline constexpr const char *GetFirmwareCheckString(FirmwareCheckResult result)
|
||||
{
|
||||
return FIRMWARE_CHECK_STRINGS.at(static_cast<std::size_t>(result));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the currently installed firmware version.
|
||||
* @param system The system to check firmware on.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue