From 6c29455ce82c6406375a11dc11b813c226ac8bd2 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Mon, 10 Nov 2025 22:32:02 -0700 Subject: [PATCH] fusee/exo/ams: update with new keydata/version enums --- .../include/exosphere/pkg1/pkg1_key_generation.hpp | 1 + libexosphere/include/exosphere/pkg2.hpp | 2 +- libexosphere/source/fuse/fuse_api.cpp | 1 + libstratosphere/include/stratosphere/hos/hos_types.hpp | 1 + .../source/fs/impl/fs_id_string_impl.os.generic.cpp | 5 +++-- libvapours/include/vapours/ams/ams_api_version.h | 8 ++++---- libvapours/include/vapours/ams/ams_target_firmware.h | 4 +++- 7 files changed, 14 insertions(+), 8 deletions(-) diff --git a/libexosphere/include/exosphere/pkg1/pkg1_key_generation.hpp b/libexosphere/include/exosphere/pkg1/pkg1_key_generation.hpp index 282c2332..9c31c761 100644 --- a/libexosphere/include/exosphere/pkg1/pkg1_key_generation.hpp +++ b/libexosphere/include/exosphere/pkg1/pkg1_key_generation.hpp @@ -40,6 +40,7 @@ namespace ams::pkg1 { KeyGeneration_18_0_0 = 0x11, KeyGeneration_19_0_0 = 0x12, KeyGeneration_20_0_0 = 0x13, + KeyGeneration_21_0_0 = 0x14, KeyGeneration_Count, diff --git a/libexosphere/include/exosphere/pkg2.hpp b/libexosphere/include/exosphere/pkg2.hpp index d6649d9d..be84a6ae 100644 --- a/libexosphere/include/exosphere/pkg2.hpp +++ b/libexosphere/include/exosphere/pkg2.hpp @@ -24,7 +24,7 @@ namespace ams::pkg2 { constexpr inline int PayloadCount = 3; constexpr inline int MinimumValidDataVersion = 0; /* We allow older package2 to load; this value is currently 0x18 in Nintendo's code. */ - constexpr inline int CurrentBootloaderVersion = 0x17; + constexpr inline int CurrentBootloaderVersion = 0x18; struct Package2Meta { using Magic = util::FourCC<'P','K','2','1'>; diff --git a/libexosphere/source/fuse/fuse_api.cpp b/libexosphere/source/fuse/fuse_api.cpp index 837ad735..1610af0f 100644 --- a/libexosphere/source/fuse/fuse_api.cpp +++ b/libexosphere/source/fuse/fuse_api.cpp @@ -177,6 +177,7 @@ namespace ams::fuse { } constexpr const TargetFirmware FuseVersionIncrementFirmwares[] = { + TargetFirmware_21_0_0, TargetFirmware_20_0_0, TargetFirmware_19_0_0, TargetFirmware_17_0_0, diff --git a/libstratosphere/include/stratosphere/hos/hos_types.hpp b/libstratosphere/include/stratosphere/hos/hos_types.hpp index 81f4a843..37869013 100644 --- a/libstratosphere/include/stratosphere/hos/hos_types.hpp +++ b/libstratosphere/include/stratosphere/hos/hos_types.hpp @@ -96,6 +96,7 @@ namespace ams::hos { Version_20_3_0 = ::ams::TargetFirmware_20_3_0, Version_20_4_0 = ::ams::TargetFirmware_20_4_0, Version_20_5_0 = ::ams::TargetFirmware_20_5_0, + Version_21_0_0 = ::ams::TargetFirmware_21_0_0, Version_Current = ::ams::TargetFirmware_Current, diff --git a/libstratosphere/source/fs/impl/fs_id_string_impl.os.generic.cpp b/libstratosphere/source/fs/impl/fs_id_string_impl.os.generic.cpp index 15dc8c24..aa8963d9 100644 --- a/libstratosphere/source/fs/impl/fs_id_string_impl.os.generic.cpp +++ b/libstratosphere/source/fs/impl/fs_id_string_impl.os.generic.cpp @@ -21,7 +21,7 @@ namespace ams::fs::impl { #define ADD_ENUM_CASE(v) case v: return #v template<> const char *IdString::ToString(pkg1::KeyGeneration id) { - static_assert(pkg1::KeyGeneration_Current == pkg1::KeyGeneration_20_0_0); + static_assert(pkg1::KeyGeneration_Current == pkg1::KeyGeneration_21_0_0); switch (id) { using enum pkg1::KeyGeneration; case KeyGeneration_1_0_0: return "1.0.0-2.3.0"; @@ -43,7 +43,8 @@ namespace ams::fs::impl { case KeyGeneration_17_0_0: return "17.0.0-17.0.1"; case KeyGeneration_18_0_0: return "18.0.0-18.1.0"; case KeyGeneration_19_0_0: return "19.0.0-19.0.1"; - case KeyGeneration_20_0_0: return "20.0.0-"; + case KeyGeneration_20_0_0: return "20.0.0-20.5.0"; + case KeyGeneration_21_0_0: return "21.0.0-"; default: return "Unknown"; } } diff --git a/libvapours/include/vapours/ams/ams_api_version.h b/libvapours/include/vapours/ams/ams_api_version.h index 7c9eba66..8b06cb38 100644 --- a/libvapours/include/vapours/ams/ams_api_version.h +++ b/libvapours/include/vapours/ams/ams_api_version.h @@ -16,11 +16,11 @@ #pragma once #define ATMOSPHERE_RELEASE_VERSION_MAJOR 1 -#define ATMOSPHERE_RELEASE_VERSION_MINOR 9 -#define ATMOSPHERE_RELEASE_VERSION_MICRO 5 +#define ATMOSPHERE_RELEASE_VERSION_MINOR 10 +#define ATMOSPHERE_RELEASE_VERSION_MICRO 0 #define ATMOSPHERE_RELEASE_VERSION ATMOSPHERE_RELEASE_VERSION_MAJOR, ATMOSPHERE_RELEASE_VERSION_MINOR, ATMOSPHERE_RELEASE_VERSION_MICRO -#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MAJOR 20 -#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MINOR 5 +#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MAJOR 21 +#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MINOR 0 #define ATMOSPHERE_SUPPORTED_HOS_VERSION_MICRO 0 diff --git a/libvapours/include/vapours/ams/ams_target_firmware.h b/libvapours/include/vapours/ams/ams_target_firmware.h index 0055d222..98c0ce61 100644 --- a/libvapours/include/vapours/ams/ams_target_firmware.h +++ b/libvapours/include/vapours/ams/ams_target_firmware.h @@ -94,8 +94,9 @@ #define ATMOSPHERE_TARGET_FIRMWARE_20_3_0 ATMOSPHERE_TARGET_FIRMWARE(20, 3, 0) #define ATMOSPHERE_TARGET_FIRMWARE_20_4_0 ATMOSPHERE_TARGET_FIRMWARE(20, 4, 0) #define ATMOSPHERE_TARGET_FIRMWARE_20_5_0 ATMOSPHERE_TARGET_FIRMWARE(20, 5, 0) +#define ATMOSPHERE_TARGET_FIRMWARE_21_0_0 ATMOSPHERE_TARGET_FIRMWARE(21, 0, 0) -#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_20_5_0 +#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_21_0_0 #define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE(0, 0, 0) #define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT @@ -182,6 +183,7 @@ namespace ams { TargetFirmware_20_3_0 = ATMOSPHERE_TARGET_FIRMWARE_20_3_0, TargetFirmware_20_4_0 = ATMOSPHERE_TARGET_FIRMWARE_20_4_0, TargetFirmware_20_5_0 = ATMOSPHERE_TARGET_FIRMWARE_20_5_0, + TargetFirmware_21_0_0 = ATMOSPHERE_TARGET_FIRMWARE_21_0_0, TargetFirmware_Current = ATMOSPHERE_TARGET_FIRMWARE_CURRENT,