summaryrefslogtreecommitdiffstats
path: root/src/core/loader/ncch.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-10-13Remove lots more 3DS-specific code.bunnei1-263/+0
2017-10-01file_sys, loader: add support for reading TMDs to determine app pathsshinyquagsire231-3/+14
2017-09-30nso: Refactor and allocate .bss section.bunnei1-2/+3
2017-09-27Loaders: Don't automatically set the current process every time we load an application.Subv1-10/+9
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.
2017-09-25HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently.Subv1-2/+1
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.
2017-09-25Loader/NCCH: Add support for loading application updates (#2927)Max Thomas1-259/+60
* 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
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage1-1/+1
Don't expose Memory::current_page_table as a global.
2017-09-10Kernel/Memory: Give each Process its own page table.Subv1-0/+1
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-08-19Added missing parts in libnetwork (#2838)B3n301-0/+8
* Network: Set and send the game information over enet Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
2017-08-04loader: Expose program title.bunnei1-0/+20
2017-07-18telemetry: Log performance, configuration, and system data.bunnei1-2/+4
2017-06-03Made some changes from review comments:TheKoopaKingdom1-7/+4
- 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.
2017-06-03Fixed encrypted ROM error messages.TheKoopaKingdom1-4/+11
2017-05-25telemetry: Log a few simple data fields throughout core.bunnei1-0/+3
2017-03-08loader/ncch: less verbose log for loading game list. only log program ID when bootingwwylele1-3/+6
2017-02-13loader: use self NCCH archivewwylele1-3/+3
2017-01-04Fix some warnings (#2399)Jonathan Hao1-1/+1
2016-12-15loader: Implement ReadProgramIdMerryMage1-0/+12
2016-12-07Config: auto-select region and languagewwylele1-0/+22
2016-11-28Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv1-7/+8
3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
2016-11-20Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv1-0/+9
3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
2016-10-20Fix typosRicardo de Almeida Gonzaga1-1/+1
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-3/+1
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-27/+35
2016-05-21Loader, Frontends: Refactor loader creation and game loadingEmmanuel Gil Peyrot1-1/+8
This allows frontends to keep a single loader and use it multiple times e.g. for code loading and SMDH parsing.
2016-05-07Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).Subv1-0/+3
We do not currently implement any cores other than the AppCore (Core 0).
2016-05-04add icon & title to game listwwylele1-3/+19
2016-04-23ncch: Use correct format specifier (for long long uint)Sam Spilsbury1-1/+1
2016-04-14ncch:only decompress .code sectionwwylele1-2/+2
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage1-1/+0
2016-03-05Loader/NCCH: Log the program ID during loadingYuri Kunde Schlesner1-1/+2
This is useful for all sorts of things, but mainly to identify save folders more easily.
2015-10-11Loader: Change NCCH header types to be explicitly little-endianGareth Poole1-2/+1
2015-10-11Loader: Implement encryption checkGareth Poole1-0/+5
2015-07-14Loader: Remove unnecessary pointer indirection to IOFileYuri Kunde Schlesner1-21/+21
2015-07-14FS: Stream RomFS from file instead of loading all of it to memorycondut1-4/+9
2015-07-12Core: Properly configure address space when loading a binaryYuri Kunde Schlesner1-4/+28
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.
2015-07-08Loader: Remove log line causing warningaroulin1-1/+0
2015-06-28CitraQt: Cleanup includes.Emmanuel Gil Peyrot1-1/+2
2015-05-15Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv1-0/+5
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.
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-1/+1
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.
2015-05-09Loader: Add missing includeYuri Kunde Schlesner1-0/+1
2015-05-09Kernel: Remove g_program_idYuri Kunde Schlesner1-4/+0
This has been obsoleted by the field in Process.
2015-05-09Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner1-2/+18
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-0/+2
2015-04-28Services/Loader: Use more sensible log formats for certain functionspurpasmart961-10/+23
along with more info being logged.
2015-01-15Loader: Clean up the NCCH AppLoader.Emmanuel Gil Peyrot1-51/+48
2015-01-15Loader: Guess filetype from the magic, or fallback to the extension.Emmanuel Gil Peyrot1-2/+17
2015-01-15Loader: Don’t assume the file hasn’t been read before.Emmanuel Gil Peyrot1-4/+7
2015-01-15Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times.Emmanuel Gil Peyrot1-106/+84
2015-01-15Loader: Initialize the default NCCH values in the class declaration, not in the constructor.Emmanuel Gil Peyrot1-4/+0
2015-01-15Loader: Never forget to change is_loaded.Emmanuel Gil Peyrot1-3/+2
2015-01-15Loader: Don’t duplicate the docstring into the cpp file.Emmanuel Gil Peyrot1-41/+0
2015-01-15Loader: Fix indentation, whitespace, and a few other such cosmetic stuff.Emmanuel Gil Peyrot1-1/+1
2014-12-21License changepurpasmart961-1/+1
2014-12-18Filesystem/Archives: Implemented the SaveData archiveSubv1-0/+4
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
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner1-17/+17
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot1-3/+3
2014-11-18core: Mark some hle functions as staticLioncash1-2/+2
These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
2014-09-17Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions.Emmanuel Gil Peyrot1-3/+3
2014-09-06ncch: inline declare some variables in LZSS_DecompressLioncash1-7/+5
2014-07-05NCCH: Updated ExeFS memory allocation to be safer.bunnei1-1/+6
2014-07-05Loader: Updated read methods to be constbunnei1-53/+65
- Required "file" handle to be made local and explicitly opened/closed as needed
2014-06-27Loader: Refactored interface such that data is no longer stored by loader.bunnei1-43/+34
NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’.
2014-06-25Loader: Refactored loading functions to only read data from binary if called.bunnei1-53/+89
NCCH: Updated LoadExec to use Memory::WriteBlock function to load binary code.
2014-06-25Loader: Refactored use of const.bunnei1-5/+5
2014-06-25NCCH: Added RomFS loading.bunnei1-1/+28
2014-06-25NCCH: Fixes reduce unnecessary logging and load logo/banner/etc. sections correctly.bunnei1-20/+25
Loader: Added ErrorNotUsed ReturnStatus type to specify when something is not used.
2014-06-25Loader: Implemented AppLoader interface for abstracting application loading.bunnei1-203/+105
- 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.
2014-06-17NCCH: Changed decompression to load .code directly into memory rather than an intermediate buffer.bunnei1-9/+3
2014-06-17Loader: Added support for booting NCCH executables.bunnei1-0/+348
NCCH: Fixed typo in printing NCCH filename.