Commit Graph

27582 Commits

Author SHA1 Message Date
Zephyron
f4fb602bc4 android: Add configurable storage location with automatic data migration
Implement a storage location picker for Android that allows users to
choose where Citron stores game data, saves, and other files instead
of being locked to the default app-specific directory.

Features:
- Storage location selection during first-time setup
- Settings option to change storage location after initial setup
- Support for internal storage, external SD card, and custom locations
- Automatic data migration when changing storage locations
- Progress dialog with cancellation support during migration
- Proper app restart handling to apply new storage path
- Detailed logging for debugging storage initialization

The picker offers three main options:
1. Internal Storage (Default) - App-specific directory, removed on uninstall
2. External SD Card - Persistent storage with more space (if available)
3. Custom Location - User-selected folder via Storage Access Framework

When switching locations, all existing data (saves, keys, config, shaders)
is automatically copied to the new location, ensuring a seamless transition.

This addresses user requests to store data in more accessible locations
like SD cards or Downloads folders, especially useful for devices with
limited internal storage or for easier data backup.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-29 20:15:49 +10:00
Zephyron
5025c4ab76 Merge branch 'feat-fix/controller-overlay-std-badalloc' into 'main'
feat(ui)/(crash): Implement real-time Controller Overlay & Resolve std::bad_alloc

See merge request citron/emulator!122
2025-10-29 15:28:37 +10:00
collecting
61d9808660 feat: Controller Overlay 2025-10-29 05:25:53 +00:00
collecting
dbea569c88 feat: Controller Overlay 2025-10-29 05:25:07 +00:00
collecting
5a3c4cad03 feat: Controller Overlay 2025-10-29 05:23:48 +00:00
collecting
5dc79d01cf feat: Controller Overlay 2025-10-29 05:23:10 +00:00
collecting
94b77d68ef feat: Controller Overlay 2025-10-29 05:22:42 +00:00
collecting
fa36de9b39 fix: std::bad_alloc 2025-10-29 05:22:00 +00:00
collecting
c8e80a5358 feat: Controller Overlay 2025-10-29 05:21:27 +00:00
collecting
cd3656fcaa feat: Controller Overlay 2025-10-29 05:20:45 +00:00
collecting
8db5c0bd83 feat: Controller Overlay 2025-10-29 05:19:38 +00:00
Zephyron
cbfa876fb0 refactor: extract game title IDs into TitleID utility class
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-29 11:16:18 +10:00
Zephyron
e0d2ab3abb chore: bump version to 0.9.0
Signed-off-by: Zephyron <zephyron@citron-emu.org>
0.9.0
2025-10-28 19:22:04 +10:00
Zephyron
a060879519 Merge branch 'fix/auto-updater-appimage' into 'main'
fix: AppImage Update and Restart Logic (Linux)

See merge request citron/emulator!120
2025-10-27 15:56:27 +10:00
collecting
6855bac278 fix: AppImage 2025-10-27 03:08:55 +00:00
collecting
7680ab8220 fix: AppImage 2025-10-27 03:08:14 +00:00
collecting
d4b0c4a84f fix: AppImage 2025-10-27 03:07:37 +00:00
Zephyron
a0b334bd9c Merge branch 'fix/auto-update-link' into 'main'
fix(updater): Link to Commits

See merge request citron/emulator!119
2025-10-26 15:36:21 +10:00
collecting
c63396459b fix: Auto Update Link 2025-10-26 05:34:26 +00:00
collecting
deefdd36b0 fix: Auto Updater Link 2025-10-26 05:33:41 +00:00
Zephyron
131893389d Disable OpenSSL for Android builds 2025-10-26 15:14:13 +10:00
Zephyron
3b97f8b55a android: Fix crash when opening Zep Zone settings
Fixed NullPointerException caused by missing EXTENDED_DYNAMIC_STATE and
USE_CONDITIONAL_RENDERING entries in SettingsItem.settingsItems HashMap.

These settings were referenced in the Zep Zone menu but not registered,
causing the app to crash when trying to display them.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-26 14:56:40 +10:00
Zephyron
254e9609be Merge branch 'fix/android-builds' into 'main'
revert: ${DEFAULT_ENABLE_OPENSSL}

See merge request citron/emulator!118
2025-10-26 14:44:36 +10:00
Zephyron
72253c76d1 Fix: Disable multi-core for Final Fantasy Tactics (010038B015560000)
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-26 14:06:49 +10:00
collecting
fb43a9cbad revert: ${DEFAULT_ENABLE_OPENSSL} 2025-10-26 02:16:59 +00:00
Zephyron
e77ac6f9e0 Merge branch 'fix/autoupdater' into 'main'
feat(updater): Overhaul to use commit hashes and improve UI

See merge request citron/emulator!117
2025-10-25 14:45:50 +10:00
collecting
1175bf35b7 Edit updater_service.h 2025-10-25 02:13:00 +00:00
collecting
8050dc0cd2 Edit CMakeLists.txt 2025-10-25 02:12:01 +00:00
collecting
05da09d070 Edit GenerateSCMRev.cmake 2025-10-25 01:05:44 +00:00
collecting
7a7cd0004b Edit updater_service.cpp 2025-10-25 01:05:17 +00:00
collecting
d329e75fd5 Edit updater_service.h 2025-10-25 01:04:12 +00:00
collecting
66fc50646f Edit updater_dialog.cpp 2025-10-25 01:03:30 +00:00
collecting
ab3429ed1c Edit updater_dialog.h 2025-10-25 01:02:37 +00:00
collecting
ee7aebca9b fix: Auto Updater 2025-10-24 11:31:39 +00:00
collecting
c1dda00eea fix: Auto Updater 2025-10-24 11:30:59 +00:00
collecting
ada780f3f8 fix: Auto Updater 2025-10-24 11:30:19 +00:00
collecting
7df644499a fix: Auto Updater 2025-10-24 11:29:21 +00:00
collecting
f8a96f4964 fix: Autoupdater 2025-10-24 10:44:01 +00:00
collecting
339d78cd08 fix: Autoupdater 2025-10-24 10:43:27 +00:00
collecting
06500c6545 fix: Autoupdater 2025-10-24 10:42:46 +00:00
collecting
f5029f62a1 fix: Autoupdater 2025-10-24 10:39:53 +00:00
collecting
1a29259e33 fix: Autoupdater 2025-10-24 10:39:04 +00:00
collecting
d5f1589341 fix: Autoupdater 2025-10-24 10:38:02 +00:00
collecting
5628d07b9c fix: Autoupdater 2025-10-24 10:36:49 +00:00
Zephyron
20250c3e31 fix: add missing NCA encryption type support and patch handling
Changes:
- Add missing encryption type cases to all switch statements
- Only call CreatePatchMetaStorage() when both tables are present
- Update assertions to allow partial table combinations

Fixes loading for Hades II, Pokémon Legends: Z-A, and other games
with newer NCA structures.

Reported-by: Dr.Stug@citron-emu.org
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-24 16:25:38 +10:00
Zephyron
7672d2f1ff Merge branch 'fix/multiplayer-room-overlay' into 'main'
Fix: Resolve multiplayer overlay notification and state bugs

See merge request citron/emulator!115
2025-10-24 15:36:14 +10:00
Zephyron
a9acaac0ab Merge branch 'fix/copyright' into 'main'
fix: Copyright License Identifier

See merge request citron/emulator!113
2025-10-24 15:35:22 +10:00
collecting
ba62e4be62 Edit: multiplayer_room_overlay.cpp 2025-10-24 04:11:55 +00:00
collecting
e8d838335f fix: Multiplayer Room Overlay 2025-10-24 03:42:24 +00:00
collecting
18348b150b fix: Multiplayer Room Overlay 2025-10-24 03:41:57 +00:00