aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader/nso.cpp
AgeCommit message (Collapse)Author
2024-01-15core: Support multiple modules per patcherGPUCode
2023-11-29core: Rename patcher fileGPUCode
2023-11-26loader: fix gcc compileLiam
2023-11-25loader: apply nso patch to offset program imageLiam
2023-11-25core: Define HAS_NCE macroGPUCode
2023-11-25Address some review commentsGPUCode
2023-11-25arm: Implement native code execution backendLiam
2023-09-14core: improve debug workflowLiam
2023-08-25kernel: offset code entry point for 39-bit address space type (#11326)liamwhite
2023-07-14k_process: PageTable -> GetPageTableLiam
2023-03-22kernel: use KTypedAddress for addressesLiam
2023-02-13general: rename CurrentProcess to ApplicationProcessLiam
2022-08-19code: dodge PAGE_SIZE #defineKyle Kienapfel
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
2022-06-13general: fix compilation on MinGW GCC 12Liam
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2021-06-28general: Make most settings a BasicSettinglat9nq
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.
2021-05-25common: fs: Rework the Common Filesystem interface to make use of ↵Morph
std::filesystem (#6270) * 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
2021-05-05hle: kernel: Rename Process to KProcess.bunnei
2021-04-27loader: Resolve instances of variable shadowingLioncash
Eliminates variable shadowing cases across all the loaders to bring us closer to enabling variable shadowing as an error in core.
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-02-18hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei
2021-01-28hle: kernel: KThread: Reorganize thread priority defaults.bunnei
2021-01-28core: hle: kernel: Rename Thread to KThread.bunnei
2020-11-27core: Eliminate remaining usages of the global system instanceLioncash
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.
2020-11-18patch_manager: Remove usages of the global system instanceLioncash
With this, only 19 usages of the global system instance remain within the core library. We're almost there.
2020-10-13core/CMakeLists: Make some warnings errorsLioncash
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.
2020-09-22General: Make use of std::nullopt where applicableLioncash
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.
2020-09-16loader/nso: Remove unnecessary [[maybe_unused]]Lioncash
2020-09-16core/loader: Remove dependencies on the global system instanceLioncash
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.
2020-04-17loader/nso: Resolve moves not occurring in DecompressSegmentLioncash
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.
2020-04-17loader: nso: Fix loader size and arguments.bunnei
2020-04-17core: memory: Move to Core::Memory namespace.bunnei
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17loader: nso: Fix loading of static objects to be properly sized and aligned.bunnei
2020-01-22loader: provide default arguments (zero byte) to NSOsMichael Scire
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.
2020-01-18core/loaders: Simplify PhysicalMemory usage.Markus Wick
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.
2019-09-30core/loader: Track the NSO build ID of the current processZach Hilman
2019-09-21nso: Pass build ID directlyZach Hilman
As opposed to converting to string and then back to hex array
2019-07-19VM_Manager: Align allocated memory to 256bytesFernando Sahmkow
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.
2019-06-21Merge pull request #2482 from DarkLordZach/prepobunnei
core: Add detailed local reporting feature for development
2019-06-12common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash
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.
2019-05-26loader: Move NSO module tracking to AppLoaderZach Hilman
Also cleanup of general stuff
2019-05-25loader/nso: Silence sign-comparison warningLioncash
This was previously performing a size_t == int comparison. Silences a -Wsign-compare warning.
2019-05-25core: Track load offsets of NSO modulesZach Hilman
Needed for backtrace decomposition
2019-04-30loader/nso: Remove left-in debug pragmaLioncash
Unintentionally introduced in 552d5071fa171165e4054392d8bb6bf2ecc924e2
2019-04-11core/core: Move process execution start to System's Load()Lioncash
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.
2019-04-09Merge pull request #1957 from DarkLordZach/title-providerbunnei
file_sys: Provide generic interface for accessing game data
2019-04-03Merge pull request #2093 from FreddyFunk/disk-cache-better-compressionbunnei
Better LZ4 compression utilization for the disk based shader cache and the yuzu build system
2019-04-01Merge pull request #2281 from lioncash/memorybunnei
kernel/codeset: Make CodeSet's memory data member a regular std::vector
2019-03-29Addressed feedbackunknown
2019-03-29core: Do not link LZ4 to core. Use common/data_compression for nso segment ↵unknown
decompression instead.