Commit Graph

38525 Commits

Author SHA1 Message Date
Charles Lombardo 4b622ef4d0 Android: Change alert dialog button ripple color for default theme 2022-11-10 21:58:11 -05:00
Lobsterzelda ed54e1905a HostFileSystem: Set all NAND folders to be saved in save states when a movie is active 2022-11-10 14:02:29 -05:00
TellowKrinkle 37a51f1d09 VideoCommon: Add an option to disable mipmaps
Needed by M1 fifoci to work around a minor non-determinism bug
2022-11-07 22:18:56 -06:00
JosJuice dca51f3ab0
Merge pull request #11260 from t895/text-alignment
Android: Fix list_item_cheat text
2022-11-07 18:52:27 +01:00
Admiral H. Curtiss ee7887b751
Merge pull request #11258 from AdmiralCurtiss/imgui-crash-v2
ImGui render context race condition fix: Lock context during Init/Shutdown.
2022-11-07 05:05:37 +01:00
Robin Kertels 3beb22ed7f
VideoBackends:Vulkan: Synchronize presentation
Synchronize with the submission thread
if the last present is not done yet.
2022-11-07 02:20:22 +01:00
Charles Lombardo e79a4b0d8c Android: Fix list_item_cheat text
Sometimes a gecko code would have a title long enough to appear over the checkbox. This is now prevented by marking the text's boundary a 16dp before the start of the checkbox.
2022-11-06 17:30:07 -05:00
Charles Lombardo 60fb151581 Android: Animate covers on focus change
Co-Authored-By: JosJuice <josjuice@gmail.com>
2022-11-06 15:52:19 -05:00
Admiral H. Curtiss a98df18947
VideoCommon: Hold ImGui lock while initializing and shutting down ImGui. 2022-11-06 21:48:55 +01:00
Pokechu22 e37aa3ed90
RenderWidget: Fix random crash due to missing ImGui context
`ImGui::GetIO` performs an assertion that a context exists, and if one doesn't then things will likely crash.  Unfortunately this crash is hard to consistently reproduce.
2022-11-06 21:41:07 +01:00
Admiral H. Curtiss c931529e7a
Merge pull request #11225 from iwubcode/graphics-mod-textureload-callable
VideoCommon: call texture load graphics mod hook when textures are loaded
2022-11-06 18:58:51 +01:00
Admiral H. Curtiss 1348337277
Merge pull request #11246 from tellowkrinkle/PVDMemset
VideoCommon: Zero PortableVertexDeclarations on initialization
2022-11-06 18:54:21 +01:00
Admiral H. Curtiss c75b53c7ed
Merge pull request #11250 from AdmiralCurtiss/memory-widget-menu
MemoryWidget: Split Actions into Import and Export.
2022-11-06 18:50:02 +01:00
JosJuice 982afec040 Android: Disable SD card conversion while emulation is running 2022-11-06 18:27:04 +01:00
Admiral H. Curtiss a36a5c1308
CoreTiming: Pass Core::System to Events. 2022-11-06 17:54:58 +01:00
JosJuice de93b4dc13 DolphinQt: Disable SD card conversion while emulation is running 2022-11-06 17:48:55 +01:00
JosJuice 1a5110791c
Merge pull request #11251 from t895/notouch-fix
Android: Use FrameLayout as root for notouch emulation layout
2022-11-06 09:10:47 +01:00
Charles Lombardo ff38fef2e4 Android: Use FrameLayout as root for notouch emulation layout
When inflating this layout, the layout inflater doesn't expect a View and rather a descendant of ViewGroup. This resulted in a crash which is resolved by using a FrameLayout instead.
2022-11-06 01:51:12 -05:00
Admiral H. Curtiss db679ab620
Merge pull request #11249 from JosJuice/load-dol-elf-after-mem
Boot: Load DOL/ELF after memory setup
2022-11-06 05:40:54 +01:00
Admiral H. Curtiss e1f5eb3d8d
Merge pull request #11233 from AdmiralCurtiss/netplay-split-save-sync-function
NetPlay: Split SyncSaveData() into two parts.
2022-11-06 05:39:26 +01:00
Admiral H. Curtiss 1c63349984
AudioCommon: Pass Core::System to AudioCommon functions. 2022-11-06 02:13:58 +01:00
Admiral H. Curtiss e9caa09f7b
NetPlay: Split SyncSaveData() into two parts.
This allows the 'save collection' part to run even if no clients are connected. Fixes issue 13095.
2022-11-06 01:51:01 +01:00
Admiral H. Curtiss cf533df814
MemoryWidget: Split Actions into Import and Export. 2022-11-05 23:05:15 +01:00
Admiral H. Curtiss 89bc1649e3
Merge pull request #11111 from TryTwo/PR_MemoryView_TableUpdates
MemoryViewWidget refactor memory table
2022-11-05 22:59:44 +01:00
JosJuice fb916a4c33 Boot: Load DOL/ELF after memory setup
I recently talked to a homebrew developer who was trying to add exception
handlers at link time but found out that Dolphin was overwriting their
exception handlers. I figure that's not the usual way to do exception
handlers, but... making us load the executable after setting up memory
rather than before is easy, and matches what we do when booting discs,
so I suppose there's no reason not to do it. It also matches the intent
of why Dolphin is writing default exception handlers – we're writing
them because some homebrew relies on exception handlers being left
around from whatever program was running before it (see 3dd777be70).
2022-11-05 13:55:17 +01:00
TellowKrinkle d9ed9ae331 VideoCommon: Zero PortableVertexDeclarations on initialization
Fixes an issue where the default initializer wouldn't initialize padding, making for fun non-determinism
2022-11-05 02:02:53 -05:00
Admiral H. Curtiss 431301add3
Merge pull request #10771 from TryTwo/PR_AutoStep
Debugger: Implement base code tracing logic. and feature to auto-step through code.
2022-11-04 23:32:54 +01:00
Admiral H. Curtiss 26b68f1f84
Merge pull request #11228 from Pokechu22/statistics-macros
VideoCommon/Statistics: Require semicolons after statistics macros
2022-11-04 23:15:52 +01:00
Admiral H. Curtiss 8b4e315fb7
Merge pull request #11242 from Sintendo/arm64cmp
JitArm64: Optimize cmp
2022-11-04 23:13:09 +01:00
Admiral H. Curtiss c2e6d85ba7
Merge pull request #11247 from tellowkrinkle/MetalHeadless
VideoBackends:Metal: Headless render support
2022-11-04 23:10:39 +01:00
Admiral H. Curtiss 7a76aeef21
Merge pull request #11222 from JMC47/eggmaniaprog
Add Force Progressive Patch for Egg Mania
2022-11-04 23:07:27 +01:00
Charles Lombardo 6eb5013359 Android: Offload cover path unmangling to another thread 2022-11-04 14:28:21 -04:00
Robin Kertels 0e02ddcf52
VideoCommon:FramebufferManager: Cleanup 2022-11-04 01:18:23 +01:00
Robin Kertels 371935d61e
VideoCommon:FramebufferManager: Mark cache as valid after refresh
Otherwise we might never hit the early return
if either depth or color doesnt have any active
tiles.
2022-11-04 01:18:23 +01:00
TellowKrinkle 83ca1ad8a6 VideoBackends:Metal: Headless render support 2022-11-03 02:35:24 -05:00
Admiral H. Curtiss 1d07332657
Merge pull request #11193 from jordan-woyak/ciface-input-backend-interface
ControllerInterface: Add InputBackend interface.
2022-11-03 04:42:05 +01:00
Bram Speeckaert 274e34ddf1 JitArm64: MultiplyImmediate - Handle -(2^n) + 1
Let's take advantage of ARM64's input register shifting one last time,
shall we?

Before:
0x1280005b   mov    w27, #-0x3
0x1b1b7f18   mul    w24, w24, w27

After:
0x4b180b18   sub    w24, w24, w24, lsl #2
2022-11-02 21:53:19 +01:00
Bram Speeckaert 7073a135c6 JitArm64: MultiplyImmediate - Handle -(2^n)
ARM64's flexible shifting of input registers also allows us to calculate
a negative power of two in one instruction; shift the input of a NEG
instruction.

Before:
0x128001f7   mov    w23, #-0x10
0x1b1a7efa   mul    w26, w23, w26
0x93407f58   sxtw   x24, w26

After:
0x4b1a13fa   neg    w26, w26, lsl #4
0x93407f58   sxtw   x24, w26
2022-11-02 21:53:19 +01:00
Bram Speeckaert 1c87f040a3 JitArm64: mulli - Only allocate reg when necessary
If the destination register doesn't equal the input register, using it
to temporarily hold the immediate value is fair game as it'll be
overwritten with the result of the multiplication anyway. This can
slightly reduce register pressure.

Before:

0x52800659   mov    w25, #0x32
0x1b197f5b   mul    w27, w26, w25

After:
0x5280065b   mov    w27, #0x32
0x1b1b7f5b   mul    w27, w26, w27
2022-11-02 21:53:19 +01:00
Bram Speeckaert 20dd5cadab JitArm64: MultiplyImmediate - Add comments 2022-11-02 21:53:17 +01:00
Bram Speeckaert c349875cdc JitArm64: MultiplyImmediate - Handle 2^n + 1
By taking advantage of ARM64's ability to shift an input register by any
amount, we can calculate multiplication by a number that is one more
than a power of two with a single instruction.

Before:
0x52800838   mov    w24, #0x41
0x1b187f7b   mul    w27, w27, w24

After:
0x0b1b1b7b   add    w27, w27, w27, lsl #6
2022-11-02 21:52:44 +01:00
Bram Speeckaert 3aaf1a2b8b JitArm64: MultiplyImmediate - Handle 2^n
Turn multiplications by a power of two into bitshifts.

Before:
0x52800817   mov    w23, #0x40
0x1b167ef6   mul    w22, w23, w22

After:
0x531a66d6   lsl    w22, w22, #6
2022-11-02 21:52:37 +01:00
Markus Wick 0210d115c2
Merge pull request #11227 from JosJuice/jitarm64-mmio-clobber
JitArm64: Move MMIO handler result before popping stack
2022-11-02 10:19:22 +01:00
Jordan Woyak 168a49c87f ControllerInterface: DSU InputBackend implementation. 2022-11-01 21:59:09 -05:00
Jordan Woyak 2e5cd5d519 ControllerInterface: evdev InputBackend implementation. 2022-11-01 21:59:08 -05:00
Jordan Woyak 44a4573303 ControllerInterface: Add InputBackend interface and SDL implementation. 2022-11-01 21:59:08 -05:00
Bram Speeckaert f25611f388 JitArm64: MultiplyImmediate - Handle 1
Multiplication by one is also trivial. Depending on the registers
involved, either a single MOV or no instructions will be generated.

Before:
0x52800038   mov    w24, #0x1
0x1b1a7f1b   mul    w27, w24, w26

After:
0x2a1a03fb   mov    w27, w26

Before:
0x52800039   mov    w25, #0x1
0x1b1a7f3a   mul    w26, w25, w26

After:
Nothing!
2022-11-01 21:13:45 +01:00
Bram Speeckaert 51cb918aa5 JitArm64: MultiplyImmediate - Handle 0
Multiplication by zero always gives zero.

Before:
0x52800019   mov    w25, #0x0
0x1b197f5b   mul    w27, w26, w25

After:
Nothing!
2022-11-01 21:13:38 +01:00
Bram Speeckaert 080513284c JitArm64: mullwx - Use MultiplyImmediate 2022-11-01 19:05:33 +01:00
Bram Speeckaert 53a8cd1563 JitArm64: mulli - Use MultiplyImmediate 2022-11-01 19:04:50 +01:00