Commit Graph

27572 Commits

Author SHA1 Message Date
Zephyron
432d6da7c1 fix(network): prevent datagram socket SendTo errors in HDR multiplayer
Changes:
- Add validation in BSD::SendToImpl to check for empty address buffers on
  datagram sockets and return EINVAL instead of passing nullptr to sendto()
- Add null pointer check in ProxySocket::SendTo to prevent dereferencing
  nullptr address parameters
- Improve error logging to help identify socket configuration issues

Fixes: Socket operation errors in HDR multiplayer sessions
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-24 16:39:39 +10:00
Zephyron
b9326b0527 Merge branch 'Linux-Compilation-Fix' into 'master'
fix: Linux compilation

See merge request citron/rewrite!51
2025-08-23 11:57:41 +00:00
Boss.sfc
01757c21ea fix: Linux compilation
There were linking errors

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-08-23 18:53:24 +07:00
Zephyron
be6e154499 Merge branch 'list-view-and-applets-settings' into 'master'
feat: Add list view toggle and separate applets settings category

See merge request citron/rewrite!50
2025-08-21 06:47:51 +00:00
Zephyron
00d6eb12d9 feat: Add list view toggle and separate applets settings category
- Add list/grid view toggle button to games fragment
- Implement dual-view GameAdapter with separate ViewHolders for grid/list layouts
- Create compact card_game_list.xml layout for list view
- Add "Applets on Android" settings category to separate applet settings from Zep Zone
- Add logging settings with log filter configuration
- Add view toggle icons (ic_view_list, ic_view_grid)
- Update strings.xml with new UI text and settings descriptions

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-21 16:47:08 +10:00
Zephyron
2d43a2d47b feat: add movable shader building overlay with touch handling
- Add touch event handling to ShaderBuildingOverlayView for dragging
- Implement boundary constraints to keep overlay within screen bounds
- Add visual feedback with border color changes during dragging
- Add resetPosition() method to restore overlay to default position
- Move ShaderBuildingOverlayView to separate FrameLayout for absolute positioning
- Set container to non-clickable to prevent interference with input controls
- Maintain clickable/focusable state only on the overlay view itself

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-17 17:03:52 +10:00
Zephyron
f76a40fa12 Merge branch 'remove-frame-generation-wip' into 'master'
feat: remove frame generation options from all platforms

See merge request citron/rewrite!49
2025-08-17 06:17:30 +00:00
Zephyron
e27fc65d11 feat: remove frame generation options from all platforms
Frame generation was marked as WIP and not ready for production use.
This commit removes all frame generation related code and UI elements
to prevent users from enabling an incomplete feature.

Changes:
- Remove frame generation settings from Android UI (Kotlin/XML)
- Remove frame generation settings from Desktop UI (Qt/C++)
- Remove frame generation enums and settings from core (C++)
- Remove frame generation Vulkan renderer implementation
- Remove frame generation shader files
- Update CMake build configuration

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-17 16:09:05 +10:00
Zephyron
87651883cb Merge branch 'android-shader-building-overlay' into 'master'
android: Add shader building overlay with performance graph

See merge request citron/rewrite!48
2025-08-17 05:48:41 +00:00
Zephyron
06f13f3cb1 android: Add shader building overlay with performance graph
- Add new settings for shader building overlay and performance graph
- Create ShaderBuildingOverlayView with animated shader building indicator
- Implement JNI bridge to get shader building count from core
- Add performance metrics display (FPS, frametime, emulation speed)
- Include real-time frametime graph with min/avg/max statistics
- Add menu options to toggle overlay and graph independently
- Integrate with existing overlay system in EmulationFragment
- Optimize Vulkan pipeline cache loading with pre-reservation
- Improve async shader building to reduce main thread blocking

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-17 15:48:06 +10:00
Zephyron
85324599a6 sockets/network: relax SockAddrIn len check and fix port byte-order to avoid SSBU crashes
- Accept SockAddrIn len in [6, sizeof] and warn instead of asserting to handle libnx/SSBU quirks
- Ensure TranslateFromSockAddrIn sets sin_port via htons(uint16_t) for consistent network byte-order
- Prevents assertion crashes and reduces “Broken pipe” error spam observed in Frozen's SSBU logs

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-11 20:59:44 +10:00
Zephyron
96dd82ea3b chore(network): Change web API from HTTPS -> HTTP
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-11 18:41:23 +10:00
Zephyron
57abfe4c77 Merge branch 'MoltenVK' into 'master'
feat: Updated MoltenVK

See merge request citron/rewrite!47
2025-08-10 03:53:53 +00:00
Boss.sfc
f9758f1770 feat: Updated MoltenVK
Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-08-08 16:02:09 +07:00
Zephyron
5af2f00baa Merge branch 'frame-generation-skipping-and-ue4-support' into 'master'
feat: Add frame generation and enhance UE4 game compatibility

See merge request citron/rewrite!46
2025-08-05 09:41:35 +00:00
Zephyron
117c467ff3 feat: Add frame generation and enhance UE4 game compatibility
- Add frame generation settings (enabled/disabled, interpolation/extrapolation modes)
- Add frame skipping settings (enabled/disabled, adaptive/fixed modes)
- Implement frame skipping logic with adaptive and fixed modes
- Enhance UE4 crash handling with recovery mechanisms
- Add support for signed and float 32-bit image formats across shader backends
- Update Vulkan Validation Layers to v1.4.321.0
- Fix duplicate frame skipping options in Qt UI
- Improve memory handling for UE4 games (Hogwarts Legacy compatibility)
- Add enhanced bindless texture handling with fallback approach
- Update Android build configuration and dependencies

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-05 19:32:28 +10:00
Zephyron
612871f81f Merge branch 'android-applet-settings' into 'master'
android: Add applet mode settings to UI

See merge request citron/rewrite!45
2025-08-05 07:30:49 +00:00
Zephyron
011a546229 android: Add applet mode settings to UI
Add comprehensive applet mode configuration options to the Android settings
interface. This includes settings for all major applets:

- Cabinet applet mode
- Controller applet mode
- Data Erase applet mode
- Error applet mode
- Network Connect applet mode
- Player Select applet mode
- Software Keyboard applet mode
- Mii Edit applet mode
- Web applet mode
- Shop applet mode
- Photo Viewer applet mode
- Offline Web applet mode
- Login Share applet mode
- WiFi Web Auth applet mode
- My Page applet mode

Each setting allows users to choose between HLE (High-Level Emulation)
and LLE (Low-Level Emulation) modes for individual applets, providing
granular control over applet emulation behavior.

Changes:
- Add applet mode settings to IntSetting enum
- Add corresponding string resources for all applet settings
- Add applet mode choice arrays (HLE/LLE options)
- Add applet settings section to SettingsItem mapping
- Add applet settings header and all applet mode settings to
  SettingsFragmentPresenter

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-05 17:29:45 +10:00
Zephyron
45daff11c9 feat(audio): Fix OpenAL auto detection
This commit addresses serveral bugs within the audio service where OpenAL would fail to register the output device to the mapped engine.

- Increase null safety checks for all audio backends (cubeb, sdl2, openal)
- Added failsafe for Device selection

These ensure the audio_renderer can validate calls from the OpenAL engine, Credits to Hayate Yoshida for helping Identify the issue.

Credit: Hayate Yoshida <hayate_yoshida@citron-emu.org>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-02 20:36:40 +10:00
Zephyron
b8039b4b2e Merge branch 'Citron-AppImage-Builder' into 'master'
feat: Added Torzu's AppImageBuilder

See merge request citron/rewrite!44
2025-07-31 08:51:53 +00:00
Boss.sfc
317a8b2bd5 feat: Added Torzu's AppImageBuilder
Added support for building AppImages using Torzu's AppImageBuilder.

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-07-31 14:40:22 +07:00
Zephyron
c5dce33345 Merge branch 'fsr2-implementation' into 'master'
feat: Add FSR 2.0 scaling filter option

See merge request citron/rewrite!43
2025-07-29 05:50:13 +00:00
Zephyron
568999fd59 feat: Improve FSR2 UI with dropdown quality mode and conditional FSR sharpness
- Convert FSR2 quality mode from number input to dropdown with 4 options
- Disable and grey out FSR sharpness slider when FSR2 is selected
- Add proper enum-based settings for FSR2 quality modes
- Update both Vulkan and OpenGL FSR2 implementations
- Connect UI state changes automatically

Provides better UX by using appropriate controls and preventing confusion
between FSR 1.0 and FSR 2.0 sharpening options.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-29 15:49:05 +10:00
Zephyron
3b8da3d80a feat: Add FSR 2.0 scaling filter option
- Add FSR2 to ScalingFilter enum alongside existing FSR
- Implement FSR2 classes for both Vulkan and OpenGL renderers
- Add fsr2_quality_mode setting with 4 quality levels (Quality, Balanced, Performance, Ultra Performance)
- Integrate FSR2 into present pipeline for both renderers
- Add UI support for FSR2 option in scaling filter dropdown
- Add FSR2 quality mode setting with dropdown selection
- Update translations and Android strings for new options
- Default to Performance mode for optimal balance

This provides users with FSR 2.0 as a scaling option, offering different
quality/performance characteristics compared to FSR 1.0. The implementation
uses quality-based sharpening values and integrates seamlessly with the
existing rendering pipeline.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-29 15:21:36 +10:00
Zephyron
d38b58ca77 Merge branch 'performance-overlay-enhancements' into 'master'
feat: enhance performance overlay with frame graph and draggable UI

See merge request citron/rewrite!42
2025-07-27 10:52:07 +00:00
Zephyron
93a48ad682 feat: enhance performance overlay with frame graph and draggable UI
- Add real-time frame time graph with min/avg/max statistics
- Implement draggable overlay functionality with cursor feedback
- Modernize UI with Material Design colors and improved typography
- Fix crash issues by throttling performance data updates
- Ensure FPS and frame time consistency
- Add proper error handling and validation
- Increase overlay size to accommodate new graph feature

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-27 20:50:57 +10:00
Zephyron
1e691bbbb2 Merge branch 'CachyOS-LTO-Fix' into 'master'
fix: CachyOS LTO Compilation

See merge request citron/rewrite!41
2025-07-27 05:34:36 +00:00
Zephyron
af0deddb19 Merge branch 'citron-icns-change' into 'master'
chore: update Yuzu logo to Citron in .icns file

See merge request citron/rewrite!40
2025-07-24 09:08:25 +00:00
Boss.sfc
04c2e3b212 chore: update Yuzu logo to Citron in .icns file
Replaced the Yuzu logo with the new Citron branding in the macOS .icns file used for the application icon. This change aligns with the project's rebranding from Yuzu to Citron and ensures consistent visual identity across platforms. No functional changes to the application.

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-07-23 18:58:43 +07:00
Boss.sfc
fc480dcb69 fix: CachyOS LTO Compilation
Fix LTO linking issues on CachyOS with GCC 15.x

- Add LTO support to all core library targets (input_common, frontend_common,
  network, shader_recompiler, web_service) that were missing LTO configuration
- Create citron_configure_lto() helper function for consistent LTO handling
- Implement CachyOS-specific detection via /etc/os-release and kernel version
- Apply conservative LTO flags (-flto=auto -ffat-lto-objects) only for
  CachyOS + GCC 15+ to resolve linking errors with newer toolchains
- Other distributions continue using aggressive LTO settings for maximum performance
- Disable LTO on executable targets to prevent main function optimization issues

This resolves "undefined symbol" errors when building with -DCITRON_ENABLE_LTO=ON
on CachyOS while maintaining optimal LTO performance on other distributions.

Fixes linking errors including:
- Core::Frontend::EmuWindow symbols
- Core::System methods
- Settings::values
- Common logging functions

Tested on CachyOS with GCC 15.1.1 + LLD 20.1.8

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-07-22 21:37:37 +07:00
Zephyron
d0ae8f1582 docs: rewrite README for homebrew focus and update repository paths
- Replace citron/emu with citron/rewrite in all URLs
- Add comprehensive legal disclaimers for homebrew-only use
- Update content to emphasize legal software and developer respect
- Modernize formatting with emojis and improved structure
- Add new sections for getting started, contributing, and contact info
- Focus messaging on homebrew development and legal use cases

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-22 17:36:15 +10:00
Zephyron
eb4512e9de Merge branch 'CachyOS-compiling-fix' into 'master'
fix: Compiling for CachyOS

See merge request citron/rewrite!39
2025-07-22 06:34:51 +00:00
Zephyron
04c17586d4 Merge branch 'high-dpi-settings-menu' into 'master'
frontend: Improve High DPI support and scaling

See merge request citron/rewrite!38
2025-07-22 06:31:13 +00:00
Zephyron
f5bea18fd9 frontend: Improve High DPI support and scaling
This patch enhances High DPI support across the Qt frontend with the following improvements:

**Windows DPI Awareness:**
- Add shellscalingapi.h include for Windows DPI functions
- Implement Per Monitor DPI Awareness (Windows 8.1+) and Per Monitor v2 DPI Awareness (Windows 10+)
- Use SetProcessDPIAware() and SetProcessDpiAwareness() for better multi-monitor scaling
- Dynamically load shcore.dll to access modern DPI awareness APIs

**Configuration Dialog Enhancements:**
- Add comprehensive High DPI responsive CSS media queries for different DPI levels (192dpi, 240dpi)
- Scale UI elements (buttons, comboboxes, line edits, checkboxes, radio buttons) based on screen DPI
- Improve scroll area styling with proper scrollbar theming for high DPI displays
- Set proper window attributes for scaling (WA_TranslucentBackground, WA_NoSystemBackground)
- Calculate logical window size based on device pixel ratio for accurate scaling

**UI Improvements:**
- Enhanced scroll area styling with custom scrollbar appearance
- Better visual feedback with hover effects on scrollbar handles
- Improved spacing and sizing for high DPI displays
- Set proper window modality and title for configuration dialog

These changes provide better visual quality and usability on high DPI displays, particularly on Windows systems with multiple monitors or high-resolution screens. The scaling is now more accurate and consistent across different display configurations.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-22 16:30:47 +10:00
Boss.sfc
e02ba8b5bf fix: Compiling for CachyOS
- Made CreateScrollArea function static to limit its linkage to the current translation unit.

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-07-22 13:29:16 +07:00
Zephyron
bd6dd7f0ff Merge branch 'controller-crash-grid-view-memory-leak' into 'master'
fix: Prevent controller crashes and memory leaks in game list grid view

See merge request citron/rewrite!36
2025-07-21 11:25:01 +00:00
Zephyron
0d05f64e79 fix: Prevent controller crashes and memory leaks in game list grid view
- Fix memory leak in PopulateGridView() and FilterGridView() by properly
  deleting old QStandardItemModel instances before creating new ones
- Add safety checks in controller navigation to prevent crashes when
  accessing uninitialized controller data
- Improve controller input handling to only send events to visible and
  properly initialized views
- Add null pointer checks in SetViewMode() to prevent crashes when
  setting current index on empty models
- Add proper cleanup in GameList destructor to prevent memory leaks
  on application shutdown

The main issue was that switching between list and grid views created
new models without properly cleaning up old ones, leading to memory
leaks. Additionally, controller navigation would send keyboard events
to both views simultaneously, causing crashes when one view was not
properly initialized or visible.

Fixes crashes when using controller navigation in grid view mode.

Thanks to Beta Testers acarajé & Hayate Yoshida (吉田 疾風) for finding the bug.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-21 21:23:51 +10:00
Zephyron
c7bc05f1d0 Merge branch 'macOS-compilation-fix' into 'master'
fix: Resolve compilation issues with fmt library and formatters

See merge request citron/rewrite!35
2025-07-16 05:45:22 +00:00
Zephyron
2e5f8c8e8d Merge branch 'cpp20-concepts-file-open' into 'master'
fix: constrain file.h Open templates with C++20 concepts

See merge request citron/rewrite!34
2025-07-16 05:42:11 +00:00
Zephyron
97490b0586 fix: constrain file.h Open templates with C++20 concepts
Add HasValueType concept to prevent compilation errors when using raw
pointers like const char* with Open() templates. The templates now only
participate in overload resolution for types that have a value_type
member (e.g., std::string, std::filesystem::path).

Fixes C2039 and C2651 errors on Windows builds.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-16 15:41:41 +10:00
Boss.sfc
0fb39034c1 fix: Resolve compilation issues with fmt library and formatters
Fix multiple compilation errors preventing successful build:

* Add const qualifier to custom fmt formatter functions across codebase
  - Updated formatters in logging, shader recompiler, texture cache, and other modules
  - Ensures compatibility with newer fmt library versions

* Add missing fmt/ranges.h includes for fmt::join usage
  - Fixed fmt::join calls in Vulkan renderer, GDB stub, NFC service, and main window
  - Resolves "no member named 'join' in namespace 'fmt'" errors

* Exclude unsupported platforms from Boost.Process usage in debugger
  - Extended conditional compilation to avoid Boost.Process where unavailable

* Fix type casting issues in AOC service manager
  - Resolved std::min type mismatch with explicit casting
2025-07-16 11:11:33 +07:00
Zephyron
25e8c0539c updater: Improve version detection with build system fallback
Add build system version detection as a fallback in GetCurrentVersion():
- Include common/scm_rev.h to access build version information
- Use Common::g_build_version when version.txt doesn't exist
- Automatically create version.txt with build version for future use
- Update comments to clarify version resolution priority

This ensures the updater can properly detect the current application
version even when version.txt hasn't been created yet, while maintaining
the existing priority system for version detection.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-12 09:23:29 +10:00
Zephyron
00c3e7aea5 fix: Implement two-stage update system to handle file-in-use errors
Replace direct file overwriting with a staging-based update mechanism to
resolve "file in use" errors during self-updates.

**Changes:**
- Stage updates to temporary directory instead of direct installation
- Apply staged updates on next application startup (before files are loaded)
- Add static methods for startup update detection and application
- Create update manifest to track staged update metadata
- Backup existing files before applying updates
- Update UI messaging to reflect staged update workflow

**Problem solved:**
The previous direct file replacement approach failed when trying to overwrite
DLLs and executables that were loaded into memory by the running process.
This two-stage approach stages files safely, then applies them on restart
when no files are in use.

**Workflow:**
1. Download and extract update to staging directory
2. Create manifest with update metadata
3. Show "Update ready" message to user
4. On next app startup: detect staged update, apply it, show success message
5. Clean up staging directory after successful application

This ensures reliable self-updates without file access conflicts.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-11 17:01:37 +10:00
Zephyron
5472256a2d Merge branch 'auto-updater-system' into 'master'
feat: Add automatic update system with background checking

See merge request citron/rewrite!33
2025-07-11 06:23:00 +00:00
Zephyron
9ef1c76a2c feat: Add automatic update system with background checking
Implement a complete auto-updater system for Citron with the following features:

- Add UpdaterService class for handling update checks, downloads, and installations
- Add UpdaterDialog with progress tracking and user interaction
- Support both .zip and .7z archives with Windows PowerShell fallback
- Automatic background update checking on startup (3-second delay)
- Silent notifications when updates are available
- Manual "Check for Updates" menu option in Help menu
- User setting to enable/disable automatic update checks (enabled by default)
- Graceful error handling with detailed logging
- Restart functionality after successful updates
- Libarchive integration for cross-platform archive support

The system uses HTTP URLs to bypass SSL library compatibility issues and
provides a smooth user experience with minimal interruption during automatic
checks. Manual updates show a full dialog with progress tracking and changelog
information.

Fixes update distribution workflow and keeps users informed of new releases.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-11 16:22:28 +10:00
Zephyron
ab26698b4e Merge branch 'audio-add-new-functions-services' into 'master'
audio: Implement missing audio services and functions

See merge request citron/rewrite!32
2025-07-10 08:03:25 +00:00
Zephyron
eb4da7a78c audio: Implement missing audio services and functions
New Services Added:
- auddev (IAudioSnoopManager) - Audio development/debugging service [6.0.0+]
  * EnableDspUsageMeasurement/GetDspStatistics with firmware version switching
  * DisableDspUsageMeasurement/GetAppletStateSummaries with firmware version switching
  * SetDspStatisticsParameter/GetDspStatisticsParameter [20.0.0+]
  * GetDspUsage [6.0.0-16.1.0]

- aud:a (IAudioSystemManagerForApplet) - System audio manager for applets [11.0.0+]
  * Applet resource user ID registration/management
  * Audio suspend/resume functionality
  * Per-applet volume controls (output/input/record)
  * GetAppletStateSummaries [18.0.0-19.0.1]

- aud:d (IAudioSystemManagerForDebugger) - System audio manager for debugging [11.0.0+]
  * RequestSuspendAudioForDebug/RequestResumeAudioForDebug

Enhanced Existing Services:
- audctl (IAudioController) - Added missing [19.0.0+] functions:
  * OverrideDefaultTargetForDebug [19.0.0-19.0.1]
  * SetForceOverrideExternalDeviceNameForDebug [19.0.0+]
  * ClearForceOverrideExternalDeviceNameForDebug [19.0.0+]
  * Fixed GetSystemInformationForDebug buffer handling

- IAudioDevice - Added missing [17.0.0+] and [18.0.0+] functions:
  * AcquireAudioInputDeviceNotification/ReleaseAudioInputDeviceNotification [17.0.0+]
  * AcquireAudioOutputDeviceNotification/ReleaseAudioOutputDeviceNotification [17.0.0+]
  * SetAudioDeviceOutputVolumeAutoTuneEnabled/IsAudioDeviceOutputVolumeAutoTuneEnabled [18.0.0+]

Technical Changes:
- Updated service registration in audio.cpp to replace placeholder services
- Added proper CMIF buffer handling with std::array<u8, SIZE> for InLargeData/OutLargeData
- Added firmware version annotations matching switchbrew documentation
- Implemented proper state management for all new services
- Added comprehensive error handling and logging

This implementation provides complete audio service coverage including the specifically requested GetDspStatisticsParameter function and numerous other missing functions that games expect to be available.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-10 18:00:59 +10:00
Zephyron
d709c878bc Merge branch 'bcat-add-new-functions-services' into 'master'
core/hle/service/bcat: Fix compilation errors and implement missing services

See merge request citron/rewrite!31
2025-07-05 13:16:14 +00:00
Zephyron
99cff6cb9c core/hle/service/bcat: Fix compilation errors and implement missing services
- Fix CMIF serialization alignment error in RequestSyncDeliveryCacheWithApplicationIdAndDirectoryName by reordering parameters (DirectoryName before u64)
- Implement missing INotifierService and IDeliveryTaskSuspensionService classes with proper kernel event handling
- Add missing source files to CMakeLists.txt to resolve linker errors
- Update IServiceCreator to properly implement CreateDeliveryCacheProgressService methods instead of leaving them stubbed
- Add ProgressServiceBackend support to IServiceCreator with proper friend class access
- Fix kernel event creation by using KernelHelpers::ServiceContext instead of direct system calls
- Add proper includes for kernel_helpers.h and event management

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-05 23:12:39 +10:00
Zephyron
f1ba9df80a Merge branch 'glue-add-new-functions-services' into 'master'
hle/service: Implement missing Glue services for 20.0.0+ support

See merge request citron/rewrite!30
2025-07-01 10:09:20 +00:00