Commit Graph

584 Commits

Author SHA1 Message Date
Michael Scire
2f9b9d5e7f ams: basic support for compiling with gcc 15 2025-05-09 12:10:11 -07:00
Michael Scire
20ae7f3037 fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images.
Starting in 20.0.0, the browser needs more applet memory to function, so we can't steal as much any more.
Thus, we now steal 14 MB on 20.0.0+ instead of 40MB.

However, since this reduces memory available for custom system modules, we are adjusting to compensate.
ams.mitm's heap size has been reduced from 32MB to 12MB (recovering 20MB).
In addition, fs.mitm now uses a new mechanism for stealing memory from the applet pool while romfs is being built.

On net, we are compromising:
    * Custom sysmodules lose memory available to them.
        On 19.0.0/AMS 1.8.0, there was 30 MB available for custom sysmodules.
        Stealing 14 MB instead of 40 MB, we lose 26 MB of that. Reducing ams.mitm's usage will gain us back 20.
        Nintendo also appears to...use 4 extra MB, in 20.0.0, from my test homebrew.
        So on 20.0.0/AMS 1.9.0, there should be 20 MB available for custom sysmodules.
        On the bright side, on <20.0.0/AMS 1.9.0, I guess there will be 50 MB available for custom sysmodules now?
    * totk mods will lose the ability to...put every file in the romfs on sd card. There will be some unknown maximum filecount for totk mods.
        On the bright side, implementing the transient memory stealing should improve compatibility for some mods which strictly add files?
2025-05-09 12:10:10 -07:00
Michael Scire
6a75ad3493 erpt: initial support (incomplete) for 20.0.0 2025-05-09 12:10:09 -07:00
Michael Scire
af330433be ldr/pm: update for 20.0.0 abi changes 2025-05-09 12:10:09 -07:00
Michael Scire
b40d497e56 strat: update for fsp-ldr 20.0.0 changes 2025-05-09 12:10:09 -07:00
Michael Scire
b6ea249224 ncm: update to implement new ContentMetaDatabase function for 20.0.0 2025-05-09 12:10:08 -07:00
Michael Scire
c04caeec8f fusee/exo/ams: update with new keydata/version enums 2025-05-09 12:10:02 -07:00
Michael Scire
437ef0004a ams: various fixes to support booting debug configuration 2025-05-09 12:10:02 -07:00
Michael Scire
a6ebdbf3af fs: fix uninit warnings on windows localfilesystem 2025-05-09 12:10:00 -07:00
Michael Scire
e590e1adc5 strat: ldr::PlatformId -> ncm::ContentMetaPlatform 2025-05-09 12:09:59 -07:00
Michael Scire
ad6124a39d ldr: ProgramInfo is 0x410 now, and fix debug flags for hbl 2024-10-15 21:51:42 -07:00
Michael Scire
b70e367745 kern/ldr: add support for --x executables 2024-10-15 21:51:39 -07:00
Michael Scire
dc3bb3fde7 fusee/exo/ams: update with new keydata/version enums 2024-10-15 21:51:33 -07:00
Michael Scire
5a92c368c2 ams: build with -std=gnu++23 2024-06-05 09:22:26 -07:00
Michael Scire
9dc1479dee loader: update to reflect latest 18.0.0 changes
well, this sure is late, whoops
2024-06-05 09:22:26 -07:00
Michael Scire
8b85add711 spl: add support for new spl:es command 33 2024-03-29 02:55:09 -07:00
Michael Scire
3cb06f04c2 erpt: actually support non-sequential ids, nintendo why 2024-03-29 02:55:08 -07:00
Michael Scire
60e3c8a4cc kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-29 02:55:02 -07:00
Michael Scire
18f07b30e5 fusee/exo/ams: update with new keydata/version enums 2024-03-29 02:55:00 -07:00
Michael Scire
a55e74aec3 fssrv: fix dumb assert error 2024-03-29 02:54:58 -07:00
Michael Scire
e49916968c strat: fix nx_debug build target 2024-03-29 02:54:57 -07:00
Michael Scire
0da455a186 loader/ro: abort if patching would go out of bounds 2024-03-29 02:54:54 -07:00
Michael Scire
43b8461b5f kern/svc: fix query/insecure names 2023-11-16 16:25:26 -07:00
Michael Scire
8fe4159ca2 erpt: add remaining SubmitFsInfo helpers 2023-10-27 16:22:10 -07:00
Michael Scire
2dd93851d9 erpt: SubmitFileSystemProxyErrorInfo 2023-10-27 16:22:09 -07:00
Michael Scire
04ba43ff98 erpt: GetMmcErrorInfo, GetSdCard*Info 2023-10-27 16:22:09 -07:00
Michael Scire
f67c400289 erpt: begin SubmitFsinfo (SubmitMmcDetailInfo) 2023-10-27 16:22:09 -07:00
Michael Scire
71e35e4880 jpegdec: fix abort check on output width 2023-10-27 16:22:08 -07:00
Michael Scire
166c49c893 jpegdec: update to reflect 17.0.0 changes 2023-10-27 16:22:08 -07:00
Michael Scire
44809d30cb pm: adjust resource limit function names 2023-10-27 16:22:07 -07:00
Michael Scire
944ff3d5f6 ncm: fix two comments 2023-10-16 12:30:44 -07:00
Michael Scire
2125f3c404 ncm: better detect + fix 17 brick after-the-fact
This adds detection for missing-save or empty-save, and rebuilds in either case.
2023-10-16 12:30:44 -07:00
Liam
8d495c256e fs: add missing stub for GetProgramId 2023-10-16 12:30:44 -07:00
Michael Scire
5d5699a7e8 ncm: work around change in Nintendo save handling behavior
Static save files do not require an entry in the save data indexer to mount.
Prior to 17.0.0, save data files were considered static if userid was 0.
In 17.0.0+, only 8000000000000000 is static.

However, some users using cfw do not have an entry for 8000000000000120 in the indexer,
for various reasons (but mostly manual nand-restore, I think). Thus, on boot of 17.0.0+,
FS will say 8000000000000120 is not present (not in indexer), and NCM will create it anew.

The 8000000000000120 save will then be empty, and then the firmware can't boot.

To workaround this, logic has been re-enabled on 17.0.0+ for building the content meta database.
Thus, if the user encounters this error, the 8000000000000120 save will be emptied, but then
it will be automatically reconstructed, fixing the problem.
2023-10-12 09:22:32 -07:00
Michael Scire
338d7ce940 bpc.mitm/exo: support pmic reboot/shutdown on mariko (thanks @CTCaer) 2023-10-12 09:22:32 -07:00
Michael Scire
77ae1814ff erpt: remove deprecated fields, they didn't actually change IDs, just the mapping between id and name table index 2023-10-12 09:22:32 -07:00
Michael Scire
054eeddc0c erpt: Add basic (TODO-impl post-prerelease) support for 17.0.0 changes 2023-10-12 09:22:30 -07:00
Michael Scire
ee56715f3f fs: update OpenCodeFileSystem abi for 17.0.0 2023-10-12 09:22:30 -07:00
Michael Scire
c9a576e990 ncm: update for new 17.0.0 apis 2023-10-12 09:22:29 -07:00
Michael Scire
38cc50294b exo/spl: Add new EsCommonKeyType 2023-10-12 09:22:29 -07:00
Liam
540ca1351a dmnt.gen2: enable attach to arbitrary program id 2023-10-12 09:22:20 -07:00
Michael Scire
ea17b60da6 fssystem: fix typo error in BucketTree::Visitor::MoveNext 2023-08-21 17:26:50 -07:00
Liam
05852b0ffd libstrat: comment fixes for fssystem 2023-08-21 17:26:50 -07:00
Michael Scire
450218773f libstrat: fix more minor style issues pointed out by Pharynx 2023-08-21 17:26:49 -07:00
Michael Scire
390356cd9e mitm: fix errant include on non-hos 2023-08-21 17:26:49 -07:00
SciresM
4e7ae82b38 romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122)
* fs.mitm: skeleton the use of special allocation in romfs build

* pm: add api for ams.mitm to steal application memory

* pm/mitm: okay, that api won't work, try a different one

* romfs: revert memory usage increases; we'll handle torture games case-by-case.

* pm/romfs: first (broken?) pass at dynamic heap.

I cannot wait to figure out all the ways this is wrong.

* Release the dynamic heap a little more eagerly

* romfs: animal crossing is also not a nice game

* romfs: fix issues in close-during-build

* romfs: zelda is a blight upon this earth
2023-05-14 03:16:42 -07:00
Michael Scire
5d883f22c8 ams: fix compilation with gcc 13 2023-05-08 18:06:07 -07:00
Michael Scire
099982f909 windows: add brave new mingw compat hook for gcc 12.2.0+ 2023-03-13 17:17:06 -07:00
Michael Scire
51e932c88f os: add UnsafeMemory apis 2023-03-13 17:17:04 -07:00
Michael Scire
6cb324a89c erpt: update server code for 16.0.0 logic changes 2023-03-13 17:17:03 -07:00