Commit Graph

55 Commits (63f26d5c40adb49094b03b232528672f526afe49)

Author SHA1 Message Date
Zach Hilman 63f26d5c40 Add support for decrypted NCA files (#567)
* 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
7 years ago
N00byKing 358050cfc6 core, main.h: Abort on 32Bit ROMs (#309)
* core, main.h: Abort on 32Bit ROMs

* main.cpp: Fix Grammar
7 years ago
bunnei 386df282a3 loader: Clean up ctors and includes. 7 years ago
bunnei e75aba3ed0 loader: Add DeconstructedRomDirectory for game dumps. 7 years ago
bunnei 023aef053c loader: Refactor to also pass filepath into IdentifyType. 7 years ago
bunnei 746c2a3ae7 core: Refactor MakeMagic usage and remove dead code. 8 years ago
bunnei 72b03025ac Remove lots more 3DS-specific code. 8 years ago
bunnei b1d5db1cf6 Merge remote-tracking branch 'upstream/master' into nx
# 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
8 years ago
bunnei 33ea53094c loader: Add support for NRO, as well as various fixes and shared linker. 8 years ago
bunnei 6bafd3f4f7 loader: Add support for loading an NSO. 8 years ago
Subv 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.
8 years ago
Max Thomas 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
8 years ago
bunnei f5cf9960d9 loader: Expose program title. 8 years ago
TheKoopaKingdom f008b22e3b Addressed Bunnei's review comments, and made some other tweaks:
- 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.
8 years ago
TheKoopaKingdom a8aef599e0 Created a whitelist of system archives to prevent false positives creating dialogs. 8 years ago
TheKoopaKingdom 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.
8 years ago
TheKoopaKingdom e523c76cc8 Fixed encrypted ROM error messages. 8 years ago
Mat M 0cb52ee74a Doxygen: Amend minor issues (#2593)
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.
8 years ago
MerryMage 351b5d23f4 loader: Implement ReadProgramId 9 years ago
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
9 years ago
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
9 years ago
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.
9 years ago
Yuri Kunde Schlesner 396a8d91a4 Manually tweak source formatting and then re-run clang-format 9 years ago
Emmanuel Gil Peyrot dc8479928c Sources: Run clang-format on everything. 9 years ago
Emmanuel Gil Peyrot 080a2d719c Loader: Split SMDH into its own header and import helpers from QGameList
Also rewrite Qt wrappers to use those.
9 years ago
Emmanuel Gil Peyrot 314ce5e505 CitraQt: Simplify the game list loader code 9 years ago
Emmanuel Gil Peyrot 9a35d1fb4a Loader: Add a GetFileType method to get the type of a loaded file 9 years ago
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.
9 years ago
wwylele 5d5dd66d92 add icon & title to game list 9 years ago
Lioncash c99f47d8f0 loader: Make MakeMagic constexpr 9 years ago
Gareth Poole 2706394384 Loader: Implement encryption check 10 years ago
archshift bba12520c4 Expose loader helper functions for identifying files. 10 years ago
Yuri Kunde Schlesner 2d7299a86f Loader: Remove unnecessary pointer indirection to IOFile 10 years ago
condut c385b7767d FS: Stream RomFS from file instead of loading all of it to memory 10 years ago
Emmanuel Gil Peyrot 45c4781544 CitraQt: Cleanup includes. 10 years ago
Emmanuel Gil Peyrot 596b7c4f63 Common: Cleanup key_map includes. 10 years ago
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.
10 years ago
Yuri Kunde Schlesner 3cb19c9589 Process: Rename StaticAddressMapping => AddressMapping 10 years ago
Yuri Kunde Schlesner 6d60acf0f1 Kernel: Introduce skeleton Process class to hold process data 10 years ago
Yuri Kunde Schlesner e1fbac3ca1 Common: Remove common.h 10 years ago
Lioncash 676daef3c7 core: Fix some warnings on OSX 10 years ago
Emmanuel Gil Peyrot 82ec17db7d Loader: Guess filetype from the magic, or fallback to the extension. 11 years ago
Emmanuel Gil Peyrot b5237e885d Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. 11 years ago
purpasmart96 ebfd831ccb License change 11 years ago
ichfly 1aa969741d Loader: Add 3DSX support 11 years ago
bunnei 6966fdf025 Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
11 years ago
bunnei b70c4fb48e NCCH: Updated ExeFS memory allocation to be safer. 11 years ago
bunnei 2c62d92551 Loader: Updated read methods to be const
- Required "file" handle to be made local and explicitly opened/closed as needed
11 years ago
bunnei d8da707bb9 Loader: Refactored interface such that data is no longer stored by loader.
NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’.
11 years ago
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.
11 years ago