summaryrefslogtreecommitdiff
path: root/src/core/loader
AgeCommit message (Collapse)Author
2025-02-28feat: Make firmware mandatory for title launchingZephyron
This commit implements a requirement for firmware to be installed before titles can be launched, similar to how keys are required. Changes include: - Add IsFirmwareAvailable method to KeyManager to check for essential keys - Add CheckFirmwarePresence method to verify actual firmware files (NCAs) - Add firmware checks in game loading process for both desktop and Android - Add error messages when firmware is missing - Add strings for firmware-related error messages The implementation checks for both essential keys and the presence of system applets like Mii Edit and Home Menu to ensure proper firmware is installed. Games will not launch if firmware is missing, and users will be shown an appropriate error message.
2025-01-14Revert incorrect copyright attribution for non-contributed filesZephyron
- In commit b3facaa6bb30cdc39f2b7d632fef1e3bfeee7785, the copyright header was updated to include "Citron Homebrew Project" across multiple files, regardless of whether any contributions were made. - This commit removes the incorrect attribution and reverts the copyright header to its previous state. - Copyright attribution should only be added when meaningful contributions have been made to the file. - This commit ensures proper compliance with copyright standards and maintains correct attribution to the respective contributors. - Special thanks to Tachi for pointing out the need for these corrections and ensuring that proper attribution practices are followed.
2024-12-31chore: update project references and add Citron copyrightZephyron
- Replaced all references to the old project name with Citron. - Added Citron copyright information alongside existing notices in all files.
2024-02-19scope_exit: Make constexprFearlessTobi
Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
2024-01-25vfs: Move vfs files to their own directoryFearlessTobi
2024-01-23loader: also register fs process for raw exefs partitionLiam
2024-01-15Merge pull request #12677 from GPUCode/whyy-moddersliamwhite
core: Support multiple modules per patcher
2024-01-15core: Support multiple modules per patcherGPUCode
2024-01-13loader: fix homebrew nro registrationLiam
2024-01-11fsp-srv: use program registry for SetCurrentProcessLiam
2023-12-22kernel: restrict nce to applicationsLiam
2023-12-01file_sys: handle null romfsLiam
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-25android: Add cpu bakend gui toggleGPUCode
2023-11-25arm: Implement native code execution backendLiam
2023-11-25kernel: Manually specify aslr region startLiam
2023-09-30loader: don't reassign program ID on npdm reparseLiam
2023-09-14core: improve debug workflowLiam
2023-09-06core: implement basic integrity verificationLiam
2023-08-25kernel: offset code entry point for 39-bit address space type (#11326)liamwhite
2023-08-15vfs: expand support for NCA readingLiam
2023-07-14k_process: PageTable -> GetPageTableLiam
2023-07-12file_sys/content_archive: Detect compressed NCAs (#11047)Tobias
2023-06-09android: Add proper homebrew checkCharles Lombardo
2023-03-22kernel: use KTypedAddress for addressesLiam
2023-02-13general: rename CurrentProcess to ApplicationProcessLiam
2022-09-25core/loader: Return nullptr if file is nullptrMerry
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-08-01core/loader: remove ELF loaderLiam
2022-06-13general: fix compilation on MinGW GCC 12Liam
2022-06-05common: consolidate ELF structure definitionsLiam
2022-04-28chore: add missing SPDX tagsAndrea Pappacoda
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
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.
2022-03-03loader: log the type of mismatching file-extensionBytesGalore
2022-02-02general: Replace NonCopyable struct with equivalentsLioncash
2021-12-17core: loader: kip: Minimal changes to fix KIP loading.bunnei
- Allows us to boot KIP (kernal apps), useful for testing the kernel.
2021-12-05loader: Support loading subsdk{8,9}jam1garner
2021-11-03core: Remove unused includesameerj
2021-07-20file_sys: Support load game collection (#6582)Feng Chen
Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
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-16core: Make variable shadowing a compile-time errorLioncash
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.
2021-05-05hle: kernel: Rename Process to KProcess.bunnei
2021-05-03core: Resolve misc cases of variable shadowingLioncash
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).
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-23program_metadata: Set a default resource size when a NPDM is not presentMorph
Sets a default size of 0x1FE00000 bytes (510 MiB) for the system_resource_size when a NPDM is not present.