Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | kernel: restrict nce to applications | Liam | 2023-12-23 | 1 | -3/+4 |
| | |||||
* | file_sys: handle null romfs | Liam | 2023-12-02 | 1 | -4/+2 |
| | |||||
* | core: Rename patcher file | GPUCode | 2023-11-29 | 3 | -3/+3 |
| | |||||
* | loader: fix gcc compile | Liam | 2023-11-27 | 1 | -1/+1 |
| | |||||
* | loader: apply nso patch to offset program image | Liam | 2023-11-25 | 1 | -4/+6 |
| | |||||
* | core: Define HAS_NCE macro | GPUCode | 2023-11-25 | 3 | -9/+9 |
| | |||||
* | Address some review comments | GPUCode | 2023-11-25 | 2 | -10/+11 |
| | |||||
* | android: Add cpu bakend gui toggle | GPUCode | 2023-11-25 | 2 | -3/+5 |
| | |||||
* | arm: Implement native code execution backend | Liam | 2023-11-25 | 5 | -26/+162 |
| | |||||
* | kernel: Manually specify aslr region start | Liam | 2023-11-25 | 3 | -3/+5 |
| | |||||
* | loader: don't reassign program ID on npdm reparse | Liam | 2023-09-30 | 1 | -1/+1 |
| | |||||
* | core: improve debug workflow | Liam | 2023-09-14 | 6 | -10/+16 |
| | |||||
* | core: implement basic integrity verification | Liam | 2023-09-06 | 8 | -1/+165 |
| | |||||
* | kernel: offset code entry point for 39-bit address space type (#11326) | liamwhite | 2023-08-25 | 4 | -4/+4 |
| | |||||
* | vfs: expand support for NCA reading | Liam | 2023-08-15 | 10 | -40/+20 |
| | |||||
* | k_process: PageTable -> GetPageTable | Liam | 2023-07-15 | 4 | -4/+4 |
| | |||||
* | file_sys/content_archive: Detect compressed NCAs (#11047) | Tobias | 2023-07-12 | 1 | -0/+2 |
| | |||||
* | android: Add proper homebrew check | Charles Lombardo | 2023-06-10 | 2 | -1/+14 |
| | |||||
* | kernel: use KTypedAddress for addresses | Liam | 2023-03-22 | 3 | -3/+3 |
| | |||||
* | general: rename CurrentProcess to ApplicationProcess | Liam | 2023-02-14 | 1 | -1/+1 |
| | |||||
* | core/loader: Return nullptr if file is nullptr | Merry | 2022-09-25 | 1 | -0/+4 |
| | |||||
* | code: dodge PAGE_SIZE #define | Kyle Kienapfel | 2022-08-20 | 3 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779 | ||||
* | core/loader: remove ELF loader | Liam | 2022-08-01 | 4 | -311/+0 |
| | |||||
* | general: fix compilation on MinGW GCC 12 | Liam | 2022-06-14 | 1 | -5/+4 |
| | |||||
* | common: consolidate ELF structure definitions | Liam | 2022-06-05 | 1 | -167/+16 |
| | |||||
* | chore: add missing SPDX tags | Andrea Pappacoda | 2022-04-28 | 2 | -6/+6 |
| | | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52 | ||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 18 | -54/+36 |
| | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
* | loader: log the type of mismatching file-extension | BytesGalore | 2022-03-03 | 1 | -1/+2 |
| | |||||
* | general: Replace NonCopyable struct with equivalents | Lioncash | 2022-02-02 | 1 | -1/+5 |
| | |||||
* | core: loader: kip: Minimal changes to fix KIP loading. | bunnei | 2021-12-18 | 1 | -1/+7 |
| | | | | - Allows us to boot KIP (kernal apps), useful for testing the kernel. | ||||
* | loader: Support loading subsdk{8,9} | jam1garner | 2021-12-06 | 1 | -2/+3 |
| | |||||
* | core: Remove unused includes | ameerj | 2021-11-04 | 10 | -13/+0 |
| | |||||
* | file_sys: Support load game collection (#6582) | Feng Chen | 2021-07-20 | 6 | -29/+52 |
| | | | Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection | ||||
* | general: Make most settings a BasicSetting | lat9nq | 2021-06-28 | 2 | -4/+4 |
| | | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting. | ||||
* | common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270) | Morph | 2021-05-26 | 6 | -6/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only | ||||
* | core: Make variable shadowing a compile-time error | Lioncash | 2021-05-16 | 4 | -16/+15 |
| | | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely. | ||||
* | hle: kernel: Rename Process to KProcess. | bunnei | 2021-05-06 | 20 | -37/+37 |
| | |||||
* | core: Resolve misc cases of variable shadowing | Lioncash | 2021-05-03 | 2 | -6/+9 |
| | | | | | | | | | Resolves shadowing warnings that aren't in a particularly large subsection of core. Brings us closer to turning -Wshadow into an error. All that remains now is for cases in the kernel (left untouched for now since a big change by bunnei is pending), and a few left over in the service code (will be tackled next). | ||||
* | loader: Resolve instances of variable shadowing | Lioncash | 2021-04-27 | 19 | -169/+257 |
| | | | | | Eliminates variable shadowing cases across all the loaders to bring us closer to enabling variable shadowing as an error in core. | ||||
* | program_metadata: Set a default resource size when a NPDM is not present | Morph | 2021-04-23 | 1 | -1/+2 |
| | | | | Sets a default size of 0x1FE00000 bytes (510 MiB) for the system_resource_size when a NPDM is not present. | ||||
* | common: Move settings to common from core. | bunnei | 2021-04-15 | 2 | -2/+2 |
| | | | | - Removes a dependency on core and input_common from common. | ||||
* | hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable. | bunnei | 2021-02-19 | 5 | -5/+5 |
| | |||||
* | hle: kernel: KThread: Reorganize thread priority defaults. | bunnei | 2021-01-29 | 2 | -4/+4 |
| | |||||
* | core: hle: kernel: Rename Thread to KThread. | bunnei | 2021-01-29 | 2 | -2/+2 |
| | |||||
* | main: Resolve error string not displaying | Lioncash | 2021-01-03 | 2 | -0/+5 |
| | | | | | | | | | During the transition to make the error dialog translatable, I accidentally got rid of the conversion to ResultStatus, which prevented operator<< from being invoked during formatting. This adds a function to directly retrieve the result status string instead so that it displays again. | ||||
* | vfs: Use existing type aliases consistently | Lioncash | 2020-12-10 | 9 | -9/+9 |
| | | | | | Makes use of the VirtualDir and VirtualFile aliases across the board instead of having a few isolated places that don't use it. | ||||
* | core: Eliminate remaining usages of the global system instance | Lioncash | 2020-11-27 | 4 | -15/+2 |
| | | | | | | Removes all remaining usages of the global system instance. After this, migration can begin to migrate to being constructed and managed entirely by the various frontends. | ||||
* | core: loader: Implement support for loading indexed programs. | bunnei | 2020-11-25 | 6 | -12/+20 |
| | |||||
* | patch_manager: Remove usages of the global system instance | Lioncash | 2020-11-18 | 8 | -39/+66 |
| | | | | | | | With this, only 19 usages of the global system instance remain within the core library. We're almost there. | ||||
* | Revert "core: Fix clang build" | bunnei | 2020-10-21 | 1 | -18/+17 |
| | |||||
* | core: Fix clang build | Lioncash | 2020-10-18 | 1 | -17/+18 |
| | | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795 | ||||
* | core/CMakeLists: Make some warnings errors | Lioncash | 2020-10-13 | 4 | -4/+4 |
| | | | | | | | | | Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors. | ||||
* | General: Make use of std::nullopt where applicable | Lioncash | 2020-09-22 | 1 | -3/+3 |
| | | | | | | | | Allows some implementations to avoid completely zeroing out the internal buffer of the optional, and instead only set the validity byte within the structure. This also makes it consistent how we return empty optionals. | ||||
* | file_sys/romfs_factory: Eliminate usage of the global system accessor | Lioncash | 2020-09-17 | 3 | -6/+6 |
| | |||||
* | loader/nso: Remove unnecessary [[maybe_unused]] | Lioncash | 2020-09-17 | 1 | -2/+1 |
| | |||||
* | core/loader: Remove dependencies on the global system instance | Lioncash | 2020-09-16 | 19 | -44/+84 |
| | | | | | | | | | Now all that remains is: 18 instances in file_sys code 14 instances in GDB stub code (this can be tossed wholesale) 4 instances in HLE code 2 instances in settings code. | ||||
* | common/fileutil: Convert namespace to Common::FS | Lioncash | 2020-08-16 | 1 | -1/+1 |
| | | | | | | | | | | | | Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing. | ||||
* | common/concepts: Rename IsBaseOf to DerivedFrom | Lioncash | 2020-08-07 | 1 | -1/+1 |
| | | | | | | | | This makes it more inline with its currently unavailable standardized analogue std::derived_from. While we're at it, we can also make the template match the requirements of the standardized variant as well. | ||||
* | Place in anonymous namespace | David Marcec | 2020-08-03 | 1 | -0/+4 |
| | |||||
* | loader: Make IdentifyFile typesafe | David Marcec | 2020-08-03 | 1 | -20/+32 |
| | | | | Relies on #4465 for concept.h Common::IsBaseOf | ||||
* | loader: nro: Fix process initialization using ProgramMetadata default. | bunnei | 2020-04-21 | 2 | -11/+14 |
| | |||||
* | loader: elf: Fix process initialization using ProgramMetadata default. | bunnei | 2020-04-21 | 1 | -0/+5 |
| | |||||
* | loader/nso: Resolve moves not occurring in DecompressSegment | Lioncash | 2020-04-18 | 1 | -1/+1 |
| | | | | | | | | Given the std::vector was const, an automatic move out of the function could not occur. We can allow automatic return value optimizations to occur by making the buffer non-const. | ||||
* | loader: nso: Fix loader size and arguments. | bunnei | 2020-04-17 | 3 | -25/+47 |
| | |||||
* | loader: elf/kip/nro: Updates for new VMM. | bunnei | 2020-04-17 | 3 | -5/+7 |
| | |||||
* | core: memory: Move to Core::Memory namespace. | bunnei | 2020-04-17 | 4 | -6/+6 |
| | | | | - helpful to disambiguate Kernel::Memory namespace. | ||||
* | loader: nso: Fix loading of static objects to be properly sized and aligned. | bunnei | 2020-04-17 | 1 | -19/+9 |
| | |||||
* | core: loader: Remove check for 32-bit. | bunnei | 2020-03-03 | 1 | -6/+0 |
| | |||||
* | loader: provide default arguments (zero byte) to NSOs | Michael Scire | 2020-01-23 | 2 | -3/+10 |
| | | | | | | | | | | Certain newer unity games (Terraria, Pokemon Mystery Dungeon) require that the argument region be populated. Failure to do so results in an integer underflow in argument count, and eventually an unmapped read at 0x800000000. Providing this default fixes this. Note that the behavior of official software is as yet unverified, arguments-wise. | ||||
* | core/loaders: Simplify PhysicalMemory usage. | Markus Wick | 2020-01-18 | 3 | -8/+12 |
| | | | | | It is currently a std::vector, however we might want to replace it with a more fancy allocator. So we can't use the C++ iterators any more. | ||||
* | core/loader: Track the NSO build ID of the current process | Zach Hilman | 2019-09-30 | 1 | -0/+1 |
| | |||||
* | nso: Pass build ID directly | Zach Hilman | 2019-09-22 | 1 | -2/+1 |
| | | | As opposed to converting to string and then back to hex array | ||||
* | yuzu: Port old usages of Filesystem namespace to FilesystemController | Zach Hilman | 2019-09-21 | 5 | -5/+15 |
| | |||||
* | Merge pull request #2576 from DarkLordZach/nsp-fix-1 | David | 2019-09-21 | 1 | -14/+13 |
|\ | | | | | nsp: Fix various errors with loading and processing of extracted NSPs | ||||
| * | nsp: Correct status codes for extracted NSPs | Zach Hilman | 2019-06-10 | 1 | -13/+12 |
| | | | | | | | | Avoids all extracted NSPs being marked as error file type because they don't have program NCAs. | ||||
| * | nsp: Use title ID from NPDM metadata for extracted type NSPs | Zach Hilman | 2019-06-10 | 1 | -1/+1 |
| | | | | | | | | Avoids 0 being used as title ID for all extracted NSPs. | ||||
* | | nro: Implement ReadControlData | Nick Renieris | 2019-09-07 | 2 | -0/+10 |
| | | | | | | | | | | | | With this, the "Developer" field in the Properties for homebrew is now populated. Signed-off-by: Nick Renieris <velocityra@gmail.com> | ||||
* | | VM_Manager: Align allocated memory to 256bytes | Fernando Sahmkow | 2019-07-19 | 4 | -4/+4 |
| | | | | | | | | | | | | This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory. | ||||
* | | file_sys: Rename other ContentRecordType members | Bakugo | 2019-07-02 | 2 | -2/+3 |
| | | |||||
* | | Merge pull request #2546 from DarkLordZach/kips | bunnei | 2019-06-21 | 4 | -1/+157 |
|\ \ | | | | | | | loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files | ||||
| * | | kernel_executable: Optimize BLZ decompression | Zach Hilman | 2019-06-07 | 1 | -4/+8 |
| | | | |||||
| * | | loader: Add recognition for KIP file type | Zach Hilman | 2019-06-05 | 2 | -0/+11 |
| | | | |||||
| * | | loader: Add KIP and INI file parser-specific errors | Zach Hilman | 2019-06-05 | 2 | -1/+9 |
| | | | |||||
| * | | loader: Add AppLoader_KIP for KIP files | Zach Hilman | 2019-06-05 | 2 | -0/+133 |
| | | | |||||
* | | | Merge pull request #2482 from DarkLordZach/prepo | bunnei | 2019-06-21 | 13 | -0/+64 |
|\ \ \ | | | | | | | | | core: Add detailed local reporting feature for development | ||||
| * | | | loader: Move NSO module tracking to AppLoader | Zach Hilman | 2019-05-26 | 13 | -3/+64 |
| | | | | | | | | | | | | Also cleanup of general stuff | ||||
| * | | | core: Track load offsets of NSO modules | Zach Hilman | 2019-05-25 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | Needed for backtrace decomposition | ||||
* | | | | common/hex_util: Combine HexVectorToString() and HexArrayToString() | Lioncash | 2019-06-12 | 1 | -2/+2 |
| |_|/ |/| | | | | | | | | | | | | | | These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays. | ||||
* | | | Merge pull request #2526 from lioncash/global | Zach Hilman | 2019-06-05 | 1 | -11/+0 |
|\ \ \ | |_|/ |/| | | core/telemetry_session: Remove usages of the global system accessor | ||||
| * | | core/loader: Remove LoadKernelSystemMode | Lioncash | 2019-05-29 | 1 | -11/+0 |
| |/ | | | | | | | This is a hold-over from Citra and doesn't apply to yuzu. | ||||
* / | loader/nso: Silence sign-comparison warning | Lioncash | 2019-05-25 | 1 | -1/+1 |
|/ | | | | | This was previously performing a size_t == int comparison. Silences a -Wsign-compare warning. | ||||
* | loader/nso: Remove left-in debug pragma | Lioncash | 2019-05-01 | 1 | -2/+0 |
| | | | | Unintentionally introduced in 552d5071fa171165e4054392d8bb6bf2ecc924e2 | ||||
* | core/core: Move process execution start to System's Load() | Lioncash | 2019-04-12 | 17 | -98/+128 |
| | | | | | | | | | This gives us significantly more control over where in the initialization process we start execution of the main process. Previously we were running the main process before the CPU or GPU threads were initialized (not good). This amends execution to start after all of our threads are properly set up. | ||||
* | Merge pull request #1957 from DarkLordZach/title-provider | bunnei | 2019-04-10 | 1 | -2/+4 |
|\ | | | | | file_sys: Provide generic interface for accessing game data | ||||
| * | patch_manager: Dump NSO name with build ID | Zach Hilman | 2019-03-28 | 1 | -2/+4 |
| | | |||||
* | | core: Add missing override specifiers where applicable | Lioncash | 2019-04-04 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity. | ||||
* | | Merge pull request #2093 from FreddyFunk/disk-cache-better-compression | bunnei | 2019-04-04 | 1 | -10/+7 |
|\ \ | | | | | | | Better LZ4 compression utilization for the disk based shader cache and the yuzu build system | ||||
| * | | Addressed feedback | unknown | 2019-03-29 | 1 | -4/+4 |
| | | | |||||
| * | | core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead. | unknown | 2019-03-29 | 1 | -10/+7 |
| |/ | |||||
* | | Merge pull request #2281 from lioncash/memory | bunnei | 2019-04-02 | 3 | -3/+3 |
|\ \ | |/ |/| | kernel/codeset: Make CodeSet's memory data member a regular std::vector | ||||
| * | kernel/codeset: Make CodeSet's memory data member a regular std::vector | Lioncash | 2019-03-22 | 3 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | The use of a shared_ptr is an implementation detail of the VMManager itself when mapping memory. Because of that, we shouldn't require all users of the CodeSet to have to allocate the shared_ptr ahead of time. It's intended that CodeSet simply pass in the required direct data, and that the memory manager takes care of it from that point on. This means we just do the shared pointer allocation in a single place, when loading modules, as opposed to in each loader. | ||||
* | | Merge pull request #2280 from lioncash/nso | bunnei | 2019-03-23 | 2 | -59/+81 |
|\ \ | | | | | | | loader/nso: Minor refactoring | ||||
| * | | loader/nso: Place translation unit specific functions into an anonymous namespace | Lioncash | 2019-03-22 | 1 | -20/+21 |
| | | | | | | | | | | | | | | | Makes it impossible to indirectly violate the ODR in some other translation unit due to these existing. | ||||
| * | | loader/nso: Clean up use of magic constants | Lioncash | 2019-03-22 | 1 | -4/+6 |
| | | | | | | | | | | | | | | | Now that the NSO header has the proper size, we can just use sizeof on it instead of having magic constants. | ||||
| * | | file_sys/patch_manager: Deduplicate NSO header | Lioncash | 2019-03-22 | 2 | -50/+57 |
| | | | | | | | | | | | | | | | | | | This source file was utilizing its own version of the NSO header. Instead of keeping this around, we can have the patch manager also use the version of the header that we have defined in loader/nso.h | ||||
| * | | loader/nso: Fix definition of the NSO header struct | Lioncash | 2019-03-22 | 1 | -3/+15 |
| |/ | | | | | | | | | | | | | | | The total struct itself is 0x100 (256) bytes in size, so we should be providing that amount of data. Without the data, this can result in omitted data from the final loaded NSO file. | ||||
* / | file_sys/cheat_engine: Remove use of global system accessors | Lioncash | 2019-03-22 | 1 | -4/+4 |
|/ | | | | | Instead, pass in the core timing instance and make the dependency explicit in the interface. | ||||
* | Merge pull request #1933 from DarkLordZach/cheat-engine | bunnei | 2019-03-22 | 1 | -0/+12 |
|\ | | | | | file_sys: Implement parser and interpreter for game memory cheats | ||||
| * | vm_manager: Remove cheat-specific ranges from VMManager | Zach Hilman | 2019-03-05 | 3 | -11/+4 |
| | | |||||
| * | loader/nso: Set main code region in VMManager | Zach Hilman | 2019-03-05 | 3 | -2/+21 |
| | | | | | | | | For rom directories (and by extension, XCI/NSP/NAX/NCA) this is for the NSO with name 'main', for regular NSOs, this is the NSO. | ||||
* | | kernel: Move CodeSet structure to its own source files | Lioncash | 2019-03-20 | 3 | -0/+3 |
| | | | | | | | | | | | | | | | | Given this is utilized by the loaders, this allows avoiding inclusion of the kernel process definitions where avoidable. This also keeps the loading format for all executable data separate from the kernel objects. | ||||
* | | loader: Remove Linker class | Lioncash | 2019-03-20 | 2 | -183/+0 |
| | | | | | | | | Given the class is now currently unused, it can be removed. | ||||
* | | loader: Remove Linker inheritance from NRO and NSO loaders | Lioncash | 2019-03-20 | 2 | -4/+4 |
|/ | | | | | | Neither the NRO or NSO loaders actually make use of the functions or members provided by the Linker interface, so we can just remove the inheritance altogether. | ||||
* | loader: Propagate NCA logo section to ReadBanner and ReadLogo | Zach Hilman | 2019-01-15 | 9 | -0/+61 |
| | |||||
* | web_browser: Add bounds checking to applet interface | Zach Hilman | 2018-12-29 | 2 | -2/+0 |
| | |||||
* | loader: Add accessor for Manual RomFS | Zach Hilman | 2018-12-28 | 5 | -0/+30 |
| | |||||
* | Merge pull request #1928 from lioncash/caps | bunnei | 2018-12-27 | 3 | -2/+9 |
|\ | | | | | kernel: Handle kernel capability descriptors | ||||
| * | kernel/process: Hook up the process capability parser to the process itself | Lioncash | 2018-12-21 | 3 | -2/+9 |
| | | | | | | | | | | While we're at it, we can also toss out the leftover capability parsing from Citra. | ||||
* | | loader: Add accessor for game control data | Zach Hilman | 2018-12-27 | 5 | -9/+14 |
|/ | |||||
* | Merge pull request #1819 from DarkLordZach/disable-addons | bunnei | 2018-12-11 | 5 | -0/+26 |
|\ | | | | | patch_manager: Add support for disabling patches | ||||
| * | loader: Add support for reading the name of game's developer | Zach Hilman | 2018-12-03 | 5 | -0/+26 |
| | | |||||
* | | loaders: Make GetFileType() a const qualified member function | Lioncash | 2018-12-05 | 10 | -10/+10 |
| | | | | | | | | | | | | No implementations actually modify instance state (and it would be questionable to do that in the first place given the name), so we can make this a const member function. | ||||
* | | loader/nso: Remove dependency on the System class | Lioncash | 2018-12-03 | 3 | -8/+11 |
| | | | | | | | | | | Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class. | ||||
* | | loader/nro: Make the static LoadNro function internally linked | Lioncash | 2018-12-03 | 2 | -7/+5 |
| | | | | | | | | | | This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed. | ||||
* | | loader/nro: Remove dependency on the System class | Lioncash | 2018-12-03 | 2 | -10/+13 |
|/ | | | | | | Load() is already given the process instance as a parameter, so instead of coupling the class to the System class, we can just forward that parameter to LoadNro() | ||||
* | Merge pull request #1620 from DarkLordZach/ldr-ro | bunnei | 2018-11-19 | 1 | -2/+5 |
|\ | | | | | ldr_ro: Complete LDR:RO implementation | ||||
| * | process: Make MirrorMemory take state to map new memory as | Zach Hilman | 2018-11-15 | 1 | -2/+5 |
| | | | | | | | | Credits to Subv | ||||
* | | Merge pull request #1618 from DarkLordZach/dump-nso | bunnei | 2018-11-15 | 1 | -1/+1 |
|\ \ | |/ |/| | patch_manager: Add support for dumping uncompressed NSOs | ||||
| * | patch_manager: Add support for dumping decompressed NSOs | Zach Hilman | 2018-10-29 | 1 | -1/+1 |
| | | | | | | | | When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID. | ||||
* | | Merge pull request #1608 from DarkLordZach/save-data-reader | bunnei | 2018-11-14 | 1 | -0/+5 |
|\ \ | | | | | | | [ns|fsp_srv]: Implement various functions to boot Checkpoint | ||||
| * | | loader/nro: Call RegisterRomFS from Load | Zach Hilman | 2018-10-29 | 1 | -0/+5 |
| |/ | | | | | | | Allows NRO homebrew to use the RomFS in the ASET section. | ||||
* / | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2018-10-30 | 1 | -2/+3 |
|/ | | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build | ||||
* | loader/nsp: Move secondary loader initialization to constructor | Zach Hilman | 2018-10-27 | 1 | -17/+20 |
| | | | | Prevents nullptr bug when trying to dump the RomFS of an NSP resulting from secondary_loader not being initialized. | ||||
* | nro: Make LoadNro method accessible outside of apploader code. | bunnei | 2018-10-26 | 2 | -6/+18 |
| | |||||
* | XCI: Add function for checking the existence of the program NCA | Lioncash | 2018-10-16 | 1 | -2/+1 |
| | | | | | | The only reason the getter existed was to check whether or not the program NCA was null. Instead, we can just provide a function to query for the existence of it, instead of exposing it entirely. | ||||
* | nso: Return an optional address from LoadModule | Lioncash | 2018-10-15 | 5 | -16/+29 |
| | | | | | If a malformed NSO is attempted to be loaded, we shouldn't continue onwards. We should be reporting an error and bailing out. | ||||
* | nso: Make LoadModule take a VfsFile by const reference | Lioncash | 2018-10-15 | 3 | -11/+9 |
| | |||||
* | nro: Make LoadNro take a VfsFile by const reference | Lioncash | 2018-10-15 | 2 | -6/+6 |
| | | | | | | This function doesn't need to care about ownership semantics, so we can just pass it a reference to the file itself, rather than a std::shared_ptr alias. | ||||
* | kernel/process: Make CodeSet a regular non-inherited object | Lioncash | 2018-10-12 | 3 | -43/+31 |
| | | | | | | | | These only exist to ferry data into a Process instance and end up going out of scope quite early. Because of this, we can just make it a plain struct for holding things and just std::move it into the relevant function. There's no need to make this inherit from the kernel's Object type. | ||||
* | patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr | Lioncash | 2018-10-09 | 4 | -4/+4 |
| | | | | | | | | | | | | | | Neither of these functions require the use of shared ownership of the returned pointer. This makes it more difficult to create reference cycles with, and makes the interface more generic, as std::shared_ptr instances can be created from a std::unique_ptr, but the vice-versa isn't possible. This also alters relevant functions to take NCA arguments by const reference rather than a const reference to a std::shared_ptr. These functions don't alter the ownership of the memory used by the NCA instance, so we can make the interface more generic by not assuming anything about the type of smart pointer the NCA is contained within and make it the caller's responsibility to ensure the supplied NCA is valid. | ||||
* | nso/nro: Use default allocation size for arg_data | Zach Hilman | 2018-10-07 | 4 | -14/+20 |
| | |||||
* | cmd: Support passing game arguments from command line | Zach Hilman | 2018-10-07 | 2 | -2/+2 |
| | | | | Uses -p (--program) and following string as args. | ||||
* | nso/nro: Add NSO arguments structure to data section | Zach Hilman | 2018-10-07 | 4 | -3/+38 |
| | | | | Only added if arguments string is non-empty and a pass is requested by loader. | ||||
* | romfs_factory: Extract packed update setter to new function | Zach Hilman | 2018-10-05 | 2 | -0/+11 |
| | |||||
* | loader: Add getter for packed update | Zach Hilman | 2018-10-05 | 6 | -3/+58 |
| | | | | Reads the update included with the game if it has one and adds the new ErrorNoPackedUpdate status. | ||||
* | loader: Add ReadRomFSIVFCOffset to NSP, XCI, and NAX loaders | Zach Hilman | 2018-10-05 | 6 | -6/+20 |
| | | | | Fixes errors with certain updates | ||||
* | nso: Optimize loading of IPS patches | Zach Hilman | 2018-10-02 | 3 | -6/+5 |
| | | | | Avoid resource-heavy classes and remove quasi-duplicated code. | ||||
* | deconstructed_rom_directory: Force NSO loader to patch NSOs | Zach Hilman | 2018-10-01 | 1 | -1/+3 |
| | |||||
* | nso: Add framework to support patching of uncompressed NSOs | Zach Hilman | 2018-10-01 | 2 | -2/+17 |
| | |||||
* | nso: Replace NSOHeader padding bytes with build ID | Zach Hilman | 2018-10-01 | 1 | -2/+1 |
| | |||||
* | kernel/process: Make data member variables private | Lioncash | 2018-09-30 | 4 | -4/+4 |
| | | | | | | | Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code. | ||||
* | loader: Make the Load() function take a process as a regular reference, not a SharedPtr | Lioncash | 2018-09-29 | 17 | -41/+27 |
| | | | | | | | | A process should never require being reference counted in this situation. If the handle to a process is freed before this function is called, it's definitely a bug with our lifetime management, so we can put the requirement in place for the API that the process must be a valid instance. | ||||
* | memory: Dehardcode the use of fixed memory range constants | Lioncash | 2018-09-25 | 4 | -22/+25 |
| | | | | | | | | The locations of these can actually vary depending on the address space layout, so we shouldn't be using these when determining where to map memory or be using them as offsets for calculations. This keeps all the memory ranges flexible and malleable based off of the virtual memory manager instance state. | ||||
* | process/vm_manager: Amend API to allow reading parameters from NPDM metadata | Lioncash | 2018-09-24 | 4 | -25/+4 |
| | | | | | | | | | Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this. | ||||
* | Added support for uncompressed NSOs (#1374) | David | 2018-09-21 | 1 | -3/+12 |
| | | | | | | * Added support for uncompressed NSOs * Moved compressed section check to NsoHeader | ||||
* | nax: Avoid re-parsing NAX data with GetFileType() | Lioncash | 2018-09-19 | 2 | -13/+19 |
| | | | | | | | | | An instance of the NAX apploader already has an existing NAX instance in memory. Calling directly into IdentifyType() directly would re-parse the whole file again into yet another NAX instance, only to toss it away again. This gets rid of unnecessary/redundant file parsing and allocations. | ||||
* | nax: Avoid unnecessary calls to AsNCA() in IdentifyType() | Lioncash | 2018-09-19 | 1 | -4/+8 |
| | | | | | | | | | AsNCA() allocates an NCA instance every time it's called. In the current manner it's used, it's quite inefficient as it's making a redundant allocation. We can just amend the order of the conditionals to make it easier to just call it once. | ||||
* | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 2 | -2/+2 |
| | |||||
* | kernel/thread: Include thread-related enums within the kernel namespace | Lioncash | 2018-09-13 | 2 | -2/+3 |
| | | | | | | Previously, these were sitting outside of the Kernel namespace, which doesn't really make sense, given they're related to the Thread class which is within the Kernel namespace. | ||||
* | bktr: Fix bucket overlap error | Zach Hilman | 2018-09-04 | 1 | -2/+2 |
| | |||||
* | drd: Parse title ID from program metadata | Zach Hilman | 2018-09-04 | 1 | -1/+8 |
| | |||||
* | patch_manager: Centralize Control-type NCA parsing | Zach Hilman | 2018-09-04 | 2 | -33/+8 |
| | |||||
* | game_list: Fix version display on non-NAND titles | Zach Hilman | 2018-09-04 | 1 | -1/+10 |
| | |||||
* | bktr: Implement IVFC offset shifting | Zach Hilman | 2018-09-04 | 3 | -0/+16 |
| | | | | Fixes base game read errors | ||||
* | bktr: Fix missing includes and optimize style | Zach Hilman | 2018-09-04 | 5 | -5/+5 |
| | |||||
* | loader: Add BKTR-specific error messages and codes | Zach Hilman | 2018-09-04 | 2 | -7/+24 |
| | |||||
* | loader: Ignore patches on NRO and DRD | Zach Hilman | 2018-09-04 | 4 | -0/+11 |
| | |||||
* | patch_manager: Add usages of patches to ExeFS | Zach Hilman | 2018-09-04 | 3 | -8/+30 |
| | |||||
* | main: Only show DRD deprecation warning once | Zach Hilman | 2018-09-04 | 1 | -1/+1 |
| | |||||
* | nsp: Comply with style and performance guidelines | Zach Hilman | 2018-09-04 | 2 | -3/+10 |
| | |||||
* | loader: Add AppLoader for NSP files | Zach Hilman | 2018-09-04 | 2 | -0/+182 |
| | |||||
* | card_image: Parse XCI secure partition with NSP | Zach Hilman | 2018-09-04 | 1 | -4/+3 |
| | | | | Eliminated duplicate code and adds support for Rev1+ carts | ||||
* | drd: Load title ID from program metadata | Zach Hilman | 2018-09-04 | 1 | -3/+1 |
| | | | | Previously only loaded from control metadata | ||||
* | loader: Add NSP file type and NSP-specific errors | Zach Hilman | 2018-09-04 | 2 | -2/+14 |
| | |||||
* | vfs_real: Forward declare IOFile | Lioncash | 2018-09-02 | 2 | -5/+6 |
| | | | | | | Eliminates the need to rebuild some source files if the file_util header ever changes. This also uncovered some indirect inclusions, which have also been fixed. | ||||
* | core/core: Replace includes with forward declarations where applicable | Lioncash | 2018-08-31 | 4 | -0/+4 |
| | | | | | | | | | | | The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers. | ||||
* | kernel: Eliminate kernel global state | Lioncash | 2018-08-29 | 4 | -7/+16 |
| | | | | | | | | | | | | | | | | | | | | | | As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header. | ||||
* | file_sys/crypto: Fix missing/unnecessary includes | Zach Hilman | 2018-08-25 | 1 | -1/+0 |
| | |||||
* | file_sys: Cut down on includes and copies | Zach Hilman | 2018-08-23 | 2 | -4/+11 |
| | |||||
* | loader: Add new NAX-specific errors and messages | Zach Hilman | 2018-08-23 | 2 | -1/+27 |
| | |||||
* | nax: Add AppLoader_NAX and update loader to support it | Zach Hilman | 2018-08-23 | 4 | -2/+121 |
| | |||||
* | xci: Fix error masking issue | Zach Hilman | 2018-08-23 | 1 | -5/+6 |
| | | | | Prevents NCA-related errors from being masked into MissingProgramNCA or MissingKeyFile | ||||
* | service/filesystem: Use forward declarations where applicable | Lioncash | 2018-08-21 | 2 | -0/+2 |
| | | | | | | | | Avoids the need to rebuild multiple source files if the filesystem code headers change. This also gets rid of a few instances of indirect inclusions being relied upon | ||||
* | Merge pull request #1075 from lioncash/include | bunnei | 2018-08-16 | 4 | -35/+22 |
|\ | | | | | loader/{nca, xci}: Remove unnecessary includes and unused member variables | ||||
| * | loader/nca: Remove unnecessary includes and member variables | Lioncash | 2018-08-15 | 2 | -20/+11 |
| | | |||||
| * | loader/xci: Remove unnecessary includes and member variables | Lioncash | 2018-08-15 | 2 | -15/+11 |
| | | | | | | | | | | | | | | | | Many of these aren't necessary and will cause this file to be required to be recompiled whenever any changes to those files are made, which lengthens compile times for no reason. This also removes an unused metadata variable from AppLoader_XCI | ||||
* | | Merge pull request #1005 from DarkLordZach/registered-fmt | bunnei | 2018-08-16 | 1 | -0/+2 |
|\ \ | | | | | | | file_sys: Add support for registration format | ||||
| * | | loader: Recognize filename '00' as NCA | Zach Hilman | 2018-08-12 | 1 | -0/+2 |
| | | | | | | | | | | | | Needed to avoid mismatch filetype warnings on split NAND NCAs | ||||
* | | | loader: Make ResultStatus directly compatible with fmt | Lioncash | 2018-08-15 | 2 | -10/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We can make the enum class type compatible with fmt by providing an overload of operator<<. While we're at it, perform proper bounds checking. If something exceeds the array, it should be a hard fail, because it's, without a doubt, a programmer error in this case. | ||||
* | | | loader: Remove address mapping remnants from citra | Lioncash | 2018-08-15 | 6 | -17/+0 |
| |/ |/| | | | | | These mappings are leftovers from citra and don't apply to the Switch. | ||||
* | | made ResultStatus a u16 | David Marcec | 2018-08-12 | 1 | -1/+1 |
| | | |||||
* | | Fixed invalid cast in loader | David Marcec | 2018-08-12 | 1 | -1/+1 |
|/ | | | | GetMessageForResultStatus takes a u16, not a size_t. | ||||
* | loader: Add more descriptive errors | Zach Hilman | 2018-08-10 | 7 | -31/+111 |
| | | | Full list of new errors and descriptions in core/loader/loader.h | ||||
* | loader: Remove unused IdentifyFile overload | Zach Hilman | 2018-08-09 | 2 | -12/+0 |
| | |||||
* | Merge pull request #850 from DarkLordZach/icon-meta | bunnei | 2018-08-08 | 8 | -8/+115 |
|\ | | | | | Add Icons and Metadata Support | ||||
| * | loader: Add icon and title support to XCI | Zach Hilman | 2018-08-07 | 3 | -3/+37 |
| | | |||||
| * | Use const where applicable | Zach Hilman | 2018-08-07 | 1 | -1/+1 |
| | | |||||
| * | Avoid parsing RomFS to directory in NCA | Zach Hilman | 2018-08-07 | 6 | -6/+79 |
| | | |||||
* | | loader: Fix scope error in DeconstructedRomDirectory | Zach Hilman | 2018-08-07 | 1 | -1/+1 |
|/ | |||||
* | loader: Make AppLoader_NCA rely on directory loading code | Zach Hilman | 2018-08-06 | 4 | -37/+24 |
| | | | Eliminates duplicate code shared between their Load methods, after all the only difference is how the romfs is handled. | ||||
* | Merge pull request #849 from DarkLordZach/xci | bunnei | 2018-08-04 | 6 | -7/+145 |
|\ | | | | | XCI and Encrypted NCA Support | ||||
| * | Fix merge conflicts with opus and update docs | Zach Hilman | 2018-08-01 | 1 | -0/+2 |
| | | |||||
| * | Use more descriptive error codes and messages | Zach Hilman | 2018-08-01 | 2 | -2/+3 |
| | | |||||
| * | Use ErrorEncrypted where applicable and fix no keys crash | Zach Hilman | 2018-08-01 | 1 | -0/+4 |
| | | |||||
| * | Add missing includes and use const where applicable | Zach Hilman | 2018-08-01 | 1 | -0/+3 |
| | | |||||
| * | Make XCI comply to review and style guidelines | Zach Hilman | 2018-08-01 | 2 | -5/+5 |
| | | |||||
| * | Remove files that are not used | Zach Hilman | 2018-08-01 | 6 | -6/+134 |
| | | |||||
* | | kernel/process: Use accessors instead of class members for referencing segment array | Lioncash | 2018-08-03 | 3 | -5/+5 |
| | | | | | | | | | | | | | | Using member variables for referencing the segments array increases the size of the class in memory for little benefit. The same behavior can be achieved through the use of accessors that just return the relevant segment. | ||||
* | | kernel: Move object class to its own source files | Lioncash | 2018-08-02 | 5 | -5/+5 |
|/ | | | | | | General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code. | ||||
* | deconstructed_rom_directory: Remove unused FindRomFS() function | Lioncash | 2018-07-24 | 1 | -29/+0 |
| | |||||
* | core: Make converting constructors explicit where applicable | Lioncash | 2018-07-24 | 2 | -2/+2 |
| | | | | | Avoids unwanted implicit conversions. Thankfully, given the large amount of cleanup in past PRs, only this tiny amount is left over to cover. | ||||
* | Merge pull request #784 from lioncash/loader | bunnei | 2018-07-24 | 1 | -1/+1 |
|\ | | | | | loader: Minor cleanup | ||||
| * | loader: Remove unnecessary constructor call in IdentifyFile() | Lioncash | 2018-07-23 | 1 | -1/+1 |
| | | | | | | | | | | | | RealVfsFile inherits from VfsFile, the instance from std::make_shared is already compatible with the function argument type, making the copy constructor call unnecessary. | ||||
* | | Merge pull request #783 from lioncash/linker | bunnei | 2018-07-24 | 2 | -7/+4 |
|\ \ | | | | | | | linker: Remove unused parameter from WriteRelocations() | ||||
| * | | linker: Remove unused parameter from WriteRelocations() | Lioncash | 2018-07-23 | 2 | -7/+4 |
| |/ | | | | | | | | | is_jump_relocation is never used within the function, so we can just remove it. | ||||
* | | nro: Replace inclusion with a forward declaration | Lioncash | 2018-07-23 | 2 | -1/+8 |
| | | | | | | | | | | It's sufficient to use a forward declaration instead of a direct inclusion here. | ||||
* | | nro: Make bracing consistent | Lioncash | 2018-07-23 | 1 | -10/+24 |
| | | | | | | | | | | Makes the code more uniform, and also braces cases where the body of an unbraced conditional travels more than one line. | ||||
* | | nro: Make constructor explicit | Lioncash | 2018-07-23 | 1 | -1/+1 |
| | | | | | | | | | | Makes it consistent with the other Apploader constructors, and prevents implicit conversions. | ||||
* | | nro: Remove unused forward declaration | Lioncash | 2018-07-23 | 1 | -2/+0 |
|/ | | | | This isn't used anywhere in the header. | ||||
* | NRO Assets and NACP file format | Zach Hilman | 2018-07-23 | 2 | -1/+90 |
| | | | | | | Cleanup Review fixes | ||||
* | file_util, vfs: Use std::string_view where applicable | Lioncash | 2018-07-22 | 1 | -1/+2 |
| | | | | | Avoids unnecessary construction of std::string instances where applicable. | ||||
* | file_util: Use a u64 to represent number of entries | Lioncash | 2018-07-22 | 1 | -1/+1 |
| | | | | | This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away. | ||||
* | Merge pull request #752 from Subv/vfs_load | bunnei | 2018-07-21 | 1 | -5/+2 |
|\ | | | | | Loader: Only print the module names and addresses if they actually exist. | ||||
| * | Loader: Only print the module names and addresses if they actually exist. | Subv | 2018-07-21 | 1 | -5/+2 |
| | | |||||
* | | Merge pull request #737 from lioncash/move | bunnei | 2018-07-20 | 2 | -2/+4 |
|\ \ | | | | | | | filesys/loader: std::move VirtualFile instances in constructors where applicable | ||||
| * | | loader/{nca, nro}: std::move VirtualFile in the constructors where applicable | Lioncash | 2018-07-20 | 2 | -2/+4 |
| |/ | | | | | | | This avoids unnecessary atomic reference count increments and decrements | ||||
* | | nso: Silence implicit sign conversion warnings | Lioncash | 2018-07-20 | 1 | -4/+6 |
| | | |||||
* | | nso: Remove unused function ReadSegment() | Lioncash | 2018-07-20 | 1 | -13/+0 |
|/ | |||||
* | Merge pull request #719 from lioncash/docs | bunnei | 2018-07-20 | 2 | -5/+5 |
|\ | | | | | loader: Amend Doxygen comments | ||||
| * | loader: Amend Doxygen comments | Lioncash | 2018-07-19 | 2 | -5/+5 |
| | | | | | | | | These weren't adjusted when VFS was introduced | ||||
* | | Merge pull request #718 from lioncash/read | bunnei | 2018-07-20 | 1 | -4/+6 |
|\ \ | | | | | | | loader/nso: Check if read succeeded in IdentifyFile() before checking magic value | ||||
| * | | loader/nso: Check if read succeeded in IdentifyFile() before checking magic value | Lioncash | 2018-07-19 | 1 | -4/+6 |
| |/ | | | | | | | | | | | We should always assume the filesystem is volatile and check each IO operation. While we're at it reorganize checks so that early-out errors are near one another. | ||||
* | | loader/nro: Resolve sign mismatch warnings | Lioncash | 2018-07-19 | 1 | -1/+1 |
| | | |||||
* | | loader/nso: Remove unnecessary vector resizes | Lioncash | 2018-07-19 | 1 | -4/+2 |
| | | | | | | | | We can just initialize these vectors directly via their constructor. | ||||
* | | loader/nso: Resolve sign mismatch warnings | Lioncash | 2018-07-19 | 1 | -1/+1 |
|/ | |||||
* | Virtual Filesystem 2: Electric Boogaloo (#676) | Zach Hilman | 2018-07-19 | 12 | -525/+146 |
| | | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression | ||||
* | General Filesystem and Save Data Fixes (#670) | Zach Hilman | 2018-07-17 | 3 | -5/+3 |
| | |||||
* | More improvements to GDBStub (#653) | Hedges | 2018-07-13 | 4 | -0/+15 |
| | | | | | | | | | | | * More improvements to GDBStub - Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS. - List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names. - Initial support for floating point registers. * Tidy up as requested in PR feedback * Tidy up as requested in PR feedback | ||||
* | Revert "Virtual Filesystem (#597)" | bunnei | 2018-07-08 | 12 | -140/+540 |
| | | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2. | ||||
* | Virtual Filesystem (#597) | Zach Hilman | 2018-07-06 | 12 | -540/+140 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename | ||||
* | Update clang format | James Rowe | 2018-07-03 | 1 | -5/+5 |
| | |||||
* | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 6 | -27/+27 |
| | |||||
* | Add support for decrypted NCA files (#567) | Zach Hilman | 2018-06-21 | 6 | -11/+434 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | general: Make formatting of logged hex values more straightforward | Lioncash | 2018-05-02 | 2 | -4/+4 |
| | | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on). | ||||
* | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2018-04-27 | 1 | -1/+1 |
| | |||||
* | loader: Move old logging macros over to new fmt-capable ones | Lioncash | 2018-04-25 | 5 | -26/+25 |
| | |||||
* | Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs | Subv | 2018-04-21 | 2 | -2/+2 |
| | |||||
* | core, main.h: Abort on 32Bit ROMs (#309) | N00byKing | 2018-04-06 | 2 | -0/+6 |
| | | | | | | * core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar | ||||
* | deconstructed_rom_directory.cpp: Fix Typo | N00byKing | 2018-04-03 | 1 | -1/+1 |
| | |||||
* | memory: Fix stack region. | bunnei | 2018-03-31 | 3 | -3/+3 |
| | |||||
* | Clean Warnings (?) | N00byKing | 2018-03-19 | 1 | -1/+1 |
| | |||||
* | kernel: Move stack region outside of application heap. | bunnei | 2018-03-16 | 3 | -3/+3 |
| | |||||
* | core: Move process creation out of global state. | bunnei | 2018-03-14 | 4 | -9/+5 |
| | |||||
* | Kernel: Store the program id in the Process class instead of the CodeSet class. | Subv | 2018-03-02 | 5 | -12/+12 |
| | | | | There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them. | ||||
* | loader: Check error on NPDM load, use TID for CodeSet | shinyquagsire23 | 2018-02-25 | 3 | -6/+10 |
| | |||||
* | loader: Use NPDM information when loading NSOs | shinyquagsire23 | 2018-02-25 | 2 | -4/+15 |
| | |||||
* | nso: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -2/+4 |
| | |||||
* | deconstructed_rom_directory: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -3/+4 |
| | |||||
* | Changed .istorage to .romfs | David Marcec | 2018-02-05 | 2 | -5/+5 |
| | |||||
* | deconstructed_rom_directory: Implement istorage loading for RomFS. | bunnei | 2018-01-21 | 2 | -2/+71 |
| | |||||
* | Merge pull request #92 from gdkchan/nro_refactor | bunnei | 2018-01-21 | 1 | -2/+2 |
|\ | | | | | Fix NRO entry point | ||||
| * | Fix NRO Entry Point | gdkchan | 2018-01-18 | 1 | -2/+2 |
| | | |||||
* | | loader: Minor style fix in deconstructed_rom_directory | Rozlette | 2018-01-21 | 1 | -1/+0 |
| | | |||||
* | | Merge pull request #117 from jroweboy/clang-format | bunnei | 2018-01-21 | 1 | -2/+3 |
|\ \ | | | | | | | Clang format as a build target | ||||
| * | | Format: Run the new clang format on everything | James Rowe | 2018-01-21 | 1 | -2/+3 |
| |/ | |||||
* | | loader: Clean up ctors and includes. | bunnei | 2018-01-20 | 10 | -18/+22 |
| | | |||||
* | | loader: Add DeconstructedRomDirectory for game dumps. | bunnei | 2018-01-20 | 4 | -0/+154 |
| | | |||||
* | | loader: Refactor to also pass filepath into IdentifyType. | bunnei | 2018-01-20 | 8 | -19/+19 |
| | | |||||
* | | nso: Remove code specific to directory loading. | bunnei | 2018-01-20 | 2 | -17/+6 |
|/ | |||||
* | Fix NRO loading | gdkchan | 2018-01-18 | 1 | -20/+9 |
| | |||||
* | Remove relocation on NSO/NRO | gdkchan | 2018-01-17 | 3 | -19/+2 |
| | |||||
* | Merge pull request #44 from Rozelette/master | bunnei | 2018-01-16 | 1 | -3/+7 |
|\ | | | | | nso: Modify .bss size calculation logic | ||||
| * | nso: Modify .bss size calculation logic | Rozlette | 2018-01-16 | 1 | -3/+7 |
| | | |||||
* | | clang-format | MerryMage | 2018-01-16 | 3 | -10/+8 |
|/ | |||||
* | nso: Load subsdk4 if available. | bunnei | 2018-01-15 | 1 | -1/+1 |
| | |||||
* | Add missing FileType declarations in GuessFromExtension and GetFileTypeString | Thog | 2018-01-14 | 1 | -0/+8 |
| | |||||
* | yuzu: Update license text to be consistent across project. | bunnei | 2018-01-13 | 6 | -6/+6 |
| | |||||
* | nso: Always load the filepath specified by the user. | bunnei | 2018-01-07 | 1 | -1/+3 |
| | |||||
* | nso: Load more common submodules. | bunnei | 2017-10-23 | 1 | -15/+11 |
| | |||||
* | memory: Support 32-bit paging, move heap address space up. | bunnei | 2017-10-23 | 1 | -1/+1 |
| | |||||
* | core: Refactor MakeMagic usage and remove dead code. | bunnei | 2017-10-15 | 6 | -143/+10 |
| | |||||
* | nso: Add a log for loading submodules. | bunnei | 2017-10-14 | 1 | -0/+1 |
| | |||||
* | Remove more 3DS-specific code. | bunnei | 2017-10-13 | 1 | -2/+0 |
| | |||||
* | Remove lots more 3DS-specific code. | bunnei | 2017-10-13 | 6 | -774/+0 |
| | |||||
* | Merge remote-tracking branch 'upstream/master' into nx | bunnei | 2017-10-10 | 11 | -495/+182 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # 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 | ||||
| * | file_sys, loader: add support for reading TMDs to determine app paths | shinyquagsire23 | 2017-10-01 | 1 | -3/+14 |
| | | |||||
| * | Loaders: Don't automatically set the current process every time we load an application. | Subv | 2017-09-27 | 7 | -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. | Subv | 2017-09-25 | 2 | -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-tables | B3n30 | 2017-09-25 | 3 | -3/+3 |
| |\ | | | | | | | Switchable Page Tables | ||||
| | * | memory: Add GetCurrentPageTable/SetCurrentPageTable | MerryMage | 2017-09-24 | 3 | -3/+3 |
| | | | | | | | | | | | | Don't expose Memory::current_page_table as a global. | ||||
| * | | Loader/NCCH: Add support for loading application updates (#2927) | Max Thomas | 2017-09-25 | 3 | -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. | Subv | 2017-09-10 | 3 | -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) | B3n30 | 2017-08-19 | 1 | -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. | bunnei | 2017-08-04 | 3 | -12/+31 |
| | | |||||
* | | loader: Various improvements for NSO/NRO loaders. | bunnei | 2017-10-10 | 5 | -52/+34 |
| | | |||||
* | | loader: Add support for NRO, as well as various fixes and shared linker. | bunnei | 2017-10-06 | 8 | -146/+430 |
| | | |||||
* | | nso: Fixes to support homebrew NSOs without a MOD header. | bunnei | 2017-10-04 | 2 | -17/+23 |
| | | |||||
* | | nso: Refactor and allocate .bss section. | bunnei | 2017-09-30 | 5 | -119/+144 |
| | | |||||
* | | loader: Add support for loading an NSO. | bunnei | 2017-09-30 | 4 | -0/+340 |
| | | |||||
* | | elf: Check if machine is ARM. | bunnei | 2017-09-30 | 1 | -2/+9 |
|/ | |||||
* | telemetry: Log performance, configuration, and system data. | bunnei | 2017-07-18 | 1 | -2/+4 |
| | |||||
* | Addressed Bunnei's review comments, and made some other tweaks: | TheKoopaKingdom | 2017-06-03 | 2 | -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. | TheKoopaKingdom | 2017-06-03 | 2 | -4/+2 |
| | |||||
* | Made some changes from review comments: | TheKoopaKingdom | 2017-06-03 | 3 | -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. | TheKoopaKingdom | 2017-06-03 | 3 | -9/+19 |
| | |||||
* | telemetry: Log a few simple data fields throughout core. | bunnei | 2017-05-25 | 1 | -0/+3 |
| | |||||
* | Remove ability to load symbol maps | Yuri Kunde Schlesner | 2017-05-08 | 1 | -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 booting | wwylele | 2017-03-08 | 1 | -3/+6 |
| | |||||
* | loader: lower file name logging level | wwylele | 2017-03-08 | 1 | -1/+1 |
| | |||||
* | Doxygen: Amend minor issues (#2593) | Mat M | 2017-02-27 | 1 | -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 archive | wwylele | 2017-02-13 | 2 | -6/+6 |
| | |||||
* | loader: Add support for 3DSX special relocation types, fixes citra-emu/citra#2449 | Thomas Farr | 2017-01-18 | 1 | -9/+25 |
| | | | | As per devkitPro/3dstools@47bea18 | ||||
* | Fix some warnings (#2399) | Jonathan Hao | 2017-01-04 | 2 | -2/+2 |
| | |||||
* | Merge pull request #2240 from wwylele/auto-region | bunnei | 2016-12-30 | 2 | -0/+25 |
|\ | | | | | Config: auto-select region and language | ||||
| * | Config: auto-select region and language | wwylele | 2016-12-07 | 2 | -0/+25 |
| | | |||||
* | | loader: Remove duplicate docstrings. | bunnei | 2016-12-22 | 3 | -56/+0 |
| | | |||||
* | | loader: Implement ReadProgramId | MerryMage | 2016-12-15 | 3 | -0/+28 |
|/ | |||||
* | Kernel/Loader: Grab the system mode from the NCCH ExHeader. | Subv | 2016-11-28 | 3 | -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. | Subv | 2016-11-20 | 3 | -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 typos | Ricardo de Almeida Gonzaga | 2016-10-20 | 2 | -2/+2 |
| | |||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 4 | -4/+4 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 10 | -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-format | Yuri Kunde Schlesner | 2016-09-19 | 4 | -10/+5 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 9 | -208/+249 |
| | |||||
* | Loader: Split SMDH into its own header and import helpers from QGameList | Emmanuel Gil Peyrot | 2016-05-21 | 3 | -47/+136 |
| | | | | Also rewrite Qt wrappers to use those. | ||||
* | CitraQt: Simplify the game list loader code | Emmanuel Gil Peyrot | 2016-05-21 | 2 | -14/+12 |
| | |||||
* | Loader: Add a GetFileType method to get the type of a loaded file | Emmanuel Gil Peyrot | 2016-05-21 | 4 | -0/+30 |
| | |||||
* | Loader, Frontends: Refactor loader creation and game loading | Emmanuel Gil Peyrot | 2016-05-21 | 4 | -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_cpu | bunnei | 2016-05-08 | 1 | -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). | Subv | 2016-05-07 | 1 | -0/+3 |
| | | | | | | | | We do not currently implement any cores other than the AppCore (Core 0). | ||||
* | | fixup simple type conversions where possible | Alexander Laties | 2016-05-07 | 1 | -3/+3 |
| | | |||||
* | | fix:return proper error | wwylele | 2016-05-06 | 1 | -2/+3 |
| | | |||||
* | | add icon & title to game list | wwylele | 2016-05-04 | 6 | -23/+149 |
| | | |||||
* | | ncch: Use correct format specifier (for long long uint) | Sam Spilsbury | 2016-04-23 | 1 | -1/+1 |
|/ | |||||
* | core: Clean out some unnecessary header includes | Lioncash | 2016-04-16 | 1 | -5/+1 |
| | |||||
* | ncch:only decompress .code section | wwylele | 2016-04-14 | 1 | -2/+2 |
| | |||||
* | Merge pull request #1643 from MerryMage/make_unique | Mathew Maidment | 2016-04-06 | 2 | -4/+2 |
|\ | | | | | Common: Remove Common::make_unique, use std::make_unique | ||||
| * | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2016-04-05 | 2 | -4/+2 |
| | | |||||
* | | loader: Make MakeMagic constexpr | Lioncash | 2016-03-21 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #1344 from LittleWhite-tb/error-output | bunnei | 2016-03-09 | 1 | -3/+3 |
|\ | | | | | Output errors in GUI | ||||
| * | Improve error report from Init() functions | LittleWhite | 2016-03-08 | 1 | -1/+0 |
| | | | | | | | | Add error popup when citra initialization failed | ||||
| * | Display errors in GUI when loading ROM failed | LittleWhite | 2016-03-03 | 1 | -2/+3 |
| | | |||||
* | | Loader/NCCH: Log the program ID during loading | Yuri Kunde Schlesner | 2016-03-05 | 1 | -1/+2 |
|/ | | | | | This is useful for all sorts of things, but mainly to identify save folders more easily. | ||||
* | elf: Don't cast away const | Lioncash | 2016-01-25 | 1 | -3/+3 |
| | |||||
* | Merge pull request #1199 from Gareth422/encryption-check | bunnei | 2015-10-20 | 3 | -20/+25 |
|\ | | | | | Loader: Implement NCCH encryption check | ||||
| * | Loader: Change NCCH header types to be explicitly little-endian | Gareth Poole | 2015-10-11 | 2 | -18/+17 |
| | | |||||
| * | Loader: Implement encryption check | Gareth Poole | 2015-10-11 | 3 | -2/+8 |
| | | |||||
* | | CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls. | Emmanuel Gil Peyrot | 2015-10-09 | 1 | -2/+2 |
|/ | | | | The LOG_* function itself already appends one. | ||||
* | Merge pull request #1095 from archshift/game-list | bunnei | 2015-10-02 | 2 | -13/+41 |
|\ | | | | | Initial implementation of a game list | ||||
| * | Expose loader helper functions for identifying files. | archshift | 2015-10-01 | 2 | -13/+41 |
| | | |||||
* | | Implement 3dsx RomFS | Cruel | 2015-09-21 | 3 | -3/+61 |
|/ | |||||
* | General: Fix up doxygen comments | Lioncash | 2015-09-10 | 2 | -2/+4 |
| | |||||
* | Properly indicate that CIA support is not implemented yet | Benjamin Barenblat | 2015-08-15 | 1 | -0/+4 |
| | | | | | Make `Loader::LoadFile` return an `ErrorNotImplemented` if you call it on a CIA file. | ||||
* | Give CIA file type a name | Benjamin Barenblat | 2015-08-15 | 1 | -0/+2 |
| | | | | | Make `GetFileTypeString` return ‘CIA’ for CIA (CTR Importable Archive) files. | ||||
* | loader: Remove unnecessary else usages | Lioncash | 2015-07-26 | 1 | -9/+9 |
| | |||||
* | Core : Change variable type | zawata | 2015-07-19 | 1 | -1/+1 |
| | | | | and fix various warnings | ||||
* | Loader: Fix variable type and remove unused variable | Yuri Kunde Schlesner | 2015-07-14 | 1 | -2/+1 |
| | |||||
* | Loader: Remove unnecessary pointer indirection to IOFile | Yuri Kunde Schlesner | 2015-07-14 | 8 | -48/+48 |
| | |||||
* | FS: Stream RomFS from file instead of loading all of it to memory | condut | 2015-07-14 | 4 | -9/+20 |
| | |||||
* | Core: Properly configure address space when loading a binary | Yuri Kunde Schlesner | 2015-07-12 | 3 | -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 overrun | Yuri Kunde Schlesner | 2015-07-12 | 1 | -13/+16 |
| | |||||
* | Loader: Make 3dsx loader logs a bit less confusing | Yuri Kunde Schlesner | 2015-07-12 | 1 | -6/+3 |
| | |||||
* | Merge pull request #876 from linkmauve/include-cleanups | Yuri Kunde Schlesner | 2015-07-11 | 4 | -3/+13 |
|\ | | | | | Cleanup includes, mostly in common | ||||
| * | CitraQt: Cleanup includes. | Emmanuel Gil Peyrot | 2015-06-28 | 3 | -3/+10 |
| | | |||||
| * | Common: Cleanup key_map includes. | Emmanuel Gil Peyrot | 2015-06-28 | 2 | -0/+2 |
| | | |||||
| * | Common: Fix FileUtil includes, and everything relying on those. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+1 |
| | | |||||
* | | Loader: Remove log line causing warning | aroulin | 2015-07-08 | 1 | -1/+0 |
|/ | |||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 1 | -1/+1 |
| | |||||
* | Core/ResourceLimits: Implemented the basic structure of ResourceLimits. | Subv | 2015-05-15 | 3 | -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 files | Yuri Kunde Schlesner | 2015-05-15 | 4 | -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/memmap | Tony Wasserka | 2015-05-09 | 2 | -3/+3 |
|\ | | | | | Small memory map definitions cleanup | ||||
| * | Memory: Re-organize and rename memory area address constants | Yuri Kunde Schlesner | 2015-05-09 | 2 | -3/+3 |
| | | |||||
* | | Loader: Add missing include | Yuri Kunde Schlesner | 2015-05-09 | 1 | -0/+1 |
|/ | |||||
* | Loader: Remove .bin file support | Yuri Kunde Schlesner | 2015-05-09 | 2 | -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 => AddressMapping | Yuri Kunde Schlesner | 2015-05-09 | 4 | -5/+5 |
| | |||||
* | Loader/NCCH: Fix formatting of braces | Yuri Kunde Schlesner | 2015-05-09 | 1 | -9/+9 |
| | |||||
* | Process: Support parsing of exheader kernel caps | Yuri Kunde Schlesner | 2015-05-09 | 3 | -0/+3 |
| | |||||
* | Kernel: Remove g_program_id | Yuri Kunde Schlesner | 2015-05-09 | 3 | -11/+0 |
| | | | | This has been obsoleted by the field in Process. | ||||
* | Kernel: Introduce skeleton Process class to hold process data | Yuri Kunde Schlesner | 2015-05-09 | 8 | -29/+88 |
| | |||||
* | Common: Remove common.h | Yuri Kunde Schlesner | 2015-05-07 | 6 | -3/+11 |
| | |||||
* | Services/Loader: Use more sensible log formats for certain functions | purpasmart96 | 2015-04-28 | 2 | -14/+37 |
| | | | | along with more info being logged. | ||||
* | NCCH: Minor updates to the ncch header | purpasmart96 | 2015-03-15 | 1 | -11/+14 |
| | |||||
* | Build: Fixed some warnings | Subv | 2015-02-12 | 1 | -1/+3 |
| | |||||
* | FS: Allow multiple instances of the same archive type to be open at once | Yuri Kunde Schlesner | 2015-02-10 | 1 | -1/+1 |
| | |||||
* | core: Fix some warnings on OSX | Lioncash | 2015-02-03 | 1 | -1/+1 |
| | |||||
* | Merge pull request #514 from rohit-n/fix-warnings | bunnei | 2015-02-01 | 1 | -2/+2 |
|\ | | | | | Silence a few warnings. | ||||
| * | Silence a few warnings. | Rohit Nirmal | 2015-01-30 | 1 | -2/+2 |
| | | |||||
* | | loader: Add missing printf argument | Lioncash | 2015-01-30 | 1 | -1/+1 |
|/ | |||||
* | Loader: Clean up the ELF AppLoader. | Emmanuel Gil Peyrot | 2015-01-15 | 2 | -42/+35 |
| | |||||
* | Loader: Clean up the 3DSX AppLoader. | Emmanuel Gil Peyrot | 2015-01-15 | 1 | -17/+24 |
| | |||||
* | Loader: Clean up the NCCH AppLoader. | Emmanuel Gil Peyrot | 2015-01-15 | 1 | -51/+48 |
| | |||||
* | Loader: Display the type of the file being loaded. | Emmanuel Gil Peyrot | 2015-01-15 | 1 | -3/+23 |
| | |||||
* | Loader: Guess filetype from the magic, or fallback to the extension. | Emmanuel Gil Peyrot | 2015-01-15 | 8 | -26/+112 |
| | |||||
* | Loader: Don’t assume the file hasn’t been read before. | Emmanuel Gil Peyrot | 2015-01-15 | 3 | -4/+13 |
| | |||||
* | Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. | Emmanuel Gil Peyrot | 2015-01-15 | 8 | -176/+116 |
| | |||||
* | Loader: Initialize the default NCCH values in the class declaration, not in the constructor. | Emmanuel Gil Peyrot | 2015-01-15 | 2 | -8/+4 |
| | |||||
* | Loader: Remove the useless THREEDSXReader class. | Emmanuel Gil Peyrot | 2015-01-15 | 1 | -10/+4 |
| | |||||
* | Loader: Never forget to change is_loaded. | Emmanuel Gil Peyrot | 2015-01-15 | 6 | -7/+15 |
| | |||||
* | Loader: Don’t duplicate the docstring into the cpp file. | Emmanuel Gil Peyrot | 2015-01-15 | 4 | -56/+0 |
| | |||||
* | Loader: Fix indentation, whitespace, and a few other such cosmetic stuff. | Emmanuel Gil Peyrot | 2015-01-15 | 2 | -26/+24 |
| | |||||
* | Fix correct espace | Dante38490 | 2015-01-05 | 1 | -2/+2 |
| | |||||
* | Add support load 3DS room | Dante38490 | 2015-01-05 | 1 | -0/+2 |
| | |||||
* | elf: Make DidRelocate const | Lioncash | 2015-01-03 | 1 | -1/+1 |
| | |||||
* | Merge pull request #291 from purpasmart96/license | bunnei | 2014-12-21 | 8 | -10/+10 |
|\ | | | | | License change | ||||
| * | License change | purpasmart96 | 2014-12-21 | 8 | -10/+10 |
| | | |||||
* | | Merge pull request #315 from chinhodado/master | bunnei | 2014-12-20 | 1 | -3/+1 |
|\ \ | | | | | | | Clean up some warnings | ||||
| * | | Clean up some warnings | Chin | 2014-12-20 | 1 | -3/+1 |
| |/ | |||||
* / | Common: Add a clone of std::make_unique | Yuri Kunde Schlesner | 2014-12-20 | 1 | -2/+4 |
|/ | |||||
* | Filesystem/Archives: Implemented the SaveData archive | Subv | 2014-12-18 | 3 | -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 handles | Yuri Kunde Schlesner | 2014-12-16 | 1 | -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 name | Yuri Kunde Schlesner | 2014-12-16 | 1 | -1/+1 |
| | |||||
* | HLE: Rename namespaces to match move & fix initialization order | Yuri Kunde Schlesner | 2014-12-16 | 1 | -1/+1 |
| | |||||
* | HLE: Move kernel/archive.* to service/fs/ | Yuri Kunde Schlesner | 2014-12-16 | 2 | -2/+2 |
| | |||||
* | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 2014-12-13 | 4 | -35/+35 |
| | |||||
* | Loader: Add 3DSX support | ichfly | 2014-12-08 | 4 | -0/+276 |
| | |||||
* | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 2014-11-19 | 3 | -6/+6 |
| | |||||
* | core: Mark some hle functions as static | Lioncash | 2014-11-18 | 1 | -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 Peyrot | 2014-09-17 | 3 | -5/+5 |
| | |||||
* | Merge pull request #99 from archshift/ext-check | bunnei | 2014-09-11 | 1 | -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.cpp | archshift | 2014-09-09 | 1 | -16/+15 |
| | | |||||
| * | loader.cpp: improved file extension checking, made Upper/LowerStr useful | archshift | 2014-09-09 | 1 | -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 includes | archshift | 2014-09-09 | 1 | -1/+0 |
|/ | |||||
* | ncch: Remove C-style struct typedefs | Lioncash | 2014-09-06 | 1 | -4/+4 |
| | | | | In C++ you can simply just declare it as is. | ||||
* | ncch: inline declare some variables in LZSS_Decompress | Lioncash | 2014-09-06 | 1 | -7/+5 |
| | |||||
* | Loader: Added support for loading raw BIN executables. | bunnei | 2014-08-28 | 2 | -0/+21 |
| | | | | | | - Useful for debugging homebrew Qt: Updated GUI to support loading .bin files. | ||||
* | NCCH: Updated ExeFS memory allocation to be safer. | bunnei | 2014-07-05 | 2 | -1/+7 |
| | |||||
* | Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override". | bunnei | 2014-07-05 | 2 | -9/+9 |
| | |||||
* | Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final" | bunnei | 2014-07-05 | 2 | -2/+2 |
| | |||||
* | Loader: Updated read methods to be const | bunnei | 2014-07-05 | 3 | -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. | bunnei | 2014-07-05 | 1 | -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. | bunnei | 2014-06-27 | 3 | -96/+73 |
| | | | | NCCH: Removed extra qualification ‘Loader::AppLoader_NCCH::’. | ||||
* | Loader: Refactored loading functions to only read data from binary if called. | bunnei | 2014-06-25 | 3 | -74/+141 |
| | | | | NCCH: Updated LoadExec to use Memory::WriteBlock function to load binary code. | ||||
* | ELF: Refactored LoadInto(..) to use memcpy, removed unnecessary code. | bunnei | 2014-06-25 | 1 | -19/+8 |
| | |||||
* | Loader: Refactored use of const. | bunnei | 2014-06-25 | 6 | -20/+19 |
| | |||||
* | NCCH: Added RomFS loading. | bunnei | 2014-06-25 | 2 | -1/+36 |
| | |||||
* | NCCH: Fixes reduce unnecessary logging and load logo/banner/etc. sections correctly. | bunnei | 2014-06-25 | 3 | -22/+29 |
| | | | | Loader: Added ErrorNotUsed ReturnStatus type to specify when something is not used. | ||||
* | Loader: Implemented AppLoader interface for abstracting application loading. | bunnei | 2014-06-25 | 6 | -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. | bunnei | 2014-06-17 | 1 | -9/+3 |
| | |||||
* | Elf: Removed unused macros, changed #include of "common.h" to just "common_types.h". | bunnei | 2014-06-17 | 1 | -117/+1 |
| | |||||
* | Loader: Cleaned up and removed unused code, refactored ELF namespace. | bunnei | 2014-06-17 | 4 | -209/+70 |
| | |||||
* | Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces. | bunnei | 2014-06-17 | 5 | -357/+332 |
| | |||||
* | Loader: Added support for booting NCCH executables. | bunnei | 2014-06-17 | 3 | -0/+374 |
| | | | | NCCH: Fixed typo in printing NCCH filename. | ||||
* | Loader: Moved elf and loader modules to a "loader" subdirectory. | bunnei | 2014-06-17 | 5 | -0/+805 |