Commit Graph

84 Commits

Author SHA1 Message Date
d37a2270d6 Replace boost::optional with std::optional where possible 2018-10-05 13:51:09 +02:00
bbf391abb9 citra_qt, core: game list "Open XXX Location" improvements 2018-10-01 08:42:22 +08:00
697bc1a9c7 loader, cfg: choose region based on language if multiple regions available 2018-09-18 10:26:31 -04:00
3284bef360 string_util: Remove StringFromFormat() and related functions
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-09-06 00:00:21 +02:00
2abe11ee1e Fix compile errors 2018-08-23 18:23:21 +02:00
d4a808c885 ncch_container: support encrypted games 2018-08-07 18:53:06 +03:00
7c5a76e58b log: replace all NGLOG with LOG 2018-06-29 14:18:07 +03:00
fbfc1103fd core/loader: Migrate logging macros
Replace logging to use NGLOG instead of LOG.
2018-03-29 00:08:26 +08:00
b179b86f14 Service/CFG: convert to ServiceFramework 2018-03-10 13:37:03 +02:00
eb58dbda32 ncch: Add missing return statement in ReadUpdateRomFs 2017-12-11 01:33:08 -05:00
a4af750759 loader/ncch: Use AM to get update title path 2017-10-18 21:19:40 -06:00
4887d18591 file_sys, loader: add support for reading TMDs to determine app paths 2017-10-01 10:54:02 -06:00
7f48aa8d25 Loaders: Don't automatically set the current process every time we load an application.
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-26 18:17:47 -05:00
774e7deae8 HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently.
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-25 09:45:02 -05:00
d881dee818 Merge pull request #2952 from MerryMage/page-tables
Switchable Page Tables
2017-09-25 08:29:32 +02:00
c91ccbd0ba Loader/NCCH: Add support for loading application updates (#2927)
* 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-25 08:17:38 +02:00
c02bbb7030 memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
2017-09-24 22:42:42 +01:00
6d2734a074 Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-09-10 15:13:41 -05:00
5d0a1e7efd Added missing parts in libnetwork (#2838)
* Network: Set and send the game information over enet

Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
2017-08-19 11:14:33 -06:00
f5cf9960d9 loader: Expose program title. 2017-08-03 20:10:37 -04:00
df8b9863f9 telemetry: Log performance, configuration, and system data. 2017-07-17 21:32:28 -04:00
37bec598ea Made some changes from review comments:
- 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-02 18:28:14 -04:00
e523c76cc8 Fixed encrypted ROM error messages. 2017-06-02 18:25:32 -04:00
120b00fb1a telemetry: Log a few simple data fields throughout core. 2017-05-24 19:16:23 -04:00
6551a72ec8 loader/ncch: less verbose log for loading game list. only log program ID when booting 2017-03-08 17:37:24 +02:00
20544977da loader: use self NCCH archive 2017-02-13 13:57:38 +02:00
c18cb1b192 Fix some warnings (#2399) 2017-01-04 13:48:29 -03:00
f556d6ee90 Merge pull request #2240 from wwylele/auto-region
Config: auto-select region and language
2016-12-29 22:09:01 -05:00
351b5d23f4 loader: Implement ReadProgramId 2016-12-15 18:42:38 +00:00
84e78790ab Config: auto-select region and language 2016-12-07 20:52:42 +02:00
d171409f29 Kernel/Loader: Grab the system mode from the NCCH ExHeader.
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-27 18:03:48 -05:00
1323ab2f5f Kernel/Loader: Grab the system mode from the NCCH ExHeader.
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-19 20:40:04 -05:00
13d46f6820 Fix typos 2016-10-20 12:26:59 -02:00
84fbbe2629 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
ebdae19fd2 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
dc8479928c Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
8fc9c03126 Loader, Frontends: Refactor loader creation and game loading
This allows frontends to keep a single loader and use it multiple times
e.g. for code loading and SMDH parsing.
2016-05-21 17:09:56 +01:00
282a2ad539 Merge pull request #1766 from Subv/log_cpu
Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1)
2016-05-08 15:03:08 -04:00
5b7f86708c Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).
We do not currently implement any cores other than the AppCore (Core 0).
2016-05-07 10:23:03 -05:00
5d5dd66d92 add icon & title to game list 2016-05-04 13:02:49 +03:00
60f2587eac ncch: Use correct format specifier (for long long uint) 2016-04-23 11:54:02 +08:00
727d508e02 ncch:only decompress .code section 2016-04-14 18:33:42 +03:00
a06dcfeb61 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
b967a581a1 Loader/NCCH: Log the program ID during loading
This is useful for all sorts of things, but mainly to identify save
folders more easily.
2016-03-04 23:53:10 -08:00
721475420d Loader: Change NCCH header types to be explicitly little-endian 2015-10-10 22:35:22 -04:00
2706394384 Loader: Implement encryption check 2015-10-10 22:34:17 -04:00
2d7299a86f Loader: Remove unnecessary pointer indirection to IOFile 2015-07-13 20:00:56 -03:00
c385b7767d FS: Stream RomFS from file instead of loading all of it to memory 2015-07-13 19:57:12 -03:00
5c5cf2f8e0 Core: Properly configure address space when loading a binary
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-11 23:54:42 -03:00
867c28ae03 Merge pull request #876 from linkmauve/include-cleanups
Cleanup includes, mostly in common
2015-07-10 16:36:12 -07:00