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
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
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
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
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
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
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
Sepalani
e9fa335fbe
Socket: Fix a nullptr dereference when operations are pending
2023-12-24 09:23:02 +04: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
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
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
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