* Fix aac_decoder memory leak
Only call NeAACDecInit on the first AAC frame and create new NeAACDecoder on DecoderCommand::Init request
* update license headers
* fix oversight
* reorganized code
-put open new FAAD2 AAC decoder code into a separate function
-removed LOG_INFO for open/close FAAD2 AAC decoder
-added LOG_ERROR when no decoder is created to handle decode request, either decoder creation failed or DecoderCommand::Init command not received
* Update aac_decoder.cpp
fix clang coding style check
* fix load savestate
Loading a savestate creates a situation where decode requests aren't preceded by an init request, so we open a new decoder by default in the constructor. A new AACDecoder instance is always constructed on load savestate.
* 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>
* Replace deprecated and removed in boost 1.88 io_service for io_context
* More thoroughly replaced references to io_service with io_context
* Updated license header
---------
Co-authored-by: OpenSauce04 <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.