278 Commits

Author SHA1 Message Date
OpenSauce04
063a80695c Updated outdated Vulkan dependencies to SDK 1.4.304.1 2025-05-31 16:37:04 +01:00
OpenSauce
9ecd26d2ce
android: Enhance shortcut customization with a custom dialog (#824)
* android: Enhance shortcut customization with a custom dialog

Adds ability to customize game shortcuts with:
- Custom name input
- Editable icon via image picker
- Ability to stretch to fit or zoom to fit the shortcut icon

* Code cleanup

* SearchFragment.kt: Updated license header

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-05-29 19:17:01 +01:00
PabloMK7
4cfb5c9d55
android: Add missing shader JIT option (#1085) 2025-05-29 19:10:26 +02:00
OpenSauce04
a6c72531b4 strings.xml: Removed stray quotation mark from advanced string 2025-05-29 17:15:52 +01:00
PabloMK7
ec964c8610
Add more advanced frame time information (#1083) 2025-05-29 17:38:10 +02:00
PabloMK7
fd2ce82b6e
Add toggle to disable SPIRV optimization pass (#1080)
* Add toggle to disable SPIRV optimization pass

* vk_shader_util.cpp: Nitpicky comment tweak

* Consistently refer to "optimizer" instead of "optimization"

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-05-28 21:22:59 +01:00
OpenSauce
fd2551439e
android: Add rotate screen upright toggle to UI (#819)
* Add upright boolean for portrait mode

* Add the `upright_screen` boolean to the UI as a switch & in-game

* ScreenAdjustmentUtil.kt: Updated license header

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-05-28 18:50:57 +00:00
OpenSauce
f3c63abd30
android: Only use Boolean value type for SwitchSettings (#821)
* android: Only use `Boolean` value type for `SwitchSetting`s

* SwitchSetting.kt: Updated license header
2025-05-28 19:00:48 +01:00
OpenSauce
f771952e62
android: Reorganize setup process to use multiple buttons per-page (#820)
* Refactor SetupFragment to support multiple buttons in one page

* Add new `PageButton` data class

* Programmatic button creation && button disabling in setUpAdapter

* Refactor SetupWarningDialogFragment to support multiple titles, descriptions, and help links

* Rework CitraDirectoryHelper to support button step state

* Update warning message for user folder selection step

* Updated license headers

* Code cleanup

* "skip setting the user folder" --> "skip setting up the user folder"

* Fixed typos in string names

* Break `select_emulator_data_folder_description` string over two lines

* `select_emulator_data_folder` --> `select_emulator_data_folders`

* Code cleanup #2

* Removed seemingly accidentally duplicated block of code

* Removed stray newlines

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-05-27 18:41:27 +01:00
OpenSauce04
2c8a3b17b4 Updated language translations via Transifex 2025-05-27 13:03:07 +01:00
OpenSauce04
2aa29a62cc android: Enable android:windowOptOutEdgeToEdgeEnforcement for Android 15+ 2025-05-26 21:28:09 +01:00
PabloMK7
e83b81ec98
Add setting to toggle RPC server (disabled by default) (#1047) 2025-05-18 17:27:37 +02:00
Briar
580d46e3d6
android: Add aspect ratio setting for single screen layout mode (#913)
* android: Add aspect ratio setting for single screen layout mode

Co-Authored-By: Morph <39850852+Morph1984@users.noreply.github.com>

* Partial rewrite to address issues and improve readability

---------

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-05-12 19:58:01 +01:00
OpenSauce04
c204ebf021 android: Fixed Turbo toast appearing in situations other than toggling Turbo
+ minor code cleanup
2025-05-09 20:34:55 +01:00
OpenSauce04
73760e087a android: Added periods to the ends of performance overlay setting descriptions 2025-05-08 21:44:07 +01:00
OpenSauce04
3ce9f277d9 android: Corrected some nitpicky formatting inconsistencies in drawable xmls 2025-05-08 19:29:20 +01:00
OpenSauce
378d830a93
android: Improve performance stats overlay settings and functionality (#808)
* android: Improve performance stats overlay settings and functionality

* Add battery temp functions

* Readd frametime

* Corrected `perf_overlay_position` being placed in the wrong `default_ini.h` file

* Fixed the word "overlay" being repeatedly misspelled in function names

* `updateshowStatsOverlay` --> `updateShowStatsOverlay`

* Increased frequency of performance overlay updates

Changed from every 3 seconds to every 1 second

* Adjusted overlay margins to avoid text being lost behind rounded corner cutouts

* Fix performance overlay updates being stacked when changing orientation

* Changed out host RAM usage statistic for available host RAM

* Removed seemingly unused code

* "FT" --> "Frametime" in overlay

* Use non-breaking spaces to control how the overlay text breaks

Also used a vertical box drawing character instead of a pipe for the divider because it looks slightly nicer

* Renamed/adjusted remnants of the "Show System Memory Usage" setting

* Replaced Performance Stats Overlay icon with a stock clip art image from Android Studio

* Made performance overlay setting value names and strings less generic

* Rebranded Performance Stats Overlay as simply "Performance Overlay"

* Rewrote performance overlay settings description

* Improved naming consistency

* Rebranded "Show Overlay" toggle to "Show Controller Overlay"

This is to avoid confusion with the new performance overlay

* nitpick: Fixed order of imports in EmulationFragment.kt

* More string name consistency improvements

* Fixed compile failure due to a binding name not being updated

* Changed Performance Overlay setting headers

* EmulationFragment.kt: Formatting corrections

* Removed seemingly misplaced call to `updateShowPerformanceOverlay`

* `OVERLAY_POSITION` --> `PERFORMANCE_OVERLAY_POSITION`

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
Co-authored-by: Zephyron <zephyron@citron-emu.orgq>
2025-05-08 19:26:30 +01:00
OpenSauce04
74f3a2457e Updated translations via Transifex 2025-05-07 21:21:49 +01:00
OpenSauce04
ff72997511 Re-updated language translations via Transifex 2025-04-30 17:22:23 +01:00
OpenSauce04
9a7364ee92 Updated language translations via Transifex 2025-04-30 15:10:40 +01:00
PabloMK7
939a6e0f7a
Allow shader cache to switch to different titles at runtime (#978) 2025-04-24 19:03:48 +02:00
OpenSauce04
975ad17442 Internally rename turbo_speed and similar to turbo_limit
This aligns with the pre-existing `frame_limit` value
2025-04-23 16:59:28 +01:00
OpenSauce04
dcbf79df14 Overhaul turbo speed implementation to use temporary_frame_limit 2025-04-23 16:59:28 +01:00
OpenSauce04
a6782e8a13 android: Restructure strings.xml 2025-04-16 22:30:28 +01:00
OpenSauce04
fd3e4068b6 android: Renamed quicksave_saving and quickload_loading strings to simply saving and loading
This better reflects their use, as they are no longer used exclusively for quicksaves.
2025-04-16 22:08:05 +01:00
kleidis
8fbfb94bec android: Add toast popup while saving states through UI 2025-04-16 22:08:05 +01:00
kleidis
d43597b520 android: Allow saving to quickslot from UI
Idk why this was done by the original author as there are no conflicts
2025-04-16 22:08:05 +01:00
David Griswold
967263fc80
Implement screen gap setting (#622)
* implement screen gap

* type conversion fix for windows

* int setting
2025-04-16 19:05:46 +01:00
OpenSauce04
d974a0062f android: Disable title bar on Android 9 2025-04-15 12:41:32 +01:00
OpenSauce04
7c9ea780b3 Updated language translations via Transifex 2025-04-14 22:36:30 +01:00
OpenSauce04
ebb462f1d5 strings.xml: Uninstall Game --> Uninstall Application 2025-04-14 20:02:45 +01:00
David Griswold
240e968d73
android: Lime3DS to Azahar migration adjustments (#917)
* change dialog without write permissions

* Added update path from lime to azahar on android

* Shows the correct dialog info now

* remove unnecessary comments

* Adjusted `select_which_user_directory_to_use` string to be more readable

* improve the dialog box itself

* tougher fix than originally expected but all works as planned

* remove unnecessary code

* Updated license headers

* MainActivity.kt: Removed stray newline

* PermissionsHandler.kt: Move repeated "LIME3DS_DIRECTORY" string to `LIME3DS_DIRECTORY` constant

* Nitpicky comment adjustments

* Reverted superficial changes to HomeViewModel.kt

* PermissionsHandler.kt: `updateDirectory` --> `attemptAutomaticUpdateDirectory`

+ nitpicky formatting adjustment

* Moved PR additions to PermissionsHandler.kt to new file CitraDirectoryUtils.kt

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-04-14 19:08:11 +01:00
Briar
8dcef46a11
android: Add turbo speed hotkey touch controls overlay button (#911)
* android: Add turbo speed hotkey touch controls overlay

* Adjusted default controller overlay location of turbo button

* Changed "Turbo Speed" overlay button to simply be referred to as "Turbo"

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-04-12 22:59:53 +01:00
Briar
14413d896f Fix FRAME_LIMIT int not being reset on exit if the turbo hotkey is spammed 2025-04-12 20:32:22 +01:00
Briar
bf4eef8e58 android: Clean up the turbo speed hotkey implementation 2025-04-12 20:32:22 +01:00
OpenSauce04
76a23e4c72 Revert "Removed seemingly redundant isEnabled overrides"
This reverts commit cd58ce998af1a4237e9b3ee15a13443bb0844a46.
2025-04-11 23:35:25 +01:00
David Griswold
8e477e35bb
android: Original Portrait Layout (#625)
* Original Portrait Layout

Original Portrait Layout

* type conversion fix for win

* Updated license headers

* Applied clang-format

* android: Reordered Portrait Screen Layout menu

Custom Layout is now at the bottom of the list

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-04-11 18:23:07 +01:00
OpenSauce
12bc825b8a
android: Add isEnabled setting item conditional check (#814)
* android: Add `isEnabled` setting item conditional check

Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
(Thanks to him for the idea of using DiffUtil)

Now it is possible to have a conditional check for each setting type which once met will disable itself and re-enable once the condition is unmet again in real-time

* Refactor setting checks to deduplicate repeated `isEditable && isEnabled` conditionals

This is done by adding a new value, `setting.isActive` which is equivalent to `setting.isEditable && setting.isEnabled`

* Removed seemingly redundant `isEnabled` overrides

* Updated license headers

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-04-11 14:35:21 +01:00
OpenSauce
0e0137a9ff
Add turbo speed hotkey (#605)
* Add the turbo slider

* [WIP] Add fast forward toggle hotkey

* Make Increase/Decrease speed hotkeys change turbo key instead of `frame_limit`

* Allow non-runtime editable settings on `general` settings tab`

* `frame_limit` is now  non-runtime-editable

* Disable `toggle per game speed limit` if turbo mode is set

* Reset `frame_limit` back to initial value once the emulator closes

* Improve `AdjustSpeedLimit`

- Set frameskip value directly
- Bypass if turbo mode isn't active

* Some code cleanup

* Move `turbo_speed_slider` from UISettings to CommonSettings

Also rename to just `turbo_speed`

* android: Add turbo mode hotkey

* Fixed build failure + Applied clang-format

* configure_general.ui Make padding on right side of sliders consistent

Not sure why there's a difference here, so I just threw in a spacer

* android: Corrected build failures caused by bad merge

* Updated `turbo_speed_description` to be a little more descriptive

* android: Corrected turbo crash caused by bad JNI function names

* Updated license headers

* HotkeyFunctions.kt: Fixed minor fomatting irregularities

* Applied clang-format

---------

Co-authored-by: kleidis <167202775+kleidis@users.noreply.github.com>
2025-04-11 12:29:07 +01:00
Gamer64
4ea8c6fda5 android: Implement support for automatic resolution scale
Available on PC, but was missing on Android.
2025-04-10 21:39:49 +01:00
Kleidis
eb310a4a60 android: Update emulation_pause icon on resume
If the fragment got paused while emualtionState also was paused manually
via the menu bar, once the fragment got unpasued , the binding would
still remain paused
2025-04-10 21:34:51 +01:00
OpenSauce
93eeb501c0
android: Add uninstall game/updates/dlc and open folder entries to about game dialog (#823)
* android: Add uninstall game and open folder options

* Updated license header

* getGameDirectories: Cleanup

* Fixed "Open Updates Folder" button not working correctly

* Made "Open Extra Folder" behaviour consistent with other options when Extra folder not found

* strings.xml: Corrected double newline

* android: Adjusted about game dialog layout

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-04-02 18:57:04 +01:00
OpenSauce
5ade69f5f4
android: Add game thumbnail to EmulationFragment nav drawer (#809)
* android: Add game thumbnail to `EmulationFragment` nav drawer

* Updated license header

* EmulationFragment.kt: Corrected formatting

* header_in_game.xml: Changed placeholder text

---------

Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-03-30 15:19:55 +01:00
OpenSauce
e6199780a5
android: Implement Expand to Display Cutout option (#597)
* android: Implement Expand to Display Cutout option

* Removed irrelevant comment

* Moved Expand to Cutout Area setting to Layout section

---------

Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
2025-03-30 14:59:46 +01:00
OpenSauce04
dec12bd54a Updated language translations via Transifex 2025-03-30 10:51:37 +01:00
PabloMK7
5c7622100b
Check that the country setting is valid for selected region (#847)
* Check that the country setting is valid for selected region

* `SystemSaveGame.checkCountryCompatibility` -> `SystemSaveGame.getCountryCompatibility`

* SettingsFragmentPresenter.kt: Moved `checkCountryCompatibility` definition out of `addSystemSettings`

* SettingsFragmentPresenter.kt: Renamed `compat` value to `compatFlags` for better readability

* configure_system.ui: Corrected indentation

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-03-29 21:50:00 +00:00
PabloMK7
eda2d6f9fa
Mark console as "linked" when using the azahar artic setup tool (#833)
* Mark console as "linked" when using the azahar artic setup tool

* Updated strings related to console linking

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-03-28 11:10:59 +00:00
toksn
7dda835679 Use correct "input_type" key for AUDIO_INPUT_TYPE 2025-03-27 18:01:45 +00:00
Reg Tiangha
1de19fcbc2 android: Add Texture Sampling settings UI 2025-03-27 09:18:27 +00:00
OpenSauce
9203b23868
Stereoscopic 3D Enhancements (#602)
* Stereoscopic 3D Enhancements

- Increase maximum 3D depth to 255%
- Fix touch screen to only render 2D when separate window layout is used
- Cleanup some 3D option localizations

* qt: Added warning label below depth slider for values over 100%

* Fixed broken rendering for Interlaced, Reverse Interlaced and Anaglyph options when using 3D with seperate windows

* android: Added warning label below depth slider for values over 100%

* Fixed a bracket and break statement being incorrectly positioned

---------

Co-authored-by: oneup03 <oneup03@gmail.com>
2025-03-24 21:26:14 +00:00