summaryrefslogtreecommitdiffstats
path: root/src/core/loader/loader.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1928 from lioncash/capsbunnei2018-12-271-0/+2
|\ | | | | kernel: Handle kernel capability descriptors
| * kernel/process: Hook up the process capability parser to the process itselfLioncash2018-12-211-0/+2
| | | | | | | | | | While we're at it, we can also toss out the leftover capability parsing from Citra.
* | loader: Add accessor for game control dataZach Hilman2018-12-271-3/+7
|/
* Merge pull request #1819 from DarkLordZach/disable-addonsbunnei2018-12-111-0/+10
|\ | | | | patch_manager: Add support for disabling patches
| * loader: Add support for reading the name of game's developerZach Hilman2018-12-031-0/+10
| |
* | loaders: Make GetFileType() a const qualified member functionLioncash2018-12-051-1/+1
|/ | | | | | 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.
* global: Use std::optional instead of boost::optional (#1578)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
* nso: Return an optional address from LoadModuleLioncash2018-10-151-0/+1
| | | | | If a malformed NSO is attempted to be loaded, we shouldn't continue onwards. We should be reporting an error and bailing out.
* loader: Add getter for packed updateZach Hilman2018-10-051-2/+12
| | | | Reads the update included with the game if it has one and adds the new ErrorNoPackedUpdate status.
* loader: Make the Load() function take a process as a regular reference, not a SharedPtrLioncash2018-09-291-2/+1
| | | | | | | | 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.
* bktr: Implement IVFC offset shiftingZach Hilman2018-09-041-0/+9
| | | | Fixes base game read errors
* bktr: Fix missing includes and optimize styleZach Hilman2018-09-041-1/+1
|
* loader: Add BKTR-specific error messages and codesZach Hilman2018-09-041-6/+14
|
* loader: Add NSP file type and NSP-specific errorsZach Hilman2018-09-041-0/+2
|
* vfs_real: Forward declare IOFileLioncash2018-09-021-4/+2
| | | | | | Eliminates the need to rebuild some source files if the file_util header ever changes. This also uncovered some indirect inclusions, which have also been fixed.
* loader: Add new NAX-specific errors and messagesZach Hilman2018-08-231-0/+13
|
* nax: Add AppLoader_NAX and update loader to support itZach Hilman2018-08-231-0/+1
|
* loader: Make ResultStatus directly compatible with fmtLioncash2018-08-151-2/+2
| | | | | | | | | We can make the enum class type compatible with fmt by providing an overload of operator<<. While we're at it, perform proper bounds checking. If something exceeds the array, it should be a hard fail, because it's, without a doubt, a programmer error in this case.
* loader: Remove address mapping remnants from citraLioncash2018-08-151-7/+0
| | | | These mappings are leftovers from citra and don't apply to the Switch.
* made ResultStatus a u16David Marcec2018-08-121-1/+1
|
* loader: Add more descriptive errorsZach Hilman2018-08-101-9/+37
| | | Full list of new errors and descriptions in core/loader/loader.h
* loader: Remove unused IdentifyFile overloadZach Hilman2018-08-091-8/+0
|
* Avoid parsing RomFS to directory in NCAZach Hilman2018-08-071-1/+1
|
* Merge pull request #849 from DarkLordZach/xcibunnei2018-08-041-1/+3
|\ | | | | XCI and Encrypted NCA Support
| * Use more descriptive error codes and messagesZach Hilman2018-08-011-1/+2
| |
| * Remove files that are not usedZach Hilman2018-08-011-0/+1
| |
* | kernel: Move object class to its own source filesLioncash2018-08-021-1/+1
|/ | | | | | General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code.
* core: Make converting constructors explicit where applicableLioncash2018-07-241-1/+1
| | | | | Avoids unwanted implicit conversions. Thankfully, given the large amount of cleanup in past PRs, only this tiny amount is left over to cover.
* loader: Amend Doxygen commentsLioncash2018-07-191-3/+3
| | | | These weren't adjusted when VFS was introduced
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-191-18/+12
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* Revert "Virtual Filesystem (#597)"bunnei2018-07-081-12/+18
| | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Virtual Filesystem (#597)Zach Hilman2018-07-061-18/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename
* Add support for decrypted NCA files (#567)Zach Hilman2018-06-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Start to add NCA support in loader * More nca stuff * More changes to nca.cpp * Now identifies decrypted NCA cont. * Game list fixes and more structs and stuff * More updates to Nca class * Now reads ExeFs (i think) * ACTUALLY LOADS EXEFS! * RomFS loads and games execute * Cleanup and Finalize * plumbing, cleanup and testing * fix some things that i didnt think of before * Preliminary Review Changes * Review changes for bunnei and subv
* core, main.h: Abort on 32Bit ROMs (#309)N00byKing2018-04-061-0/+1
| | | | | | * core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar
* loader: Clean up ctors and includes.bunnei2018-01-201-4/+1
|
* loader: Add DeconstructedRomDirectory for game dumps.bunnei2018-01-201-0/+1
|
* loader: Refactor to also pass filepath into IdentifyType.bunnei2018-01-201-1/+2
|
* core: Refactor MakeMagic usage and remove dead code.bunnei2017-10-151-4/+0
|
* Remove lots more 3DS-specific code.bunnei2017-10-131-4/+0
|
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-101-5/+30
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
| * Loaders: Don't automatically set the current process every time we load an application.Subv2017-09-271-5/+8
| | | | | | | | The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
| * Loader/NCCH: Add support for loading application updates (#2927)Max Thomas2017-09-251-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * loader/ncch: split NCCH parsing into its own file * loader/ncch: add support for loading update NCCHs from the SD card * loader/ncch: fix formatting * file_sys/ncch_container: Return a value for OpenFile * loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch * file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked * file_sys/ncch_container: pass filepath as a const reference
| * loader: Expose program title.bunnei2017-08-041-0/+9
| |
* | loader: Add support for NRO, as well as various fixes and shared linker.bunnei2017-10-061-0/+1
| |
* | loader: Add support for loading an NSO.bunnei2017-09-301-0/+1
|/
* Addressed Bunnei's review comments, and made some other tweaks:TheKoopaKingdom2017-06-031-1/+1
| | | | | - Deleted GetStatus() because it wasn't used anywhere outside of Core::System. - Fixed design flaw where the message bar status could be set despite the game being stopped.
* Created a whitelist of system archives to prevent false positives creating dialogs.TheKoopaKingdom2017-06-031-3/+1
|
* Made some changes from review comments:TheKoopaKingdom2017-06-031-5/+6
| | | | | | | | - Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review). - Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore. - Made dialog messages more clear. - Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic. - Cleaned up some other stuff.
* Fixed encrypted ROM error messages.TheKoopaKingdom2017-06-031-3/+5
|
* Doxygen: Amend minor issues (#2593)Mat M2017-02-271-1/+1
| | | | | | | | | Corrects a few issues with regards to Doxygen documentation, for example: - Incorrect parameter referencing. - Missing @param tags. - Typos in @param tags. and a few minor other issues.
* loader: Implement ReadProgramIdMerryMage2016-12-151-0/+9
|
* Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv2016-11-281-6/+7
| | | | | | | 3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
* Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv2016-11-201-0/+11
| | | | | | | 3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-1/+0
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-4/+2
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-4/+7
|
* Loader: Split SMDH into its own header and import helpers from QGameListEmmanuel Gil Peyrot2016-05-211-47/+0
| | | | Also rewrite Qt wrappers to use those.
* CitraQt: Simplify the game list loader codeEmmanuel Gil Peyrot2016-05-211-11/+1
|
* Loader: Add a GetFileType method to get the type of a loaded fileEmmanuel Gil Peyrot2016-05-211-0/+6
|
* Loader, Frontends: Refactor loader creation and game loadingEmmanuel Gil Peyrot2016-05-211-3/+3
| | | | | This allows frontends to keep a single loader and use it multiple times e.g. for code loading and SMDH parsing.
* add icon & title to game listwwylele2016-05-041-0/+57
|
* loader: Make MakeMagic constexprLioncash2016-03-211-1/+1
|
* Loader: Implement encryption checkGareth Poole2015-10-111-0/+1
|
* Expose loader helper functions for identifying files.archshift2015-10-011-0/+28
|
* Loader: Remove unnecessary pointer indirection to IOFileYuri Kunde Schlesner2015-07-141-8/+8
|
* FS: Stream RomFS from file instead of loading all of it to memorycondut2015-07-141-2/+5
|
* CitraQt: Cleanup includes.Emmanuel Gil Peyrot2015-06-281-1/+6
|
* Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-281-0/+1
|
* Loader: Remove .bin file supportYuri Kunde Schlesner2015-05-091-1/+0
| | | | | It is of very limited practical utility currently, and will soon be impossible to support due to more accurate memory map emulation.
* Process: Rename StaticAddressMapping => AddressMappingYuri Kunde Schlesner2015-05-091-1/+1
|
* Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner2015-05-091-0/+8
|
* Common: Remove common.hYuri Kunde Schlesner2015-05-071-1/+1
|
* core: Fix some warnings on OSXLioncash2015-02-031-1/+1
|
* Loader: Guess filetype from the magic, or fallback to the extension.Emmanuel Gil Peyrot2015-01-151-7/+4
|
* Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times.Emmanuel Gil Peyrot2015-01-151-1/+6
|
* License changepurpasmart962014-12-211-1/+1
|
* Loader: Add 3DSX supportichfly2014-12-081-0/+1
|
* Loader: Added support for loading raw BIN executables.bunnei2014-08-281-0/+1
| | | | | | - Useful for debugging homebrew Qt: Updated GUI to support loading .bin files.
* NCCH: Updated ExeFS memory allocation to be safer.bunnei2014-07-051-0/+1
|
* Loader: Updated read methods to be constbunnei2014-07-051-5/+5
| | | | - Required "file" handle to be made local and explicitly opened/closed as needed
* Loader: Refactored interface such that data is no longer stored by loader.bunnei2014-06-271-33/+21
| | | | NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’.
* Loader: Refactored loading functions to only read data from binary if called.bunnei2014-06-251-8/+8
| | | | NCCH: Updated LoadExec to use Memory::WriteBlock function to load binary code.
* Loader: Refactored use of const.bunnei2014-06-251-3/+3
|
* NCCH: Fixes reduce unnecessary logging and load logo/banner/etc. sections correctly.bunnei2014-06-251-0/+1
| | | | Loader: Added ErrorNotUsed ReturnStatus type to specify when something is not used.
* Loader: Implemented AppLoader interface for abstracting application loading.bunnei2014-06-251-12/+91
| | | | | | | | | | | | | | | | | | - Various cleanups/refactorings to Loader, ELF, and NCCH modules. - Added AppLoader interface to ELF and NCCH. - Updated Qt/GLFW frontends to check AppLoader ResultStatus. NCCH: Removed extra qualification typos. Loader: Removed unnecessary #include's. NCCH: Improved readability of memcmp statements. NCCH: Added missing space. Elf: Removed unnecessary usage of unique_ptr. Loader: Removed unnecessary usage of unique_ptr.
* Loader: Cleaned up and removed unused code, refactored ELF namespace.bunnei2014-06-171-14/+1
|
* Loader: Moved elf and loader modules to a "loader" subdirectory.bunnei2014-06-171-0/+54