summaryrefslogtreecommitdiff
path: root/src/core/loader (follow)
Commit message (Collapse)AuthorAgeFilesLines
* loader: Propagate NCA logo section to ReadBanner and ReadLogoGravatar Zach Hilman2019-01-159-0/+61
|
* web_browser: Add bounds checking to applet interfaceGravatar Zach Hilman2018-12-282-2/+0
|
* loader: Add accessor for Manual RomFSGravatar Zach Hilman2018-12-285-0/+30
|
* Merge pull request #1928 from lioncash/capsGravatar bunnei2018-12-273-2/+9
|\ | | | | kernel: Handle kernel capability descriptors
| * kernel/process: Hook up the process capability parser to the process itselfGravatar Lioncash2018-12-213-2/+9
| | | | | | | | | | While we're at it, we can also toss out the leftover capability parsing from Citra.
* | loader: Add accessor for game control dataGravatar Zach Hilman2018-12-275-9/+14
|/
* Merge pull request #1819 from DarkLordZach/disable-addonsGravatar bunnei2018-12-105-0/+26
|\ | | | | patch_manager: Add support for disabling patches
| * loader: Add support for reading the name of game's developerGravatar Zach Hilman2018-12-035-0/+26
| |
* | loaders: Make GetFileType() a const qualified member functionGravatar Lioncash2018-12-0510-10/+10
| | | | | | | | | | | | No implementations actually modify instance state (and it would be questionable to do that in the first place given the name), so we can make this a const member function.
* | loader/nso: Remove dependency on the System classGravatar Lioncash2018-12-023-8/+11
| | | | | | | | | | Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
* | loader/nro: Make the static LoadNro function internally linkedGravatar Lioncash2018-12-022-7/+5
| | | | | | | | | | This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed.
* | loader/nro: Remove dependency on the System classGravatar Lioncash2018-12-022-10/+13
|/ | | | | | Load() is already given the process instance as a parameter, so instead of coupling the class to the System class, we can just forward that parameter to LoadNro()
* Merge pull request #1620 from DarkLordZach/ldr-roGravatar bunnei2018-11-181-2/+5
|\ | | | | ldr_ro: Complete LDR:RO implementation
| * process: Make MirrorMemory take state to map new memory asGravatar Zach Hilman2018-11-151-2/+5
| | | | | | | | Credits to Subv
* | Merge pull request #1618 from DarkLordZach/dump-nsoGravatar bunnei2018-11-151-1/+1
|\ \ | |/ |/| patch_manager: Add support for dumping uncompressed NSOs
| * patch_manager: Add support for dumping decompressed NSOsGravatar Zach Hilman2018-10-291-1/+1
| | | | | | | | When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID.
* | Merge pull request #1608 from DarkLordZach/save-data-readerGravatar bunnei2018-11-131-0/+5
|\ \ | | | | | | [ns|fsp_srv]: Implement various functions to boot Checkpoint
| * | loader/nro: Call RegisterRomFS from LoadGravatar Zach Hilman2018-10-291-0/+5
| |/ | | | | | | Allows NRO homebrew to use the RomFS in the ASET section.
* / global: Use std::optional instead of boost::optional (#1578)Gravatar Frederic L2018-10-301-2/+3
|/ | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
* loader/nsp: Move secondary loader initialization to constructorGravatar Zach Hilman2018-10-271-17/+20
| | | | Prevents nullptr bug when trying to dump the RomFS of an NSP resulting from secondary_loader not being initialized.
* nro: Make LoadNro method accessible outside of apploader code.Gravatar bunnei2018-10-252-6/+18
|
* XCI: Add function for checking the existence of the program NCAGravatar Lioncash2018-10-161-2/+1
| | | | | | The only reason the getter existed was to check whether or not the program NCA was null. Instead, we can just provide a function to query for the existence of it, instead of exposing it entirely.
* nso: Return an optional address from LoadModuleGravatar Lioncash2018-10-155-16/+29
| | | | | If a malformed NSO is attempted to be loaded, we shouldn't continue onwards. We should be reporting an error and bailing out.
* nso: Make LoadModule take a VfsFile by const referenceGravatar Lioncash2018-10-143-11/+9
|
* nro: Make LoadNro take a VfsFile by const referenceGravatar Lioncash2018-10-142-6/+6
| | | | | | This function doesn't need to care about ownership semantics, so we can just pass it a reference to the file itself, rather than a std::shared_ptr alias.
* kernel/process: Make CodeSet a regular non-inherited objectGravatar Lioncash2018-10-123-43/+31
| | | | | | | | These only exist to ferry data into a Process instance and end up going out of scope quite early. Because of this, we can just make it a plain struct for holding things and just std::move it into the relevant function. There's no need to make this inherit from the kernel's Object type.
* patch_manager: Return a std::unique_ptr from ParseControlNCA() and ↵Gravatar Lioncash2018-10-094-4/+4
| | | | | | | | | | | | | | | | 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.
* nso/nro: Use default allocation size for arg_dataGravatar Zach Hilman2018-10-074-14/+20
|
* cmd: Support passing game arguments from command lineGravatar Zach Hilman2018-10-072-2/+2
| | | | Uses -p (--program) and following string as args.
* nso/nro: Add NSO arguments structure to data sectionGravatar Zach Hilman2018-10-074-3/+38
| | | | Only added if arguments string is non-empty and a pass is requested by loader.
* romfs_factory: Extract packed update setter to new functionGravatar Zach Hilman2018-10-052-0/+11
|
* loader: Add getter for packed updateGravatar Zach Hilman2018-10-056-3/+58
| | | | Reads the update included with the game if it has one and adds the new ErrorNoPackedUpdate status.
* loader: Add ReadRomFSIVFCOffset to NSP, XCI, and NAX loadersGravatar Zach Hilman2018-10-056-6/+20
| | | | Fixes errors with certain updates
* nso: Optimize loading of IPS patchesGravatar Zach Hilman2018-10-023-6/+5
| | | | Avoid resource-heavy classes and remove quasi-duplicated code.
* deconstructed_rom_directory: Force NSO loader to patch NSOsGravatar Zach Hilman2018-10-011-1/+3
|
* nso: Add framework to support patching of uncompressed NSOsGravatar Zach Hilman2018-10-012-2/+17
|
* nso: Replace NSOHeader padding bytes with build IDGravatar Zach Hilman2018-10-011-2/+1
|
* kernel/process: Make data member variables privateGravatar Lioncash2018-09-304-4/+4
| | | | | | | Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code.
* loader: Make the Load() function take a process as a regular reference, not ↵Gravatar Lioncash2018-09-2917-41/+27
| | | | | | | | | | 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.
* memory: Dehardcode the use of fixed memory range constantsGravatar Lioncash2018-09-244-22/+25
| | | | | | | | The locations of these can actually vary depending on the address space layout, so we shouldn't be using these when determining where to map memory or be using them as offsets for calculations. This keeps all the memory ranges flexible and malleable based off of the virtual memory manager instance state.
* process/vm_manager: Amend API to allow reading parameters from NPDM metadataGravatar Lioncash2018-09-244-25/+4
| | | | | | | | | Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this.
* Added support for uncompressed NSOs (#1374)Gravatar David2018-09-211-3/+12
| | | | | | * Added support for uncompressed NSOs * Moved compressed section check to NsoHeader
* nax: Avoid re-parsing NAX data with GetFileType()Gravatar Lioncash2018-09-192-13/+19
| | | | | | | | | An instance of the NAX apploader already has an existing NAX instance in memory. Calling directly into IdentifyType() directly would re-parse the whole file again into yet another NAX instance, only to toss it away again. This gets rid of unnecessary/redundant file parsing and allocations.
* nax: Avoid unnecessary calls to AsNCA() in IdentifyType()Gravatar Lioncash2018-09-191-4/+8
| | | | | | | | | AsNCA() allocates an NCA instance every time it's called. In the current manner it's used, it's quite inefficient as it's making a redundant allocation. We can just amend the order of the conditionals to make it easier to just call it once.
* Port #4182 from Citra: "Prefix all size_t with std::"Gravatar fearlessTobi2018-09-152-2/+2
|
* kernel/thread: Include thread-related enums within the kernel namespaceGravatar Lioncash2018-09-132-2/+3
| | | | | | Previously, these were sitting outside of the Kernel namespace, which doesn't really make sense, given they're related to the Thread class which is within the Kernel namespace.
* bktr: Fix bucket overlap errorGravatar Zach Hilman2018-09-041-2/+2
|
* drd: Parse title ID from program metadataGravatar Zach Hilman2018-09-041-1/+8
|
* patch_manager: Centralize Control-type NCA parsingGravatar Zach Hilman2018-09-042-33/+8
|
* game_list: Fix version display on non-NAND titlesGravatar Zach Hilman2018-09-041-1/+10
|