summaryrefslogtreecommitdiffstats
path: root/src/core/loader/loader.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* file_sys/content_archive: Detect compressed NCAs (#11047)Tobias2023-07-121-0/+2
|
* core/loader: remove ELF loaderLiam2022-08-011-1/+0
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | 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.
* general: Replace NonCopyable struct with equivalentsLioncash2022-02-021-1/+5
|
* file_sys: Support load game collection (#6582)Feng Chen2021-07-201-1/+12
| | | Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-1/+1
| | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* hle: kernel: Rename Process to KProcess.bunnei2021-05-061-2/+2
|
* loader: Resolve instances of variable shadowingLioncash2021-04-271-16/+41
| | | | | Eliminates variable shadowing cases across all the loaders to bring us closer to enabling variable shadowing as an error in core.
* main: Resolve error string not displayingLioncash2021-01-031-0/+1
| | | | | | | | | During the transition to make the error dialog translatable, I accidentally got rid of the conversion to ResultStatus, which prevented operator<< from being invoked during formatting. This adds a function to directly retrieve the result status string instead so that it displays again.
* core: loader: Implement support for loading indexed programs.bunnei2020-11-251-1/+3
|
* patch_manager: Remove usages of the global system instanceLioncash2020-11-181-3/+6
| | | | | | | With this, only 19 usages of the global system instance remain within the core library. We're almost there.
* core/loader: Remove dependencies on the global system instanceLioncash2020-09-161-1/+6
| | | | | | | | | 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.
* Merge pull request #2546 from DarkLordZach/kipsbunnei2019-06-211-0/+5
|\ | | | | loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
| * loader: Add recognition for KIP file typeZach Hilman2019-06-051-0/+1
| |
| * loader: Add KIP and INI file parser-specific errorsZach Hilman2019-06-051-0/+4
| |
* | Merge pull request #2482 from DarkLordZach/prepobunnei2019-06-211-0/+6
|\ \ | | | | | | core: Add detailed local reporting feature for development
| * | loader: Move NSO module tracking to AppLoaderZach Hilman2019-05-261-0/+6
| |/ | | | | Also cleanup of general stuff
* / core/loader: Remove LoadKernelSystemModeLioncash2019-05-291-11/+0
|/ | | | This is a hold-over from Citra and doesn't apply to yuzu.
* core/core: Move process execution start to System's Load()Lioncash2019-04-121-1/+7
| | | | | | | | | 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.
* loader: Propagate NCA logo section to ReadBanner and ReadLogoZach Hilman2019-01-151-0/+4
|
* loader: Add accessor for Manual RomFSZach Hilman2018-12-281-0/+9
|
* 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