Commit Graph

35194 Commits

Author SHA1 Message Date
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