Commit graph

10107 commits

Author SHA1 Message Date
Reg Tiangha
0ec72a122d
Update citra(6) man page (#257) 2024-09-15 19:29:35 +02:00
Wunk
3e5bbac5a1
shader_jit_a64: Compact host executable memory (#230)
* common/aarch64: Allow generic code generator types

Use the templated `BasicCodeGenerator` type rather than the specialized
`CodeGenerator` type.
Allows `VectorCodeGenerator` to work with these functions.

* common/aarch64: Add `VectorCodeGenerator` to `CallFarFunction`

`VectorCodeGenerator` will always do far-calls since we cannot resolve any absolute addresses here.

* shader_jit_a64: Implement position-independent VectorCodeGenerator

Generates more position-independent assembly to allow for code to be
generated within a resizable vector before copying into executable
memory, allowing for more compact memory allocations and usage rather
than a statically defined worst-case for all-cases.

`VectorCodeGenerator` will need to generate position-independent code
rather than use absolute addresses. Assumes all far function calls in the
case of `VectorCodeGenerator` to use absolute addresses rather than
potentially use a relative `BL` branch after memory relocation.
2024-09-01 12:24:13 +02:00
Reg Tiangha
82faf2e557
Android: Add Pedometer Steps per Hour settings UI (#242) 2024-09-01 12:23:53 +02:00
Jugurta
2f0b2f9839
Refactor Vulkan stream buffer memory type selection (#238)
* Refactor Vulkan stream buffer memory type selection

This is a fix for GPUs with Vulkan V1.1 and V1.2

* add requested refactoring

* clang format

* fix typo
2024-08-25 10:27:04 +02:00
kleidis
9c1f778e79
android: Fix pause emulator button crashing the emulator (#239) 2024-08-22 23:33:05 +02:00
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