Commit graph

430 commits

Author SHA1 Message Date
bunnei
f556d6ee90 Merge pull request #2240 from wwylele/auto-region
Config: auto-select region and language
2016-12-29 22:09:01 -05:00
bunnei
81e22ae8c7 loader: Remove duplicate docstrings. 2016-12-21 23:27:50 -05:00
MerryMage
351b5d23f4 loader: Implement ReadProgramId 2016-12-15 18:42:38 +00:00
wwylele
84e78790ab Config: auto-select region and language 2016-12-07 20:52:42 +02:00
Subv
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
Subv
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
Ricardo de Almeida Gonzaga
13d46f6820 Fix typos 2016-10-20 12:26:59 -02:00
Yuri Kunde Schlesner
84fbbe2629 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
Emmanuel Gil Peyrot
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
Yuri Kunde Schlesner
396a8d91a4 Manually tweak source formatting and then re-run clang-format 2016-09-18 21:14:25 -07:00
Emmanuel Gil Peyrot
dc8479928c Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
Emmanuel Gil Peyrot
080a2d719c Loader: Split SMDH into its own header and import helpers from QGameList
Also rewrite Qt wrappers to use those.
2016-05-21 20:15:42 +01:00
Emmanuel Gil Peyrot
314ce5e505 CitraQt: Simplify the game list loader code 2016-05-21 17:09:59 +01:00
Emmanuel Gil Peyrot
9a35d1fb4a Loader: Add a GetFileType method to get the type of a loaded file 2016-05-21 17:09:59 +01:00
Emmanuel Gil Peyrot
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
bunnei
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
Alexander Laties
0a31e373f1 fixup simple type conversions where possible 2016-05-07 11:41:55 -04:00
Subv
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
wwylele
d2182568ad fix:return proper error 2016-05-06 21:42:13 +03:00
wwylele
5d5dd66d92 add icon & title to game list 2016-05-04 13:02:49 +03:00
Sam Spilsbury
60f2587eac ncch: Use correct format specifier (for long long uint) 2016-04-23 11:54:02 +08:00
Lioncash
1cc183703a core: Clean out some unnecessary header includes 2016-04-16 00:08:49 -04:00
wwylele
727d508e02 ncch:only decompress .code section 2016-04-14 18:33:42 +03:00
Mathew Maidment
aa6380e5bc Merge pull request #1643 from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
2016-04-05 20:10:11 -04:00
MerryMage
a06dcfeb61 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
Lioncash
c99f47d8f0 loader: Make MakeMagic constexpr 2016-03-21 03:28:22 -04:00
bunnei
8530a2d7df Merge pull request #1344 from LittleWhite-tb/error-output
Output errors in GUI
2016-03-08 23:12:04 -05:00
LittleWhite
4be68dddfb Improve error report from Init() functions
Add error popup when citra initialization failed
2016-03-08 22:05:25 +01:00
Yuri Kunde Schlesner
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
LittleWhite
7ad669a911 Display errors in GUI when loading ROM failed 2016-03-03 22:52:29 +01:00
Lioncash
a89e32b157 elf: Don't cast away const 2016-01-25 02:36:57 -05:00
bunnei
c717d1551d Merge pull request #1199 from Gareth422/encryption-check
Loader: Implement NCCH encryption check
2015-10-20 10:17:31 -04:00
Gareth Poole
721475420d Loader: Change NCCH header types to be explicitly little-endian 2015-10-10 22:35:22 -04:00
Gareth Poole
2706394384 Loader: Implement encryption check 2015-10-10 22:34:17 -04:00
Emmanuel Gil Peyrot
14af5919ba CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.
The LOG_* function itself already appends one.
2015-10-09 22:14:56 +01:00
bunnei
11a64acf23 Merge pull request #1095 from archshift/game-list
Initial implementation of a game list
2015-10-01 23:35:19 -04:00
archshift
bba12520c4 Expose loader helper functions for identifying files. 2015-09-30 21:04:47 -07:00
Cruel
d60a9be5c6 Implement 3dsx RomFS 2015-09-21 13:03:18 -04:00
Lioncash
d3efa637b4 General: Fix up doxygen comments 2015-09-10 11:20:21 -04:00
Benjamin Barenblat
c0a87bc89f
Properly indicate that CIA support is not implemented yet
Make `Loader::LoadFile` return an `ErrorNotImplemented` if you call
it on a CIA file.
2015-08-15 16:05:38 -04:00
Benjamin Barenblat
cd8be1846b
Give CIA file type a name
Make `GetFileTypeString` return ‘CIA’ for CIA (CTR Importable
Archive) files.
2015-08-15 15:45:27 -04:00
Lioncash
43d799fd9d loader: Remove unnecessary else usages 2015-07-25 18:10:13 -04:00
zawata
972dccc3f6 Core : Change variable type
and fix various warnings
2015-07-19 04:12:39 -07:00
Yuri Kunde Schlesner
62c2a262b2 Loader: Fix variable type and remove unused variable 2015-07-13 21:10:13 -03:00
Yuri Kunde Schlesner
2d7299a86f Loader: Remove unnecessary pointer indirection to IOFile 2015-07-13 20:00:56 -03:00
condut
c385b7767d FS: Stream RomFS from file instead of loading all of it to memory 2015-07-13 19:57:12 -03:00
Yuri Kunde Schlesner
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
Yuri Kunde Schlesner
34f5f77507 Loader: Clean up 3dsx loader a bit, fixing a potential buffer overrun 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner
fdbf410bd7 Loader: Make 3dsx loader logs a bit less confusing 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner
867c28ae03 Merge pull request #876 from linkmauve/include-cleanups
Cleanup includes, mostly in common
2015-07-10 16:36:12 -07:00
aroulin
769407e4fa Loader: Remove log line causing warning 2015-07-08 00:04:21 +02:00
Emmanuel Gil Peyrot
45c4781544 CitraQt: Cleanup includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
596b7c4f63 Common: Cleanup key_map includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
8cf9eb7f43 Common: Fix FileUtil includes, and everything relying on those. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
Subv
d3634d4bf4 Core/ResourceLimits: Implemented the basic structure of ResourceLimits.
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-14 22:50:13 -05:00
Yuri Kunde Schlesner
7ada357b2d Memmap: Re-organize memory function in two files
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-15 00:04:38 -03:00
Tony Wasserka
e35e72d0a5 Merge pull request #734 from yuriks/memmap
Small memory map definitions cleanup
2015-05-09 15:57:29 +02:00
Yuri Kunde Schlesner
417c867e14 Loader: Add missing include 2015-05-09 05:05:59 -03:00
Yuri Kunde Schlesner
1c0b87edc2 Memory: Re-organize and rename memory area address constants 2015-05-09 01:29:52 -03:00
Yuri Kunde Schlesner
eb3eb9f75d Loader: Remove .bin file support
It is of very limited practical utility currently, and will soon be
impossible to support due to more accurate memory map emulation.
2015-05-08 23:09:41 -03:00
Yuri Kunde Schlesner
3cb19c9589 Process: Rename StaticAddressMapping => AddressMapping 2015-05-08 22:12:10 -03:00
Yuri Kunde Schlesner
7eb413155f Loader/NCCH: Fix formatting of braces 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner
2af30d465f Process: Support parsing of exheader kernel caps 2015-05-08 22:11:44 -03:00
Yuri Kunde Schlesner
a5eba2f984 Kernel: Remove g_program_id
This has been obsoleted by the field in Process.
2015-05-08 22:11:03 -03:00
Yuri Kunde Schlesner
6d60acf0f1 Kernel: Introduce skeleton Process class to hold process data 2015-05-08 22:11:02 -03:00
Yuri Kunde Schlesner
e1fbac3ca1 Common: Remove common.h 2015-05-07 15:45:22 -03:00
purpasmart96
c3a480160e Services/Loader: Use more sensible log formats for certain functions
along with more info being logged.
2015-04-27 23:07:08 -07:00
purpasmart96
061c69a6bb NCCH: Minor updates to the ncch header 2015-03-15 14:17:19 -07:00
Subv
8e2b248e05 Build: Fixed some warnings 2015-02-12 09:25:35 -05:00
Yuri Kunde Schlesner
3f1a3952d7 FS: Allow multiple instances of the same archive type to be open at once 2015-02-10 13:43:44 -02:00
Lioncash
676daef3c7 core: Fix some warnings on OSX 2015-02-03 08:14:42 -05:00
bunnei
c915d0b727 Merge pull request #514 from rohit-n/fix-warnings
Silence a few warnings.
2015-02-01 00:31:06 -05:00
Rohit Nirmal
5ebf35db96 Silence a few warnings. 2015-01-30 19:20:34 +00:00
Lioncash
0c4685ca12 loader: Add missing printf argument 2015-01-30 11:34:05 -05:00
Emmanuel Gil Peyrot
df0d66c7cf Loader: Clean up the ELF AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
84e52a944d Loader: Clean up the 3DSX AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
08aaa33500 Loader: Clean up the NCCH AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
2c24e539a2 Loader: Display the type of the file being loaded. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
82ec17db7d Loader: Guess filetype from the magic, or fallback to the extension. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
04622a859c Loader: Don’t assume the file hasn’t been read before. 2015-01-15 22:23:07 +01:00
Emmanuel Gil Peyrot
b5237e885d Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
2d63df90a9 Loader: Initialize the default NCCH values in the class declaration, not in the constructor. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
9d3bb8b7c0 Loader: Remove the useless THREEDSXReader class. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
85030c6e6b Loader: Never forget to change is_loaded. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
43e699d849 Loader: Don’t duplicate the docstring into the cpp file. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
bc2212106f Loader: Fix indentation, whitespace, and a few other such cosmetic stuff. 2015-01-15 21:21:25 +00:00
Dante38490
e674aa31af Fix correct espace 2015-01-05 04:45:09 +01:00
Dante38490
35a085d567 Add support load 3DS room 2015-01-05 04:39:42 +01:00
Lioncash
bf23f94571 elf: Make DidRelocate const 2015-01-02 20:32:16 -05:00
bunnei
0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
2014-12-21 16:05:44 -05:00
purpasmart96
ebfd831ccb License change 2014-12-20 21:20:24 -08:00
bunnei
2b0d7a1d29 Merge pull request #315 from chinhodado/master
Clean up some warnings
2014-12-20 11:59:18 -05:00
Chin
e795692614 Clean up some warnings 2014-12-20 10:03:36 -05:00
Yuri Kunde Schlesner
82528ba7df Common: Add a clone of std::make_unique 2014-12-20 03:45:02 -02:00
Subv
ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
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-17 19:21:38 -05:00
Yuri Kunde Schlesner
83e6e4ffec FS.Archive: Clean up treatment of archives and their handles
- Refactor FS::Archive internals to make Archive creation and lifetime
  management clearer.
- Remove the "Archive as a File" hack.
- Implement 64-bit Archive handles.
2014-12-16 01:08:44 -02:00
Yuri Kunde Schlesner
f6153679b0 Service.FS: Do archive registration using IdCode instead of name 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
ca67bb7945 HLE: Rename namespaces to match move & fix initialization order 2014-12-16 01:08:38 -02:00
Yuri Kunde Schlesner
c72ccfa6db HLE: Move kernel/archive.* to service/fs/ 2014-12-16 01:08:14 -02:00
Yuri Kunde Schlesner
0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
ichfly
1aa969741d Loader: Add 3DSX support 2014-12-08 18:06:43 +01:00
Emmanuel Gil Peyrot
f5d38649c7 Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated 2014-11-19 09:03:07 +00:00
Lioncash
72846c418e core: Mark some hle functions as static
These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
2014-11-17 22:41:49 -05:00
Emmanuel Gil Peyrot
6b7b36a874 Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. 2014-09-17 14:35:45 +00:00
bunnei
532a9e80a0 Merge pull request #99 from archshift/ext-check
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
2014-09-11 00:04:36 -04:00
archshift
6e606c515f core: Prune redundant includes 2014-09-08 17:54:14 -07:00
archshift
5472fd4d9b Added string_util to common, small changes in loader.cpp 2014-09-08 15:43:22 -07:00
archshift
4ed24a0619 loader.cpp: improved file extension checking, made Upper/LowerStr useful
Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
2014-09-08 15:41:58 -07:00
Lioncash
f68776ce13 ncch: Remove C-style struct typedefs
In C++ you can simply just declare it as is.
2014-09-06 13:38:03 -04:00
Lioncash
26cd696843 ncch: inline declare some variables in LZSS_Decompress 2014-09-06 13:36:49 -04:00
bunnei
6966fdf025 Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
2014-08-28 17:51:49 -04:00
bunnei
b70c4fb48e NCCH: Updated ExeFS memory allocation to be safer. 2014-07-04 20:37:51 -04:00
bunnei
1099d83455 Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override". 2014-07-04 20:37:50 -04:00
bunnei
2d734bb6c5 Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final" 2014-07-04 20:37:49 -04:00
bunnei
2c62d92551 Loader: Updated read methods to be const
- Required "file" handle to be made local and explicitly opened/closed as needed
2014-07-04 20:37:49 -04:00
bunnei
17a6148f9d FileSys: Added preliminary support for applications reading the RomFS archive.
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.
2014-07-04 20:37:45 -04:00
bunnei
d8da707bb9 Loader: Refactored interface such that data is no longer stored by loader.
NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’.
2014-06-27 17:49:01 -04:00
bunnei
a7f1c54490 Loader: Refactored loading functions to only read data from binary if called.
NCCH: Updated LoadExec to use Memory::WriteBlock function to load binary code.
2014-06-24 19:30:08 -04:00
bunnei
cedc28dcc6 ELF: Refactored LoadInto(..) to use memcpy, removed unnecessary code. 2014-06-24 19:30:07 -04:00
bunnei
62b444cd17 Loader: Refactored use of const. 2014-06-24 19:30:06 -04:00
bunnei
a8c4648520 NCCH: Added RomFS loading. 2014-06-24 19:30:06 -04:00
bunnei
3da2bc6830 NCCH: Fixes reduce unnecessary logging and load logo/banner/etc. sections correctly.
Loader: Added ErrorNotUsed ReturnStatus type to specify when something is not used.
2014-06-24 19:30:05 -04:00
bunnei
7889cafc76 Loader: Implemented AppLoader interface for abstracting application loading.
- 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-24 19:29:58 -04:00
bunnei
79a48082e2 NCCH: Changed decompression to load .code directly into memory rather than an intermediate buffer. 2014-06-17 06:30:14 -04:00
bunnei
c144ed5058 Elf: Removed unused macros, changed #include of "common.h" to just "common_types.h". 2014-06-17 06:23:46 -04:00
bunnei
13bdaa6c60 Loader: Cleaned up and removed unused code, refactored ELF namespace. 2014-06-16 23:43:33 -04:00
bunnei
1da361c7ab Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces. 2014-06-16 23:43:32 -04:00
bunnei
3577dd027d Loader: Added support for booting NCCH executables.
NCCH: Fixed typo in printing NCCH filename.
2014-06-16 23:43:29 -04:00
bunnei
0aca202ae9 Loader: Moved elf and loader modules to a "loader" subdirectory. 2014-06-16 18:03:13 -04:00