Commit Graph

35207 Commits

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