Compare commits

..

22 Commits

Author SHA1 Message Date
Michael Scire
0cd3d29770 loader: add usb3 patches for 18.0.0 2024-03-28 09:55:38 -07:00
Michael Scire
f860590d5f spl: add support for new spl:es command 33 2024-03-28 04:43:07 -07:00
Michael Scire
e6cf70a18a erpt: actually support non-sequential ids, nintendo why 2024-03-28 04:36:14 -07:00
Michael Scire
b4d453882d emummc: update for 18.0.0 2024-03-28 04:33:44 -07:00
Michael Scire
05df389d30 erpt: add new IDs/categories 2024-03-28 03:51:10 -07:00
Michael Scire
23d6014f91 jpegdec: stop bundling (TODO post-prerelease) 2024-03-28 03:46:41 -07:00
Michael Scire
496f8bf45e exo/fusee: apparently 18.0.0 did not burn a fuse 2024-03-28 03:45:07 -07:00
Michael Scire
4974a98ec6 svc: advertise support for 18.3.0.0 2024-03-28 03:44:31 -07:00
Michael Scire
1f44a9c4bf kern: fix whoops in new page table logic 2024-03-28 03:43:22 -07:00
Michael Scire
6113ffa191 kern: refactor smc helpers to share more common logic 2024-03-28 03:42:37 -07:00
Michael Scire
48e86f0406 kern: return ExceptionType_UnalignedData on data abort caused by alignment fault 2024-03-28 02:52:32 -07:00
Michael Scire
bf3203da0f kern: add KPageGroup::CopyRangeTo 2024-03-28 02:50:37 -07:00
Michael Scire
af7a200865 kern: implement new attr tracking for memory range/traversal context 2024-03-28 02:30:24 -07:00
Michael Scire
cfb12deb51 kern: simplify size calculations in KPageTableBase::Read/WriteDebugIoMemory 2024-03-28 02:22:19 -07:00
Michael Scire
4aac5f0082 kern: pass properties directly to KPageTableBase::AllocateAndMapPagesImpl 2024-03-28 02:19:45 -07:00
Michael Scire
f5a9d1d6e8 kern: take alignment argument in KMemoryManager::AllocateAndOpen 2024-03-28 02:17:38 -07:00
Michael Scire
5e63792a67 kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-28 02:07:04 -07:00
Michael Scire
8cacb07d5f kern: revise KPageTableBase region layout logic to match 18.0.0 changes 2024-03-28 01:47:36 -07:00
Michael Scire
4301e948cc kern: fix longstanding bug in ConvertToKMemoryPermission 2024-03-28 00:25:48 -07:00
Michael Scire
c331216f99 kern: pass kernel base from KernelLdr to Kernel 2024-03-28 00:24:45 -07:00
Michael Scire
b12e89d0a9 kern: use userspace access instructions to read from tlr 2024-03-28 00:18:31 -07:00
Michael Scire
83b3b09e73 fusee/exo/ams: update with new keydata/version enums 2024-03-27 18:48:49 -07:00
5 changed files with 6 additions and 28 deletions

View File

@@ -3,7 +3,7 @@
=====
![License](https://img.shields.io/badge/License-GPLv2-blue.svg)
[![Chat on Discord](https://img.shields.io/badge/Discord-5865f2?logo=discord&logoColor=white)](https://discordapp.com/invite/ZdqEhed)
[![Chat on Discord](https://camo.githubusercontent.com/b4175720ede4f2621aa066ffbabb70ae30044679/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636861742d446973636f72642d627269676874677265656e2e737667)](https://discordapp.com/invite/ZdqEhed)
Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

View File

@@ -1,26 +1,4 @@
# Changelog
## 1.7.0
+ Basic support was added for 18.0.0.
+ The console should boot and atmosphère should be fully functional. However, not all modules have been fully updated to reflect the latest changes.
+ There shouldn't be anything user visible resulting from this, but it will be addressed in a future atmosphère update, once I am not traveling so much.
+ `exosphère` was updated to reflect the latest official secure monitor behavior.
+ `mesosphère` was updated to reflect the latest official kernel behavior.
+ `spl` was updated to reflect the latest official behavior.
+ `fusee`'s no longer supports applying IPS patches to KIPs.
+ The only KIPs that are ever present are a) atmosphère modules, b) custom system modules, or c) FS.
+ The IPS subsystem was originally designed to make nogc patches work for FS, but these are now internal, and it appears the literal only kip patches that exist are for piracy.
+ I could not find any kip patches posted anywhere made for any other purpose.
+ It fundamentally does not make sense to slow down boot for every normal user for a feature that has no actual use-case, especially when `fusee` seeks to be a minimal bootloader.
+ Minor improvements were made to atmosphere's gdbstub, including:
+ Support was added for QStartNoAckMode.
+ An issue was fixed that could cause a fatal error when creating too many breakpoints.
+ A number of minor issues were fixed and improvements were made, including:
+ `pt-BR` (`PortugueseBr`) is now accepted as a valid language when overriding game locales.
+ A bug was fixed that could cause atmosphere to incorrectly serialize output object IDs over IPC when using domain objects.
+ A bug was fixed in `pm`'s resource limit boost logic that could potentially cause legitimate boosts to fail in certain circumstances.
+ `loader`/`ro` will now throw a fatal error when using invalid IPS patches that go out of bounds, instead of corrupting memory.
+ Support was fixed for booting using a memory configuration of half of the true available memory (e.g. forcing a 4GB configuration on an 8GB board).
+ General system stability improvements to enhance the user's experience.
## 1.6.2
+ Support was finished for 17.0.0.
+ `erpt` was updated to support the latest official behavior.

4
emummc/.gitrepo vendored
View File

@@ -6,7 +6,7 @@
[subrepo]
remote = https://github.com/m4xw/emummc
branch = develop
commit = 832b2442685b45b086697ffe09c5fde05d7444e9
parent = 3ccb0ae02bc06769f44d61233bf177301ba9d5f3
commit = 9513a5412057b1f1bc44ed8e717c57c726763a88
parent = e4d08ae0c5342cdb0875d164522a63ec9d233052
method = merge
cmdver = 0.4.1

View File

@@ -6,7 +6,7 @@
[subrepo]
remote = https://github.com/Atmosphere-NX/Atmosphere-libs
branch = master
commit = fadec2981727636ec7ba81d6c83995b7b9782190
parent = 410f23035efeb9e1bd399a020334793bba95bf91
commit = bfc55834869fe24f8d94550bc6909a65ae7d35c2
parent = 742fd16080bce8cd664d6244304a771f82e8aa04
method = merge
cmdver = 0.4.1

View File

@@ -39,7 +39,7 @@ namespace ams::kern {
KPhysicalAddress KSystemControlBase::Init::GetKernelPhysicalBaseAddress(KPhysicalAddress base_address) {
const size_t real_dram_size = KSystemControl::Init::GetRealMemorySize();
const size_t intended_dram_size = KSystemControl::Init::GetIntendedMemorySize();
if (intended_dram_size * 2 <= real_dram_size) {
if (intended_dram_size * 2 < real_dram_size) {
return base_address;
} else {
return base_address + ((real_dram_size - intended_dram_size) / 2);