Simonx22
e4f97a2532
Android: Update dependencies
2024-04-20 17:53:11 +02:00
JosJuice
13e9d5c889
Jit64: Improve register handling in fp_arith
...
This lets us avoid the "ugly" case.
2024-04-20 17:50:54 +02:00
JosJuice
2bb59ff0dc
Jit64: Inline avx_op into fp_arith
...
This will let us manage registers better in the next commit.
2024-04-20 17:50:54 +02:00
JosJuice
2c2e06bf39
Jit64: Add extra cases for reversible avx_op
...
Optimization.
2024-04-20 17:50:54 +02:00
JosJuice
bb3306701b
Jit64: Flatten avx_op
...
Reduces indentation and places the "ugly" case last. No behavior change.
2024-04-20 17:50:54 +02:00
JosJuice
4ac52cf053
JitArm64: Minor mtfsfix optimization
...
BFI takes two cycles on many CPUs, whereas AND (immediate) only takes
one.
2024-04-20 16:55:29 +02:00
Tilka
20665ebce7
Merge pull request #12710 from jordan-woyak/mouse-pointing-disable-relative
...
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-20 14:14:03 +01:00
Tilka
017f72f43e
Merge pull request #12672 from JosJuice/jit64-extract-with-byte-offset
...
Jit64: Clean up ExtractWithByteOffset
2024-04-20 12:41:29 +01:00
Tilka
b98176075e
Merge pull request #12719 from stblr/device-change-again
...
HIDv4: Fix racy device change behavior
2024-04-20 12:26:40 +01:00
Tillmann Karras
8ed41e7264
TAPServerConnection: drop unused enum class ReadState
...
This also fixes a -Wshadow warning because there is a function-local
equivalent in ReadThreadHandler().
2024-04-20 12:04:28 +01:00
JosJuice
758097f09c
Merge pull request #12717 from mitaclaw/downcountAmount
...
Change JitState::downcountAmount to a u32
2024-04-20 10:39:33 +02:00
Admiral H. Curtiss
0e7346ac10
Merge pull request #12718 from nicovank/master
...
Apply Clang-Tidy's modernize-use-starts-ends-with
2024-04-20 05:21:38 +02:00
Admiral H. Curtiss
2252635070
Merge pull request #12702 from Dentomologist/gamelist_show_disc1_for_two_disc_games
...
GameList: Show (Disc 1) for first disc of two-disc games
2024-04-20 05:03:38 +02:00
Pablo Stebler
93b29cb8b2
HIDv4: Fix racy device change behavior
...
This prevents the device changes happening between 2 GETDEVICECHANGE
calls from being missed by the application.
Same as 7e7b0971ab
.
2024-04-19 21:56:12 +02:00
Nicolas van Kempen
932645f245
Apply modernize-use-starts-ends-with
2024-04-19 14:55:29 -04:00
mitaclaw
65ff0146b9
Change JitState::downcountAmount to u32
2024-04-19 04:08:34 -07:00
Jordan Woyak
df7dd5d36a
Config: Expose GFX_OVERLAY_PROJ_STATS setting in UI.
2024-04-18 14:45:28 -05:00
Jordan Woyak
1e27183dff
VideoCommon: Show the average projection to viewport ratio in statistics
...
window.
2024-04-18 14:45:28 -05:00
Jonas Kalsvik
859ac40ca2
DolphinTool: Add an image extract command
2024-04-18 21:11:19 +02:00
Admiral H. Curtiss
1805f6e381
Merge pull request #12660 from jordan-woyak/hide-makepkg
...
Hide branch name from title bar when there are no commits ahead of master.
2024-04-18 17:21:24 +02:00
Admiral H. Curtiss
8268ae1cf7
Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
...
VideoCommon: add xfbs hashes to present info if available
2024-04-18 17:11:49 +02:00
Sepalani
c0fd59adfd
BBA/HLE: Handle connection error
2024-04-17 20:18:20 +04:00
Sepalani
73aa8c50a2
BBA/HLE: Sleep when no data is received
2024-04-17 20:18:20 +04:00
Sepalani
05ed1a2fae
BBA/HLE: Poll as much data as possible
2024-04-17 20:18:20 +04:00
Sepalani
c71134c4ab
BBA/HLE: Check queue overrun
2024-04-17 20:18:20 +04:00
Dentomologist
9c5605a59c
AudioCommon: When ALSA is absent on Linux, default to Cubeb backend
...
Default to Cubeb instead of the NULL backend on Linux when ALSA isn't
valid.
2024-04-16 14:06:28 -07:00
Admiral H. Curtiss
83b5124d40
Merge pull request #12559 from sepalani/bba-refactor
...
BBA/HLE: Code refactoring
2024-04-16 22:43:04 +02:00
Admiral H. Curtiss
e757d5ea9c
Merge pull request #12708 from brad0/openbsd_sound_backend
...
Set default sound backend on OpenBSD to cubeb
2024-04-16 22:41:28 +02:00
Jordan Woyak
47b06d274e
InputCommon: Fix unnecessary "Modifier/Range" ini file entries.
2024-04-15 18:32:31 -05:00
Jordan Woyak
31dc3477ad
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-15 14:52:26 -05:00
Dentomologist
dbaa844e57
Remove defined-out code
2024-04-15 12:17:35 -07:00
OatmealDome
dbc7e03577
Merge pull request #12709 from mitaclaw/rcheevos-posix
...
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-15 01:21:43 -04:00
mitaclaw
48b38f6e9b
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-14 21:47:41 -07:00
OatmealDome
ab53f6934c
Merge pull request #12704 from mitaclaw/symbol-description-view
...
PPCSymbolDB: GetDescription by std::string_view
2024-04-14 22:14:18 -04:00
Brad Smith
ba2ccf3889
Set default sound backend on OpenBSD to cubeb
...
Set the default sound backend to cubeb instead of the default
being none.
2024-04-14 18:47:20 -04:00
Dentomologist
37b89d5b71
GameList: Show (Disc 1) for first disc of two-disc games
...
Append disc label to the first disc of two-disc games too, rather than
only labelling the second disc.
2024-04-14 13:55:18 -07:00
Jordan Woyak
637ae12ff4
Merge pull request #12703 from nlebeck/settingshandler-nomove-2
...
Pass `SettingsHandler` buffers by const ref instead of rvalue ref (since the contents are copied either way)
2024-04-13 17:10:11 -05:00
JosJuice
5456d990d1
Android/ControllerInterface: Run the init code
...
This was broken by a9a9fdd9e9
. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
2024-04-13 22:39:10 +02:00
Tilka
e62d8ecfa8
Merge pull request #12632 from jordan-woyak/input-backend-impls
...
Implement missing InputBackend classes.
2024-04-13 11:56:27 +01:00
mitaclaw
672be6a8cf
PPCSymbolDB: GetDescription by std::string_view
...
Should save a lot of deep copies.
2024-04-13 00:19:01 -07:00
Admiral H. Curtiss
1bfeeb8a63
Merge pull request #12693 from Tilka/zelda3
...
DSPHLE/Zelda: simplify AFC decoding
2024-04-13 03:57:13 +02:00
Niel Lebeck
d2b96736e0
Pass SettingsHandler buffers by const ref instead of rvalue ref
2024-04-12 18:50:21 -07:00
Admiral H. Curtiss
b3939052b4
Merge pull request #12436 from Filoppi/frame-dump-raw-internal-resolution
...
Frame dump at raw internal resolution
2024-04-13 03:39:37 +02:00
Admiral H. Curtiss
2f13be5a2d
VideoConfig: Adjust FrameDumpResolutionType enum class to style guidelines
2024-04-13 03:21:39 +02:00
Admiral H. Curtiss
107379bf74
Merge pull request #12569 from GregoireLD/dolphin-GBAProfilePathFix
...
Fix path-loading of GBA map configurations
2024-04-13 02:46:07 +02:00
Admiral H. Curtiss
3a0720dd1f
Merge pull request #12681 from nlebeck/taskviewmodel-refactor
...
Refactor `TaskViewModel` to track task-related state in a single `MutableLiveData` instance
2024-04-13 01:42:12 +02:00
Admiral H. Curtiss
b623a36005
Merge pull request #12688 from JosJuice/android-alert-synchronize
...
Android: Fix race condition in displayAlertMsg
2024-04-13 01:40:30 +02:00
Admiral H. Curtiss
d58c998d6d
Merge pull request #12696 from mitaclaw/verify-widget-core-state-slot
...
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-13 01:39:32 +02:00
Admiral H. Curtiss
0c1a76398b
Merge pull request #12691 from mitaclaw/jit-profiling-restoration
...
JitCache: Software Profiling Restoration
2024-04-13 01:35:25 +02:00
Jordan Woyak
9321318cb6
DolphinQt: Ensure controller settings show the game-controller indicator while expression editing.
2024-04-12 15:54:18 -05:00
Jordan Woyak
e9fe0d3d5b
NumericSetting: Stop values from binding to numbered input names.
2024-04-12 15:54:18 -05:00
Jordan Woyak
5039072ae9
ExpressionParser: Support unary plus operator.
2024-04-12 15:52:35 -05:00
Tilka
2011c7a448
Merge pull request #12697 from JosJuice/no-getpointer-part-4
...
VideoCommon: Remove calls to GetPointer
2024-04-12 20:01:09 +01:00
Tilka
9a9be5ca51
Merge pull request #12614 from nlebeck/settingshandler-edgecase
...
Add SettingsHandler unit tests exercising the edge case fixed in PR #8704
2024-04-12 17:32:51 +01:00
Tilka
771858b182
Merge pull request #12701 from Tilka/usbwait
...
Qt: trigger first USB device scan without a timer
2024-04-12 14:25:45 +01:00
Tilka
1fa5c3485c
Merge pull request #12699 from mitaclaw/cached-interpreter-perfmon-optimization
...
CachedInterpreter: Skip Updating Instruction PERFMON When There Are None
2024-04-11 16:19:42 +01:00
Tillmann Karras
99a8849125
Qt: trigger first USB device scan without a timer
...
Currently the dialog makes you wait one second before it shows anything.
Instead, trigger the first scan manually.
2024-04-11 16:48:10 +02:00
mitaclaw
bc7b11517f
MenuBar: Optimize SearchInstruction
2024-04-10 17:00:45 -07:00
mitaclaw
3073e8fd40
CachedInterpreter: Skip Updating Instruction PERFMON When There Are None
2024-04-10 04:09:37 -07:00
iwubcode
abf380b705
VideoCommon: add xfb hash values (if available) to present information
2024-04-09 18:59:33 -05:00
iwubcode
e5b7b2e9ee
VideoCommon: add xfbs presented to video events
2024-04-09 18:57:32 -05:00
mitaclaw
94712ea06f
Android: Access Software JIT Profiling
2024-04-09 13:43:32 -07:00
mitaclaw
6dad5cee65
DolphinQt: Access Software JIT Profiling
2024-04-09 13:43:32 -07:00
mitaclaw
30c63fa4a6
Common: Remove Unused PerformanceCounter Code
2024-04-09 13:43:32 -07:00
mitaclaw
ee8bcf2ccc
JitCache: Software Profiling Restoration
...
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-09 13:43:31 -07:00
mitaclaw
fe8f836668
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-09 12:13:02 -07:00
JosJuice
54773bc5d2
VideoCommon: Remove calls to GetPointer
...
This fourth part of my series of patches to get rid of unsafe uses of
GetPointer takes care of the "easy" cases in VideoCommon. Three uses of
GetPointer now remain in Dolphin: VertexLoaderManager, TextureInfo, and
the software renderer's TextureSampler.
2024-04-09 21:08:57 +02:00
Admiral H. Curtiss
69aca2fbfc
Merge pull request #11141 from JosJuice/jit64-soft-fma-nans-preserve
...
Jit64: Preserve inputs when software_fma && m_accurate_nans
2024-04-09 06:04:21 +02:00
Admiral H. Curtiss
35836225c5
Merge pull request #12646 from mitaclaw/ppc-cache-global-system
...
PPCCache: Avoid Global System Accessor
2024-04-09 05:57:57 +02:00
Admiral H. Curtiss
e77def0478
Merge pull request #12690 from JosJuice/no-getpointer-part-3
...
IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
2024-04-09 05:53:56 +02:00
mitaclaw
cf74c0d683
PPCCache: Avoid Global System Accessor
2024-04-08 19:49:57 -07:00
mitaclaw
eb92d6f0a8
Core::GetState: Avoid Global System Accessor
2024-04-08 16:23:23 -07:00
Filoppi
66592f79f2
Video: remove enforced resolution least common multiple of 4 when dumping screenshots and not videos (only videos encoders have this limit).
...
NOTE: this will likely trigger FIFOCI differences.
2024-04-08 22:54:45 +03:00
Filoppi
72db62e178
Video: split frame dumping settings into 3 resolution dumping modes
...
also polish aspect ratio related code for clarity
2024-04-08 22:54:45 +03:00
Niel Lebeck
d7836efa1a
Refactor TaskViewModel to track task-related state in a single MutableLiveData instance
2024-04-07 17:10:02 -07:00
Tillmann Karras
5db9924d13
DSPHLE/Zelda: set COMBINED_CMD_0D flag appropriately
...
All relevant games other than Pikmin 1 Wii seem to always set the two
dwords to zero, so previously they were ignored during command dispatch
and now we still ignore them but in the right place.
2024-04-07 18:53:01 +01:00
Tillmann Karras
8533b5649e
DSPHLE/Zelda: simplify AFC decoding
2024-04-07 10:55:21 +01:00
mitaclaw
be27c4f877
NativeLibrary: Create displayToastMsg Method
2024-04-06 15:41:23 -07:00
Tillmann Karras
d1db347c8a
evdev: close file descriptors in a separate thread
...
For some reason Linux is surprisingly slow at closing file descriptors
of event devices. This commit improves GUI startup times on my computer
by about 1.5 seconds.
2024-04-06 20:58:17 +01:00
JosJuice
5e58a46361
Jit64: Preserve inputs when software_fma && m_accurate_nans
...
When writing the software FMA code, I didn't realize that we can't
overwrite d if d is the same register as one of the inputs and
HandleNaNs is going to be called. This fixes that.
2024-04-06 21:38:58 +02:00
JosJuice
f40dc7b5f9
IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
...
Part 3 of stopping using GetPointer. This gets rid of the last
GetPointer call in IOS, which I skipped in part 1.
2024-04-06 21:04:54 +02:00
Sepalani
07a2429367
BBA/HLE: Fix network_ref coding style
2024-04-06 21:43:48 +04:00
Sepalani
f3194b777b
BBA/HLE: Move polling data logic into a method
2024-04-06 21:43:48 +04:00
Sepalani
fbebbcc0fd
BBA/HLE: Move functions to anonymous namespace
2024-04-06 21:43:48 +04:00
Sepalani
6e2a081cb9
BBA/HLE: Loop over network_ref once
2024-04-06 21:43:48 +04:00
Sepalani
9e0bf29329
BBA/HLE: Move GetSlot methods
2024-04-06 21:43:48 +04:00
Sepalani
5388f35cc4
BBA/HLE: Add NetworkRef::Clear method
2024-04-06 21:43:48 +04:00
Sepalani
e915f990bb
BBA/HLE: Make network_ref into a class
2024-04-06 21:43:48 +04:00
Tillmann Karras
9c705f1011
Movie: simplify silly loop
2024-04-06 18:28:43 +01:00
JosJuice
9ca9d073df
Android: Fix race condition in displayAlertMsg
...
It was possible for sAlertMessageLock.notify() to be called before
sAlertMessageLock.wait(), causing Dolphin to deadlock. In particular,
this was guaranteed to happen if displayAlertMsg was called from the UI
thread while the emulation activity is being destroyed, because
runOnUiThread runs the passed-in anonymous function immediately when
called from the UI thread.
By replacing Object.wait/Object.notify with Semaphore.acquire/
Semaphore.release, it no longer matters what order the methods are
called in.
2024-04-05 22:46:48 +02:00
Admiral H. Curtiss
d3073353a7
Merge pull request #12555 from sepalani/bba-connecting
...
BBA/HLE: Don't assume connect is successful
2024-04-05 21:29:10 +02:00
JosJuice
eef71d50c3
Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
...
Because SettingViewHolder is used in RecyclerViews, we have to
explicitly unset STRIKE_THRU_TEXT_FLAG when we don't want it, otherwise
it might be left over from when the SettingViewHolder was representing
a different setting.
2024-04-05 20:14:41 +02:00
Admiral H. Curtiss
ad331205d1
Merge pull request #12684 from Pokechu22/invalid-vertex-component
...
Fix out of bounds accesses for invalid vertex component formats
2024-04-04 22:10:18 +02:00
Pokechu22
a3951dc2d7
Fix out of bounds accesses for invalid vertex component formats
...
On all platforms, this would result in out of bounds accesses when getting the component sizes (which uses stuff from VertexLoader_Position.h/VertexLoader_TextCoord.h/VertexLoader_Normal.h). On platforms other than x64 and ARM64, this would also be out of bounds accesses when getting function pointers for the non-JIT vertex loader (in VertexLoader_Position.cpp etc.). Usually both of these would get data from other entries in the same multi-dimensional array, but the last few entries would be truly out of bounds. This does mean that an out of bounds function pointer can be called on platforms that don't have a JIT vertex loader, but it is limited to invalid component formats with values 5/6/7 due to the size of the bitfield the formats come from, so it seems unlikely that this could be exploited in practice.
This issue affects a few games; Def Jam: Fight for New York (https://bugs.dolphin-emu.org/issues/12719 ) and Fifa Street are known to be affected.
I have not done any hardware testing for this PR specifically, though I *think* I previously determined that at least a value of 5 behaves the same as float (4). That's what I implemented in any case. I did previously determine that both Def Jam: Fight for New York and Fifa Street use an invalid normal format, but don't actually have lighting enabled when that normal vector is used, so it doesn't change rendering in practice.
The color component format also has two invalid values, but VertexLoader_Color.h/.cpp do check for those invalid ones and return a default value instead of doing an out of bounds access.
2024-04-04 12:50:34 -07:00
Admiral H. Curtiss
4312840a4b
Merge pull request #12678 from JosJuice/no-getpointer-part-2
...
HW: Remove calls to GetPointer
2024-04-04 21:43:57 +02:00
Admiral H. Curtiss
db8b2942aa
Merge pull request #12683 from LillyJadeKatrin/retroachievements-submodule-update
...
Update rcheevos submodule to newest master.
2024-04-04 21:14:44 +02:00
Admiral H. Curtiss
0aa92f7a56
Merge pull request #12685 from JosJuice/get-pointer-for-range-zero-size
...
Memmap: Don't show panic alert for 0 length range
2024-04-04 21:08:53 +02:00
JosJuice
fad57b648f
Memmap: Don't show panic alert for 0 length range
...
IOS::HLE::IOCtlVRequest::Dump sometimes tries to call GetPointerForRange
with an address of 0 and a size of 0. Address 0 is valid, but we were
mistakenly also trying to check that address 3FFFFFFF is valid, which it
isn't.
Fixes https://bugs.dolphin-emu.org/issues/13514 .
2024-04-04 18:56:17 +02:00
LillyJadeKatrin
225a6da074
Update rcheevos submodule to newest master.
2024-04-03 15:03:36 -04:00
Filoppi
1f34adf216
Video: move all padding added for frame dumping to a single function,
...
which also avoids the output window from being resized randomly to be a multiple of 4
2024-04-03 13:32:01 +03:00
Filoppi
d6230bbad8
Video: Change the frame dumper to actually use the raw emulation output resolution, avoiding any scaling if possible.
...
This should make comparisons much more reliable as pixels wouldn't be smushed together or stretched.
2024-04-03 13:32:01 +03:00
OatmealDome
4421cc471d
Merge pull request #12631 from jordan-woyak/remove-osx-input-leftovers
...
InputCommon: Remove some IOKit leftovers.
2024-04-01 17:05:13 -04:00
JosJuice
f58abf59c0
Jit: Skip discarded registers when flushing for interpreter fallback
...
Normally, the asserts added in 34b0a6ea90
are only triggered when
something actually went wrong in Dolphin. But there is one exception:
In FallBackToInterpreter, we flush all registers regardless of whether
they're discarded. This is fine as long as none of the discarded
registers are inputs to the instruction that the interpreter will run.
To avoid false positive asserts, this change adds a parameter to Flush
that controls whether to skip the asserts for discarded registers.
Additionally, an assert for discarded registers is added to
Arm64FPRCache::Flush. (Previously JitArm64 asserted for GPRs (and CRs)
only, whereas Jit64 asserted both for GPRs and FPRs. I most likely
didn't think of FPRs when writing 34b0a6ea90.)
2024-04-01 16:24:26 +02:00
Dentomologist
ac4fd2297f
CheatsManager: Allow making the window smaller
...
Move CheatManager's child widgets into scroll areas to allow making the
window smaller than the default.
In CheatSearchWidget, enable word wrapping for the label describing the
address space and search type to help it fit better inside a narrower
window.
2024-03-31 13:17:56 -07:00
JosJuice
ad43b03253
HW: Remove calls to GetPointer
...
Typically when someone uses GetPointer, it's because they want to read
from a range of memory. GetPointer is unsafe to use for this. While it
does check that the passed-in address is valid, it doesn't know the size
of the range that will be accessed, so it can't check that the end
address is valid. The safer alternative GetPointerForRange should be
used instead.
Note that there is still the problem of many callers not checking for
nullptr.
This is part 2 of a series of changes removing the use of GetPointer
throughout the code base. After this, VideoCommon is the one major part
of Dolphin that remains.
2024-03-31 21:58:05 +02:00
Admiral H. Curtiss
a5e410df11
Merge pull request #12671 from JosJuice/no-getpointer-part-1
...
IOS: Remove calls to GetPointer
2024-03-31 21:16:19 +02:00
JosJuice
9873bcfb2b
IOS: Remove calls to GetPointer
...
Typically when someone uses GetPointer, it's because they want to read
from a range of memory. GetPointer is unsafe to use for this. While it
does check that the passed-in address is valid, it doesn't know the size
of the range that will be accessed, so it can't check that the end
address is valid. The safer alternative GetPointerForRange should be
used instead.
Note that there is still the problem of many callers not checking for
nullptr.
This is the first part of a series of changes that will remove the usage
of GetPointer in different parts of the code base. This commit gets rid
of every GetPointer call from our IOS code except for a particularly
tricky one in BluetoothEmuDevice.
2024-03-31 10:22:02 +02:00
Admiral H. Curtiss
dcae03a112
Merge pull request #12665 from Pokechu22/dsp-hle-asnd-2024
...
DSPHLE: Implement 2024 libasnd uCodes
2024-03-31 06:42:59 +02:00
Admiral H. Curtiss
1331332d38
Merge pull request #12656 from jordan-woyak/texture-dump-no-dups
...
VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files.
2024-03-31 06:40:04 +02:00
Admiral H. Curtiss
f3bf5d175e
Merge pull request #12609 from JosJuice/aspect-ratio-description
...
DolphinQt: Tweak the aspect ratio setting description
2024-03-31 06:39:36 +02:00
Admiral H. Curtiss
a2074a8583
Merge pull request #12645 from mitaclaw/ppc-symbols-signal
...
DolphinQt: A Ubiquitous Signal For When Symbols Change
2024-03-31 06:36:09 +02:00
Admiral H. Curtiss
6e5f8d6692
Merge pull request #12640 from jordan-woyak/sdl-cleanup
...
SDL: Cleanups
2024-03-31 06:33:50 +02:00
JosJuice
fb75ae410f
Jit64: Clean up ExtractWithByteOffset
...
RCOpArg::ExtractWithByteOffset is only used in one place: a special case
of rlwinmx. ExtractWithByteOffset first stores the value of the
specified register into m_ppc_state (unless it's already there), and
then returns an offset into m_ppc_state. Our use of this function has
two undesirable properties (except in the trivial case `offset == 0`):
1. ExtractWithByteOffset calls StoreFromRegister without going through
any of the usual functions. This violated an assumption I made when
working on my constant propagation PR and led to a hard-to-find bug.
2. If the specified register is in a host register and is dirty,
ExtractWithByteOffset will store its value to m_ppc_state even when
it's unnecessary. In particular, this always happens when rlwinmx
uses the same register as input and output, since rlwinmx always
allocates a host register for the output and marks it as dirty.
Since ExtractWithByteOffset is only used in one place, I figure we might
as well inline it there. This commit does that, and also alters
rlwinmx's logic so the special case code is only triggered when the
input is already in m_ppc_state.
Input in `m_ppc_state`, before (11 bytes):
mov esi, dword ptr [rbp-104]
mov dword ptr [rbp-104], esi
movzx esi, byte ptr [rbp-101]
Input in `m_ppc_state`, after (5 bytes):
movzx esi, byte ptr [rbp-101]
Input in host register, before (8 bytes):
mov dword ptr [rbp-104], esi
movzx esi, byte ptr [rbp-101]
Input in host register, after (3 bytes):
shr edi, 0x18
2024-03-30 22:47:44 +01:00
Jordan Woyak
86102e7ce9
Merge pull request #12670 from mitaclaw/branchwatch-fileutil-copy-paste
...
FileUtil: Fix BranchWatch User Path
2024-03-29 13:46:20 -05:00
mitaclaw
88dadf81d4
FileUtil: Fix BranchWatch User Path
...
I mistakenly put `D_DUMP_IDX` here instead of `D_DUMPDEBUG_IDX`.
2024-03-29 11:05:45 -07:00
JosJuice
fbc3539b4e
Merge pull request #12666 from Matt-Swift/master
...
Add tapserver BBA and Modem Adapter UI options to Android
2024-03-29 15:37:57 +01:00
JosJuice
f30d3c9092
Merge pull request #12662 from JosJuice/jitarm64-imm-rc0-sxtw
...
JitArm64: Skip SXTW in ComputeRC0(u64)
2024-03-29 15:36:33 +01:00
JosJuice
5f6a054ffc
Merge pull request #12661 from Sintendo/arm64divwux
...
JitArm64: Optimize divwux
2024-03-29 15:36:18 +01:00
mitaclaw
6e6b298030
Core::RunOnCPUThread: Avoid Global System Accessor
2024-03-28 10:10:03 -07:00
JMC47
aea1f64873
Merge pull request #12659 from mitaclaw/qt-debug-font
...
DolphinQt Settings: Signal Debug Font By Const Reference
2024-03-28 13:04:39 -04:00
JMC47
aa9601a563
Merge pull request #12658 from mitaclaw/core-global-system-2b
...
Core: Remove RunAsCPUThread
2024-03-28 13:04:08 -04:00
mitaclaw
b52a08d533
DolphinQt: A Ubiquitous Signal For When Symbols Change
...
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-28 09:57:22 -07:00
Matt
39f5597089
Add tapserver BBA and Modem Adapter UI config to Android
...
This PR simply exposes the tapserver options in Serial Port 1 on Android. They already exist and work, but are not selectable. I've tested the tapserver options myself with Phantasy Star Online Episode I & II and they work fine.
2024-03-25 17:37:29 +00:00
JosJuice
06329ecfc7
Core: Fix IPL device m_cursor overflow
...
Not sure if the behavior I'm implementing here is what real hardware
does, but since this is a buffer overflow, I'd like to get it fixed
quickly. Hardware verification can happen later.
https://bugs.dolphin-emu.org/issues/13506
2024-03-25 18:31:36 +01:00
JosJuice
d57c68a625
Core: Get rid of IPL device macros
...
Having to look up macros that are defined elsewhere makes the code
harder to reason about. The macros don't remove enough repetition to
justify their existence in my opinion.
2024-03-25 17:55:13 +01:00
Pokechu22
cd5f6ddd9b
DSPHLE: Implement 2024 libasnd uCodes
2024-03-24 11:59:32 -07:00
Pokechu22
c85f5f8023
DSPHLE: Redefine asnd SwapLeftRight to apply to old versions
2024-03-24 11:58:04 -07:00
JosJuice
28da3160c3
DolphinQt: Tweak the aspect ratio setting description
...
With this, I intend to make it clearer that Auto, Force 4:3, Force 16:9
and Custom are really the same thing, just with the aspect ratio of the
simulated TV being selected in a different way. I also extended the
introduction in a way I feel will clarify things but which you are
welcome to bikeshed :)
I was thinking of this during the review of 41b19e262f
, but wanted to
put it in a separate PR as to avoid blocking it on bikeshedding.
I'm a bit unsure what to do about the word "analog" in "analog TV". I
felt that repeating it for each of these options would be too
repetitive. I suppose there's a reason why we used the word originally,
but digital TVs do give you basically the same aspect ratio for GC/Wii
games as analog TVs. (Of course, whether it's 4:3-like or 16:9-like
depends on what aspect ratio you set in the TV's settings, but that's
the case for widescreen CRTs too.)
2024-03-24 15:18:58 +01:00
Jordan Woyak
38117ef066
DolphinQt: Update AboutDialog to include number of commits ahead of master.
2024-03-23 16:48:52 -05:00
Jordan Woyak
02f57a4778
Replace SCM_IS_MASTER with SCM_COMMITS_AHEAD_MASTER
2024-03-23 16:48:52 -05:00
Bram Speeckaert
2580837c60
JitArm64: Optimize divwux
...
When the divisor is a constant value, we can emit more efficient code.
For powers of two, we can use bit shifts. For other values, we can
instead use a multiplication by magic constant method.
- Example 1 - Division by 16 (power of two)
Before:
mov w24, #0x10 ; =16
udiv w27, w25, w24
After:
lsr w27, w25, #4
- Example 2 - Division by 10 (fast)
Before:
mov w25, #0xa ; =10
udiv w27, w26, w25
After:
mov w27, #0xcccd ; =52429
movk w27, #0xcccc, lsl #16
umull x27, w26, w27
lsr x27, x27, #35
- Example 3 - Division by 127 (slow)
Before:
mov w26, #0x7f ; =127
udiv w27, w27, w26
After:
mov w26, #0x408 ; =1032
movk w26, #0x8102, lsl #16
umaddl x27, w27, w26, x26
lsr x27, x27, #38
2024-03-23 20:13:15 +01:00
Bram Speeckaert
749ee2ff5e
Jit64: Refactor divwux
...
Now that we've moved the logic to DivUtils, refactor the Jit64 code to
use it.
2024-03-23 20:13:15 +01:00
Bram Speeckaert
825a10616c
DivUtils: Add unsigned division magic function
...
Takes the logic from Jit64 and moves it into DivUtils, so it can be
reused by other backends as well.
2024-03-23 20:13:15 +01:00
JosJuice
9f0a7c9875
JitArm64: Skip SXTW in ComputeRC0(u64)
...
MOVI2R can set the upper bits to ones for free by using MOVN instead of
MOVZ.
2024-03-23 14:30:00 +01:00
mitaclaw
73f9904f2a
Core: Remove RunAsCPUThread
...
It's a fine function, but CPUThreadGuard is more vogue. Also, its potential for being confused with RunOnCPUThread will not be missed.
2024-03-23 03:33:26 -07:00
mitaclaw
ae5da02cde
DolphinQt Settings: Signal Debug Font By Const Reference
2024-03-22 07:52:52 -07:00
Admiral H. Curtiss
3948ac9513
Merge pull request #12606 from mitaclaw/state-global-system
...
State: Avoid Global System Accessor
2024-03-22 04:27:12 +01:00
Admiral H. Curtiss
f814dc58b5
Merge pull request #12620 from mitaclaw/jit-interface-cpu-thread-guard
...
JitInterface::ClearCache: Modernize With CPUThreadGuard
2024-03-22 04:17:33 +01:00
Admiral H. Curtiss
f8fdaf9b94
Merge pull request #12648 from mitaclaw/core-global-system
...
Core: Avoid (Some) Global System Accessor
2024-03-22 04:13:01 +01:00
Admiral H. Curtiss
4f3b4471f2
Merge pull request #12654 from jordan-woyak/gcadapter-timeout
...
GCAdapter: Adjust libusb transfer timeout to 100ms.
2024-03-22 02:55:30 +01:00
Admiral H. Curtiss
b510ac89a3
Merge pull request #12355 from fuzziqersoftware/tapserver-modem-adapter
...
Implement tapserver-based modem adapter
2024-03-22 02:47:06 +01:00
Admiral H. Curtiss
f535b61d5d
Merge pull request #12652 from iwubcode/json_util_update
...
Common: add even more json utility functions
2024-03-22 02:45:58 +01:00
Jordan Woyak
550e008774
VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files.
2024-03-21 20:27:34 -05:00
Admiral H. Curtiss
2d5286d2e2
Merge pull request #12642 from jordan-woyak/state-write-osd-errors
...
Core/State: Display messages on state write failures.
2024-03-21 03:55:05 +01:00
JMC47
03f2b99ffe
Merge pull request #12603 from Sam-Belliveau/oklab_resampling
...
Add HDR to Metal + Perceptual HDR
2024-03-20 22:45:10 -04:00
Admiral H. Curtiss
b19cf1f962
Merge pull request #12650 from jordan-woyak/balloon-tip-multimon
...
DolphinQt: Fix BalloonTip positioning on secondary monitors.
2024-03-21 03:33:43 +01:00
Admiral H. Curtiss
7f1e7314de
Merge pull request #12649 from mitaclaw/kill-is-running-in-current-thread
...
Core: Remove Unused IsRunningInCurrentThread Function
2024-03-21 03:32:48 +01:00
Jordan Woyak
f922129255
Core/State: Display messages on state write failures.
2024-03-20 20:38:04 -05:00
Jordan Woyak
76a74daac2
Merge pull request #12641 from jordan-woyak/d3d-before-ogl
...
VideoCommon: Prefer D3D11/12 over OpenGL on Windows.
2024-03-20 18:21:48 -05:00
Jordan Woyak
719d76ab2e
GCAdapter: Adjust libusb transfer timeout to 100ms.
2024-03-20 18:02:06 -05:00
iwubcode
146504d635
Common: add json utility functions 'ReadStringFromJson' and 'ReadBoolFromJson' to match 'ReadNumericFromJson' functionality for other data types, similarly support other data types for 'ToJsonArray'
2024-03-20 17:34:25 -05:00
iwubcode
69694494ce
Common: update 'ReadNumericOrDefault' to 'ReadNumericFromJson' and have it return an optional, this provides the caller with more flexibility
2024-03-20 17:34:25 -05:00
Jordan Woyak
647eba36f3
DolphinQt: Fix BalloonTip positioning on secondary monitors.
2024-03-20 03:13:11 -05:00
mitaclaw
11b628f250
Core: Remove Unused IsRunningInCurrentThread Function
2024-03-18 07:18:41 -07:00
mitaclaw
f09b71582e
Core: Avoid (Some) Global System Accessor
2024-03-18 01:35:42 -07:00
Martin Michelsen
f7a0147176
prevent backpressure when m_read_enabled is not set
2024-03-17 18:37:55 -07:00
Martin Michelsen
3e9ac1aaf3
fix tapserver SIGPIPE handling on Linux
2024-03-17 18:37:55 -07:00
Martin Michelsen
5d8a01cba7
respond to further review feedback
2024-03-17 18:37:55 -07:00
Martin Michelsen
7775ea325f
close modem socket after joining read thread
2024-03-17 18:37:55 -07:00
Martin Michelsen
9d0d2f0a40
handle ATH0 command
2024-03-17 18:37:55 -07:00
Martin Michelsen
12a7e17a41
fix warnings in windows build
2024-03-17 18:37:55 -07:00
Martin Michelsen
9cf8131b23
respond to review feedback on tapserver implementation
2024-03-17 18:37:55 -07:00
Martin Michelsen
dcb7a72c14
add modem files to windows build
2024-03-17 18:37:55 -07:00
Martin Michelsen
02deaa6748
Implement GC modem adapter
...
This implements the GameCube modem adapter. This implementation is stable but not perfect; it drops frames if the receive FIFO length is exceeded. This is probably due to the unimplemented interrupt mentioned in the comments. If the tapserver end of the connection is aware of this limitation, it's easily circumvented by lowering the MTU of the link, but ideally this wouldn't be necessary.
This has been tested with a couple of different versions of Phantasy Star Online, including Episodes 1 & 2 Trial Edition. The Trial Edition is the only version of the game that supports the Modem Adapter and not the Broadband Adapter, which is what made this commit necessary in the first place.
2024-03-17 18:37:55 -07:00
Martin Michelsen
083116a89c
rewrite tapserver interface for better error handling
2024-03-17 18:37:55 -07:00
Martin Michelsen
a36600ae50
add TAPServer.cpp to Windows build
2024-03-17 18:37:55 -07:00
Martin Michelsen
f90812d8e1
fix android syntax error
2024-03-17 18:37:55 -07:00
Martin Michelsen
0c364cbb4c
implement tapserver BBA on all platforms
...
This expands the tapserver BBA interface to be available on all platforms. tapserver itself is still macOS-only, but newserv (the PSO server) is not, and it can directly accept local and remote tapserver connections as well. This makes the tapserver interface potentially useful on all platforms.
2024-03-17 18:37:55 -07:00
Admiral H. Curtiss
85dee300b5
Merge pull request #12644 from jordan-woyak/ar-multi
...
DolphinQt: Allow Cheat Search to create multiple AR codes.
2024-03-17 16:26:38 +01:00
Admiral H. Curtiss
c964d552c9
Merge pull request #12616 from mitaclaw/dvd-interface-cpu-thread-guard
...
DVDInterface: Modernize With CPUThreadGuard
2024-03-17 16:14:56 +01:00
Jordan Woyak
c202b55bd4
DolphinQt: Allow Cheat Search to create multiple AR codes when selecting multiple lines.
2024-03-17 01:29:39 -05:00
Admiral H. Curtiss
1ee923fd3d
Merge pull request #12630 from mitaclaw/ppc-symbols-global
...
PPCSymbolDB: Move instance to PowerPCManager
2024-03-17 06:03:05 +01:00
Tillmann Karras
d933e58d9a
Cubeb: check correct log level
2024-03-17 01:33:42 +00:00
Jordan Woyak
ac5c2d9bf2
VideoCommon: Prefer D3D11/12 over OpenGL on Windows.
2024-03-15 19:51:04 -05:00
Jordan Woyak
3a85725ffa
SDL: Remove duplicate button/hat Inputs. Hide duplicate Axis Inputs.
2024-03-14 23:50:17 -05:00
Jordan Woyak
ee43c9508c
ControllerInterface: Add IsHidden function to Control interface.
2024-03-14 23:43:58 -05:00
Jordan Woyak
0538366326
SDL: Deduplicate Motor logic with templates.
2024-03-14 23:43:58 -05:00
Jordan Woyak
0fff8374d0
SDL: Move class definition out of header.
2024-03-14 23:43:58 -05:00
Admiral H. Curtiss
369502b49b
Merge pull request #12635 from jordan-woyak/ir-passthrough-indicator
...
DolphinQt: Add IRPassthrough indicator.
2024-03-15 03:07:19 +01:00
Admiral H. Curtiss
9cdd571745
Merge pull request #12633 from LillyJadeKatrin/retroachievements-toggle-spam
...
Added locks to achievement runtime calls
2024-03-15 02:58:02 +01:00
Admiral H. Curtiss
fe64289391
Merge pull request #12637 from CrossVR/disable-vcpkg
...
VSProps: Set VcpkgEnabled to false
2024-03-15 02:57:00 +01:00
Admiral H. Curtiss
2620f73b8c
Merge pull request #12638 from Tilka/cubeb
...
Cubeb: change log level from NOTICE to INFO
2024-03-15 02:55:28 +01:00
LillyJadeKatrin
08ecefe0f7
Added locks to achievement runtime calls
...
Testing found that spamming toggles for Enable Leaderboards etc risked leaderboards being deleted while the runtime was in the process of recalculating them; this should clear up those conflicts.
2024-03-14 14:32:47 -04:00
mitaclaw
c24fa93965
PPCSymbolDB: Move instance to PowerPCManager
2024-03-13 22:58:14 -07:00
Tillmann Karras
4d9038c7c3
Cubeb: change log level from NOTICE to INFO
...
Cubeb logs a message at CUBEB_LOG_NORMAL verbosity every time you start
or stop a stream which can get a bit annoying when using frame advance
at Dolphin's default verbosity.
2024-03-14 00:31:02 +00:00
Jules Blok
07448dcc81
VSProps: Set VcpkgEnabled to false
...
We don't rely on vcpkg for dependencies
2024-03-13 16:37:18 +01:00
Sepalani
da86c2bcc6
BBA/HLE: Don't assume connect is successful
2024-03-12 12:25:42 +04:00
mitaclaw
c377c1e21e
CheatsManager/CheatSearchWidget: Avoid Global System Accessor
...
OnResetClicked and GenerateARCode appear to have been using the CPUThreadGuard in error.
2024-03-11 20:51:15 -07:00
Admiral H. Curtiss
551dcec0b1
Merge pull request #12602 from mitaclaw/qt-memory-global-system
...
Memory(View)Widget: Avoid Global System Accessor
2024-03-12 04:12:52 +01:00
Admiral H. Curtiss
6ccf35ad4d
Merge pull request #12600 from lioncash/dspreg
...
DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs()
2024-03-12 04:02:09 +01:00
Jordan Woyak
62caa24d40
DolphinQt: Add IRPassthrough indicator.
2024-03-11 21:40:53 -05:00
Admiral H. Curtiss
d35a88564f
Merge pull request #12608 from mitaclaw/bootmanager-global-system
...
BootManager: Avoid Global System Accessor
2024-03-12 03:39:48 +01:00
Admiral H. Curtiss
72bcdadc16
Merge pull request #12492 from AdmiralCurtiss/wiimote-ir-passthrough
...
Implement IR passthrough for emulated Wiimotes
2024-03-12 03:27:07 +01:00
Admiral H. Curtiss
cda008bd10
Merge pull request #12533 from sepalani/bba-psh-ack
...
BBA/HLE: Add missing PSH flag
2024-03-12 03:09:11 +01:00
Jordan Woyak
f86e9e9cbd
Merge pull request #12610 from mitaclaw/branch-watch-dialog-gcc
...
BranchWatchDialog: Fix GCC Warnings
2024-03-11 17:36:21 -05:00
Admiral H. Curtiss
f6f435e624
WiimoteEmu: Set sensible defaults for IR Object expressions.
2024-03-11 22:51:57 +01:00
Admiral H. Curtiss
617fcc3cf8
WiimoteEmu: Add user-accessible controls that report the desired state of the IR camera objects.
2024-03-11 22:49:19 +01:00
Admiral H. Curtiss
c3903fcc7e
InputCommon/WiimoteController: Add inputs that report the raw IR objects seen by the Wiimote.
2024-03-11 22:46:05 +01:00
Admiral H. Curtiss
9c68b156d1
Core/HW/WiimoteCommon: Add a method to DataReport to query the format of the stored IR data.
2024-03-11 22:27:16 +01:00
Admiral H. Curtiss
eced34f3f3
Core/HW/WiimoteEmu: Allow storing and reporting up to 4 camera objects, like a real Wiimote.
2024-03-11 22:27:16 +01:00
Jordan Woyak
5c656a2b6f
Merge pull request #12623 from eltociear/patch-1
...
WiimoteReal: fix typo in WiimoteReal.cpp
2024-03-11 12:19:46 -05:00
Jordan Woyak
a9a9fdd9e9
InputCommon: Add Android InputBackend class.
2024-03-11 03:25:31 -05:00
Jordan Woyak
8583b6751a
InputCommon: Handle window change in Quartz.
2024-03-11 03:25:31 -05:00
Jordan Woyak
3665f7abac
InputCommon: Implement xlib window change logic.
2024-03-11 03:25:31 -05:00
Jordan Woyak
341f99a3f1
InputCommon: Add Win32 InputBackend class.
2024-03-11 03:25:31 -05:00
Jordan Woyak
2ac59bf581
InputCommon: Add Pipes InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
8098be3dfa
InputCommon: Add XInput2 InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
498584ac77
InputCommon: Add Quartz InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
9941c54911
InputCommon: Provide WindowSystemInfo getter for ControllerInterface.
2024-03-11 01:31:05 -05:00
Jordan Woyak
b23dbad098
InputCommon: Remove some IOKit leftovers.
2024-03-11 01:11:13 -05:00
Sam Belliveau
153d0201a8
Add HDR to Metal
2024-03-10 03:25:33 -04:00
Admiral H. Curtiss
b89a88afbc
Merge pull request #12615 from mitaclaw/ppc-symbol-db-member
...
PPCSymbolDB: Eliminate Redundant Member
2024-03-10 06:18:23 +01:00
Admiral H. Curtiss
adac827a04
Merge pull request #12625 from mitaclaw/Wshadow-uncaptured-local
...
CMakeLists: Add Clang's Specific WShadow Diagnostics
2024-03-10 00:59:20 +01:00
mitaclaw
f71f2c6ba1
CMakeLists: Add Clang's Specific WShadow Diagnostics
...
For parity with GCC.
2024-03-09 15:34:39 -08:00
Admiral H. Curtiss
ef75a6ff23
Merge pull request #12622 from mitaclaw/branch-watch-dialog-errata
...
BranchWatchDialog: Fix Misc. Errata
2024-03-10 00:06:21 +01:00
LillyJadeKatrin
5418e89523
Adjusted achievement progress updates to duration short
2024-03-08 23:26:56 -05:00
mitaclaw
fe61efcd7a
DVDInterface: Modernize With CPUThreadGuard
2024-03-08 15:17:41 -08:00
MikeIsAStar
11dd5ba485
MMU: Remove erroneous continue statement
...
The updated behavior more closely emulates the functionality of physical hardware.
2024-03-08 16:36:38 -05:00
mitaclaw
0645b4d579
BranchWatchDialog: Fix Misc. Errata
...
Window icon was missing from QDialog lacking a parent.
Giving the QDialog a parent revealed I had failed to make it properly non-modal, necessitating further changes.
Settings save less often, now only upon destruction.
Construction of BranchWatchDialog is now deferred.
2024-03-07 15:59:03 -08:00
Niel Lebeck
9029b7a082
Add SettingsHandler unit tests exercising the edge case in PR #8704
2024-03-06 22:08:30 -08:00
mitaclaw
0f36654d2b
PPCSymbolDB: Eliminate Redundant Member
...
This can be accessed through the CPUThreadGuard.
2024-03-06 21:44:53 -08:00
Ikko Eltociear Ashimine
7b0d4f0578
WiimoteReal: fix typo in WiimoteReal.cpp
...
continous -> continuous
2024-03-07 01:27:39 +09:00
mitaclaw
4568446398
JitInterface::ClearCache: Modernize With CPUThreadGuard
...
It is recommended to view this diff with whitespace changes hidden.
2024-03-04 19:45:34 -08:00
LillyJadeKatrin
085c17aed4
Remove the update callback on all events
...
Not only was the extra call to the update callback in the AchievementEventHandler method unnecessary, it was getting called on events that don't even need to be tracked here, causing a lot of lag when it turned out one achievement was repeatedly spamming Achievement Reset Events as a shortcut.
2024-03-04 20:04:08 -05:00
OatmealDome
6372bf51eb
Merge pull request #12597 from nlebeck/settingshandler-unittests-thirdtry
...
Add some simple unit tests for SettingsHandler
2024-03-03 18:13:45 -05:00
OatmealDome
aba9b110e8
Merge pull request #12612 from LillyJadeKatrin/retroachievements-logout-bug
...
Don't Publish Unofficial Achievements
2024-03-03 14:51:04 -05:00
JMC47
93c95ee1a3
Merge pull request #12592 from LillyJadeKatrin/retroachievements-enable-hardcore
...
Properly enable RetroAchievements hardcore mode
2024-03-03 13:20:23 -05:00
LillyJadeKatrin
f556f646a2
Don't Publish Unofficial Achievements
...
Check an achievement's category and only request RetroAchievements to award if it is CORE and not UNOFFICIAL.
2024-03-03 12:58:20 -05:00
mitaclaw
8d5e39751e
BranchWatchDialog: Fix GCC Warnings
...
GCC can't lambda right.
2024-03-02 07:53:23 -08:00
Admiral H. Curtiss
58616a6e4c
Merge pull request #12438 from Filoppi/custom_relative_aspect_ratio
...
Add Custom Relative and Raw (Squared Pixels) aspect ratios
2024-03-02 14:14:19 +01:00
Admiral H. Curtiss
f2e04e0603
Merge pull request #12359 from mitaclaw/code-diff-dialog-refresh
...
BranchWatchDialog: A Total Replacement for CodeDiffDialog
2024-03-02 14:13:54 +01:00
Admiral H. Curtiss
8840f7f8bc
Merge pull request #12599 from lioncash/vertman
...
VertexManagerBase: Initialize m_ticks_elapsed on construction
2024-03-02 14:11:23 +01:00
mitaclaw
16c609dcd4
BootManager: Avoid Global System Accessor
2024-03-01 23:39:04 -08:00
Niel Lebeck
0344ec6d79
Add simple unit tests for SettingsHandler
2024-03-01 20:52:45 -08:00
Naim2000
f208b320a3
AesDevice: fix key & iv arrays
2024-03-01 15:00:28 -05:00
mitaclaw
0d4cb5ddc7
State: Avoid Global System Accessor
2024-03-01 10:52:50 -08:00
mitaclaw
26141eece8
Memory(View)Widget: Avoid Global System Accessor
2024-03-01 07:09:20 -08:00
Filoppi
41b19e262f
Add custom relative and raw (squared pixels) aspect ratio modes
2024-02-29 21:11:19 +02:00
Lioncash
e52109a356
DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs()
...
A DynamicReg instance is 80 bytes in size, so this just gets rid of some
unnecessary copy churn.
2024-02-28 10:27:35 -05:00
Lioncash
7bf77a56f4
VertexManagerBase: Initialize m_ticks_elapsed on construction
...
Ensures that this always has a deterministic value on construction like
everything else in the class.
2024-02-28 10:21:08 -05:00
Mai
5a81916ee9
Merge pull request #12598 from mitaclaw/case-insensitive
...
CodeWidget: Simplify Case-Insensitive Contains
2024-02-28 08:48:10 -05:00
mitaclaw
8eeb93d51a
CodeWidget: Simplify Case-Insensitive Contains
2024-02-27 12:03:38 -08:00
mitaclaw
8134c8a572
BranchWatchDialog: A Total Replacement for CodeDiffDialog
...
With a purpose-built Branch Watch feature built into the emulated system: BranchWatchDialog, replacing CodeDiffDialog, is now better than ever!
2024-02-27 11:40:58 -08:00
mitaclaw
fd8f2c7822
JitArm64: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
7cccedca1e
Jit64: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
2aa250a68a
Interpreter: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
67f60bec7e
PowerPC: Implement BranchWatch
...
This new component can track code paths by watching branch hits.
2024-02-26 19:38:27 -08:00
LillyJadeKatrin
56b82e764c
Clear active challenges when game closes
...
Failing to do this was causing challenge icons to carry over into the next game if a game was closed while the icons were active, even if the next game to run was a completely different game entirely with completely different badges.
2024-02-26 22:21:05 -05:00
Admiral H. Curtiss
5090a028e6
Merge pull request #12435 from Filoppi/fix-aspect-ratio-stuck
...
Fix aspect ratio heuristics getting stuck to a state
2024-02-20 21:36:43 +01:00
Filoppi
48fbbdba7c
Video: update widescreen heuristic code to never get stuck to specific old values when changing settings
2024-02-20 22:26:19 +02:00
LillyJadeKatrin
d66b96b1c0
Properly enable RetroAchievements hardcore mode
...
RetroAchievements plans to use the user_agent in unlock requests to determine which software version was used to play the game, and can filter older software versions out. As such, I have been given the go-ahead to remove the hardcoded line that forces hardcore to always be false.
2024-02-20 12:59:01 -05:00
Filoppi
3f102ea8c2
Video: Make the game resolution (within the window) snap to the XFB size if they are within a ~1 pixel treshold on one axis only.
...
This takes care of making the image clearer in some edge cases where the game was already running at near perfect
4:3 with no stretching, and the VI aspect ratio didn't match the XFB by one pixel, making the image stretched and blurry.
-Video: Fix `FindClosestIntegerResolution() using the window aspect ratio and not the draw aspect ratio, causing it to prefer
stretching over black bars in cases when it wasn't desirable.
2024-02-20 03:09:11 +02:00
Filoppi
95ee0ac781
Video: Fix aspect ratio heuristics getting stuck to widescreen (or to non widescreen) (`m_is_game_widescreen` variable) if the user first forced the aspect ratio to 16:9/4:3 and then set it back to Auto.
2024-02-20 02:42:52 +02:00
Admiral H. Curtiss
ccf2435047
Merge pull request #12586 from LillyJadeKatrin/retroachievements-pointspread-fix
...
Fixes to Achievement points count/mastery
2024-02-19 02:41:14 +01:00
LillyJadeKatrin
e5b73fec08
Fixes to Achievement points count/mastery
...
Two minor updates to improve the Achievement Manager's handling of a player's completion rate.
One, UnlockStatus and the unlock map now track achievement category, such that TallyScore does not count unofficial achievements in counts/points.
Two, the determinations for mastery/completion are now improved to check (1) that the achievement triggering this is CORE (not UNOFFICIAL) and (2) that it has not already been unlocked at this level on the site, which should be sufficient to determine that the unlocking of this particular achievement completes/masters the game.
2024-02-18 19:27:18 -05:00
Mai
22d96ef5b5
Merge pull request #12590 from iwubcode/graphics_mod_action_factory_name
...
VideoCommon: move factory names to be a static inside each action class
2024-02-18 17:13:03 -05:00
Mai
27415b0ba1
Merge pull request #12587 from AdmiralCurtiss/localtime
...
Core: Fix crash when inspecting a savestate with a timestamp that causes localtime() to error out
2024-02-18 17:12:29 -05:00
iwubcode
a1147dae6e
VideoCommon: move factory names to be a static inside each action class, so that they can be reused in the future for serialization
2024-02-18 15:45:10 -06:00
Admiral H. Curtiss
638808c944
IOS/FS: Display the invalid path in the ASSERT in BuildFilename().
2024-02-18 20:06:32 +01:00
Admiral H. Curtiss
0157166940
Merge pull request #12585 from iwubcode/json_util_vec3
...
Common: add json utility functions for Vec3 serialization
2024-02-18 19:02:59 +01:00
iwubcode
edbf8f1772
Common: add json utility functions for Vec3 serialization
2024-02-17 22:06:06 -06:00
Admiral H. Curtiss
d3140e72c3
Core: Fix crash when inspecting a savestate with a timestamp that causes localtime() to error out.
2024-02-18 04:45:37 +01:00
Admiral H. Curtiss
52410813f2
Common: Add utility function that wraps localtime_s() or localtime_t().
2024-02-18 04:40:25 +01:00
Admiral H. Curtiss
982ad93355
Merge pull request #12582 from LillyJadeKatrin/retroachievements-bugfix-2
...
Improved achievements disabled messaging
2024-02-18 03:49:44 +01:00
Admiral H. Curtiss
9b5fd5d34e
Merge pull request #12281 from TellowKrinkle/AsahiGL33
...
VideoCommon: Don't use indexed output for fbfetch
2024-02-18 02:33:50 +01:00
Dentomologist
56ff19c513
BalloonTip: Rework BalloonTip drawing
...
* Fix irregularly shaped corners
* Remove extra space for BalloonTips with no message or no title
* When the target tip location is not on a screen, put the tooltip on
the mouse's screen instead of the primary screen
* Fix description getting cut off when the title was too long
* Expose border width as a parameter
* Fix spacing and sizing issues with larger border widths
2024-02-17 12:36:19 -08:00
Mai
21300bb21b
Merge pull request #12457 from iwubcode/asset_memory_limit
...
VideoCommon: handle asset memory going over reserved limit correctly
2024-02-16 15:46:52 -05:00
LillyJadeKatrin
394af40db5
Improved achievements disabled messaging
...
Most obviously, there is no longer a warning message to the player in the achievement window that achievements are disabled if a game is not currently running.
2024-02-15 16:33:18 -05:00
Dentomologist
a1d6a54eaa
DolphinTool: Fix parsing of command line bzip2 flag
...
Use "bzip2" instead of "bzip" in optparse's compression choices for the
convert command. This is both more accurate and matches what the
ParseCompressionTypeString function expects.
The mismatch between the two parsing functions prevented compression
using bzip2 because either ParseCompressionTypeString or optparse would
generate an error when using "bzip" or "bzip2" respectively.
Fixes https://bugs.dolphin-emu.org/issues/13427
2024-02-13 12:44:03 -08:00
Mai
a583526a1c
Merge pull request #12575 from n8pjl/werror-nonnull
...
IOFile: avoid clearing errors on null file struct
2024-02-13 07:43:19 -05:00
Mai
9e6d701fbc
Merge pull request #12577 from iwubcode/mesh_for_asset_loader
...
VideoCommon: make mesh asset data loadable by asset loader
2024-02-13 07:42:57 -05:00
iwubcode
2ab877586d
VideoCommon: make mesh asset data loadable by asset loader
2024-02-12 21:45:32 -06:00
Admiral H. Curtiss
f0d363eea7
Core/DSPHLE: Construct accelerator in AX and AXWii constructors.
...
This fixes an issue introduced by 3b0444be6b
where the m_accelerator would not be initialized when loading a savestate if
the current UCode mismatched the UCode in the savestate, leading to a crash.
2024-02-12 04:18:18 +01:00
Peter Lafreniere
3da2e15e6b
IOFile: avoid clearing errors on null file struct
...
When performing a default compilation with recent GCC & glibc,
the use of -Werror=nonnull causes a build error.
The error is given as IOFile::ClearError() can call std::clearerr()
with a null file, which can trigger a null-pointer dereference in libc.
Change the std::clearerr() call to be conditional on a file being open.
2024-02-11 20:55:31 -05:00
Mai
aa66842172
Merge pull request #12574 from sepalani/exi-exit
...
EXI: Don't kill Dolphin when receiving BBA_IOB
2024-02-11 20:32:33 -05:00
iwubcode
60772ed9d2
VideoCommon: add functionality to prepare for a mesh asset that is loaded from a GLTF file
2024-02-11 13:28:00 -06:00
iwubcode
ecfcae8718
Externals: add tinygltf, a library used to load or save GLTF mesh files
2024-02-11 13:26:39 -06:00
Sepalani
7c276c1993
EXI: Don't kill Dolphin when receiving BBA_IOB
...
According to @Kirbymimi it doesn't crash on real hardware.
Testing was done by sending many UDP packets to an unbound port.
2024-02-11 23:15:23 +04:00
Mai
80d77ac0b4
Merge pull request #12568 from noahpistilli/kd-register-default-id
...
IOS/KD: Correctly handle registration of the default user ID
2024-02-11 13:52:40 -05:00
Mai
dd15c012f3
Merge pull request #12573 from JosJuice/android-wii-menu-download-size
...
Android: Mention download size in the Wii Menu not installed message
2024-02-11 13:52:01 -05:00
Mai
9b3fdfb37b
Merge pull request #12572 from JosJuice/android-menu-init-guard
...
Android: Don't check Wii Menu version before directory initialization
2024-02-11 13:51:30 -05:00
JosJuice
b404da78c4
Android: Mention download size in the Wii Menu not installed message
...
Google Play's policies require us to tell the user the size of any large
download.
The size seems to vary by just a megabyte or two across regions in my
testing, so I'm listing a rough size for all the regions.
I'm also taking the opportunity to shorten the message to make it easier
to read.
2024-02-11 11:34:51 +01:00
JosJuice
06964a921d
Android: Don't check Wii Menu version before directory initialization
...
Fixes a crash.
2024-02-11 11:15:18 +01:00
JosJuice
48ae529762
Android: Update Load Wii System Menu string in onPrepareOptionsMenu
...
Because the wording of the Load Wii System Menu string can change
depending on the contents of the NAND, we should update that menu item in
a method that's guaranteed to get called every time the user opens the
menu rather than one that's only guaranteed to be called once.
2024-02-11 10:58:42 +01:00
Admiral H. Curtiss
e6ee217a7c
Core: Move Emulation IOS instance to System.
2024-02-07 22:07:30 +01:00
Mai
ca81d8b8a6
Merge pull request #12565 from LillyJadeKatrin/retroachievements-bugfix
...
Retain Save State Folder
2024-02-07 14:03:12 -05:00
Gregoire L. D.
d17495a75a
Fix loading GBA configurations
2024-02-07 19:15:27 +01:00
Sketch
33dd3b078c
Correctly log register errors
2024-02-07 09:36:36 -05:00
TellowKrinkle
5949911a5a
VideoCommon: Don't use indexed output for fbfetch
...
A nonzero index makes no sense, and Mesa doesn't like it when you supply an index
2024-02-07 03:52:31 +01:00
JosJuice
b5c5371848
Arm64Emitter: Don't optimize ADD to MOV for SP
...
Unlike ADD (immediate), MOV (register) treats SP as ZR. Therefore the
ADDI2R optimization that was added in 67791d227c
can't optimize ADD to
MOV when exactly one of the registers is SP.
There currently isn't any code in Dolphin that calls ADDI2R with
parameters that would trigger this case.
2024-02-06 21:58:07 +01:00
LillyJadeKatrin
1ed7b35710
Retain Save State Folder
...
Adds a setting field under the hood to retain which folder the player last saved/loaded a state to/from, so that the dialog box to select a state to save/load reopens at that folder.
2024-02-05 19:44:09 -05:00
Mai
9240f579ea
Merge pull request #12561 from JosJuice/profile-consistency
...
InputCommon: Fix profile path inconsistencies
2024-02-05 09:47:08 -05:00
JosJuice
1315b54ffa
InputCommon: Use distinct values for profile key
...
Because the last commit made us use separate folders for GCPad and
GCKey profiles, we should also use separate game INI keys for them.
Otherwise setting e.g. PadProfile1 in a game INI will make both GCPad
and GCKey try to load it, typically with one of them succeeding and the
other one showing a panic alert due to the profile not existing in its
folder.
Better do this breaking change for GCKeys in the same PR as the other
breaking change rather than later.
2024-02-04 17:55:08 +01:00
JosJuice
6cf55ab1ee
InputCommon: Unify GetProfileName and GetProfileDirectoryName
...
After reading the previous commit, you might think "hold on, what's the
difference between GetProfileName and GetProfileDirectoryName"? These
two are being used for the exact same thing - figuring out where
profiles are stored - yet they return different values for certain
controllers like GC keyboards! As far as I can tell, the existing code
has been broken for GC keyboards since they were introduced a decade
ago. The GUI (and more recently, also InputCycler) would write and read
profiles in one location, and our code for loading profiles specified in
a game INI file would read profiles in another location.
This commit gets rid of the set of values used by the game INI code in
favor of the other set. This does breaking existing setups where a
GCKey profile has been configured in a game INI, but I think the number
of working such setups is vanishingly small. The alternative would make
existing GCKey profiles go missing from the profile dropdown in the GUI,
which I think would be more disruptive. The alternative would also force
new GCKey profiles into the same directory as GCPad profiles.
This commit also fixes a regression from d6c0f8e749
. The Android GUI was
using GetProfileName to figure out what key to use in the game INI,
which made it use incorrect game INI entries for GameCube controller
profiles but not Wii Remote profiles. Now the Android GUI uses
GetProfileKey for this, fixing the problem.
2024-02-04 17:55:08 +01:00
JosJuice
2bcf70af3f
InputCommon: Refactor away InputConfig::LoadConfig's switch case
...
By having getters for this information, other code that needs access to
the same information can call the getters instead of duplicating the
information.
2024-02-04 16:46:10 +01:00
Sepalani
1831a8cec5
BBA/HLE: Add missing PSH flag
2024-02-03 10:12:07 +04:00
Admiral H. Curtiss
abbc4bd0bd
Merge pull request #12551 from lioncash/cheev
...
AchievementManager: Minor cleanup
2024-02-03 03:01:56 +01:00
Admiral H. Curtiss
4e3886e7e8
Merge pull request #12557 from mitaclaw/cpu-thread-guarantees-1
...
CheatSearch: Remove redundant lambdas
2024-02-03 02:45:06 +01:00
Admiral H. Curtiss
df5baab873
Merge pull request #12550 from lioncash/dead
...
VertexLoaderManager: Remove unused entry struct
2024-02-03 02:38:02 +01:00
Lioncash
4f40bdf501
VertexLoaderManager: Use fill() in Init()
...
Same behavior, less code.
2024-02-01 23:04:40 -05:00
Lioncash
ea95c82a01
VertexLoaderManager: Remove unused entry struct
...
This isn't used anywhere, so it can be removed.
2024-02-01 23:04:39 -05:00
Lioncash
db80abbadd
AchievementManager: Tidy up GetRichPresence()
...
This can be a direct return.
2024-02-01 23:03:24 -05:00
Lioncash
c14414a151
AchievementManager: clear name in CloseGame()/LogOut()
...
A little more idiomatic.
2024-02-01 23:03:24 -05:00
Lioncash
2d8af7b7f8
AchievementManager: Replace memsets where applicable
...
We can just use brace initialization to zero these out. Smaller to
write and a little quicker to read.
2024-02-01 23:03:24 -05:00
Lioncash
184fe932ed
AchievementManager: std::move leaderboard info in FetchBoardInfo()
...
Avoids churning some allocations.
2024-02-01 23:03:24 -05:00
Lioncash
76c381e6f7
AchievementManager: Ensure update callback is always valid
...
This way we don't need to do any validity checking aside from the
initial setting of the callback. Also cuts down on line noise.
2024-02-01 23:03:23 -05:00
Lioncash
2b83cc739a
AchievementManager: Convert .compare() into equality operators
...
These perform a default comparison, which is the same as using the
equality operators.
2024-02-01 23:03:23 -05:00
Lioncash
394418b415
AchievementManager: Remove unnecessary .get()
...
Same behavior, less code.
2024-02-01 23:03:23 -05:00
Lioncash
161efff6c9
AchievementManager: Remove long qualifier
...
We can remove the long qualifying on some ResponseType instances to
lessen the amount of reading.
2024-02-01 23:03:23 -05:00
Lioncash
7096f99f79
CustomPipeline: Mark arrays as constexpr
...
Ensures that these go into the ro section.
2024-02-01 23:02:45 -05:00
Lioncash
59211589b9
CustomPipeline: Make use of emplace_back() in GlobalConflicts()
...
We can use the string_view arguments to directly construct strings
inside of the global_result vector.
2024-02-01 23:02:45 -05:00
Lioncash
353ceedb50
CustomPipeline: Resolve unused variable warning
...
We can just use holds_alternative here instead.
2024-02-01 23:02:45 -05:00
mitaclaw
085c4d154e
CheatSearch: Remove redundant lambdas
...
Core::RunAsCPUThread is obsoleted by CPUThreadGuard reference already passed into the function. The nonsense lambda in CheatSearchWidget is from changes in fdb7328c73
.
2024-02-01 19:54:47 -08:00
Admiral H. Curtiss
951be30891
Core: Fix booting titles from NAND.
2024-02-01 19:50:20 +01:00
Admiral H. Curtiss
14121c5504
Core/ConfigManager: Remove dead bAutomaticStart flag.
2024-01-31 22:53:43 +01:00
Admiral H. Curtiss
da6b5dd38a
Merge pull request #12546 from lioncash/event
...
VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
2024-01-31 21:16:21 +01:00
Admiral H. Curtiss
18abf7c768
Merge pull request #12544 from lioncash/getmod
...
GraphicsModGroup: Allow heterogenous lookup for GetMod()
2024-01-31 20:17:26 +01:00
Admiral H. Curtiss
202c10d757
Merge pull request #12547 from lioncash/movie
...
Core/Movie: Remove lingering global system instance accessors
2024-01-31 20:12:07 +01:00
Lioncash
5ade2e39ef
Core/Movie: Remove lingering global system instance accessors
...
The movie manager is already passed in a reference to the relevant
system, so we can use that instead.
2024-01-31 13:30:24 -05:00
Lioncash
16d8b6e6b3
Common/HookableEvent: std::move callback instance in Register()
...
Potentially avoids reallocations if the capture buffer of the callback
is quite large.
2024-01-31 13:16:50 -05:00
Lioncash
cac66317aa
VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
...
Instead, we make the event take a reference to the system and then pass
it in when the event is triggered.
This does introduce two other accessors, but these are much easier to
refactor out over time, and without modification to the existing event
interface.
2024-01-31 13:12:09 -05:00
Lioncash
0dfefacdf4
VertexLoaderBase: Collapse std namespace for hash and mark noexcept
...
Makes the hash specialization a little less noisy. Also we mark it
noexcept, since hashes shouldn't be throwing exceptions (and this can be
optimized on).
2024-01-31 12:43:00 -05:00
Lioncash
8e4b2565cd
TextureConfig: Collapse std namespace for hash
...
Lets us collapse the namespacing and make the specialization a little
less noisy.
2024-01-31 12:41:33 -05:00
Lioncash
b63dcd504d
RenderState: Collapse std namespace for hash
...
We can specify the namespace on the hash to make the specialization a
little less noisy.
2024-01-31 12:40:10 -05:00
Lioncash
5bfaa3a966
NativeVertexFormat: Collapse std namespace and mark hash noexcept
...
We can just tag the std:: onto the end of the specialization to make it
less noisy.
Also mark it as noexcept, since hashes shouldn't throw exceptions.
2024-01-31 12:37:44 -05:00
Lioncash
40b050fe37
GraphicsModGroup: std::move graphics_mod in Load()
...
The config object is quite heavyweight, so we should move this instead
of copying.
2024-01-31 12:27:43 -05:00
Lioncash
ccacda5e2c
GraphicsModGroup: Simplify try_add_mod()
...
We can use contains() here, and also move the mod config if it's valid
instead of copying it, since it contains quite a bit of allocated data.
2024-01-31 12:23:21 -05:00
Lioncash
81aca79145
GraphicsModListWidget: Pass optional by const reference
...
All we do is read from it, so we don't need to copy the string if we
happen to have one.
2024-01-31 12:09:35 -05:00
Lioncash
a1879ea099
GraphicsModGroup: Allow heterogenous lookup for GetMod()
...
Allows using keys that aren't directly std::string as the key. This lets
us use std::string_view for the incoming path name, making it more
flexible with other string types.
2024-01-31 12:05:17 -05:00
Mai
30fdf25f8f
Merge pull request #12542 from AdmiralCurtiss/system-sconfig
...
Migrate m_is_mios and bWii from SConfig to System.
2024-01-31 09:57:17 -05:00
Admiral H. Curtiss
9a3e770c23
Migrate SConfig::bWii to System.
2024-01-31 12:54:07 +01:00
Mai
e0828815e7
Merge pull request #12540 from mitaclaw/encode-reg-to-64
...
Add Missing EncodeRegTo64 in JitArm64::dcbx
2024-01-30 13:08:03 -05:00
mitaclaw
45481620b8
Add Missing EncodeRegTo64 in JitArm64::dcbx
...
ARM64FloatEmitter::ABI_PushRegisters expects an XReg temporary, not a WReg.
2024-01-30 03:06:32 -08:00
Admiral H. Curtiss
8d515d407c
Migrate SConfig::m_is_mios to System.
2024-01-30 03:45:17 +01:00
luc-git
d124fcbb0d
DolphinQt/RenderWidget: Add comments for SetCursorLocked() on Linux.
...
Co-authored-by: Admiral H. Curtiss <pikachu025@gmail.com>
2024-01-30 01:06:30 +01:00
LillyJadeKatrin
fd99a5db9a
Reverse endianness of achievement memory peeks
...
rcheevos expects these multi-byte peeks to have the opposite endianness so they need to be swapped before rcheevos gets them.
2024-01-29 11:55:49 -05:00
TellowKrinkle
b7a451fc87
VideoCommon: Post to analytics when bug is overridden
2024-01-28 23:24:23 -06:00
TellowKrinkle
99f0c3fa01
VideoCommon: Add ability for backends to override bugs
2024-01-28 23:24:22 -06:00
TellowKrinkle
463269f704
VideoBackends:Multiple: Split up BUG_BROKEN_SUBGROUP_OPS
...
We now use subgroup ops for more than just a minor performance optimization
2024-01-28 23:20:39 -06:00
Admiral H. Curtiss
8482a50154
Merge pull request #12530 from iwubcode/custom_shaders_compilation_fixes
...
VideoCommon: fix some issues when compiling custom shaders
2024-01-28 14:30:37 +01:00
Admiral H. Curtiss
4843705061
Merge pull request #12534 from iwubcode/custom-pipeline-refactor
...
VideoCommon: refactor the custom pipeline logic to be reusable
2024-01-28 14:28:23 +01:00
Admiral H. Curtiss
c9715e7e7d
Merge pull request #12535 from iwubcode/vertexmanager_draw_refactor
...
VideoCommon: refactor drawing into its own function
2024-01-28 14:27:41 +01:00
Admiral H. Curtiss
0405b4dcc2
Merge pull request #12536 from LillyJadeKatrin/retroachievements-bugfix
...
Removed post data from Achievement request logs
2024-01-28 14:26:09 +01:00
TellowKrinkle
6243e50b21
VideoBackends:MTL: Use SPIRV 1.5
...
Allows non-constant simd broadcast, which is used by the ascii art shader
2024-01-27 18:47:13 -06:00
LillyJadeKatrin
f25bdda728
Removed post data from Achievement request logs
...
post_data included passwords and API keys in plaintext so continuing to include it in logs is a security liability.
2024-01-27 18:50:27 -05:00
JosJuice
990303a028
Merge pull request #12519 from lioncash/leak
...
PostProcessing: Don't potentially leak memory in BlitFromTexture()
2024-01-27 22:29:45 +01:00
iwubcode
c34b3ae390
VideoCommon: refactor drawing into its own function
2024-01-27 14:45:34 -06:00
iwubcode
3e3967ff94
VideoCommon: refactor the custom pipeline logic in the graphics mod action into a separate class, so it is reusable
2024-01-27 00:12:49 -06:00
Admiral H. Curtiss
e740e32562
Merge pull request #12522 from lioncash/ppcanalyst
...
PPCAnalyst: Merge duplicate expression in ReorderInstructionsCore()
2024-01-26 20:29:16 +01:00
Admiral H. Curtiss
b0491c2ce8
Merge pull request #12529 from iwubcode/math_determinant
...
Common: add determinant functions to Matrix33 and Matrix44
2024-01-26 19:13:38 +01:00
Admiral H. Curtiss
b09b59c125
Merge pull request #12521 from lioncash/reent
...
Core: Make use of reentrant time utilities where applicable
2024-01-26 18:55:26 +01:00
Admiral H. Curtiss
460ab609d0
Merge pull request #12524 from lioncash/memb
...
Jit64AsmCommon: Remove redundant m_jit member from CommonAsmRoutines
2024-01-26 18:53:44 +01:00
Admiral H. Curtiss
c3652a7129
Merge pull request #12532 from lioncash/json
...
GraphicsMod/ShaderAsset: Lessen object churn a little bit
2024-01-26 18:52:52 +01:00
Mai
a553308775
Merge pull request #12443 from iwubcode/custom_pipeline_action_material_cubemap
...
VideoCommon: update custom pipeline action to support a variety of texture samplers, support for materials, and more!
2024-01-26 12:39:37 -05:00
iwubcode
b37f096f4b
Common: add determinant functions to Matrix33 and Matrix44
2024-01-24 23:02:57 -06:00
Lioncash
7a59ecc39d
GraphicsTarget: Reduce object churn a little
2024-01-24 23:00:01 -05:00
Lioncash
1b7da37114
GraphicsTargetGroup: Reduce object churn a little
2024-01-24 22:52:58 -05:00
Lioncash
24f952c12b
GraphicsModFeature: Reduce object churn a little
2024-01-24 22:48:53 -05:00
Lioncash
0385b40bd8
GraphicsModAsset: Reduce object churn a little
2024-01-24 22:47:22 -05:00
Lioncash
2253d9a95d
GraphicsModGroup: Mark move constructor and assignment as noexcept
...
Allows containers to optimize off of std::move_if_noexcept
2024-01-24 22:41:30 -05:00
Lioncash
0327b11e0b
GraphicsModGroup: Reduce object churn
...
We can emplace and move to avoid doing object copies.
2024-01-24 22:40:05 -05:00
Lioncash
e3e20df185
GraphicsMod: Avoid some object churn
...
We have quite a bit of allocation churn going on here, so we can emplace
and move where appropriate to alleviate that a little.
2024-01-24 22:34:50 -05:00
Lioncash
7b6463ef1f
ShaderAsset: Emplace value instances when possible in ToJson()
...
Constructs elements directly inside the container and also makes it
shorter to read in certain instances.
2024-01-24 18:47:44 -05:00
Mai
97160ddc83
Merge pull request #12531 from LillyJadeKatrin/retroachievements-bugfix
...
Add host URL setting to achievements config
2024-01-24 16:17:17 -05:00
Admiral H. Curtiss
58bff55c71
Merge pull request #12528 from lioncash/assembler
...
DolphinQt/MenuBar: Hide assembler option if debug UI is disabled
2024-01-24 18:48:32 +01:00
Admiral H. Curtiss
2826099808
Merge pull request #12523 from lioncash/fallthrough
...
Core: Get rid of some unannotated fallthrough cases
2024-01-24 18:40:32 +01:00
Admiral H. Curtiss
5692e15285
Merge pull request #12525 from lioncash/defined
...
Core: Convert some preprocessor checking to use #ifdef/#if defined() over #if
2024-01-24 18:39:49 +01:00
JosJuice
74d4cb0274
Merge pull request #12526 from lioncash/trace
...
CodeTrace: Use std::set::lower_bound() over std::lower_bound()
2024-01-24 17:56:39 +01:00
JosJuice
dab03e4c08
Merge pull request #12527 from lioncash/highlight
...
GekkoSyntaxHighlight: Fix FPR terminal highlighting being treated as GPRs
2024-01-24 17:55:44 +01:00
LillyJadeKatrin
03e3f65653
Add host URL setting to achievements config
...
The Host URL setting in the RetroAchievements config will, if set, be used as the host URL for all server requests for achievements. This allows for an easy switch to the RetroAchievements staging server for testing.
2024-01-24 07:08:54 -05:00
iwubcode
cf081e839d
VideoCommon: fix compilation error in pixel shaders when per-pixel lighting isn't set for custom shaders
2024-01-23 21:50:42 -06:00
iwubcode
a8d45b8e55
VideoCommon: fix compilation error in uber pixel shaders when pixel shader lighting isn't set for custom shaders
2024-01-23 21:50:42 -06:00
iwubcode
7118fc5b7b
VideoCommon: fix pixel shader compilation error that happens when uint output is defined
2024-01-23 21:50:42 -06:00
iwubcode
a37fd83218
VideoCommon: fix uber shader pixel compilation error that happens when uint output is defined
2024-01-23 21:50:41 -06:00
Lioncash
a65aaccd59
DolphinQt/MenuBar: Hide assembler option if debug UI is disabled
...
Fixes a little visual inconsistency in the UI, where the assembler would
always be shown, but all other debug-related utilities would be hidden.
2024-01-23 18:57:23 -05:00
Lioncash
100242a380
GekkoSyntaxHighlight: Collapse cases for builtin color formats
...
Same behavior, but without as much duplication.
2024-01-23 18:39:59 -05:00
Lioncash
e4fa5614d1
GekkoSyntaxHighlight: Fix FPR terminal highlighting being treated as GPRs
...
Copy-paste error. Ultimately GPR and FPRs use the same highlighting
style anyway, so this is mostly just a correctness change.
2024-01-23 18:38:06 -05:00
Lioncash
6cb3389696
CodeTrace: Use std::set::lower_bound() over std::lower_bound()
...
std::set's lower_bound() is optimized better than the generic
implementation of std::lower_bound()
std::lower_bound() works best on random access iterators, where the
number of comparisons can be logarithmic. However, since std::set's
iterators are bidirectional iterators, the comparisons will actually be
linear in practice when using std::lower_bound().
So, we can use std::set's version which is guaranteed to be logarithmic.
2024-01-23 17:21:22 -05:00
Lioncash
258161bab7
DolphinAnalytics: Use #ifdef instead of #if for platform testing
2024-01-23 16:51:31 -05:00
Lioncash
4ccc5178a6
PowerPC: Use #ifdef instead of #if for platform testing
...
This way we don't assume these symbols are always defined.
2024-01-23 16:47:43 -05:00
Lioncash
f695ae5730
JitInterface: Use #ifdef instead of #if for platform testing
...
\#if assumes the symbols will always be defined, but they aren't
depending on the platform.
2024-01-23 16:42:36 -05:00
Lioncash
a9f89a7d3b
WiimoteEmu: check for __APPLE__ with defined()
...
This is only defined on certain platforms and isn't always defined.
2024-01-23 16:40:21 -05:00
Lioncash
3c64d030c5
FreeLookManager: check for __APPLE__ with defined()
...
Previously this was treating the identifier as if it were always defined
by default
2024-01-23 16:40:10 -05:00
Lioncash
b06e1880b6
Jit64AsmCommon: Remove redundant m_jit member from CommonAsmRoutines
...
We pass a JIT instance all the way down to EmuCodeBlock, which is
accessible under protected as well, so this isn't really necessary.
2024-01-23 16:27:02 -05:00
Lioncash
adb79d4e32
WiimoteReal: Explicitly break instead of fallthrough in IsBalanceBoard()
...
Same behavior, no compiler warnings.
2024-01-23 16:22:10 -05:00
Lioncash
28e93827db
EXI_DeviceAGP: Annotate fallthrough with [[fallthrough]]
...
Same behavior, but eleminates compiler warnings.
2024-01-23 16:19:23 -05:00
Lioncash
7ef0262f8a
PPCAnalyst: Merge duplicate expression in ReorderInstructionsCore()
...
The type checking is duplicated here, which makes this seem a little
weird, so we can get rid of it.
2024-01-23 16:08:24 -05:00
Lioncash
6a86b35e88
State: Make use of re-entrant variant of localtime
...
Makes this member function thread-safe. We can also unify the string
handling to make it easier to maintain.
2024-01-23 15:28:30 -05:00
Lioncash
1b3f61041a
Movie: Remove global system accessor from GetRTCDisplay()
...
We can just use m_system instance reference instead.
2024-01-23 15:15:13 -05:00
Lioncash
763562357b
Movie: Mark getters as const
...
These don't modify internal member state.
2024-01-23 15:15:13 -05:00
Lioncash
c0b0023b64
Movie: Use re-entrant variant of gmtime in GetRTCDisplay()
...
Makes this member function thread-safe.
2024-01-23 15:15:10 -05:00
Lioncash
f03da37693
NetKDTime: Use re-entrant variants of gmtime
...
Makes these implementations more thread-safe by design. These likely
won't be run on any other thread, but we may as well just use the
re-entrant variant if it's available.
2024-01-23 14:30:44 -05:00
iwubcode
3a688aa35e
VideoCommon: add function to serialize MaterialAsset to json
2024-01-23 13:01:33 -06:00
Lioncash
5aeadb1ef8
PostProcessing: Don't potentially leak memory in BlitFromTexture()
...
All release() does is relinquish the pointer, rather than free the
memory associated with it.
2024-01-23 13:34:40 -05:00
Lioncash
a3f9f2c7aa
PostProcessing: Remove unnecessary get() calls in BlitFromTexture()
...
We can just use operator-> instead.
2024-01-23 13:34:16 -05:00
JosJuice
f2292467ad
Merge pull request #12518 from lioncash/pragma
...
AchievementSettings: Move pragma once out of ifdef
2024-01-23 19:24:38 +01:00
JosJuice
96fda3d126
Merge pull request #12517 from lioncash/alloc
...
Jit64/JitRegCache: Simplify GetAllocationOrder()
2024-01-23 19:23:42 +01:00
iwubcode
a40a952177
VideoCommon: add a method to calculate a default value for ShaderAsset and another to list its types
2024-01-23 11:58:32 -06:00
iwubcode
b5a6225e1a
VideoCommon: add function to serialize ShaderAsset to json
2024-01-23 11:58:32 -06:00
Lioncash
49eadbb824
AchievementSettings: Move pragma once out of ifdef
...
Makes the header a little more consistent with others (and also we
should still have a header guard be present at all times).
2024-01-23 11:56:50 -05:00
Lioncash
9f82efa3e2
Jit64/JitRegCache: Simplify GetAllocationOrder()
...
Given we have fixed allocation orders, we can just directly return a
span instead of a pointer and a size via an out parameter.
Makes it a little more convenient, since we get both pieces of info at
once, and also have the ability to iterate directly off the span out of
the box.
2024-01-23 11:03:59 -05:00
Mai
713572e874
Merge pull request #12510 from JosJuice/android-revert-attach-early
...
Revert "Android: Attach CPU thread to JVM early"
2024-01-21 10:23:15 -05:00
Mai
d64705d691
Merge pull request #12512 from JosJuice/assembler-dirty-flag
...
DolphinQt: Rework dirty flag handling in AssemblerWidget::TabTextForEditor
2024-01-21 10:22:46 -05:00
JosJuice
4b7c953415
Merge pull request #12509 from AdmiralCurtiss/bbox-init-only-if-supported
...
VideoCommon: Only initialize Bounding Box if supported by GPU/driver.
2024-01-20 21:59:15 +01:00
JosJuice
6276232574
DolphinQt: Rework dirty flag handling in AssemblerWidget::TabTextForEditor
...
Putting the handling of the dirty flag in only one string makes it
clearer for translators what's going on.
2024-01-20 20:00:52 +01:00
JosJuice
6cd67e3937
Partially revert "DolphinQt/Assembler: improve translatability"
...
This reverts the parts of commit c8c9928eb1
that made translatability
worse rather than better. Changing "Error in column %2" to "%1 in column
%2" not only means that the translators have to check the i18n comments
to know what word hides behind %1, but there's also the problem that
the translator might need to translate "Error" in this context
differently from the standalone string "Error". Having to copy-paste
some HTML tags may be annoying for translators, but it's a far less
serious problem.
2024-01-20 14:46:41 +01:00
JosJuice
c8327ad514
Revert "Android: Attach CPU thread to JVM early"
...
This reverts commit e86d713600
.
A proper fix was added in 86c1f6e1e7
,
so the workaround is no longer necessary.
2024-01-20 14:26:50 +01:00
Admiral H. Curtiss
ac670d99e2
VideoCommon: Only initialize Bounding Box if supported by GPU/driver.
2024-01-20 12:34:24 +01:00
Admiral H. Curtiss
83d4b692b8
InputCommon/WGInput: Handle add/remove events on separate thread to prevent deadlocks.
...
In particular this is triggered when running Dolphin with the Steam overlay.
2024-01-18 00:30:45 +01:00
Admiral H. Curtiss
12318f921f
Merge pull request #12503 from AdmiralCurtiss/sdl-fixes
...
InputCommon/SDL: Fix potential issues in controller initialization.
2024-01-18 00:29:25 +01:00
Mai
6aacbc4c35
Merge pull request #12488 from JosJuice/jitarm64-psq-stxx-w0
...
JitArm64: Remove unnecessary locking of W0 in psq_stXX
2024-01-15 15:14:59 -05:00
Mai
5534f510e0
Merge pull request #12498 from AdmiralCurtiss/globals-socket
...
Core/IOS/Network/Socket: Avoid global system accessor.
2024-01-15 15:13:41 -05:00
Admiral H. Curtiss
c7d7ae4912
InputCommon/SDL: Code style fixes.
2024-01-15 15:19:41 +01:00
Admiral H. Curtiss
5e6e61c723
InputCommon/SDL: Avoid potential infinite loops from integer truncation.
2024-01-15 15:19:24 +01:00
Admiral H. Curtiss
d657ad5932
InputCommon/SDL: Check for errors from SDL_JoystickNumButtons(), SDL_JoystickNumAxes(), SDL_JoystickNumHats().
2024-01-15 15:18:38 +01:00
Admiral H. Curtiss
959c39133b
InputCommon/SDL: Fix incorrect use of std::vector::assign() and check bounds.
2024-01-15 15:17:32 +01:00
Admiral H. Curtiss
95cba6be2b
Core/Movie: Refactor to class, move to System.
...
A bit of global state remains (the `header` in `BeginRecordingInput()`) due to unclear lifetime requirements.
2024-01-15 08:05:30 +01:00
Mai
c76dee7807
Merge pull request #12285 from iwubcode/serialize_graphics_mods
...
VideoCommon: add ability to serialize graphics mod to json object
2024-01-13 14:15:14 -05:00
Admiral H. Curtiss
1cca3b24c6
Merge pull request #12085 from SuperSamus/sdl-gamecontroller
...
SDL: Add GameController API, cleanup
2024-01-13 16:37:43 +01:00
Martino Fontana
51e05f468a
SDL: Add GameController API, cleanup
2024-01-13 16:10:25 +01:00
Admiral H. Curtiss
4a362ddd33
Core/IOS/Network/Socket: Avoid global system accessor.
2024-01-13 13:18:20 +01:00
Mai
8760aca8ec
Merge pull request #12500 from AdmiralCurtiss/globals-fiforecorder
...
FifoRecorder: Move instance to System.
2024-01-13 06:38:39 -05:00
Mai
d36baf633c
Merge pull request #12499 from AdmiralCurtiss/globals-mmiorw
...
Core/HW/MMIO: Pass System through Read() and Write().
2024-01-13 06:37:49 -05:00
Admiral H. Curtiss
443b4ae745
Core/FifoPlayer: Avoid global System accessor.
2024-01-12 21:54:35 +01:00
Admiral H. Curtiss
637fd49909
FifoRecorder: Move instance to System.
2024-01-12 15:06:06 +01:00
Admiral H. Curtiss
42d61cfc4c
Core/HW/MMIO: Pass System through Read() and Write().
2024-01-12 08:28:01 +01:00
Mai
6725c25600
Merge pull request #12494 from AdmiralCurtiss/globals-wiiipc
...
Core/IOS/WiiIPC: Refactor to class, move to System.
2024-01-12 02:08:00 -05:00
Mai
ab3655fbea
Merge pull request #12496 from AdmiralCurtiss/globals-gba
...
Core/HW/GBACore: Avoid global System accessor.
2024-01-12 02:05:57 -05:00
Admiral H. Curtiss
bca5b10faf
Merge pull request #12489 from JosJuice/optimizable-access-size
...
PowerPC: Add access size parameter to MMU::IsOptimizableRAMAddress
2024-01-12 07:44:59 +01:00
Admiral H. Curtiss
f7a9ea9d7e
Core/HW/GBACore: Avoid global System accessor.
2024-01-12 07:30:20 +01:00
Admiral H. Curtiss
5a633f0bcf
Core/IOS/WiiIPC: Add missing variables to savestate.
2024-01-12 06:37:11 +01:00
Admiral H. Curtiss
17753d5168
Core/IOS/WiiIPC: Refactor to class, move to System.
2024-01-12 06:37:10 +01:00
Admiral H. Curtiss
be7f4ab244
Core: Pass sensor bar state into the Wiimote input calculation functions instead of having it access a global.
2024-01-11 06:02:49 +01:00
Vicki Pfau
a8033f164b
Steam Deck: Pad out feature report to 64 bytes
...
Also update the names of the setting post-Steam Deck commits to SDL
Fixes https://bugs.dolphin-emu.org/issues/13412
2024-01-10 19:49:52 -08:00
JosJuice
b972329ed0
PowerPC: Add access size parameter to MMU::IsOptimizableRAMAddress
...
For correctness, we need to check not only the start address of the
memory access but also the end address.
2024-01-10 18:17:45 +01:00
Martino Fontana
0ab2bc2287
ControllerInterface: Make FullAnalogSurface inherit IsDetectable()
2024-01-10 12:20:07 +01:00
Lioncash
409d2ecad3
SI_Device: Remove global system accessors
...
We can pass the system timer instance through to avoid needing the
global accessor.
2024-01-08 11:03:26 -05:00
Lioncash
7398d0b6ef
SI_DeviceGBAEmu: Remove global system accessors
...
We can pass the system timer instance in from the existing system
instance instead of the global accessor.
2024-01-08 10:56:41 -05:00
Admiral H. Curtiss
1f0fe5a99a
Core/DSPHLE: Store reference to DSPManager in HLEAccelerator (AX/AXWii).
2024-01-08 10:27:39 +01:00
Admiral H. Curtiss
3a9160100d
Core/DSPHLE: Store reference to DSPManager in AESndAccelerator.
...
Avoids the use of the global System in ReadMemory() and WriteMemory().
2024-01-08 10:23:29 +01:00
Admiral H. Curtiss
e9ab33b871
Core/DSPHLE: Remove global System access in UCodes.
2024-01-08 10:23:29 +01:00
Admiral H. Curtiss
a9bf93cf2a
Core/DSPHLE: Remove global System access from CMailHandler.
2024-01-08 10:23:29 +01:00
Admiral H. Curtiss
9be9cbda2f
Core/DSPHLE: Store reference to System in DSPHLE instances.
2024-01-08 10:23:28 +01:00
Admiral H. Curtiss
3b0444be6b
Core/DSPHLE: Move HLEAccelerator instance into AXUCode.
2024-01-08 03:53:52 +01:00
Admiral H. Curtiss
bfd53c7294
Core/DSPHLE: Make HLEAccelerator state local to GetInputSamples() in AX and AXWii UCodes.
2024-01-08 03:53:52 +01:00
Mai
180d053ec1
Merge pull request #12486 from AdmiralCurtiss/globals-aesndaccel
...
Core/DSPHLE: Move AESndAccelerator instance into AESndUCode.
2024-01-07 20:36:01 -05:00
JosJuice
f2145c91e7
JitArm64: Update register comments in psq_lXX/psq_stXX
...
This was also overlooked in 166bd87f70
.
2024-01-07 23:01:38 +01:00
JosJuice
d94b00ec36
JitArm64: Remove unnecessary locking of W0 in psq_stXX
...
It seems like I made a mistake in 166bd87f70
. Locking W0 when
jo.memcheck is true is only necessary for load instructions, not store
instructions.
2024-01-07 22:59:51 +01:00
JosJuice
4e57b66dcf
Merge pull request #12375 from JosJuice/android-gate-size-crash
...
Android: Fix crash when trying to edit gate size setting
2024-01-07 19:34:06 +01:00
JosJuice
696a6defd2
Merge pull request #12472 from mitaclaw/arm64-flush-mode
...
Arm64RegCache: Use FlushMode everywhere
2024-01-07 18:45:25 +01:00
Admiral H. Curtiss
2a42977dd3
Core/DSPHLE: Move AESndAccelerator instance into AESndUCode.
2024-01-07 04:49:34 +01:00
Tilka
5b2ea515ad
Merge pull request #12484 from SuperSamus/vulkan-dont-panic-suboptimal-khr
...
VKGfx: Don't panic for VK_SUBOPTIMAL_KHR
2024-01-06 12:39:40 +00:00
Admiral H. Curtiss
fc2ec826d4
FifoPlayer: Move instance to System.
2024-01-05 20:15:18 +01:00
Martino Fontana
58f5bf5496
VKGfx: Don't panic for VK_SUBOPTIMAL_KHR
2024-01-05 11:20:35 +01:00
Mai
2f7f7afe6d
Merge pull request #12468 from JosJuice/android-targets-fixes
...
Android: Fix the targets line in build.gradle.kts
2024-01-05 01:55:11 -05:00
Mai
feb7207a4c
Merge pull request #12482 from AdmiralCurtiss/globals-coreinit
...
Core: Pass System through more of the emulation thread init process.
2024-01-05 01:53:11 -05:00
Admiral H. Curtiss
2155a61176
Core: Pass System through more of the emulation thread init process.
2024-01-05 05:19:29 +01:00
Admiral H. Curtiss
07c035e659
Core/SystemTimers: Refactor to class, move to System.
2024-01-04 23:35:19 +01:00
Tilka
9c91b5edca
Merge pull request #12480 from AdmiralCurtiss/codetrace-system
...
Core/CodeTrace: Take address from given instruction in GetInstructionAttributes().
2024-01-04 22:00:15 +00:00
Admiral H. Curtiss
0be476cfaf
Core/CodeTrace: Take address from given instruction in GetInstructionAttributes().
...
In all instance this method is called, the instruction comes from SaveCurrentInstruction(), which already sets the address to the PC.
2024-01-04 21:44:54 +01:00
Admiral H. Curtiss
ce19d6a35e
Core/Boot: Avoid global system accessor when setting disc.
2024-01-04 21:30:24 +01:00
iwubcode
1073722cdf
Revert "VideoCommon: revert max pixel shader samplers back to 8 for Android devices."
...
This reverts commit 79648e1c24
.
2024-01-03 18:43:44 -06:00
Tilka
48eb8b17ef
Merge pull request #12475 from Tilka/zelda
...
DSPHLE/Zelda: fix reverb volume being multiplied by current volume twice
2024-01-02 05:06:21 +00:00
Admiral H. Curtiss
fd1a261e73
Merge pull request #12470 from JosJuice/jitarm64-low-dcbz-for-real
...
JitArm64: Don't fall back to interpreter on low DCBZ hack
2024-01-01 23:16:30 +01:00
Tillmann Karras
381c2702f6
DSPHLE/Zelda: fix reverb volume being multiplied by current volume twice
2024-01-01 21:53:26 +00:00
Admiral H. Curtiss
295d86c86f
Merge pull request #12455 from PatrickFerry/qt_handle_overridden_graphics_backend
...
Qt: Handle Overridden Graphics Backend
2024-01-01 22:42:30 +01:00
Admiral H. Curtiss
6e3a2324a4
Merge pull request #12464 from JosJuice/jit-isi-membase
...
Jit: Reload RMEM/MEM_REG on ISI exception
2024-01-01 22:09:05 +01:00
Admiral H. Curtiss
043d868841
Merge pull request #12473 from Dentomologist/bitset64_fix_iterator_incrementation
...
BitSet64: Fix iterator incrementation
2024-01-01 22:03:11 +01:00
Admiral H. Curtiss
370daaf26c
Merge pull request #12474 from Dentomologist/bitset_use_static_cast
...
BitSet: Use direct initialization instead of c-style casts
2024-01-01 22:01:45 +01:00
Dentomologist
7dbf463ddf
BitSet64: Fix iterator incrementation
...
Use 1 of the same type as the stored value when shifting left. This
prevents undefined behavior caused by shifting an int more than 31 bits.
Previously iterator incrementation could either hang or prematurely
report it had reached the end of the bitset.
2024-01-01 00:41:48 -08:00
Dentomologist
abb484a101
BitSet: Use direct initialization instead of c-style casts
2024-01-01 00:36:13 -08:00
Tilka
07df4ff16e
Merge pull request #12471 from mitaclaw/flush-gpr-arm-bug
...
Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
2024-01-01 00:46:34 +01:00
Dentomologist
58c5ae3de9
UnitTests: Refactor BitSetTest
...
Group numbers and their bitcounts together in pairs, which allows for
range-based loop iteration.
2023-12-31 12:10:50 -08:00
mitaclaw
4805b02893
Arm64RegCache: Use FlushMode everywhere
2023-12-31 02:09:56 -08:00
mitaclaw
01e534a681
Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
...
This was introduced in 6a9f565ac4
.
2023-12-30 23:44:27 -08:00
Tilka
8ecc478662
Merge pull request #12469 from JosJuice/tlb-index-constants
...
PowerPC: Add constants for the two TLB indices
2023-12-30 16:59:17 +01:00
JosJuice
465f17a882
PowerPC: Add constants for the two TLB indices
...
Just for readability.
2023-12-30 14:31:05 +01:00
JosJuice
684b3dfd4a
JitArm64: Don't fall back to interpreter on low DCBZ hack
...
I missed this in 16eb188f1d
.
2023-12-30 14:18:49 +01:00
JosJuice
b56e6cc03d
Android: Update the comment for the targets line in build.gradle.kts
...
This comment hasn't really made sense since 23bebc5270
commented out
the relevant line.
2023-12-30 14:16:28 +01:00
JosJuice
b5f41e0742
Android: Fix syntax of the targets line in build.gradle.kts
...
Seems like this was missed in the conversion to Kotlin in 001089dbf4
.
2023-12-30 14:14:40 +01:00
JosJuice
2a89a1d27a
Merge pull request #12461 from blakbin/DocumentProvider
...
Improve DocumentProvider
2023-12-30 12:50:46 +01:00
JosJuice
26760cf8a8
Merge pull request #12467 from AdmiralCurtiss/codepage-convert-linkage
...
Common/StringUtil: Use internal linkage for codepage conversion functions.
2023-12-30 12:13:53 +01:00
luc-git
6b166f1819
DolphinQt/Mapping: Add "Use Mouse Controlled Pointing" button.
2023-12-29 20:31:39 +01:00
Admiral H. Curtiss
99fbc4b97e
Merge pull request #11885 from Filoppi/devices_deadlock_fix_v2
...
Input: Improve Controller Interface devices threading
2023-12-29 20:17:04 +01:00
Admiral H. Curtiss
4f04ac5858
Common/StringUtil: Use internal linkage for codepage conversion functions.
2023-12-29 19:50:55 +01:00
Admiral H. Curtiss
bf0ac9de0c
Merge pull request #12466 from JosJuice/win32-error-string-encoding
...
Common: Fix encoding handling in GetWin32ErrorString
2023-12-29 19:48:00 +01:00
JosJuice
0c7359e150
Common: Fix encoding handling in GetWin32ErrorString
...
These messages can be localized, so we can't just assume it's all ASCII.
2023-12-29 16:01:13 +01:00
Tilka
68250afa08
Merge pull request #12465 from Tilka/zelda
...
DSPHLE/Zelda: fix use of wrong reverb buffer
2023-12-29 08:14:55 +01:00
Jules Blok
f1d446da3f
Merge pull request #12452 from Tilka/efb24
...
VideoCommon: apply "force 24-bit color" to EFB-to-VRAM copies as well
2023-12-29 03:51:59 +01:00
Tillmann Karras
594b55c448
DSPHLE/Zelda: fix use of wrong reverb buffer
2023-12-29 02:45:23 +01:00
Tillmann Karras
ca69c60e1b
DSPHLE/Zelda: add another 32-bit getter/setter (NFC)
2023-12-29 02:45:20 +01:00
Patrick Ferry
1c68f4231b
Qt: Handle Overridden Graphics Backend
...
This fixes an issue where the game specific graphics backend would be saved as the global setting after playing a game.
This also now displays the currently running graphics backend when looking in the graphics configuration window.
2023-12-28 17:28:08 +00:00
Admiral H. Curtiss
e212d1c395
Merge pull request #12463 from Dentomologist/netkdrequestdevice_fix_crashes
...
NetKDRequestDevice: Fix sporadic crashes during emulation shutdown
2023-12-27 21:47:18 +01:00
JosJuice
8fcf9969eb
Jit: Reload RMEM/MEM_REG on ISI exception
...
Aims to fix https://bugs.dolphin-emu.org/issues/13444 .
2023-12-27 16:39:00 +01:00
Dentomologist
ecf4f1b1f9
NetKDRequestDevice: Fix nullptr dereference crash
...
Keep a shared_ptr to NetKDTimeDevice inside NetKDRequestDevice.
This allows the KDDownload task to finish its work without potentially
trying to dereference nullptr, which can potentially come from either
GetIOS() or GetDeviceByName() if EmulationKernel's destructor has
started running.
2023-12-24 16:46:08 -08:00
Dentomologist
dd1f5f9726
NetKDRequestDevice: Fix use-after-free crash
...
Explicitly shut down work queues in NetKDRequestDevice's destructor to
prevent their threads from accessing members after they've been freed.
This crash would occur sporadically if NetKDRequestDevice's periodic
download or mail checks happened to overlap with emulation shutdown in
the wrong way.
An example sequence of events that could cause the crash:
* m_scheduler_timer_thread queues a periodic Download event in
m_scheduler_work_queue, then waits for m_shutdown_event.
* A request to stop emulation results in s_ios being reset by the CPU
thread. This triggers NetKDRequestDevice's destructor which sets
m_shutdown_event and joins m_scheduler_timer_thread.
* m_scheduler_timer_thread wakes from m_shutdown_event and returns from
its thread function, ending the thread.
* The CPU thread resumes execution at the end of NetKDRequestDevice's
destructor and begins destroying NetKDRequestDevice's members in
reverse declaration order.
* m_http is declared after m_scheduler_work_queue and is therefore
destroyed earlier.
* m_scheduler_work_queue's destructor calls its Shutdown function, which
by default finishes the work items in the queue.
* The queued Download event calls KDDownload which calls m_http.Get()
which calls Fetch() which passes garbage data from the freed m_curl
into curl_easy_setopt().
* Curl promptly crashes.
Shutting down the work queues manually in the destructor prevents the
above because m_http and the other members don't get freed until after
the queue threads finish.
2023-12-24 15:04:35 -08:00
BlakDulz
45d3c41d68
Make DocumentProvider Support Thumbnail
...
This will make DocumentUI or the built-in Android System Internal Files Manager app showing Thumbnail of Image file instead of image type icon.
2023-12-24 15:34:10 +07:00
Sepalani
e9fa335fbe
Socket: Fix a nullptr dereference when operations are pending
2023-12-24 09:23:02 +04:00
BlakDulz
d667fca8d3
Implement Refresh on DocumentProvider
...
"When interacting with DocumentUI or the built-in Android System Internal Files Manager app and performing Create, Rename, and Delete operations, DocumentsUI will not automatically refresh the changes.
Previously, users had to manually pull down from the top to refresh the changes. This commit aims to fix this issue by automatically notifying the system that changes have occurred and triggering a requery."
2023-12-23 23:26:54 +07:00
Lioncache
a23cf2121d
VideoCommon/PixelEngine: Generify lock guards
...
We don't need to specify the type of the mutex being passed in.
2023-12-22 14:19:29 -05:00
Lioncache
0505f057ca
VideoCommon/PixelEngine: Remove global system accessor in UpdateInterrupts()
...
Now that the system instance is passed through, this is no longer necessary.
2023-12-22 14:19:29 -05:00
Lioncache
e539dbba4c
VideoCommon/PixelEngine: Passthrough system instance in constructor
...
Simplifies the interface in terms of usage
2023-12-22 14:19:26 -05:00
Mai
b1438c224f
Merge pull request #12439 from lioncash/sprintf
...
Core: Use fmt over sprintf in trivial cases
2023-12-21 17:17:21 -05:00
Mai
6c2da5229e
Merge pull request #12458 from JosJuice/jitarm64-logic-i2r-not-nothing
...
JitArm64: Fix the "do nothing" cases of ANDI2R and friends
2023-12-21 17:13:20 -05:00
JosJuice
d8c78f2a92
JitArm64: Fix the "do nothing" cases of ANDI2R and friends
...
So somehow I forgot that AArch64 uses three-operand encoding...
Fixes a regression from 6303416201
which manifested in various ways,
such as incorrect rendering of the Wind Waker title screen.
2023-12-21 20:51:32 +01:00
Tilka
8d4575cfd8
Merge pull request #12454 from lioncash/proc
...
VideoCommon/CommandProcessor: Pass system instance through constructor
2023-12-21 17:46:28 +00:00
iwubcode
b669580aeb
VideoCommon: handle asset memory going over reserved limit correctly by erroring when the memory is exceeded and not allowing more assets to load until memory is released
2023-12-21 01:05:56 -06:00
iwubcode
79648e1c24
VideoCommon: revert max pixel shader samplers back to 8 for Android devices.
...
It was reported that some games (Zelda Wind Waker and Zelda Twilight Princess but others may also exhibit the issue) have graphical issues with the max pixel samplers set to 16 on some Android devices (ex: Pixel6); since this was increased for a performance heavy feature (custom shaders) just disable it for now. In the future, this could be handled more elegantly
2023-12-21 00:36:44 -06:00
Lioncache
f97b2d472a
VideoCommon/CommandProcessor: Pass system instance through constructor
...
Makes the use of the interface a little less noisy, especially given
how much of the interface depends on an instance being present.
2023-12-20 09:02:53 -05:00
Tilka
70b7a59456
Merge pull request #12451 from lioncash/fifo
...
VideoCommon/Fifo: Pass system instance through FifoManager constructor
2023-12-20 12:45:38 +00:00
Tilka
01340d7f8d
Merge pull request #12442 from lioncash/hle
...
Core/HLE/HLE: Remove global system accessors
2023-12-20 12:41:09 +00:00
iwubcode
fcfcf14e07
VideoCommon: when loading a texture asset, set sampler to linear sampler if the texture type is not defined and the 2d texture is assumed
2023-12-19 21:51:42 -06:00
iwubcode
ae758f489a
VideoCommon: update custom pipeline action to support a variety of texture samplers (2D, 2D array, and cube maps)
2023-12-19 21:51:42 -06:00
Tillmann Karras
ddb4566a41
VideoCommon: apply "force 24-bit color" to EFB-to-VRAM copies as well
2023-12-20 02:25:07 +00:00
Admiral H. Curtiss
acd76918d7
Merge pull request #12448 from lioncash/es
...
Core/IOS/ES: Remove global system accessor in InitializeEmulationState()
2023-12-19 04:26:08 +01:00
Lioncache
b0d244b772
VideoCommon/Fifo: Pass system instance through FifoManager constructor
...
Given how many member functions make use of the system instance,
it's likely just better to pass the system instance in on construction.
Makes the interface a little less noisy to use.
2023-12-18 22:03:25 -05:00
OatmealDome
186b2f4e92
Merge pull request #12450 from lioncash/cheats
...
CheatSearch: Get rid of global system accessors
2023-12-18 20:10:48 -05:00
Lioncache
dec53848f5
CheatSearch: Get rid of global system accessors
...
We can retrieve the system via the CPUThreadGuard instances.
2023-12-18 19:24:35 -05:00
Lioncache
00f494307f
UICommon: Remove global system accessor in TriggerSTMPowerEvent()
...
This can be passed through via the IOS instance.
2023-12-18 19:17:16 -05:00
Lioncache
c0b7e9cd94
Core/HLE/HLE: Remove global system accessor from ExecuteFromJIT()
...
We can just pass in our system instance via the ABI function helpers.
2023-12-18 19:11:52 -05:00
Lioncache
f4277a901a
Core/HLE/HLE: Remove global system accessors
...
We can get rid of the global system accessors by requiring passing in
relevant state that the function needs and making callsites do the work.
This *does* add a global accessor to the PPCAnalyzer, however, this already
has global accessors present elsewhere within its code, so they can be removed
all at once in a follow up change.
2023-12-18 19:11:49 -05:00
Lioncache
f1b18d8ae3
Core/IOS/ES: Remove global system accessor in InitializeEmulationState()
...
We can pass the core timing instance into the function.
2023-12-18 19:06:45 -05:00
Admiral H. Curtiss
251c7a1030
Merge pull request #12445 from lioncash/gecko
...
Core/GeckoCode: Remove global system accessors
2023-12-18 23:54:22 +01:00
Admiral H. Curtiss
57b4379364
Merge pull request #12441 from lioncash/ios
...
Core/IOS/IOS: Remove global system accessors
2023-12-18 23:30:38 +01:00
Admiral H. Curtiss
7f01c1ed5b
Merge pull request #12446 from lioncash/patch
...
Core/PatchEngine: Get rid of global system accessors
2023-12-18 23:24:51 +01:00
Lioncache
ca5695aef2
Core/Debugger/PPCDebugInterface: Remove global system accessor
...
We can use the CPUThreadGuard instance to get the active system instance.
2023-12-18 16:57:50 -05:00
Lioncache
3802c7bf11
Core/PatchEngine: Get rid of global system accessors
...
We can pass the system instance into ApplyFramePatches() instead,
especially considering the patch engine callback already has it
available.
2023-12-18 16:48:25 -05:00
Lioncache
cea58759d9
Core/GeckoCode: unsigned int -> u32
...
Same thing for all intents and purposes, less to read.
2023-12-18 16:39:04 -05:00
Lioncache
bb866248cf
Core/GeckoCode: Avoid signed conversion in RunCodeHandler()
...
i is being used alongside unsigned types, so it should be unsigned as well.
2023-12-18 16:38:41 -05:00
Lioncache
1ceaa8c52a
Core/GeckoCode: Remove global system accessor
...
We can use the CPUThreadGuard instance to retrieve the system instance instead.
2023-12-18 16:35:52 -05:00
Lioncache
472c65ed35
Core/Debugger_SymbolMap: Make GetCallstack() less verbose
...
This also allows the constructed CallstackEntry instances to be moved into
the output vector, rather than being copied.
2023-12-18 15:46:32 -05:00
Lioncache
75ec350dc4
Core/Debugger_SymbolMap: Remove redundant system parameters from interface
...
The CPU thread guard already allows access to the system instance. We can
remove the system parameter to reduce rendundancy here.
2023-12-18 15:46:22 -05:00
Lioncache
514b3e6f55
Core/Debugger_SymbolMap: Remove AddAutoBreakpoints()
...
This is wholly unused in current code.
2023-12-18 15:24:58 -05:00
Filoppi
e456bef163
Input: Improve Controller Interface devices threading
...
This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635
though I felt like there was something more we could do, and wasn't too happy with the
likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked).
2023-12-18 21:45:22 +02:00
Lioncache
04300114f7
Core/HLE/HLE_OS: Mark helpers as static where applicable
...
Previously, these were given external linkage when they're only used within
this translation unit.
2023-12-18 13:44:55 -05:00
Lioncache
c4df659e21
HLE_OS: Get rid of global system accessors
...
Thread guards provide access to the current active system instance.
2023-12-18 13:39:53 -05:00
Lioncache
c3c39de212
HLE_Misc: Get rid of global system accessors
...
Thread guards provide access to the current active system instance.
2023-12-18 13:33:07 -05:00
Lioncache
affe928987
Common/TraversalServer: Make use of fmt more
...
We can convert printf and fprintf over to the use of fmt as well,
given that we've converted the sprintf calls over.
2023-12-18 13:08:57 -05:00
Lioncache
dc85194fac
Common/TraversalServer: Make use of fmt over sprintf where applicable
...
Resolves some deprecation warnings on macOS. This is better anyway, given fmt
has generic type formatting.
2023-12-18 13:08:57 -05:00
Lioncache
1764b13423
Core/DSP/DSPTables: Make pdregname() and pdregnamelong() return std::string
...
Keeps the interface consistent.
2023-12-18 13:08:57 -05:00
Lioncache
62740d97a8
Core/DSP/DSPTables: Make use of fmt::format in pdname()
...
Resolves a deprecation warning on macOS. Also, we can convert
the function to just return a std::string instead of using a
static internal buffer, which is gross and thread-unsafe.
2023-12-18 13:08:57 -05:00
Lioncache
9abcc1c08b
Core/NetPlayServer: Use fmt::format_to_n in GetInterfaceHost()
...
Lets us avoid some noisy deprecation warnings on macOS (and also lets us use
a more generic formatting specifier).
2023-12-18 13:08:57 -05:00
Lioncache
2b877fc92b
Core/IOS/Top: Make use of fmt::format_to_n where applicable
...
Same behavior, but avoids deprecation warnings on macOS builds and also lets us
use generic print formatting.
2023-12-18 13:08:57 -05:00
Lioncache
04822d5a2c
Core/IOS/ES: Make use of fmt::format where applicable
...
Eliminates a deprecation warnings on macOS. While we're in the
same area, we can remove the call to GetPointer() and instead
use CopyToEmu() to copy the string data back to the emulated memory.
2023-12-18 13:05:04 -05:00
Lioncache
e6db08e03a
Core/IOS/IOS: Remove global system accessor from Init()
...
Removes the final global system accessor from the main IOS code by
passing the system instance through it.
2023-12-18 12:28:21 -05:00
Lioncache
1f50a2fd5b
Core/IOS/IOS: Remove global system accessor from WriteReturnValue()
...
We can pass the memory instance into it instead of using the global accessor.
2023-12-18 12:22:01 -05:00
Lioncache
b8c657b06f
Core/IOS/IOS: Remove global system accessor from RAMOverrideForIOSMemoryValues()
...
We can allow passing in the memory instance instead of directly going for the
global system instance.
2023-12-18 12:10:25 -05:00
Lioncache
a13bcd87d4
Core/IOS/IOS: Remove global system accessors from internal functions
...
These functions can all be modified to take in the required instance,
rather than using the global system accessor.
2023-12-18 12:04:58 -05:00
Lioncache
0c9f9ca8b6
Core/IOS/IOS: Remove global system accessor from destructor
...
An EmulationKernel already houses a reference to the current system
2023-12-18 11:55:30 -05:00
Lioncache
0d75d658b1
Core/IOS/IOS: Remove system parameters from BootstrapPPC() and BootIOS()
...
An EmulationKernel instance already houses a reference to the currently active system instance.
2023-12-18 11:54:03 -05:00
Lioncache
69523de5d5
Core/EXI/EXI_DeviceMemoryCard: Remove global system accessor
...
We can pass the core timing instance into the Init() call.
2023-12-18 11:15:51 -05:00
Admiral H. Curtiss
715a551dac
Merge pull request #12170 from Filoppi/custom_aspect_ratio
...
Add support for custom aspect ratios
2023-12-18 05:19:06 +01:00
Filoppi
a6dfeed318
Video: make the "Auto" resolution setting also follow the max res setting, to avoid trying to create texture bigger than the maximum supported one
2023-12-18 02:00:25 +02:00
Filoppi
ff03189a60
Video: fix auto resolution scale calculations
2023-12-18 02:00:25 +02:00
Filoppi
fdd1934f12
Video: fix Auto Resolution Scale not updating when the window was resized.
...
Also fixes the widescreen hack not fully updating when the aspect ratio setting changed on the spot.
2023-12-18 02:00:25 +02:00
Filoppi
b3aa6ad93b
Video: implement custom aspect ratio support (already exposed to Qt).
...
This also renamed some variables/functions.
2023-12-18 02:00:24 +02:00
Filoppi
f96bea95d8
Video: rename Presenter::SetWindowSize()
2023-12-18 00:28:15 +02:00
Filoppi
24004af814
Video: polish aspect ratio related code comments to make it clearer
2023-12-18 00:28:14 +02:00
Mai
de8bc32dc5
Merge pull request #12362 from CasualPokePlayer/sysconf_widescreen
...
Add SYSCONF widescreen setting to dtm header
2023-12-17 15:19:02 -05:00
Mai
51a44aa5d2
Merge pull request #12431 from JosJuice/jitarm64-rlwnmx-call-rlwinmx
...
JitArm64: Call rlwinmx implementation from rlwnmx with imm b
2023-12-17 15:18:00 -05:00
Mai
bcd74a81a9
Merge pull request #12370 from iwubcode/more_samplers
...
VideoBackends / VideoCommon: update max pixel shader samplers from 8 to 16
2023-12-17 14:50:23 -05:00
Mai
559ea0593c
Merge pull request #12432 from JosJuice/jitarm64-logic-i2r-opt
...
JitArm64: Add additional optimized cases to ANDI2R and friends
2023-12-17 14:45:55 -05:00
Mai
f0f0f97554
Merge pull request #12433 from mitaclaw/windows-arm-debug-fix
...
Fix Windows ARM64 debug build errors
2023-12-17 14:43:55 -05:00
Mai
0125b5182f
Merge pull request #12409 from iwubcode/custom_material_graphics_mod_action_data
...
VideoCommon: prepare graphics mods for custom shader material data
2023-12-17 14:42:34 -05:00
Mai
b27c15fab6
Merge pull request #12382 from iwubcode/shader_asset_default_value
...
VideoCommon: update shader asset to provide a variant default value
2023-12-17 14:41:55 -05:00
Mai
f589c04aa7
Merge pull request #12372 from iwubcode/texture_usage_flag
...
VideoBackends / VideoCommon: add type enum to dictate how the texture is used; support texture 2d
2023-12-17 14:40:39 -05:00
mitaclaw
ca443d7f89
Fix Windows ARM64 debug build errors
...
Jit.cpp : Potentially uninitialized local pointer variable 'host_address_after_return' used in a DEBUG_ASSERT on line 470.
dolphin-emu.sln : A copy-paste error.
2023-12-17 11:31:28 -08:00
JosJuice
dc60bc5f1e
JitArm64: Improve codegen in ANDI2R and friends
...
The codegen for the functions themselves, not for the emitted code.
This seems to save 32 bytes per function. We also get rid of the oddity
we had before where ANDI2R would do masking for 32-bit operations but
the other functions wouldn't.
2023-12-17 18:13:32 +01:00
JosJuice
a8e1e1ae48
JitArm64: Optimize additional cases of ANDI2R and friends
...
Now we'll never need a scratch register for values that are all zeroes
or all ones.
2023-12-17 18:13:32 +01:00
JosJuice
6303416201
JitArm64: Optimize ANDI2R and friends to no-ops when possible
...
This optimizes rlwnmx with mask == 0xFFFFFFFF.
2023-12-17 18:13:30 +01:00
JosJuice
26de2a7feb
JitArm64: Call rlwinmx implementation from rlwnmx with imm b
...
This way we get some additional optimized cases for rlwnmx with imm b.
2023-12-17 17:00:41 +01:00
Mai
e6c85bf8f0
Merge pull request #12428 from JosJuice/jitarm64-rlwinmx-shift-only
...
JitArm64: Add rlwinmx case for only shifting
2023-12-17 10:45:59 -05:00
Mai
519234949e
Merge pull request #12429 from JosJuice/jitarm64-mtsrin-64-bit
...
JitArm64: Use 64-bit register for address in mtsrin
2023-12-17 10:45:36 -05:00
Tilka
18f9b966a0
Merge pull request #12358 from rsgnz/master
...
VideoCommon: Fix "Post-processing shader not found" when (off) is selected.
2023-12-17 09:50:41 +00:00
Tilka
773ffd04b8
Merge pull request #11497 from vyuuui/debugger_assembler_ui
...
Built-in assembler for debugger interface
2023-12-16 21:15:31 +00:00
JosJuice
f5951c9f45
JitArm64: Use 64-bit register for address in mtsrin
...
Fixes a regression from d34d3bd513
that, depending on the host memory
layout, could cause either a host crash or a guest crash when running
F-Zero GX.
2023-12-16 20:27:58 +01:00
JosJuice
b5a95b7804
JitArm64: Add rlwinmx case for only shifting
...
Small optimization.
2023-12-16 17:34:33 +01:00
Admiral H. Curtiss
190c4e8cda
Merge pull request #12427 from JosJuice/jitarm64-msr-updated-logical-imm
...
JitArm64: Fix MSRUpdated(ARM64Reg) with FEATURE_FLAG_PERFMON set
2023-12-16 17:22:23 +01:00
JosJuice
e0eb4ef5bc
JitArm64: Use enum class for LogicalImm size parameter
...
This should prevent issues like the one fixed in the previous commit
from happening again.
2023-12-16 16:48:26 +01:00
Admiral H. Curtiss
36cb8110f4
Merge pull request #12346 from iwubcode/arb_mipmaps_default_off
...
Core: disable arbitrary mipmap detection by default
2023-12-16 16:23:10 +01:00
JosJuice
064b23b25b
JitArm64: Fix MSRUpdated(ARM64Reg) with FEATURE_FLAG_PERFMON set
...
The second parameter of the LogicalImm constructor is the size, not the
first.
2023-12-16 12:07:11 +01:00
Admiral H. Curtiss
4b459294b0
Merge pull request #12414 from LillyJadeKatrin/retroachievements-bugfix
...
Retroachievements - Fixed Login Checks
2023-12-16 05:33:43 +01:00
Admiral H. Curtiss
1daaaf8c26
Merge pull request #12425 from Naim2000/no-install-wad
...
Disable installing WADs and importing/exporting Wii saves while emulation is running
2023-12-16 05:09:26 +01:00
Naim2000
8f9102f5e5
Disable importing/exporting Wii saves while emulation is running
2023-12-15 19:48:06 -05:00
OatmealDome
c159e4fb7a
Merge pull request #12420 from OatmealDome/mtl-oob
...
MTLStateTracker: Increase fragment buffer array size to 3
2023-12-15 17:12:31 -05:00
iwubcode
12dd15c8dd
VideoBackends / VideoCommon: add type enum to dictate whether a texture is a 2D texture, a texture array, or a cube map; support 2D texture type across backends
...
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2023-12-15 11:06:02 -06:00
Naim2000
efd0c5b07e
Disable "Install WAD" while emulation is running
...
The "(Un)install to/from the NAND" options in the context menu for WAD files has always been disabled, don't know what happened to this one
2023-12-15 10:14:44 -05:00
Tillmann Karras
c8c9928eb1
DolphinQt/Assembler: improve translatability
...
Also, don't show error line numbers in the instruction patch dialog. The
input text field only accepts one line anyway.
2023-12-15 00:37:42 +00:00
Admiral H. Curtiss
370474a7cb
Merge pull request #12422 from lioncash/global
...
WiiNetConfig: Eliminate usages of the global system accessor
2023-12-14 23:27:10 +01:00
Tilka
f777a584c1
Merge pull request #12423 from lioncash/mios
...
IOS/MIOS: Eliminate global system accessors
2023-12-14 22:19:11 +00:00
Lioncash
27806d8d7b
WiiNetConfig: Eliminate usages of the global system accessor
...
We can pass in the existing memory manager instance into the functions
instead of using the global accessor to access it.
2023-12-14 16:46:52 -05:00
Lioncash
1573b50bb3
HW/CPU: Remove remaining global system accessors
...
We can just pass in the m_system member instead.
2023-12-14 16:14:59 -05:00
Lioncash
5e9763c0fa
IOS/MIOS: Eliminate global system accessors
...
We can pass the system instance through the EmulationKernel instance.
2023-12-14 16:05:59 -05:00
JosJuice
84ac561e46
Merge pull request #12421 from lioncash/fwd
...
WC24PatchEngine: Move IniFile header dependency into the cpp file
2023-12-14 21:21:59 +01:00
JosJuice
e34bfe0f72
Merge pull request #12419 from lioncash/conf
...
SysConf: std::move fs pointer in constructor
2023-12-14 20:47:27 +01:00
Lioncash
88431cfbca
WC24PatchEngine: Make GetNetworkPatch() take a std::string_view
...
Makes it consistent with GetNetworkPatchByPayload()
2023-12-14 14:24:49 -05:00
Lioncash
fa70a8fd01
WC24PatchEngine: Make a few functions internally linked
...
These are only used within this translation unit, so we can remove the
IniFile dependency from the header.
2023-12-14 14:23:41 -05:00
OatmealDome
438c48912b
MTLStateTracker: Increase fragment buffer array size to 3
2023-12-14 14:17:07 -05:00
Lioncash
14abdab314
SysConf: std::move fs pointer in constructor
...
Just gets rid of a trivial atomic reference count increment and
decrement. Not a super heavyweight thing, but it is essentially "free"
to get rid of.
2023-12-14 14:01:17 -05:00
JosJuice
38752c91af
Merge pull request #12418 from lioncash/fifo
...
DolphinQt/Host: Convert inclusion of Fifo.cpp to Fifo.h
2023-12-14 19:56:32 +01:00
Lioncash
a20b4b5669
DolphinQt/Host: Convert inclusion of Fifo.cpp to Fifo.h
...
Quite a bizarre include.
Also resolves an indirect include (lol), since this TU was
including the system header that way.
2023-12-14 05:24:51 -05:00
Lioncash
6bbdf36a7b
GameListModel: Remove fallthrough in data()
...
A harmless case of it, but this can still cause warnings.
2023-12-14 04:25:40 -05:00
JosJuice
fe014dac06
Merge pull request #12369 from t895/coil-cache
...
Android: Allow Coil image cache to use more memory
2023-12-13 21:11:59 +01:00
Tilka
cdf4193e67
Merge pull request #12410 from lioncash/ignored
...
Common/Crypto: Resolve -Wignored-attributes warnings
2023-12-13 18:39:22 +00:00
Lioncash
dbc792a3ec
Common/Crypto/SHA1: Resolve -Wignored-attributes warnings
...
See commit 417d1310d22b11d5d724625721b5fec09eda099a for an explanation
on why we do this.
2023-12-13 13:04:53 -05:00
Lioncash
bced5fac18
Common/Crypto/AES: Resolve -Wignored-attributes warnings
...
The alias for __m128i is typically something like:
typedef long long __m128i __attribute__((__vector_size__(16), __may_alias__));
and the part that ends up not getting preserved is the __may_alias__
attribute specifier.
So, in order to preserve that, we can just use a wrapper struct, so the
data type itself isn't being passed through the template.
2023-12-13 13:02:51 -05:00
Tilka
b5d8498346
Merge pull request #12415 from lioncash/buffer
...
GBAWidget: Use std::span with SetVideoBuffer()
2023-12-13 15:57:40 +00:00
Tilka
df922afdbb
Merge pull request #12412 from lioncash/maybe
...
DSPInterpreter: Mark IsProperlySignExtended() as [[maybe_unused]]
2023-12-13 15:52:32 +00:00
Tilka
52a144745d
Merge pull request #12408 from lioncash/enums
...
General: Resolve -Wswitch warnings
2023-12-13 15:48:12 +00:00
Lioncash
dfb2783c25
GBAWidget: Add missing override specifiers
2023-12-13 10:12:18 -05:00
Lioncash
67a06d17b1
GBAWidget: Use std::span with SetVideoBuffer()
...
Previously we were always taking the buffer by value, even if it wasn't
being stored anywhere and only read from.
We can use a std::span for the same thing.
2023-12-13 10:11:52 -05:00
LillyJadeKatrin
aa3e1e2324
Retroachievements - Fixed Login Checks
...
Two fixes: verify that there's an API token before attempting to automatically log in, and don't attempt to hash a game and load it unless achievements are enabled and the player is logged in. This prevents multiple API requests that we already know will fail, one of which will display an unnecessary error message to the player.
2023-12-13 09:00:25 -05:00
vyuuui
feb831a781
Added assembler files to windows build
2023-12-13 05:33:04 -08:00
vyuuui
00e94d3630
Added tests
2023-12-13 05:32:47 -08:00
vyuuui
38c15df464
Parser and Assembler implementations
2023-12-13 05:32:20 -08:00
Lioncash
ecd7fa4380
DSPInterpreter: Mark IsProperlySignExtended() as [[maybe_unused]]
...
This function is used in debug asserts, so in release builds this will
go unused and otherwise generate a warning
2023-12-12 21:02:15 -05:00
Lioncash
e06480a8ab
Software/SWGfx: Default destructor in cpp file
...
Fixes a build failure with clang 17.
The destructor needs to be in the cpp file, since we have a forward
declared std::unique_ptr type as part of the class. So technically the
default inline destructor could invoke without seeing the full data type
definition.
2023-12-12 20:33:43 -05:00
iwubcode
b1d9e13d75
VideoCommon: prepare graphics mods for custom shader material data
2023-12-12 17:56:26 -06:00
Tilka
7b57a4a37d
Merge pull request #12407 from lioncash/unused2
...
CPUThreadConfigCallback: Mark static ID as [[maybe_unused]]
2023-12-12 23:38:47 +00:00
Mai
ea3033731d
Merge pull request #12240 from iwubcode/material_asset_additional_properties
...
VideoCommon: add additional data types to material asset
2023-12-12 18:38:20 -05:00
Lioncash
91f691296c
IOS/Crypto/Sha: Handle ShaCommandUnknown in IOCtlV
...
Resolves a -Wswitch warning.
2023-12-12 17:42:36 -05:00
Tillmann Karras
5b4b8dba61
VideoCommon: add message to XF load assert
2023-12-12 22:35:02 +00:00
Lioncash
c14b3539c9
CPUThreadConfigCallback: Mark static ID as [[maybe_unused]]
...
This isn't used, but is likely kept around so the one-timed execution of
a magic static is taken advantage of.
2023-12-12 17:30:37 -05:00
Tilka
53a51a6f1b
Merge pull request #12405 from lioncash/shadow2
...
General: Resolve lingering -Wshadow warnings
2023-12-12 22:20:23 +00:00
Tilka
8c99198251
Merge pull request #12404 from lioncash/guard
...
CheatSearchWidget: Make use of CPUThreadGuard parameter in UpdateTableRows()
2023-12-12 22:18:26 +00:00
Lioncash
e883bbc57a
ConfigFloatSlider: Resolve -Wshadow warning
...
Fairly straightforward variable shadowing.
2023-12-12 17:07:37 -05:00
Lioncash
79c84c98ed
WC24PatchEngine: Resolve -Wshadow warning
...
While not captured, we're definitely shadowing the result variable
outside the lambda.
2023-12-12 17:03:42 -05:00
Lioncash
81d5370141
HLE_OS: Resolve -Wshadow warnings
...
We get a warning about shadowing the va_list type and just
run-of-the-mill variable shadowing, which we can easily fix.
2023-12-12 17:01:32 -05:00
Lioncash
a812a1f938
LightingShaderGen: Resolve -Wshadow warnings
...
Given how the lambda doesn't capture anything, we can move this to a
internally linked function, which prevents any name shadowing.
2023-12-12 16:55:06 -05:00
Tilka
6184ec655e
Merge pull request #12403 from lioncash/uninit
...
PPCDebugInterface: Silence trivial -Wmaybe-uninitialized warning
2023-12-12 21:49:01 +00:00
Tilka
995eb779fa
Merge pull request #12402 from lioncash/shadow
...
AchievementManager: Resolve -Wshadow warnings
2023-12-12 21:42:21 +00:00
Lioncash
915e43dfba
CheatSearchWidget: Make use of CPUThreadGuard parameter in UpdateTableRows
...
Previously, the parameter wasn't being used, because it was being
shadowed by another CPUThreadGuard at its only would-be usage point.
2023-12-12 16:41:00 -05:00
Tilka
b4bfc4feba
Merge pull request #12401 from AdmiralCurtiss/feature-flag-fix
...
JitCommon: Fix feature_flags truncation in index calculation.
2023-12-12 20:56:04 +00:00
Tilka
8cbb2c2e44
Merge pull request #12399 from lioncash/erasing
...
General: Make use of std::erase_if/std::erase where applicable
2023-12-12 20:54:52 +00:00
Tilka
99959944eb
Merge pull request #12376 from lioncash/span2
...
VFFUtil: Use std::span with WriteToVFF
2023-12-12 20:50:17 +00:00
Tilka
4d98c237c7
Merge pull request #12371 from lioncash/span
...
VideoCommon: Use std::span for BoundingBox::Write()
2023-12-12 20:47:08 +00:00
Lioncash
b0b1308160
PPCDebugInterface: Silence trivial -Wmaybe-uninitialized warning
...
We can just initialize register_index, even if it gets overwritten later
on via Common::FromChars.
2023-12-12 15:42:28 -05:00
Tilka
7588f5e2da
Merge pull request #12395 from lioncash/test
...
VertexLoaderTest: Resolve -Wdangling-else warnings
2023-12-12 20:40:49 +00:00
Lioncash
18032f19a5
AchievementManager: Resolve -Wshadow warnings
...
Renames some variables to avoid shadowing warnings on gcc.
Also gets rid of a FilereaderState struct, since one is already defined
in the declaration of the AchievementManager class.
2023-12-12 15:37:20 -05:00
Admiral H. Curtiss
c1957ac169
JitCommon: Fix feature_flags truncation in index calculation.
2023-12-12 21:16:29 +01:00
Tilka
c92e402454
Merge pull request #12398 from lioncash/parse
...
RiivolutionParser: Make use of std::span where applicable
2023-12-12 20:07:44 +00:00
Tilka
198a53e7df
Merge pull request #12397 from lioncash/asset
...
CustomAssetLibrary: Remove unused GetAssetSize() function
2023-12-12 20:02:44 +00:00
Lioncash
ded2d55438
ExpressionParser: Avoid some miscellaneous copies
...
Just some trivial copies that can be eliminated or turned into moves.
2023-12-12 14:03:41 -05:00
Lioncash
a5bbeb721a
ExpressionParser: Mark constructors explicit where applicable
...
Makes for consistency with the surrounding code.
2023-12-12 14:00:27 -05:00
Lioncash
ea71a76ea9
ExpressionParser: Pass control qualifiers by const reference
...
These aren't necessarily cheap to copy, since a control qualifier will
have around 3 std::strings inside of it, so passing by value can churn
allocations a little bit.
2023-12-12 13:50:46 -05:00
Lioncash
9aea481e59
ExpressionParser: Make use of std::erase_if
2023-12-12 13:31:58 -05:00
Lioncash
196f8e5123
MappingCommon: Make use of std::erase_if
2023-12-12 13:31:18 -05:00
Lioncash
888a8692b4
SysConf: Make use of std::erase_if
2023-12-12 13:30:39 -05:00
Lioncash
01d15994fe
PatchEngine: Make use of std::erase
2023-12-12 13:30:08 -05:00
Lioncash
e69ac2d43e
Socket: Make use of std::erase_if
2023-12-12 13:29:33 -05:00
Lioncash
96eac73d11
NetKDRequest: Make use of std::erase
2023-12-12 13:27:54 -05:00
Lioncash
e7f7dde546
Formats: Make use of std::erase_if
2023-12-12 13:27:17 -05:00
Lioncash
df227aa03c
I2CBus: Make use of std::erase_if
2023-12-12 13:26:47 -05:00
Lioncash
ff0e7fbf08
GeckoCodeConfig: Make use of std::erase_if
2023-12-12 13:26:16 -05:00
Lioncash
84ae0c1c7e
ActionReplay: Make use of std::erase_if
2023-12-12 13:25:26 -05:00
Lioncash
50e4dc5dba
Watches: Make use of std::erase_if
2023-12-12 13:24:40 -05:00
Lioncash
b728e37086
RiivolutionParser: Remove usages of global system accessor
...
We can retrieve the encompassing system instance through the
CPUThreadGuard instance instead.
2023-12-12 12:48:40 -05:00
Lioncash
c2e39e0d68
RiivolutionParser: Make use of std::span where applicable
...
The main interface for these only take in patches and iterate over them
in a contiguous sequence, so we can reasonably generify the interface.
2023-12-12 12:38:43 -05:00
iwubcode
b69d336838
VideoCommon: update shader asset to provide a variant default value
2023-12-12 00:01:22 -06:00
Lioncash
4c7a4831cb
CustomAssetLibrary: Remove unused GetAssetSize() function
...
There's a direct analogue of this function within
DirectFilesystemAssetLibrary that *is* used, however, so we can get rid
of this one.
2023-12-11 22:00:52 -05:00
Admiral H. Curtiss
2c6bf2d224
Merge pull request #12394 from lioncash/compare
...
General: Resolve -Wsign-compare warnings
2023-12-12 03:43:12 +01:00
Lioncash
e011c3b383
Core/SyncIdentifier: Default operator==
...
Lets us remove a bunch of code and a dependency on the <tuple> header.
2023-12-11 19:39:55 -05:00
Tilka
6699acf10c
Merge pull request #12386 from lioncash/setting
...
Common/SettingsHandler: Minor convenience changes
2023-12-12 00:02:21 +00:00
Lioncash
4229d76ad6
VertexLoaderTest: Resolve -Wdangling-else warnings
...
The ways the assertion macros expand end up generating -Wdangling-else
warnings. Trivial enough to fix by just bracing the if statements.
2023-12-11 18:45:25 -05:00
Admiral H. Curtiss
f04d834e8f
Merge pull request #12393 from lioncash/tls
...
DolphinQT/Host: Remove unused TLS variable tls_is_host_thread
2023-12-12 00:29:21 +01:00
Lioncash
0e51c0f8fc
JitArm64_RegCache: Resolve -Wsign-compare warning
2023-12-11 18:15:50 -05:00
Lioncash
4c3a5eb1c5
JitArm64_SystemRegisters: Resolve -Wsign-compare warning
2023-12-11 18:11:34 -05:00
Lioncash
017b9a0af7
FloatUtilsTest: Resolve -Wsign-compare warning
2023-12-11 18:08:52 -05:00
Lioncash
4bef3b93b4
AndroidCommon: Resolve -Wsign-compare warning
2023-12-11 18:06:40 -05:00
Lioncash
f97316a1e6
TraversalClient: Resolve -Wsign-compare warning
2023-12-11 18:01:29 -05:00
Lioncash
49f44c1334
VertexManagerBase: Resolve -Wsign-compare warning
2023-12-11 18:00:34 -05:00
Admiral H. Curtiss
b48af86148
Merge pull request #12390 from lioncash/string
...
GraphicsModListWidget: Add string specifier to By and Description fields
2023-12-11 23:47:53 +01:00
Admiral H. Curtiss
4f02f526b8
Merge pull request #12392 from lioncash/decl
...
General: Resolve -Wmissing-declaration warnings
2023-12-11 23:39:23 +01:00
Admiral H. Curtiss
54301d709a
Merge pull request #12389 from lioncash/cheeve
...
AchievementManager: Make GetInstance() and GetLock() return a reference
2023-12-11 23:37:29 +01:00
Lioncash
f490b990f5
DolphinQT/Host: Remove unimplemented prototypes
...
Remnants of prior existing code.
2023-12-11 17:30:56 -05:00
Lioncash
d705c31d1a
DolphinQT/Host: Remove unused TLS variable tls_is_host_thread
...
This is never accessed or read from.
2023-12-11 17:27:57 -05:00
Admiral H. Curtiss
16ba56a34b
Merge pull request #12388 from lioncash/compare
...
GameFile: Default GameBanner operator==
2023-12-11 23:25:27 +01:00
Lioncash
e8b4796273
PostProcessing: Mark helper functions as static
...
These didn't have any prototypes and were generating
-Wmissing-declaration warnings.
2023-12-11 17:07:59 -05:00
Lioncash
abb5cc3a3a
ShaderAsset: Mark ParseShaderProperties() as static
...
This had no function prototype, so this can be internally linked.
Resolves a -Wmissing-declaration warning.
2023-12-11 17:05:06 -05:00
Lioncash
b4b624b97b
WC24PatchEngine: Mark LoadPatches() as static
...
Resolves a -Wmissing-declaration warning, since no prototype existed for
the function.
2023-12-11 17:02:15 -05:00
Lioncash
2b2ee61e79
CustomShaderCache: Resolve -Wreorder warnings
...
Lays out the initializer lists to be in the same order that
initialization would occur in.
2023-12-11 16:59:03 -05:00
Lioncash
9472da788d
ConfigFloatSlider: Resolve -Wreorder warnings
...
Orders the initializer list the way that the members would actually be
initialized in.
Resolves some -Wreorder warnings
2023-12-11 16:15:48 -05:00
Admiral H. Curtiss
dd0ac7d53c
Merge pull request #12387 from lioncash/cache
...
GameFileCache: Pass std::function by reference rather than by value
2023-12-11 21:46:59 +01:00
Lioncash
5d1514418e
GraphicsModListWidget: Add string specifier to By and Description fields
...
Translators should always know where text is going to be appended and
have the ability to move things around to fit the language better.
2023-12-11 15:43:41 -05:00
Lioncash
d90537cc18
AchievementManager: Return by reference from GetLock()
...
This makes the API a little nicer to use, since you don't need to do
a mandatory dereference when passing the lock into any kind of scope
guard.
2023-12-11 13:51:50 -05:00
Lioncash
3c7fa0738c
AchievementsWindow: Add missing override specifier
2023-12-11 13:47:59 -05:00
Lioncash
dbf28df64c
DolphinQT: Remove unnecessary includes from achievement files
...
Reduces the amount of dependencies being pulled in on both local and
external headers.
2023-12-11 13:40:55 -05:00
Lioncash
e55f9ed102
AchievementManager: Make GetInstance() return a reference
...
The internal static member will always have a valid lifetime. Makes this
consistent with other instance based objects in our code.
2023-12-11 13:36:39 -05:00
JosJuice
f87a4f0385
Merge pull request #12383 from iwubcode/android_new_sdk_for_cpp20
...
Android: update NDK to 26.1.10909125 in order to pick up new compiler features
2023-12-11 19:16:32 +01:00
Lioncash
cdf8849e17
GameFile: Default GameBanner operator==
...
Same behavior, but less code.
2023-12-11 11:36:35 -05:00
Lioncash
ff38362216
GameFileCache: Use std::span with Update()
...
All we're really doing is iterating over a sequence of strings, so we
don't need to tie this specifically to std::vector.
2023-12-11 11:12:09 -05:00
Lioncash
2ca80adeb2
GameFileCache: Pass std::function by reference rather than by value
...
std::function is internally allowed to allocate, and these functions
aren't being stored anywhere (only called), so we can freely get rid
of some minor overhead here by passing by reference.
This change also creates aliases for the functions, so that there isn't
a lot of visual noise when reading the function signatures.
2023-12-11 11:09:18 -05:00
Lioncash
88a973131c
Common/SettingsHandler: Use std::string_view more
...
We don't need to enforce the use of std::string instances with
AddSetting(). We can accept views and only construct one string,
rather than three temporaries.
2023-12-11 07:54:43 -05:00
Lioncash
04b9f6c28d
Common/SettingsHandler: Use std::erase in Decrypt()
...
Same behavior, way less verbose code.
2023-12-11 07:49:43 -05:00
Mai
d84ed054ee
Merge pull request #12374 from iwubcode/custom_texture_potential_crash_fix
...
VideoCommon: prevent a potential custom texture crash
2023-12-11 07:42:48 -05:00
Admiral H. Curtiss
694b3b4ea1
HW/CEXIIPL: Fix loading files at nonzero offset in LoadFileToIPL().
2023-12-11 02:22:06 +01:00
Mai
c2b642d0b7
Merge pull request #12381 from AdmiralCurtiss/re-enable-achievement-nag
...
AchievementManager: Only nag user about disabled achievements when they were actually enabled before.
2023-12-10 20:16:24 -05:00
Mai
bdd28f1f26
Merge pull request #12378 from JosJuice/jitarm64-a-early-discard
...
JitArm64: Add additional condition for lmw/stmw a discard
2023-12-10 20:15:57 -05:00
iwubcode
b27cf432eb
Android: update NDK to 26.1.10909125 in order to pick up new compiler with more C++20 features
2023-12-10 19:14:29 -06:00
iwubcode
3658d3bffe
VideoCommon: add ability to serialize graphics mod to json object
2023-12-10 18:29:21 -06:00
iwubcode
ac862b04ab
VideoBackends / VideoCommon: update max pixel shader samplers from 8 to 16, this allows us to support more samplers than the native Wii/GC
2023-12-10 18:14:02 -06:00
Admiral H. Curtiss
70cd0040a3
AchievementManager: Only nag user about disabled achievements when they were actually enabled before.
2023-12-10 21:10:49 +01:00
JosJuice
c55f21729f
Add "large entry points map" setting
...
To aid in debugging, this makes it possible to disable the recently
added 32/64 GiB region which hasn't had a proper name so far.
2023-12-10 21:07:27 +01:00
JosJuice
0ec12f9e7e
JitArm64: Add additional condition for lmw/stmw a discard
...
If a is one of the registers that will be loaded/stored, we must not
discard it early. Sorry for this fixup of a fixup...
2023-12-10 19:13:35 +01:00
Mai
db1620db42
Merge pull request #12377 from JosJuice/jitarm64-a-d-discard-guard
...
JitArm64: Guard against discarding a in lmw/stmw
2023-12-10 12:19:41 -05:00
JosJuice
13a4f1b799
JitArm64: Guard against discarding a in lmw/stmw
...
If a_is_addr_base_reg is true, discarding a before the end of the
instruction would result in the instruction being miscompiled.
2023-12-10 17:58:15 +01:00
OatmealDome
d272b0ef84
Merge pull request #12183 from t895/gradle-kotlin-dsl
...
Android: Gradle updates
2023-12-10 11:17:56 -05:00
Lioncash
f4b1a199e8
VFFUtil: Use std::span with WriteToVFF
...
Same behavior, but allows different containers to be used.
In one case it also gets rid of needing to construct a std::vector.
2023-12-10 10:17:39 -05:00
Mai
e2472e4f50
Merge pull request #12352 from JosJuice/jitarm64-flush-in-long-inst
...
JitArm64: Flush in the middle of lmw/stmw/mfcr
2023-12-10 09:15:07 -05:00
Mai
f249e414ad
Merge pull request #12366 from AdmiralCurtiss/exi-ipl-fixes
...
HW/CEXIIPL: Various fixes.
2023-12-10 09:12:18 -05:00
Admiral H. Curtiss
a0da6788a3
MMU: Use MSR.IR for instruction reads.
2023-12-10 14:18:25 +01:00
Admiral H. Curtiss
c12725c916
MMU: Assert that the given XCheckTLBFlag is valid for the operation.
2023-12-10 14:18:25 +01:00
Admiral H. Curtiss
0d6a0724fd
MMU: Always use data read for the PTE lookup in TranslatePageAddress.
2023-12-10 14:18:24 +01:00
Admiral H. Curtiss
5d2fc0147e
MMU: Mark IsOpcodeFlag() and IsNoExceptionFlag() as constexpr.
2023-12-10 14:18:24 +01:00
Admiral H. Curtiss
8194b53166
HW/CEXIIPL: Check for errors when reading font.
2023-12-10 14:17:38 +01:00
Admiral H. Curtiss
57e166dbef
HW/CEXIIPL: Consider that the loaded file may not actually contain a nullterminated string.
2023-12-10 14:17:37 +01:00
Admiral H. Curtiss
7d53916466
HW/CEXIIPL: Respect bounds in LoadFileToIPL().
2023-12-10 14:17:37 +01:00
Admiral H. Curtiss
f284bfca45
Merge pull request #12336 from AdmiralCurtiss/lazymemory-ringbuffer
...
Common/MemArenaWin: Rewrite LazyMemoryRegion by repeatedly mapping the same block of memory for unwritten regions.
2023-12-10 13:00:09 +01:00
JosJuice
ab4f4c62ee
Android: Fix crash when trying to edit gate size setting
...
The gate size is 79.37125 by default, and the step size is 0.5. Android
throws an exception if we try to show the slider with the value set to
something that isn't divisible by the step size. To avoid this problem,
round the value.
2023-12-10 10:49:16 +01:00
iwubcode
02756be381
VideoCommon: prevent a potential custom texture crash that can occur when a shared_ptr gets released while a pointer to its member data is still being used
2023-12-09 23:43:40 -06:00
Admiral H. Curtiss
ccedeb4936
Merge pull request #12373 from lioncash/present
...
VideoCommon/Present: Remove use of g_presenter inside Presenter class
2023-12-10 03:55:30 +01:00
Lioncash
0df7908025
VideoCommon/Present: Remove use of g_presenter inside Presenter class
...
There's no need to self reference a global of the class itself when we
can just call the function directly.
2023-12-09 20:15:32 -05:00
Lioncash
5f6c76af51
VideoCommon: Use std::span for BoundingBox::Write()
...
Crosses off a lingering TODO.
Also amends a few nearby cases where a u32 cast was being repromoted to
size_t.
2023-12-09 16:33:21 -05:00
Charles Lombardo
93a5df3b92
android: Compile and target Android 14
2023-12-09 15:44:29 -05:00
Charles Lombardo
5d2e3de576
android Update dependencies
2023-12-09 15:44:29 -05:00
Charles Lombardo
c5d81c1006
android: Regenerate baseline profile module for AGP 8.2.0
2023-12-09 15:44:29 -05:00
Charles Lombardo
7d4db6603b
android: Update AGP to 8.2.0
...
Also updates gradle to 8.2 as that is the minimum required version for AGP 8.2.0
2023-12-09 15:44:29 -05:00
Admiral H. Curtiss
3364d571cc
Common/MemArenaWin: Rewrite LazyMemoryRegion to manually map memory blocks into the large memory region as needed.
...
Internal details: The large region is split into individual same-sized blocks of memory. On creation, we allocate a single block of memory that will always remain zero, and map that into the entire memory region. Then, the first time any of these blocks is written to, we swap the mapped zero block out with a newly allocated block of memory. On clear, we swap back to the zero block and deallocate the data blocks. That way we only actually allocate one zero block as well as a handful of real data blocks where the JitCache actually writes to.
2023-12-09 21:11:31 +01:00
Admiral H. Curtiss
eb235d6ee3
Common/MemArenaWin: Move the advanced Windows memory function address initialization into its own struct and function so it can be reused.
2023-12-09 20:58:07 +01:00
Charles Lombardo
001089dbf4
android: Convert gradle files to kotlin gradle dsl
2023-12-09 14:57:09 -05:00
Charles Lombardo
57b33e9142
android: Remove benchmark module
2023-12-09 14:57:09 -05:00
t895
42a4630245
Android: Allow Coil image cache to use more memory
...
Allows the Coil memory cache to use up to 90% of the application's available memory. Previously this could cause problems with reloading images in very large libraries of games.
2023-12-09 14:55:58 -05:00
Admiral H. Curtiss
6197902dc3
IOS/KD/Mail: Add missing includes.
2023-12-09 17:07:03 +01:00
Mai
dd227fea5a
Merge pull request #12364 from JosJuice/android-emulation-settings-reload
...
Android: Fix crash after process recreation
2023-12-08 21:24:05 -05:00
Mai
636b892b7c
Merge pull request #12360 from TryTwo/bugfix_wiimote_signal_spam
...
WiimoteDevice. Bugfix. Remove signal spam while starting a game.
2023-12-08 21:07:51 -05:00
timetravelthree
3b8737d2d7
Fix out of bound write in EfbCopy::ClearEfb
2023-12-09 02:15:42 +01:00
JosJuice
a4eff2acc1
Android: Don't call Run before directory initialization
...
Combined with the previous commits, this finally fixes the bug where
Dolphin had a chance of crashing if you returned to it after Android
killed the Dolphin process.
2023-12-08 19:36:11 +01:00
JosJuice
a31214b8c6
Android: Fix EmulationActivity's handling of process recreation
2023-12-08 19:31:12 +01:00
JosJuice
5aa80603d7
Android: Reload EmulationActivity settings on title change
...
This way, we ensure that game INI settings are properly applied. I don't
think we actually expose the affected settings on a per-game basis in
the UI, but still.
2023-12-08 17:57:30 +01:00
JosJuice
11041e950d
Android: Combine reading cutout setting with updateOrientation
2023-12-08 17:56:29 +01:00
CasualPokePlayer
13bf75b1df
Add SYSCONF widescreen setting to dtm header
2023-12-08 01:27:57 -08:00
LillyJadeKatrin
e992225b88
Bugfix - small square in bottom right corner
...
Fixed a bug in OSUI created by the challenge icons that caused a small rectangle to appear in the bottom right corner of the screen.
2023-12-08 00:33:29 -05:00
Mai
e0f4111561
Merge pull request #11663 from JosJuice/android-config-change-callback
...
Android: Use config changed callback for tracking recursive scan setting
2023-12-07 16:48:02 -05:00
Mai
3a4cf579ff
Merge pull request #12247 from LillyJadeKatrin/retroachievements-challenges
...
RetroAchievements - Challenge Icons
2023-12-07 16:46:43 -05:00
LillyJadeKatrin
caa729f84a
Display Active Challenges On Screen
...
The active challenges, aka the primed achievements, are displayed on screen as a series of icons in the bottom right corner of the screen via OnScreenUI.
2023-12-07 16:02:15 -05:00
JosJuice
4203632c93
Android: Improve GameFileCacheManager comments
2023-12-07 21:09:17 +01:00
JosJuice
3e7a16f225
Android: Use config changed callback for tracking recursive scan setting
...
This way the Settings class doesn't contain a hardcoded reference to
a specific setting. And Settings.loadSettings no longer calls
getBoolean, which is a step towards fixing the crash when recreating
EmulationActivity after process death.
2023-12-07 21:09:17 +01:00
JosJuice
d80f9d53fc
Android: Expose config changed callbacks
2023-12-07 21:09:17 +01:00
TryTwo
6bd9488e0a
WiimoteDevice. bugfix. Remove signal spam while starting a game.
...
Emulation state changed signals also update the wiimote connection. The signal here is only needed for wiimote connects/disconnects.
Can fix erroneous debugger behavior during booting, as dolphin will sometimes incorrectly report the state as paused, which leads the debugger widgets to run when they shouldn't.
2023-12-07 12:15:57 -07:00
rsgnz
8c973188ef
Fix "Post-processing shader not found" when (off) is selected. (2nd version)
2023-12-07 11:26:31 +01:00
Mai
2ece642cf8
Merge pull request #12357 from AdmiralCurtiss/ipl-bounds
...
Core/Boot: Check bounds in Load_BS2().
2023-12-06 19:57:26 -05:00
LillyJadeKatrin
8fbc5960e7
Handle Achievement Un/Primed Events
...
When an achievement is "primed", a challenge is active, for example completing a portion of the game in under a time limit or without taking damage or using certain items. This is stored in a map in the Achievement Manager (and removed when the achievement is unprimed) so a later commit can display it on screen.
2023-12-06 08:21:06 -05:00
Admiral H. Curtiss
fff538e563
Core/Boot: Check bounds in Load_BS2().
2023-12-05 22:34:35 +01:00
LillyJadeKatrin
2bf6ebcb90
Added achievement hash to non-disc boot paths.
2023-12-05 16:17:18 -05:00
LillyJadeKatrin
ebf2ef1d82
Refactored hash process to check prior game ID
...
If the new game ID is a different title than the previous game ID, the achievement manager is compromised.
2023-12-05 16:17:18 -05:00
LillyJadeKatrin
c8d8ca2ff7
Added Disabled flag to Achievement Manager
...
The Disabled state sits between Game Closed and completely Shutdown - stronger than the former, as it refuses to let a game be opened again until AchievementManager is restored (which only happens upon a fresh core boot) but it isn't completely shut down and will still allow the player to be logged in and access the achievement settings and their (global) achievement header.
2023-12-05 16:17:17 -05:00
LillyJadeKatrin
148c2f3c0d
Refactored AchievementManager hash code to take a volume.
...
This change splits LoadGameAsync into three methods: two HashGame methods to accept either a string filepath or a volume, and a common LoadGameSync that both HashGames call to actually process the code. In the process, some minor cleanup, and the hash resolution now takes place on the work queue asynchronously.
2023-12-05 16:17:11 -05:00
Mai
a65246ec3f
Merge pull request #11988 from JosJuice/jit-feature-flags
...
Jit: Replace "msrBits" with "featureFlags" and use for performance monitor
2023-12-05 03:13:50 -05:00
Mai
2199dd26bb
Merge pull request #12345 from minhaferzz/startup-handler
...
Android: Fix issue when launching a game when Dolphin is not open
2023-12-05 03:10:41 -05:00
Mai
6e6695c24b
Merge pull request #11904 from LillyJadeKatrin/retroachievements-hardcore-v2
...
RetroAchievements - Hardcore Mode (V2)
2023-12-05 01:31:54 -05:00
Tilka
7dfea144b9
Merge pull request #12324 from Pokechu22/vertex-loader-dummy-tex-coords
...
VertexLoader: Fixes and cleanup related to skipped components
2023-12-04 13:06:19 +00:00
iwubcode
e204b3c8ee
VideoCommon: add additional data types (int, int2, float, bool, etc) as properties of materials and some helper functions to support sending the data to the GPU
2023-12-04 00:12:31 -06:00
Pokechu22
1c62ebc9fb
Use ExtensionNumber in Movie.cpp
2023-12-03 11:36:54 -08:00
JosJuice
8368a397ee
JitArm64: Flush in the middle of lmw/stmw/mfcr
...
Normally we only flush registers right at the end of each PPC
instruction. However, for PPC instructions that use a lot of registers
one at a time, it's beneficial to do this flushing work in the middle
of the instruction instead, reducing the risk of register starvation
and improving pipelining.
2023-12-03 18:42:42 +01:00
Mai
27be8c087e
Merge pull request #12295 from sepalani/arp-check
...
BBA/HLE: Fix GC homebrew if_config not working
2023-12-03 11:26:00 -05:00
Mai
98eda4dc9f
Merge pull request #12351 from TryTwo/bugfix_data_symbols
...
PPCSymbolDB. Bugfix. Fix .data symbols not loading
2023-12-03 11:17:44 -05:00
JosJuice
05864ceddd
PPCAnalyst: Clear crInUse on HLE
...
This should have been done when rebasing 6cc4f593e5
after the merge of
3a00ff625e
. There are no correctness implications as far as I know,
only very minor performance implications.
2023-12-03 14:20:45 +01:00
TryTwo
92532c8d3a
PPCSymbolDB. Bugfix. Fix .data symbols not loading, unless they were aligned to 4 bytes.
...
.data symbols point to memory values and can be any byte or length of bytes (such as a string).
2023-12-03 00:03:28 -07:00
Pokechu22
69cf8b3470
VertexLoader: Use Common::SmallVector
2023-12-02 15:54:52 -08:00
Pokechu22
4116344785
VertexLoader: Remove unnecessary calls to VertexLoader_TextCoord::GetDummyFunction
2023-12-02 15:54:52 -08:00
Pokechu22
36796abc08
VertexLoader: Fix wrong array being used if color 1 is present but color 0 isn't
...
This worked correctly on the JIT vertex loaders, and for the equivalent case with texture coordinates. I'm not aware of any games this affects (but libogc does mention a semi-related scenario at 6bc0317c7d/gc/ogc/gx.h (L1855-L1857)
.)
2023-12-02 15:54:52 -08:00
Pokechu22
1ee6824324
VertexLoaderTest: Add test for skipped texture coordinates
...
Jimmie Johnson's Anything with an Engine is known to use texture coordinate 7 (and only texture coordinate 7) in some cases. There are a lot of possible edge-cases, so this test brute-forces all combinations with coordinates 0, 1, and 2.
2023-12-02 15:54:52 -08:00
Pokechu22
530590d162
VertexLoaderTest: Add test for skipped colors
...
This test fails with the non-JIT vertex loader due to an issue fixed in a later commit in this PR. (Note that the non-JIT vertex loader is only used on machines where no JIT is available or if COMPARE_VERTEXLOADERS is enabled in VertexLoaderBase.cpp.)
2023-12-02 15:53:59 -08:00
Mai
4f3f208fe4
Merge pull request #12348 from JosJuice/jitarm64-imm-msr-fastmem
...
JitArm64: Fix updating MEM_REG with imm MSR without fastmem
2023-12-02 17:53:28 -05:00
LillyJadeKatrin
2cb14edafa
Add Hardcore switch to Achievement Settings dialog
...
This adds the actual switch to turn on Hardcore Mode to the settings tab of the Achievements dialog. It is accompanied by a large tooltip warning explaining what it does and when it can be enabled.
The switch is only enabled to be turned on when no game is running, so that games are started in hardcore mode and can only be loaded via the console's memory card, as in the original hardware. Hardcore may be turned off while a game is running, but cannot be turned back on until the game is disabled.
The toggle trigger for hardcore mode also automatically disables the settings that are not allowed during hardcore mode.
Finally, the original flag in AchievementSettingsWidget to set whether things are enabled in hardcore mode (primarily Leaderboards) is replaced with the actual Hardcore Mode setting.
2023-12-02 16:41:17 -05:00
LillyJadeKatrin
6f7e02e201
Disable TAS recording playback in hardcore mode
...
Play Input Recording would potentially unlock achievements without any player input and needs to be disabled. If a recording is already playing, hardcore mode cannot be enabled.
2023-12-02 16:41:17 -05:00
LillyJadeKatrin
3aebbbb3e7
Disable cheats in hardcore mode
...
RetroAchievements does not allow cheats such as Action Replay or Gecko in hardcore mode, for fairness.
2023-12-02 16:41:17 -05:00
LillyJadeKatrin
0abfa94bc8
Disable Freelook in hardcore mode
...
The player getting a better view of their surroundings than the game would normally allow could possibly give the player an advantage over the original hardware, so Freelook is disabled in hardcore mode. To do this, I disable the config flag for Freelook when it is accessed, to make sure that it is disabled whether it was enabled before or after hardcore mode was enabled.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin
1a19a92943
Disable memory patches in hardcore mode
...
Memory patches would be an easy way to manipulate the memory needed to calculate achievement logic, so they must be disabled. Riivolution patches that do not affect memory are allowed, as they will be hashed with the game file.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin
cb2fa9a1f2
Disable Debug Mode in hardcore mode
...
Debug Mode gives players direct read and write access to memory, which could be used to completely manipulate RetroAchievements logic and therefore is not allowed in hardcore mode.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin
c20258d782
Disable slowdown in hardcore mode
...
Slowing down the emulator would artificially improve reaction times and is therefore disallowed in hardcore mode. Speeds faster than 1x are allowed, but any speed below 1x is scaled back up to 1x.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin
45105822f3
Disable frame advance in hardcore mode
...
Frame advancing is easily exploitable for slowing down a game and artificially improving reaction times and is not allowed in RetroAchievements hardcore mode.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin
2c40d6ba31
Disable loading state in hardcore mode
...
While saving states is allowed (especially for the purpose of debugging), RetroAchievements does not allow loading saved states when hardcore mode is on.
2023-12-02 16:41:15 -05:00
LillyJadeKatrin
71f3039f96
Added Hardcore Warning Widget
...
This widget will be used in several places to notify the player that a feature has been disabled because hardcore mode is on. It includes a button to open the Achievement Settings so that Hardcore Mode may be turned off. Also included is the framework required to open AchievementsWindow specifically on the Settings tab.
2023-12-02 16:41:15 -05:00
LillyJadeKatrin
138e68ef9f
Added Hardcore flag to Achievement Settings
...
Hardcore Mode is a RetroAchievements feature for enabling as close to original hardware as possible, to keep a fair, challenging, and competitive playing field for achievements (which get tallied differently and emphasized more in hardcore) and leaderboards (where it is mandatory) at the cost of several common emulator features that provide advantages, such as state loading and slower emulation speeds.
This commit just adds the flag to the AchievementSettings, with more to come.
2023-12-02 16:41:15 -05:00
JosJuice
253afee315
JitArm64: Fix updating MEM_REG with imm MSR without fastmem
...
Dolphin would crash when running with a fastmem arena but without
fastmem. This regression was caused by merging 9192128c50
without
adapting it after the merge of 0606433404
.
2023-12-02 17:26:33 +01:00
Admiral H. Curtiss
85f4a460f9
Merge pull request #12184 from noahpistilli/kd-mail-send
...
IOS/KD: Implement Send Mail
2023-12-02 17:15:56 +01:00
Admiral H. Curtiss
a753022aa7
Merge pull request #12344 from noahpistilli/kd-download-time-fix
...
IOS/KD: Set download span if download task not found
2023-12-02 17:13:45 +01:00
Sketch
e07087e43c
IOS/KD: Set download span if download task not found
2023-12-01 23:15:27 -05:00
Minh Truong
4b91bf48f5
Finish parent activity after directory initializer completes
...
Add frontIntent flag to control activity.finish()
Moved parent activity finish inside of performLaunchChecks
2023-12-01 15:12:10 -06:00
JosJuice
b1987d0187
JitArm64: Use ADDI2R for psq_lXX/psq_stXX immediate offsets
...
This simplifies the source code, and slightly improves the emitted code
in some cases.
2023-12-01 21:31:11 +01:00
JosJuice
67791d227c
JitArm64: Add special zero case to ADDI2R
...
This normally doesn't reduce the instruction count, but is nonetheless
useful on CPUs that can do 0-cycle moves.
2023-12-01 21:31:11 +01:00
JosJuice
25ffb0dbfc
JitArm64: Mask input to 32-bit ADDI2R
...
In case the input was a s32 that got sign extended as part of conversion
to u64.
2023-12-01 21:26:37 +01:00
iwubcode
d57c1cbe6c
Android / Core / DolphinQt: disable arbitrary mipmap detection by default, let the games that need it be enabled with a config option, there aren't many of them
2023-12-01 14:23:56 -06:00
Sketch
b46fcf9032
IOS/KD: Implement Send Mail
2023-12-01 19:55:32 +01:00
Sketch
2c3d05423d
IOS/KD/VFF: Implement reading from VFF
2023-12-01 19:53:01 +01:00
Sketch
0d908a83e7
Common/HTTP: Implement Multiform
2023-12-01 19:52:21 +01:00
Mai
5f7e9d3bf1
Merge pull request #12320 from JosJuice/jitarm64-mmu-order
...
PowerPC: Unify "FromJit" MMU functions
2023-11-30 18:34:32 -05:00
Mai
d85cb749c0
Merge pull request #11382 from skyfloogle/traversal-fix-2
...
Traversal: Use low TTL for probe packet
2023-11-30 18:03:50 -05:00
Mai
d67f54b175
Merge pull request #12186 from TellowKrinkle/MultiTextureComputeMetal
...
VideoBackends:Metal: Support multiple compute textures
2023-11-30 17:46:02 -05:00
JosJuice
94b31eb4f4
Jit: Replace MSR/MMCR access with feature_flags access
...
This has the same effect in the end, but in my opinion, doing it this
way makes it more clear for the reader why we can read from ppcState at
JIT time, something that makes no sense for everything else in ppcState.
2023-11-30 22:40:36 +01:00
JosJuice
62787085e1
Jit: Add feature flag for performance monitor
...
By making the JIT cache check if the current state of MMCR0 and MMRC1
matches the state they had at the time the JIT block was compiled, we
solve a correctness issue (marked in a comment as a speed hack).
Not known to affect any games.
2023-11-30 22:40:36 +01:00
JosJuice
ca7e05bbc4
Jit: Replace "msrBits" with "featureFlags"
...
Preparation for the next commit.
2023-11-30 22:40:32 +01:00
JosJuice
4b50a38cf6
JitArm64: Fix JitAsm without entry points map
...
This must have broken in a rebase of one of my recently merged PRs.
Dolphin still worked correctly with this bug, for two reasons:
1. Most AArch64 users are not on Windows, and therefore normally do have
the entry points map.
2. When the bug was triggered, Dolphin would fall back to the slower
path rather than crashing.
2023-11-30 20:11:02 +01:00
TellowKrinkle
394dd02d0a
VideoBackends:Metal: Support multiple compute textures
2023-11-29 18:45:11 -06:00
TellowKrinkle
a399dc43a1
VideoBackends:Metal: Align utility uniform sizes
...
Prevents complaining from validation layers
2023-11-29 18:45:11 -06:00
Mai
89963c287c
Merge pull request #11958 from JosJuice/jitarm64-dispatcher-microopt
...
JitArm64: Dispatcher optimizations
2023-11-29 16:54:09 -05:00
JosJuice
bddcf60673
PPCAnalyst: Don't discard CR before gather pipe interrupt check
...
This fixes a frequently occurring JitArm64 assert caused by merging
6cc4f593e5
without adapting it to the changes made in 5902b5b113
.
2023-11-29 21:53:13 +01:00
JosJuice
06c7862160
JitArm64: Rearrange dispatcher instructions to improve scheduling
...
Loads can take a little while to complete.
2023-11-29 19:13:09 +01:00
JosJuice
9e970bcb30
JitArm64: Optiming shifting and masking PC in slow dispatcher
...
Instead of shifting left by 1, we can first shift right by 2 and then
left by 3. This is both faster and smaller, because we get the right
shift for free with the masking and the left shift for free with the
address calculation. It also happens to match the pseudocode more
closely, which is always nice for readability.
2023-11-29 19:13:09 +01:00
JosJuice
c9347a2a19
JitArm64: Use LDP in slow dispatcher
...
With one LDP instruction, we can replace two LDR instructions.
2023-11-29 19:13:09 +01:00
JosJuice
4a4e7d9b8a
Jit: Swap locations of effectiveAddress and msrBits
...
This slightly improves instruction-level parallelism in Jit64's slow
dispatcher by shifting the PC left instead of the MSR.
In the past, this also enabled an optimization in JitArm64's fast path
where we could use LDP to load normalEntry and msrBits in one
instruction, but this was superseded by fd9c970
.
2023-11-29 19:13:09 +01:00
JosJuice
3df09f349d
JitArm64: Prefer X8 and up for temporary registers in JitAsm
...
Just to make the code easier to understand at a glance. I especially
found it a bit annoying to reason about whether callee-saved registers
like W28 were being used because we needed a callee-saved register or
just for no reason in particular.
X8 and up is what compilers normally use when they're not register
starved.
2023-11-29 19:13:03 +01:00
Mai
0a62b30cd4
Merge pull request #11906 from noahpistilli/request-register-user-id
...
IOS/KD: Implement Request Register User ID
2023-11-29 03:31:59 -05:00
Mai
02de58eb2c
Merge pull request #12337 from Tilka/imm16
...
Jit64: fix invalid instruction encoding
2023-11-29 01:10:22 -05:00
Tillmann Karras
f6131e9703
Jit64: fix invalid instruction encoding
...
This is a recent regression introduced in
c70dcf99dd
.
2023-11-29 05:49:02 +00:00
Mai
a7216a3035
Merge pull request #9857 from JosJuice/jitarm64-cr-analysis
...
PPCAnalyst: Allow more reordering of CR operations
2023-11-28 21:01:07 -05:00
Sketch
f2607cdd74
IOS/KD: Implement Request Register User ID
2023-11-28 20:40:15 -05:00
Mai
b7435be90a
Merge pull request #12298 from Shoegzer/master
...
Update default IP for HLE BBA
2023-11-28 22:45:17 +01:00
Mai
d095bddbe7
Merge pull request #12141 from JosJuice/jit-blr-msr
...
Jit: Check MSR state in BLR optimization
2023-11-28 22:35:35 +01:00
JosJuice
fc95d59805
JitArm64: Further optimize NaN handling in ps_sumX
...
So short that using farcode is pointless!
2023-11-28 21:45:44 +01:00
JosJuice
8274dcbfe4
JitArm64: Skip checking last input for NaN for non-SIMD operations
...
AArch64's handling of NaNs in arithmetic instructions matches PowerPC's
as long as no more than one of the operands is NaN. If we know that all
inputs except the last input are non-NaN, we can therefore skip checking
the last input. This is an optimization that in principle only works for
non-SIMD operations, but ps_sumX effectively is non-SIMD as far as the
arithmetic part of it is concerned, so we can use it there too.
2023-11-28 21:45:40 +01:00
Mai
95f06ef231
Merge pull request #12122 from JosJuice/jit-imm-msr
...
Jit: Handle imm msr in EmitStoreMembase
2023-11-28 21:34:23 +01:00
Mai
8cf0597d5f
Merge pull request #12091 from JosJuice/jitarm64-skip-quiet-bit
...
JitArm64: Use one instruction for making NaNs quiet
2023-11-28 21:33:25 +01:00
Mai
e99ead0a68
Merge pull request #12124 from JosJuice/jitarm64-mfsrin-mtsrin-addr
...
JitArm64: Optimize mfsrin/mtsrin address calculations
2023-11-28 21:30:30 +01:00
Mai
b53ecd73fb
Merge pull request #12143 from JosJuice/jitarm64-loadstore-pc
...
JitArm64: Write PC when calling MMU.cpp
2023-11-28 21:29:37 +01:00
Mai
1df685b2d7
Merge pull request #12123 from JosJuice/jit-mcrxr
...
Jit: Some mcrxr optimizations
2023-11-28 19:32:47 +01:00
Mai
20b13df507
Merge pull request #12179 from JosJuice/jitarm64-gp-deduplicate
...
JitArm64: Deduplicate the gather pipe exception check
2023-11-28 19:21:58 +01:00
Mai
ac53766058
Merge pull request #12215 from JosJuice/android-si-devices
...
Android: Add more GameCube controller types
2023-11-28 19:21:29 +01:00
JosJuice
80171adf1e
PPCTables: Retire FL_EVIL
...
FL_EVIL is only used for blocking instructions from being reordered.
There are three types of instructions which have FL_EVIL set:
1. CR operations. The previous commits improved our CR analysis
and removed FL_EVIL from these instructions.
2. Load/store operations. These are always blocked from reordering
due to always having canCauseException set.
3. isync. I don't know if we actually need to prevent reordering
around this one, since as far as I know we only do reorderings
that are guaranteed to not change the behavior of the program.
But just in case, I've renamed FL_EVIL to FL_NO_REORDER instead of
removing it entirely, so that it can be used for this instruction.
2023-11-28 18:59:34 +01:00
JosJuice
f494a3d9e8
PPCAnalyst: Remove CanSwapAdjacentOps's OPCD check
...
Other than the CR instructions, which we now analyze properly,
all the covered instructions are not integer operations and also
have either FL_ENDBLOCK or FL_EVIL set, so there are two other
checks in CanSwapAdjacentOps that will reject them.
2023-11-28 18:59:34 +01:00
JosJuice
96d622bb61
PPCAnalyst: Run cror reordering after cmp reordering
...
We would rather have cror be close to the cmp than the branch.
2023-11-28 18:59:34 +01:00
JosJuice
40e0dd93be
PPCAnalyst: Allow more reordering of CR operations
...
This is possible with the improved CR analysis implemented
in the previous commits.
2023-11-28 18:59:34 +01:00
JosJuice
da63cee711
PPCAnalyst: More strict a_flags checks in CanSwapAdjacentOps
...
If for instance instruction a sets OE and instruction b
reads it, we shouldn't permit reordering.
2023-11-28 18:59:34 +01:00
JosJuice
8e9609df6e
JitArm64: Add flush/discard support for condition registers
...
By flushing the condition registers as soon as we no longer
need them, we reduce the register pressure.
2023-11-28 18:59:31 +01:00
JosJuice
6cc4f593e5
PPCAnalyst: Add in-register/discard analysis for CR
...
This brings the analysis done for condition registers
more in line with the analysis done for GPRs and FPRs.
This gets rid of the old wantsCR member, which wasn't actually
used anyway. In case someone wants it again in the future, they
can compute the bitwise inverse of crDiscardable.
2023-11-28 18:58:47 +01:00
JosJuice
d6987b98be
PPCAnalyst: Perform CR analysis for crXXX
2023-11-28 18:51:03 +01:00
JosJuice
4ecdb9e57e
JitArm64: Use one instruction for making NaNs quiet
...
Instead of materializing the quiet bit in a register and ORing the NaN
with it, we can perform an arithmetic operation on the NaN. This is a
cycle or two slower on some CPUs in cases where generating the quiet bit
pipelined well, but this is farcode that rarely runs, so instruction
fetch latency is the bigger concern. And for non-SIMD cases, we also
save a register.
2023-11-28 18:49:30 +01:00
JosJuice
d5ec5c005a
JitArm64: Some more FPRF optimization
...
By using MOVI2R+MOVI2R+CSEL in the zero case instead of doing bitwise
operations on the output of the other MOVI2R+MOVI2R+CSEL, we avoid using
BFI, an instruction that takes two cycles on most CPUs. The instruction
count is the same and the pipelining should be at least equally good.
2023-11-28 18:30:55 +01:00
JosJuice
255ee3fdce
JitArm64: Use LSL+CLS for classifying floats
...
This is a little trick I came up with that lets us restructure our float
classification code so we can exit earlier when the float is normal,
which is the case more often than not.
First we shift left by 1 to get rid of the sign bit, and then we count
the number of leading sign bits. If the result is less than 10 (for
doubles) or 7 (for floats), the float is normal. This is because, if the
float isn't normal, the exponent is either all zeroes or all ones.
2023-11-28 18:30:45 +01:00
Zopolis4
481bc76d8e
Remove redundant 32-bit code
2023-11-28 23:03:26 +11:00
Zopolis4
f0d2ce4683
Remove _M_X86 in favour of _M_X86_64
2023-11-28 23:03:20 +11:00
Tilka
ac4da97159
Merge pull request #12075 from JosJuice/gpr-block-inputs
...
PPCAnalyst: Fix gprBlockInputs calculation
2023-11-28 09:23:23 +00:00
Lexi Larkin
71dfa66d8b
Tool/Header: Add JSON output mode; game data
2023-11-28 08:49:28 +00:00
Dentomologist
becbaf50c4
OGLConfig: Only use Warn Log if OGL extensions are missing
2023-11-27 20:52:04 -08:00
Mai
9d415c1dbc
Merge pull request #12192 from JosJuice/jitarm64-nan-check
...
JitArm64: Check packed NaNs without using extra register
2023-11-28 04:22:27 +01:00
Mai
99cf862596
Merge pull request #12317 from JosJuice/setting-saveable-cleanup
...
Config: Clean up IsSettingSaveable
2023-11-28 04:20:21 +01:00
Mai
7e9c19fdb1
Merge pull request #12231 from JosJuice/jitarm64-frsqrte-optimization
...
JitArm64: Optimize frsqrte routine
2023-11-28 04:19:27 +01:00
Mai
731013c316
Merge pull request #12263 from Dentomologist/realtime_cheatsearch_update
...
CheatSearch: Automatically update Current Values
2023-11-28 04:17:06 +01:00
Mai
2869a4c168
Merge pull request #12278 from JosJuice/jitarm64-gpr-loop
...
JitArm64: Optimize Arm64GPRCache::FlushRegisters/FlushCRRegisters
2023-11-28 04:14:34 +01:00
Mai
6be8e63b23
Merge pull request #12306 from JosJuice/hle-discard
...
PPCAnalyst: Don't discard registers across HLE'd functions
2023-11-28 04:05:31 +01:00
Tilka
b8a897fda7
Merge pull request #12328 from iwubcode/xf_state_manager
...
VideoCommon: move xf state management to its own class
2023-11-28 02:04:26 +00:00
TryTwo
e5f5722497
Callstack: Bugfix. Remove double counting in loop to allow for more callstack items to be reported.
2023-11-27 14:18:25 -07:00
JosJuice
3a00ff625e
PPCAnalyst: Don't discard registers across HLE'd functions
...
Not sure if this was causing correctness issues – it depends on whether
the HLE code was actually reading the discarded registers – but it was
at least causing annoying assert messages in one piece of homebrew.
2023-11-27 21:40:42 +01:00
JosJuice
ba6fea1c81
HLE: Refactor ReplaceFunctionIfPossible
2023-11-27 21:40:42 +01:00
JosJuice
be1e103435
Remove references to Debugger.ini
...
This file was only used by DolphinWX. DolphinQt uses Qt.ini instead.
2023-11-27 21:38:43 +01:00
JosJuice
b18519320c
Config: Flip the IsSettingSaveable system check
...
Nowadays, basically everything except for controller config is handled
by the new config system. Instead of enumerating the systems that are,
let's enumerate the systems that aren't.
I've intentionally not included Config::System::Session in the new list.
While it isn't intended to be saved, it is a setting that's fully
handled by the new config system. See
https://github.com/dolphin-emu/dolphin/pull/9804#discussion_r648949686 .
2023-11-27 21:38:25 +01:00
JosJuice
5c3517c31d
Config: Remove RA settings from s_setting_saveable
...
We can cover them using Config::System::Achievements.
2023-11-27 21:36:19 +01:00
JosJuice
51bc86fc25
Config: Remove MAIN_USE_DISCORD_PRESENCE from s_setting_saveable
...
It's already covered by Config::System::Main.
2023-11-27 21:36:19 +01:00
Mai
d28155a7bb
Merge pull request #12265 from TryTwo/FuncFinder_bkup
...
CodeDiffDialog: Add saving/loading results to a file.
2023-11-27 19:00:27 +01:00
Tilka
c53e29c3c8
Merge pull request #11093 from Pokechu22/disable-graphics-settings
...
Disable graphics settings fields when incompatible settings are enabled
2023-11-27 12:54:02 +00:00
Tilka
ff6ea89036
Merge pull request #10818 from Pokechu22/icache-always-invalidate
...
PPCCache: Always invalidate on icbi, even if icache is disabled
2023-11-27 10:15:05 +00:00
TryTwo
0826586f96
CodeDiffDialog: Add saving/loading function finder results.
2023-11-26 21:26:58 -07:00
Mai
eba2b9ab9c
Merge pull request #12279 from Dentomologist/opengl_single_core_fix_start_movie_recording_crash
...
Movie: Fix crash when starting input recording on OpenGL single core
2023-11-27 03:19:54 +01:00
iwubcode
fb86c6342e
VideoCommon: move texture dump function out of texture cache to its own free function so it can be used elsewhere. Doing this change may also slightly improve performance of this operation
2023-11-26 16:35:03 -06:00
iwubcode
095f946b66
Core: update State version due to adding XFStateManager
2023-11-26 16:30:54 -06:00
iwubcode
849a0c13b5
VideoCommon: move xf state management to its own class, so changes can be detected in places other than VertexShaderManager
2023-11-26 16:27:26 -06:00
Mai
1a2d0882d0
Merge pull request #12319 from JosJuice/jitarm64-branch-not-farcode
...
JitArm64: Don't use farcode for conditional branch instructions
2023-11-26 23:09:25 +01:00
Mai
c8a493964a
Merge pull request #12307 from iwubcode/xxhash
...
Externals: update xxhash to 0.8.2 as submodule
2023-11-26 23:00:24 +01:00
Mai
10e2ad305d
Merge pull request #12316 from JosJuice/android-less-host-thread-lock
...
Android: Remove HostThreadLocks that are no longer needed
2023-11-26 22:56:55 +01:00
Mai
8a19be6052
Merge pull request #12321 from Dentomologist/netplay_setup_dialog_connect_tab_fix_spacing
...
NetPlaySetupDialog: Fix spacing in Connect tab
2023-11-26 22:51:42 +01:00
JosJuice
3d5f95b298
Merge pull request #12297 from Filoppi/improve_paper_white
...
Change HDR paper white default to 203 to match the ITU recommendations
2023-11-26 18:03:39 +01:00
JosJuice
166bd87f70
PowerPC: Unify "FromJit" MMU functions
...
This gets rid of the odd argument order we were using for JitArm64.
2023-11-26 14:51:16 +01:00
Tilka
719f1dca29
Merge pull request #12325 from Tilka/vulkan
...
Vulkan: use EnumMap for blend factor luts (NFC)
2023-11-26 07:12:23 +00:00
Lioncash
05015531a8
SkylanderModifyDialog: Remove unnecessary string conversions
2023-11-25 22:29:44 -05:00
Lioncash
8dfbc45df7
SkylanderModifyDialog: Mark label string as translatable
...
This is a user-facing string. Also fixes a nearby typo in an error
message string.
2023-11-25 22:29:41 -05:00
Lioncash
cdfabb4524
SkylandersPortalWindow: Directly connect slot in CreateSlotLayout
...
The interface corresponds with what QCheckBox::toggled wants, so we can
use the member function directly.
2023-11-25 22:16:39 -05:00
Lioncash
24c009f7ce
SkylandersPortalWindow: Mark helpers as const/static where applicable
...
These helpers don't directly modify class state.
2023-11-25 21:44:07 -05:00
Lioncash
6d47d6c08e
SkylandersPortalWindow: Remove unnecessary string conversions
...
Same behavior without a bit of churn.
2023-11-25 21:33:25 -05:00
Tilka
c16e98a31f
Merge pull request #12323 from lioncash/virt
...
CustomAssetLibrary: Add virtual destructor
2023-11-26 00:54:11 +00:00
Tillmann Karras
e3b1439e1b
Vulkan: use EnumMap for blend factor luts (NFC)
2023-11-26 00:36:53 +00:00
Lioncash
04011373f3
CustomAssetLibrary: Remove unnecessary qualifier in LoadInfo
...
The type is already in visible scope, so we don't need the rather length
qualifier.
2023-11-25 18:01:44 -05:00
Lioncash
b85902ccb5
CustomAssetLibrary: Add virtual destructor
...
This is used as a base pointer inside CustomPipelineAction, so this
should probably really have a virtual destructor to ensure derived
objects are torn down properly.
2023-11-25 18:01:17 -05:00
Lioncash
644f7f6e55
WC24Send: Add missing header guard
...
Prevents double inclusions from occurring in the same TU.
2023-11-25 17:53:46 -05:00
Dentomologist
715ba3cd0f
NetPlaySetupDialog: Fix spacing in Connect tab
...
Add a spacer between the alert text and Connect button to prevent the
alert text from migrating down with larger window heights.
2023-11-25 13:14:45 -08:00
Admiral H. Curtiss
76d605639b
Merge pull request #11881 from JosJuice/aarch64-function-call
...
JitArm64: Add utility for calling a function with arguments
2023-11-25 17:30:42 +01:00
JosJuice
2f407fc854
JitArm64: Don't use farcode for conditional branch instructions
...
The point of farcode is to provide a separate location for code that
rarely runs, so that it doesn't pollute the icache. Taking a conditional
branch is something that happens very often, so the code for that
shouldn't be in farcode.
2023-11-25 16:40:35 +01:00
JosJuice
5bda811a00
Android: Remove HostThreadLocks that are no longer needed
...
71ce8bb6f0
got rid of the need to be the
host or CPU thread when writing to the config.
2023-11-25 14:06:29 +01:00
Admiral H. Curtiss
afb4be1a90
Merge pull request #12311 from kemenaran/fix-metal-adapter-unknown-selector
...
Metal: fix crash by enabling concurrent compilation only if available
2023-11-24 21:52:32 +01:00
Pierre de La Morinerie
0ecfaf3b9e
Metal: enable concurrent compilation only if available
...
Bug: https://bugs.dolphin-emu.org/issues/13404
On macOS 13.6 / Intel HD 5000, Dolphin crashes with this message:
> -[MTLIGAccelDevice setShouldMaximizeConcurrentCompilation:]: unrecognized selector
This should be available on all macOS 13.3+ systems – but when using OCLP drivers,
some devices use an older version of Metal.framework, which doesn't expose the selector.
This concerns Intel Ivy Bridge, Haswell and Nvidia Kepler when using OCLP on macOS 13.3
or newer.
(See
34676702f4/docs/PATCHEXPLAIN.md
?plain=1#L354C1-L354C83)
As the behavior is an optional optimization anyway, perform a dynamic
detection to avoid crashing if the feature is not available.
2023-11-24 15:09:25 +01:00
Admiral H. Curtiss
feeac104d8
Merge pull request #12304 from sepalani/pcap-io
...
BBA/HLE: Fix random PCAP file corruption
2023-11-23 19:26:00 +01:00
Sepalani
91020ac4fa
BBA/HLE: Fix random PCAP file corruption
...
Concurrency between RecvHandlePacket and SendFromDirectFIFO
2023-11-23 22:07:44 +04:00
Admiral H. Curtiss
937cb8ef3a
Merge pull request #12299 from TryTwo/PR_bugfix_frame_advance
...
Core: Add option to not report state change to SetState (bugfix)
2023-11-22 23:10:51 +01:00
Admiral H. Curtiss
1cfa29f090
Merge pull request #12303 from Pokechu22/dsp-hle-aesnd-2023
...
DSPHLE: Support 2023 libaesnd uCode
2023-11-22 23:05:38 +01:00
Tillmann Karras
77a1eaa740
IOS: fix crash when closing invalid file descriptor
...
This regression was introduced in 5.0-20284.
2023-11-21 12:00:34 +00:00
Tilka
f79c88f30b
Merge pull request #12302 from JosJuice/jit-replace-vectors
...
Jit: Get rid of short-lived std::vectors
2023-11-20 18:11:15 +00:00
iwubcode
321e5051db
Externals: update xxhash to 0.8.2 as submodule; put in logic to ensure LZ4 which is also using xxhash does not clash when linking symbols
2023-11-19 14:22:59 -06:00
Pokechu22
2d7a078d53
DSPHLE: Support 2023 libaesnd uCode
...
Fixes https://bugs.dolphin-emu.org/issues/13401
2023-11-19 10:16:47 -08:00
JosJuice
c3c0c7dc1c
Jit: Get rid of short-lived std::vectors
...
Let's aim for making as few heap allocations as possible while jitting.
2023-11-18 23:15:37 +01:00
Tillmann Karras
da1bf29722
AX: fix envelope volume for Wii ucodes
...
Technically it is signed in the 0x7699af32 ucode but that's only used
by the Wii Startup Disc which never uses negative values.
2023-11-16 21:43:45 +00:00
TryTwo
b57ba42a55
Core::SetState() allow state to change without sending a callback.
...
Some state changes are meant to be near instantanoues, before switching to something else. By reporting ithe instant switch, the UI will flicker between states (pause/play button) and the debugger will unnecessarily update. Skipping the callback avoids these issues.
2023-11-16 11:07:37 -07:00
TryTwo
df8c0d2b39
Core::GetState() bugfix: remove forced incorrect state on frame advance.
...
This was implemented to prevent UI flickering due to the state rapidly switching between pause/play. Recently, it has been causing issues with debugger windows, which update during frame advance.
2023-11-16 10:41:53 -07:00
Shoegzer
21e9cdfbd0
Also update IP in Android GUI
2023-11-15 13:50:54 -05:00
Shoegzer
1d848c554d
Update default IP for HLE BBA
2023-11-14 15:00:06 -05:00
Filoppi
a8fd938a06
Change paper white default to 203 to match the ITU
2023-11-14 20:21:34 +02:00
JosJuice
6a9f565ac4
JitArm64: Optimize Arm64GPRCache::FlushRegisters/FlushCRRegisters
...
This way, the number of loop iterations is equal to the number of set
bits in the bitset rather than the number of bits in the bitset,
which is a good improvement because usually very few bits are set.
2023-11-13 18:28:51 +01:00
JosJuice
2ea95f5835
JitArm64: Use BitSet8 for Arm64GPRCache::FlushCRRegisters
...
There are only 8 CR registers, after all.
2023-11-13 18:28:51 +01:00
Sepalani
13e76500c2
BBA/HLE: Fix GC homebrew if_config not working
2023-11-13 19:32:03 +04:00
Tilka
87c27936fc
Merge pull request #12238 from AdmiralCurtiss/achievementheaderwidget-unused-variables
...
DolphinQt/AchievementHeaderWidget: Remove unused member variables.
2023-11-12 21:24:17 +00:00
Tilka
aa1311cd78
Merge pull request #12268 from JosJuice/fastmem-terminology
...
Jit: Define new terms related to fastmem
2023-11-12 19:44:45 +00:00
Tilka
166423ad61
Merge pull request #12273 from Dentomologist/dolphinqt_remove_unnecessary_qoverloads
...
DolphinQt: Remove unnecessary qOverloads
2023-11-12 19:43:05 +00:00
Tilka
4b38560323
Merge pull request #12282 from Wack0/mmu-tlb-patch
...
MMU: Use VSID in segment register as additional TLB lookup key
2023-11-12 19:41:23 +00:00
Tilka
15a3200b70
Merge pull request #12288 from Pokechu22/bp-stride-scale-fallthrough
...
Fix accidental fallthrough in BPStructs
2023-11-12 19:35:37 +00:00
Tilka
4285e9d8aa
Merge pull request #12276 from Tilka/ax_volume
...
AX: make volume field signed
2023-11-12 19:35:15 +00:00
Pokechu22
3984d1964b
Fix accidental fallthrough in BPStructs
...
This caused us to update the indirect texture information in shaders more often than we needed to, which probably doesn't matter in practice since it's only used in ubershaders and copyyscale and stride are generally only updated before EFB/XFB copies, which generally will have other changes afterwards.
2023-11-12 10:39:56 -08:00
Tilka
e7b922ee62
Merge pull request #12286 from Pokechu22/more-bp-register-descriptions
...
Add descriptions for more BP registers
2023-11-12 07:59:32 +00:00
Pokechu22
da8407e01c
Add descriptions for more BP registers
2023-11-11 23:32:17 -08:00
Pokechu22
dfdb9a4a07
Clarify per-texture tmem information in the fifo analyzer
2023-11-11 23:32:17 -08:00
Pokechu22
ea41d0e384
Convert BPMEM_LOADTLUT1 to a struct
2023-11-11 23:32:17 -08:00
Pokechu22
2a1d445b30
Enhance description of BPMEM_PRELOAD_MODE in the fifo analyzer
2023-11-11 23:32:17 -08:00
Pokechu22
6bad17b170
Rename bpmem.copyMipMapStrideChannels to bpmem.copyDestStride
...
As far as I can tell, it has nothing to do with the mipmap/half_scale functionality, but does change based on the width of the destination texture (and the destination texture is half the width if half_scale is set). The comment that was there (which dates back to the initial megacommit) seems to not have accounted for the width aspect; it was first used as an actual stride in bbbe898839
(the first commit that used it at all).
2023-11-11 23:32:14 -08:00
Tillmann Karras
ac9079f2ca
VideoCommon: copy software renderer logic for blend mode priorities
...
I've not tested this on hardware, but it fixes issue 12271 (shadow
people in Deal or No Deal - Special Edition).
2023-11-12 05:51:28 +00:00
Pokechu22
9543555bfe
Fix typo in comment for bpmem.texcoords
2023-11-11 16:13:37 -08:00
Rairii
2333fc2701
MMU: Use VSID in segment register as additional TLB lookup key
2023-11-11 15:59:47 +00:00
Admiral H. Curtiss
f35ee22755
Merge pull request #12283 from Dentomologist/wiisocket_delete_move_assignment_operator
...
WiiSocket: Explicitly delete move assignment operator
2023-11-11 13:31:16 +01:00
Dentomologist
9ebd257206
WiiSocket: Explicitly delete move operators
...
The move assignment operator for a class is implicitly deleted when the
class has a non-static reference data member, which is true of
WiiSocket's m_socket_manager member.
Explicitly declaring the operator as default generates a
-Wdefaulted-function-deleted warning on Clang.
Delete the move constructor as well for consistency.
2023-11-10 12:56:00 -08:00
Admiral H. Curtiss
4345980b25
Merge pull request #12284 from Dentomologist/sdl_add_default_case_to_switch_statement
...
SDL: Add default case to switch statement
2023-11-10 21:25:40 +01:00
Dentomologist
2d3bae9c79
SDL: Add default case to switch statement
...
Fix -WSwitch warning about unhandled enum value SDL_NUM_LOG_PRIORITIES.
log_level is initialized to LNOTICE right before the switch statement so
this doesn't cause any behavior changes.
2023-11-10 12:05:20 -08:00
Dentomologist
1dff22d576
Movie: Fix crash when starting input recording on OpenGL single-core
...
Use RunOnCPUThread instead of RunAsCPUThread in BeginRecordingInput.
Most OpenGL functions require an OpenGL context to have been created on
that thread before calling the function; when that isn't the case they
return invalid results which can cause crashes when passed into other
functions.
Dolphin creates the OpenGL context in the EmuThread which then becomes
either the CPU-GPU thread or the Video thread for single and dual core
respectively. OpenGL functions must therefore be called from that
thread.
Movie::BeginRecordingInput is called from the Host thread and runs a
block of code which ultimately creates a savestate, which in turn embeds
the framebuffer which requires calling various OpenGL functions.
In single core the use of RunAsCPUThread leads to this all happening on
the Host thread, eventually leading to invalid OpenGL calls and a crash.
In Dual core the crash is avoided because VideoBackendBase::DoState uses
the AsyncRequests::DO_SAVE_STATE event which causes VideoCommon_DoState
and its subsequent OpenGL calls to safely run on the Video thread.
This commit uses RunOnCPUThread instead of RunAsCPUThread, which causes
the subsequent code to run on the CPU-GPU thread in single core which
has the valid OpenGL context and so doesn't crash.
2023-11-08 19:14:54 -08:00
Admiral H. Curtiss
620fbcdfb7
Merge pull request #12274 from JosJuice/jitarm64-non-dirty-immediates
...
JitArm64: Fix some oddities with non-dirty immediates
2023-11-08 20:44:32 +01:00
Rairii
18d777095b
MMU: on DSI exception, don't set store bit on read
2023-11-08 16:06:11 +00:00
JosJuice
aec5238aa6
Merge pull request #12237 from AdmiralCurtiss/hard-label
...
DolphinQt/AchievementHeaderWidget: Fix wrong label for hard unlock count.
2023-11-06 20:22:23 +01:00
Admiral H. Curtiss
40bf452ac8
Merge pull request #12182 from JosJuice/jit64-ps-sum1
...
Jit64: Use MOVSD in ps_sum1 and ps_merge01
2023-11-06 14:50:33 +01:00
Tillmann Karras
b8bc391d27
AX: make volume field signed
...
This fixes overly loud sounds in Freestyle Metal X (issue 13120).
2023-11-05 21:21:07 +00:00
Admiral H. Curtiss
ec69ed2173
Merge pull request #12133 from mandar1jn/skylanders-improved-generation
...
Skylanders: Improve figure data view and generation
2023-11-05 18:29:19 +01:00
Admiral H. Curtiss
1748e6416f
Merge pull request #12272 from AdmiralCurtiss/dark-mode-gui
...
DolphinQt: Allow forcing light or dark style on Windows.
2023-11-05 18:28:59 +01:00
Admiral H. Curtiss
2f9e98b77b
DolphinQt: Check theme instead of system for when to apply dark title bars on Windows.
2023-11-05 18:13:00 +01:00
Mandar1jn
afdf6de041
Skylanders: Improve figure data view and generation
...
Co-authored-by: deReeperJosh <joshua@dereeper.co.nz>
2023-11-05 18:06:10 +01:00
JosJuice
9a342af857
Merge pull request #12275 from JosJuice/directoryblob-comma
...
DiscIO: Remove unintentional use of comma operator
2023-11-05 14:40:25 +01:00
Admiral H. Curtiss
ed6014ddb5
DolphinQt/InterfacePane: Rework style dropdown so the built-in light/dark style can be manually selected.
2023-11-05 12:59:32 +01:00
Admiral H. Curtiss
8f55c28472
DolphinQt/Settings: Add option to force the light or dark style on Windows.
2023-11-05 12:59:32 +01:00
Admiral H. Curtiss
6d585b6eb6
DolphinQt/Settings: Split setting of the user style into two functions.
...
This makes it so that if you just want to reload the current style (eg. on program start, or in response to a system event), you don't need to know the name of the currently selected user style. It's also more consistent with the way the 'userstyle/enabled' flag works.
2023-11-05 12:58:11 +01:00
Admiral H. Curtiss
9d08c8a45d
Merge pull request #12271 from TryTwo/Qt_Display_Fixes
...
UI, CodeDiffDialog: Fix table widget display issues, including dark style.
2023-11-05 12:53:45 +01:00
JosJuice
9c53c110f8
DiscIO: Remove unintentional use of comma operator
2023-11-05 09:24:49 +01:00
JosJuice
f9dd13a309
JitArm64: Preserve dirty flag when materializing immediate
...
Before dbf5dca
, the dirty flag had no meaning for an immediate value,
so we made sure to always set the dirty flag when switching a register
from Immediate to Register. But after dbf5dca
, that is no longer the
case. If an immediate is marked as not dirty, we can keep the register
marked as not dirty after materializing the value. This way we skip
having to write it back to ppcState later.
2023-11-05 09:21:58 +01:00
JosJuice
1b7bd32ac1
JitArm64: Correctly flush non-dirty immediates
...
Without this change, non-dirty immediates don't actually get flushed.
This can be a problem if we for instance are flushing all registers in
order to execute an interpreter fallback. If that interpreter fallback
writes to a register that contained a non-dirty immediate, the JIT will
keep using the old value instead of loading the updated value.
2023-11-05 09:15:08 +01:00
TryTwo
2a5147a19b
Dark style: add QTableCornerButton. Fix padding for tables.
...
CodeDiffDialog: Fix QTableWidget UI issues
2023-11-04 15:00:07 -07:00
Dentomologist
43e69d3e6a
DolphinQt: Remove unnecessary qOverloads
...
qOverload is used to disambiguate pointers to overloaded functions, but
most of the usages in the code base were with non-overloaded functions.
2023-11-04 14:14:14 -07:00
Tilka
b7b8f46832
Merge pull request #12259 from Sintendo/frsqrte-unit-test
...
UnitTests: Test frsqrte against known values
2023-11-04 20:10:23 +00:00
JosJuice
9cc1df6c14
JitArm64: Optimize frsqrte denormal path (in an "interesting" way)
2023-11-04 11:58:03 +01:00
JosJuice
9b21046dfc
JitArm64: Read X1 instead of X3 in frsqrte denormal path
...
If we hit the denormal path, the sign and exponent are guaranteed to be
0, which means X1 and X3 have the same value.
2023-11-04 11:58:03 +01:00
JosJuice
9807cf0b82
JitArm64: Stop using X4 in frsqrte
...
This required a change in the denormal path where, instead of
subtracting 11 before shifting left, we shift left immediately and then
shift right by 11. This shouldn't affect performance.
2023-11-04 11:58:03 +01:00
JosJuice
4b2f73774f
JitArm64: Optimize frsqrte denormal path
...
Now that the normal path is no longer reading X2 and X3, it doesn't
matter what the denormal path writes to them.
2023-11-04 11:58:03 +01:00
JosJuice
e5bd8019f6
JitArm64: Read X1 instead of X3 in frsqrte normal path
...
With this, the normal path is no longer reading the value in X3,
which opens up for the next commit.
2023-11-04 11:57:59 +01:00
JosJuice
31d751b6da
JitArm64: Read X1 in frsqrte normal path
...
Instead of combining X2 (the exponent) and X3 (the mantissa) using an
ORR instruction, we can read X1, which already contains both.
This requires us to reconstruct X1 in the denormal path, but that's
an acceptable price.
2023-11-04 11:56:15 +01:00
Admiral H. Curtiss
b181842092
Netplay: Fix building on clang 17.
2023-11-03 16:15:04 +01:00
Admiral H. Curtiss
7dae4dd3d2
Merge pull request #12266 from noahpistilli/kd-junk-data
...
IOS/KD: Disable download and mail when files are invalid
2023-11-03 15:27:44 +01:00
Sketch
ad2044993d
IOS/KD: Disable download and mail when files are invalid
2023-11-02 22:05:56 -04:00
JosJuice
482da7975b
Jit: Define new terms related to fastmem
...
Dolphin's JITs have a minor terminology problem: The term "fastmem" can
refer to either the system of switching between a fast path and a slow
path using backpatching, or to the fast path itself. To hopefully make
things clearer, I'm adding some new terms, defining the old and new
terms as follows:
Fastmem: The system of switching from a fast path to a slow path by
backpatching when an invalid memory access occurs.
Fast access: A code path that accesses guest memory without calling C++
code.
Slow access: A code path that accesses guest memory by calling C++ code.
2023-11-02 21:30:12 +01:00
Admiral H. Curtiss
b4c0da30bd
Merge pull request #12244 from DacoTaco/feature/crypto
...
IOS: implement /dev/aes & /dev/sha
2023-11-02 19:36:40 +01:00
DacoTaco
2241aaf168
IOS: implement /dev/aes
2023-11-01 22:08:39 +01:00
DacoTaco
d4c18f3f31
IOS: implement /dev/sha
2023-11-01 22:08:39 +01:00
JosJuice
13c70eeb31
Merge pull request #12257 from Wack0/patch-1
...
JIT64 (Jit_Integer): for twx instructions, raise exception with correct SRR0
2023-11-01 21:10:39 +01:00
JosJuice
c248a69268
JitArm64: Add utility for calling a function with arguments
...
With this, situations where multiple arguments need to be moved
from multiple registers become easy to handle, and we also get
compile-time checking that the number of arguments is correct.
2023-11-01 19:01:58 +01:00
Admiral H. Curtiss
17122f171a
Merge pull request #12260 from Pokechu22/multiple-fifo-recording-regression
...
Fix regression when recording multiple fifologs
2023-11-01 12:01:52 +01:00
Admiral H. Curtiss
ff009dd8b5
Merge pull request #12258 from skyfloogle/traversal-logging
...
Netplay: Don't log skippable events as errors
2023-11-01 11:56:39 +01:00
Dentomologist
9230266529
CheatSearchWidget: Add checkbox to toggle Current Value autoupdate
2023-10-31 17:35:14 -07:00
Dentomologist
fdb7328c73
CheatSearch: Update Current Values at end of frame
...
At the end of each frame automatically update the Current Value for
visible table rows in the selected and visible CheatSearchWidget (if
any). Also update all Current Values in all CheatSearchWidgets when the
State changes to Paused.
Only updating visible table rows serves to minimize the performance cost
of this feature. If the user scrolls to an un-updated cell it will
promptly be updated by either the next VIEndFieldEvent or the State
transitioning to Paused.
2023-10-31 17:34:31 -07:00
JosJuice
d04e67be3d
Add fastmem arena setting
...
Just for debugging.
2023-10-31 19:43:49 +01:00
JosJuice
8686536d7d
Jit: Always initialize fastmem arena
...
If dcache is enabled when the game starts, initializing the fastmem
arena is still useful in case the user changes the dcache setting.
And initializing it doesn't really cost anything.
2023-10-31 19:43:49 +01:00
JosJuice
0606433404
JitArm64: Check fastmem instead of fastmem_arena
...
Preparation for the next commit.
JitArm64 has been conflating these two flags. Most of the stuff that's
been guarded by fastmem_arena checks in fact requires fastmem.
When we have fastmem_arena without fastmem, it would be possible to do
things a bit more efficiently than what this commit does, but it's
non-trivial and therefore I will leave it out of this PR. With this
commit, we effectively have the same behavior as before this PR - plus
the added ability to toggle fastmem with a cache clear.
2023-10-31 19:43:49 +01:00
JosJuice
b3bfcc5d7f
PowerPC: Allow toggling write-back cache during emulation
...
Now that PR 10575 is merged, the JIT automatically clears its cache
when this setting is changed, making this reasonable to implement.
2023-10-31 19:43:49 +01:00
JosJuice
899d61bc7d
Jit64: Recompile asm routines on cache clear
...
This is needed so that the checks added in the previous commit will be
reevaluated if the value of m_enable_dcache changes.
JitArm64 was already recompiling its asm routines on cache clear by
necessity. It doesn't have the same setup as Jit64 where the asm
routines are in a separate region, so clearing the JitArm64 cache
results in the asm routines being cleared too.
2023-10-31 19:43:49 +01:00
JosJuice
5e74a8b850
Jit64: Don't make use of fastmem arena when dcache is enabled
...
Some code paths in EmuCodeBlock.cpp that were checking fastmem_arena
should really also be checking m_enable_dcache.
Because JitArm64 centralizes more or less all memory access to the
EmitBackpatchRoutine function and because that function already
contained a check, JitArm64 works fine without the additional checks
added by this commit. Regardless, I added the checks to MMU.cpp instead
of EmuCodeBlock.cpp where applicable so they would be available to
JitArm64. Maybe one day JitArm64 will need them if its code gets
restructured.
2023-10-31 19:43:40 +01:00
JosJuice
b32ac9353e
Merge pull request #12262 from AdmiralCurtiss/last-state-order-refactor
...
Core/State: Refactor logic for determining the relative age of existing savestates.
2023-10-31 19:39:47 +01:00
Dentomologist
74d3ba7c46
Cheats Manager: Fix factory widget spacing
...
Add stretch to bottom of factory widget to prevent the Data Type
QGroupBox from getting stretched out awkwardly.
2023-10-30 17:44:39 -07:00
Dentomologist
7dfb23d38c
CheatSearchWidget: Don't recreate table when refreshing values
...
The table only needs to be recreated when the displayed addresses might
change. If we're just refreshing the current values then update those
table cells and leave the rest of the table alone.
2023-10-30 17:18:18 -07:00
Sintendo
ef7f3b5bac
UnitTests: Test ApproximateReciprocalSquareRoot
2023-10-30 22:39:12 +01:00
Dentomologist
fa7c969e15
CheatSearch: Use index range for ClonePartial
...
Specify the begin and end indices instead of filling a vector with all
the indices which are continuous anyway.
2023-10-30 12:58:38 -07:00
Admiral H. Curtiss
437946fb1a
Core/State: Refactor logic for determining the relative age of existing savestates.
...
The code previously did this indirectly via `std::map<double, int>`, the key being the timestamp, which required a questionable workaround for the case where multiple states have the same timestamp. By having a particular combination of timestamps in the on-disk savestates, you could cause this workaround to infinitely loop, locking up Dolphin. This avoids this completely by refactoring the logic and just using `std::vector` instead.
2023-10-30 19:19:01 +01:00
Admiral H. Curtiss
99a3bbc055
Core/State: Return an empty string on invalid input to SystemTimeAsDoubleToString().
2023-10-30 19:19:01 +01:00
Admiral H. Curtiss
03f8ec09eb
Merge pull request #12261 from TryTwo/Bugfix_GetAddress
...
PPCDebugInterface: Tweak regex in GetMemoryAddressFromInstruction to fix bugs
2023-10-30 10:49:13 +01:00
Admiral H. Curtiss
045868bbb4
Merge pull request #12256 from malleoz/savestate_read_header_fix
...
Core: Fix UI slowdown for savestate timestamp reads
2023-10-30 10:45:14 +01:00
TryTwo
490e4b78a7
Bugfixes for PPCDebugInterface::GetMemoryAddressFromInstruction
...
FromChars cannot return a value prefixed with 0x.
Possible regex failures on rX, rY, rZ
2023-10-29 22:54:45 -07:00
Pokechu22
35831f342e
Fix regression when recording multiple fifologs
...
Since ccf92a3e56
, recording fifologs multiple times after launching dolphin caused all initial state to not be saved (the initial contents of bpmem, cpmem, etc were all zeroed out). For some games, this was not noticeable, as most registers were set each frame, but for others, this resulted in completely broken fifologs. (Note that recording fifologs also required 05181f6b88
and 9e0755a598
to be cherry-picked due to other, since fixed, regressions.)
This was because previously, `Renderer::CheckFifoRecording` was called every frame, but ccf92a3e56
changed it into a callback (`m_end_of_frame_event`) that was removed when recording ended. Thus, before, `OpcodeDecoder::g_record_fifo_data = IsRecording()` was called when `IsRecording()` returned false, but after that commit `g_record_fifo_data` never got changed back to false, so the check for `was_recording` only ever passed on the first fifolog recorded (even after stopping and starting a game).
There may still be another issue lurking, as I'm not sure if all broken fifologs were caused by recording multiple fifologs (for instance, on https://bugs.dolphin-emu.org/issues/13377 , only one fifolog was initially uploaded, but it was affected by an issue with the same symptoms as this).
2023-10-29 15:23:31 -07:00
Floogle
bee6d5bfb6
Netplay: Don't log skippable events as errors
2023-10-28 18:06:07 +02:00
Tilka
2ccc2bfb2e
Merge pull request #12250 from Sintendo/dcbx-nit
...
Jit_LoadStore: Minor dcbx register optimizations
2023-10-28 02:33:51 +01:00
Tilka
9bea807732
Merge pull request #12249 from Sintendo/frsqrte-nit
...
PowerPC: Negate m_dec values in frsqrte table
2023-10-28 02:15:05 +01:00
Tilka
2212a5b225
Merge pull request #12254 from AdmiralCurtiss/savestate-no-xfb-stride
...
VideoCommon: Don't swap on state load when there's no XFB.
2023-10-28 02:14:30 +01:00
Tilka
7c243a110a
Merge pull request #12253 from TellowKrinkle/AsahiGL
...
Fix shader compiles on Asahi Linux
2023-10-28 02:12:40 +01:00
Tilka
ef447bb40b
Merge pull request #12248 from Dentomologist/cheatsearch_use_std_comparison_functions
...
CheatSearch: Use std comparison function objects
2023-10-28 02:11:18 +01:00
Tilka
ce895f1205
Merge pull request #12255 from jordan-woyak/sdl-360
...
ControllerInterface/SDL: Remove Xbox 360 controller disabling hack.
2023-10-28 02:10:46 +01:00
Rairii
c9cd0b626b
JIT64: for twx instruction, raise exception with correct SRR0
2023-10-27 13:27:36 +01:00
sowens99
cddc75c28b
Core: Fix UI slowdown for savestate timestamp reads
2023-10-26 22:32:47 -04:00
Jordan Woyak
30ce1f2ec2
ControllerInterface/SDL: Remove Xbox 360 controller disabling hack.
2023-10-26 18:04:11 -05:00
Admiral H. Curtiss
4f0c8b1657
VideoCommon: Don't swap on state load when there's no XFB.
...
This triggers an assert in TCacheEntry::SetXfbCopy() otherwise if you load a savestate that was made before the first XFB has been rendered.
2023-10-25 18:24:42 +02:00
TellowKrinkle
4f2a79058a
VideoBackends:OGL: Handle when SSBOs are only supported in some shader stages
2023-10-25 17:47:04 +02:00
TellowKrinkle
323aea60d6
VideoCommon: Fix VS point/line on older GLSL
2023-10-24 23:18:01 -05:00
Sintendo
171f76ae07
Jit_LoadStore: Another minor dcbx optimization
...
The multiplication needs the value from RSCRATCH2, but shouldn't
overwrite it as it is still needed later. The original code solved this
by copying RSCRATCH2 to another register first.
As it turns out, the other register involved in the multiplication can
safely be overwritten, so we can swap the operands around and use
RSCRATCH2 directly without making a copy.
Before:
33 D2 xor edx,edx
8B 45 64 mov eax,dword ptr [rbp+64h]
85 C0 test eax,eax
7E 30 jle 000002D4DF373F6B
44 8B B5 D4 02 00 00 mov r14d,dword ptr [rbp+2D4h]
44 8B E8 mov r13d,eax
BF 07 00 00 00 mov edi,7
F7 F7 div eax,edi
41 8D 56 FF lea edx,[r14-1]
3B C2 cmp eax,edx
0F 42 D0 cmovb edx,eax
44 2B F2 sub r14d,edx
44 89 B5 D4 02 00 00 mov dword ptr [rbp+2D4h],r14d
8B C2 mov eax,edx
0F AF C7 imul eax,edi
44 2B E8 sub r13d,eax
44 89 6D 64 mov dword ptr [rbp+64h],r13d
44 8D 72 01 lea r14d,[rdx+1]
After:
33 D2 xor edx,edx
8B 45 64 mov eax,dword ptr [rbp+64h]
85 C0 test eax,eax
7E 2E jle 0000021C01013F69
44 8B B5 D4 02 00 00 mov r14d,dword ptr [rbp+2D4h]
44 8B E8 mov r13d,eax
BF 07 00 00 00 mov edi,7
F7 F7 div eax,edi
41 8D 56 FF lea edx,[r14-1]
3B C2 cmp eax,edx
0F 42 D0 cmovb edx,eax
44 2B F2 sub r14d,edx
44 89 B5 D4 02 00 00 mov dword ptr [rbp+2D4h],r14d
0F AF FA imul edi,edx
44 2B EF sub r13d,edi
44 89 6D 64 mov dword ptr [rbp+64h],r13d
44 8D 72 01 lea r14d,[rdx+1]
2023-10-24 00:42:35 +02:00
Dentomologist
3ba5cd30ff
SkylanderPortal: Make protected variables private
...
SkylanderPortal is final, so having member variables be protected
instead of private is just misleading.
2023-10-22 12:00:49 -07:00
Sintendo
dd58a8d65e
Jit_LoadStore: Minor dcbx register optimization
...
Instructions referencing registers r8-r15 take an additional byte to
encode. `reg_downcount` may be assigned to one of these registers, so it
is a small size win to store the downcount value in `RSCRATCH` first.
Before:
33 D2 xor edx,edx
44 8B 6D 64 mov r13d,dword ptr [rbp+64h]
45 85 ED test r13d,r13d
7E 30 jle 0000023546B43F6D
44 8B B5 D4 02 00 00 mov r14d,dword ptr [rbp+2D4h]
41 8B C5 mov eax,r13d
BF 07 00 00 00 mov edi,7
F7 F7 div eax,edi
After:
33 D2 xor edx,edx
8B 45 64 mov eax,dword ptr [rbp+64h]
85 C0 test eax,eax
7E 30 jle 000001AFBBAE359D
44 8B B5 D4 02 00 00 mov r14d,dword ptr [rbp+2D4h]
44 8B E8 mov r13d,eax
BF 07 00 00 00 mov edi,7
F7 F7 div eax,edi
2023-10-22 15:13:52 +02:00
Sintendo
3c3168706c
PowerPC: Negate m_dec values in frsqrte table
...
This value is used in a multiplication. The result of this
multiplication is then subtracted from m_base. By negating m_dec, we are
free to use an addition instead.
On x64, this saves an instruction.
2023-10-21 21:08:21 +02:00
Dentomologist
c5a8a3fd4a
CheatSearch: Use std comparison function objects
2023-10-20 16:05:47 -07:00
LillyJadeKatrin
db78437498
Refactored welcome message to render after game start
...
Split the "welcome" messages letting players know achievements are active into a separate method that gets called (currently) after a number of frames to ensure that the emulator has started properly and has somewhere to display the messages.
2023-10-19 19:21:12 +02:00
LillyJadeKatrin
a3d561fdff
Add badges to achievement messages
...
Updated OSD::AddMessage calls for achievements and game start to pass in the badges intended to be shown.
2023-10-19 19:13:20 +02:00
Admiral H. Curtiss
c87b2e46b4
Merge pull request #12242 from AdmiralCurtiss/osd-icons
...
VideoCommon: Add support for icons in OSD messages.
2023-10-17 12:46:36 +02:00
Admiral H. Curtiss
53ea7aee1b
Merge pull request #12239 from AdmiralCurtiss/achievementprogresswidget-clearlayout
...
DolphinQt/AchievementProgressWidget: Use ClearLayoutRecursively() to clear layout.
2023-10-17 12:45:40 +02:00
Admiral H. Curtiss
cb13ad7a5f
VideoCommon: Add support for icons in OSD messages.
2023-10-17 02:47:29 +02:00
iwubcode
b292022bc7
VideoCommon: use ToLower function in assets when parsing json, for proper locale independent behavior
2023-10-16 19:23:00 -05:00
iwubcode
fec2a8af8c
VideoCommon: add additional properties to ShaderAsset to support custom shader uniforms
2023-10-16 19:02:27 -05:00
Admiral H. Curtiss
3873664143
DolphinQt/AchievementProgressWidget: Use ClearLayoutRecursively() to clear layout.
2023-10-15 22:54:40 +02:00
LillyJadeKatrin
b824d55093
Add Leaderboards tab to Achievement dialog
...
A new tab is added to the Achievements dialog to chart out the leaderboards in a table. Each row of the table contains the leaderboard information and up to four relevant entries, varying based on how many entries are in the leaderboard, whether or not the player has a submitted score, and where in the leaderboard the player's score is.
2023-10-15 21:28:40 +02:00
LillyJadeKatrin
04df930e0d
Added FetchBoardInfo to AchievementManager
...
FetchBoardInfo is called (via the work queue asynchronously) on a leaderboard every time it is activated or submitted to. It makes two calls to the RetroAchievements API for fetching leaderboard info, one that requests the top four entries in the leaderboard and another that requests the player's entry, the two entries above the player and the two entries below. All of these are inserted into a single map (resolving any overlaps) so the result can be exposed to the UI.
2023-10-15 21:28:40 +02:00
LillyJadeKatrin
61dded7043
Added Leaderboard info map to AchievementManager
...
The leaderboard map created here contains information useful to displaying leaderboard stats in the Achievement dialog, including each leaderboard's name and description and a partial list of entries for display. The entire map is exposed to the UI in a single call for simplicity.
2023-10-15 21:28:40 +02:00
Admiral H. Curtiss
daf9ff012a
Merge pull request #12229 from AdmiralCurtiss/achievement-load-async-lock
...
AchievementManager: Call ActivateDeactivateLeaderboards() and ActivateDeactivateRichPresence() under lock.
2023-10-15 21:27:41 +02:00
Admiral H. Curtiss
1645b1ed62
AchievementManager: Call ActivateDeactivateLeaderboards() and ActivateDeactivateRichPresence() under lock.
...
Both of these functions access `m_game_data` and don't lock themselves, so they must be called in a way that guarantees that `m_game_data` is not modified during the call.
2023-10-15 18:59:36 +02:00
Admiral H. Curtiss
ab562553f6
DolphinQt/AchievementHeaderWidget: Remove unused member variables.
2023-10-15 18:56:28 +02:00
Admiral H. Curtiss
923fc00777
DolphinQt/AchievementHeaderWidget: Fix wrong label for hard unlock count.
2023-10-15 18:42:03 +02:00
Admiral H. Curtiss
4b2dad074a
DolphinQt: Move GraphicsModListWidget::ClearLayoutRecursively() to QtUtils.
2023-10-15 18:39:05 +02:00
Admiral H. Curtiss
2677fd9a8e
Merge pull request #12185 from iwubcode/custom_shader_uniform_backend_support
...
VideoBackends / VideoCommon: add support for custom shader uniforms to D3D, Vulkan, OGL
2023-10-15 00:21:56 +02:00
Dentomologist
b2a8f7e276
IOS: Convert ObjectSubType to enum class
2023-10-11 14:21:29 -07:00
Admiral H. Curtiss
111c1ab531
AchievementManager: Don't store pointer to rc_runtime_event_t in lambda.
...
Scope issue in the event callback from `rc_runtime_do_frame()`. The pointer points to a variable on the stack from inside `rc_runtime_do_frame()`, so that's a race condition between the thread calling `rc_runtime_do_frame()` and the event queue thread.
2023-10-11 10:32:11 +02:00
iwubcode
b251194a7e
VideoCommon: wait for the GPU to be finished doing any work before invalidating pipelines when graphic config changes
2023-10-10 18:17:24 -05:00
Admiral H. Curtiss
6aadfd522b
Merge pull request #12225 from AdmiralCurtiss/resolution-dropdown-fix
...
Qt/EnhancementsWidget: Fix size of resolution dropdown.
2023-10-10 19:29:22 +02:00
iwubcode
0e8f8ea930
VideoCommon: instead of using 'CustomTextureData' directly, use 'TextureData' for texture assets, this allows us to provide additional metadata for textures. Such as a sampler or type information (to distinguish cube maps)
2023-10-10 09:58:14 -05:00
Admiral H. Curtiss
7b32530de6
Qt/EnhancementsWidget: Fix size of resolution dropdown.
2023-10-10 15:03:49 +02:00
Admiral H. Curtiss
1b7a590b4b
Merge pull request #12209 from JosJuice/frsqrte-exp-lsb
...
PowerPC: Flip the order of frsqrte_expected
2023-10-10 10:38:07 +02:00
Admiral H. Curtiss
410ec83575
Merge pull request #12213 from dreamsyntax/128_CODE_SIZE_AND_FARCODE_SIZE
...
Jit64: Increase farcode & nearcode cache size
2023-10-10 10:35:23 +02:00
Admiral H. Curtiss
9ebb52537e
Merge pull request #12217 from malleoz/savestate_lz4
...
Savestates: Use LZ4 algorithm for faster decompression
2023-10-10 10:34:38 +02:00
sowens99
1eaa9380dd
Savestates: Use LZ4 algorithm for faster decompression
2023-10-08 20:45:49 -04:00
Nicola Vella
b506bdc401
Fix heap buffer overflow in GCMemcardRaw
2023-10-08 15:13:41 +02:00
Nicola Vella
31dfb53152
Fix heap buffer overflow in GCMemcardRaw
2023-10-06 19:30:03 +02:00
iwubcode
713454b7d7
Metal: update binding mapping for SPRV due to change for custom shader uniforms in other backends (Metal is still not supported)
...
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2023-10-06 02:17:43 -05:00
iwubcode
a099f4f41b
VideoCommon: given the changes to pipeline interaction, update the global version variable to reflect those changes and force pipelines to be rebuilt
2023-10-06 02:17:43 -05:00
iwubcode
751356af47
VideoCommon: avoid Vulkan validation errors when custom shader ubo isn't set up
...
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2023-10-06 02:17:43 -05:00
iwubcode
b6d321bfb1
VideoBackends / VideoCommon: add new uniform buffer object for custom shader materials (slot 3, geometry shader buffer moves to slot 4 if available)
2023-10-06 02:17:42 -05:00
iwubcode
92accc3ef7
VideoCommon: add custom pixel shader constants as a buffer of data to be passed to all backends
2023-10-05 21:20:16 -05:00
Filoppi
8027c88e58
Video: add support for 12x resolution multiplier
2023-10-06 01:12:10 +03:00
dreamsyntax
219610d8a0
Jit64: Increase nearcode/farcode size
2023-10-04 13:05:09 -07:00
Admiral H. Curtiss
beebe0a200
Core/BBA/BuiltIn: Replace IP_PROTOCOL with IPV4_ETHERTYPE to avoid conflict with Linux headers.
2023-10-04 16:13:16 +02:00
Admiral H. Curtiss
68c9362449
Merge pull request #12089 from stblr/gamecube-zelda-hle-in-wii-mode
...
GameCube Zelda HLE in Wii mode
2023-10-04 06:57:01 +02:00
sowens99
69ec239a1f
Add lz4 submodule
2023-10-02 17:28:23 -04:00
Admiral H. Curtiss
da6339a722
Merge pull request #12026 from LillyJadeKatrin/retroachievements-measured
...
RetroAchievements - Progress Notifications
2023-10-01 19:25:02 +02:00
JosJuice
d811c12196
Android: Add more GameCube controller types
...
For all your PSO needs.
2023-10-01 18:47:49 +02:00
JosJuice
d6c0f8e749
Android: Get profile name from core
...
To avoid duplicating information between Kotlin and C++.
2023-10-01 18:47:49 +02:00
JMC47
cd366c4f46
Merge pull request #12036 from LillyJadeKatrin/deep-copy-volume
...
Added CopyReader to BlobReader and all subclasses
2023-10-01 11:39:37 -04:00
LillyJadeKatrin
6b110bb6fe
Added Progress switch to Achievements dialog
...
Added a switch for the progress messages to the settings tab of the Achievements dialog.
2023-10-01 11:24:48 -04:00
LillyJadeKatrin
6d96b7173e
Handle Achievement Progress Event
...
Added handling to Achievement Progress Events, which are generated when an achievement with a Measured field updates in value. For example, an achievement for collecting 120 stars will throw this event when the player collects each star, and with this handling, the player will get a message on screen informing them of this progress. This message will only appear if the newly added RA_PROGRESS_ENABLED setting is true.
2023-10-01 11:24:48 -04:00
LillyJadeKatrin
c8b1379113
Added error checking and logging to AchievementManager::GetAchievementProgress.
2023-10-01 10:27:57 -04:00
Admiral H. Curtiss
b2e016f012
Merge pull request #12214 from JosJuice/android-backtick
...
Android: Remove a stray backtick
2023-10-01 16:05:02 +02:00
Admiral H. Curtiss
404a47af77
Merge pull request #12025 from LillyJadeKatrin/retroachievements-badges
...
RetroAchievements - Badges
2023-10-01 15:55:13 +02:00
LillyJadeKatrin
335cf4f2db
Added CopyReader to BlobReader and all subclasses
...
A deep-copy method CopyReader has been added to BlobReader (virtual) and all of its subclasses (override). This should create a second BlobReader to open the same set of data but with an independent read pointer so that it doesn't interfere with any reads done on the original Reader.
As part of this, IOFile has added code to create a deep copy IOFile pointer onto the same file, with code based on the platform in question to find the file ID from the file pointer and open a new one. There has also been a small piece added to FileInfo to enable a deep copy, but its only subclass at this time already had a copy constructor so this was relatively minor.
2023-10-01 09:04:06 -04:00
JosJuice
d8e00c98e8
Android: Remove a stray backtick
2023-10-01 13:37:04 +02:00
LillyJadeKatrin
63c407ad7c
Add toggle button for badges to achievement settings
...
Button toggles whether badges are downloaded. When turned on, makes a call to AchievementManager to download badges.
2023-09-30 23:29:02 -04:00
LillyJadeKatrin
80d77cfdad
Added colored borders to badges in achievements dialog
...
The achievement badges will now have a blue or gold border to identify whether they have been unlocked in softcore or hardcore mode. Similarly, the game badge will have a blue border if all achievements have been unlocked in either mode or a gold border if all achievements have been unlocked in hardcore mode.
2023-09-30 23:29:02 -04:00
LillyJadeKatrin
ba83efded6
Added badges to achievement progress tab
...
Provided the badges are turned on in the settings, each achievement will have a badge next to it on the progress tab. There are different badges for locked and unlocked (usually locked is grayscale while unlocked is in color but not necessarily) and the badge chosen depends on the player's current unlock and hardcore status.
2023-09-30 23:29:02 -04:00
LillyJadeKatrin
0715da2d68
Added player and game badges to Achievements dialog header
...
Provided badges are turned on, if there's a player logged in their RetroAchievements icon will appear next to their player info in the header of the Achievements dialog. If they're playing a game, so will the icon for the game. Also performed some refactoring and reorganizing to the header as a whole so that it looks consistent whether a game is running or not.
2023-09-30 23:29:02 -04:00
LillyJadeKatrin
fd50b1fda6
Added FetchBadges to AchievementManager
...
FetchBadges fetches all available badges (player, game, achievements) and stores them in AchievementManager's memory. New fields and accessors have been added as necessary. Badges for individual achievements are stored in the UnlockStatus map. The method is public so that the settings dialog can call it if badges are turned on after a game is started. Badges are deleted at game close and logout.
2023-09-30 14:18:15 -04:00
JosJuice
02d76ba2a0
Jit: Fix fastmem initialization order
...
When evaluating whether jo.fastmem should be set to true, we check the
value of jo.fastmem_arena. However, due to a change made in 28e8117b90
,
jo.fastmem_arena wasn't set until after the first time we set
jo.fastmem, so jo.fastmem would end up always being false until the next
time RefreshConfig was called.
Fixes https://bugs.dolphin-emu.org/issues/13364 .
2023-09-30 16:16:54 +02:00
JosJuice
9e0fea8fc7
PowerPC: Flip the order of frsqrte_expected
...
This makes the the frsqrte routines one instruction shorter.
2023-09-30 11:41:27 +02:00
Pablo Stebler
cc403c1044
DSPHLE: handle offsets to a different memory region
2023-09-29 20:48:10 +02:00
Pablo Stebler
8cdad9ce8c
DSPHLE: map memory based on console mode
2023-09-29 20:48:10 +02:00
Admiral H. Curtiss
7c995000ae
Merge pull request #12206 from malleoz/ppc_reg_location_assert_improvement
...
PowerPC: reduce location assert cost
2023-09-29 20:08:05 +02:00
LillyJadeKatrin
6541aa206d
Added RequestImage to AchievementManager
...
Image requests from RetroAchievements have a slightly different format from other requests, on account of being GET calls that return strings of image data, so this is a separate function that makes such calls. To handle this, I create a BadgeStatus object that ties each badge to a boolean flag for whether it is loaded and thus usable.
2023-09-28 22:47:15 -04:00
sowens99
60e331e2e1
PowerPC: reduce location assert cost
2023-09-28 19:57:03 -04:00
Admiral H. Curtiss
a310b32525
Merge pull request #12207 from malleoz/decrease_emulation_speed_rollover_fix
...
DolphinQt: Fix decrease emulation speed hotkey rollover
2023-09-28 21:55:15 +02:00
Admiral H. Curtiss
908f90191d
Merge pull request #12204 from LillyJadeKatrin/retroachievements-bugfix
...
Retroachievements bugfix
2023-09-28 21:31:43 +02:00
LillyJadeKatrin
50f04ea456
Refactored FetchGameData to incorporate the request directly instead of a different method, so that game_data can be processed directly under a lock.
2023-09-28 00:57:22 -04:00
LillyJadeKatrin
6036a6db55
Updated AchievementManager StartRASession to properly lock inputs and outputs without locking during the network call.
2023-09-28 00:55:58 -04:00
LillyJadeKatrin
7153284e9f
Updated AchievementManager ResolveHash to properly lock inputs and outputs without locking during the network call.
2023-09-28 00:55:58 -04:00
LillyJadeKatrin
a29ec7d956
Updated AchievementManager VerifyCredentials to properly lock inputs and outputs without locking during the network call.
2023-09-28 00:55:58 -04:00
LillyJadeKatrin
3c564078cd
Added AchievementManager ResponseType EXPIRED_CONTEXT for when operation inputs change between when an operation is queued and executed, and MALFORMED_OBJECT for when an rcheevos process method goes wrong.
2023-09-28 00:55:58 -04:00
LillyJadeKatrin
31091fc975
Added GameLoaded check to AchievementProgressWidget.
2023-09-28 00:55:58 -04:00
LillyJadeKatrin
b53962fd23
Cleaned up some issues with AchievementManager::CloseGame.
2023-09-28 00:55:57 -04:00
Admiral H. Curtiss
45c8597082
Merge pull request #12201 from fabricecaruso/master
...
SaveStates : Fix MainWindow.m_state_slot is not restored from Qt.ini Emulation/StateSlot.
2023-09-28 05:30:48 +02:00
Patrick Ferry
9e950c6959
Use Vertex Depth Range when zRange Exceeds farZ
...
When the inverted depth range is unsupported and zRange is greater than farZ then min_depth becomes a negative value and far_depth will then exceed a depth of 1.0 (which is outside the scope of most backends and greater than GX_MAX_DEPTH of the console).
This happens when the backend supports depth clamping the min_depth is not clamped to zero.
2023-09-28 04:17:56 +01:00
Admiral H. Curtiss
5b6844901f
Merge pull request #12205 from LillyJadeKatrin/retroachievements-bugfix-2
...
AchievementsWindow: Fix rapid popups on initial opening.
2023-09-28 04:21:48 +02:00
Admiral H. Curtiss
a7c5f2fd14
Merge pull request #12200 from itsmattkc/pipe-fifo-fix
...
FileUtil: Don't try to retrieve size for FIFO pipe
2023-09-28 04:14:41 +02:00
Fabrice CARUSO
2b2fd4217e
SaveStates: Fix MainWindow.m_state_slot is not restored from Qt.ini Emulation/StateSlot.
...
Select slot 2 and exit & launch Dolphin again. Slot 2 is selected in the menu, but saving from selected slot saves to slot 1.
2023-09-28 04:12:49 +02:00
Admiral H. Curtiss
53df01f7d8
Merge pull request #12172 from ArcaneNibble/sd
...
Steam Deck: Periodically reenable gyro
2023-09-28 04:10:27 +02:00
sowens99
eac318a1d8
DolphinQt: Fix decrease emulation speed hotkey rollover
2023-09-27 21:40:16 -04:00
LillyJadeKatrin
2a9121b66f
Reorganized the first-round AchievementsWindow startup to prevent items from being visible before their parents, thus getting rid of the rapid popups.
2023-09-26 23:31:04 -04:00
deReeperJosh
d0de837efd
HIDv4: Check Device Not Null Before Attaching
2023-09-26 18:10:29 +01:00
MattKC
e16753472c
FileUtil: Don't try to retrieve size for FIFO pipe
2023-09-24 19:36:15 -07:00
Sketch
def6cb0155
IOS/KD: Fix crash with KD Scheduler
2023-09-24 20:37:20 -04:00
Admiral H. Curtiss
15f42eb5d8
Merge pull request #12195 from LillyJadeKatrin/retroachievements-logging
...
Added log statements across AchievementManager.
2023-09-24 17:13:36 +02:00
JosJuice
117bfd326d
Merge pull request #12197 from t895/double-numeric-settings-fix
...
Android: Float slider settings fix
2023-09-24 15:33:24 +02:00
Admiral H. Curtiss
c67cd65b53
Merge pull request #12190 from AdmiralCurtiss/fmt10
...
Update fmt to 10.1.1
2023-09-24 00:05:00 +02:00
Admiral H. Curtiss
c0f690b780
Merge pull request #12193 from malleoz/malleo/mem2_search
...
Debugger/Memory: Fix mem2 search
2023-09-24 00:02:18 +02:00
Charles Lombardo
fa37336ba3
Android: Adjust settings slider dialog
...
Move text above slider
2023-09-23 10:58:29 -04:00
Charles Lombardo
f205a20d3f
Android: Use 0.5 unit step size and show decimal for numeric settings
...
In some settings where the default value could not be evenly divided by the step size for the slider, there would be a crash. This increases the precision of all double numeric settings to 0.5 and now shows the decimal that you couldn't see before.
2023-09-23 10:48:23 -04:00
LillyJadeKatrin
da00191eb6
Added log statements across AchievementManager.
2023-09-23 01:32:43 -04:00
sowens99
98dd10a716
Debugger/Memory: Fix unable to search mem2
2023-09-21 23:54:07 -04:00
JosJuice
24950ce0e0
JitArm64: Check packed NaNs without using extra register
...
A small optimization for AccurateNaNs.
2023-09-21 18:19:12 +02:00
JosJuice
8dbbae76de
Jit64: Optimize ps_merge01 with Rd == Rb
2023-09-21 18:03:39 +02:00
get
63467559b2
fmt 10.0.0-10.1.1 compile fixes
...
Implicit conversion operators and enums was removed for parity with std::format (fce74caa15
).
2023-09-21 01:19:23 +02:00
Charles Lombardo
f13b29196d
Android: Use custom image loader for game covers
...
This fixes a bug where custom cover loading was initiated but would finish by the time another image view would be in the place of the previous one.
2023-09-20 14:36:58 -04:00
Admiral H. Curtiss
579ccb0710
Merge pull request #12160 from AdmiralCurtiss/achievement-log
...
Common/LogManager: Add logging category for Achievements.
2023-09-19 22:01:15 +02:00
JosJuice
9862ba4548
Merge pull request #12155 from krnlyng/jit_block_map_msr_fast
...
JitArm64/Jit64: Extend the fast lookup mmap-ed segment further to avoid needing to check the msr bits.
2023-09-17 15:13:53 +02:00
JosJuice
a79fe768e3
Jit64: Simplify ps_sum1
2023-09-17 11:04:37 +02:00
Admiral H. Curtiss
cc7fadfa4b
Merge pull request #12181 from JosJuice/curl-response-code-long
...
Common: Fix HttpRequest::GetLastResponseCode stack corruption
2023-09-16 16:48:47 +02:00
JosJuice
aa4de6516f
Common: Fix HttpRequest::GetLastResponseCode stack corruption
...
Should fix https://bugs.dolphin-emu.org/issues/13353 .
2023-09-16 16:01:28 +02:00
Frajo Haider
fd9c970621
JitArm64/Jit64: Extend the fast lookup mmap-ed segment further to avoid needing to check the msr bits.
...
And in order to avoid a double dereference in the dispatcher, directly store
the normalEntry in the map.
The index to the block map becomes ((((DR<<1) | IR) << 30) | (address >> 2)).
This has been chosen since the msr bits change less often than the address,
thus we keep nearby entries together.
Also do not call the C dispatcher in case the assembly dispatcher didn't
find a block, since it wouldn't find a block either due to the 1:1 mapping,
except when falling back to the non shm segment lookup table.
2023-09-15 19:46:15 +03:00
Admiral H. Curtiss
1a821465f4
Merge pull request #12166 from iwubcode/cubemap_shader_texture_integration
...
VideoCommon: add cubemap to ShaderAsset and TextureAsset
2023-09-12 16:56:26 +02:00
Admiral H. Curtiss
308a52a782
Merge pull request #12165 from noahpistilli/scheduler-downloader
...
IOS/KD: Implement Download Scheduler
2023-09-12 16:22:23 +02:00
Admiral H. Curtiss
3dada564bf
Merge pull request #12177 from AdmiralCurtiss/noreserve
...
Common/MemArena: Set MAP_NORESERVE in LazyMemoryRegion on Linux.
2023-09-12 16:21:59 +02:00
JosJuice
392dfbe05f
JitArm64: Deduplicate the gather pipe exception check
...
We had two nearly identical copies of the gather pipe exception checking
code right next to each other, with the only difference being the
register used. Let's unify them, like in Jit64.
2023-09-10 16:34:10 +02:00
Admiral H. Curtiss
d16bedd5c4
Merge pull request #12178 from JosJuice/jit-gp-pc
...
Jit: Use correct address when checking fifoWriteAddresses
2023-09-10 15:58:23 +02:00
Admiral H. Curtiss
92d67df4e9
Merge pull request #12138 from JosJuice/jit-gp-check-discard
...
Jit: Don't discard before gather pipe interrupt check
2023-09-10 15:10:37 +02:00
Admiral H. Curtiss
7869abf0e6
Common/MemArena: Set MAP_NORESERVE in LazyMemoryRegion on Linux.
2023-09-10 14:52:34 +02:00
Sketch
3f6a976e0f
IOS/KD: Implement Download Scheduler
2023-09-10 07:47:15 -04:00
JosJuice
34b0a6ea90
Jit: Check for discarded registers when flushing
...
This adds a check for the bug addressed by the previous commit.
2023-09-10 12:54:52 +02:00
JosJuice
5902b5b113
PPCAnalyst: Don't discard before gather pipe interrupt check
...
This bug has been lurking in the code ever since I added the discard
functionality. It doesn't seem to be triggered all that often,
and on top of that the emitted code only runs conditionally, so I'm not
sure if people have been affected by this bug in practice or not.
2023-09-10 12:54:52 +02:00
JosJuice
f7f4da2be8
Jit: Use correct address when checking fifoWriteAddresses
...
We need to check for the address of the *previous* instruction, because
checking fifoWriteAddresses happens not at the end of the instruction
that triggered it but at the start of the next instruction.
2023-09-10 12:54:18 +02:00
Admiral H. Curtiss
1a0f0e7e96
Merge pull request #12081 from JosJuice/jitarm64-debug-exit-pc
...
JitArm64: Store PC on debug exit
2023-09-10 02:10:29 +02:00
Admiral H. Curtiss
5e0cf795e3
Merge pull request #12169 from jordan-woyak/widescreen-heuristic-gameini
...
VideoCommon: Expose the widescreen heuristic's standard and widescreen values in onion config.
2023-09-09 16:51:11 +02:00
Admiral H. Curtiss
911c469cf5
Common/LogManager: Add logging category for Achievements.
2023-09-09 14:47:20 +02:00
R
860acfb15d
Steam Deck: Periodically reenable gyro
2023-09-07 19:56:58 +01:00
JosJuice
57e56f4bc2
Merge pull request #12174 from AdmiralCurtiss/jitcache-32bit
...
Core/JitCache: Don't try to allocate the fast block map on 32-bit builds.
2023-09-07 19:29:04 +02:00
Admiral H. Curtiss
cf2a1f29b7
Core/JitCache: Don't try to allocate the fast block map on 32-bit builds.
2023-09-07 14:48:57 +02:00
Admiral H. Curtiss
422bc7a627
Common/MemArena: A zero-byte allocation is invalid.
2023-09-07 14:41:24 +02:00
Admiral H. Curtiss
c14bc6ea4c
Common/MemArena: mmap returns MAP_FAILED on error, not nullptr.
2023-09-07 13:59:33 +02:00
Admiral H. Curtiss
a20bb3e05b
Common/MemArena: Assert return value of LazyMemoryRegion::Clear()'s mmap() call.
2023-09-07 04:00:22 +02:00
Jordan Woyak
7cc4304918
VideoCommon: Expose the widescreen heuristic's standard and widescreen ratio values in onion config.
2023-09-06 18:45:28 -05:00
JMC47
c0440df288
Merge pull request #12029 from LillyJadeKatrin/retroachievements-bugfix-2
...
RetroAchievements - Rearranged startup process
2023-09-06 12:23:52 -04:00
JMC47
3b5b9e0fc0
Merge pull request #12028 from LillyJadeKatrin/retroachievements-bugfix
...
RetroAchievements - Add Rich Presence to Achievement Dialog Header
2023-09-06 12:20:20 -04:00
LillyJadeKatrin
38bd04c439
Add Rich Presence to Achievement Dialog Header
...
This refactors the Rich Presence generation to store to a member field that can be exposed to the UI to display the Rich Presence in the achievement header. It still updates at its original rate of once per two minutes, but calls an update on the dialog when that ticks.
2023-09-06 10:01:33 -04:00
iwubcode
589834f562
VideoCommon: add cubemap as a sampler target for shaders, add cubemap as a valid texture asset
2023-09-05 21:11:19 -05:00
JMC47
76a00551d1
Merge pull request #11419 from OatmealDome/widescreen
...
VideoCommon: Allow widescreen heuristic's constants to be overridden by onion config
2023-09-05 13:25:07 -04:00
OatmealDome
4938b99600
VertexManagerBase: Allow widecreen heuristic constants to be overriden by onion config
2023-09-05 11:50:49 -04:00
OatmealDome
de781a6fa7
RenderBase: Allow widescreen heuristic's transition threshold to be overridden by onion config
2023-09-05 11:49:22 -04:00
JMC47
9419d92446
Merge pull request #12139 from iwubcode/more_shader_texture_properties
...
VideoCommon: add additional texture sampler types to ShaderAsset
2023-09-04 22:45:56 -04:00
JMC47
82ea4f4c70
Merge pull request #12137 from iwubcode/custom_pipeline_more_error_checking
...
VideoCommon: additional error checking for CustomPipelineAction
2023-09-04 22:43:41 -04:00
JMC47
627282473b
Merge pull request #12136 from iwubcode/texture_metadata_struct
...
VideoCommon: add TextureData structure with metadata
2023-09-04 22:40:50 -04:00
Pokechu22
d0afe36269
Disable Arbitrary Mipmap Detection checkbox when GPU Texture Decoding is enabled
...
See https://bugs.dolphin-emu.org/issues/13049
2023-09-04 13:24:05 -07:00
Pokechu22
b969d89103
Disable Texture Filtering dropdown when Manual Texture Sampling is checked
...
See https://bugs.dolphin-emu.org/issues/13049
2023-09-04 13:24:03 -07:00
JMC47
efabcaf6ea
Merge pull request #12159 from noahpistilli/evc+rgnsel
...
Add Everybody Votes Channel and Region Select to WiiLink config
2023-09-04 12:00:02 -04:00
LillyJadeKatrin
348e60cd3f
Rearranged RetroAchievements startup process
...
Moved AchievementManager Init further down in the MainWindow constructor; its original position was because it had an impact on the contents of the menu bar, and this is no longer the case.
2023-09-04 09:32:13 -04:00
OatmealDome
3e9c9a3e8d
Merge pull request #12004 from TellowKrinkle/MetalMultiTarget
...
VideoBackends:Metal: Multi render target support
2023-09-03 23:31:38 -04:00
JMC47
900439ea0d
Merge pull request #12102 from iwubcode/cubemap_custom_texture
...
VideoCommon: add ability to load cube maps into custom texture data
2023-09-03 18:29:00 -04:00
Sketch
fb852a5062
VideoCommon: Deinit Graphics Mod Manager implicitly
2023-09-03 16:06:08 -04:00
Sketch
fdaa82f96d
Add Everybody Votes Channel and Region Select to WiiLink config
2023-09-03 15:56:02 -04:00
JosJuice
32f4f3ae7c
Merge pull request #12152 from JosJuice/android-settings-nullable
...
Android: Get rid of unnecessary nullability in features.settings
2023-09-03 19:53:30 +02:00
Admiral H. Curtiss
143a13622f
Merge pull request #12108 from noahpistilli/kd-check-mail
...
IOS/KD: Implement NWC24_CHECK_MAIL_NOW
2023-09-03 19:52:26 +02:00
Sketch
2154941c2c
IOS/KD: Implement NWC24_CHECK_MAIL_NOW
2023-09-03 13:05:58 -04:00
JosJuice
c378365324
Android: Get rid of unnecessary nullability in features.settings
2023-09-03 17:44:26 +02:00
JosJuice
26e9294075
Merge pull request #12153 from JosJuice/android-iso-paths-jni
...
Android: Use JNI for setting/getting ISO paths
2023-09-03 17:38:52 +02:00
JosJuice
57b1bd2b1a
Merge pull request #12151 from JosJuice/android-controller-float
...
Android: Fix controller float sliders crashing
2023-09-03 17:38:42 +02:00
Admiral H. Curtiss
f063fb31b3
Merge pull request #12149 from noahpistilli/no-response-header-rsa
...
IOS/KD: Check if a file has an RSA signature
2023-09-03 03:50:18 +02:00
Sketch
fa2bc535f1
IOS/KD: Check if a file has an RSA signature
2023-09-02 21:39:54 -04:00
Admiral H. Curtiss
46a596c0d3
Merge pull request #12148 from Dentomologist/fifo_convert_memoryupdate_type_to_enum_class
...
Fifo: Convert MemoryUpdate::Type to enum class
2023-09-03 03:34:35 +02:00
iwubcode
62fee2f3b6
VideoCommon: add loading cube maps from DDS files and loading it into our custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice
2023-09-02 20:20:09 -05:00
Dentomologist
9cabf20aaa
Fifo: Convert MemoryUpdate::Type to enum class
2023-09-02 18:19:26 -07:00
Admiral H. Curtiss
6d04618921
Merge pull request #12157 from Dentomologist/texturecachebase_add_m_prefix
...
TextureCacheBase: Add m_ prefix to member variables
2023-09-03 03:10:57 +02:00
JMC47
bd57d17dee
Merge pull request #12079 from JosJuice/blr-no-fastmem
...
Jit: Allow BLR optimization without fastmem
2023-09-02 12:45:39 -04:00
JosJuice
190e71a318
Android: Use JNI for setting/getting ISO paths
...
This gets rid of the last Android-specific code that directly interfaces
with INI files.
2023-09-02 12:58:20 +02:00
JosJuice
1c47c510cd
Android: Remove all uses of Any from SliderSetting
...
This makes casting unnecessary, preventing the kind of type error we
just had from occurring in the future.
2023-09-02 10:05:42 +02:00
JosJuice
e6138d7683
Android: Fix controller float sliders crashing
...
By not setting a stepSize, stepSize was getting set to the default
value of 0, which is an Int. This later caused a crash when trying to
cast it to Float.
2023-09-02 09:12:42 +02:00
Dentomologist
d5d3eb5025
TextureCacheBase: Add m_ prefix to member variables
2023-09-01 22:52:17 -07:00
Admiral H. Curtiss
f1c1c6ded6
JitCache: Fix potentially dangling pointer to fast block map.
...
Whenever JitBaseBlockCache::Clear() got called, it threw away the memory mapping for the fast block map and created a new one. This new mapping typically got mapped at the same address at the old one, but this is not guaranteed. The pointer to the mapping gets embedded in the generated dispatcher code in Jit64AsmRoutineManager::Generate(), which is only called once on game boot, so if the new mapping ended up at a different address than the old one, the pointer in the ASM pointed at garbage, leading to a crash.
This fixes the issue by guaranteeing that the new mapping is mapped at the same address.
2023-09-02 04:03:22 +02:00
Admiral H. Curtiss
5bd7756064
Common/MemArena: Add LazyMemoryRegion to represent a zero-initialized memory region whose pages are only allocated on first access.
2023-09-02 04:02:10 +02:00
Charles Lombardo
5e5887a378
Merge pull request #12095 from t895/color-space-settings
...
Android: Expose color space settings
2023-08-30 10:07:07 -04:00
JMC47
efa820763a
Merge pull request #12147 from Dentomologist/pagefaulttest_use_gtest_skip
...
PageFaultTest: Use GTEST_SKIP instead of early return
2023-08-29 17:38:31 -04:00
JosJuice
4131dffae9
Jit: Allow BLR optimization without fastmem
...
While both fastmem and the BLR optimization depend on fault handling,
the BLR optimization doesn't depend on fastmem, and there are cases
where you might want the BLR optimization but not fastmem. For me
personally, it's useful when I try to use a debugger on Android and have
to disable fastmem so I don't get SIGSEGVs all the time, but it would be
especially useful for iOS users.
2023-08-29 22:55:29 +02:00
JosJuice
af2c32635a
Jit: Add more error checking to ProtectStack
2023-08-29 22:46:50 +02:00
JMC47
1b2d0c0507
Merge pull request #10575 from JosJuice/jitbase-auto-clear
...
Jit: Automatically clear cache when JIT settings are updated
2023-08-29 15:56:25 -04:00
Dentomologist
75a62e116c
PageFaultTest: Use GTEST_SKIP instead of early return
...
Using GTEST_SKIP instead of just returning from the function shows that
a test was skipped in the test summary. If GTEST_SKIP is called the rest
of the function won't be run, just like with the return.
GTEST_SKIP wasn't available until gtest 1.10, and we updated to 1.12 in
597f8f1b87
.
2023-08-29 12:24:11 -07:00
JosJuice
8c2c665af3
Jit: Check MSR state in BLR optimization
...
When we execute a JIT block, we have to make sure that both the PC and
the DR/IR bits of MSR are the same as they were when the block was
compiled. When jumping to a block from the dispatcher, this is done in
the way you would expect: By checking the PC and the relevant MSR bits.
However, when returning to a block using the BLR optimization, we only
check the PC. Checking the MSR bits is done by instead resetting the
stack when the MSR changes, making PC checks afterwards fail.
Except... We were only resetting the stack on rfi instructions. There
are actually many more ways for the MSR to change, and we weren't
covering those at all. I looked into resetting the stack on all of them,
but it would be pretty cumbersome both in terms of writing the code and
in terms of how often at runtime we'd have to reset the stack, so I
think the better option would be to check the MSR bits along with the
PC. That's what this commit implements.
2023-08-29 19:05:26 +02:00
Admiral H. Curtiss
69db8a615f
Merge pull request #12145 from JosJuice/ubershaderpixel-uint
...
VideoCommon: Fix GLSL uint handling in UberShaderPixel
2023-08-29 12:33:54 +02:00
Charles Lombardo
53fc3446d5
Android: Support settings with float values
...
We did support float settings before but we never showed anything past the decimal place before.
2023-08-29 00:30:03 -04:00
Charles Lombardo
80b329b77f
Android: Expose color correction settings
2023-08-29 00:20:16 -04:00
Admiral H. Curtiss
df120b0630
Merge pull request #12000 from Filoppi/window_res_fix
...
Video: Fix issues with the window presentation
2023-08-28 23:50:50 +02:00
Admiral H. Curtiss
357db03fc8
Merge pull request #12030 from LillyJadeKatrin/retroachievements-bugfix-3
...
RetroAchievements - Fixed Leaderboard Scored message format
2023-08-28 23:28:37 +02:00
Charles Lombardo
153a95482a
Merge pull request #12119 from ThunderousEcho/feature/latching-buttons
...
Added latching buttons (Android)
2023-08-28 15:32:47 -04:00
JosJuice
5b112dbf2c
VideoCommon: Fix GLSL uint handling in UberShaderPixel
2023-08-28 21:17:01 +02:00
Charles Oliner
ee395bb2e5
Added latching buttons
...
Added latching buttons, buttons which turn on when you press them and off when you press them again.
2023-08-27 13:28:53 -04:00
JosJuice
b922f4baa6
JitArm64: Write PC when calling MMU.cpp
...
This functionality was in Jit64 but not JitArm64.
2023-08-27 18:45:34 +02:00
JosJuice
58f247290f
Use latest resolution value for resolution hotkey OSD
...
Because CPU thread config changed callbacks are no longer instant,
g_Config.iEFBScale doesn't yet contain the new value when the hotkey OSD
code tries to read it.
Should fix https://bugs.dolphin-emu.org/issues/13343 .
2023-08-27 15:38:00 +02:00
JosJuice
7ac0db70c6
Merge pull request #12086 from krnlyng/jitcompilerPCload
...
JitArm64: Avoid loading compilerPC multiple times if it's already in a register.
2023-08-27 10:05:11 +02:00
iwubcode
f982c556b5
VideoCommon: add additional texture sampler types to ShaderAsset
2023-08-26 12:12:37 -05:00
JosJuice
f9959656e7
Merge pull request #11919 from t895/kotlin-controls
...
Android: Convert "features.input" package to Kotlin
2023-08-26 19:10:56 +02:00
Frajo Haider
7daa19f40d
JitArm64: Avoid loading compilerPC multiple times if it's already in a register.
2023-08-26 18:14:07 +03:00
JosJuice
85281e76ee
Jit: Remove unnecessary member variables
2023-08-26 17:05:04 +02:00
JosJuice
07d70db46b
DolphinQt: Allow toggling most JIT debug settings at any time
...
There's no reason not to allow this now that these settings are
cleanly integrated into the new config system. (Actually, maybe
we could even have done this before the previous commit...)
2023-08-26 17:05:04 +02:00
JosJuice
28e8117b90
Jit: Automatically clear cache when JIT settings are updated
...
This fixes a problem where changing the JIT debug settings on
Android while a game was running wouldn't cause the changed settings
to apply to code blocks that already had been compiled.
2023-08-26 17:04:56 +02:00
JosJuice
cd31da97d6
Merge pull request #11191 from JosJuice/jitarm64-no-checked-entry
...
JitArm64: Never check downcount on block entry
2023-08-26 17:00:08 +02:00
Admiral H. Curtiss
799ce0dc9d
Merge pull request #12097 from Dentomologist/ios_remove_unused_member_variables
...
IOS: Remove unused member variable from SharedContentMap and UIDSys
2023-08-26 16:41:45 +02:00
Admiral H. Curtiss
2502e412b3
Merge pull request #12117 from JosJuice/config-callback-cpu
...
Don't call RunAsCPUThread in config callbacks
2023-08-26 16:34:46 +02:00
Admiral H. Curtiss
d8e35438bd
Merge pull request #12127 from sepalani/ascii_
...
MemoryViewWidget: Fix some characters being truncated
2023-08-26 14:56:26 +02:00
Admiral H. Curtiss
65a9be581f
Merge pull request #12121 from JosJuice/discscrubber-volume-ptr
...
DiscIO: Don't keep volume pointer in DiscScrubber
2023-08-26 14:31:15 +02:00
Admiral H. Curtiss
dec2990053
Merge pull request #12128 from Dentomologist/gcc_suppress_ppcstate_off_warning_spam
...
GCC: Suppress PPCSTATE_OFF invalid-offsetof warnings
2023-08-26 14:22:04 +02:00
Admiral H. Curtiss
e876045e56
Merge pull request #12135 from Dentomologist/jitarm64_resolve_deprecated_enum_conversion_warning
...
JitArm64: Resolve deprecated enum conversion warning
2023-08-26 14:18:58 +02:00
Admiral H. Curtiss
5c4671f573
Merge pull request #12126 from JosJuice/small-vector
...
Move SmallVector to Common
2023-08-26 14:15:18 +02:00
Charles Lombardo
6a19629fc6
Android: Convert TvSettingsItem to Kotlin
2023-08-25 14:54:17 -04:00
Charles Lombardo
ed9467dc1b
Android: Convert HomeScreenChannel to Kotlin
2023-08-25 14:54:17 -04:00
Charles Lombardo
09c2c6541d
Android: Convert GameFileCache to Kotlin
2023-08-25 14:54:17 -04:00
Charles Lombardo
a56ee1a62e
Android: Convert GameFile to Kotlin
2023-08-25 14:54:16 -04:00
Charles Lombardo
0e3b33d901
Android: Convert InputMappingControlSettingViewHolder to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
6caa4307ac
Android: Convert ProfileViewHolder to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
29e5c78541
Android: Convert ProfileDialogPresenter to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
6ad18e4ee5
Android: Convert ProfileAdapter to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
dfafa74ba1
Android: Convert MotionAlertDialog to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
5171290bdb
Android: Convert AdvancedMappingDialog to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
d049be0cad
Android: Convert AdvancedMappingControlViewHolder to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
dac7035119
Android: Convert AdvancedMappingControlAdapter to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
d21b2d86a8
Android: Convert InputMappingControlSetting to Kotlin
2023-08-25 14:20:33 -04:00
Charles Lombardo
9d7bd6e6bd
Android: Convert InputDeviceSetting to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
2590382871
Android: Convert MappingCommon to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
f8ab65bcac
Android: Convert InputOverrider to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
cb9c670d85
Android: Convert InputMappingIntSetting to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
60b3b1231b
Android: Convert InputMappingDoubleSetting to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
b2e2c3b8d4
Android: Convert InputMappingBooleanSetting to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
4c8cd49d80
Android: Convert DolphinVibratorManagerPassthrough to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
29adbb4394
Android: Convert DolphinVibratorManagerCompat to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
1ff6a3788e
Android: Convert DolphinVibratorManager to Kotlin
2023-08-25 14:20:32 -04:00
Charles Lombardo
ba9f2373c0
Android: Convert DolphinSensorEventListener to Kotlin
2023-08-25 14:20:31 -04:00
Charles Lombardo
24c882622f
Android: Convert ControllerInterface to Kotlin
2023-08-25 14:20:31 -04:00
Charles Lombardo
9ac1847cbd
Android: Convert NumericSetting to Kotlin
2023-08-25 14:20:31 -04:00
Charles Lombardo
82298dc408
Android: Convert CoreDevice to Kotlin
2023-08-25 14:20:31 -04:00
Charles Lombardo
3011c0dc64
Android: Convert EmulatedController to Kotlin
2023-08-25 13:31:21 -04:00
Charles Lombardo
4ce069cf4f
Android: Convert ControlReference to Kotlin
2023-08-25 13:31:04 -04:00
Charles Lombardo
7c79ff0100
Android: Convert ControlGroup to Kotlin
2023-08-25 13:30:42 -04:00
Charles Lombardo
fafbb2199e
Android: Convert Control to Kotlin
2023-08-25 13:30:23 -04:00
Charles Lombardo
0454578f45
Android: Convert ControlGroupEnabledSetting to Kotlin
2023-08-25 10:08:50 -04:00
iwubcode
9223540bf4
VideoCommon: additional error checking for CustomPipelineAction and move the pixel shader asset cache time back to being calculated during texture creation
2023-08-24 00:47:48 -05:00
iwubcode
7c52a52440
VideoCommon: add TextureData structure that contains the raw texture data, a sampler, and the type of texture information
2023-08-24 00:35:31 -05:00
Dentomologist
a650a16f4c
JitArm64: Resolve deprecated enum conversion warning
...
Resolve warning caused by using values from two different enums in a
conditional expression which was deprecated in c++20.
The warning in question is clang -Wdeprecated-anon-enum-enum-conversion
and gcc -Wenum-compare.
2023-08-23 14:38:52 -07:00
JosJuice
ba99d17ac0
VideoCommon: Fix custom shader constants on GLES
2023-08-22 19:38:18 +02:00
Admiral H. Curtiss
4223cd0264
Merge pull request #12130 from JosJuice/translation-fixes
...
Fixes to translatable strings
2023-08-22 16:44:36 +02:00
JosJuice
6e88c44d5d
Move SmallVector to Common
...
We had one implementation of this type of data structure in Arm64Emitter
and one in VideoCommon. This moves the Arm64Emitter implementation to
its own file and adds begin and end functions to it, so that VideoCommon
can use it.
You may notice that the license header for the new file is CC0. I wrote
the Arm64Emitter implementation of SmallVector, so this should be no
problem.
2023-08-22 13:19:49 +02:00
iwubcode
55fba7c0ed
VideoCommon/GraphicsModAsset: Error out if config key is not a string.
2023-08-22 02:40:08 +02:00
Admiral H. Curtiss
dbe6a5f7e4
Merge pull request #11300 from iwubcode/custom-shaders
...
VideoCommon: add a graphics mod action that allows you to modify the game's base rendering
2023-08-22 02:18:40 +02:00
Dentomologist
58ab94c30c
GCC: Suppress PPCSTATE_OFF invalid-offsetof warnings
...
Modify PPCSTATE_OFF and PPCSTATE_OFF_ARRAY macros when using GCC to
avoid useless log spam. Specifically, use a consteval lambda with gcc
_Pragma statements to disable the -Winvalid-offsetof warning inside the
macros.
Each successful build (and many failing ones) on the Android buildbot
generates almost 300 cases of -Winvalid-offsetof, resulting in thousands
of lines of log spam per build. In addition to bloating the log filesize
these spurious warnings make it harder to find actual warnings.
These warnings are generated by calls to the macros PPCSTATE_OFF and
PPCSTATE_OFF_ARRAY, which in turn are used by many other macros used by
the JIT. The ultimate cause is that offsetof is only conditionally
supported on non-standard-layout types, which includes the PowerPCState
struct.
To address potential questions of whether there's a better way to handle
this:
The obvious solution would be to modify PowerPCState so that it does
have a standard layout. This is unfortunately impractical.
To have a standard layout a type can only contain other types with
standard layouts. None of the stl containers are guaranteed to have
standard layouts, and PowerPCState contains a std::tuple and std::array.
PowerPCState also contains a PowerPC::Cache and InstructionCache which
themselves contain std:arrays and std::vectors.
Furthermore InstructionCache derives from Cache, and a derived class can
only have standard layout if at most one class in its hierarchy has a
non-static data member, but both classes have such members. Making
InstructionCache have a standard layout would require duplicating all
the functionality of Cache so it no longer derived from it, as well as
replacing the stl containers. This might require having a raw pointer to
said containers, with the manual memory management that implies.
All of that would be much more disruptive than would be justified to get
rid of some warnings (however annoying they might be). This is
compounded by the fact that PowerPCState hasn't had a standard layout
for a long time, if ever, and if the PPCSTATE_OFF macros weren't working
reliably it would have become obvious a long time ago.
As to why I picked the lambda solution over other potential changes:
- Keeping the define as-is and wrapping some gcc #pragmas around it
doesn't work because the pragmas don't get included when the define is
substituted to the call site.
- Keeping the define as a non-lambda expression and using inline
_Pragma() statements would ideally be better and works fine for msvc,
but fails for GCC with "'#pragma' is not allowed here".
- Turning off -Winvalid-offsetof globally for gcc would work, but there
might be other contexts where offsetof is problematic and GCC seems to
be the only compiler warning about it.
2023-08-21 14:01:11 -07:00
Sepalani
573863703a
MemoryViewWidget: Fix some characters being truncated
2023-08-21 22:02:44 +04:00
JosJuice
e7c2133160
Fixes to translatable strings
2023-08-21 16:29:52 +02:00
JosJuice
3451cb1ca2
Merge pull request #11959 from Dentomologist/add_x64emitter_unittests
...
x64EmitterTest: add J/J_CC/CALL unit tests
2023-08-21 16:27:04 +02:00
iwubcode
5506121685
VideoCommon: add support to graphics mod manager to load in assets and pass it to graphics actions
2023-08-20 18:53:27 -05:00
iwubcode
6ea0d17802
VideoCommon: when graphics settings change, trigger a reload of all custom shaders
2023-08-20 18:53:27 -05:00
iwubcode
931a8aa413
VideoCommon: add milliseconds elapsed time value to pixel shaders as a uniform to be able to support animation effects in custom shaders
2023-08-20 18:53:27 -05:00
iwubcode
c7191382be
VideoCommon: add custom pipeline action
2023-08-20 18:53:27 -05:00
iwubcode
d320366954
VideoCommon: add custom shader cache to VertexManagerBase, supporting custom pixel shaders by replacing the existing pipeline with a modified one
2023-08-20 18:53:27 -05:00
iwubcode
bedbf2b8c6
VideoCommon: add custom shader cache
2023-08-20 18:53:27 -05:00
iwubcode
dbaf24ef09
VideoCommon: add data needed to support custom pixel shaders to graphics mod actions
2023-08-20 18:53:27 -05:00
iwubcode
4283d76718
VideoCommon: uber pixel shader gen changes needed to support custom pixel shaders in graphics mods
2023-08-20 18:53:27 -05:00
iwubcode
e704385fce
VideoCommon: pixel shader gen changes needed to support custom pixel shaders in graphics mods
2023-08-20 18:53:27 -05:00
iwubcode
c3a370839a
VideoCommon: add helper functions to handle generating custom lighting code for a custom pixel shader
2023-08-20 18:53:27 -05:00
iwubcode
0da5cf60a8
VideoCommon: add custom pixel shader definition and custom shader header to shadergen common as it will be used by both the special and uber shader variant of pixel shaders
2023-08-20 18:53:27 -05:00
Admiral H. Curtiss
f19651e49b
Merge pull request #11025 from AdmiralCurtiss/hle-printf
...
HLE_OS: Manually handle printfs from emulated software to prevent emulated software from crashing Dolphin with an invalid printf formatting string.
2023-08-20 01:31:49 +02:00
JosJuice
d34d3bd513
JitArm64: Optimize mfsrin/mtsrin address calculations
...
This does require another register, but we skip having to use shifted
ADD, which takes two cycles on some CPUs, and we gain instruction-level
parallelism.
2023-08-19 21:37:06 +02:00
JosJuice
c70dcf99dd
Jit: Some mcrxr optimizations
2023-08-19 21:13:56 +02:00
JosJuice
5ea1cc5406
JitArm64: Fix mcrxr
...
Likely an incorrect translation of Jit64's LEA with SCALE_2.
2023-08-19 20:57:32 +02:00
JosJuice
5931d74d52
JitArm64: Remove unnecessary BindToRegister calls
...
BindToRegister is only needed when writing to a register.
2023-08-19 19:46:53 +02:00
JosJuice
9192128c50
Jit: Handle imm msr in EmitStoreMembase
...
This makes Jit64::mtmsr more optimized in particular.
2023-08-19 19:45:35 +02:00
JosJuice
0f64df3e3e
DiscIO: Don't keep volume pointer in DiscScrubber
...
Keeping the pointer creates use-after-free opportunities, and we don't
have much reason to keep it around anyway.
2023-08-19 17:30:22 +02:00
Admiral H. Curtiss
d36f0fff4c
Jit64: Actually update membase register after GlobalAdvance().
2023-08-19 17:00:01 +02:00
JosJuice
ed7894924c
Merge pull request #12048 from krnlyng/someothertest
...
Jit: Load the memory register only when the msr bits have changed and do not use jumps to load it.
2023-08-19 09:49:29 +02:00
Admiral H. Curtiss
b6bfa10ace
Merge pull request #11996 from Dentomologist/remove_pointless_pauseandlock_functions
...
EXI: Remove pointless PauseAndLock functions
2023-08-18 21:35:56 +02:00
Admiral H. Curtiss
bb4ed1c450
Merge pull request #12118 from AdmiralCurtiss/tas-window-translatable
...
DolphinQt/TASInputWindow: Make 'Enable Controller Input' translatable.
2023-08-18 21:33:23 +02:00
Admiral H. Curtiss
8a96ce73f6
Merge pull request #12044 from jmlee337/upnpport
...
Do not try portmapping when using traversal server
2023-08-18 21:28:52 +02:00
Admiral H. Curtiss
9a51215af3
Merge pull request #12083 from JosJuice/android-controlled-by-gamepad
...
InputConfig: Update IsControllerControlledByGamepadDevice for Android input overhaul
2023-08-18 21:27:26 +02:00
xujibbs
b3902397cb
DolphinQt/TASInputWindow: Make 'Enable Controller Input' translatable.
2023-08-18 21:02:30 +02:00
Admiral H. Curtiss
3441fe6efc
Merge pull request #11999 from Filoppi/post_process_fixes
...
Video: implement output resampling (upscaling/downscaling) methods
2023-08-18 20:33:09 +02:00
JosJuice
a9ec2a6e41
Merge pull request #12116 from AdmiralCurtiss/log-colors
...
DolphinQt/LogWidget: Restore log window colors.
2023-08-18 09:00:43 +02:00
Filoppi
8bca9a864f
Video: The `Auto` internal resolution scaling wasn't working correctly if the window weird aspect ratios (e.g. 32:9), beacuse it would account for the the portion of the image that will show black bars into the calcuations to find the best matching resolution
2023-08-18 02:14:00 +03:00
Filoppi
6c7f34d5da
Video: The `Auto-Adjust Window Size` setting was calculating the window size based on the resolution of the window in the previous frame if we used the "stretch" aspect ratio setting, so it's result would be self influence in a loop and behave unreliably (e.g. when changing resolution between Auto/Native/2x the automatic window scaling would behave randomly)
2023-08-18 02:14:00 +03:00
Filoppi
cb34d1aafe
Video: There was always a black line around one of the 4 edges (top/left/bottom/right) of the window because the final output size wasn't calculated right (unless the aspect ratio was set to stretch)
2023-08-18 02:14:00 +03:00
Filoppi
fae3aee9e0
Video: The `% 4` that was done on the rendering resolution was only meant to be done when recording videos (due to encoding limitations) but one case was missed (this had no consequences really, as it was just in the code that automatically resizes the window). The hardcoded `4` has been replaced with `VIDEO_ENCODER_LMC` for clarity.
2023-08-18 02:14:00 +03:00
Filoppi
80b453082d
Video: fix post process shaders with parameters failing to build on OpenGL
...
This was because the shader uniforms between the pixel and vertex shaders
were willingly left different, to avoid filling the vertex shader with unnecessary
params. Turns out all backends are fine with this except OGL.
The new behaviour is now much more consistent and well explained,
the "default" shaders are the ones that always run, and the non default
ones are the user selected ones (if any).
2023-08-18 02:00:56 +03:00
Sam Belliveau
39d96a21a8
Video: Improved Tooltips & Bicubic ( #5 )
...
Edited by Filoppi
2023-08-18 02:00:56 +03:00
Sam Belliveau
ca93a5191f
Video: Added Box Resampling
...
Edited by Filoppi
2023-08-18 02:00:56 +03:00
Filoppi
2edf81cdb0
Video: implement output resampling (upscaling/downscaling) methods
2023-08-18 02:00:55 +03:00
Admiral H. Curtiss
1854ff0142
Merge pull request #12003 from Filoppi/auto_hdr
...
Add AutoHDR post process shader
2023-08-18 00:20:08 +02:00
Admiral H. Curtiss
ecf5870a91
Merge pull request #12115 from AdmiralCurtiss/advanced-config
...
DolphinQt/AdvancedPane: UI improvements.
2023-08-18 00:16:59 +02:00
Admiral H. Curtiss
42e893d6be
Merge pull request #12114 from AdmiralCurtiss/color-correction-button
...
DolphinQt/EnhancementsWidget: Use custom tooltip for Color Correction button.
2023-08-18 00:16:47 +02:00
Admiral H. Curtiss
fc7ef66669
Merge pull request #12110 from JosJuice/android-dir-init-toast
...
Android: Move DirectoryInitialization toast to UI thread
2023-08-18 00:15:15 +02:00
Admiral H. Curtiss
a08792033a
Merge pull request #12103 from iwubcode/asset_load_system_time
...
VideoCommon: asset load time is now stored as a chrono system_clock time
2023-08-18 00:14:29 +02:00
JosJuice
b62c25864f
CPUThreadConfigCallback: Remove some CPU thread asserts
...
Turns out that we have two subsystems that want to register CPU thread
callbacks from a different thread than the CPU thread: FreeLookConfig
and VideoConfig. Both seem to happen from the host thread before the CPU
thread starts, so there's no thread safety issue. But ideally, if we
want to allow registering callbacks from threads other than the CPU
thread, we should make registering callbacks actually thread-safe. This
is an unsolved problem for the regular Config system, so I would like to
leave it outside the scope of this PR.
2023-08-17 19:19:26 +02:00
JosJuice
7197e3abd0
Use structs for config callback IDs
...
This way you can't mix up regular config callback IDs and CPU thread
config callback IDs. (It would be rather bad if you did!)
2023-08-17 19:19:26 +02:00
JosJuice
1104b93ee4
UnitTests: Declare as CPU thread when using CPUThreadConfigCallback
...
This fixes a bunch of DEBUG_ASSERTs in the unit tests.
2023-08-17 19:19:25 +02:00
JosJuice
2b17e89336
Config: Don't clear callbacks on shutdown
...
This fixes a problem that started happening in CoreTimingTest after the
previous commit. CPUThreadConfigCallback registers a Config callback
only once per run of the process, but CoreTimingTest calls
Config::Shutdown after each test, and Config::Shutdown was clearing all
callbacks, preventing the callback from running after that.
2023-08-17 19:19:25 +02:00
JosJuice
71ce8bb6f0
Don't call RunAsCPUThread in config callbacks
...
In theory, our config system supports calling Set from any thread. But
because we have config callbacks that call RunAsCPUThread, it's a lot
more restricted in practice. Calling Set from any thread other than the
host thread or the CPU thread is formally thread unsafe, and calling Set
on the host thread while the CPU thread is showing a panic alert causes
a deadlock. This is especially a problem because 04072f0
made the
"Ignore for this session" button in panic alerts call Set.
Because so many of our config callbacks want their code to run on the
CPU thread, I thought it would make sense to have a centralized way to
move execution to the CPU thread for config callbacks. To solve the
deadlock problem, this new way is non-blocking. This means that threads
other than the CPU thread might continue executing before the CPU thread
is informed of the new config, but I don't think there's any problem
with that.
Intends to fix https://bugs.dolphin-emu.org/issues/13108 .
2023-08-17 19:19:25 +02:00
Admiral H. Curtiss
a9cba9be36
DolphinQt/LogWidget: Restore log window colors.
2023-08-16 19:55:18 +02:00
Admiral H. Curtiss
a34f221782
Core/PowerPC: Return AvailableCPUCores() as a std::span.
2023-08-16 19:25:03 +02:00
Admiral H. Curtiss
51f807b63a
DolphinQt/AdvancedPane: Update all GUI elements from config in Update().
2023-08-16 19:25:03 +02:00
Admiral H. Curtiss
ccee66dc80
DolphinQt/AdvancedPane: Use ConfigBool for MMU, Pause on Panic, and Write-Back Cache.
2023-08-16 19:25:03 +02:00
Admiral H. Curtiss
23ae8c439c
Merge pull request #12112 from JosJuice/hires-texture-encoding
...
VideoCommon: Fix std::filesystem::path encoding conversion
2023-08-16 18:39:18 +02:00
JosJuice
86910f406e
VideoCommon: Fix std::filesystem::path encoding conversion
...
In std::string, you can store strings using any encoding, but in Dolphin
we have decided to use UTF-8. The problem is that if you convert between
std::string and std::filesystem::path using the built-in methods, the
standard library will make up its own assumption of what encoding you're
using in the std::string. On most OSes this is UTF-8, but on Windows
it's whatever the user's code page is.
What I believe is the C++ standard authors' intended solution to this is
to use std::u8string instead of std::string, but that's a big hassle to
move over to, because there's no convenient way to convert between
std::string and std::u8string. Instead, in Dolphin, we have added helper
functions that convert between std::string and std::filesystem::path in
the manner we want. You *always* have to use these when converting
between std::string and std::filesystem::path, otherwise we get these
kinds of encoding problems that we've been having with custom textures.
Fixes https://bugs.dolphin-emu.org/issues/13328 .
2023-08-16 09:56:56 +02:00
JosJuice
177ac0cd44
Merge pull request #12111 from OatmealDome/old-amd-bug
...
Remove `BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION`
2023-08-16 09:20:49 +02:00
Pokechu22
10c5da6f62
Merge pull request #12107 from MikeIsAStar/retrieve-page-table-information-from-data-cache
...
Retrieve page table information from the data cache
2023-08-15 22:01:01 -07:00
takayhan-AMD
b969282b72
Remove out-dated hack of AMD driver issue WRT dual-source blending output index.
2023-08-15 23:58:29 -04:00
iwubcode
eeb73460ab
VideoCommon: asset load time is now stored as a chrono system_clock time, so that times can be fabricated in a future feature (without creating a file to do so)
2023-08-15 22:02:28 -05:00
Admiral H. Curtiss
a10d768c63
Merge pull request #12104 from iwubcode/descriptor_sample_size_constant_dx12
...
VideoBackends: update SRVDescriptorTable size in DX12 to use pixel sampler constant
2023-08-15 23:15:19 +02:00
Admiral H. Curtiss
a44606692a
Merge pull request #12096 from Dentomologist/nandpaths_resolve_android_warning
...
NandPaths: Resolve Android tautological comparison warning
2023-08-15 22:23:57 +02:00
Admiral H. Curtiss
2cbc1e6f3e
Merge pull request #12109 from JosJuice/android-adddevice-null
...
ControllerInterface/Android: Add null check to AddDevice
2023-08-15 22:22:45 +02:00
MikeIsAStar
0bb5c88a22
Retrieve page table information from the data cache
...
Thanks to @mkwcat for identifying the problematic code.
2023-08-15 12:44:55 -04:00
JosJuice
4b1b5881b0
Android: Move DirectoryInitialization toast to UI thread
...
You're not allowed to just show toasts on any thread you want.
2023-08-15 14:03:08 +02:00
JosJuice
1d77bddc3b
ControllerInterface/Android: Add null check to AddDevice
...
The Google Play Console is showing some users getting a crash here,
and indeed, InputDevice.getDevice can return null.
2023-08-15 13:31:18 +02:00
iwubcode
89e2fc1dd3
VideoBackends: update SRVDescriptorTable size in DX12 to use pixel sampler constant
2023-08-13 17:23:26 -05:00
Admiral H. Curtiss
5635a0bdef
DolphinQt/EnhancementsWidget: Use custom tooltip for Color Correction button.
2023-08-13 22:46:46 +02:00
Admiral H. Curtiss
2537f4db91
Merge pull request #12100 from AdmiralCurtiss/tooltip-pushbutton
...
DolphinQt: Add ToolTipPushButton.
2023-08-13 21:44:24 +02:00
JMC47
4549091f56
Merge pull request #12090 from mandar1jn/figures-split
...
Skylanders: expand and improve character list
2023-08-13 14:29:46 -04:00
Mandar1jn
31d6aa5117
Skylanders: expand and improve character list
...
The previous list had some issues. A lot of variant id's were set to 0x0000. Althought this works for some figures, on a technicallity implemented into the games, they are technically wrong and don't result in exactly the same experience as the real figures. For example, the previous small fry got a "series 1" text in the summon screen. The real small fry does not have this. I also added figure types so I can add seperate generation logic later.
The Kaos element only applies to 3 items. So, I decided to throw it under others since it's not listed as an element in the manual and you can easily search for Kaos
2023-08-13 19:55:10 +02:00
Admiral H. Curtiss
1c1d2b0873
Merge pull request #12098 from Dentomologist/gcadapter_fix_android_unused_constant_warning
...
Gcadapter: fix Android unused constant warning
2023-08-13 18:58:39 +02:00
Admiral H. Curtiss
5bf760fa0b
Merge pull request #12069 from riidefi/silent-sd-failure
...
Prevent SD data loss from silent resync failure
2023-08-13 18:57:11 +02:00
JosJuice
d50494b88d
Merge pull request #12060 from Sintendo/arm64-bool-logimm
...
JitArm64: Use LogicalImm in boolX
2023-08-13 18:51:05 +02:00
JMC47
0495a6af4e
Merge pull request #12066 from Pokechu22/main-window-right-click-menu
...
Disable right-click menu on main window
2023-08-13 12:49:56 -04:00
Dentomologist
720191d1f7
AbstractFramebuffer: Fix Android reorder-ctor warning
...
Move declaration of m_additional_color_attachments so its initialization
order matches that of the constructor.
2023-08-12 20:48:47 -07:00
Dentomologist
274b11e4e9
GCAdapter: Fix Android unused constant warning
...
CONTROLLER_OUTPUT_INIT_PAYLOAD_SIZE is only used by the libusb
implementation.
2023-08-12 20:20:42 -07:00
Dentomologist
77d33d61de
GCAdapter: Fix spelling of constants
2023-08-12 20:20:41 -07:00
Dentomologist
9ef79dd2f5
IOS: Remove unused member variable from SharedContentMap and UIDSys
...
Resolve unused-private-field warnings on Android.
2023-08-12 14:37:52 -07:00
Dentomologist
9ad0d9ca6a
NandPaths: Use initializer_list instead of unordered_set
2023-08-12 14:00:41 -07:00
Dentomologist
9955a06dbd
NandPaths: Resolve Android tautological comparison warning
...
Android interprets char as unsigned char, so comparing with 0 triggers a
tautological-unsigned-char-zero-compare warning.
Casting c to an unsigned char and removing the comparison with 0
resolves the warning while needing one less comparison on all platforms.
2023-08-12 14:00:41 -07:00
Admiral H. Curtiss
e6c7f4e14b
DolphinQt: Add ToolTipPushButton.
2023-08-12 21:33:43 +02:00
Admiral H. Curtiss
bc47a28653
Merge pull request #12093 from Hark64/exportWiiSaveErrorFix
...
Disable Wii Save Options When Emulation Is Running
2023-08-12 20:34:47 +02:00
Harkaran Mann
783ff26edd
DolphinQt: Turn of wii save options during emulation
2023-08-12 20:18:22 +02:00
Admiral H. Curtiss
24012cfc7f
DolphinQt: Adjust panel-specific colors and syntax highlighting for dark theme.
2023-08-12 19:43:12 +02:00
Admiral H. Curtiss
c2e29153e9
DolphinQt: Set the theme before constructing the MainWindow, some panels that explicitly request palette colors get the wrong colors otherwise.
2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
d725aaa5bc
DolphinQt: Set the application palette to a matching one when the Windows dark theme is in use.
2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
250d5f55de
DolphinQt: Switch dark/light theme when Windows theme changes.
2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
e2fb8fab2f
DolphinQt: Set window decorations for all top-level QWidgets.
2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
e8d23af0f2
DolphinQt: Add function to set a QWidget's window decorations to dark ones on Windows.
2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
adbe56ce15
DolphinQt: Auto-load embedded dark theme on Windows if the user uses a system-wide dark theme.
2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
ea30651cd7
DolphinQt: Embed custom dark theme for Windows.
2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
5d33f2abd1
DolphinQt: On Windows, detect whether the system is using a dark theme.
...
Co-authored-by: FearlessTobi <thm.frey@gmail.com>
2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
f2300d89cc
CMake: Turn on rcc file embedding.
2023-08-12 16:54:53 +02:00
Shawn Hoffman
a202d84570
msbuild: auto generate and embed qt rcc files
2023-08-12 16:54:53 +02:00
Pokechu22
1f8f3840ac
Disable right-click menu on main window
...
Before, right-clicking on the toolbar would allow toggling all dock widgets, including the debugger ones even when they are disabled. (See https://doc.qt.io/qt-5/qmainwindow.html#createPopupMenu for this behavior, and https://bugs.dolphin-emu.org/issues/13306 for an example of where it caused issues.)
2023-08-11 10:45:31 -07:00
iwubcode
246b7c5bdb
VideoCommon: fix regression with texture load order where the custom texture code was always updating the asset map for each texture with each entry, making it so the last value actually would be loaded instead of the first
2023-08-11 00:36:41 -05:00
JMC47
5512d19d4b
Merge pull request #12061 from iwubcode/cubemap_backends_only
...
VideoBackends: add support for cube maps for OGL, Vulkan, and D3D
2023-08-10 18:36:48 -04:00
JMC47
032c77b462
Merge pull request #12064 from noahpistilli/wc24-standby
...
Remove force disable WC24 Standby
2023-08-10 16:07:47 -04:00
Admiral H. Curtiss
b0dc067717
Merge pull request #12087 from Dentomologist/dx12_use_correct_framebuffer_descriptor
...
D3D12: Only use framebuffer integer descriptor if allocated
2023-08-10 19:09:25 +02:00
JosJuice
1ebec40e4d
JitArm64: Prefer MOVI with 64-bit elements for zeroing
...
The Cortex-X2 and Cortex-X3 (and possibly others) recognize MOVI with
64-bit elements as a zeroing idiom, but not MOVI with other sizes.
2023-08-06 12:11:37 +02:00
Dentomologist
4ccac53e9f
X64EmitterTest: Check bytes instead of disassembly in JMP test
...
Check bytes directly to avoid ambiguity in the disassembly between short
and near jumps, which could hypothetically cause the test to pass when
it shouldn't.
2023-08-05 13:51:42 -07:00
Dentomologist
dcd5ba6587
x64EmitterTest: add J/J_CC/CALL unit tests
2023-08-05 13:51:42 -07:00
Dentomologist
83f307ec7e
D3D12: Only use framebuffer integer descriptor if allocated
...
Verify that DXFramebuffer's integer RTV descriptor's cpu_handle has been
allocated before using it, and if it hasn't use the non-integer RTV
descriptor instead. This fixes a Dolphin crash in Twilight Princess, and
possibly other games (Issue 13312).
As an optimization to save space in the descriptor heap, DXFramebuffer's
integer descriptor is only initialized if the given abstract texture
format has different integer and non-integer RTV formats. This
previously wasn't accounted for by GetIntRTVDescriptorArray, which could
cause DX12::Gfx::BindFramebuffer to call OMSetRenderTargets with an
invalid descriptor which would lead to a crash.
Triggering the bug was fortunately rare because integer formats are only
used when blending is disabled and logic ops are enabled. Furthermore,
the standard integer abstract format is RGBA8 which has different
integer and non-integer RTV formats, causing the integer descriptor to
be initialized and avoiding the bug.
The crash started appearing in a2702c6
because it changed the
swapchain's abstract texture format from RGBA8 to RGB10_A2. Unlike
RGBA8, RGB10_A2 has the same integer and non-integer RTV formats and so
the bug can be triggered if the other requirements are met.
2023-08-04 13:17:33 -07:00
JosJuice
02b0e287cb
InputConfig: Update IsControllerControlledByGamepadDevice for Android input overhaul
...
This only matters for analytics, but still.
2023-08-01 19:35:55 +02:00
JosJuice
262a3be08a
JitArm64: Store PC on debug exit
...
Should fix https://bugs.dolphin-emu.org/issues/13178 .
Jit64 doesn't need to do this because it stores PC directly into
ppcState instead of first storing it in a register.
2023-07-31 16:50:49 +02:00
JosJuice
a912a2c3f5
Merge pull request #12047 from AdmiralCurtiss/nand-stats-user
...
Add file size stats to NAND Check.
2023-07-30 21:51:07 +02:00
JosJuice
d2c5d79614
JitArm64: Use farcode in WriteLinkBlock
...
Now block link nearcode is back to a length of three instructions.
Unfortunately, the code I'm adding to Jit.cpp ends up being a bit messy
because we need to handle the case of already being in farcode...
2023-07-30 15:00:07 +02:00
JosJuice
1813f0fdb5
Jit: Remove checkedEntry
...
It's now always identical to normalEntry.
2023-07-30 14:28:02 +02:00
JosJuice
f78ba9ac55
JitArm64: Never check downcount on block entry
...
Jumping between linked blocks currently works as follows: First, at the
end of the first block, we check if the downcount is greater than zero.
If it is, we jump to the `normalEntry` of the block. So far so good. But
if the downcount wasn't greater than zero, we jump to the `checkedEntry`
of the block, which checks the downcount *again* and then jumps to
`do_timing` if it's less than zero (which seems like an off by one error
- Jit64 doesn't do anything like this). This second check is rather
redundant. Let's jump to `do_timing` where we previously jumped to
`checkedEntry`.
Jit64 doesn't check the downcount on block entry. See 5236dc3
.
2023-07-30 14:20:44 +02:00
Admiral H. Curtiss
9f817911fd
HLE_OS: Manually handle printfs from emulated software to prevent emulated software from crashing Dolphin with an invalid printf formatting string.
2023-07-29 20:06:09 +02:00
JosJuice
30c4ac34b0
Merge pull request #12073 from AdmiralCurtiss/wiimote-win32error
...
WiimoteReal/IOWin: Use correct error type in the default case.
2023-07-29 18:54:10 +02:00
Admiral H. Curtiss
7f29f0398c
MMU: Add a HostGetU16String() function for wide strings used by emulated software.
2023-07-29 15:11:00 +02:00
iwubcode
dca7c67105
VideoCommon: update NetplayChatUI's chat message input to use a hidden label. This avoids an error thrown by imgui
2023-07-29 00:27:07 -05:00
JMC47
a2a6473962
Merge pull request #12065 from iwubcode/imgui_update
...
Externals / VideoCommon: update imgui to 1.89.7 (and implot to 0.15)
2023-07-28 17:22:20 -04:00
JosJuice
ed8911b204
Merge pull request #12019 from Dentomologist/gekkodisassembler_remove_unused_member_and_parameter
...
GekkoDisassembler: Remove unused member and parameters
2023-07-28 20:02:19 +02:00
JosJuice
b5b8282ca9
Android: Fix SettingsActivity.onActivityResult
...
`or` is the bitwise or operator.
Fixes file pickers in the settings not saving your choice.
2023-07-28 18:45:07 +02:00
Franz-Josef Haider
8bfcd2deb7
JitArm64/Jit64: Load the memory register without jumps and only when necessary.
2023-07-28 14:24:53 +03:00
Admiral H. Curtiss
fb9274c359
WiimoteReal/IOWin: Use correct error type in the default case.
2023-07-28 08:10:54 +02:00
Admiral H. Curtiss
cd923718c3
CommonFuncs: Add GetWin32ErrorString().
2023-07-28 08:10:01 +02:00
JosJuice
f3ad246fff
PPCAnalyst: Simplify gprBlockInputs calculation
...
No need for the gprDefined variable.
2023-07-27 23:10:59 +02:00
JosJuice
8c2d73e8c2
PPCAnalyst: Fix gprBlockInputs calculation
...
This analysis needs to scan backwards, not forwards.
2023-07-27 23:09:46 +02:00
Dentomologist
3c6ea825c2
GekkoDisassembler: Remove unused parameter dmode from fdabc function
...
With the removal of m_flags, dmode is no longer used in fdabc.
2023-07-27 10:47:46 -07:00
Dentomologist
33dc2a9e6a
GekkoDisassembler: Remove unused parameter dmode from ldst function
...
With the removal of m_flags, dmode is no longer used in ldst.
2023-07-27 10:47:46 -07:00
Dentomologist
b3c5021fc4
GekkoDisassembler: Remove unused parameter dmode from rrn function
...
With the removal of m_flags, dmode is no longer used in rrn.
2023-07-27 10:47:46 -07:00
Dentomologist
a177c8bcb1
GekkoDisassembler: Remove unused parameter dmode from dab function
...
With the removal of m_flags, dmode is no longer used in dab.
2023-07-27 10:47:45 -07:00
Dentomologist
a732647e5a
GekkoDisassembler: Remove unused parameter dmode from nooper function
...
With the removal of m_flags, dmode is no longer used in nooper.
2023-07-27 10:47:45 -07:00
Dentomologist
317bb629b9
GekkoDisassembler: Remove unread variable m_flags
...
Writes to m_flags are pointless as it's never read.
2023-07-27 10:47:41 -07:00
iwubcode
350e51951b
VideoCommon: update imgui to 1.89.7 (and implot to 0.15); fix issues with upgrade; keep the demo code in case someone wants to reference it but don't compile it by enabling 'IMGUI_DISABLE_DEMO_WINDOWS' in config
2023-07-27 11:47:34 -05:00
JosJuice
17fa9dfc4e
Merge pull request #12046 from AdmiralCurtiss/nand-stats-unit-test
...
UnitTests: Enable cluster check in FileSystemTest.GetDirectoryStats.
2023-07-27 18:44:34 +02:00
riidefi
ec5d2a4f41
[Core] Prevent SD data loss from silent resync failure
2023-07-26 13:58:01 -06:00
Martino Fontana
1e5e319783
Qt/GameConfigWidget: Add Manual Texture Sampling
2023-07-25 00:45:13 +02:00
Martino Fontana
41f81aca69
Qt/GameConfigWidget: Rename `m_enable_fast_disc` to `m_emulate_disc_speed`
2023-07-25 00:45:10 +02:00
Martino Fontana
0892998af1
Qt/GameConfigWidget: Add `reverse` argument for `{Save,Load}CheckBox`
...
In order to not hard code `if (key == "FastDiscSpeed")`
2023-07-24 20:48:32 +02:00
Admiral H. Curtiss
0a2afa48b7
Merge pull request #12045 from tupfold/master
...
[Minor Bugfix] Extremely rare HostID collision bugfix
2023-07-24 03:55:45 +02:00
Admiral H. Curtiss
553824e5aa
Merge pull request #11853 from noahpistilli/update-curl
...
Externals: Update libcurl
2023-07-24 02:27:36 +02:00
Admiral H. Curtiss
2b80605e7e
Merge pull request #12067 from Pokechu22/debugging-ui-text-show-enable
...
Rename "Show Debugging UI" to "Enable Debugging UI"
2023-07-24 01:15:04 +02:00
Admiral H. Curtiss
c468ca2107
Merge pull request #12057 from iwubcode/config_core_timing_refresh_only
...
Core: save core timing parameters into variables updated during refresh
2023-07-24 01:14:18 +02:00
Pokechu22
7e38ff496c
Rename "Show Debugging UI" to "Enable Debugging UI"
...
This will hopefully reduce confusion on e.g. https://bugs.dolphin-emu.org/issues/13306 .
2023-07-23 15:17:04 -07:00
iwubcode
e54b7ac356
Core: save core timing parameters into variables updated during refresh
2023-07-23 14:03:21 -05:00
JosJuice
eb79bf37e2
Merge pull request #12052 from mitaclaw/profiling-is-something
...
Announce RSCRATCH clobbering in Jit64::Cleanup() when profiling is enabled
2023-07-23 20:12:43 +02:00
Admiral H. Curtiss
a76cc146e1
Merge pull request #12055 from iwubcode/skip_dump_async
...
VideoCommon: skip the texture dump if a custom texture is available, regardless if it is loaded or not
2023-07-23 19:53:25 +02:00
Admiral H. Curtiss
c1a4b3f350
Merge pull request #12051 from mandar1jn/J-documentation-improvements
...
Skylanders: Update J command documentation
2023-07-23 19:23:29 +02:00
Admiral H. Curtiss
dd3caa48b2
Merge pull request #12063 from SuperSamus/audio-name
...
cubeb: Change name to "Dolphin Emulator"
2023-07-23 19:15:24 +02:00
Bram Speeckaert
a486168448
JitArm64: Use LogicalImm in boolX
...
ARM64 has a special logical immediate encoding scheme, that can be used
with AND, ORR, and EOR. By taking advantage of this, we no longer need
to materialize the immediate value in a register, saving instructions
and/or reducing register pressure.
- orx
Before:
mov w23, #0x1
orr w23, w25, w23
After:
orr w23, w25, #0x1
- andx
Before:
mov w26, #-0x80000000
and w27, w27, w26
sxtw x24, w27
After:
and w27, w27, #0x80000000
sxtw x26, w27
- eqvx
Before:
mov w23, #0x4
eon w26, w23, w22
After:
eor w26, w22, #0xfffffffb
- xorx
Before:
mov w23, #0x1e
eor w23, w27, w23
After:
eor w23, w27, #0x1e
- norx
Before:
mov w25, #-0x2001
orr w23, w23, w25
mvn w23, w23
After:
orr w23, w23, #0xffffdfff
mvn w23, w23
2023-07-23 18:40:53 +02:00
Sketch
8c2a1c191e
Remove force disable WC24 Standby
2023-07-22 22:24:09 -04:00
Admiral H. Curtiss
e3ef3cb752
Merge pull request #12062 from iwubcode/custom_textures_debug
...
VideoCommon: add startup message to know if custom textures are installed
2023-07-23 03:45:22 +02:00
Martino Fontana
b5be399fd4
cubeb: Change name to "Dolphin Emulator"
...
To avoid conflicts with KDE's file manager.
2023-07-22 23:12:34 +02:00
JosJuice
3d9bc85912
Merge pull request #12058 from noahpistilli/android-wiilink
...
Add Enable WiiLink checkbox to Android GUI
2023-07-22 08:14:18 +02:00
Sketch
6f55e44365
Update libcurl to 8.1.2
2023-07-21 21:59:55 -04:00
Admiral H. Curtiss
fb2b3753b5
Merge pull request #12015 from nyanpasu64/gc-adapter-sleep-detach
...
Fix GC Adapter breaking and burning a full CPU core after sleep-wake on Linux
2023-07-22 03:38:45 +02:00
iwubcode
fd74244339
VideoCommon: add custom texture message to provide a dirty means of debugging whether custom textures are installed correctly
2023-07-21 20:13:27 -05:00
iwubcode
e892b7f1ac
VideoBackends: add support for cube maps for OGL, Vulkan, and D3D
2023-07-21 19:09:40 -05:00
SketchMaster2001
2569d10b3d
Add Enable WiiLink checkbox to Android GUI
2023-07-21 17:46:37 -04:00
LillyJadeKatrin
7a7e0ab2f5
Fixed Leaderboard Scored message format
...
Refactored the message displayed when a leaderboard is submitted to so that it properly generates and uses a FormattedValue.
2023-07-21 01:45:50 -04:00
Mandar1jn
eba5291ec7
Skylanders: Update J command documentation
...
I initially thought the 0x01 side was both sides (equavalent to just C. However, this turned out to be something I forgot I implemented in my personal interface. 0x01 does not seem to change any colors.
Recently discovered how exactly the last 2 bytes of the J command for timing data
2023-07-20 23:58:33 +02:00
iwubcode
f7e78742cf
VideoCommon: skip the texture dump if the texture is using a custom texture, regardless of whether or not it is loaded yet
2023-07-19 23:44:41 -05:00
mitaclaw
70b3db93e0
Announce RSCRATCH clobbering in Jit64 when profiling is enabled
2023-07-19 14:15:42 -07:00
iwubcode
79f202ea5c
VideoCommon: fix some compiler warnings for CustomAsset. FreeBSD compiler complained about a defaulted move constructor due to the mutex being implicitly deleted. Additionally, the const owning library deleted the copy constructor.
2023-07-16 19:45:55 -05:00
Admiral H. Curtiss
9ebfcebdde
Merge pull request #12049 from iwubcode/initialize_asset_load_info
...
VideoCommon: initialize load info variables in CustomAssetLibrary
2023-07-16 23:32:13 +02:00
Admiral H. Curtiss
2814e4e283
Merge pull request #12033 from mbc07/ColorCorrectionGUI_fixes
...
Qt: Color Correction window fixes
2023-07-16 23:31:59 +02:00
Mateus B. Cassiano
d7e79683cc
Qt: Color Correction window fixes
2023-07-16 16:48:08 -04:00
iwubcode
5740be15f9
VideoCommon: initialize load info variables
2023-07-16 12:56:03 -05:00
Admiral H. Curtiss
cd5aebe5ac
Qt: Add file size stats to NAND Check.
2023-07-14 05:24:29 +02:00
Admiral H. Curtiss
efae5827f2
IOS/FS: Implement GetExtendedDirectoryStats().
...
Behaves like GetDirectoryStats() but doesn't clamp to the Wii limits, so we can tell the user exactly how overfull their NAND is.
2023-07-14 04:48:23 +02:00
Admiral H. Curtiss
0d9e027a0b
IOS/FS: Move NAND size related constants to FileSystem.h.
...
That way they're available for calculating NAND stats to display to the user. This also adds a few more constants.
2023-07-14 04:47:47 +02:00
Admiral H. Curtiss
17f2072e1c
UnitTests: Enable cluster check in FileSystemTest.GetDirectoryStats.
2023-07-14 04:20:57 +02:00
Upfoldian
c4978edaf6
Fixed a bug where in the extremely unlikely change that HostIDs collide, a new HostID is generated.
2023-07-13 21:33:36 +10:00
jmlee337
550b9782e1
Do not try portmapping when using traversal server
...
using portmapping with hosting while using traversal server (which is possible by checking the option while under "direct connect" and flipping back to traversal server) causes dolphin to request a mapping to external port 0.
In UPnP a mapping to external port 0 is actually the wildcard, which means that connection requests on all
external ports (that are not otherwise mapped) will be forwarded to the client.
Additionally it seems like using port mapping with traversal server is probably not expected behavior, as the option checkbox disappears when traversal server is used.
2023-07-13 01:15:12 -07:00
Sepalani
cbb76c1d4f
Common/Network: Use StrErrorWrapper
2023-07-12 20:52:35 +04:00
Sepalani
92be54d57a
Common/CommonFuncs: Add StrErrorWrapper function
2023-07-12 20:52:35 +04:00
OatmealDome
423c7c58cd
Merge pull request #12042 from JosJuice/logic-op-no-win7
...
D3D: Remove Windows 7 mention in logic ops warning
2023-07-11 20:23:16 -04:00
JosJuice
5acebc71c4
D3D: Remove Windows 7 mention in logic ops warning
...
Dolphin no longer supports Windows 7, so the fact that there are (were?)
more people who use Windows 7 than who use a GPU that doesn't support
the required feature is no longer relevant.
2023-07-11 22:41:51 +02:00
Joshua de Reeper
93c8db66d6
Skylanders: More List Fixes
2023-07-10 09:59:00 +01:00
Admiral H. Curtiss
fe8a9ac707
Merge pull request #12024 from iwubcode/material_asset
...
VideoCommon: add material asset
2023-07-09 21:49:16 +02:00
iwubcode
77511e8e7c
VideoCommon: add material asset. A material is similar to other graphics engines where it provides data to be used in conjunction with a shader asset to generate a runtime AbstractShader
2023-07-09 12:21:34 -05:00
JosJuice
bd90f6be78
Merge pull request #12017 from Dentomologist/remove_unused_flowlayout
...
QtUtils: Remove unused FlowLayout
2023-07-09 16:06:35 +02:00
JosJuice
90b1f5c60a
Merge pull request #12020 from Dentomologist/gekkodisassembler_remove_unread_variables
...
GekkoDisassembler: Remove unread variables
2023-07-09 16:00:26 +02:00
Admiral H. Curtiss
80c44ea597
Merge pull request #12034 from MaverickAmon02/controller-update-race
...
Fix unsafe netplay code in SI_DeviceGCController
2023-07-09 14:13:44 +02:00
Admiral H. Curtiss
7bb04ff1dc
Merge pull request #12022 from iwubcode/texture_create_gmod_impl
...
VideoCommon: call into graphics mods create texture callback
2023-07-09 04:20:43 +02:00
Amon Neander
d122492db7
Fix unsafe netplay code in SI_DeviceGCController
...
By misusing Config, this netplay-related code opened up a race condition between Config::OnConfigChanged() and SerialInterface::SerialInterfaceManager::UpdateDevices() that could cause iterator invalidation.
2023-07-06 11:34:08 -04:00
nyanpasu64
c8df26554b
Fix GC adapter not being detected when you enable controller in settings
...
GCAdapter::UseAdapter() reads s_is_adapter_wanted, which gets
initialized by config_guard.~ConfigChangeCallbackGuard(). So we must
wait until after destroying the config guard to know whether we have any
controllers set to GC Adapter.
2023-07-05 20:38:22 -07:00
nyanpasu64
5d0f1bd10b
Switch libusb_config_descriptor to RAII type
2023-07-05 20:38:22 -07:00
nyanpasu64
c893ccca58
Workaround GC adapter detection breaking when reset fails
2023-07-05 20:38:22 -07:00
nyanpasu64
559a16da49
Reset GC adapter upon IO error after sleep-wake
...
Fixes GC adapter breaking on sleep-wake on Linux and burning a full CPU
core. This is cleaner than alternative approaches.
2023-07-05 20:38:22 -07:00
nyanpasu64
afb5eff426
Don't burn a CPU core and spam logs when GC Adapter fails
2023-07-05 20:38:22 -07:00
nyanpasu64
54850e936c
Fix memory leak in libusb code
2023-07-05 20:38:22 -07:00
Joshua de Reeper
79a4b91d68
Skylander Portal: Simple List Fixes
2023-07-04 16:48:51 +01:00
Admiral H. Curtiss
0366122306
Merge pull request #12009 from iwubcode/shader_asset
...
VideoCommon: add a pixel shader asset
2023-07-03 03:24:11 +02:00
Admiral H. Curtiss
da2784a391
Merge pull request #11878 from LillyJadeKatrin/retroachievements-achievements-tab
...
RetroAchievements - Achievement Progress Tab
2023-07-03 03:23:18 +02:00
iwubcode
a2ad3ca6f7
VideoCommon: don't do pointer copies during graphics mod callback iteration
2023-07-02 13:58:07 -05:00
iwubcode
0539bb4a3e
VideoCommon: call into graphics mods create texture callback, providing additional asset dependencies that trigger the texture to be reloaded
2023-07-02 13:45:09 -05:00
Admiral H. Curtiss
6d7bf60071
Merge pull request #11991 from iwubcode/tcache_multiple_texture_dependencies
...
VideoCommon: allow multiple texture assets to associate with a texture cache entry
2023-07-02 20:14:32 +02:00
iwubcode
a93e6e7397
VideoCommon: add support for allowing a TextureCache entry to be associated with multiple assets
2023-07-02 12:50:07 -05:00
Dentomologist
c8e276c6f5
GekkoDisassembler: Remove unread variable m_displacement
2023-07-01 20:09:10 -07:00
Dentomologist
98c9049184
GekkoDisassembler: Remove unread variable m_sreg
2023-07-01 20:09:09 -07:00
LillyJadeKatrin
ccc9d0e5ea
Synchronized Achievement Window
...
Expanded the use of the lock mutex already used for loading the player's existing unlock status to guard against races involving the Achievements dialog window reading from data AchievementManager might be in the process of updating. The lock has been exposed publicly and the AchievementsWindow uses it in its UpdateData method, and anywhere else that might modify data used to render that window has also been wrapped with it.
2023-07-01 22:26:30 -04:00
LillyJadeKatrin
fbaeaf305b
Add UpdateCallback to AchievementManager
...
AchievementManager now has a SetUpdateCallback method for providing a single universal callback for anytime something important changes in the achievement state, such as logging in/out, game load/close, or events such as achievement unlocks. AchievementsWindow sets this callback in its own init to its UpdateData method so that the AchievementsWindow gets updated when one of these changes takes place.
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
582042de1f
Added AchievementProgressWidget to AchievementsWindow
...
This widget is a tab in the AchievementsWindow that displays the player's current achievement progress: which achievements are locked or unlocked, and the progress of achievements that have progress metrics.
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
ebe77f149f
Added AchievementHeaderWidget to AchievementsWindow
...
This widget displays a header on the AchievementsWindow dialog above the tabs that shows the currently logged in user (if there is one) and the game they are playing (if there is one).
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
f700faf6ab
Expose Achievements Data for Display
...
Added some small methods to AchievementManager to expose useful data for displaying in an achievement UI. Also moved a couple things from private to public for the same purpose.
2023-07-01 22:26:29 -04:00
Dentomologist
6fe3cfe245
QtUtils: Remove unused FlowLayout
...
FlowLayout hasn't been used since
b65faa0549
.
2023-07-01 11:33:54 -07:00
Admiral H. Curtiss
eedc1144c1
Merge pull request #11923 from iwubcode/multi-texture-compute-support
...
VideoBackends: support multiple compute images for some backends
2023-07-01 17:47:55 +02:00
JosJuice
179d823852
Merge pull request #11992 from Dentomologist/remove_mtype_and_associated_enum
...
GekkoDisassembler: Remove unread variable and associated enum
2023-07-01 09:00:42 +02:00
Admiral H. Curtiss
ed4403537f
Merge pull request #11916 from JosJuice/ppcanalyst-reorder-loop
...
PPCAnalyst: Reduce number of iterations in ReorderInstructionsCore
2023-07-01 01:06:53 +02:00
Admiral H. Curtiss
82c986816f
Merge pull request #11978 from AdmiralCurtiss/wiimote-S_FALSE
...
WiimoteReal/IOWin: Don't try to print error message for non-errors.
2023-07-01 00:58:42 +02:00
Admiral H. Curtiss
e71f42f819
Merge pull request #11997 from Dentomologist/dspemulator_remove_pauseandlock_parameter
...
DSPEmulator: Remove unused PauseAndLock parameter
2023-07-01 00:56:45 +02:00
Admiral H. Curtiss
94f34260a6
Merge pull request #12001 from Filoppi/patch-21
...
Qt: Fix some Post Process Configuration Widget issues #3-4
2023-06-30 19:11:10 +02:00
Admiral H. Curtiss
fa81006b51
Merge pull request #11955 from TellowKrinkle/CMakeDependencies
...
CMake: Allow ignoring system packages
2023-06-30 19:06:04 +02:00
Admiral H. Curtiss
e4d7ba5554
Merge pull request #12007 from AdmiralCurtiss/cmake-scmrev-at-build-time
...
CMake: Generate scmrev.h at build time instead of configure time.
2023-06-30 18:59:33 +02:00
iwubcode
6ea49c6746
VideoCommon: add a pixel shader asset
2023-06-30 01:32:53 -05:00
JMC47
ff324ef660
Merge pull request #12010 from TellowKrinkle/AlignUpOpt
...
Common: Better AlignUp implementation
2023-06-29 20:30:13 -04:00
Filoppi
bfb90b7eec
Video: increase the max HDR brightness multiplier to a more appropriate value (400 nits can be too dark in a bright room)
2023-06-29 14:24:28 +03:00
Filippo Tarpini
28fafbeef2
Qt: Fix some Post Process Configuration Widget issues n3
...
1 ) When first opened, the (user selected) post process shader config widget would print the wrong values on the text label next to int range sliders. For example if the range was from 1 to 6, and the value loaded from the config was 1, the label would print 0 when first opened, to then start showing the correct value once the slider was first moved.
This mirrors the behaviour of the float slider code below:
```auto* const value_box = new QLineEdit(QString::asprintf("%f", m_config_option->m_float_values[i]));```
2 ) The defautl int slider value would also be set wrong on first load, as it was being divided by the slider max instead of the slider step amount (again, just like for the float implementation). This is a mistake I had made with my previous submission.
2023-06-29 14:13:38 +03:00
TellowKrinkle
d844317a6d
Common: Better AlignUp implementation
2023-06-29 02:35:44 -05:00
Admiral H. Curtiss
4774fe3445
VKGfx: Add parentheses around ambiguous if statements.
2023-06-29 03:59:18 +02:00
Admiral H. Curtiss
2a6f4d879c
CMake: Generate scmrev.h at build time instead of configure time.
2023-06-29 03:23:31 +02:00
iwubcode
3627398cf5
VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan)
2023-06-28 17:15:31 -05:00
Admiral H. Curtiss
61c45e8d68
Merge pull request #12002 from JosJuice/i18n-empty-string
...
DolphinQt: Don't translate empty strings
2023-06-28 18:56:35 +02:00
Charles Lombardo
e185dbf857
Merge pull request #11989 from JosJuice/android-title-on-shutdown
...
Android: Handle game shutdown in onTitleChanged
2023-06-28 12:48:54 -04:00
JosJuice
3384e02098
DolphinQt: Don't translate empty strings
...
Trying to translate an empty string will return a long metadata string
for the loaded translation file rather than the expected empty string.
2023-06-28 18:43:52 +02:00
TellowKrinkle
fc4036af80
VideoBackends:Metal: Multi render target support
2023-06-28 00:11:37 -05:00
JosJuice
766b8605f8
Merge pull request #11994 from JosJuice/skylanders-i18n
...
DolphinQt: Add i18n comments for Skylanders strings
2023-06-27 22:40:14 +02:00
JosJuice
a7aee396f6
Merge pull request #11929 from t895/gradle-updates
...
Android: Gradle updates
2023-06-26 19:44:23 +02:00
Dentomologist
ee684b0798
DSPEmulator: Remove unused PauseAndLock parameter
2023-06-25 20:29:23 -07:00
Dentomologist
f151ae3c2a
EXI: Remove pointless PauseAndLock functions
...
The ExpansionInterfaceManager::PauseAndLock function does nothing but
call other functions that have no effect.
ExpansionInterfaceManager::PauseAndLock calls CEXIChannel::PauseAndLock,
which in turn calls IEXIDevice::PauseAndLock. None of the classes
deriving from IEXIDevice override PauseAndLock, and the implementation
in IEXIDevice does nothing.
2023-06-25 20:08:08 -07:00
Admiral H. Curtiss
3a8e7de214
Merge pull request #11903 from noahpistilli/wiilink
...
IOS/KD: Add WiiLink as WC24 service provider by default
2023-06-26 02:27:47 +02:00
Sketch
f9f8e94e30
Add default support for WiiLink + configuration
2023-06-25 14:57:15 -04:00
JosJuice
ac53ab184c
Merge pull request #11952 from K0bin/no-per-game-driver
...
Android: Remove GPU driver from per-game settings
2023-06-25 19:00:01 +02:00
JosJuice
09f8f29ae0
DolphinQt: Add i18n comments for Skylanders strings
...
Also changed the spelling of "Superchargers" to "SuperChargers".
2023-06-25 15:38:30 +02:00
Dentomologist
2472269d06
GekkoDisassembler: Remove unused enum InstructionType
2023-06-24 13:45:26 -07:00
Dentomologist
2cf48bc32c
GekkoDisassembler: Remove unread variable m_type
...
Writes to m_type are pointless because it's never read.
2023-06-24 13:45:26 -07:00
Pokechu22
50c929928c
Merge pull request #11920 from Minty-Meeo/kill-ascii-to-hex
...
Kill AsciiToHex
2023-06-23 18:20:36 -07:00
JosJuice
b5e197e2dc
Android: Handle game shutdown in onTitleChanged
2023-06-23 20:40:04 +02:00
Robin Kertels
38a5774a85
Android: Remove GPU driver from per-game settings
2023-06-23 20:13:14 +02:00
Admiral H. Curtiss
c04536c5d0
Merge pull request #11982 from iwubcode/graphics_mod_create_texture_callback
...
VideoCommon: add graphics mod callback interface for when a texture is created
2023-06-23 18:10:59 +02:00
Admiral H. Curtiss
02909bd1a5
Merge pull request #11850 from Filoppi/post_process_fixes
...
Video: implement color correction to match the Wii/GC NTSC/PAL color spaces (and gamma)
2023-06-23 18:08:23 +02:00
Admiral H. Curtiss
5bf3d55d38
Merge pull request #11981 from iwubcode/move_cached_asset_to_common
...
VideoCommon: move cached texture asset to 'CustomAsset' common code
2023-06-23 17:59:24 +02:00
Admiral H. Curtiss
b5ba51c60a
Core: Remove host thread assert in PauseAndLock().
...
Fixing all the places it's used turned out to be a more complicated task than anticipated. So let's remove this for now so we don't confuse users with cryptic error messages...
2023-06-23 01:18:56 +02:00
get
445bf8d2c6
Kill AsciiToHex
...
Now superseded by Common::FromChars
2023-06-22 00:06:50 -05:00
JosJuice
1f130bf8a3
Android: Declare host thread when generating analytics ID
...
Another instance of the host thread check failing.
2023-06-21 18:16:46 +02:00
Sketch
bc0e8158b3
IOS/KD/Time: Take into account DST for AdjustedUTC
2023-06-20 22:49:33 -04:00
iwubcode
1d767c3a5b
VideoCommon: add graphics mod callback interface for when a texture is created
2023-06-20 19:26:53 -05:00
iwubcode
2dc24a9148
VideoCommon: move cached texture asset to 'CustomAsset' common code
2023-06-20 18:59:55 -05:00
Admiral H. Curtiss
5ad2d86cc7
Merge pull request #11979 from nicovank/master
...
Minor fix: Rename Symbol constructor parameter to prevent shadowing
2023-06-21 00:54:30 +02:00
Charles Lombardo
deb37f0846
Merge pull request #11964 from JosJuice/android-hide-infinity
...
Android: Hide Infinity Base in MenuFragment when not relevant
2023-06-20 17:11:18 -04:00
Nicolas van Kempen
4ef2f2c710
Rename Symbol constructor parameter to prevent shadowing
2023-06-20 13:38:31 -04:00
Admiral H. Curtiss
00bf5f55de
WiimoteReal/IOWin: Don't try to print error message for non-errors.
2023-06-20 01:54:59 +02:00
JosJuice
27db8d4123
Merge pull request #11935 from nitanmarcel/patch-1
...
Use getCacheDir if getExternalCacheDir returns null.
2023-06-19 20:47:27 +02:00
JosJuice
cff3e22f84
Merge pull request #11926 from JosJuice/android-host-check
...
Android: Re-add host thread check
2023-06-19 20:37:59 +02:00
Admiral H. Curtiss
5d7b5822c9
Merge pull request #11972 from Minty-Meeo/string-improvements-part-1c
...
Replace std::ostringstream usage with fmt::format
2023-06-19 02:18:30 +02:00
get
ffabb6c57b
Replace std::ostringstream usage with fmt::format
2023-06-18 18:37:32 -05:00
Filoppi
daddf4cd9c
Qt: add color correction and HDR Qt settings widgets
2023-06-19 01:34:42 +03:00
Filoppi
a2702c6e27
Video: implement color correction to match the NTSC and PAL color spaces (and gamma) that GC and Wii targeted.
...
To further increase the accuracy of the post process phase, I've added (scRGB) HDR support, which is necessary
to fully display the PAL and NTSC-J color spaces, and also to improve the quality of post process texture samplings and
do them in linear space instead of gamma space (which is very important when playing at low resolutions).
For SDR, the quality is also slightly increased, at least if any post process runs, as the buffer is now
R10G10B10A2 (on Vulkan, DX11 and DX12) if supported; previously it was R8G8B8A8 but the alpha bits were wasted.
Gamma correction is arguably the most important thing as Dolphin on Windows outputted in "sRGB" (implicitly)
as that's what Windows expects by default, though sRGB gamma is very different from the gamma commonly used
by video standards dating to the pre HDR era (roughly gamma 2.35).
Additionally, the addition of HDR support (which is pretty straight forward and minimal), added support for
our own custom AutoHDR shaders, which would allow us to achieve decent looking HDR in Dolphin games without
having to use SpecialK or Windows 11 AutoHDR. Both of which don't necessarily play nice with older games
with strongly different and simpler lighting. HDR should also be supported in Linux.
Development of my own AutoHDR shader is almost complete and will come next.
This has been carefully tested and there should be no regression in any of the different features that Dolphin
offers, like multisampling, stereo rendering, other post processes, etc etc.
Fixes: https://bugs.dolphin-emu.org/issues/8941
Co-authored-by: EndlesslyFlowering <EndlesslyFlowering@protonmail.com>
Co-authored-by: Dogway <lin_ares@hotmail.com>
2023-06-19 01:34:42 +03:00
Admiral H. Curtiss
9e06b6964b
Merge pull request #11963 from iwubcode/d3d12_fix
...
VideoBackends: fix d3d12 error when validation layers enabled
2023-06-19 00:33:40 +02:00
Admiral H. Curtiss
8039d10994
Merge pull request #11966 from Dentomologist/convert_xemitter_prefetchlevel_to_enum_class
...
xEmitter: Convert PrefetchLevel to enum class
2023-06-18 15:17:02 +02:00
Admiral H. Curtiss
2d18c9e079
Merge pull request #11976 from JosJuice/emitter-nodiscard
...
Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
2023-06-18 15:16:42 +02:00
Filoppi
0584f8ae2a
Video: fix Vulkan RGBA10_2 format to the actual most common one (used as swapchain format)
2023-06-18 12:58:40 +03:00
JosJuice
39a8219767
Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
...
This should prevent future occurrences of the type of problem that was
fixed in b713042
.
2023-06-18 09:10:20 +02:00
get
80575c4489
DITConfiguration: Use File::ReadFileToString
2023-06-17 19:38:15 -05:00
Dentomologist
04fcf68176
xEmitter: Convert PrefetchLevel to enum class
2023-06-17 16:41:32 -07:00
Admiral H. Curtiss
b71304230c
Jit64: Fix trampolines after #11834 .
2023-06-18 01:31:44 +02:00
Admiral H. Curtiss
93d9e90798
Merge pull request #11962 from Minty-Meeo/to-underlying
...
EnumUtils: Add Common::ToUnderlying
2023-06-17 20:04:25 +02:00
Lioncash
696087cae0
Qt/NetworkWidget: Get rid of some trivial sign conversions
...
In all instances, these variables should be signed rather than unsigned.
2023-06-17 10:48:49 -04:00
get
7523a62105
Change unnamed enum in NativeVertexFormat.h to u32
2023-06-17 08:13:57 -05:00
Admiral H. Curtiss
79d5850e6a
Merge pull request #11960 from Minty-Meeo/dolphin-tool-code-review-4
...
DolphinTool: Use {fmt} library
2023-06-17 14:18:21 +02:00
get
07ad75f34f
EnumUtils: Add Common::ToUnderlying
...
Mirrors the C++23 <utility> function, std::to_underlying
2023-06-17 07:15:33 -05:00
JosJuice
f16381adc5
Android: Hide Infinity Base in MenuFragment when not relevant
2023-06-17 11:57:53 +02:00
iwubcode
ba74902bca
VideoBackends: fix d3d12 validation layer error introduced by multi-output texture breaking logic ops support
2023-06-17 01:48:59 -05:00
get
e67c196d2a
DolphinTool: Less string copies
2023-06-16 21:51:06 -05:00
get
410c4ffe75
DolphinTool: Use {fmt} library
2023-06-16 21:45:59 -05:00
Admiral H. Curtiss
5029924ba1
Merge pull request #11954 from Minty-Meeo/dolphin-tool-code-review-3
...
DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE
2023-06-17 04:44:09 +02:00
Admiral H. Curtiss
1aef85a985
Merge pull request #11918 from TellowKrinkle/DPIScale
...
Improved DPI change handling
2023-06-17 04:07:13 +02:00
Admiral H. Curtiss
089d433996
Merge pull request #11956 from JosJuice/jitarm64-12-bit-asm
...
JitArm64: Micro-optimizations in fres routine
2023-06-17 04:00:22 +02:00
get
969eeb4b52
DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE
2023-06-16 21:00:10 -05:00
get
25c020cbe2
DolphinTool: Ditch OOP design
2023-06-16 20:39:16 -05:00
Admiral H. Curtiss
98b5d72ef1
Merge pull request #11951 from Minty-Meeo/dolphin-tool-code-review-1
...
DolphinTool: Sensible changes
2023-06-17 03:03:26 +02:00
get
31e78c40a1
DolphinTool: Sensible changes
2023-06-16 18:28:03 -05:00
Admiral H. Curtiss
cbcf5bfac1
Merge pull request #11889 from Filoppi/patch-18
...
Fix video output having small black borders all the times
2023-06-16 17:59:51 +02:00
Admiral H. Curtiss
50301bf1d1
Merge pull request #11957 from lioncash/resource
...
UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
2023-06-16 17:01:19 +02:00
Lioncash
653d6d059f
UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
...
There's nothing going on with behavior here that would prevent these
from being const qualified.
Also better communicates that this function isn't intended to modify the
given resource pack.
2023-06-16 10:20:50 -04:00
Admiral H. Curtiss
f5eea4a957
Merge pull request #11834 from Dentomologist/xemitter_use_pseudonamed_parameter_force5bytes
...
XEmitter: Add enum class Force5Bytes
2023-06-16 15:46:36 +02:00
JosJuice
9c13436e2b
JitArm64: Improve instruction scheduling in fres routine
...
We want to have a low number of instructions between the LDP and the
MADD so that the MADD can start immediately after the LDP finishes
even if we're on a lower-end in-order CPU.
2023-06-15 22:02:39 +02:00
JMC47
f0f8225ff8
Merge pull request #11424 from Pokechu22/jit-imm-loadstore-update
...
Jit64: Attempt to fix updating stores with an immediate value
2023-06-15 11:32:30 -04:00
TellowKrinkle
5b10a80401
CMake: Use targets for all optionally-external dependencies
2023-06-15 01:41:41 -05:00
JosJuice
5b5124d9ff
JitArm64: Use immediates more in fres routine
...
Not sure why I didn't do this to begin with. Maybe I was under the
impression that the most significant bit of a 12-bit immediate was a
sign bit.
2023-06-14 23:27:58 +02:00
Admiral H. Curtiss
bd125733f0
Merge pull request #11946 from Dentomologist/convert_fromwhichroot_to_enum_class
...
Common: Convert FromWhichRoot to enum class
2023-06-14 13:29:07 +02:00
Admiral H. Curtiss
88ff00a05c
Merge pull request #11942 from Dentomologist/convert_controlleremu_translatability_to_enum_class
...
ControllerEmu: Convert Translatability to enum class
2023-06-14 13:27:47 +02:00
Admiral H. Curtiss
79073c1a40
Merge pull request #11944 from lioncash/casts
...
PPCCache: Remove redundant reinterpret_casts
2023-06-14 13:25:48 +02:00
Dentomologist
7ff7c9e84f
Common: Convert FromWhichRoot to enum class
2023-06-13 13:25:22 -07:00
Marcel Alexandru Nitan
cff7a4bfd2
Use getCacheDir if getExternalCacheDir returns null.
2023-06-13 18:44:27 +00:00
JosJuice
ae4d52c838
Android: Fix overlay d-pad not working until finger moves
...
A switch case fallthrough was overlooked when translating from Java to
Kotlin.
2023-06-13 20:37:59 +02:00
JosJuice
c961c6c35a
Android: Fix pressing up on overlay d-pad
2023-06-13 20:37:59 +02:00
Lioncash
708c986693
PPCCache: Remove redundant reinterpret_casts
...
The pointer is being passed to functions that take arguments as void*,
so we don't need to cast here.
2023-06-13 08:25:26 -04:00
Admiral H. Curtiss
6d16a09707
Merge pull request #11941 from Dentomologist/convert_blockingloop_stopmode_to_enum_class
...
Common: Convert BlockingLoop::StopMode to enum class
2023-06-13 11:47:20 +02:00
Admiral H. Curtiss
74c0519c54
Merge pull request #11930 from iwubcode/game_texture_validation
...
VideoCommon: don't reject game textures which have the wrong size
2023-06-13 11:43:35 +02:00
iwubcode
3e27fc7c0b
VideoCommon: don't treat incorrect aspect ratio or sizes that aren't a multiple of native textures as an error
2023-06-12 21:19:29 -05:00
Dentomologist
527f8e783c
ControllerEmu: Convert Translatability to enum class
2023-06-12 18:11:04 -07:00
Dentomologist
3c80f821c0
Common: Convert BlockingLoop::StopMode to enum class
2023-06-12 17:12:25 -07:00
Admiral H. Curtiss
63090d411d
Merge pull request #11940 from lioncash/debugiface
...
Common: Move DebugInterface.h into Core
2023-06-13 01:59:33 +02:00
JosJuice
f11175d117
Revert "Android: Temporarily disable host thread check"
...
This reverts commit 361171fce0
.
2023-06-12 23:39:42 +02:00
JosJuice
03f2f57edf
Android: Add HostThreadLock where necessary
2023-06-12 23:39:42 +02:00
JosJuice
3519a7070d
Android: And Lock and Unlock wrappers to HostThreadLock
...
This way we can ensure DeclareAsHostThread and UndeclareAsHostThread
are called when locking and unlocking.
2023-06-12 23:39:42 +02:00
JosJuice
5524042922
Android: Move host thread lock to a separate file
2023-06-12 23:39:42 +02:00
Dentomologist
4c2759f541
XEmitter: Add enum class Jump
...
Replace the bool parameter force5bytes in J, JMP, and J_CC with an enum
class Jump::Short/Near. Many callers set that parameter to the literal
'true', which was unclear if you didn't already know what it did.
2023-06-12 13:04:18 -07:00
JMC47
c8559a7933
Merge pull request #11863 from Minty-Meeo/nkit-extract
...
Remove NKit data when extracting a GCN/Wii disc volume
2023-06-12 15:37:02 -04:00
Admiral H. Curtiss
635bce2e7b
Merge pull request #11939 from lioncash/condition
...
BreakpointDialog: Mark breakpoint help text as translatable
2023-06-12 20:13:07 +02:00
Admiral H. Curtiss
b4d161ff29
Merge pull request #11938 from lioncash/inits
...
ParallelProgressDialog: Initialize all data members
2023-06-12 20:07:57 +02:00
Admiral H. Curtiss
b3f4006bb7
Merge pull request #11937 from lioncash/sky
...
SkylanderPortalWindow: Detranslate unnecessary strings
2023-06-12 20:07:37 +02:00
Lioncash
41df38cb7c
Common: Move DebugInterface.h into Core
...
The base DebugInterface now depends on the Core's CPUThreadGuard, and
utilities in Common shouldn't be depending on Core facilities. So, we
can move this into the core library instead.
2023-06-12 10:35:31 -04:00
Lioncash
6e9afd9a73
BreakpointDialog: Mark breakpoint help text as translatable
...
We already mark the title of the dialog box as translatable, so it
would be a bit odd to not mark the containing text as translatable too.
2023-06-12 09:50:17 -04:00
Lioncash
9c0cd5c81a
ParallelProgressDialog: Mark WasCanceled() as const
...
This doesn't alter any class state.
2023-06-12 09:38:10 -04:00
Lioncash
b70894b950
ParallelProgressDialog: Initialize all data members
...
Ensures we always have a deterministic state.
2023-06-12 09:36:51 -04:00
Lioncash
001fe6ff61
SkylanderPortalWindow: Detranslate unnecessary strings
...
This doesn't need to be handled by translators, since they're not
user-displayed text or just don't need to be translated.
While we're at it, we don't need to copy each entry of the resulting
list.
2023-06-12 09:26:16 -04:00
Lioncash
cbd2a720bb
InfinityBaseWindow: Remove unnecessary system instance accessor
...
GetFigureList() is a static member function, so we can just call it
directly instead of going through the system instance.
2023-06-12 09:02:20 -04:00
Charles Lombardo
9a7e1652f3
Android: Target Java 17
2023-06-11 23:44:44 -04:00
Charles Lombardo
7822e662f5
Android: Update Kotlin to 1.8.21
...
Additionally updates the serialization plugin to match
2023-06-11 23:44:44 -04:00
Charles Lombardo
4934b6e30b
Android: Update dependencies
2023-06-11 23:44:44 -04:00
Charles Lombardo
7c2c558646
Android: Upgrade to AGP 8.0.2
2023-06-11 23:44:44 -04:00
Charles Lombardo
4e4705e983
Merge pull request #11931 from t895/build-flag-fix
...
Android: Fix use of deprecated JVM flag
2023-06-11 23:37:53 -04:00
OatmealDome
1a0a1e8f12
Merge pull request #10976 from TellowKrinkle/StackFrames
...
Improve stack frames for profilers
2023-06-12 05:00:08 +02:00
Charles Lombardo
78f7463363
Android: Fix use of deprecated JVM flag
2023-06-11 22:54:31 -04:00
TellowKrinkle
fc53dca7bd
Qt: Send SizeChanged on DPI changes
2023-06-11 20:05:27 -05:00
TellowKrinkle
d3110b9521
VideoCommon: Update imgui scale when dpi changes
2023-06-11 20:05:27 -05:00
Charles Lombardo
157deb5864
Merge pull request #11928 from K0bin/adrenotools-release-build-fix
...
Android: Fix Adrenotools in release builds
2023-06-11 17:02:36 -04:00
Charles Lombardo
8db5775a1b
Merge pull request #11927 from JosJuice/android-custom-file-extension-locale
...
Android: Check file name extensions locale-independently
2023-06-11 16:52:50 -04:00
Robin Kertels
6f55b26751
Android: Fix Adrenotools in release builds
2023-06-11 22:44:48 +02:00
JMC47
5c0581e990
Merge pull request #11867 from K0bin/adrenotools
...
Implement loading custom drivers on Android
2023-06-11 14:17:39 -04:00
JosJuice
fee86e8536
Android: Check file name extensions locale-independently
...
A very minor bug that became more obvious when this code was translated
to Kotlin.
2023-06-11 19:03:49 +02:00
Robin Kertels
2da7d16b7c
Android: Implement a UI for Adrenotools
2023-06-11 13:53:31 +02:00
Robin Kertels
23bebc5270
VideoBackends:Vulkan: Allow loading custom drivers on Android
...
... using libadrenotools
2023-06-11 13:52:34 +02:00
Charles Lombardo
28785c5fad
Android: Convert SaveLoadStateFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
d26eddd4e2
Android: Convert MenuFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
afb6719a1a
Android: Convert EmulationFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
7e7cd6ff76
Android: Convert CustomFilePickerFragment to Kotlin
2023-06-11 00:53:26 -04:00
TellowKrinkle
28ed1f8be1
Common:AGL: Support making temporary contexts from the main thread
...
- Don't crash when making contexts from the main thread
- Don't focus the window when making a context
2023-06-10 14:25:45 -05:00
OatmealDome
7752e247f7
Merge pull request #11911 from TellowKrinkle/MTLParallelCompilation
...
VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available
2023-06-10 19:39:24 +02:00
Filoppi
03ec86f248
Qt: Add float config tooltip slider
2023-06-09 22:07:12 +02:00
JosJuice
061ec365a8
PPCAnalyst: Reduce number of iterations in ReorderInstructionsCore
...
We can utilize the fact that if swapping two instructions causes another
swap to become possible, that swap involves one of the two instructions
we just swapped. There's need to search for new swap opportunities as
far back as the beginning of the block; we can just go one step back.
2023-06-09 19:45:51 +02:00
Admiral H. Curtiss
8f51a9d2d8
Merge pull request #11699 from Pokechu22/gl-check-maximum-samples
...
OpenGL: Check the list of supported AA modes instead of hardcoding
2023-06-09 15:07:07 +02:00
Admiral H. Curtiss
092773ad0c
Merge pull request #11859 from iwubcode/backend-multi-output
...
VideoBackends: add support to allow rendering to multiple output targets
2023-06-09 13:40:21 +02:00
Pokechu22
ac48b2eea4
EnhancementsWidget: Handle gaps in AA mode list
...
Mesa (llvmpipe) only reports 4x MSAA, and doesn't report 2x (or 1x, but we implicitly add that). The old logic did not handle this correctly, causing selecting 4x to fail and fall back to None.
This also removes VideoUtils::GetAvailableAntialiasingModes, and thus VideoUtils entirely, as its only other function was removed in 1f74653501
.
2023-06-08 22:07:41 -07:00
Pokechu22
b246a634d4
OpenGL: Check the list of supported AA modes instead of hardcoding
2023-06-08 22:07:41 -07:00
Pokechu22
c63f0f37cd
VideoCommon: Pass WindowSystemInfo to InitBackendInfo
2023-06-08 22:07:39 -07:00
iwubcode
afa498fa2f
VideoCommon: update DirectFilesystemAssetLibrary to not throw exceptions when a file no longer exists
2023-06-08 22:20:52 -05:00
iwubcode
429b2eca8a
VideoCommon: add logging for loading texture assets
2023-06-08 19:48:45 -05:00
TellowKrinkle
e7f4b7679b
VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available
2023-06-08 18:57:41 -05:00
Admiral H. Curtiss
7845fb00ee
Merge pull request #11681 from iwubcode/asset_management
...
VideoCommon: migrate texture packs to use the asset loader system
2023-06-08 22:21:12 +02:00
JosJuice
f561bd4285
Merge pull request #11910 from lioncash/construct
...
PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
2023-06-08 21:26:07 +02:00
Admiral H. Curtiss
0d07ebab25
Merge pull request #11908 from lioncash/strcopy
...
Debugger: Remove some trivial string copies
2023-06-08 20:54:21 +02:00
Admiral H. Curtiss
e8c87dc4fd
Merge pull request #11902 from Minty-Meeo/regex-best-practices
...
static const std::regex
2023-06-08 20:52:11 +02:00
Admiral H. Curtiss
e3cae72c18
Merge pull request #11909 from lioncash/spans
...
GCMemcardUtils: Make use of std::span where applicable
2023-06-08 20:46:08 +02:00
Lioncash
09271f365a
PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
...
This allows the compiler to eliminate a static constructor that
initializes the table, and instead precompute all of the data ahead of
time.
e.g. We get something like so on GCC without constexpr:
_GLOBAL__sub_I_PowerPC::ConditionRegister::s_crTable:
movdqa xmm0, XMMWORD PTR .LC0[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip], xmm0
movdqa xmm0, XMMWORD PTR .LC1[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+16], xmm0
movdqa xmm0, XMMWORD PTR .LC2[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+32], xmm0
movdqa xmm0, XMMWORD PTR .LC3[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+48], xmm0
movdqa xmm0, XMMWORD PTR .LC4[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+64], xmm0
movdqa xmm0, XMMWORD PTR .LC5[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+80], xmm0
movdqa xmm0, XMMWORD PTR .LC6[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+96], xmm0
movdqa xmm0, XMMWORD PTR .LC7[rip]
movaps XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+112], xmm0
ret
PowerPC::ConditionRegister::s_crTable:
.zero 128
.LC0:
.quad -9223372032559808511
.quad -8646911280256385023
.LC1:
.quad -9223372032559808512
.quad -8646911280256385024
.LC2:
.quad 4294967297
.quad 576460756598390785
.LC3:
.quad 4294967296
.quad 576460756598390784
.LC4:
.quad -4611686014132420607
.quad -4035225261828997119
.LC5:
.quad -4611686014132420608
.quad -4035225261828997120
.LC6:
.quad 4611686022722355201
.quad 5188146775025778689
.LC7:
.quad 4611686022722355200
.quad 5188146775025778688
and with constexpr, this all get collapsed into:
PowerPC::ConditionRegister::s_crTable:
.quad -9223372032559808511
.quad -8646911280256385023
.quad -9223372032559808512
.quad -8646911280256385024
.quad 4294967297
.quad 576460756598390785
.quad 4294967296
.quad 576460756598390784
.quad -4611686014132420607
.quad -4035225261828997119
.quad -4611686014132420608
.quad -4035225261828997120
.quad 4611686022722355201
.quad 5188146775025778689
.quad 4611686022722355200
.quad 5188146775025778688
completely eliminating the static constructor. MSVC also exhibits this,
whereas clang is a little better and does this anyway, even without
constexpr.
2023-06-08 14:33:13 -04:00
Lioncash
349add0f81
GCMemcardManager: Shorten-up EnumMap definitions
...
We can make a small alias that gets rid of the need to repeat the long
constant.
2023-06-08 13:05:13 -04:00
Lioncash
1044bc40ca
GCMemcardUtils: Make use of std::span where applicable
...
Generifies bits of the interface so that some functions aren't
explicitly tied down to only using std::vector.
2023-06-08 12:59:43 -04:00
Lioncash
fae5ca39ad
InfinityBaseWindow: Move core headers into cpp file
...
Restricts the headers to the cpp file where they're needed and prevents
the headers from "leaking" into other translation units.
2023-06-08 12:39:10 -04:00
Lioncash
2b0a9477d0
MemoryViewWidget: Use QStringView with ConvertTextToBytes
...
Allows for avoiding string copies. While we're at it, we can also mark
ConvertTextToBytes as const.
2023-06-08 12:01:59 -04:00
Lioncash
cfd25f1d7c
CodeDiffDialog: Construct Diff instance in CalculateSymbolsFromProfile() when necessary
...
We can move the construction of the Diff instance into the body of the
if statement, so that we only construct this if the condition is true.
While we're at it, we can move the symbol description string into the
instance, getting rid of a copy. The function itself can also be const
qualified.
2023-06-08 11:55:57 -04:00
Lioncash
496aea54c0
CodeDiffDialog: Pass QString by const reference to create_item
...
Avoids churning string copies when updating
2023-06-08 11:48:09 -04:00
Lioncash
c99b0f2eb8
BreakpointWidget: Pass QString by const reference to create_item
...
Avoids churning string copies when performing updates.
2023-06-08 11:46:16 -04:00
Lioncash
867e7d259d
BreakpointDialog: Pass QString by const reference to invalid_input
...
Gets rid of redundant copying.
2023-06-08 11:45:14 -04:00
Lioncash
d092381d25
InfinityBaseWindow: Collapse lambda into direct member pointer
...
The parameters to this match the requirements of the toggled() function
exactly, so we can pass the function directly into the connect call.
2023-06-08 11:01:34 -04:00
Lioncash
1f874be36e
InfinityBaseWindow: Remove redundant string copies
...
tr() already returns a QString, so we don't need to construct a QString
around it, and FindFigure() already returns a std::string.
2023-06-08 11:01:29 -04:00
Lioncash
d35be7ce40
InfinityBaseWindow: Add missing header guard
...
Prevents potential inclusion issues.
2023-06-08 10:49:09 -04:00
get
1df482d51f
Prefer static const std::regex
...
std::regex has a relatively expensive constructor, and these are unchanging regexes.
2023-06-08 09:39:23 -05:00
Admiral H. Curtiss
78f5c5f8d2
Merge pull request #11899 from Filoppi/patch-20
...
Video: Fix Post Process shader options issues
2023-06-08 16:12:49 +02:00
Admiral H. Curtiss
3dbdf0472d
Merge pull request #11901 from Filoppi/add_texture_types
...
Video: add R10B10G10A2 and R16G16B16A16F texture types
2023-06-08 15:28:15 +02:00
Admiral H. Curtiss
e4636ad0a2
Merge pull request #11898 from Filoppi/patch-19
...
Video: Fix crash when getting the AA modes
2023-06-08 15:26:40 +02:00
Admiral H. Curtiss
65135190d4
Merge pull request #11897 from JosJuice/spurious-two-analog
...
InputCommon: Don't treat two analog inputs as a spurious trigger combo
2023-06-08 14:28:53 +02:00