Commit Graph

33 Commits

Author SHA1 Message Date
Zephyron f706427815 Disable GPU memory manager, memory snapshots, and NCE features
This commit disables GPU memory management, memory snapshots, and NCE
functionality by forcing these settings to false throughout the codebase.
The changes include:

- Hardcoding false values in renderer_vulkan.cpp initialization
- Disabling UI controls for these features in configuration screens
- Forcing settings to false during configuration read/write operations

These features are being disabled to improve stability and prevent
potential memory-related issues.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-01 15:56:17 +10:00
Zephyron eec0f34204 CI: Update CI workflows to use Citron-specific naming and paths 2025-04-30 16:50:39 +10:00
Zephyron 278486d059 feat: add CPU clock rate slider to settings
Implement a slider in the CPU settings tab to adjust the BASE_CLOCK_RATE
up to 1,785 MHz (Switch's official maximum clock rate). Default remains
at 1,020 MHz.

This change:
- Adds UI slider and spinbox to configure_cpu.ui with range 500-1785 MHz
- Makes BASE_CLOCK_RATE dynamic by reading from settings
- Modifies WallClock to handle dynamic clock rate changes
- Updates APM controller to properly set the clock rate
- Changes clock rate settings category from Core to CPU

The user can now easily adjust the CPU clock rate to improve performance
or manage thermals and power consumption.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-16 22:02:10 +10:00
Zephyron bbd3253169 feat: add option to respect present interval 0 as unlocked FPS
When enabled, this feature allows games using present interval 0 to run with
truly unlocked FPS, matching actual hardware behavior more accurately.

Previously, Citron would cap present interval 0 at 120FPS to conserve battery,
but this prevented proper functionality of dynamic framerate mods like UltraCam
by MaxLastBreath (https://www.nxoptimizer.com/).

The setting is disabled by default to maintain the current behavior for most users.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-16 19:28:15 +10:00
Zephyron 175a427c27 refactor(vulkan): remove depth buffer workarounds and excessive logging
- Remove special handling for reversed depth scenarios that were added for Civilization 7
- Remove excessive logging in Vulkan renderer
- Update Discord client ID
- Update Vulkan-related external dependencies

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-14 22:02:29 +10:00
Zephyron 98c515871e ui: Disable the Kiosk (Quest) Mode configuration option
This commit disables the "Kiosk (Quest) Mode" checkbox in the debug configuration
UI by setting it to non-interactive and adding a tooltip indicating that the
feature has been disabled.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-03-20 18:49:00 +10:00
Zephyron 278ac75a37 ui: Disable the Auto-Stub configuration option
This commit disables the "Enable Auto-Stub" checkbox in the debug configuration
UI by setting it to non-interactive and adding a tooltip indicating that the
feature has been disabled.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-03-17 14:02:15 +10:00
Zephyron ae75413cc3 Remove quickstart guide references to address legal concerns
- Removed "Open Quickstart Guide" menu item and associated functions
- Replaced ROM loading error popup containing quickstart guide links
  with a neutral disclaimer stating the software is provided as-is
  without warranty or support
- This change helps minimize legal liability by avoiding
  specific instructional content while directing users to community
  resources for assistance
2025-03-09 22:23:54 +10:00
Zephyron 84e5fbc089 feat: Make firmware mandatory for title launching
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-02-28 16:15:10 +10:00
Zephyron c5e480e55d feat: Add Home Menu launch support and system improvements
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-17 17:33:10 +10:00
Zephyron 7730d14b4a build: upgrade fmt and SDL2
Update fmt library to version 11.0.2 and make necessary adjustments:
- Replace fmt/format.h includes with fmt/ranges.h
- Add const qualifiers to formatter::format functions
- Update CMake to require fmt version 11

Additional dependency updates:
- Update SDL2 bundled version from 2.28.2 to 2.32.0
- Update catch2 to version 3.8.0
- Update vcpkg baseline to c82f74667287d3dc386bce81e44964370c91a289
2025-02-16 13:38:05 +10:00
Zephyron d4eca46bba
frontend: Remove telemetry popup and default to disabled
Removes the telemetry opt-in popup dialog and defaults telemetry to disabled.
The ShowTelemetryCallout function is simplified to just:
- Set telemetry to disabled by default
- Apply the setting
- Mark the callout as shown to prevent future popups

This change ensures user privacy by defaulting to no telemetry collection
without requiring user interaction.
2025-02-05 15:13:10 +10:00
Zephyron df1ae19742
discord: Increase game icon resolution to 256x256
Update the tinfoil.media URL requests to fetch game icons at 256x256 resolution
instead of 128x128, providing higher quality game icons in Discord Rich Presence.
2025-02-04 20:28:16 +10:00
Zephyron 42f44a0c09
Restore original Citra copyright dates in SPDX headers
Update SPDX copyright headers to restore original 2014 Citra Emulator Project
attribution, replacing incorrect 2025 Citron references in:
- bootmanager.cpp
- configure_touch_from_button.cpp
- game_list.cpp
- main.cpp
2025-02-04 14:49:27 +10:00
Zephyron 6b9c239fbd
Remove firmware decryption warning dialog
Removes the warning message box that appears when encryption keys are missing.
The check for keys is still performed but no longer displays a popup to the
user. The firmware version and menu state updates are still maintained.
2025-02-02 15:20:50 +10:00
Zephyron 9a3d4f0489
ui: Update repository URLs to git.citron-emu.org
Updates all GitHub repository URLs to point to the new self-hosted Git instance
at git.citron-emu.org. This includes:

- Links in the About dialog UI and translations
- Android app string resources
- Documentation/wiki links
- Source code comments

The website URL (citron-emu.org) and support links remain unchanged.
2025-01-28 17:33:57 +10:00
Zephyron 2e4db14bc1
qt: Replace deprecated stateChanged with checkStateChanged
Updates QCheckBox signal connections to use checkStateChanged instead of
the deprecated stateChanged signal. This change affects:

- qt_controller.cpp
- configure_filesystem.cpp
- configure_input.cpp
- configure_input_advanced.cpp
- configure_system.cpp
- configure_ui.cpp
- shared_widget.cpp

Also updates lambda signatures to use Qt::CheckState instead of int for
the state parameter where needed.
2025-01-27 15:36:29 +10:00
Zephyron 58ed33dd9f ui: Remove save states menu and unused help links
Removes the save states menu and unused help menu items as they require
additional research and implementation work. Specifically:

- Remove save states menu and associated actions (Save/Load)
  as proper implementation requires more research
- Remove unused help menu items:
  * Open Mods Page
  * Open Quickstart Guide
  * Open FAQ
- Keep core help functionality (Report Compatibility and About)
- Reorder menu properties for better organization

This change helps maintain a cleaner UI by removing placeholder
features that are not yet ready for implementation.
2025-01-25 14:58:40 +10:00
Zephyron 37677052c1 feat: implement modern dark theme and loading screen redesign
- Redesign loading screen progress bar with gradient animation
- Update loading screen typography using Segoe UI
- Add comprehensive dark theme styling to main window
- Modernize menu, toolbar, and dock widget appearances
2025-01-25 13:50:48 +10:00
Zephyron 07024f7ea6 ui: Add Save States menu stubs
Adds UI elements for future save state support:
- New "Save States" menu in the main menubar
- Save and Load action items with keyboard shortcuts
- No functionality implemented yet, just UI stubs
2025-01-20 17:14:46 +10:00
vampiric_x 07b949025f Add QT Network package 2025-01-18 02:16:13 +01:00
vampiric_x 913cc27e3a feat(network): Ip input field for multiplayer room creation 2025-01-17 19:03:31 +01:00
Zephyron 382999025a shader_recompiler: Add stubs for CSM/FCSM flow test conditions
Add stub implementations for previously unhandled flow test conditions in the
shader recompiler's IR emitter. These conditions were previously throwing
"Not Implemented" exceptions when encountered.

The following flow test cases are now stubbed:
- FCSM_TR (Fragment Shader Coarse/Fine Mode Test and Reject)
- CSM_TA (Coarse/Fine Mode Test Accept)
- CSM_TR (Coarse/Fine Mode Test and Reject)
- CSM_MX (Coarse/Fine Mode Maximum)
- FCSM_TA (Fragment Shader Coarse/Fine Mode Test Accept)
- FCSM_MX (Fragment Shader Coarse/Fine Mode Maximum)

Currently these stubs:
1. Return false (ir.Imm1(false)) as a placeholder value
2. Log a warning message indicating the stub
3. Allow shaders using these conditions to compile rather than fail

This is a step toward proper implementation of coarse/fine mode shader
operations. The stubs prevent crashes while making it clear which code paths
need full implementation.

Technical notes:
- Removed the previous FCSM_TR implementation that used flag operations
- Added consistent warning messages for tracking stub usage
- Kept within the existing GetFlowTest switch statement structure
2025-01-17 19:28:11 +10:00
Zephyron 9ae0eeeb87 Revert incorrect copyright attribution for non-contributed files
- In commit b3facaa6bb, 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-14 15:33:24 +10:00
vampiric_x 2d7f9d921b ui(QT): QT 6.7.3 Implementation 2025-01-12 04:26:22 +01:00
Zephyron 08be9b0617
Revert "refactor: Improve game list scanning with std::filesystem"
This reverts commit 60cb826e93.
2025-01-08 21:39:22 +10:00
Zephyron 60cb826e93
refactor: Improve game list scanning with std::filesystem
Refactors the game list scanning code to use std::filesystem instead of custom
directory iteration functions. Main changes include:

- Replace Common::FS directory iteration with std::filesystem iterators
- Split game file processing logic into separate ProcessGameFile method
- Improve error handling with try-catch for filesystem operations
- Simplify control NCA metadata extraction
- Use more modern C++ features and cleaner code organization

This change should improve maintainability and reliability of the game
scanning system while potentially offering better performance through
native filesystem APIs.
2025-01-06 14:41:06 +10:00
Zephyron 3100d13fc0
discord: Improve game image handling and UI presentation
Updates the Discord Rich Presence implementation to use Tinfoil's media
server for game images and improves the overall presentation.

Technical changes:
- Switch to Tinfoil media server for game images
- Add proper title ID handling and display
- Improve error handling for image requests
- Increase network timeout to 10 seconds
- Cache URL to prevent string destruction
- Update Discord client ID
- Clean up code formatting and organization

UI/UX improvements:
- Remove title ID from game state display
- Update default text to be more descriptive
- Improve error logging for failed image fetches
- Maintain image persistence between updates

This change provides better game image support and a cleaner Discord
presence display while improving reliability of the integration.
2025-01-06 14:06:41 +10:00
Zephyron 21f94d5825
web: Simplify web configuration and token management
- Remove telemetry functionality and related UI elements
- Add automatic token generation using UUID
- Remove manual token verification process
- Sync Citron username with profile username automatically
- Simplify web configuration UI and improve error messages
- Update host room error message for clarity

This change streamlines the web service configuration by removing
unnecessary complexity and automating token management. Users no longer
need to manually verify tokens, and the Citron username is automatically
kept in sync with their profile username.
2025-01-05 18:17:47 +10:00
Zephyron e11c6c03ec
core: Add support for 10GB and 12GB memory configurations
- 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
2025-01-04 17:33:22 +10:00
Zephyron 468ace6b0b
core: Update copyright headers
- Update copyright headers to include Citron Homebrew Project
- Add 2025 to copyright years
2024-12-31 17:36:08 +10:00
Zephyron b3facaa6bb
chore: update project references and add Citron copyright
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
2024-12-31 17:07:49 +10:00
Zephyron 9427e27e24
chore: update project branding to citron 2024-12-31 16:19:25 +10:00