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
Collecting
dcf6e4058f
fix(android): Required multiple static_cast fixes
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 14:36:41 +01:00
Collecting
7c14003ebd
fix(android): Double for static_cast
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 14:35:44 +01:00
Collecting
2b18a97e12
Merge pull request 'Fix: Resolve linker errors and improve type safety in cache GC' ( #112 ) from fix/compiler into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/112
2026-01-25 13:44:42 +01:00
Collecting
6253352e1e
fix(compiler): generate the vtable within settings.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 13:42:55 +01:00
Collecting
f428c20bf6
fix(compiler): static_cast w/ unsigned long long to remove ambiguity
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 13:42:19 +01:00