* Add setup step to grant `MANAGE_EXTERNAL_STORAGE`
* WIP re-implementation of Android `Rename` using native filesystem manipulation
* Applied clang-format and updated license headers
* Support user directories on removable storage devices
* If `MANAGE_EXTERNAL_STORAGE` is lost, re-request it
* Fix missing permission dialog appearing during initial setup
* Added empty code branches to prep for old Android support
* Fixed permission setup completion not accounting for external storage permission
* Implement code for Android <11
* Fixed emulation error if a renamed file is then opened for R/W
* Detect if the current user directory cannot be located, and prompt re-selection
* If an invalid user directory is selected, reject and re-prompt
* Use zstd_seekable header from externals
Specifying the full path relies on the system installed header.
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
* Don't install zstd_seekable
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
---------
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
* Added NWM spectator mode (DLP now partially working), fixed debug assert, added applet utility cmd fallback
* Reverted AppletUtility command change
* Fixed inconsistent mac address
* Enabled DLP Child authorization
* Added the DLP module to recommended online modules
* Clean up
* Changed the returned number of words on GetProgramInfoFromCia to 7 insteead of 8, futher reverted AppletUtility function to match its original form
* Enable the SecondScreenPresentation class
* Update everything to enable second screen on android under GL and Vulkan. Still some issues!
* Some attempts to enable surface changes
* OpenGL is working on surface change, vulkan still no
* release surfaces (also fixed vulkan?)
* added and enabled layout setting
* resolve merge conflict
* rearrange switch cases to satisfy linux compiler
* openGL is working!
* several vk changes to try to fix crashes
* maybe vulkan is working?
* removing unnecessary code attempts
* Simplified secondscreen for better performance
* vk_platform.cpp: Fixed build failure caused by bad rebase
* vk_present_window.h: Removed stray newline
* Applied clang-format
* bug fix for odin 2
* Applied clang-format
* Updated license headers
* Moved SecondScreen class to org.citra.citra_emu.display
* Various formatting and readability improvements
* Added brackets where previously absent for readability
* Additional readability improvement
* RendererVulkan::NotifySurfaceChanged: Simplified condition checking
* change all references to "secondary screen" to "secondary display" to limit confusion with top screen / bottom screen
* rename main_window to main_present_window and second_window to secondary_present_window
* Reverted accidentally downgraded compatibility list submodule
* Removed unnecessary log message
* Applied clang-format
* Added a description to the Secondary Display Screen Layout setting
* Added `_ptr` suffix to `secondary_present_window`
This distinguishes it as a pointer, as `main_present_window` isn't a pointer, so there could be confusion on whether to use `.` or `->`
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* android: Implement play time tacking
Co-Authored-By: Reg Tiangha <rtiangha@users.noreply.github.com>
* Moved playtime manager from `citra_qt` to `common`
* Reimplemented Android play time to use existing logic from desktop
* Updated license headers
* When getting current game ID fails, silently error rather than crashing
* playTimeManagerStart: Check that `play_time_manager` is initialized before using it
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
Co-authored-by: Reg Tiangha <rtiangha@users.noreply.github.com>
* renderer_vulkan: Disable FIFO when refresh rate is lower than ~60hz
Also disables FIFO when Apple low power mode is enabled, as it can limit the application framerate to 30fps
* renderer_vulkan.cpp: Put `IsLowRefreshRate` into anon namespace + make static
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>
* 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>
* 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>
* Fix bug where log file was not generated on first run
This fix resolves issue #727.
On first start, Log::Initialize attempts to create the `azahar-emu/log/`
directory. However, it fails because `azahar-emu/` does not exist. Using
FileUtil::CreateFullPath instead will create both `azahar-emu` and
`log/`.
* Update license header
- Added option to enable required LLE modules for online features.
- (Android) Fixed bug that would cause FS RenameFile to fail sometimes on Android.
- (Android) Moved New 3DS mode and LLE applets to system settings tab on Android.
- (Android) Fixed cfg save data related issues (mostly Console ID).
- Made AM title scanning asynchronous, which makes game boot way faster on Android on most cases.
- Made more AM functions asynchronous, to prevent stutter.
- Fixed bug in SOC that could cause the emulator to crash when disconnecting.
- Fixed keys not being initialized when processing console unique files.