summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2025-02-17feat: Add Home Menu launch support and system improvementsZephyron
This commit adds support for launching the system Home Menu and implements several system-level improvements: - Add Home Menu launch functionality through new UI action - Implement shutdown/reboot sequence handlers in GlobalStateController - Add support for reserved region extra size in page tables - Enhance audio controller with output management - Expand parental control service capabilities - Add profile service improvements for user management Technical changes: - Add OnHomeMenu() handler to launch QLaunch system applet - Implement m_alias_region_extra_size tracking in page tables - Add new CreateProcessFlag for reserved region extra size - Expand audio controller interface with output management - Add self-controller methods to various services - Implement play timer and profile service improvements The changes primarily focus on system menu integration and core service improvements to better support system functionality.
2025-02-09Revert "Replace yuzu identifiers with citron"Zephyron
This reverts commit d4ad55ed21047747698618e97dfa727d454c3c96.
2025-02-09Replace yuzu identifiers with citronZephyron
Update magic numbers and default identifiers across codebase: - UUID default value - Thread magic number - Amiibo name - Vulkan cache magic number - Shader cache magic number
2025-02-03kernel/svc: Refactor UnmapProcessCodeMemory validationZephyron
Improve the validation logic in UnmapProcessCodeMemory by: - Add missing size validation check at the start - Reorganize validation checks into logical groups - Simplify error handling using R_UNLESS macros - Remove redundant page table range check - Add copyright notice for Citron Emulator Project - Add ResultInvalidSize constant definition The changes make the validation code more concise and easier to follow while maintaining the same validation requirements. Error handling is now more consistent with other SVC implementations.
2025-01-29kernel/svc: Implement InitialProcessIdRange and improve process exit handlingZephyron
- Replace stubbed InitialProcessIdRange implementation with proper bounds (1-0x50) - Add handle and info_sub_id validation for InitialProcessIdRange - Replace process exit ASSERT with graceful error handling and logging - Add try-catch block around system.Exit() for safer shutdown - Add atomic header inclusion for binder.h This improves system call reliability by properly implementing process ID range checks and adding safer process exit handling with proper error logging.
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.
2025-01-07kernel: Implement SystemResourceSize info type for VAMM initializationZephyron
Adds support for InfoType::SystemResourceSize (0x1C) which is required for proper initialization of the Virtual Address Memory Manager (VAMM). This implementation: 1. Adds SystemResourceSize to the InfoType enum in svc_types.h 2. Implements the GetInfo handler for SystemResourceSize in svc_info.cpp 3. Returns 512MB (0x20000000 bytes) as the system resource size 4. Adds debug logging for the SVC call The 512MB value is chosen based on typical system resource allocations needed for VAMM initialization on the Nintendo Switch. This fixes crashes in games that rely on VAMM functionality, particularly during nn::os::detail::VammManager::InitializeIfEnabled().
2025-01-04core: Add support for 10GB and 12GB memory configurationsZephyron
- Add Memory_10Gb and Memory_12Gb to MemoryLayout enum - Update memory layout settings to support up to 12GB - Add SMC enums for 10GB and 12GB memory sizes and arrangements - Increase MainMemorySizeMax from 8GB to 12GB - Add memory pool size calculations for 10GB and 12GB configurations - Update UI translations for new memory options
2024-12-31core: Update copyright headersZephyron
- Update copyright headers to include Citron Homebrew Project - Add 2025 to copyright years
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-03-04"Merge Tagged PR 13018"yuzubot
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-02-14kernel: add and enable system suspend typeLiam
2024-02-09core: fix multiprocess with nceLiam
2024-01-29am: migrate global state to per-applet state structureLiam
2024-01-27kernel: clear pinned waiter list on unpinLiam
2024-01-22kernel: target invalidate to given processLiam
2024-01-18Core: Make sure GPU Dirty Managers ae shared by all processes.Fernando Sahmkow
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-12kernel: optimize page free on shutdownLiam
2024-01-12kernel: fix debugger and process list lifetimeLiam
2024-01-12kernel: fix page leak on process terminationLiam
2024-01-08Fix typos in src/core (#12625)Viktor Szépe
* Fix typos in src/core * Fix typo correction * Fix indentation of MemoryStateNames * Fix indent
2024-01-02KThread: Send termination interrupt to all cores a thread has affinity toMerry
KThread::RequestTerminate may run from a thread which is not the CurrentCore, and thus masking this out is erroneous.
2024-01-01Merge pull request #12454 from liamwhite/ct-stuffNarr the Reg
core_timing: minor refactors
2024-01-01Merge pull request #12466 from liamwhite/sh2Narr the Reg
core: track separate heap allocation for linux
2023-12-28k_capabilities: simplify KTrace map skip logicLiam
2023-12-26Merge pull request #12455 from liamwhite/end-waitliamwhite
kernel: use simple mutex for object list container
2023-12-25core: track separate heap allocation for linuxLiam
2023-12-24kernel: remove unecessary process member from handle tableLiam
2023-12-24service: fetch objects from the client handle tableLiam
2023-12-23kernel: use simple mutex for object list containerLiam
2023-12-23core_timing: use static typing for no-wait unscheduleLiam
2023-12-23core_timing: remove user data valueLiam
2023-12-22kernel: fix resource limit imbalanceLiam
2023-12-22kernel: restrict nce to applicationsLiam
2023-12-22general: properly support multiple memory instancesLiam
2023-12-22k_server_session: remove scratch buffer usage in favor of direct copyLiam
2023-12-22k_server_session: process for guest serversLiam
2023-12-22kernel: instantiate memory separately for each guest processLiam
2023-12-16Merge pull request #12358 from liamwhite/optimized-allocliamwhite
common: use memory holepunching when clearing memory
2023-12-14common: use memory holepunching when clearing memoryLiam
2023-12-13service: hid: Allow to create multiple instances of shared memoryNarr the Reg
2023-12-10Merge pull request #12317 from liamwhite/sc-fixliamwhite
kernel: fix single core
2023-12-10Merge pull request #12321 from liamwhite/ro2liamwhite
ro: add separate ro service
2023-12-09Merge pull request #12296 from liamwhite/client-sessionliamwhite
kernel: implement remaining IPC syscalls
2023-12-09service: populate pid and handle table from clientLiam
2023-12-08kernel: fix single coreLiam
2023-12-07kernel: implement light IPCLiam