* fix SOC_U::Accept invalid log function
* make logging get checked at compile time
- ensures log strings match the amount and type (if the format specifies an integer, for example) of the arguments
- if at any later point a runtime-generated string is used as the log format, FmtLogMessage might require an overload taking a fmt::runtime_format_string<> as the format argument type, everything else being equal. wrap the generated string with fmt::runtime() before passing to the LOG_X function
* formatting fix: aligning the arguments
* vk_texture_runtime: Use boost-`static_vector` for image init-barriers
Uses `static_vector` rather than `std::array`+`u32` when passing input
parameters into the initialization barriers.
* vk_texture_runtime: Use boost-`static_vector` for framebuffer attachments
* vk_texture_runtime: Use boost-`static_vector` for surface uploads
* yuzu: Use displayed port on direct connect
* Color player counts in the multiplayer public lobby list
- Full lobbies have their player count displayed in red.
- Lobbies with one slot left have their player count displayed in orange.
- Empty lobbies have their player count grayed out.
* Add hotkeys for multiplayer actions
Default shortcuts were chosen as to be intuitive (use the first letter
of the action, or the second word's first letter) and work on all
types of keyboards. The hotkeys can be used while playing a game too,
as they are application-wide.
* Persist filters in multiplayer public lobby list
After connecting to a room, the chosen filter text, "Games I Own",
"Hide Empty Rooms" and "Hide Full Rooms" values are persisted
to configuration so they are preserved across restarts.
This makes it easier to rejoin a room if you regularly play the same
game, or after a crash.
* citra_qt/lobby: Fix multiplayer player count color in dark theme
Co-Authored-By: Kevnkkm <56404895+kevnkkm@users.noreply.github.com>
* Address review comments
---------
Co-authored-by: Narr the Reg <juangerman-13@hotmail.com>
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: Kevnkkm <56404895+kevnkkm@users.noreply.github.com>
This adds support for the Performance and Battery Saver modes in the Game Dashboard mostly found on Google Pixel devices.
This does not yet define the specifics for the performance modes but does provide the initial basic support.
Co-authored-by: Emma <153868115+gaypotatoemma@users.noreply.github.com>
Currently, the RESOLUTION_FACTOR preference is being set with the GRAPHICS_API key and default. Therefore, it will set/retrieve the wrong values
This revision updates the RESOLUTION_FACTOR preference to use the RESOLUTION_FACTOR key and default value. As a result, RESOLUTION_FACTOR and GRAPHICS_API should store and return the correct (separate) values
* dist: Remove duplicated Finnish translation
For some reason, we had Finnish listed twice on Transifex, causing it be shown twice in Citra.
It has already been deleted again from Transifex, now we only need to remove it from the repo as well.
* citra_qt/configure_ui: Show country of language in the combobox
This prevents an issue where we had seperate versions of the same language for different regions and they were not distinguishable (e.g. "Chinese (China)" and "Chinese (Taiwan)").
* geometry_pipeline: Remove unneeded assert
* Has been hw-tested that gs works correctly even when not in exclusive mode
* pica_core: Propagate output_mask to gs
* Has been hw-tested to occur under the same conditions that other uniforms are shared
* regs_shader: Intialize GPUREG_SH_INPUTBUFFER_CONFIG to default value
* Default value verified on hw. Tales of Abyss does not update the number of vertex attributes for the geometry unit and expects it to be 2
* texture_codec: Align buffer sizes to bpp
* Prevents out of bounds texture reads when launching TOA from the HOME menu
* pica_core: Make default value more clear
While I was looking at the NEWS sysmodule, I noticed the params order
for this command were backwards: the info type is the first param,
followed by the buffer size.
This is accurate to my reverse engineered code for the NEWS sysmodule.
Upon further research, I found out the unknown value in FS::Get[This]SaveDataSecureValue indicates that the requesting process is a game card. I have updated the comment for future reference.
* Add random delay to app main thread
* Suggestions
* Remove randomness, only delay with lle
* Apply suggestions
* Fix clang format
* Fix compilation (again)
* Remove unused include
* Implement some missing/wrong AC functionality.
* Schedule NDM connect event into the future
* Disable NDM connect for now as it's causing issues
* Apply latest changes and suggestions.
* Workaround to fake wifi connection.
* Add missing command to ac:i
* Fix compilation
* Fix error codes for CamcelConnectAsync
* Fix missing global state.
* do not move constant variables
* applet_manager: avoid possible use after move
* use constant references where pointed out by msvc
* extra_hid: initialize response
* ValidateSaveState: passing slot separately is not necessary
* common: mark HashCombine as nodiscard
* cityhash: remove use of using namespace std
* Prefix all size_t with std::
done automatically by executing regex replace `([^:0-9a-zA-Z_])size_t([^0-9a-zA-Z_])` -> `$1std::size_t$2`
based on 7d8f115
* shared_memory.cpp: fix log error format
* fix compiling with pch off
* core_timing: Apply random base ticks value on startup.
* core: Maintain consistent base system ticks in TAS movies.
* frontend: Add setting to configure a fixed base system ticks value.
* core: Config plg_ldr after its creation
* Also use service manager to retrieve the service
* thread: Release resource limit in Thread::Stop
* service: Undo plgldr change
* Associate 3ds files with Citra in Info.plist
* qt: Add support for opening files directly on macOS.
---------
Co-authored-by: shinra-electric <50119606+shinra-electric@users.noreply.github.com>
* framebuffer_layout.cpp: simplify FrameLayoutFromResolutionScale
- upright_screen seems to only be swapped width and height calculation, so it is replaced with std::swap
- Get rid of call to GetCardboardSettings, The FrameLayoutFromResolutionScale function is used for Screenshots and Video Dumping where we dont need 3D effects
* framebuffer_layout.cpp: Combine SideFrameLayout and MobileLandscapeFrameLayout into variants of LargeFrameLayout
* framebuffer_layout.{cpp,h}: rename maxRectangle to MaxRectangle, plus
minor documentation update
* clang-format
* kernel: Switch to atmosphere style macros
* code: Rename ResultCode to Result
* code: Result constants are lower case
* Address review comments
* core: Remove CASCADE_CODE
* R_TRY replaces completely
* core: Run clang format
* boss: Implement some NsData header and read commands.
Co-authored-by: Rokkubro <lachlanb03@gmail.com>
* boss: Move opening ext data to common function and improve logging.
---------
Co-authored-by: Rokkubro <lachlanb03@gmail.com>
* feat(android-hotkeys): Introduce hotkey support for Android app
* android: Fix settings not saving for layout options - screen swap + layout.
* android: Fix `from` method to default to "DEFAULT" if passed an invalid method (and also not be based on ordering)
* android: PR response - name to togglePause
This is particularly relavant for TASing, not savestating these values will often cause dropped inputs on loading a savestate, due to the previous old circle pad values being used rather than the ones used during the savestate.
For casual usage, this likely doesn't have much effect compared to the previous code, considering a casual user is probably not likely to care if inputs on the first frame of loading a savestate is dropped or not.
* android: Rework cheats
Reworks cheats to use the navigation component, kotlin, and a tweaked layout for a better tuned look.
* android: Convert remaining files to kotlin and add overlay home button
* android: Remove Picasso dependency
* android: Fix home option layout centering
* android: Adjust logo size in-app