summaryrefslogtreecommitdiffstats
path: root/src/core/loader (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Loaders: Don't automatically set the current process every time we load an application.Subv2017-09-277-35/+36
| | | | 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.
* HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently.Subv2017-09-252-4/+2
| | | | | | | | The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session. When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc). 3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time.
* Merge pull request #2952 from MerryMage/page-tablesB3n302017-09-253-3/+3
|\ | | | | Switchable Page Tables
| * memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage2017-09-243-3/+3
| | | | | | | | Don't expose Memory::current_page_table as a global.
* | Loader/NCCH: Add support for loading application updates (#2927)Max Thomas2017-09-253-434/+82
|/ | | | | | | | | | | | | | | | * 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
* Kernel/Memory: Give each Process its own page table.Subv2017-09-103-0/+3
| | | | The loader is in charge of setting the newly created process's page table as the main one during the loading process.
* Added missing parts in libnetwork (#2838)B3n302017-08-191-0/+8
| | | | | * Network: Set and send the game information over enet Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
* loader: Expose program title.bunnei2017-08-043-12/+31
|
* telemetry: Log performance, configuration, and system data.bunnei2017-07-181-2/+4
|
* Addressed Bunnei's review comments, and made some other tweaks:TheKoopaKingdom2017-06-032-2/+2
| | | | | - 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-032-4/+2
|
* Made some changes from review comments:TheKoopaKingdom2017-06-033-15/+12
| | | | | | | | - 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-033-9/+19
|
* telemetry: Log a few simple data fields throughout core.bunnei2017-05-251-0/+3
|
* Remove ability to load symbol mapsYuri Kunde Schlesner2017-05-081-32/+0
| | | | | This was now mostly unused except by thread creation, which used a symbol of the entrypoint, if available, to name the thread.
* loader/ncch: less verbose log for loading game list. only log program ID when bootingwwylele2017-03-081-3/+6
|
* loader: lower file name logging levelwwylele2017-03-081-1/+1
|
* 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: use self NCCH archivewwylele2017-02-132-6/+6
|
* loader: Add support for 3DSX special relocation types, fixes citra-emu/citra#2449Thomas Farr2017-01-181-9/+25
| | | | As per devkitPro/3dstools@47bea18
* Fix some warnings (#2399)Jonathan Hao2017-01-042-2/+2
|
* Merge pull request #2240 from wwylele/auto-regionbunnei2016-12-302-0/+25
|\ | | | | Config: auto-select region and language
| * Config: auto-select region and languagewwylele2016-12-072-0/+25
| |
* | loader: Remove duplicate docstrings.bunnei2016-12-223-56/+0
| |
* | loader: Implement ReadProgramIdMerryMage2016-12-153-0/+28
|/
* Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv2016-11-283-16/+17
| | | | | | | 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-203-0/+27
| | | | | | | 3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
* Fix typosRicardo de Almeida Gonzaga2016-10-202-2/+2
|
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-214-4/+4
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-2110-21/+4
| | | | | | | 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-194-10/+5
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-189-208/+249
|
* Loader: Split SMDH into its own header and import helpers from QGameListEmmanuel Gil Peyrot2016-05-213-47/+136
| | | | Also rewrite Qt wrappers to use those.
* CitraQt: Simplify the game list loader codeEmmanuel Gil Peyrot2016-05-212-14/+12
|
* Loader: Add a GetFileType method to get the type of a loaded fileEmmanuel Gil Peyrot2016-05-214-0/+30
|
* Loader, Frontends: Refactor loader creation and game loadingEmmanuel Gil Peyrot2016-05-214-47/+21
| | | | | This allows frontends to keep a single loader and use it multiple times e.g. for code loading and SMDH parsing.
* Merge pull request #1766 from Subv/log_cpubunnei2016-05-081-0/+3
|\ | | | | Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1)
| * Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).Subv2016-05-071-0/+3
| | | | | | | | We do not currently implement any cores other than the AppCore (Core 0).
* | fixup simple type conversions where possibleAlexander Laties2016-05-071-3/+3
| |
* | fix:return proper errorwwylele2016-05-061-2/+3
| |
* | add icon & title to game listwwylele2016-05-046-23/+149
| |
* | ncch: Use correct format specifier (for long long uint)Sam Spilsbury2016-04-231-1/+1
|/
* core: Clean out some unnecessary header includesLioncash2016-04-161-5/+1
|
* ncch:only decompress .code sectionwwylele2016-04-141-2/+2
|
* Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment2016-04-062-4/+2
|\ | | | | Common: Remove Common::make_unique, use std::make_unique
| * Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-052-4/+2
| |
* | loader: Make MakeMagic constexprLioncash2016-03-211-1/+1
|/
* Merge pull request #1344 from LittleWhite-tb/error-outputbunnei2016-03-091-3/+3
|\ | | | | Output errors in GUI
| * Improve error report from Init() functionsLittleWhite2016-03-081-1/+0
| | | | | | | | Add error popup when citra initialization failed
| * Display errors in GUI when loading ROM failedLittleWhite2016-03-031-2/+3
| |
* | Loader/NCCH: Log the program ID during loadingYuri Kunde Schlesner2016-03-051-1/+2
|/ | | | | This is useful for all sorts of things, but mainly to identify save folders more easily.
* elf: Don't cast away constLioncash2016-01-251-3/+3
|
* Merge pull request #1199 from Gareth422/encryption-checkbunnei2015-10-203-20/+25
|\ | | | | Loader: Implement NCCH encryption check
| * Loader: Change NCCH header types to be explicitly little-endianGareth Poole2015-10-112-18/+17
| |
| * Loader: Implement encryption checkGareth Poole2015-10-113-2/+8
| |
* | CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.Emmanuel Gil Peyrot2015-10-091-2/+2
|/ | | | The LOG_* function itself already appends one.
* Merge pull request #1095 from archshift/game-listbunnei2015-10-022-13/+41
|\ | | | | Initial implementation of a game list
| * Expose loader helper functions for identifying files.archshift2015-10-012-13/+41
| |
* | Implement 3dsx RomFSCruel2015-09-213-3/+61
|/
* General: Fix up doxygen commentsLioncash2015-09-102-2/+4
|
* Properly indicate that CIA support is not implemented yetBenjamin Barenblat2015-08-151-0/+4
| | | | | Make `Loader::LoadFile` return an `ErrorNotImplemented` if you call it on a CIA file.
* Give CIA file type a nameBenjamin Barenblat2015-08-151-0/+2
| | | | | Make `GetFileTypeString` return ‘CIA’ for CIA (CTR Importable Archive) files.
* loader: Remove unnecessary else usagesLioncash2015-07-261-9/+9
|
* Core : Change variable typezawata2015-07-191-1/+1
| | | | and fix various warnings
* Loader: Fix variable type and remove unused variableYuri Kunde Schlesner2015-07-141-2/+1
|
* Loader: Remove unnecessary pointer indirection to IOFileYuri Kunde Schlesner2015-07-148-48/+48
|
* FS: Stream RomFS from file instead of loading all of it to memorycondut2015-07-144-9/+20
|
* Core: Properly configure address space when loading a binaryYuri Kunde Schlesner2015-07-123-27/+123
| | | | | | The code now properly configures the process image to match the loaded binary segments (code, rodata, data) instead of just blindly allocating a large chunk of dummy memory.
* Loader: Clean up 3dsx loader a bit, fixing a potential buffer overrunYuri Kunde Schlesner2015-07-121-13/+16
|
* Loader: Make 3dsx loader logs a bit less confusingYuri Kunde Schlesner2015-07-121-6/+3
|
* Merge pull request #876 from linkmauve/include-cleanupsYuri Kunde Schlesner2015-07-114-3/+13
|\ | | | | Cleanup includes, mostly in common
| * CitraQt: Cleanup includes.Emmanuel Gil Peyrot2015-06-283-3/+10
| |
| * Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-282-0/+2
| |
| * Common: Fix FileUtil includes, and everything relying on those.Emmanuel Gil Peyrot2015-06-281-0/+1
| |
* | Loader: Remove log line causing warningaroulin2015-07-081-1/+0
|/
* Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-291-1/+1
|
* Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv2015-05-153-0/+13
| | | | | | Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues. Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
* Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-154-4/+3
| | | | | | | memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory.
* Merge pull request #734 from yuriks/memmapTony Wasserka2015-05-092-3/+3
|\ | | | | Small memory map definitions cleanup
| * Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner2015-05-092-3/+3
| |
* | Loader: Add missing includeYuri Kunde Schlesner2015-05-091-0/+1
|/
* Loader: Remove .bin file supportYuri Kunde Schlesner2015-05-092-20/+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-094-5/+5
|
* Loader/NCCH: Fix formatting of bracesYuri Kunde Schlesner2015-05-091-9/+9
|
* Process: Support parsing of exheader kernel capsYuri Kunde Schlesner2015-05-093-0/+3
|
* Kernel: Remove g_program_idYuri Kunde Schlesner2015-05-093-11/+0
| | | | This has been obsoleted by the field in Process.
* Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner2015-05-098-29/+88
|
* Common: Remove common.hYuri Kunde Schlesner2015-05-076-3/+11
|
* Services/Loader: Use more sensible log formats for certain functionspurpasmart962015-04-282-14/+37
| | | | along with more info being logged.
* NCCH: Minor updates to the ncch headerpurpasmart962015-03-151-11/+14
|
* Build: Fixed some warningsSubv2015-02-121-1/+3
|
* FS: Allow multiple instances of the same archive type to be open at onceYuri Kunde Schlesner2015-02-101-1/+1
|
* core: Fix some warnings on OSXLioncash2015-02-031-1/+1
|
* Merge pull request #514 from rohit-n/fix-warningsbunnei2015-02-011-2/+2
|\ | | | | Silence a few warnings.
| * Silence a few warnings.Rohit Nirmal2015-01-301-2/+2
| |
* | loader: Add missing printf argumentLioncash2015-01-301-1/+1
|/
* Loader: Clean up the ELF AppLoader.Emmanuel Gil Peyrot2015-01-152-42/+35
|
* Loader: Clean up the 3DSX AppLoader.Emmanuel Gil Peyrot2015-01-151-17/+24
|
* Loader: Clean up the NCCH AppLoader.Emmanuel Gil Peyrot2015-01-151-51/+48
|
* Loader: Display the type of the file being loaded.Emmanuel Gil Peyrot2015-01-151-3/+23
|
* Loader: Guess filetype from the magic, or fallback to the extension.Emmanuel Gil Peyrot2015-01-158-26/+112
|
* Loader: Don’t assume the file hasn’t been read before.Emmanuel Gil Peyrot2015-01-153-4/+13
|
* Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times.Emmanuel Gil Peyrot2015-01-158-176/+116
|
* Loader: Initialize the default NCCH values in the class declaration, not in the constructor.Emmanuel Gil Peyrot2015-01-152-8/+4
|
* Loader: Remove the useless THREEDSXReader class.Emmanuel Gil Peyrot2015-01-151-10/+4
|
* Loader: Never forget to change is_loaded.Emmanuel Gil Peyrot2015-01-156-7/+15
|
* Loader: Don’t duplicate the docstring into the cpp file.Emmanuel Gil Peyrot2015-01-154-56/+0
|
* Loader: Fix indentation, whitespace, and a few other such cosmetic stuff.Emmanuel Gil Peyrot2015-01-152-26/+24
|
* Fix correct espaceDante384902015-01-051-2/+2
|
* Add support load 3DS roomDante384902015-01-051-0/+2
|
* elf: Make DidRelocate constLioncash2015-01-031-1/+1
|
* Merge pull request #291 from purpasmart96/licensebunnei2014-12-218-10/+10
|\ | | | | License change
| * License changepurpasmart962014-12-218-10/+10
| |
* | Merge pull request #315 from chinhodado/masterbunnei2014-12-201-3/+1
|\ \ | | | | | | Clean up some warnings
| * | Clean up some warningsChin2014-12-201-3/+1
| |/
* / Common: Add a clone of std::make_uniqueYuri Kunde Schlesner2014-12-201-2/+4
|/
* Filesystem/Archives: Implemented the SaveData archiveSubv2014-12-183-0/+11
| | | | | | | | | | The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information Got rid of the code duplication in File and Directory Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive. FS_U: Use the correct error code when a file wasn't found
* FS.Archive: Clean up treatment of archives and their handlesYuri Kunde Schlesner2014-12-161-1/+1
| | | | | | | - Refactor FS::Archive internals to make Archive creation and lifetime management clearer. - Remove the "Archive as a File" hack. - Implement 64-bit Archive handles.
* Service.FS: Do archive registration using IdCode instead of nameYuri Kunde Schlesner2014-12-161-1/+1
|
* HLE: Rename namespaces to match move & fix initialization orderYuri Kunde Schlesner2014-12-161-1/+1
|
* HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner2014-12-162-2/+2
|
* Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-134-35/+35
|
* Loader: Add 3DSX supportichfly2014-12-084-0/+276
|
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-193-6/+6
|
* core: Mark some hle functions as staticLioncash2014-11-181-2/+2
| | | | These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
* Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions.Emmanuel Gil Peyrot2014-09-173-5/+5
|
* Merge pull request #99 from archshift/ext-checkbunnei2014-09-111-15/+16
|\ | | | | loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
| * Added string_util to common, small changes in loader.cpparchshift2014-09-091-16/+15
| |
| * loader.cpp: improved file extension checking, made Upper/LowerStr usefularchshift2014-09-091-6/+8
| | | | | | | | Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
* | core: Prune redundant includesarchshift2014-09-091-1/+0
|/
* ncch: Remove C-style struct typedefsLioncash2014-09-061-4/+4
| | | | In C++ you can simply just declare it as is.
* ncch: inline declare some variables in LZSS_DecompressLioncash2014-09-061-7/+5
|
* Loader: Added support for loading raw BIN executables.bunnei2014-08-282-0/+21
| | | | | | - Useful for debugging homebrew Qt: Updated GUI to support loading .bin files.
* NCCH: Updated ExeFS memory allocation to be safer.bunnei2014-07-052-1/+7
|
* Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override".bunnei2014-07-052-9/+9
|
* Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final"bunnei2014-07-052-2/+2
|
* Loader: Updated read methods to be constbunnei2014-07-053-66/+77
| | | | - Required "file" handle to be made local and explicitly opened/closed as needed
* FileSys: Added preliminary support for applications reading the RomFS archive.bunnei2014-07-051-4/+11
| | | | | | | | | | Archive: Fixed brace ugliness for neobrain :) FS: Commented out unused local variables to prevent warnings. ...But keeping them here for future use. archive_romfs: Removed unused #include.
* Loader: Refactored interface such that data is no longer stored by loader.bunnei2014-06-273-96/+73
| | | | NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’.
* Loader: Refactored loading functions to only read data from binary if called.bunnei2014-06-253-74/+141
| | | | NCCH: Updated LoadExec to use Memory::WriteBlock function to load binary code.
* ELF: Refactored LoadInto(..) to use memcpy, removed unnecessary code.bunnei2014-06-251-19/+8
|
* Loader: Refactored use of const.bunnei2014-06-256-20/+19
|
* NCCH: Added RomFS loading.bunnei2014-06-252-1/+36
|
* NCCH: Fixes reduce unnecessary logging and load logo/banner/etc. sections correctly.bunnei2014-06-253-22/+29
| | | | Loader: Added ErrorNotUsed ReturnStatus type to specify when something is not used.
* Loader: Implemented AppLoader interface for abstracting application loading.bunnei2014-06-256-523/+672
| | | | | | | | | | | | | | | | | | - 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.
* NCCH: Changed decompression to load .code directly into memory rather than an intermediate buffer.bunnei2014-06-171-9/+3
|
* Elf: Removed unused macros, changed #include of "common.h" to just "common_types.h".bunnei2014-06-171-117/+1
|
* Loader: Cleaned up and removed unused code, refactored ELF namespace.bunnei2014-06-174-209/+70
|
* Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces.bunnei2014-06-175-357/+332
|
* Loader: Added support for booting NCCH executables.bunnei2014-06-173-0/+374
| | | | NCCH: Fixed typo in printing NCCH filename.
* Loader: Moved elf and loader modules to a "loader" subdirectory.bunnei2014-06-175-0/+805