PavelBARABANOV
58968bd127
[core] Support block-compressed NSZ and XCZ ( #4552 )
...
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions ).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md ).
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md ) to the best of my ability.
-------------------
- Add NCZBLOCK (nsz -B / .xcz) reader: each read decodes only the covered blocks and re-encrypts CTR sections, no disk output.
- Allow installing solid .nsz to NAND via DecompressNCZForInstall (lazy, incremental decode with frontier, O(n) instead of O(n^2)).
- Accept BKTR updates with thousands of sections (MaxSectionCount = 0x10000).
- Wire .nsz/.xcz into loader, registered cache, scanner, and NAND install (content_manager.h), and reject solid NCZ from the game list.
- Bump the pinned zstd to 33618c8 in cpmfile.json, which includes the upstream AArch64 revert ([33618c89](https://github.com/facebook/zstd/commit/33618c89e511637f8a6ef955b3501766d71feb53 )) for a ZSTD_decodeSequence branch optimization that could corrupt data on ARM64; without it, solid NCZ decoding on Android fails with "Data corruption detected".
NCZ format and CTR counter semantics follow the reference nsz tool and its
Rust port:
- https://github.com/nicoboss/nsz (Decompressor.py, BlockDecompressorReader.py)
- https://docs.rs/nsz-rs/0.3.0/src/nsz_rs/decompress.rs.html
The last-block edge case (decompressed size is an exact multiple of block
size) is handled as described in https://github.com/nicoboss/nsz/issues/210
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4552
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
2026-10-26 17:23:18 +01:00
Maufeat
54cd5fb8eb
[core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay ( #4238 )
...
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions ).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md )
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md ) to the best of my ability.
-------------------
- Dynamic shader cache reloading capability for qlaunch
- Multi-process improvements (thanks to @frank1734), instead of just using the main application we now respect caller process (also did it for HID devices while I was at it)
- Layer stack masks & shared buffer screenshot for video core, added different masks (screenshot, recording, etc.) this was discovered as an issue due to how in qlaunch the transition was not right between applications. May not be perfect but also fixes screenshots while using qlaunch
- Reworked overlay display management (input and visibility) - instead of random numbers as I've previously did, I decided to add an AppletZIndex enum for better readability. Also split capability of input by touch and gamepad.
- etc.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4238
Reviewed-by: Samuel <lizzie@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
2026-08-29 01:04:02 +02:00
lizzie
3875093c70
[hle] Fixes for nxident, nxmp and nxplay, remove hbl.nsp workarounds ( #3996 )
...
adds `gpio` and `i2c` services
implements `IApplicationFunctions::SetMediaPlaybackStateForApplicatio`
stubs `IBtmSystemCore::GetDiscoveredAudioDevice`
implements `nvhost_ctrl_gpu::PmuGetGpuLoad` IOCTL (0x20)
implements `PSM::GetBatteryAgePercentage`, `PSM::GetBatteryVoltageState` and `PSM::GetBatteryChargeInfoFields`
implements `ISystemSettingsServer::GetConsoleInformationUploadFlag`, `ISystemSettingsServer::SetConsoleInformationUploadFlag`, `ISystemSettingsServer::GetAutomaticApplicationDownloadFlag`, `ISystemSettingsServer::SetAutomaticApplicationDownloadFlag`, `&ISystemSettingsServer::GetUsb30EnableFlag`, `ISystemSettingsServer::SetUsb30EnableFlag`
removes `hbl.nsp` specific workarounds
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3996
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-06-12 23:48:24 +02:00
xbzk
7f5de6bcd6
[android/fs] external content loader + nca/xci patches ( #3596 )
...
Foreword: WHY DON'T EVERYBODY USE ONE FOLDER FOR EACH GAME+CONTENTS? AIN'T THIS THE FORMAT GAMES COME WHEN YOU BUE THEM? DO YOU LIVE WITH ALL YOUR FRIENDS AND HAVE A 2ND HOUSE FOR ALL THE CHILDREN?
Nice, i feel better now.
This feat extends Maufeat's work on external content loading. It harmonically additions:
"...also, if in each game folder X, you find a folder Y, and in this folder Y you detect ONLY a single game, then mount all external content for that game found in that folder Y and its subfolders."
Permanent (not toggleable). External Content folders are supported equally.
Also:
-Reworked several routines for preserving single source of truth between android and other systems;
-Fixed the annoying unknown format error for content files, by providing proper format detection.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3596
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: Lizzie <lizzie@eden-emu.dev >
Co-authored-by: xbzk <xbzk@eden-emu.dev >
Co-committed-by: xbzk <xbzk@eden-emu.dev >
2026-03-04 22:51:35 +01:00
Liam
9528c40b1e
loader: also register fs process for raw exefs partition
2024-01-23 00:01:38 -05:00
Liam
2397093e4f
fsp-srv: use program registry for SetCurrentProcess
2024-01-11 11:28:52 -05:00
Liam
efef3d8487
core: improve debug workflow
2023-09-14 16:44:15 -04:00
Liam
76671fdede
core: implement basic integrity verification
2023-09-06 16:49:27 -04:00
Liam
5e3139e7c6
vfs: expand support for NCA reading
2023-08-15 17:47:25 -04:00
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
ameerj
d27abf5546
core: Remove unused includes
2021-11-03 21:42:57 -04:00
Feng Chen
77f209e391
file_sys: Support load game collection ( #6582 )
...
Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
2021-07-20 01:10:05 -04:00
bunnei
ad048de3d6
hle: kernel: Rename Process to KProcess.
2021-05-05 16:40:52 -07:00
Lioncash
41c7ce33b6
loader: Resolve instances of variable shadowing
...
Eliminates variable shadowing cases across all the loaders to bring us
closer to enabling variable shadowing as an error in core.
2021-04-27 12:48:15 -04:00
bunnei
9f8d7748d9
core: loader: Implement support for loading indexed programs.
2020-11-24 15:16:24 -08:00
Lioncash
b4b63c878f
patch_manager: Remove usages of the global system instance
...
With this, only 19 usages of the global system instance remain within
the core library.
We're almost there.
2020-11-18 09:36:48 -05:00
Lioncash
bcb796ee92
core/loader: Remove dependencies on the global system instance
...
Now all that remains is:
18 instances in file_sys code
14 instances in GDB stub code (this can be tossed wholesale)
4 instances in HLE code
2 instances in settings code.
2020-09-16 08:46:59 -04:00
Zach Hilman
c3ad37b707
yuzu: Port old usages of Filesystem namespace to FilesystemController
2019-09-21 16:43:10 -04:00
David
95f4d78e87
Merge pull request #2576 from DarkLordZach/nsp-fix-1
...
nsp: Fix various errors with loading and processing of extracted NSPs
2019-09-21 20:05:24 +10:00
Bakugo
81c1c139fe
file_sys: Rename other ContentRecordType members
2019-07-02 00:57:23 +01:00
Zach Hilman
e62e715ac2
nsp: Correct status codes for extracted NSPs
...
Avoids all extracted NSPs being marked as error file type because they don't have program NCAs.
2019-06-10 00:21:41 -04:00
Zach Hilman
5231fb95e6
nsp: Use title ID from NPDM metadata for extracted type NSPs
...
Avoids 0 being used as title ID for all extracted NSPs.
2019-06-10 00:19:23 -04:00
Zach Hilman
227430a157
loader: Move NSO module tracking to AppLoader
...
Also cleanup of general stuff
2019-05-26 11:40:46 -04:00
Lioncash
e49ee38660
core/core: Move process execution start to System's Load()
...
This gives us significantly more control over where in the
initialization process we start execution of the main process.
Previously we were running the main process before the CPU or GPU
threads were initialized (not good). This amends execution to start
after all of our threads are properly set up.
2019-04-11 22:11:41 -04:00
Zach Hilman
d8094073a2
loader: Propagate NCA logo section to ReadBanner and ReadLogo
2019-01-15 16:01:04 -05:00
Zach Hilman
af0bf947d7
loader: Add accessor for Manual RomFS
2018-12-28 15:32:39 -05:00
Zach Hilman
8916266110
loader: Add accessor for game control data
2018-12-27 00:16:55 -05:00
Zach Hilman
51bfd3864f
loader: Add support for reading the name of game's developer
2018-12-03 17:21:25 -05:00
Zach Hilman
bd78dc0c29
loader/nsp: Move secondary loader initialization to constructor
...
Prevents nullptr bug when trying to dump the RomFS of an NSP resulting from secondary_loader not being initialized.
2018-10-27 10:16:29 -04:00
Lioncash
4473ebd41d
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
...
Neither of these functions require the use of shared ownership of the
returned pointer. This makes it more difficult to create reference
cycles with, and makes the interface more generic, as std::shared_ptr
instances can be created from a std::unique_ptr, but the vice-versa
isn't possible. This also alters relevant functions to take NCA
arguments by const reference rather than a const reference to a
std::shared_ptr. These functions don't alter the ownership of the memory
used by the NCA instance, so we can make the interface more generic by
not assuming anything about the type of smart pointer the NCA is
contained within and make it the caller's responsibility to ensure the
supplied NCA is valid.
2018-10-09 14:38:03 -04:00
Zach Hilman
598ca547b2
romfs_factory: Extract packed update setter to new function
2018-10-05 08:53:51 -04:00
Zach Hilman
bbbac65dc4
loader: Add getter for packed update
...
Reads the update included with the game if it has one and adds the new ErrorNoPackedUpdate status.
2018-10-05 08:46:31 -04:00
Zach Hilman
9488564c1e
loader: Add ReadRomFSIVFCOffset to NSP, XCI, and NAX loaders
...
Fixes errors with certain updates
2018-10-05 08:46:31 -04:00
Lioncash
06b47d8e6f
loader: Make the Load() function take a process as a regular reference, not a SharedPtr
...
A process should never require being reference counted in this
situation. If the handle to a process is freed before this function is
called, it's definitely a bug with our lifetime management, so we can
put the requirement in place for the API that the process must be a
valid instance.
2018-09-29 16:00:03 -04:00
Zach Hilman
14a18fd7ae
patch_manager: Centralize Control-type NCA parsing
2018-09-04 16:25:10 -04:00
Zach Hilman
44448809d5
main: Only show DRD deprecation warning once
2018-09-04 14:44:48 -04:00
Zach Hilman
887ffb2512
nsp: Comply with style and performance guidelines
2018-09-04 14:29:19 -04:00
Zach Hilman
6d8efb4e2e
loader: Add AppLoader for NSP files
2018-09-04 14:27:33 -04:00