* cmake: Bump min version to 3.25 and update android to 3.30.3
* app/build.gradle.kts: Set minimum CMake version rather than exact version
---------
Co-authored-by: OpenSauce <opensauce04@gmail.com>
* Fix and restore macOS native menu
* Handle menu more elegantly by making norole default
Handle menu roles more universally by making norole default and manually define previously automatically assigned roles
Uses SIMD operations on the RasterizerAccelerated::AnalyzeVertexArray
function, which is hot code. Slightly reduces GPU processing time
on all games.
This idea was suggested by an anonymous contributor.
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
Enables the use of SSE4.2 instructions on x86_64 CPUs, allowing
compilers to automatically vectorize some loops on citra_common.
A CMake toggle ENABLE_SSE42 (ON by default) has been added
to enable this behaviour.
This change breaks compatibility with CPUs that do not have
SSE4.2 instructions. All modern CPUs (from 2011 onwards) should
always have these instructions. Manual compilation will be
needed for older CPUs.
A message has been added to report if the CPU is incompatible
when starting the emulator.
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* 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>
* 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>
* 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>
It seems that certain environments still don't have access to `std::format` yet, and I missed this because it built fine on my machine and CI passed because the code using `std::format` wasn't included in non-tagged builds.
When the frame limit was set to 0 (unthrottled), the Vulkan present mode would be unintentionally set to FIFO, which caps out at the monitor's refresh rate