Commit graph

8420 commits

Author SHA1 Message Date
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
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
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
GPUCode
5691cf7e91 y2r: Delay completion event 2024-04-07 00:15:18 +03:00
PabloMK7
0c2f076dc4
Add svcs to get and set the emulation speed. (#57) 2024-04-06 13:00:58 +02:00
PabloMK7
775ceac27d
Reduce log levels for some FS functions and stub cache svcs (#51) 2024-04-05 13:49:36 +02:00