mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2026-06-17 01:08:55 +00:00
Compare commits
No commits in common. "master" and "1.11.0" have entirely different histories.
@ -1,11 +1,4 @@
|
||||
# Changelog
|
||||
## 1.11.2
|
||||
+ Basic support was added for 22.5.0.
|
||||
+ Atmosphère was updated to use GCC 16/newlib (latest devkitA64/devkitARM releases).
|
||||
+ General system stability improvements to enhance the user's experience.
|
||||
## 1.11.1
|
||||
+ Basic support was added for 22.1.0.
|
||||
+ General system stability improvements to enhance the user's experience.
|
||||
## 1.11.0
|
||||
+ Support was added for 22.0.0.
|
||||
+ Special thanks to @alula for handling a large chunk of the necessary kernel, loader and erpt changes.
|
||||
|
||||
6
emummc/.gitrepo
vendored
6
emummc/.gitrepo
vendored
@ -6,7 +6,7 @@
|
||||
[subrepo]
|
||||
remote = https://github.com/m4xw/emummc
|
||||
branch = develop
|
||||
commit = f6b3a28ecea9834f96151a526de66abd11033b70
|
||||
parent = 1478f3443e8f04534edac8c15bf2d504663d0384
|
||||
commit = 8ab963b0b1c24b68de8e0c98c62c7822a9765bf3
|
||||
parent = 1e88f37892555da4c38ca6c95f43c56cc6bb87e6
|
||||
method = merge
|
||||
cmdver = 0.4.9
|
||||
cmdver = 0.4.1
|
||||
|
||||
2
emummc/README.md
vendored
2
emummc/README.md
vendored
@ -2,7 +2,7 @@
|
||||
*A SDMMC driver replacement for Nintendo's Filesystem Services, by **m4xw***
|
||||
|
||||
### Supported Horizon Versions
|
||||
**1.0.0 - 22.5.0**
|
||||
**1.0.0 - 21.2.0**
|
||||
|
||||
## Features
|
||||
* Arbitrary SDMMC backend selection
|
||||
|
||||
8
emummc/source/FS/FS_offsets.c
vendored
8
emummc/source/FS/FS_offsets.c
vendored
@ -85,8 +85,6 @@
|
||||
#include "offsets/2120_exfat.h"
|
||||
#include "offsets/2200.h"
|
||||
#include "offsets/2200_exfat.h"
|
||||
#include "offsets/2250.h"
|
||||
#include "offsets/2250_exfat.h"
|
||||
#include "../utils/fatal.h"
|
||||
|
||||
#define GET_OFFSET_STRUCT_NAME(vers) g_offsets##vers
|
||||
@ -183,8 +181,6 @@ DEFINE_OFFSET_STRUCT(_2120);
|
||||
DEFINE_OFFSET_STRUCT(_2120_EXFAT);
|
||||
DEFINE_OFFSET_STRUCT(_2200);
|
||||
DEFINE_OFFSET_STRUCT(_2200_EXFAT);
|
||||
DEFINE_OFFSET_STRUCT(_2250);
|
||||
DEFINE_OFFSET_STRUCT(_2250_EXFAT);
|
||||
|
||||
const fs_offsets_t *get_fs_offsets(enum FS_VER version) {
|
||||
switch (version) {
|
||||
@ -326,10 +322,6 @@ const fs_offsets_t *get_fs_offsets(enum FS_VER version) {
|
||||
return &(GET_OFFSET_STRUCT_NAME(_2200));
|
||||
case FS_VER_22_0_0_EXFAT:
|
||||
return &(GET_OFFSET_STRUCT_NAME(_2200_EXFAT));
|
||||
case FS_VER_22_5_0:
|
||||
return &(GET_OFFSET_STRUCT_NAME(_2250));
|
||||
case FS_VER_22_5_0_EXFAT:
|
||||
return &(GET_OFFSET_STRUCT_NAME(_2250_EXFAT));
|
||||
default:
|
||||
fatal_abort(Fatal_UnknownVersion);
|
||||
}
|
||||
|
||||
3
emummc/source/FS/FS_versions.h
vendored
3
emummc/source/FS/FS_versions.h
vendored
@ -125,9 +125,6 @@ enum FS_VER
|
||||
FS_VER_22_0_0,
|
||||
FS_VER_22_0_0_EXFAT,
|
||||
|
||||
FS_VER_22_5_0,
|
||||
FS_VER_22_5_0_EXFAT,
|
||||
|
||||
FS_VER_MAX,
|
||||
};
|
||||
|
||||
|
||||
59
emummc/source/FS/offsets/2250.h
vendored
59
emummc/source/FS/offsets/2250.h
vendored
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019 m4xw <m4x@m4xw.net>
|
||||
* Copyright (c) 2019 Atmosphere-NX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __FS_2250_H__
|
||||
#define __FS_2250_H__
|
||||
|
||||
// Accessor vtable getters
|
||||
#define FS_OFFSET_2250_SDMMC_ACCESSOR_GC 0x1B01C0
|
||||
#define FS_OFFSET_2250_SDMMC_ACCESSOR_SD 0x1B21C0
|
||||
#define FS_OFFSET_2250_SDMMC_ACCESSOR_NAND 0x1B07F0
|
||||
|
||||
// Hooks
|
||||
#define FS_OFFSET_2250_SDMMC_WRAPPER_READ 0x1AC0F0
|
||||
#define FS_OFFSET_2250_SDMMC_WRAPPER_WRITE 0x1AC150
|
||||
#define FS_OFFSET_2250_RTLD 0x2DED0
|
||||
#define FS_OFFSET_2250_RTLD_DESTINATION ((uintptr_t)(INT64_C(-0x4C)))
|
||||
|
||||
#define FS_OFFSET_2250_CLKRST_SET_MIN_V_CLK_RATE 0x1CF260
|
||||
|
||||
// Misc funcs
|
||||
#define FS_OFFSET_2250_LOCK_MUTEX 0x1A4EF0
|
||||
#define FS_OFFSET_2250_UNLOCK_MUTEX 0x1A4F40
|
||||
|
||||
#define FS_OFFSET_2250_SDMMC_WRAPPER_CONTROLLER_OPEN 0x1AC0B0
|
||||
#define FS_OFFSET_2250_SDMMC_WRAPPER_CONTROLLER_CLOSE 0x1AC0D0
|
||||
|
||||
// Misc Data
|
||||
#define FS_OFFSET_2250_SD_MUTEX 0xFF1408
|
||||
#define FS_OFFSET_2250_NAND_MUTEX 0xFECD00
|
||||
#define FS_OFFSET_2250_ACTIVE_PARTITION 0xFECD40
|
||||
#define FS_OFFSET_2250_SDMMC_DAS_HANDLE 0xFCEB98
|
||||
|
||||
// NOPs
|
||||
#define FS_OFFSET_2250_SD_DAS_INIT 0x2B438
|
||||
|
||||
// Nintendo Paths
|
||||
#define FS_OFFSET_2250_NINTENDO_PATHS \
|
||||
{ \
|
||||
{.opcode_reg = 3, .adrp_offset = 0x000715EC, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 3, .adrp_offset = 0x00082E64, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 4, .adrp_offset = 0x0008B888, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 4, .adrp_offset = 0x000A1B1C, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 0, .adrp_offset = 0, .add_rel_offset = 0}, \
|
||||
}
|
||||
|
||||
#endif // __FS_2250_H__
|
||||
59
emummc/source/FS/offsets/2250_exfat.h
vendored
59
emummc/source/FS/offsets/2250_exfat.h
vendored
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019 m4xw <m4x@m4xw.net>
|
||||
* Copyright (c) 2019 Atmosphere-NX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __FS_2250_EXFAT_H__
|
||||
#define __FS_2250_EXFAT_H__
|
||||
|
||||
// Accessor vtable getters
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_ACCESSOR_GC 0x1BB3B0
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_ACCESSOR_SD 0x1BD3B0
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_ACCESSOR_NAND 0x1BB9E0
|
||||
|
||||
// Hooks
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_WRAPPER_READ 0x1B72E0
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_WRAPPER_WRITE 0x1B7340
|
||||
#define FS_OFFSET_2250_EXFAT_RTLD 0x2DED0
|
||||
#define FS_OFFSET_2250_EXFAT_RTLD_DESTINATION ((uintptr_t)(INT64_C(-0x4C)))
|
||||
|
||||
#define FS_OFFSET_2250_EXFAT_CLKRST_SET_MIN_V_CLK_RATE 0x1DA450
|
||||
|
||||
// Misc funcs
|
||||
#define FS_OFFSET_2250_EXFAT_LOCK_MUTEX 0x1B00E0
|
||||
#define FS_OFFSET_2250_EXFAT_UNLOCK_MUTEX 0x1B0130
|
||||
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_WRAPPER_CONTROLLER_OPEN 0x1B72A0
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_WRAPPER_CONTROLLER_CLOSE 0x1B72C0
|
||||
|
||||
// Misc Data
|
||||
#define FS_OFFSET_2250_EXFAT_SD_MUTEX 0x1002408
|
||||
#define FS_OFFSET_2250_EXFAT_NAND_MUTEX 0xFFDD00
|
||||
#define FS_OFFSET_2250_EXFAT_ACTIVE_PARTITION 0xFFDD40
|
||||
#define FS_OFFSET_2250_EXFAT_SDMMC_DAS_HANDLE 0xFDBB98
|
||||
|
||||
// NOPs
|
||||
#define FS_OFFSET_2250_EXFAT_SD_DAS_INIT 0x2B438
|
||||
|
||||
// Nintendo Paths
|
||||
#define FS_OFFSET_2250_EXFAT_NINTENDO_PATHS \
|
||||
{ \
|
||||
{.opcode_reg = 3, .adrp_offset = 0x000715EC, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 3, .adrp_offset = 0x00082E64, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 4, .adrp_offset = 0x0008B888, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 4, .adrp_offset = 0x000A1B1C, .add_rel_offset = 0x00000004}, \
|
||||
{.opcode_reg = 0, .adrp_offset = 0, .add_rel_offset = 0}, \
|
||||
}
|
||||
|
||||
#endif // __FS_2250_EXFAT_H__
|
||||
@ -195,9 +195,6 @@ namespace ams::nxboot {
|
||||
FsVersion_22_0_0,
|
||||
FsVersion_22_0_0_Exfat,
|
||||
|
||||
FsVersion_22_5_0,
|
||||
FsVersion_22_5_0_Exfat,
|
||||
|
||||
FsVersion_Count,
|
||||
};
|
||||
|
||||
@ -305,9 +302,6 @@ namespace ams::nxboot {
|
||||
|
||||
{ 0xB7, 0xA2, 0x97, 0x39, 0xB7, 0xED, 0xDE, 0xFC }, /* FsVersion_22_0_0 */
|
||||
{ 0xFB, 0x0B, 0x68, 0xDB, 0x24, 0x03, 0xD1, 0x19 }, /* FsVersion_22_0_0_Exfat */
|
||||
|
||||
{ 0x53, 0x6D, 0x93, 0x84, 0x69, 0xFE, 0x73, 0xBE }, /* FsVersion_22_5_0 */
|
||||
{ 0xD4, 0x45, 0x28, 0x29, 0x5B, 0x41, 0x92, 0xBA }, /* FsVersion_22_5_0_Exfat */
|
||||
};
|
||||
|
||||
const InitialProcessBinaryHeader *FindInitialProcessBinary(const pkg2::Package2Header *header, const u8 *data, ams::TargetFirmware target_firmware) {
|
||||
@ -722,13 +716,11 @@ namespace ams::nxboot {
|
||||
AddPatch(fs_meta, 0x18AD40, NogcPatch1, sizeof(NogcPatch1));
|
||||
break;
|
||||
case FsVersion_22_0_0:
|
||||
case FsVersion_22_5_0:
|
||||
AddPatch(fs_meta, 0x1B023D, NogcPatch0, sizeof(NogcPatch0));
|
||||
AddPatch(fs_meta, 0x1B0255, NogcPatch0, sizeof(NogcPatch0));
|
||||
AddPatch(fs_meta, 0x183060, NogcPatch1, sizeof(NogcPatch1));
|
||||
break;
|
||||
case FsVersion_22_0_0_Exfat:
|
||||
case FsVersion_22_5_0_Exfat:
|
||||
AddPatch(fs_meta, 0x1BB42D, NogcPatch0, sizeof(NogcPatch0));
|
||||
AddPatch(fs_meta, 0x1BB445, NogcPatch0, sizeof(NogcPatch0));
|
||||
AddPatch(fs_meta, 0x18E250, NogcPatch1, sizeof(NogcPatch1));
|
||||
|
||||
@ -1356,9 +1356,6 @@ namespace ams::nxboot {
|
||||
emc_zcal_wait_cnt_old &= ~0x7ff;
|
||||
emc_zcal_wait_cnt_new &= ~0x7ff;
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(emc_zcal_wait_cnt_old);
|
||||
|
||||
if (dram_type == DRAM_TYPE_LPDDR4) {
|
||||
zq_wait_long = std::max<u32>(1, util::DivideUp(1000000, destination_clock_period));
|
||||
} else if (dram_type == DRAM_TYPE_LPDDR2 || is_lpddr3) {
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
[subrepo]
|
||||
remote = https://github.com/Atmosphere-NX/Atmosphere-libs
|
||||
branch = master
|
||||
commit = d3083af1827cd6ca2a96feb9316eb85cd01bae1f
|
||||
parent = 974a1025b834136134e8133d8db23f69cb5ae0be
|
||||
commit = 9a8703e710760be8c88147d15414a1c581711625
|
||||
parent = eb34f9789c62745d87f37e76761b14d946bac300
|
||||
method = merge
|
||||
cmdver = 0.4.9
|
||||
cmdver = 0.4.1
|
||||
|
||||
@ -105,9 +105,6 @@ namespace ams::se {
|
||||
value |= ((flags & KeySlotLockFlags_KeyRead) == 0) ? (1u << 1) : 0;
|
||||
value |= ((flags & KeySlotLockFlags_KeyRead) == 0) ? (1u << 2) : 0;
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(value);
|
||||
|
||||
reg::Write(SE->SE_RSA_KEYTABLE_ACCESS[slot], SE_REG_BITS_ENUM_SEL(RSA_KEYTABLE_ACCESS_KEYREAD, (flags & KeySlotLockFlags_KeyRead) != 0, DISABLE, ENABLE),
|
||||
SE_REG_BITS_ENUM_SEL(RSA_KEYTABLE_ACCESS_KEYUPDATE, (flags & KeySlotLockFlags_KeyWrite) != 0, DISABLE, ENABLE),
|
||||
SE_REG_BITS_ENUM_SEL(RSA_KEYTABLE_ACCESS_KEYUSE, (flags & KeySlotLockFlags_KeyUse) != 0, DISABLE, ENABLE));
|
||||
|
||||
@ -730,9 +730,6 @@ namespace ams::kern::arch::arm64 {
|
||||
}
|
||||
MESOSPHERE_ASSERT(mapped_pages == num_pages);
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(mapped_pages);
|
||||
|
||||
/* Perform what coalescing we can. */
|
||||
this->MergePages(orig_virt_addr, num_pages, page_list);
|
||||
|
||||
|
||||
@ -682,7 +682,7 @@ _ZN3ams4kern4arch5arm6415UserspaceAccess4Impl18WriteIoMemory32BitEPvPKvm:
|
||||
mov x30, x10
|
||||
|
||||
/* Write the word to io. */
|
||||
sttr w9, [x4]
|
||||
sttr w9, [x5]
|
||||
dsb sy
|
||||
|
||||
2: /* Continue. */
|
||||
@ -727,7 +727,7 @@ _ZN3ams4kern4arch5arm6415UserspaceAccess4Impl18WriteIoMemory16BitEPvPKvm:
|
||||
mov x30, x10
|
||||
|
||||
/* Write the word to io. */
|
||||
sttrh w9, [x4]
|
||||
sttrh w9, [x5]
|
||||
dsb sy
|
||||
|
||||
2: /* Continue. */
|
||||
@ -772,7 +772,7 @@ _ZN3ams4kern4arch5arm6415UserspaceAccess4Impl17WriteIoMemory8BitEPvPKvm:
|
||||
mov x30, x10
|
||||
|
||||
/* Write the word to io. */
|
||||
sttrb w9, [x4]
|
||||
sttrb w9, [x5]
|
||||
dsb sy
|
||||
|
||||
2: /* Continue. */
|
||||
|
||||
@ -757,13 +757,11 @@ namespace ams::kern {
|
||||
{
|
||||
MESOSPHERE_ASSERT(num_params >= 3);
|
||||
|
||||
/* Keep the compiler happy, even though the assert has us covered. */
|
||||
if (num_params >= 3) {
|
||||
info->info.exception.exception_address = params[1];
|
||||
|
||||
info->info.exception.exception_data_count = 1;
|
||||
info->info.exception.exception_data[0] = params[2];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ams::svc::DebugException_DebuggerAttached:
|
||||
{
|
||||
@ -776,10 +774,7 @@ namespace ams::kern {
|
||||
{
|
||||
MESOSPHERE_ASSERT(num_params >= 2);
|
||||
|
||||
/* Keep the compiler happy, even though the assert has us covered. */
|
||||
if (num_params >= 2) {
|
||||
info->info.exception.exception_address = params[1];
|
||||
}
|
||||
|
||||
info->info.exception.exception_data_count = 0;
|
||||
for (size_t i = 2; i < num_params; ++i) {
|
||||
@ -811,11 +806,8 @@ namespace ams::kern {
|
||||
{
|
||||
MESOSPHERE_ASSERT(num_params >= 2);
|
||||
|
||||
/* Keep the compiler happy, even though the assert has us covered. */
|
||||
if (num_params >= 2) {
|
||||
info->info.exception.exception_address = params[1];
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -979,7 +979,6 @@
|
||||
HANDLER(FsSaveDataFileSystemPeakMountCount, 777, FsProxyErrorInfo3, FieldType_NumericI32, FieldFlag_None ) \
|
||||
HANDLER(TestBool, 778, Test, FieldType_Bool, FieldFlag_None ) \
|
||||
HANDLER(TestI8Array, 779, Test, FieldType_I8Array, FieldFlag_None ) \
|
||||
HANDLER(SslProcessHeapAllocatable, 781, NetworkSecurityCertificateInfo, FieldType_NumericU32, FieldFlag_None ) \
|
||||
HANDLER(TestStringNx, 1000, TestNx, FieldType_String, FieldFlag_None ) \
|
||||
HANDLER(BoostModeCurrentLimit, 1001, BatteryChargeInfo, FieldType_NumericI32, FieldFlag_None ) \
|
||||
HANDLER(ChargeConfiguration, 1002, BatteryChargeInfo, FieldType_NumericI32, FieldFlag_None ) \
|
||||
|
||||
@ -101,8 +101,6 @@ namespace ams::hos {
|
||||
Version_21_1_0 = ::ams::TargetFirmware_21_1_0,
|
||||
Version_21_2_0 = ::ams::TargetFirmware_21_2_0,
|
||||
Version_22_0_0 = ::ams::TargetFirmware_22_0_0,
|
||||
Version_22_1_0 = ::ams::TargetFirmware_22_1_0,
|
||||
Version_22_5_0 = ::ams::TargetFirmware_22_5_0,
|
||||
|
||||
Version_Current = ::ams::TargetFirmware_Current,
|
||||
|
||||
|
||||
@ -41,8 +41,7 @@ namespace ams::pgl {
|
||||
u32 version;
|
||||
ncm::ContentType content_type;
|
||||
u8 id_offset;
|
||||
ncm::ContentMetaType content_meta_type;
|
||||
u8 reserved_0F;
|
||||
u8 reserved_0E[2];
|
||||
|
||||
static constexpr ContentMetaInfo Make(u64 id, u32 version, ncm::ContentType content_type, u8 id_offset) {
|
||||
return {
|
||||
|
||||
@ -47,7 +47,7 @@ namespace ams::hos {
|
||||
#endif
|
||||
|
||||
exosphere::ApiInfo GetExosphereApiInfo(bool allow_approximate) {
|
||||
exosphere::ApiInfo info = exosphere::ApiInfo{ util::BitPack64{0} };
|
||||
exosphere::ApiInfo info;
|
||||
#if defined(ATMOSPHERE_OS_HORIZON)
|
||||
while (true) {
|
||||
if (R_SUCCEEDED(GetExosphereApiInfo(std::addressof(info)))) {
|
||||
|
||||
@ -221,9 +221,6 @@ namespace ams::ncm {
|
||||
/* Assert that we copied the right number of infos. */
|
||||
AMS_ASSERT(count == fragment_count);
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(count);
|
||||
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
@ -436,9 +433,6 @@ namespace ams::ncm {
|
||||
/* Assert that we copied the right number of infos. */
|
||||
AMS_ASSERT(count == fragment_count);
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(count);
|
||||
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
|
||||
@ -349,7 +349,6 @@ namespace ams::pgl::srv {
|
||||
.version = reader.GetProgramVersion(),
|
||||
.content_type = ncm::ContentType::Program,
|
||||
.id_offset = reader.GetProgramIndex(),
|
||||
.content_meta_type = reader.GetContentMetaType(),
|
||||
};
|
||||
|
||||
R_SUCCEED();
|
||||
|
||||
@ -17,10 +17,10 @@
|
||||
|
||||
#define ATMOSPHERE_RELEASE_VERSION_MAJOR 1
|
||||
#define ATMOSPHERE_RELEASE_VERSION_MINOR 11
|
||||
#define ATMOSPHERE_RELEASE_VERSION_MICRO 2
|
||||
#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 22
|
||||
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MINOR 5
|
||||
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MINOR 0
|
||||
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MICRO 0
|
||||
|
||||
@ -99,10 +99,8 @@
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_21_1_0 ATMOSPHERE_TARGET_FIRMWARE(21, 1, 0)
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_21_2_0 ATMOSPHERE_TARGET_FIRMWARE(21, 2, 0)
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_22_0_0 ATMOSPHERE_TARGET_FIRMWARE(22, 0, 0)
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_22_1_0 ATMOSPHERE_TARGET_FIRMWARE(22, 1, 0)
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_22_5_0 ATMOSPHERE_TARGET_FIRMWARE(22, 5, 0)
|
||||
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_22_5_0
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_22_0_0
|
||||
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE(0, 0, 0)
|
||||
#define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT
|
||||
@ -194,8 +192,6 @@ namespace ams {
|
||||
TargetFirmware_21_1_0 = ATMOSPHERE_TARGET_FIRMWARE_21_1_0,
|
||||
TargetFirmware_21_2_0 = ATMOSPHERE_TARGET_FIRMWARE_21_2_0,
|
||||
TargetFirmware_22_0_0 = ATMOSPHERE_TARGET_FIRMWARE_22_0_0,
|
||||
TargetFirmware_22_1_0 = ATMOSPHERE_TARGET_FIRMWARE_22_1_0,
|
||||
TargetFirmware_22_5_0 = ATMOSPHERE_TARGET_FIRMWARE_22_5_0,
|
||||
|
||||
TargetFirmware_Current = ATMOSPHERE_TARGET_FIRMWARE_CURRENT,
|
||||
|
||||
|
||||
@ -186,9 +186,6 @@ namespace ams::svc::codegen::impl {
|
||||
size_t i = 0;
|
||||
(layout.ProcessArgument<AbiType, ArgumentTypes>(i++, NGRN, NSAA), ...);
|
||||
|
||||
/* TODO: Unused variable. */
|
||||
AMS_UNUSED(i);
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
|
||||
@ -36,11 +36,6 @@ namespace ams::mitm::fs {
|
||||
};
|
||||
|
||||
constexpr const ApplicationWithDynamicHeapInfo ApplicationsWithDynamicHeap[] = {
|
||||
/* Until Then. */
|
||||
/* Requirement ~34 MB. */
|
||||
/* No particular heap sensitivity. */
|
||||
{ 0x010019C023004000, 16_MB, 0_MB },
|
||||
|
||||
/* Trails in the Sky 1st Chapter. */
|
||||
/* Requirement ? MB. 16 MB stolen heap fixes a crash, though. */
|
||||
/* Unknown heap sensitivity. */
|
||||
|
||||
@ -100,6 +100,5 @@ constexpr inline const EmbeddedPatch Usb30ForceEnablePatches[] = {
|
||||
{ ParseModuleId("40E80E7442C0DFC985315E6F9E8C77229818AC0F"), util::size(Usb30ForceEnablePatches_20_0_0), Usb30ForceEnablePatches_20_0_0 }, /* 20.0.0 */
|
||||
{ ParseModuleId("A5EF8D22EDF8A384E4135270ED596C1D2D524159"), util::size(Usb30ForceEnablePatches_20_0_0), Usb30ForceEnablePatches_20_0_0 }, /* 20.1.0 - 20.5.0 */
|
||||
{ ParseModuleId("766D0C2277207B40AD9B8DE309396D50CCE94885"), util::size(Usb30ForceEnablePatches_21_0_0), Usb30ForceEnablePatches_21_0_0 }, /* 21.0.0 */
|
||||
{ ParseModuleId("B734339F2280170AF0200573F9B943242CEF8C15"), util::size(Usb30ForceEnablePatches_22_0_0), Usb30ForceEnablePatches_22_0_0 }, /* 22.0.0 - 22.1.0 */
|
||||
{ ParseModuleId("AD8D36F2029822A4C498F055ADBDAA789EB913C6"), util::size(Usb30ForceEnablePatches_22_0_0), Usb30ForceEnablePatches_22_0_0 }, /* 22.5.0 */
|
||||
{ ParseModuleId("B734339F2280170AF0200573F9B943242CEF8C15"), util::size(Usb30ForceEnablePatches_22_0_0), Usb30ForceEnablePatches_22_0_0 }, /* 22.0.0 */
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user