Commit Graph

30575 Commits

Author SHA1 Message Date
sowens99 30dcac15fa RenderBase: Show input count on m_ShowFrameCount
Just to stay consistent, I believe it is best to show total input polls alongside the framecount.
2021-09-29 14:36:09 -04:00
Scott Mansell a47b91e946
Merge pull request #9945 from OatmealDome/intel-broken-discard
DriverDetails: Add broken dual source blending bug to MoltenVK on Intel GPUs
2021-09-30 06:04:06 +13:00
JosJuice c84c1ac69e
Merge pull request #10124 from malleoz/play-recording-hotkey-support
HotkeyScheduler: add PlayRecording hotkey support
2021-09-29 16:26:56 +02:00
Scott Mansell bb367394cf
Merge pull request #10129 from malleoz/recording-save-playback-window
QFileDialog: differentiate between recording open/save
2021-09-29 15:39:25 +13:00
Scott Mansell 34b6a788c2
Merge pull request #10133 from malleoz/play-recording-vi-total-display
Core: UpdateTitle with total framecount on recording playback
2021-09-29 15:33:21 +13:00
sowens99 51cd92a04c QFileDialog: differentiate between recording export/play
Previously, the file dialog window was ambiguous between saving or loading a .dtm. This commit simply gives a bit more context to differentiate the two windows.
2021-09-28 22:30:19 -04:00
sowens99 53ca2ec274 RenderBase: show total framecount on movie playback
Previously, when playing back a movie, you could not see the total frame count of a movie, only the total number of input polls.

This change simply shows the total frame count on movie playback.

Note that this change also results in the framecount and framecount total ALWAYS being displayed if show_movie_window is true, regardless of whether or not m_ShowFrameCount is true. I believe this is fine, as TASers are much more likely to reference the framecount than the input poll count.
2021-09-28 22:15:25 -04:00
sowens99 ffaa149b96 Core: UpdateTitle with total framecount on recording playback
Previously, only the number of total input polls would be shown in the window title when playing back a movie. This simply adds the VI / frame count total as well, which is a much more relevant number to look at while TASing.
2021-09-28 21:51:24 -04:00
sowens99 556323561c Do not update hotkey assignments on window close
If this commit is not applied, then the previous commit will cause hotkeys to be saved if there is a syntax error when hitting "OK" and the user presses the X to close the window.

This commit only applies changes to hotkey config if no syntax error occurs.
2021-09-27 16:21:28 -04:00
sowens99 242bce27a1 Do not accept on hotkey syntax errors
Previously you could type whatever gibberish you wanted into the formula bar, press OK, and receive a modal syntax error window. Closing the syntax error window would cause the hotkey config window to close as well, and your gibberish would be applied to the hotkey assignment.

This commit requires that a syntax error does not occur before accept() is called.
2021-09-27 14:28:08 -04:00
sowens99 6fd54276ea Include digital L and R buttons in Input Display
Previously, using TAS Input to activate the digital L and R buttons would not show these inputs in the Input Display. This commit adds the digital L and R presses to the Input Display, and also displays just "L" or "R" if the analog is set to 255.
2021-09-25 18:07:42 -04:00
sowens99 d5845ff281 HotkeyScheduler: add PlayRecording hotkey support
This hotkey was not previously implemented in the scheduler, even though it's present in the hotkey menu.
2021-09-24 11:58:41 -04:00
sowens99 e5051c516f Check for certain hotkeys in game list
There are certain hotkeys that we absolutely want to be able to use
without being in-game. Presently, no hotkeys are recognized unless we
are in-game.

I've identified and moved the following hotkeys to be checked before the
HotkeyScheduler checks to see if the Core is running:

- Open
- Exit
- Start Recording
- Refresh Game List

Note that Play Recording should also be implemented here, however it
looks like there is no signal for a PlayRecording() function, so this
will have to be handled in a later PR once that signal is created and
implemented.
2021-09-23 10:46:04 -04:00
Lioncash 3840b55292 NetPlayClient/NetPlayServer: Remove now-unnecessary static_casts
Now that we have the enum helpers in place, quite a few casts on their
own can be removed.
2021-09-22 15:59:43 -04:00
Lioncash 80b4a4d7fd NetPlayProto: Remove now-unused MessageId type alias
Now that we have enum helpers for inserting values into packets and have
migrated all other enumerations over, there's no need to keep this alias
around any longer.
2021-09-22 15:42:04 -04:00
Lioncash a034f378a0 NetPlayProto: Turn connection error enum into an enum class
Continues the migration off the MessageId type alias
2021-09-22 15:42:04 -04:00
Lioncash dedd0b7ba1 NetPlayProto: Turn Sync-related enums into enum classes 2021-09-22 15:42:04 -04:00
Lioncash af4aaf4609 NetPlayProto: Turn MessageID enum into an enum class
Now we can leverage our helper to insert enum values without the need to
cast.
2021-09-22 15:42:04 -04:00
Lioncash 07af775afa SFMLHelper: Add stream insertion overload helpers for enum types
Will be used in future changes to eliminate the need to cast when
inserting various message IDs
2021-09-22 15:42:01 -04:00
Léo Lam 0d8ad5f53a
Merge pull request #10008 from JosJuice/android-remove-emulationstate
Android: Remove the EmulationState class
2021-09-22 11:07:19 +02:00
JosJuice 53d7d595e6 Android: Remove the EmulationState class
The purpose of this class was to keep track of state which the
emulation core was already keeping track of. This is rather risky -
if we update the state of one of the two without updating the other,
the two become out of sync, leading to some rather confusing problems.

This duplicated state was removed from EmulationState in the
previous commits, so now there isn't much left in the class.
Might as well move its members directly into EmulationFragment.
2021-09-21 16:34:00 +02:00
JosJuice 2cd09b8eb3 Android: Remove synchronized keywords from EmulationState
These methods are only being called from the GUI thread anyway...
2021-09-21 16:33:59 +02:00
JosJuice 3eb07e9772 Android: Don't rely on onPause for pausing before destroying surface
Fixes a crash which was uncovered (or just made more likely?)
by the previous commit.
2021-09-21 16:33:57 +02:00
JosJuice 446e2d9119 Android: Remove state from EmulationState 2021-09-21 16:32:47 +02:00
JosJuice 2c564a0b9d Android: Remove mSurface from EmulationState 2021-09-21 16:31:55 +02:00
Admiral H. Curtiss 6684e26ae2
DiscIO/DirectoryBlob: Fix swapped DiscContent comparison operators. 2021-09-21 08:01:21 +02:00
OatmealDome a256c11d2f DriverDetails: Add broken dual source blending bug to MoltenVK on Intel GPUs 2021-09-20 19:14:41 -04:00
OatmealDome aa64f7f14f VulkanContext: Don't assume anv for Intel GPUs on macOS 2021-09-20 18:57:19 -04:00
Léo Lam 22f7c07caf
Merge pull request #10081 from sepalani/mem-hex0
MemoryWidget: Simplify the search logic
2021-09-20 22:17:20 +02:00
sowens99 3bc9f66336 Inscribe StickWidget ellipse in square
Previously, it was not clear where the boundary of the StickWidget was when interacting outside of the circle. This aims to restore the gray square present in the Wx-era.
2021-09-20 13:18:13 -04:00
Sepalani 94cba46467 MemoryWidget: Simplify the search logic
Fix leading nul bytes being ignored in hex search
2021-09-20 20:46:26 +04:00
Léo Lam 6129290d31
Merge pull request #10057 from JosJuice/jitarm64-divwx
JitArm64: Optimize divwx
2021-09-20 15:37:57 +02:00
Léo Lam a25f4fab20
Merge pull request #10080 from lioncash/membf
MemoryInterface: Migrate bitfields over to Common::BitField
2021-09-20 14:54:27 +02:00
Léo Lam b43cee8fe4
Merge pull request #10098 from AdmiralCurtiss/scan-dir-tree-trailing-slash
Common/FileUtil: Strip trailing path separator in ScanDirectoryTree().
2021-09-20 14:50:11 +02:00
Léo Lam 276ea43237
Merge pull request #10102 from lioncash/netplay
NetPlayClient: Split out OnData() into smaller functions
2021-09-20 14:41:47 +02:00
Léo Lam 29d236068c
Merge pull request #10104 from AdmiralCurtiss/cheats-manager-ux
Cheats Manager UX improvements.
2021-09-20 14:30:04 +02:00
Léo Lam 28e6e8752c
Merge pull request #10113 from JosJuice/tas-input-latency
DolphinQt: Reduce latency of TAS input's controller input passthrough
2021-09-20 14:26:13 +02:00
Léo Lam e7c0b8ecbd
Merge pull request #10114 from AdmiralCurtiss/disc-addresses
Core/DiscIO: Extract disc and partition constants to DiscUtils.h.
2021-09-20 14:25:59 +02:00
Admiral H. Curtiss ad410009bb
Core/DiscIO: Extract disc and partition constants to DiscUtils.h. 2021-09-19 22:43:52 +02:00
Mai M 70a9003947
Merge pull request #10109 from JosJuice/android-clear-confirmation
Android: Show confirmation dialog for clearing game settings
2021-09-19 16:10:22 -04:00
Mai M 57f71a55f8
Merge pull request #10110 from JosJuice/remove-request-refresh-info
Core: Remove s_request_refresh_info
2021-09-19 16:09:58 -04:00
Mai M ca2589f7df
Merge pull request #10103 from AdmiralCurtiss/cheat-search-length-underflow
Core/CheatSearch: Avoid length underflow on new search.
2021-09-19 16:09:43 -04:00
JosJuice 1a5e0c2084 DolphinQt: Reduce latency of TAS input's controller input passthrough
Fixes https://bugs.dolphin-emu.org/issues/12676.

Needs testing to see if this impacts performance when controller
inputs are changing.
2021-09-19 17:08:10 +02:00
JMC47 31ca114721
Merge pull request #10068 from leoetlino/more-low-mem1-constants
IOS: Add missing writes of low MEM1 constants
2021-09-19 09:45:01 -04:00
JMC47 ca064b55fe
Merge pull request #10111 from JosJuice/networkwidget-hidden
DolphinQt: Don't update NetworkWidget when hidden
2021-09-18 09:33:45 -04:00
JosJuice 0a973ddcbb DolphinQt: Don't update NetworkWidget when hidden
Like 92a655c but for NetworkWidget (which was added later).
2021-09-18 14:41:11 +02:00
Scott Mansell ce80a96aee BPStructs: ensure side effects are same
Missed this side effect when fixing crash in Mario Kart Wii wifi
2021-09-18 23:58:24 +12:00
JosJuice e5ed9ee920 Core: Remove s_request_refresh_info
It's only used for frame stepping. We can use s_frame_step instead.
2021-09-18 13:39:38 +02:00
JosJuice a3ce8d61fd Android: Show confirmation dialog for clearing game settings 2021-09-18 12:35:46 +02:00
OatmealDome 7e8f5208fe VulkanContext: Disable subgroup reduction on macOS with AMD GPUs 2021-09-16 23:32:10 -04:00
Scott Mansell 7c7609f5b9 BPStructs: Ignore malformed efb copies 2021-09-17 12:42:23 +12:00
Léo Lam 7379450633
Merge pull request #10092 from JosJuice/android-cheats
Android: Add cheat GUI
2021-09-16 19:21:33 +02:00
JosJuice 0ca4c6dbd4 Android: Add save button to cheats activity
By request. Matches the settings activity.
2021-09-16 18:48:40 +02:00
JosJuice ffa25c4cf5 Android: Allow $ line when entering cheat code
Port of cda442d.
2021-09-16 18:48:40 +02:00
JosJuice 53ae1a0725 Android: Add Gecko code downloading 2021-09-16 18:48:39 +02:00
JosJuice 47efd3317d Android: Fix CheatsActivity d-pad navigation
Special shoutout to Android for not having RTL compatible
variants of nextFocusRight and nextFocusLeft.

Ideally we would have some way to block the user from using
the d-pad to switch between the two panes when in portrait mode,
or make the list pane act as if it's to the left of the details
pane rather than the right when the details pane is open, but I
don't know of a good way to do this. SlidingPaneLayout doesn't
really seem to have been implemented with d-pad navigation in mind.
Thankfully, landscape is the most important use case for gamepads.
2021-09-16 18:48:39 +02:00
JosJuice 215492152c Android: Show warning when Enable Cheats is off 2021-09-16 18:48:39 +02:00
JosJuice 1470dfcf81 Android: Add the ability to delete cheats 2021-09-16 18:48:39 +02:00
JosJuice 404eb13e2f Android: Add the ability to add cheats 2021-09-16 18:48:39 +02:00
JosJuice 6934b9a21d Android: Add headers to cheat list 2021-09-16 18:48:38 +02:00
JosJuice 109aef4b81 Android: Scroll to field with error when error occurs 2021-09-16 18:48:38 +02:00
JosJuice e299be1d85 Android: Add creator and notes fields for Gecko codes 2021-09-16 18:48:38 +02:00
JosJuice 883a9f8a99 Android: Allow viewing/editing the actual codes 2021-09-16 18:48:38 +02:00
JosJuice fc6c31c3db Android: Update cheat list when a cheat is edited
The way I'm implementing events using LiveData feels rather
unorthodox, but I'm not aware of anything in the Android framework
that would let me do it in a better way... One option I did
consider was wrapping the cheat lists in LiveData and observing
those, but then CheatsAdapter wouldn't know which cheat had
changed, only that there was some kind of change to the list,
necessitating the use of the not recommended notifyDataSetChanged.
2021-09-16 16:46:50 +02:00
JosJuice 43dcbf33ad Android: Add edit button for cheats 2021-09-16 16:46:49 +02:00
JosJuice a303b4bc98 Android: Programmatically open/close cheat details
Only has an effect when using a narrow screen.
2021-09-16 16:46:49 +02:00
JosJuice 95879c2e76 Android: Add details view for cheats
The details view only contains the name of the cheat for now.
2021-09-16 16:46:49 +02:00
JosJuice 93a1271386 Android: Add checkboxes for toggling cheats enabled 2021-09-16 16:46:49 +02:00
JosJuice 67a8855d9a Android: Add "Enable Cheats" setting to GUI 2021-09-16 16:46:49 +02:00
JosJuice 4d609c769f Android: Implement basic read-only cheats list 2021-09-16 16:46:48 +02:00
JosJuice ee3a5a4a81 Android: Create CheatsActivity 2021-09-16 16:46:48 +02:00
Admiral H. Curtiss bd92c29ef5
Core/CheatSearch: Avoid length underflow on new search. 2021-09-16 08:13:02 +02:00
Admiral H. Curtiss c40e8ee3a8
Qt/CheatsManager: Show disabled AR and Gecko tabs when no game is running. 2021-09-16 08:01:40 +02:00
Admiral H. Curtiss dd9047f7c5
Qt/GeckoCodeWidget: Disable functionality if no game id is given. 2021-09-16 08:01:40 +02:00
Admiral H. Curtiss a4b1ea3d70
Qt/ARCodeWidget: Disable functionality if no game id is given. 2021-09-16 08:01:40 +02:00
Admiral H. Curtiss aa2d089d1b
Qt/MenuBar: Allow opening Cheats Manager regardless of emulation state and configuration. 2021-09-16 08:01:26 +02:00
Admiral H. Curtiss aee6e45386
Qt/CheatsManager: Let the 'Configure Dolphin' button shown in the Cheats Manager when Cheats are disabled actually open the settings. 2021-09-16 08:01:12 +02:00
JMC47 4d1bd54917
Merge pull request #10095 from phire/fix-out-of-range-efb
BPStructs: fix out-of-range EFB copy clamping
2021-09-15 13:26:23 -04:00
Admiral H. Curtiss 55397b6d52 DolphinQt: Rewrite cheat search GUI. 2021-09-15 19:05:49 +02:00
Admiral H. Curtiss f3346262d2 Core/CheatSearch: Implement cheat searching functionality. 2021-09-15 19:05:48 +02:00
Lioncash 2b9c65967e NetPlayClient: Change return value of OnData() to void
In all usage cases, the return value isn't utilized.
2021-09-15 11:31:32 -04:00
Lioncash ae714b25ba NetPlayClient: Split out OnData()
Over time OnData() has become a huge function-long case statement that
attempts to manage numerous packet-related behaviors, which makes it a
little difficult to reliably ensure certain handling doesn't interfere
with another case's. It's also mildly annoying to navigate due to its
size.

To make it a little easier to read and find the specific behavior, we
can break the relevant pieces of code out into their own functions.
2021-09-15 11:31:28 -04:00
Léo Lam 94cfbfc49d
Merge pull request #10099 from AdmiralCurtiss/directoryblob-read-between-files
DiscIO/DirectoryBlob: Handle reads between files.
2021-09-15 14:38:37 +02:00
Léo Lam 94e9751dfe
Merge pull request #10100 from Pokechu22/no-wglShareLists
GLInterface: Remove unneeded wglShareLists call
2021-09-15 14:37:19 +02:00
Léo Lam 111c36e6cd
Merge pull request #10101 from lioncash/kb
SI_DeviceKeyboard: Shorten MapKeys()
2021-09-15 13:24:05 +02:00
Lioncash 7c909a73de SI_DeviceKeyboard: Shorten MapKeys()
We can wrap this logic into a lambda to avoid copy-pasted checking of
the over 400+ lines of code.
2021-09-15 01:58:02 -04:00
Scott Mansell eb8bfabdfd BPStructs: make copy width/height const 2021-09-15 11:54:40 +12:00
Léo Lam 15ec7bd546
Merge pull request #10097 from JosJuice/jitarm64-w0-clobber
JitArm64: Fix fresx/frsqrtex unlocking W0 too early
2021-09-14 23:51:24 +02:00
Pokechu22 b8f4a4ae44 GLInterface: Remove unneeded wglShareLists call
When RenderDoc is attached, wglShareLists fails for some reason (see baldurk/renderdoc#2361).  wglCreateContextAttribsARB has a parameter for the share context, so there's no reason to use a separate wglShareLists call.

Co-authored-by: baldurk <baldurk@baldurk.org>
2021-09-14 10:55:33 -07:00
Léo Lam 819a0a69ff
Merge pull request #10076 from lioncash/sibf
SI: Migrate bitfields to Common::BitField
2021-09-14 19:10:39 +02:00
Admiral H. Curtiss f76aaf65f6 Common/FileUtil: Strip trailing path separator in ScanDirectoryTree(). 2021-09-14 17:39:38 +02:00
Scott Mansell 37b80e2170 BPStructs: fix out-of-range EFB copy clamping
Previous code from #7950 only clamps correctly when the efb copies
left and top coordinates are (0, 0)

Now we should handle all situations.

Spyro: A hero's tail is an example of a game that does an oversized
EFB copy with a non-zero origin.
2021-09-15 02:31:38 +12:00
Admiral H. Curtiss 06d41c53ce DiscIO/DirectoryBlob: Handle reads between files. 2021-09-14 07:09:55 +02:00
JosJuice 74f2acd83b JitArm64: Move fresx/frsqrtex RW calls earlier
If W0 is locked when fpr.RW is called, the indirectly called
ConvertSingleToDoubleLower may need to emit a push+pop, so it's
better for fresx/frsqrtex to call RW before locking W0 than after.
2021-09-13 19:27:16 +02:00
JosJuice 1c4155f800 JitArm64: Fix fresx/frsqrtex unlocking W0 too early
fpr.RW may clobber GPRs that are not locked.
Fixes https://bugs.dolphin-emu.org/issues/12656.
2021-09-13 19:03:43 +02:00
Lioncash d00e7d5a75 SI: Collapse interrupt generation check in UpdateInterrupts()
We can simplify this by storing the result of the test into a variable
instead.
2021-09-13 11:25:03 -04:00
Lioncash ca24c32cbf SI: Eliminate trivial sign conversion cases in RegisterMMIO()
Previously differently signed types were being used to create addresses
and bit offsets.
2021-09-13 11:24:59 -04:00
Léo Lam ee863e6722
Merge pull request #10014 from OatmealDome/wiimote-disconnect-crash
WiimoteReal: Fix Wiimote disconnection causing Dolphin to crash on macOS
2021-09-13 15:26:02 +02:00
Léo Lam 5f2a8d98fb
Merge pull request #10093 from JosJuice/revert-revert-10025
Revert "Revert "DolphinQt: Minor consistency fixes for the Settings window""
2021-09-13 14:54:01 +02:00
JMC47 05f86b9f5b
Merge pull request #10012 from Pokechu22/thps4-green-sky
UberShaderVertex: Fix Tony Hawk Pro Skater 4
2021-09-09 17:58:35 -04:00