Commit graph

10102 commits

Author SHA1 Message Date
Daniel López Guimaraes 5115f640c2
act: Add more command names and implement GetErrorCode (#237)
* act: Add more command names and implement GetErrorCode

The command names have been extracted from 3dbrew and the JavaScript
bindings that the NNID settings uses internally.

The error names have been extracted from the Wii U implementation
(102-XXXX), which are compatible with the 3DS ones except for 022-5XXX,
which are error codes specific to the 3DS.

* act: Split error codes into separate file
2024-08-21 20:01:05 +02:00
kleidis d8760dee6a
qt: Fix default language not being set to the main one the system uses (#236)
* qt: Fix default language not being set to the main one the system uses

* cleanup code
2024-08-21 19:59:07 +02:00
szdarkhack e1ff3b8dbe
Add "Steps per hour" system setting (#211)
* Implements a steps per hour (global) setting that gets returned by PTM GetStepHistory

* Make setting label text clearer

* Add setting to SDL frontend

* Add setting to Android (no UI)

* Remove IntSetting enum value

* Follow convension in android default ini
2024-08-20 21:04:29 +02:00
PabloMK7 8538a57be0
Update submodules and build environments (#232)
* Update Vulkan and QT submodules

* Undefine FORTIFY_SOURCE before defining again

* Update discord-rpc submodule
2024-08-20 16:44:33 +02:00
David Griswold 8656655bb1
Use buttons instead of axes for the d-pad, enabling mapping from gamepads with only digital dpad outputs (#203) 2024-08-20 10:34:40 +02:00
kongfl888 K e3b156bd96
Android: add the titleId to the game card. (#227)
* Android: replace company in the game card with titleId.

TitleId is more useful for users than companies
because it can help them find game saves and the cheat file.

* Android: restore the company name on the game card.
2024-08-20 10:20:52 +02:00
Wunk 52f06f757f
shader_jit: Fix/optimize conditional evaluation (#234)
* shader_jit: Add conditional unit-tests

Tests all permutations of X, Y, AND, OR with each possible input value.

* video_core: Fix shader-interpreter conditional-code initialization

Rather than reserving the incoming state of the conditional codes, the
shader-interpreter was setting them both to false. In pretty much all
cases, the initial state of a shaderunit can be zero-initialized
statically. Just running the interpreter shouldn't necessarily reset the
conditional codes though.  The JIT loads incoming conditional codes
while the shader-interpreter resets them to false. This makes the
interpreter match the behavior of the shader-jit.

* shader_jit_a64: Fix/optimize conditional evaluation

Fix some of the regressions introduced by the previous optimization.
EOR does not support a constant of `0` in its immediate. In these cases
the COND{0,1} registers can be utilized immediately.

* shader_jit_x64: Fix conditional evaluation extended-bit hazard

The unit test seems to have identified a bug in the x64 jit too. The x64
jit was doing 32-bit comparisons despite the condition flags being 8-bit
values and is sensitive to garbage being in the upper 24 bits of the
register. This is fixed by using the proper 8-bit register types rather
than the 32-bit ones(`eax,`ebx` -> `al`, `bl`).

* shader_jit_x64: Zero-extend conditional-code bytes

`mov` was doing a partial update of bits within the register, allowing
garbage to be introduced in the upper bits of the register.
2024-08-20 10:19:04 +02:00
Wunk f248fefe06
shader_jit_a64: Optimize conditional tests (#229)
These conditional tests are a 1:1 translation from the x64 code but do
not have to be. Reference-values are known at emit-time and can be
embedded as an immediate into an `EOR` instruction rather than moved
into a register. The `TST` instruction can be utilized to more optimally
test and update the `EQ`/`NE` status flags.
2024-08-15 10:45:20 +02:00
Miguel e55e619328
bundle qt wayland into appimage by rtiangha (#212) 2024-07-25 13:42:19 +02:00
PabloMK7 d017955946
pica: Move mutex lock below tracing check on register write (#210)
Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-07-21 14:07:48 +02:00
PabloMK7 63450b662e
Add instant log flush option (#209) 2024-07-21 12:36:00 +02:00
PabloMK7 518f7234f7
Artic Base: Fix issue when 0 bytes are read from file (#199) 2024-07-17 14:37:55 +02:00
PabloMK7 959a66d839
renderer_vulkan: Address vulkan surface recreation issues (#198) 2024-07-16 23:54:02 +02:00
PabloMK7 55748d7d1a
Artic Base: Add Artic Controller support (#195) 2024-07-16 22:00:21 +02:00
PabloMK7 9de19ff7a1
Revert "android: implement device rotation options (#182)" (#194)
This reverts commit 93025c95f2.
2024-07-16 12:50:12 +02:00
Felix Nüsse eafb03ad38
allow remapping of unknown keycodes (#189) 2024-07-15 19:16:03 +02:00
Felix Nüsse 93025c95f2
android: implement device rotation options (#182)
* android: implement device rotation options

* fix naming

* move orientation-setting to different section
2024-07-14 00:54:57 +02:00
Felix Nüsse 45f52709a6
android: add quicksave hotkeys (#181) 2024-07-14 00:54:19 +02:00
PabloMK7 ed3d5a9f7f renderer_vulkan: Wait for window to present before destroying instance 2024-07-14 00:53:06 +02:00
PabloMK7 c697aaf656 renderer_vulkan: Reduce amount of wait semaphores 2024-07-14 00:53:06 +02:00
PabloMK7 40851682ce
Workaround a performance bug in older Mali GPUs (#185) 2024-07-13 23:47:11 +02:00
PabloMK7 e90795b616
Implement game render thread delay (#180)
More details: https://www.reddit.com/r/Citra/comments/1e1v4e1/fixing_luigis_mansion_2_performance_issues_once/
2024-07-13 00:57:03 +02:00
PabloMK7 cc220928bd
Fixup logic for GSP_GPU::TriggerCmdReqQueue (#177) 2024-07-12 13:22:31 +02:00
PabloMK7 4780a7134d
Artic Base: Implement DLC support and other fixes (#173)
* Artic Base: Implement DLC support and other fixes

* Fix per game settings not working with artic loader

* Fix compilation error
2024-07-09 23:35:29 +02:00
PabloMK7 1e2be72e5e
Artic Base: Fix fallback read/write not being chunked (#171) 2024-07-07 19:10:47 +02:00
PabloMK7 9b39b43e90
Update dynarmic to the latest version. (#170) 2024-07-07 15:10:35 +02:00
Wunk d2bd58287c
shader_jit/tests: Test both the shader interpreter and jit (#72)
* shader_jit/tests: Test both the shader interpreter and jit

Uses Catch2's `TEMPLATE_TEST_CASE`-feature to test both the JIT and the
interpreter.

* shader_jit/tests: Use generator-expressions for nested-loop test cases

Tests more permutations of inputs than just the two it had before

* shader/tests: Refactor `shader_jit` tests to just `shader` tests

Since these tests will test both the interpreter and the jit, they are no longer jit-specific tests and are more general shader-tests.

* shaders/tests: Disable Nested-Loop `ShaderInterpreterTest` test

Restoring loop-state on nested loops is bugged on the ShaderInterpreter.

* shader/tests: Fix Nested Loop generator expressions
2024-07-04 08:42:31 +02:00
wheremyfoodat f782903587
Y2R: Set is_busy_conversion to false when stopping conversion (#165) 2024-07-04 08:41:34 +02:00
PabloMK7 4f174f1c0b
Fix crash when cubemap face id is invalid (#154)
* Fix crash when cubemap face id is invalid

* make variable const
2024-06-15 20:49:08 +02:00
kongfl888 K 09dc3a5592
Fix gcc 13+ compilation and update fmt. (#142)
* Soc and artic_bass: gcc 13+ compatibility fix.

* externals/fmt: update to HEAD fcd3e1e19.
It will fix error.
  integer_sequence<bool, (Is == Is)...>  [-Werror=tautological-compare]
The updating is helpful and needed.
Fmt has gone through two public versions since its last update
and has fixed many bugs, including new compiler optimizations.
But neither of these two public versions can fix the errors encountered above.
We need to switch to a working version.
It can be fixed after fmt/8e62172.There are still many optimizations,
Such as this one:
  Std. h c++23 build fix (# 3856)
And these:
  C++23 compatibility: basicstring_view cannot be constructed from nullptr (# 3846)
  Fix warning C4702 emitted from format.h (MSVC) (#3866)
Of course, there are other functional improvements as well.
Very helpful.
The selected version is the one that has been checked and works well.

And synchronously updating local code.

* citra_qt/ui: clean up duplicate naming warnings.
2024-06-14 13:23:07 +02:00
PabloMK7 de1f082e75
Fix HTTP RequestState values (fixes Pretendo Network support with HLE http) (#143)
* Fix http RequestState values

* Fix formatting
2024-06-01 23:26:37 +02:00
RocketRobz e15d4c0d4a
Run screenshot capture function in paused state by capturing next frame (#116)
* Allow screenshot capture in paused state by unpausing to capture next frame

* Change `QMessageBox::No` to `QMessageBox::Yes`

* Fix formatting

* Fix formatting
2024-05-23 20:21:54 +02:00
Reg Tiangha 54aee70e68
citra_qt: Add scroll bar to System tab (#135) 2024-05-23 20:21:27 +02:00
PabloMK7 64e3e9ffaa
Do not use the cache if the read would result in OOB (#130) 2024-05-16 00:30:18 +02:00
PabloMK7 2e9d7bd208
Revert "Artic Base: Fix out of bounds cache reads (#127)" (#129)
This reverts commit 05cccb585d.
2024-05-16 00:17:25 +02:00
PabloMK7 05cccb585d
Artic Base: Fix out of bounds cache reads (#127) 2024-05-16 00:03:40 +02:00
OpenSauce 893dad57b2
Android: Remember last entered Artic Base server address (#113)
* Android: Remember last entered Artic Base server address

* Android: Updated string key for last Artic Base address

`lastArticBaseAddr` --> `last_artic_base_addr`

Co-authored-by: PabloMK7 <hackyglitch2@gmail.com>

---------

Co-authored-by: PabloMK7 <hackyglitch2@gmail.com>
2024-05-15 13:25:56 +02:00
Reg Tiangha 5d2150c67c
citra_qt: Add Open Log Folder option to Help menu (#121) 2024-05-15 11:16:57 +02:00
PabloMK7 71eca05af1
Fix PTM ext data creation after Artic Base changes. (#111) 2024-05-13 10:54:52 +02:00
PabloMK7 24c6ec5e6a
Add Artic Base support (#105)
* Add Artic Base support

* Add Android support
2024-05-12 20:17:06 +02:00
Reg Tiangha 572d3ab71c
citra_qt: Restore Web Tab (#103)
* citra_qt: Restore Web tab

* configure_web: Remove telemetry and Citra Web Services
2024-05-08 11:30:57 +02:00
PabloMK7 b5126f979c
renderer_vulkan: Use proper image view on LCD fills (#91) 2024-04-23 21:42:19 +02:00
PabloMK7 a8e601ae7d
Fix showing color console if debugger attached on windows. (#88) 2024-04-22 23:37:59 +02:00
PabloMK7 d063f26efc
Remove resource limit checks for now. (#89) 2024-04-22 23:37:45 +02:00
PabloMK7 b1e5485058
Allow loading IPS files from Luma3DS folders. (#87) 2024-04-22 23:37:30 +02:00
Reg Tiangha de65b15dde
renderer_vulkan: Rewrite descriptor set management and various small fixes (#77)
* renderer_vulkan: Remove vulkan prefix in SetObjectName

* renderer_vulkan: Rename renderpass cache to render manager

* It is no longer just a cache

* renderer_vulkan: Rewrite descriptor management

* Switch to batched vkUpdateDescriptorSets from cached descriptor sets with templates

* vk_master_semaphore: Remove waitable atomic

* These are buggy on some platforms and regular condition_variables are faster most of the time

* vk_texture_runtime.cpp: remove outdated references

* vk_render_manager: Minor cleanups and rename to RenderManager

* It is no longer just a renderpass cache
* Revert variable name change from render_manager back to renderpass_cache

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-04-22 22:43:36 +02:00
Malachi e26ceabfd1
vk_instance.cpp: fix getting driver_id for vulkan device (#67)
* vk_instance.cpp: fix getting driver_id for vulkan device

* apply clang-format (fixed)
2024-04-10 23:05:35 +03:00
GPUCode 9dfe3eb4bc
rasterizer_cache: Improve validation skip heuristic (#69) 2024-04-10 23:00:53 +03:00
GPUCode f5cf180cee
Merge pull request #59 from GPUCode/y2r
y2r: Delay completion event
2024-04-10 01:38:47 +03:00
GPUCode db3da09d85 y2r: Remove goto 2024-04-10 01:23:31 +03:00