Sam Belliveau
87d5d39dfe
Set VI Skip Activation to Half The Audio Buffer
2023-02-02 20:55:13 -05:00
Joshua de Reeper
680db55239
Android: Add Skylanders Portal
...
Co-Authored-By: Charles Lombardo <clombardo169@gmail.com>
2023-02-02 21:16:14 +13:00
Scott Mansell
12431a83ba
Merge pull request #11435 from techydude0713/wc24-utc-fix
...
NetKDTime: Use UTC based timestamp instead of localtime.
2023-01-31 23:40:15 +13:00
Scott Mansell
abfc75f362
Cleanup headers
2023-01-31 19:41:24 +13:00
Scott Mansell
0da69055d9
Split out everying remaining from Swap
2023-01-31 19:41:24 +13:00
Scott Mansell
b007b8e104
Replace BeginUI/EndUI
2023-01-31 19:41:24 +13:00
Scott Mansell
e57eb04ed3
Rename FrameDump.{cpp,h} to FrameDumpFFMpeg.{cpp,h}
...
The name kind of conflicts with a new FrameDumper class
2023-01-31 18:45:29 +13:00
Scott Mansell
0d4537d60f
Move Presenting, Dumping and ImGui out of Renderer
2023-01-31 18:45:21 +13:00
Pierre Bourdon
2843cd10a8
Merge pull request #11492 from mandar1jn/file-improvements
...
Improve the data in the first data block of the skylanders figures
2023-01-31 03:02:39 +01:00
Lioncash
f20790370a
Core/ActionReplay: Make use of std::span where applicable
...
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 13:02:09 -05:00
Lioncash
adb4c0492d
Core/GeckoCode: Make use of std::span where applicable
...
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 12:53:50 -05:00
Mandar1jn
c8a91abadc
Improve the data in the first data block of the skylanders figures
...
* Added NUID
* Added BCC
* Added ATQA
* Added SAK
2023-01-30 16:29:20 +01:00
Admiral H. Curtiss
e48424065b
Merge pull request #10839 from CasualPokePlayer/fix_sysconf_settings
...
Fix SYSCONF movie settings
2023-01-30 09:50:21 +01:00
Pierre Bourdon
a2f4606d33
Merge pull request #11205 from TellowKrinkle/AutoPresent
...
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-30 09:01:18 +01:00
Scott Mansell
6d7303993c
Merge pull request #11509 from Sam-Belliveau/improved-speed-counter
...
Tie Speed to CPU Speed and not VPS
2023-01-30 20:41:03 +13:00
Sam Belliveau
ebf114aef5
Tie Speed to CPU Speed and not VPS
2023-01-29 13:33:48 -05:00
Pierre Bourdon
2eda76cffc
Merge pull request #11474 from MayImilae/cleanup-remove-cdutils
...
Cleanup: Remove CDUtils
2023-01-29 09:50:32 +01:00
Pokechu22
3b4e17292d
Revert "DSPLLE: Add assertion for bad DMA alignment"
...
This reverts commit e140516130
. This assert triggers for AX and AXWii uCode games (including the Wii System Menu) for various addresses that seem to be 4-byte aligned. Worse still, if the DSP thread is in use (i.e. for DSP LLE recompiler, but not for DSP LLE interpreter), Dolphin completely hangs after the panic alert. Perhaps the data DMA has fewer restrictions compared to the instruction DMA?
The change to DSPTool (e391a28102
) has not been reverted, as it still fixes broken behavior for DSPSpy at -O0 on real hardware.
2023-01-28 17:26:47 -08:00
JosJuice
e27339039c
PPCAnalyst: Actually check if instructions want CR
2023-01-28 20:16:17 +01:00
JosJuice
9d2c4aa325
PPCAnalyst: Use bitsets for CR analysis
...
Currently we're only performing CR analysis for CR0 and CR1, but I
would like to do it for all CRs. Bitsets are appropriate for this.
2023-01-28 20:16:16 +01:00
JosJuice
3b57fb1d21
PPCTables: Add new instruction flags for CR
2023-01-28 20:16:16 +01:00
MayImilae
37859ec1da
Cleanup: Remove CDUtils
...
This is a cleaning followup for #11456 .
2023-01-28 03:50:57 -08:00
Admiral H. Curtiss
be2d394b8c
GDBStub: Avoid ppcState global.
2023-01-27 15:22:48 +01:00
Admiral H. Curtiss
dd9907ed93
PatchEngine: Avoid ppcState global.
2023-01-27 15:22:48 +01:00
Admiral H. Curtiss
4c349caabd
MIOS: Avoid ppcState global.
2023-01-27 15:22:48 +01:00
Admiral H. Curtiss
ed633476e6
IOS: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
0a0b4d325f
HW/SystemTimers: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
a784fe1f2f
HW/ProcessorInterface: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
884130f95c
HW/Memmap: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
2bf72de43d
HW/GPFifo: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
e2f7855b0e
HW/DSP: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
18d9ec75f1
HW/CPU: Avoid ppcState global.
2023-01-27 15:22:47 +01:00
Admiral H. Curtiss
078a460446
HW/AudioInterface: Avoid ppcState global.
2023-01-27 15:22:46 +01:00
Admiral H. Curtiss
b52e8fd295
HLE_OS: Avoid ppcState global.
2023-01-27 15:22:46 +01:00
Admiral H. Curtiss
7fd552081f
HLE function hooking: Avoid ppcState global.
2023-01-27 15:22:46 +01:00
Admiral H. Curtiss
30de91d843
GeckoCode: Avoid ppcState global.
2023-01-27 15:22:46 +01:00
Admiral H. Curtiss
1a826b27a6
FifoPlayer: Avoid ppcState global.
2023-01-27 15:22:46 +01:00
Admiral H. Curtiss
8adabb86cf
Debugger: Avoid ppcState global.
2023-01-27 15:22:45 +01:00
Admiral H. Curtiss
bfc951311f
CheatSearch: Avoid ppcState global.
2023-01-27 15:22:45 +01:00
Admiral H. Curtiss
41ad0490f0
CoreTiming: Avoid ppcState global.
2023-01-27 15:22:45 +01:00
Admiral H. Curtiss
94455ee9e1
Boot: Avoid ppcState global.
2023-01-27 15:22:45 +01:00
Admiral H. Curtiss
51e7980d95
Core: Add PowerPCState reference to System.
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
485bba238e
PowerPC: Add PowerPCState parameter to UpdatePerformanceMonitor().
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
61ba516570
PowerPC: Move a few functions to PowerPCState.
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
0dcf228aaf
PowerPC: Parametrize TU macro.
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
a7d3315b4f
PowerPC: Parametrize TL macro.
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
2f241856b6
PowerPC: Add PowerPCState parameter to GQR macro.
2023-01-27 15:22:44 +01:00
Admiral H. Curtiss
814c01162a
PowerPC: Remove SPRG0/1/2/3 macros.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
2f8b3ac1b7
PowerPC: Parametrize SRR1 macro.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
652113e6ba
PowerPC: Parametrize SRR0 macro.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
10dabd9975
PowerPC: Remove rDEC macro.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
c13ca271d8
PowerPC: Parametrize CTR macro.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
0a343007cb
PowerPC: Parametrize LR macro.
2023-01-27 15:22:43 +01:00
Admiral H. Curtiss
0f301829d2
PowerPC: Remove rPS macro.
2023-01-27 15:22:42 +01:00
Admiral H. Curtiss
0cd4a226d2
PowerPC: Remove rSPR macro.
2023-01-27 15:22:42 +01:00
Admiral H. Curtiss
27ce432012
PowerPC: Remove rGPR macro.
2023-01-27 15:22:42 +01:00
Admiral H. Curtiss
8fccefa3aa
PowerPC: Remove GPR macro.
2023-01-27 15:22:42 +01:00
Admiral H. Curtiss
ba1b624e1b
PowerPC: Remove MSR macro.
2023-01-27 15:22:42 +01:00
Admiral H. Curtiss
4b6b8fa1ae
PowerPC: Remove FPSCR macro.
2023-01-27 15:22:41 +01:00
Admiral H. Curtiss
2f3187eba9
PowerPC: Remove NPC macro.
2023-01-27 15:22:41 +01:00
Admiral H. Curtiss
be8d0b76ca
PowerPC: Remove PC macro.
2023-01-27 15:22:41 +01:00
Admiral H. Curtiss
82f3170876
PowerPC: Parametrize THRM1/2/3 macros.
2023-01-27 15:22:41 +01:00
Admiral H. Curtiss
8bab3ac755
PowerPC: Parametrize MMCR1 macro.
2023-01-27 15:22:41 +01:00
Admiral H. Curtiss
126590c4cd
PowerPC: Parametrize MMCR0 macro.
2023-01-27 15:22:40 +01:00
Admiral H. Curtiss
38529a2d8d
PowerPC: Parametrize DMAL macro.
2023-01-27 15:22:40 +01:00
Admiral H. Curtiss
2374365274
PowerPC: Parametrize DMAU macro.
2023-01-27 15:22:40 +01:00
Admiral H. Curtiss
31483e492e
PowerPC: Parametrize HID4 macro.
2023-01-27 15:22:40 +01:00
Admiral H. Curtiss
6f0ab1b33e
PowerPC: Parametrize HID2 macro.
2023-01-27 15:22:40 +01:00
Admiral H. Curtiss
49eeb986c6
PowerPC: Parametrize HID0 macro.
2023-01-27 15:22:40 +01:00
Pierre Bourdon
f056cec859
Merge pull request #11480 from Pokechu22/dsp-code-alignment
...
DSPLLE: Add assertion for bad DMA alignment
2023-01-26 23:17:09 +01:00
Pierre Bourdon
9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
...
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
Pierre Bourdon
c6a7465529
Merge pull request #11485 from MayImilae/remove-filepath-from-states-messaging
...
Remove Filepath from State Save/Load OSD Messages
2023-01-26 05:29:21 +01:00
TellowKrinkle
1be0149146
VideoCommon: Cull vertices on the CPU
2023-01-25 02:21:56 -06:00
Admiral H. Curtiss
9fc959cab0
Merge pull request #11489 from lioncash/init
...
CoreTiming: Zero initialize all CoreTimingManager throttle members
2023-01-25 02:29:32 +01:00
Lioncash
3607c1dc7d
CoreTiming: Zero initialize all CoreTimingManager throttle members
...
Gives two members without explicit initialization default values to be
consistent with the rest of the class and also ensuring deterministic
values on construction.
2023-01-24 17:20:08 -05:00
Pierre Bourdon
6fad8ac389
Merge pull request #11467 from Simonx22/remove-titlebar-fps-counter
...
Core: Remove FPS, VPS and speed percentage from window title
2023-01-24 23:04:29 +01:00
Lioncash
e5b91f00b0
Common: Replace StringBeginsWith/StringEndsWith with std equivalents
...
Obsoletes these functions in favor of the standard member functions
added in C++20.
2023-01-24 14:58:20 -05:00
MayImilae
ed121ee679
Removed filepath from State Save/Load OSD messages
...
Though less important compared to #11470 , save states also show the full path in the OSD message and could potentially dox a streamer who is playing in Dolphin. This is a simple fix - it removes the path from the message and only displays the file name.
2023-01-24 07:55:58 -08:00
Pierre Bourdon
caca662dbf
Merge pull request #10994 from shuffle2/fs
...
get rid of HAS_STD_FILESYSTEM
2023-01-24 12:18:25 +01:00
Admiral H. Curtiss
d4d6f3db63
Merge pull request #11331 from deReeperJosh/skylandersportal
...
Emulate Skylanders Portals within Dolphin
2023-01-24 06:56:00 +01:00
Joshua de Reeper
c76d2c16eb
Valid block/num checks, rename variables, remove translatable strings
...
Capitalize Skylander in tr strings
Lint and validation method fixes
Proper Attach and Change Interface method
Re-jig code to exit early and read easier
2023-01-24 18:12:24 +13:00
Pokechu22
e140516130
DSPLLE: Add assertion for bad DMA alignment
...
I haven't tested this extensively on real hardware, but I do know that bad things happen if the address isn't properly aligned, and libogc says it should be 32-byte aligned.
2023-01-23 15:20:49 -08:00
Simonx22
df6f070a55
Core: Remove FPS, VPS and speed percentage from window title
2023-01-23 21:32:50 +01:00
Pierre Bourdon
8d477c65c9
Merge pull request #11458 from shuffle2/winuver
...
windows: prefer os version from registry
2023-01-23 15:53:41 +01:00
Admiral H. Curtiss
8032a71c4c
Merge pull request #11471 from MayImilae/dont-update-titlebar-with-osd-messages
...
Don't Write OSD Messages to the Titlebar
2023-01-23 06:46:32 +01:00
MayImilae
9df1f0276d
Don't Write OSD Messages to the titlebar
...
Turns out all OSD messages, every single one, are written to the titlebar. We've just never seen them because the FPS is in the title bar and it replaces it in a fraction of a second. This was only visible when saving savestates because it halts emulation for a moment while writing.
This is dumb, let's not do that anymore.
2023-01-22 00:19:51 -08:00
Pierre Bourdon
0eb984f030
Merge pull request #11470 from MayImilae/remove-memory-card-path-from-osd-message
...
Remove Memory Card Path from the Wrote to OSD Message
2023-01-22 08:13:51 +01:00
MayImilae
ef0d386954
Remove Memory Card Path from the Wrote OSD Message
...
A few weeks ago, a vtuber tweeted that they had to remove a vod of their stream because Dolphin Emulator showed some personal information during the steam, and left a warning to everyone else that Dolphin shows the account name of the computer. And yea, we do, we show the full directory of the memory card every time a memory card is written, and due to mandatory Microsoft account nonsense, that is very likely to contain someone’s real name.
Fortunately this is very easy for us to solve. This change simply removes the filename from wrote memory card contents string. That’s it. All functionality of the wrote memory card OSD message remains the same, it just doesn’t say where the memory card is anymore.
There are lots of other potential solutions to this but after talking on IRC it seems the simplest one is the best.
2023-01-21 21:19:51 -08:00
Joshua de Reeper
18fd0d7dcd
Use Core timing instead of thread
...
Skylander code tidy ups
Convert c array to std::array and fix comments
Formatting fixes/review changes
Variable comment
Migrate portal to System Impl and code tidy ups
Use struct
Restore review changes
Minor fix to schedule transfer method
Change descriptors to hex and fix comments
2023-01-22 14:50:30 +13:00
Joshua de Reeper
f76a6789a0
Emulate Skylanders within Dolphin
...
Ported the code from RPCS3, with improvements made to the handling of control messages and audio transfers, Co-Authored with @mandar1jn
Missing new line chars
Co-Authored-By: mandar1jn <49076509+mandar1jn@users.noreply.github.com>
2023-01-22 14:50:30 +13:00
shockdude
a32b85691b
Fix Turntable extension's table range
2023-01-18 19:17:09 -08:00
Pierre Bourdon
8d5edb13a9
Merge pull request #11367 from Sam-Belliveau/lagbegone
...
VideoCommon: VI Skip
2023-01-19 01:20:01 +01:00
Pierre Bourdon
1cd11b8f3a
Merge pull request #11381 from skyfloogle/traversal-fix-1
...
Netplay: Fix traversal connections occasionally not working
2023-01-17 23:40:24 +01:00
John Papetti
e2db9cd142
NetKDTime: Use UTC timestamp
2023-01-17 13:59:01 -05:00
Shawn Hoffman
dff7f20f9d
windows: prefer os version from registry
...
this value is not modified by compatibility mode
drop reporting service pack numbers. no longer used
2023-01-17 01:38:00 -08:00
Scott Mansell
7c202ab411
Reset throttle on savestate load
2023-01-16 14:18:42 +13:00
JMC47
30f0051f9c
Merge pull request #11440 from JosJuice/jit64-negative-guard
...
Core: Allocate 2 GiB of guard pages below fastmem area
2023-01-14 19:19:53 -05:00
JosJuice
4fa9fa997e
Core: Allocate 2 GiB of guard pages below fastmem area
...
See the comment added by this commit. We were previously guarding against
overshooting in address calculations, but not against undershooting.
Perhaps someone assumed that the displacement of an x86 loadstore was
treated as unsigned?
Note: While the comment says we can undershoot by up to 2 GiB, in
practice Jit64 as it currently behaves won't actually undershoot by more
than 0x8000 if my analysis is correct. But address space is cheap, so
let's guard the full 2 GiB.
2023-01-14 20:35:50 +01:00
JosJuice
9c90b31e6a
Memmap: Remove some remnants from the 32-bit JITs
2023-01-14 11:46:37 +01:00
Sam Belliveau
23ad07b368
Add VISkip
2023-01-14 01:56:37 -05:00
JMC47
8a1cac9be1
Merge pull request #11348 from Sam-Belliveau/improved-pacing
...
CoreTiming: Throttle Before Every Event Using std::chrono
2023-01-13 21:52:07 -05:00
Sam Belliveau
e849172dc9
Limit Throttling to 1200hz
2023-01-13 18:17:24 -05:00
Sam Belliveau
e95c1d55e8
Limit Sleep Calls to 8192hz at most
2023-01-13 11:59:32 -05:00
Shawn Hoffman
d51e4e5236
get rid of HAS_STD_FILESYSTEM
...
just use std::filesystem
2023-01-10 05:17:43 -08:00
Admiral H. Curtiss
653e0ccf28
Merge pull request #11365 from iwubcode/cheat_manager_freeze_value
...
DolphinQt: add ability to lock / freeze values in the watches window
2023-01-09 18:41:28 +01:00
Admiral H. Curtiss
993d2ab173
PatchEngine: Use std::span in ApplyMemoryPatches().
2023-01-09 17:24:41 +01:00
Admiral H. Curtiss
21c29bad6b
Merge pull request #11407 from AdmiralCurtiss/globals-gpfifo
...
HW/GPFifo: Refactor to class, move to Core::System.
2023-01-09 17:09:48 +01:00
Admiral H. Curtiss
eeeab3c3be
Merge pull request #11183 from TheLordScruffy/write-back-cache
...
Implement PowerPC data cache
2023-01-09 17:09:32 +01:00
Sam Belliveau
901e4c7697
Reset Throttle Variables In Init
2023-01-09 11:06:12 -05:00
Sam Belliveau
f7de0e4147
Fix issue that would disable Throttling
2023-01-08 01:20:19 -05:00
TheLordScruffy
d85f6c8298
DolphinAnalytics: Remove ICACHE_MATTERS
2023-01-08 00:17:46 -05:00
TheLordScruffy
825bacde43
PPCCache: Change u32 to u8 for plru, valid, modified
2023-01-07 20:18:59 -05:00
TheLordScruffy
811d942222
Improve PPCCache lookup table
2023-01-07 07:30:42 -05:00
Sam Belliveau
bc1cc9eeb4
CoreTiming: Throttle Before Every Event Using Chrono
2023-01-06 17:21:17 -05:00
Admiral H. Curtiss
d33416fc35
HW/Memmap: Zero-initialize members by default.
2023-01-06 05:33:21 +01:00
Admiral H. Curtiss
fbcaf83d30
HW/GPFifo: Refactor to class, move to Core::System.
2023-01-06 05:33:21 +01:00
Admiral H. Curtiss
7b04a6b958
Merge pull request #11089 from sepalani/pcap-share
...
NetworkCaptureLogger: Allow PCAP shared read access on Windows
2023-01-05 04:06:35 +01:00
Admiral H. Curtiss
2fdaf0a86e
HW/ProcessorInterface: Rename member variables to fit naming convention.
2023-01-04 03:17:26 +01:00
Admiral H. Curtiss
74e1577a2c
HW/ProcessorInterface: Refactor to class, move to Core::System.
2023-01-04 03:00:10 +01:00
Pokechu22
c1b1d8d783
DolphinAnalytics: Track support of framebuffer fetch
2023-01-02 23:17:17 -08:00
Pokechu22
277518837a
DolphinAnalytics: Track support of logic ops
2023-01-02 23:17:02 -08:00
Pokechu22
f433da6083
DolphinAnalytics: Fix comment wrapping
...
This was broken in 3570c7f03a
.
2023-01-02 23:15:04 -08:00
TheLordScruffy
9d39647f9e
Fix PPC cache code formatting
2023-01-02 02:33:57 -05:00
Mai
20ac2cf781
Merge pull request #11375 from JosJuice/mmu-inf-write
...
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
2022-12-31 18:55:11 +00:00
Mai
acdf76bf16
Merge pull request #11374 from JosJuice/jitarm64-breakpoints
...
JitArm64: Implement breakpoints
2022-12-31 18:53:25 +00:00
Admiral H. Curtiss
f6fbeaf355
Merge pull request #11364 from jordan-woyak/udraw-lift
...
WiimoteEmu: Expose mappings for lifted UDraw and Drawsome stylus.
2022-12-29 21:16:57 +01:00
Admiral H. Curtiss
c20bb01b47
Merge pull request #11372 from JosJuice/m3u-backslash
...
Boot: Fix handling of M3U file paths containing backslashes
2022-12-29 17:09:38 +01:00
Admiral H. Curtiss
4bc94e4629
Merge pull request #11353 from noahpistilli/fix-mail-account-generation
...
Set checksum for NWC24Config during creation
2022-12-29 17:08:10 +01:00
Admiral H. Curtiss
cb0a603c72
VideoCommon: De-globalize GeometryShaderManager class.
2022-12-29 15:33:19 +01:00
Admiral H. Curtiss
a164c47caf
Core/Boot: Pass System instance to BootUp() and related.
2022-12-29 05:49:26 +01:00
Admiral H. Curtiss
50625728e0
VideoCommon: De-globalize VertexShaderManager class.
2022-12-28 15:52:29 +01:00
Mai
0900e68986
Merge pull request #11384 from AdmiralCurtiss/globals-pixelshadermanager
...
VideoCommon: De-globalize PixelShaderManager class.
2022-12-28 00:59:03 +00:00
Admiral H. Curtiss
c8202043b6
IOS/NWC24Config: Combine WriteConfig() and WriteCBK().
2022-12-27 21:21:06 +01:00
Admiral H. Curtiss
725bd64ec2
VideoCommon: De-globalize PixelShaderManager class.
2022-12-27 20:13:24 +01:00
Sketch
929fba08e7
Fix ESDevice::GetTitlesWithTickets always returning 0 titles owned
2022-12-27 12:18:44 -05:00
Floogle
c689e9cde0
Netplay: When connecting, ignore packets from traversal server
2022-12-26 23:35:42 +01:00
Jordan Woyak
4f4285cf5e
WiimoteEmu/DrawsomeTablet: Expose mapping for lifted stylus.
2022-12-25 19:03:15 -06:00
Jordan Woyak
ab9fc3f2e4
WiimoteEmu/UDrawTablet: Expose mapping for lifted stylus.
2022-12-25 19:03:15 -06:00
JosJuice
cf16f49068
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
...
`em_address + size` can overflow and become 0. It shouldn't happen with
the kinds of memory mappings games use in practice, though.
2022-12-25 12:29:13 +01:00
JosJuice
c744ff4934
JitArm64: Implement breakpoints
...
Plus two miscellaneous debugger features that I found along the way when
reading Jit64's code for comparison: bJITNoBlockLinking and tracing.
Fixes https://bugs.dolphin-emu.org/issues/13127 .
2022-12-24 13:24:01 +01:00
JosJuice
0659827485
Jit64: Check for breakpoint without disabling block link
...
Small optimization. By not calling WriteExit, the block linking system
never finds out about the exit we're doing, saving us from having to
disable block linking.
2022-12-24 13:01:29 +01:00
JosJuice
71f1b1db34
Boot: Fix handling of M3U file paths containing backslashes
...
Previously, if a user on Windows launched Dolphin from the command line
and specified a path to an M3U file and included backslashes in this path,
Dolphin would fail to resolve relative paths in the M3U file.
2022-12-24 11:13:27 +01:00
Sam Belliveau
673f81c18a
New FrameTime/VBlank Analyzer + Graph
2022-12-23 19:52:53 -05:00
iwubcode
31bf9d0019
Core: add option to apply memory patch to not store the existing value (used during locking)
2022-12-23 12:31:33 -06:00
iwubcode
8f3e8e4ca3
Core: add locked state to watches
2022-12-23 11:59:23 -06:00
iwubcode
3081a781fd
Core: when scheduling an invalidate cpu cache, no need to schedule if we're already on the cpu thread
2022-12-23 11:59:23 -06:00
iwubcode
2f2f906bf5
Core: add ability to add memory patches to the patch engine that will be executed each frame
2022-12-23 03:13:03 -06:00
iwubcode
1f87bcd202
Core: add ability to apply memory patches during a frame update in the PatchEngine
2022-12-23 03:13:03 -06:00
iwubcode
4743d74985
Core: add helper function to apply a memory patch and mark the 'PPCPatches' as final
2022-12-23 03:13:03 -06:00
Minty-Meeo
05bebee802
Replace BitUtils with C++20: Counting Zeroes
...
With the upgrade to C++20, std::countl_zero and std::countr_zero can replace these home-spun implementations from the BitUtil.h library.
2022-12-21 04:17:00 -06:00
Admiral H. Curtiss
d853da3b0b
Merge pull request #11354 from Pokechu22/desert-bus-asnd-ucode
...
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 20:01:21 +01:00
Pokechu22
66b3686d84
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 10:02:53 -08:00
Mai
5348c8b2c6
Merge pull request #11344 from JosJuice/jitarm64-mw-deps
...
JitArm64: Improve pipelining of lmw/stmw
2022-12-20 15:11:29 +00:00
Sketch
c01ec96c92
Set checksum for NWC24Config during creation
2022-12-19 20:18:34 -05:00
Mai
a1c4861ad8
Merge pull request #10950 from JosJuice/replace-bitutils-rotate
...
Replace BitUtils with C++20: RotateLeft/RotateRight
2022-12-11 21:19:43 +00:00
Mai
aa57d53c90
Merge pull request #11345 from AdmiralCurtiss/globals-pe
...
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:07:30 +00:00
Admiral H. Curtiss
ec8aaf1f30
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:57:19 +01:00
JosJuice
701ba7cd43
JitArm64: Improve pipelining of lmw/stmw
...
The calculation of each address in lmw/stmw currently has a dependency
on the calculation of the previous address. By removing this dependency,
the host CPU should be able to pipeline the loads/stores better. The cost
we pay for this is up to one extra register and one extra MOV instruction
per guest instruction, but often nothing.
Making EmitBackpatchRoutine support using any register as the address
register would let us get rid of the MOV, but I consider that to be too
big of a task to do in one go at the same time as this.
2022-12-11 17:08:12 +01:00
Merry
17c14ac4b9
MachineContext: Fix USE_SIGACTION_ON_APPLE on arm64
2022-12-11 13:36:44 +00:00
JosJuice
454537d53e
Replace BitUtils with C++20: RotateLeft/RotateRight
...
Now that we've flipped the C++20 switch, let's start making use of
the nice new <bit> header.
I'm planning on handling this move away from BitUtils.h incrementally
in a series of PRs. There may be a few functions remaining in
BitUtils.h by the end that C++20 doesn't have any equivalents for.
2022-12-11 08:59:18 +01:00
JosJuice
1fd8d476e8
Merge pull request #11325 from t895/extra-dark
...
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
Charles Lombardo
fd7a84b794
Android: Add black backgrounds toggle
...
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
Mai
54e01c660e
Merge pull request #11334 from AdmiralCurtiss/globals-fifo
...
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 19:13:23 +00:00
Mai
48ce5318e1
Merge pull request #11338 from JosJuice/jitarm64-revert-supposed-tail
...
Revert "JitArm64: Optimize a few tail calls"
2022-12-10 19:11:23 +00:00
Admiral H. Curtiss
ceae4242fc
VideoCommon/Fifo: Pass Core::System to methods.
2022-12-10 17:16:26 +01:00
Admiral H. Curtiss
5624dd6d39
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 17:16:19 +01:00
JosJuice
64bc150b8c
Revert "JitArm64: Optimize a few tail calls"
...
This reverts commit 351d095fff
.
In hindsight, my attempted optimization messes with the return
predictor, unlike real tail calls. So I think it does more bad than
good.
2022-12-10 11:35:52 +01:00
Admiral H. Curtiss
8a3b8a925e
Core: Add option to force linear texture filtering.
2022-12-09 02:02:16 +01:00
TheLordScruffy
e97d380437
Implement PPC write-back data cache
2022-12-08 18:18:32 -05:00
Admiral H. Curtiss
b207611c33
Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
...
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
Mai
000c6c4813
Merge pull request #11321 from JosJuice/jitarm64-accurate-nans
...
JitArm64: Implement accurate NaNs
2022-12-07 00:58:13 +00:00
Mai
94faad0d37
Merge pull request #11320 from AdmiralCurtiss/globals-memory
...
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-07 00:52:31 +00:00
Mai
a9a603b8cb
Merge pull request #11268 from jordan-woyak/ascii-controller
...
Rename "Keyboard" to "Keyboard Controller"
2022-12-04 21:05:52 +00:00
TryTwo
a17fbe7c65
Expand conditional breakpoints to memory breakpoints
2022-12-04 11:25:33 -07:00
Mai
b23eb1f550
Merge pull request #11322 from JosJuice/jit64-madds-nan
...
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-04 17:58:16 +00:00
Mai
f21edf6d5a
Merge pull request #11270 from t895/theme-mode
...
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
Admiral H. Curtiss
2b93d5e0d7
Merge pull request #11273 from TryTwo/PR_Conditional_BP_Callstack
...
Debugger: add callstack to conditional breakpoints
2022-12-04 14:16:12 +01:00
TryTwo
76bf1b5f7d
Add callstack to conditional breakpoints. Checks entire stack for value.
...
Use: callstack(0x80000000).
!callstack(value) works as a 'does not contain'.
Add strings to expr.h conditionals.
Use quotations: callstack("anim") to check symbols/name.
2022-12-03 20:52:17 -07:00
JosJuice
eeef5363e4
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-03 21:05:05 +01:00
JosJuice
06e60ac327
JitArm64: Implement accurate NaNs
...
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a
I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
JosJuice
5c41d3b602
JitArm64: Refactor temp reg handling in fp_arith/ps_arith
2022-12-03 19:08:27 +01:00
Admiral H. Curtiss
839db591d9
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-03 13:27:02 +01:00
Charles Lombardo
b9fffa2e66
Android: Add theme mode switcher
...
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
2022-12-02 13:31:57 -05:00
Pokechu22
6a6d24550e
Clean up DisassembleBlock and JitInterface::GetHostCode
2022-12-01 17:43:35 -08:00
Mai
7cd9a78ebf
Merge pull request #11304 from JosJuice/jit64-nan-c
...
Jit64: Correctly handle NaNs for ps_mulsX/ps_sumX
2022-11-29 12:57:43 +00:00
Mai
5f22a0054f
Merge pull request #11305 from JosJuice/jitarm64-optimize-ps-merge
...
JitArm64: Optimize ps_mergeXX
2022-11-29 12:57:10 +00:00
Admiral H. Curtiss
6941d2e7e6
VideoCommon/CommandProcessor: Refactor to class, move to Core::System.
2022-11-29 08:15:01 +01:00
JosJuice
2f1a8ee1b9
Jit64: Skip HandleNaNs for operations that can't generate NaN
...
Operations that have two operands and can't generate a default NaN,
i.e. addition and subtraction, already have the desired NaN handling
on x86. We just need to make sure to not reverse the operands.
This fixes ps_sum0/ps_sum1 outputting NaNs in cases where they shouldn't.
(HandleNaNs assumes that a NaN in a ps0 input always results in a NaN in
the ps0 output, and correspondingly for ps1.)
2022-11-27 11:30:10 +01:00
JosJuice
cbceae9176
Jit64: Correctly handle NaNs for ps_mulsX
2022-11-27 11:30:10 +01:00
JosJuice
d3180e3516
Jit64: Refactor HandleNaNs operand passing
2022-11-27 11:30:05 +01:00
Mai
44f8b8c100
Merge pull request #11303 from AdmiralCurtiss/coretiming-class
...
CoreTiming: Refactor to class.
2022-11-27 06:00:46 +00:00
Admiral H. Curtiss
64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction.
2022-11-27 03:58:50 +01:00
Admiral H. Curtiss
daa70533cd
CoreTiming: Store Globals in CoreTimingManager.
2022-11-27 03:47:12 +01:00
Admiral H. Curtiss
c9558ecb4c
CoreTiming: Refactor to class.
2022-11-27 03:47:12 +01:00
Admiral H. Curtiss
3cdc6e3d4a
Merge pull request #10343 from AdmiralCurtiss/cubeb-2021
...
Update cubeb to mozilla/cubeb@27d2a102b0
2022-11-27 03:26:11 +01:00
JosJuice
f45d3a6a2c
JitArm64: Optimize ps_mergeXX
...
1. In some cases, ps_merge01 can be implemented using one instruction.
2. When we need two instructions for ps_merge01, it's best to start with
a MOV to avoid false dependencies on the destination register.
3. ps_merge10 can be implemented using a single EXT instruction.
2022-11-26 18:14:58 +01:00
Admiral H. Curtiss
e085bf14f9
Core: Use extra thread for Cubeb on Windows to not disturb the CoInitialize state of whatever thread happens to call a Cubeb function.
2022-11-26 05:05:57 +01:00
Admiral H. Curtiss
ca10e92ab9
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
...
Co-authored-by: Michael M <mchtly@gmail.com>
2022-11-26 05:05:56 +01:00
Admiral H. Curtiss
4273d3754c
CoreTiming: Move static variables into Core::System.
2022-11-26 04:22:32 +01:00
Admiral H. Curtiss
86f17511fc
CoreTiming: Move the 'Globals' instance into Core::System.
2022-11-26 04:22:32 +01:00
Admiral H. Curtiss
70f353fb37
Merge pull request #11283 from AdmiralCurtiss/netplay-save-sync-log
...
Netplay: Add more logging to save syncing.
2022-11-26 03:53:17 +01:00
Admiral H. Curtiss
d189c70d4d
Merge pull request #11230 from AdmiralCurtiss/gci-filenames
...
GCMemcardDirectory: GCI filename cleanup and fixes.
2022-11-26 03:52:43 +01:00
JoshuaMK
dd2282324b
Debugger BreakpointWidget: Allow editing breakpoints
2022-11-26 03:38:25 +01:00
Mai
7be4c90f67
Merge pull request #11166 from AdmiralCurtiss/mmio-system
...
HW: Pass System to MMIO handlers.
2022-11-24 00:58:45 +00:00
Pokechu22
cc5640245c
Fix build errors related to formatting non-scoped enums
2022-11-23 13:45:43 -08:00
Admiral H. Curtiss
0a6fdb9c13
HW: Pass System to MMIO handlers.
2022-11-23 05:52:21 +01:00
Mai
0ef6d30a0d
Merge pull request #11165 from AdmiralCurtiss/audiocommon-pass-system
...
AudioCommon: Pass Core::System to AudioCommon functions.
2022-11-23 04:49:31 +00:00
Mai
a47ed2124f
Merge pull request #11253 from AdmiralCurtiss/core-timing-events-pass-system
...
CoreTiming: Pass Core::System to Events.
2022-11-23 04:46:11 +00:00
Mai
677121bdbc
Merge pull request #11292 from JosJuice/jit64-imm-ra-update
...
Jit64: Use MOV instead of ADD for updating imm Ra
2022-11-23 04:42:46 +00:00
Mai
e573a0bbc2
Merge pull request #11294 from JosJuice/jitarm64-movpage2r
...
Arm64Emitter: Add MOVPage2R utility function
2022-11-23 04:41:31 +00:00
Sam Belliveau
edb2c90b38
Improve FPS/VPS Counting and Revamp Appearance
2022-11-23 00:11:47 +01:00
Admiral H. Curtiss
19b6251a3c
Merge pull request #11291 from JosJuice/gba-tas-input
...
DolphinQt: Add GBA TAS input window
2022-11-22 23:49:43 +01:00
Admiral H. Curtiss
c18d6c3deb
Config: Use JPN for custom GCI folder paths.
2022-11-22 17:53:20 +01:00
Admiral H. Curtiss
86d01c3399
Config: Add option to use JPN as the Japanese region directory in GetDirectoryForRegion().
...
See https://bugs.dolphin-emu.org/issues/13076 for motivation for this.
2022-11-22 17:53:19 +01:00
Admiral H. Curtiss
1089d3cab6
GCMemcardDirectory: Compare GCI files in GetFileNamesForGameID() by their identity instead of their default filename.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
4b0312ecf8
GCMemcardDirectory: Decode and strip strings for GCI filenames.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
c517e92719
GCMemcardDirectory: Use HasSameIdentity() in LoadGCI().
...
This is cheaper and more accurate than comparing default GCI filenames.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
b31b2db5fa
GCMemcard: Remove unused methods.
2022-11-22 10:54:10 +01:00
Admiral H. Curtiss
2132e005c3
Core: Add config setting for base GCI folder path.
2022-11-22 10:48:37 +01:00
JosJuice
d64c3dc267
Arm64Emitter: Add MOVPage2R utility function
...
This new function is like MOVP2R, except it masks out the lower 12 bits,
returning them instead of writing them to the register. These lower
12 bits can then be used as an offset for LDR/STR. This lets us turn
ADRP+ADD+LDR sequences with a zero offset into ADRP+LDR sequences with
a non-zero offset, saving one instruction.
2022-11-21 23:24:06 +01:00
JosJuice
40571cf13c
DolphinQt: Add GBA TAS input window
...
When emulated GBAs were added to Dolphin, it was possible to control them
using the GC TAS input window. (Z was mapped to Select.) Unaware of this,
I broke the functionality in b296248
.
To make it possible to control emulated GBAs using TAS input again,
I'm adding a proper TAS input window for GBAs, with a real Select button
and no analog controls.
2022-11-21 19:16:30 +01:00
JMC47
22bcf134bf
Merge pull request #11139 from JosJuice/jit64-nans-no-freg
...
Jit64: Don't use fregsIn in HandleNaNs
2022-11-20 13:47:02 -05:00
JosJuice
4b6bad2f9e
Jit64: Use MOV instead of ADD for updating imm Ra
...
The old code would first MOV the old imm into Ra and then do an ADD.
We can skip the ADD and just MOV the new imm.
2022-11-20 10:50:25 +01:00
Admiral H. Curtiss
5d03577189
Memmap: Fix initialization of PhysicalMemoryRegion.
2022-11-18 06:57:54 +01:00
Léo Lam
f1c9774159
Merge pull request #11240 from noahpistilli/es_v1_ticket
...
IOS/ES: Add support for V1Ticket
2022-11-18 00:25:47 +01:00
Sketch
2fd9852ca8
IOS/ES: Add support for V1Ticket
2022-11-17 17:54:06 -05:00
Admiral H. Curtiss
f0b0fcbb95
Netplay: Add more logging to save syncing.
2022-11-16 04:00:43 +01:00
Admiral H. Curtiss
43e90ca023
Merge pull request #11105 from vpelletier/si_ignore_setGameId
...
SI: Ignore non-standard setGameID command
2022-11-16 02:08:39 +01:00
Admiral H. Curtiss
d7593dd721
Merge pull request #11243 from Sintendo/arm64mul
...
JitArm64: Optimize multiplication
2022-11-15 04:05:49 +01:00
Admiral H. Curtiss
c9e74801ed
Merge pull request #11269 from vabold/dolphindevice-get-time
...
Add DolphinDevice::GetSystemTime to allow for accurate Unix timestamp generation
2022-11-15 03:48:57 +01:00
Admiral H. Curtiss
09c0321997
Merge pull request #11184 from Lobsterzelda/save-all-nand-files-to-save-state
...
HostFileSystem: Set all NAND folders to be saved in save states
2022-11-15 03:42:26 +01:00
Admiral H. Curtiss
2a81fa6c26
Merge pull request #11015 from TryTwo/Conditional_Breakpoints
...
Conditional breakpoints
2022-11-13 01:06:52 +01:00
vabold
083b8172e0
Replace `std::time` with `std::chrono::system_clock`
2022-11-12 05:36:49 -05:00
vabold
ff1c71cc38
Fix inaccurate function name, add old function
2022-11-12 05:36:49 -05:00
Jordan Woyak
296959ec58
GCKeyboardEmu: Eliminate unused Options group.
2022-11-11 01:59:09 -06: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
Admiral H. Curtiss
a36a5c1308
CoreTiming: Pass Core::System to Events.
2022-11-06 17:54:58 +01: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
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
Admiral H. Curtiss
8b4e315fb7
Merge pull request #11242 from Sintendo/arm64cmp
...
JitArm64: Optimize cmp
2022-11-04 23:13:09 +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
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
Bram Speeckaert
4aa0c0133a
JitArm64: Introduce MultiplyImmediate
...
Add a new function that will handle all the special cases regarding
multiplication. It does nothing for now, but will be expanded in
follow-up commits.
2022-11-01 19:01:38 +01:00
Bram Speeckaert
d0de68c41b
JitArm64: cmp - Optimize general case
...
We can merge an SXTW with the SUB, eliminating one instruction. In
addition, it is no longer necessary to allocate a temporary register,
reducing register pressure.
Before:
0x93407f59 sxtw x25, w26
0x93407ebb sxtw x27, w21
0xcb1b033b sub x27, x25, x27
After:
0x93407f5b sxtw x27, w26
0xcb35c37b sub x27, x27, w21, sxtw
2022-11-01 12:21:24 +01:00
Bram Speeckaert
82f22cdfa1
JitArm64: cmp - Optimize a == -1 case
...
By explicitly handling this, we can avoid materializing -1 in a
register and generate more efficient code by taking advantage of -x ==
~x + 1.
Before:
0x12800015 mov w21, #-0x1
0x93407eb9 sxtw x25, w21
0x93407ef8 sxtw x24, w23
0xcb180338 sub x24, x25, x24
After:
0x2a3703f8 mvn w24, w23
0x93407f18 sxtw x24, w24
2022-11-01 12:00:32 +01:00
Bram Speeckaert
592ba31e22
JitArm64: cmp - Optimize a == 0 case
...
By explicitly handling this, we can avoid materializing zero in a
register and generate more efficient code altogether.
Before:
0x52800016 mov w22, #0x0
0xb94093b5 ldr w21, [x29, #0x90]
0x93407ed7 sxtw x23, w22
0x93407eb9 sxtw x25, w21
0xcb1902f9 sub x25, x23, x25
After:
0xb94093b7 ldr w23, [x29, #0x90]
0x4b1703f9 neg w25, w23
0x93407f39 sxtw x25, w25
2022-11-01 11:52:00 +01:00
Bram Speeckaert
f5e7e70cc5
JitArm64: cmp - Refactor
2022-11-01 11:47:17 +01:00
Bram Speeckaert
dbb8f588c7
JitArm64: cmpl - Optimize a == 0 case
...
By explicitly handling this, we can avoid materializing zero in a
register.
Before:
0x52800019 mov w25, #0x0
0xb94087b6 ldr w22, [x29, #0x84]
0xcb16033b sub x27, x25, x22
After:
0xb94087b9 ldr w25, [x29, #0x84]
0xcb1903fb neg x27, x25
2022-11-01 11:27:45 +01:00
JosJuice
431ee1c48a
JitArm64: Improve register handling for MMIO loadstores
...
Because of the previous commit, `regs_in_use` must not include `dest_reg`
when calling MMIOLoadToReg. There are also some other registers we can
skip including in regs_in_use just for efficiency's sake.
The `addr_reg_set = false` statements that I've added in this commit are
technically redundant – if `mmio_address` is non-zero then `addr_reg_set`
is already false – but it's just a coincidence that that's the case.
2022-10-29 14:16:53 +02:00
JosJuice
0660f12da4
JitArm64: Move MMIO handler result before popping stack
...
Otherwise we might throw the result away.
Fixes https://bugs.dolphin-emu.org/issues/13083 .
2022-10-29 14:16:43 +02:00
Pokechu22
2f3805e1b4
GraphicsSettings: Remove unused FreelookControlType enum forward declaration
2022-10-26 16:23:13 -07:00
TellowKrinkle
fa8134deda
VideoBackends:Metal: Default to presentDrawable when vsync is on
2022-10-24 17:55:30 -05:00
JMC47
b66793194e
Merge pull request #11028 from tellowkrinkle/MetalFixes
...
Various Metal renderer improvements
2022-10-24 15:22:37 -04:00
JMC47
4787b25a7f
Merge pull request #10741 from Pokechu22/audio-dma-one-block-at-a-time
...
DSP: Copy audio dma samples one block at a time
2022-10-24 01:43:22 -04:00
JMC47
33733ff81c
Merge pull request #11199 from JosJuice/translation-fixes
...
WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
2022-10-23 16:07:11 -04:00
JosJuice
7437d2d9ad
WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
...
For consistency with GameCube controllers and GBAs. I missed this
when reviewing the PR.
Also adding some i18n comments while I'm at it.
2022-10-23 21:50:54 +02:00
JosJuice
063c2739b3
Merge pull request #11135 from AdmiralCurtiss/ppcanalyst-unused-stats
...
PPCAnalyst: Remove unused variables and methods in BlockStats and BlockRegStats.
2022-10-23 21:22:54 +02:00
TryTwo
e2df81b0c1
Add logging and error reporting to Breakpoint Conditionals.
2022-10-23 08:22:35 -07:00
JMC47
cdcbe51b2a
Merge pull request #10890 from tellowkrinkle/VertexLineExpand
...
VideoCommon: Add vertex shader point/line expansion
2022-10-23 01:49:26 -04:00
TellowKrinkle
0a42c534c3
VideoCommon: Add configuration to prefer VS for line/point expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
68f49df0f8
VideoCommon: Add vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
Pokechu22
bac75de79c
Fifo recorder: Fix incorrect calculation of the size of an array
...
The old calculation was stride * (max_index + 1), which fails if stride is less than the size of a component (for instance, if float XYZ positions are used, and the stride was set to 4 (i.e. sizeof(float)) instead of 12 (i.e. 3 * sizeof(float)), it would be missing the last 8 bytes of the final element in the array. Or, if stride was set to 0, then no bytes would be recorded at all (though that's not a useful configuration so it's unlikely to actually exist).
I'm not aware of any games affected by this issue.
2022-10-22 13:36:16 -07:00
Pokechu22
c9ff2a9b3d
Fifo recorder: Fix NormalIndex3
...
This should fix recording the wall in the staircase leading to the basement in Luigi's Mansion (though I haven't tested it, as I don't own a copy of Luigi's Mansion). This uses NormalIndex3, and the index for the normal vector (generally 0x02XX or 0x01XX) there is always lower than the tangent or binormal (generally 0x07XX). Other games seem to usually have a similar range of indices for the normal, tangent, and binormal, so this issue wouldn't affect them.
2022-10-22 13:36:16 -07:00
Pokechu22
24b761acda
Fifo recorder: Fix position's type being used for normals/colors/texture coords
...
In most cases, games will use the same type for all vertex components (either Index8 or Index16 or Direct). However, RS2's deflection towers use Index16 for the texture coordinate and Index8 for everything else, meaning the texture coordinates were recorded incorrectly (the first byte was used, so only indices 0 and 1 were recorded instead of 0 through 0x0192). Worse still, some background elements in RS2 use direct positions but indexed normals or texture coordinates, and those would not be recorded at all.
This is a regression from b5fd35f951
.
2022-10-22 13:36:16 -07:00
JMC47
804e42150e
Merge pull request #11188 from GaryOderNichts/feature/vwii_ancast
...
Support for loading vWii System Menu
2022-10-22 15:57:55 -04:00
Pokechu22
2a83b17ffb
DSP: Copy audio dma samples one block at a time
...
Reverts 9f8e1e2a0d
, but keeps the changes from e4e44909d5
.
This fixes missing audio in Datel titles; see https://bugs.dolphin-emu.org/issues/12281 .
2022-10-22 11:44:38 -07:00
GaryOderNichts
88c57a00a3
Show vWii System Menu version in Menu Bar
2022-10-22 13:36:55 +02:00
GaryOderNichts
82d20ce352
Support for loading Ancast images
2022-10-22 13:35:49 +02:00
JMC47
5b69c67b3a
Merge pull request #11147 from JosJuice/jitarm64-arith-org
...
JitArm64: Merge ps_mulsX, ps_maddXX, and parts of fp_arith
2022-10-22 06:37:27 -04:00
JMC47
b7310a180f
Merge pull request #11170 from JosJuice/jit64-dispatcher-no-check
...
Jit64: Add dispatcher_no_timing_check jump target
2022-10-22 06:19:00 -04:00
JMC47
55d269c9e0
Merge pull request #11190 from jordan-woyak/shinkansen-ui-button-order
...
WiimoteEmu: Shinkansen Tweaks
2022-10-22 05:21:00 -04:00
JosJuice
812067ab7c
JitArm64: Move ps instructions from fp_arith to ps_arith
...
This lets us simplify fp_arith without making ps_arith much more
complicated.
No behavior change.
2022-10-22 11:15:41 +02:00
JosJuice
554a2fd332
JitArm64: Merge ps_mulsX and ps_maddXX
...
They have a lot of shared code, most notably the code for rounding c.
No behavior change.
2022-10-22 11:12:19 +02:00
JMC47
2153276ab9
Merge pull request #10046 from JosJuice/jitarm64-improve-const-stores
...
JitArm64: FIFO optimization improvements
2022-10-22 05:03:43 -04:00
Markus Wick
7a2256469e
Merge pull request #11127 from JosJuice/aarch64-jitasm-macro-op
...
JitAsm64: Reorder instructions in routines to allow macro-op fusion
2022-10-22 10:31:54 +02:00
Markus Wick
583c2b8a0c
Merge pull request #11181 from JosJuice/jitarm64-25-bit-urshr
...
JitArm64: Reimplement Force25BitPrecision
2022-10-22 10:26:07 +02:00
Markus Wick
5c7b5514ed
Merge pull request #11148 from JosJuice/jitarm64-remove-cdts-inst
...
JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
2022-10-22 10:10:23 +02:00
JosJuice
4dbf0b8e90
JitArm64: Reimplement Force25BitPrecision
...
The previous implementation of Force25BitPrecision was essentially a
translation of the x86-64 implementation. It worked, but we can make a
more efficient implementation by using an AArch64 instruction I don't
believe x86-64 has an equivalent of: URSHR. The latency is the same as
before, but the instruction count and register count are both reduced.
2022-10-22 10:03:52 +02:00
Jordan Woyak
d9d6428189
WiimoteEmu: Replace shinkansen MixedTriggers with Triggers.
2022-10-22 02:42:40 -05:00
Jordan Woyak
d705b8d4b8
WiimoteEmu: Reorder shinkansen buttons in UI.
2022-10-22 02:37:28 -05:00
GaryOderNichts
2fb45660b3
IOS::HLE::Kernel::InitIPC: Replace s_ios check with Core::IsRunning
2022-10-21 20:38:02 +02:00
Lobsterzelda
486a523e0d
IOS: Simplify IOS::HLE::Device savestate method
2022-10-17 23:11:04 -04:00
Admiral H. Curtiss
9992a198f1
IOS/NetKDRequest: Don't abort on first unset bit in subtask mask.
2022-10-16 20:43:59 +02:00
Admiral H. Curtiss
cbc96adfd2
VFFUtil: Invalidate window on mount.
2022-10-16 18:06:51 +02:00
Admiral H. Curtiss
b1725dfb33
Zero-initialize structures passed to FatFs functions.
2022-10-16 17:12:04 +02:00
JosJuice
09f9a58859
Jit64: Add dispatcher_no_timing_check jump target
...
The new `dispatcher_no_timing_check` is the same as `dispatcher_no_check`
except it includes the "stepping check" in debug mode. This lets us avoid
the `m_enable_debugging ? dispatcher : dispatcher_no_check` dance.
2022-10-16 11:22:34 +02:00
Admiral H. Curtiss
c0476fdac3
Merge pull request #11072 from SketchMaster2001/wiiconnect24
...
Add initial WiiConnect24 support
2022-10-16 04:31:28 +02:00