28124 Commits

Author SHA1 Message Date
Zephyron
544456b8be fix(android): Correct GC Aggressiveness description to match actual options
Updated description to accurately describe Off and Light options instead
of implying multiple "higher levels" that don't exist.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026.02.1
2026-02-01 14:18:26 +10:00
Zephyron
c3a90a1f59 fix(ui): Correct GC Aggressiveness tooltip to match actual options
The tooltip described 5 levels (Off, Light, Moderate, Heavy, Extreme)
but only Off and Light are implemented in the enum.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 14:16:37 +10:00
Zephyron
6a9c5f39e4 fix(ui): Add SVG support and fallback icons for Surprise Me button
Added Qt6::Svg to CMake configuration and implemented fallback
icon chain.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 14:13:51 +10:00
Zephyron
5c5baf69e2 chore(version): bump to 2026.02.1
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 12:09:56 +10:00
Collecting
97ebddea66 fix(CLI): Defer the game boot for main event loop
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-01 00:30:25 +01:00
Collecting
ef22699020 Fix: Defer EmuThread start to fix shortcut launch hang
a race condition where the BootGame() function was called directly from the GMainWindow constructor. This would create and start the EmuThread before the main Qt application event loop (app.exec()) had begun. As a result, the LoadingScreen UI was not fully initialized and could not properly process the progress signals from the background emulation thread, causing the hang.

The fix defers the call to emu_thread->start() by wrapping it in a QTimer::singleShot(0, ...) with a lambda function. This places the start command on the Qt event queue, ensuring it only executes after the GMainWindow has been fully constructed and the event loop is active. This guarantees the UI is ready to receive signals, resolving the race condition.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 22:39:59 +01:00
Zephyron
22a458a53c fix(am): Fix library applet controller freeze
- Cache focus state result to prevent race condition from double-call
- Signal caller applet resume notification on PopOutData

Fixes freezes in games using controller applet (e.g. Mario Kart 8 Deluxe).

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-01-31 18:35:56 +10:00
Collecting
e6dda72bfa fix(ui): Light/Dark text issues
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 02:38:00 +01:00
Collecting
7205c083ef fix(ui): Light/Dark issues with text
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 02:37:21 +01:00
Collecting
695502c37b Merge pull request 'fix(ui): Modernize configuration dialog button styling' (#118) from fix/change-buttons into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/118
2026-01-31 00:54:09 +01:00
Collecting
38591a62a9 fix(ui): Ensure consistency w/ new button designs
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 00:52:35 +01:00
Collecting
1d41763c46 fix(ui): Remove UI logic for styling
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 00:51:31 +01:00
Collecting
1060224438 fix(ui): Ensure consistency & create new button designs
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 00:50:59 +01:00
Collecting
d06bb79dd9 fix(ui): Adjust for consistency
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 00:49:59 +01:00
Collecting
dcef7593cf fix(ui): Make styling more consistent
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-31 00:49:26 +01:00
Collecting
4568f63570 Merge pull request 'fix(ui): Consistent Accent Coloring across various UI elements' (#117) from fix/colors into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/117
2026-01-30 22:53:30 +01:00
Collecting
87e9352444 fix(ui): Att void for setStyleSheet
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-30 22:52:37 +01:00
Collecting
e23f80d772 fix(ui): Coloring of Search Field & Game list
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-30 22:52:07 +01:00
Zephyron
2272b62171 fix(android): prevent RomFS/ExeFS dump while emulation is running
Add safety checks to prevent dumping game files while emulation is active, which could cause crashes or data corruption.

- Check EmulationSession.IsRunning() before starting dump in native.cpp

- Check NativeLibrary.isRunning() in GamePropertiesFragment.kt

- Show user-friendly toast message when dump is blocked
2026-01-30 17:58:08 +10:00
Zephyron
1543418260 refactor(settings): simplify GC aggressiveness to Off/Light only
Remove Moderate, Heavy, and Extreme GC aggressiveness levels, keeping only Off and Light options for simpler configuration.

- Light mode now uses 75%/90% VRAM thresholds

- Simplified switch statements in texture/buffer cache

- Updated UI dropdowns for desktop and Android

- Light is now the default and recommended setting
2026-01-30 17:55:43 +10:00
Collecting
4229eaa8fd fix(msvc): Please and thank you
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 02:37:53 +01:00
Collecting
bf3f80557b Update README.md
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 02:10:16 +01:00
Collecting
01ca952b6a fix(macOS): static_cast requirement for out_displays
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 02:06:32 +01:00
Collecting
b29d1d7d3f fix(msvc): Float Requirement
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 02:03:57 +01:00
Collecting
5bbd9e0b8f Merge pull request 'feat: Add game hiding, launch animations, and accent color theming' (#116) from feat/customized_game_list into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/116
2026-01-29 01:22:46 +01:00
Collecting
ce83b341a7 feat(add): Initial Boot icon animation & core logic for hiding entries
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:20:02 +01:00
Collecting
0bb1c53c55 feat(add): Icon Animation during initial boot
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:15:32 +01:00
Collecting
a73aa4f19d feat(add): Emit Configuration Saved
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:15:05 +01:00
Collecting
8820ae568c feat(add): Configuration Saved
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:14:19 +01:00
Collecting
783f30be0e feat(add): Hidden Paths logic for saving to qt_config
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:13:51 +01:00
Collecting
4f7cd049ef feat(add): QStringList for paths to hide specific games
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-29 01:13:16 +01:00
Zephyron
08a88e8d55 Merge pull request 'feat/qlaunch-home-menu-support' (#115) from feat/qlaunch-home-menu-support into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/115
2026-01-28 07:46:11 +01:00
Zephyron
5600aefcd5 chore(core): update build config for QLaunch services
- Add application_observer and system_process_common_functions to CMakeLists

- Add enable_home_menu setting option
2026-01-28 16:43:07 +10:00
Zephyron
a5632d7576 feat(ui): add QLaunch/Home Menu support to menubar
- Add Tools > Open QLaunch menu action

- Implement OnOpenQLaunch() to launch firmware home menu

- Add translation strings for QLaunch option
2026-01-28 16:42:51 +10:00
Zephyron
626ea63cbc feat(hle): implement misc service stubs for QLaunch compatibility
- audctl: Add GetAudioController (cmd 5000) returning IAudioController

- vi: Improve display service with better non-default display handling

- psc/ovln: Add GetReceiveEventHandle for overlay notifications

- omm: Add GetNotificationMessageEventHandle for power state

- olsc: Implement GetNativeHandle returning valid event

- prepo: Add SaveSystemReport2 (cmd 20102) stub
2026-01-28 16:42:35 +10:00
Zephyron
5fa71ce5b0 feat(hle/ns): implement application manager interface stubs for 20.0.0+
- Add Cmd4022, Cmd4023, Cmd4088 stubs for application readiness checks

- Add GetApplicationRecord stub returning empty list

- Required for QLaunch application enumeration
2026-01-28 16:42:14 +10:00
Zephyron
3bfa2ebc58 feat(hle/pctl): implement parental control service stubs for 18.0.0+
- Add GetPlayTimerSettingsVer2 (cmd 1456) with proper struct

- Add GetPlayTimerRemainingTime (cmd 1454)

- Add GetPlayTimerRemainingTimeDisplayInfo (cmd 1459) for 20.0.0+

- Add GetExtendedPlayTimerEvent (cmd 1475) with kernel event

- Define PlayTimerSettingsVer2 and PlayTimerRemainingTimeDisplayInfo types
2026-01-28 16:41:58 +10:00
Zephyron
37863fcb09 feat(hle/am): implement applet and home menu management
- Add home menu popup event and request handling

- Implement various self controller functions for applet lifecycle

- Add applet common functions with event support

- Implement application accessor and debug function stubs

- Add window system hooks for QLaunch integration
2026-01-28 16:41:40 +10:00
Zephyron
53fc6bf107 feat(hle/am): add event handling for state controllers
- Implement GetGpuErrorDetectedSystemEvent (cmd 1020)

- Implement GetFriendInvitationStorageChannelEvent (cmd 1030)

- Implement GetNotificationStorageChannelEvent (cmd 1040)

- Implement GetHealthWarningDisappearedSystemEvent (cmd 1050)

- Implement GetAccumulatedSuspendedTickChangedEvent (cmd 63)
2026-01-28 16:41:21 +10:00
Zephyron
ab93279542 feat(hle/am): implement system applet proxies and observer services
- Add OpenHomeMenuProxy (cmd 110) for QLaunch support

- Add GetSystemProcessCommonFunctions (cmd 450)

- Add Cmd460 stub for system process initialization

- Implement IApplicationObserver and ISystemProcessCommonFunctions services
2026-01-28 16:41:03 +10:00
Collecting
46630e770d Merge pull request 'feat(gamelist): Add 'Surprise Me!' random game feature' (#114) from feat/surprise-me into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/114
2026-01-28 07:40:01 +01:00
Collecting
ea9c04bccb feat(ui): Surprise Me! Logic
The main logic for the Surprise Me feature.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-28 07:38:38 +01:00
Collecting
b465783bf7 feat(ui): Surprise Me! Option
Needed the thingies

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-28 07:37:53 +01:00
Collecting
5b90431380 feat: dice.svg into qrc
For rendering of the Surprise Me! icon.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-28 07:37:22 +01:00
Collecting
32fc088c5e feat: dice.svg
A dice svg.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-28 07:36:36 +01:00
Collecting
af5eb92450 fix(graphics/adv): Ensure STPE is auto-disabled
Games appear to have horrendous VRAM leaking with this setting enabled. By default, this setting was turned on, leaving users without any information of the setting or what the setting does and seems to have adverse effects in certain titles. Disabling it so that users don't have it automatically chosen.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-26 00:26:05 +01:00
Collecting
0caf8866fa fix(android): He say give me more static_cast, I say yes
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-25 15:34:10 +01:00
Collecting
f842dfb7fe fix(android): moar static cast, me hungry
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-25 15:07:21 +01:00
Collecting
851e8da116 Merge pull request 'fix(android): Add static_cast's for Android Warnings' (#113) from fix/compiler into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/113
2026-01-25 14:37:51 +01:00
Collecting
be9fbddd5d Merge branch 'main' into fix/compiler 2026-01-25 14:37:22 +01:00