Commit Graph

11 Commits

Author SHA1 Message Date
Zephyron
08a5d2b4d4 Merge branch 'settings-ui-redesign' into 'master'
ui: Redesign settings dialog with modern layout and improved UX

See merge request citron/rewrite!24
2025-06-16 06:26:27 +00:00
Zephyron
190e7ecfb7 feat: Add Build ID display to per-game configuration dialog
- Extract and display Base Build ID and Update Build ID for Nintendo Switch games
- Support multiple file formats: NSO, Deconstructed ROM, XCI, NSP, and NCA
- Read build IDs directly from NSO headers at offset 0x40 (32 bytes)
- Handle complex file structures with proper fallback mechanisms
- Add dedicated UI fields for both base and update build IDs
- Improve cheat compatibility by showing build IDs needed for cheat files

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-06-16 16:17:50 +10:00
Zephyron
bc39ce4e74 ui: Redesign settings dialog with modern layout and improved UX
- Reorganize tabs in logical order (General first, UI, System, etc.)
- Implement single-row dynamic tab layout for cleaner appearance
- Shorten tab labels for better fit ("UI", "Graphics (Adv)")
- Fix Graphics tab layout with proper scrolling and spacing
- Remove redundant reset settings checkbox (use General tab instead)
- Apply modern dark theme styling with improved colors and spacing
- Enhance tab button sizing and responsiveness
- Update copyright headers for 2025

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-06-04 17:08:25 +10:00
Zephyron
55867a6972 style: Use rounded corners instead of circular icons in grid view
- Replace circular clipping with subtle rounded corners (radius = size/8) for a more modern and polished appearance.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-30 17:04:17 +10:00
Zephyron
8671e067ae feat: Add grid view with round icons for game list
- Implement toggle between list and grid view modes (Ctrl+G)
- Add round icon rendering with anti-aliased circular clipping
- Display game titles below icons in grid layout
- Create flat model for grid view showing only games
- Add View menu option and Ctrl+G hotkey for toggling
- Implement separate filtering logic for both view modes
- Update grid layout with proper spacing and text alignment
- Maintain existing tree view functionality and features
- Support double-click to launch and right-click context menus in both modes

The grid view provides a more visual game browsing experience while
preserving all existing functionality of the original list view.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-30 16:45:02 +10:00
Zephyron
fdf1bfc06a feat: Add 10GB, 12GB, 14GB, and 16GB DRAM configuration options
- Extended MemoryLayout enum with new memory size options
- Added corresponding SMC memory size and arrangement constants
- Updated system control functions to handle new memory configurations
- Added appropriate application pool sizes for higher memory modes
- Updated UI translations to display new DRAM options as "Unsafe"
- Increased maximum memory layout setting from 8GB to 16GB

This allows users to configure higher memory amounts for games and
texture mods that require more than the standard 4-8GB configurations.
All new options are marked as "Unsafe" in the UI to indicate they
are experimental features beyond Nintendo's official specifications.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-24 17:10:19 +10:00
Zephyron
c5604ced4f feat: Implement 32:9 aspect ratio
This commit introduces support for a 32:9 aspect ratio throughout Citron.

Key changes include:

-   **Enum Updates**: Added `R32_9` to `Settings::AspectRatio` and `Layout::AspectRatio` enums, ensuring consistent integer mapping for casting between them.
-   **Core Logic**:
    -   Modified `UISettings::CalculateWidth` to correctly compute width for the 32:9 ratio.
    -   Updated `Layout::EmulationAspectRatio` to handle the new `R32_9` case and return the appropriate float value (9.0f / 32.0f).
-   **Android Integration**:
    -   Updated `EmulationFragment.kt` and `EmulationActivity.kt` (for Picture-in-Picture) to recognize and apply the 32:9 aspect ratio (mapping setting value `4` to `Rational(32, 9)`).
-   **UI Configuration**:
    -   Added "Force 32:9" to the aspect ratio selection in the graphics settings UI via `shared_translation.cpp`. This string is translatable.

This enhancement allows users to utilize ultra-widescreen 32:9 displays for a more immersive experience.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-18 15:10:47 +10:00
Zephyron
3eec1ced93 feat(discord): Update Discord integration and game art fetching
- Updates the Discord application Client ID.
- Changes the game art source from static URLs on `citron-emu.org` to dynamically fetched images from `tinfoil.media` using the game's title ID.
- Removes the `GetGameString` function, as the URL formatting logic has changed.
- Modifies `UpdateGameStatus` and `Update` to accommodate the new image fetching mechanism and use the title ID.
- Adds new members to `DiscordImpl` to store title ID and cache image URLs.
- Updates copyright information in `discord_impl.cpp` and `discord_impl.h`.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:42:30 +10:00
Zephyron
b2d9cf4a01 chore: update project branding to CITRON
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:11:33 +10:00
Zephyron
5e16e20427 chore: update project branding to Citron
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:08:59 +10:00
Zephyron
bfb82e577c chore: update project branding to citron
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:06:48 +10:00