mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-07-11 02:16:39 +02:00
[core/hle] update fw constants to 22.5.0, ams -> 1.11.2, implement /digest file (#4165)
adds `/digest` file implementation alongisde the hashes and constants for firmwareless installs and yes ams updated as well Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4165 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
This commit is contained in:
@@ -11,30 +11,39 @@
|
||||
|
||||
namespace FileSys::SystemArchive {
|
||||
|
||||
std::string GetLongDisplayVersion() {
|
||||
return HLE::ApiVersion::DISPLAY_TITLE;
|
||||
}
|
||||
|
||||
VirtualDir SystemVersion() {
|
||||
LOG_WARNING(Common_Filesystem, "called - Using hardcoded firmware version '{}'",
|
||||
GetLongDisplayVersion());
|
||||
LOG_WARNING(Common_Filesystem, "called, using hardcoded firmware version: {}, {}", HLE::ApiVersion::VERSION_HASH, HLE::ApiVersion::DISPLAY_TITLE);
|
||||
|
||||
VirtualFile file = std::make_shared<VectorVfsFile>(std::vector<u8>(0x100), "file");
|
||||
file->WriteObject(HLE::ApiVersion::HOS_VERSION_MAJOR, 0);
|
||||
file->WriteObject(HLE::ApiVersion::HOS_VERSION_MINOR, 1);
|
||||
file->WriteObject(HLE::ApiVersion::HOS_VERSION_MICRO, 2);
|
||||
file->WriteObject(HLE::ApiVersion::SDK_REVISION_MAJOR, 4);
|
||||
file->WriteObject(HLE::ApiVersion::SDK_REVISION_MINOR, 5);
|
||||
file->WriteArray(HLE::ApiVersion::PLATFORM_STRING,
|
||||
std::min<u64>(sizeof(HLE::ApiVersion::PLATFORM_STRING), 0x20ULL), 0x8);
|
||||
file->WriteArray(HLE::ApiVersion::VERSION_HASH,
|
||||
std::min<u64>(sizeof(HLE::ApiVersion::VERSION_HASH), 0x40ULL), 0x28);
|
||||
file->WriteArray(HLE::ApiVersion::DISPLAY_VERSION,
|
||||
std::min<u64>(sizeof(HLE::ApiVersion::DISPLAY_VERSION), 0x18ULL), 0x68);
|
||||
file->WriteArray(HLE::ApiVersion::DISPLAY_TITLE,
|
||||
std::min<u64>(sizeof(HLE::ApiVersion::DISPLAY_TITLE), 0x80ULL), 0x80);
|
||||
return std::make_shared<VectorVfsDirectory>(std::vector<VirtualFile>{file},
|
||||
std::vector<VirtualDir>{}, "data");
|
||||
// the "/file"
|
||||
struct VersionFileHeader {
|
||||
u8 version_major = HLE::ApiVersion::HOS_VERSION_MAJOR;
|
||||
u8 version_minor = HLE::ApiVersion::HOS_VERSION_MINOR;
|
||||
u8 version_micro = HLE::ApiVersion::HOS_VERSION_MICRO;
|
||||
std::array<u8, 1> padding_1{};
|
||||
u8 sdk_revision_major = HLE::ApiVersion::SDK_REVISION_MAJOR;
|
||||
u8 sdk_revision_minor = HLE::ApiVersion::SDK_REVISION_MINOR;
|
||||
std::array<u8, 2> padding_2{};
|
||||
std::array<u8, 0x20> platform_string{};
|
||||
std::array<u8, 0x40> version_hash{};
|
||||
std::array<u8, 0x18> display_version{};
|
||||
std::array<u8, 0x80> display_title{};
|
||||
};
|
||||
static_assert(sizeof(VersionFileHeader) == 0x100);
|
||||
VersionFileHeader version_file_header = {};
|
||||
std::memcpy(&version_file_header.platform_string, HLE::ApiVersion::PLATFORM_STRING, sizeof(HLE::ApiVersion::PLATFORM_STRING));
|
||||
std::memcpy(&version_file_header.version_hash, HLE::ApiVersion::VERSION_HASH, sizeof(HLE::ApiVersion::VERSION_HASH));
|
||||
std::memcpy(&version_file_header.display_version, HLE::ApiVersion::DISPLAY_VERSION, sizeof(HLE::ApiVersion::DISPLAY_VERSION));
|
||||
std::memcpy(&version_file_header.display_title, HLE::ApiVersion::DISPLAY_TITLE, sizeof(HLE::ApiVersion::DISPLAY_TITLE));
|
||||
|
||||
std::vector<u8> file_data(sizeof(VersionFileHeader));
|
||||
std::memcpy(file_data.data(), &version_file_header, sizeof(version_file_header));
|
||||
VirtualFile file = std::make_shared<VectorVfsFile>(file_data, "file");
|
||||
|
||||
// the "/digest"
|
||||
std::vector<u8> digest_data(sizeof(HLE::ApiVersion::VERSION_DIGEST));
|
||||
std::memcpy(digest_data.data(), HLE::ApiVersion::VERSION_DIGEST, sizeof(HLE::ApiVersion::VERSION_DIGEST));
|
||||
VirtualFile digest_file = std::make_shared<VectorVfsFile>(digest_data, "digest");
|
||||
return std::make_shared<VectorVfsDirectory>(std::vector<VirtualFile>{file, digest_file}, std::vector<VirtualDir>{}, "data");
|
||||
}
|
||||
|
||||
} // namespace FileSys::SystemArchive
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -8,8 +11,6 @@
|
||||
|
||||
namespace FileSys::SystemArchive {
|
||||
|
||||
std::string GetLongDisplayVersion();
|
||||
|
||||
VirtualDir SystemVersion();
|
||||
|
||||
} // namespace FileSys::SystemArchive
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string_view>
|
||||
#include <fmt/format.h>
|
||||
#include "common/common_types.h"
|
||||
|
||||
// This file contains yuzu's HLE API version constants.
|
||||
@@ -15,23 +17,22 @@ namespace HLE::ApiVersion {
|
||||
// Horizon OS version constants.
|
||||
|
||||
constexpr u8 HOS_VERSION_MAJOR = 22;
|
||||
constexpr u8 HOS_VERSION_MINOR = 0;
|
||||
constexpr u8 HOS_VERSION_MINOR = 5;
|
||||
constexpr u8 HOS_VERSION_MICRO = 0;
|
||||
|
||||
// NintendoSDK version constants.
|
||||
|
||||
constexpr u8 SDK_REVISION_MAJOR = 3;
|
||||
constexpr u8 SDK_REVISION_MAJOR = 1;
|
||||
constexpr u8 SDK_REVISION_MINOR = 0;
|
||||
|
||||
constexpr char PLATFORM_STRING[] = "NX";
|
||||
constexpr char VERSION_HASH[] = "da42070c4ad25840c9ee25344bde9d0a8584f5a9";
|
||||
constexpr char DISPLAY_VERSION[] = "22.0.0";
|
||||
constexpr char DISPLAY_TITLE[] = "NintendoSDK Firmware for NX 22.0.0-3.0";
|
||||
constexpr char PLATFORM_STRING[0x20] = "NX";
|
||||
constexpr char VERSION_HASH[0x40] = "ae93061abbc7791fcf8d2f7e7b7b2d62163af697";
|
||||
constexpr char DISPLAY_VERSION[0x18] = "22.5.0";
|
||||
constexpr char DISPLAY_TITLE[0x80] = "NintendoSDK Firmware for NX 22.5.0-1.0 ";
|
||||
constexpr char VERSION_DIGEST[0x40] = "CusHY#00160500#WxlZDREksAFSi6bQJEV6nm6-cHLg2jikdYRVN3bwqyE=";
|
||||
|
||||
// Atmosphere version constants.
|
||||
|
||||
constexpr u8 ATMOSPHERE_RELEASE_VERSION_MAJOR = 1;
|
||||
constexpr u8 ATMOSPHERE_RELEASE_VERSION_MINOR = 10;
|
||||
constexpr u8 ATMOSPHERE_RELEASE_VERSION_MINOR = 11;
|
||||
constexpr u8 ATMOSPHERE_RELEASE_VERSION_MICRO = 2;
|
||||
|
||||
constexpr u32 AtmosphereTargetFirmwareWithRevision(u8 major, u8 minor, u8 micro, u8 rev) {
|
||||
|
||||
Reference in New Issue
Block a user