Commit Graph

24601 Commits

Author SHA1 Message Date
Lioncash
19115c84dd DolphinQt: Use qOverload where applicable
Provides the same behvaior, but in a much more concise manner.
2020-04-28 16:54:19 +02:00
3t13nn3
8288bdce03 Fix Hotkey Controller Profile display with boxes for each Wiimote 2020-04-28 15:55:53 +02:00
Léo Lam
93abbc66aa
Merge pull request #8688 from howard0su/cleanup_strncpy
Remove warning of -Wstringop-truncation
2020-04-28 14:28:30 +02:00
Léo Lam
7390767008
Merge pull request #8668 from sepalani/rso-autodetect
RSO: Auto-detect RSO location in RAM
2020-04-28 14:27:13 +02:00
Léo Lam
0fe4985f8d
Merge pull request #8689 from howard0su/cleanup_sign
Remove warnings of -Wsign-compare
2020-04-28 13:36:21 +02:00
Jun Su
f3d7b82f83 Cleanup warnings of -Wswitch
Add default branch to the switch-case.
2020-04-28 13:16:30 +02:00
Léo Lam
586af0a55e
Merge pull request #8695 from howard0su/warning_hw
HW: cleanup warnings of -Wtype-limits
2020-04-28 13:13:22 +02:00
Léo Lam
8f578fd2b9
Merge pull request #8704 from JosJuice/setting-txt-output-null
SettingsHandler: Don't output null bytes
2020-04-28 12:02:39 +02:00
Sepalani
5e33cd48da Debugger: Add a Network widget
Display socket table, SSL context and options
2020-04-27 21:47:00 +04:00
Léo Lam
88ae4c7914
Merge pull request #8729 from JosJuice/android-touch-ir-default
Android: Use touch emulation of IR by default
2020-04-27 17:56:01 +02:00
Léo Lam
5909d13236
Merge pull request #8710 from Ebola16/QTDP
Qt: Display default Paths
2020-04-27 17:49:31 +02:00
Léo Lam
e6351e1d4b
Merge pull request #8719 from CookiePLMonster/dolby-pro-logic-quality-fixup-ii
AudioPane: Do not enable DPL II quality slider with HLE audio on init
2020-04-27 17:11:56 +02:00
JosJuice
18a4afb053 Android: Use touch emulation of IR by default
While having motion control emulation of IR enabled by default
makes sense in situations like using a DualShock 4 on a PC,
Android has the additional option of touch emulation of IR
which seems to be better liked, and the default value which
was chosen with PC in mind was carried over to Android
without any particular consideration. This change disables
motion control emulation of IR by default on Android only.
2020-04-27 17:02:53 +02:00
Léo Lam
1ca682e6a1
Merge pull request #8723 from seanyeh/fix-confirm-dialog-enter
Qt/GameList: Use KeyPress instead of KeyRelease
2020-04-27 17:00:58 +02:00
Léo Lam
71f409dac4
Merge pull request #8726 from xperia64/dns_improvements
Respect Core::WantsDeterminism for DNS servers on Linux
2020-04-27 16:43:24 +02:00
Léo Lam
9d44af4c31
Merge pull request #8696 from howard0su/cleanup_shadow
Cleanup warnings of -Wmissing-declarations
2020-04-27 15:33:01 +02:00
Léo Lam
bab04155b6
Merge pull request #8745 from AdmiralCurtiss/savestate-load-callback-qt
Qt/Debugger: Refresh on savestate load.
2020-04-27 15:29:55 +02:00
Léo Lam
75e79ece73
Merge pull request #8751 from jordan-woyak/point-fix
WiimoteEmu: Apply "Tilt" and "Point" rotations separately for proper tilted pointing.
2020-04-27 14:55:19 +02:00
JosJuice
bacf0d629d VolumeVerifier: Show desync warning for dual layer discs too 2020-04-25 19:47:08 +02:00
JosJuice
99c8ce9d8d DolphinQt: Add info about formats in convert dialog 2020-04-24 15:11:20 +02:00
JosJuice
466b2d7202 DolphinQt: Make block size configurable in convert dialog 2020-04-24 15:11:20 +02:00
JosJuice
acd00723ad DolphinQt: Make scrubbing configurable in convert dialog 2020-04-24 15:11:20 +02:00
JosJuice
6ffcbcee70 DiscIO: Move scrubbing code out of ConvertToGCZ
This way, scrubbing can also be performed when converting
to other formats.
2020-04-24 15:11:20 +02:00
JosJuice
04c7892b93 DiscIO: Add GameCube disc scrubbing support
The code was actually already rather well adapted for this.
We more or less just have to skip ParseDisc and run
ParsePartitionData directly. This required the PartitionHeader
struct to be removed (which wasn't that useful anyway).
2020-04-24 15:10:36 +02:00
JosJuice
cefc2a7baa DiscIO: Fix edge case where blocks could get scrubbed accidentally
If we start 31 KiB into a 32 KiB block and want to mark 2 KiB
of data as used, we need to mark 2 blocks as used, not just 1.

This problem is avoided when calling MarkAsUsed from
MarkAsUsedE, since MarkAsUsedE aligns to 32 KiB on its own.
Most calls to MarkAsUsed are from MarkAsUsedE, which is why
this hasn't been a noticeable problem in the past.
2020-04-24 15:10:36 +02:00
JosJuice
dae2c14f7f DolphinQt: Turn the compress/decompress action into a dialog 2020-04-24 15:10:35 +02:00
JosJuice
42f6913bcc Move DiscIO::ConvertToPlain to FileBlob.cpp
There is no longer anything GCZ specific about it.
2020-04-24 15:10:35 +02:00
JosJuice
8a9597e32e DiscIO: Allow converting from formats other than ISO and GCZ
The constant DESIRED_BUFFER_SIZE was determined by multiplying the
old hardcoded value 32 with the default GCZ block size 16 KiB.
Not sure if it actually is the best value, but it seems fine.
2020-04-24 15:10:35 +02:00
JosJuice
432f342bc8 DiscIO: Use a struct for Wii hashes 2020-04-24 14:44:29 +02:00
JosJuice
da9e0fb598 DiscIO: Parallelize the re-encryption code 2020-04-24 14:44:26 +02:00
JosJuice
319c508978 DiscIO: Implement re-encryption of Wii partition data 2020-04-24 14:24:12 +02:00
JosJuice
a4c7100bcc DiscIO: Use partition data offset for ReadWiiDecrypted parameter
Instead of the partition offset (which is usually 0x20000 less).
2020-04-24 14:16:55 +02:00
Markus Wick
7e94d6ed37
Merge pull request #8740 from JosJuice/fix-decompress
DiscIO: Fix decompressing writing the wrong number of bytes sometimes
2020-04-24 10:42:46 +02:00
Markus Wick
703f7d4fc0
Merge pull request #8755 from Sintendo/jit64intopts
Jit64: More addx and subfx optimizations
2020-04-24 07:40:07 +02:00
Sintendo
523954e03a Analytics: Report correct quirk for mismatched xf/bp colors
Looks like a copy-paste error. The quirk for mismatched xf/bp texgens
was used twice.
2020-04-24 02:22:51 +02:00
Léo Lam
2673280614
Merge pull request #8389 from sepalani/fix-so
Socket: Abort pending ops on close
2020-04-22 07:19:25 +02:00
Sepalani
5ec80a554c Socket: Abort pending operations on close 2020-04-22 08:48:37 +04:00
JMC47
a5bd263dfb
Merge pull request #8714 from JosJuice/progress-dialog-thread
DolphinQt: Run tasks that use progress dialogs on separate threads
2020-04-21 23:59:37 -04:00
Sintendo
19dda51a0d Jit64: subfx - Use LEA when possible
Similar to what we do for addx. Since we're calculating b - a and
because subtraction is not communitative, we can only apply this when
source register a holds the constant.

Before:
45 8B EE             mov         r13d,r14d
41 83 ED 08          sub         r13d,8

After:
45 8D 6E F8          lea         r13d,[r14-8]
2020-04-21 22:45:47 +02:00
Sintendo
89646c898f Jit64: addx - Skip ADD after MOV when possible
We can get away with skipping the addition when we know we're dealing
with a constant zero. Just a MOV will suffice in this case.

Once again, we don't bother to add separate handling for when overflow
is needed, because no titles would ever hit that path during my testing.

Before:
8B 7D F8             mov         edi,dword ptr [rbp-8]
83 C7 00             add         edi,0

After:
8B 7D F8             mov         edi,dword ptr [rbp-8]
2020-04-21 22:45:47 +02:00
Sintendo
50f7a7d248 Jit64: addx - Prefer smaller MOV+ADD sequence
ADD has a smaller encoding for immediates that can be expressed as an
8-bit signed integer (in other words, between -128 and 127). MOV lacks
this compact representation.

Since addition allows us to swap the source registers, we can always get
the shortest sequence here by carefully checking if we're dealing with a
small immediate first. If we are, move the other source into the
destination and add the small immediate onto that. For large immediates
the reverse is preferrable.

Before:
41 BE 40 00 00 00    mov         r14d,40h
44 03 75 A8          add         r14d,dword ptr [rbp-58h]

After:
44 8B 75 A8          mov         r14d,dword ptr [rbp-58h]
41 83 C6 40          add         r14d,40h

Before:
44 8B 7D F8          mov         r15d,dword ptr [rbp-8]
41 81 C7 00 68 00 CC add         r15d,0CC006800h

After:
41 BF 00 68 00 CC    mov         r15d,0CC006800h
44 03 7D F8          add         r15d,dword ptr [rbp-8]
2020-04-21 22:42:02 +02:00
Sintendo
2481660519 Jit64: addx - Emit MOV when possible
When the source registers are a simple register and a constant zero and
overflow isn't needed, emitting LEA is kinda silly.

This will occasionally save a single byte for certain registers due to
how x86 encoding works. More importantly, LEA takes up execution
resources while MOV does not.

Before:
41 8D 7D 00          lea         edi,[r13]

After:
41 8B FD             mov         edi,r13d
2020-04-21 22:36:20 +02:00
Sintendo
1c25e6352a Jit64: addx - Emit nothing when possible
When the destination register matches a source register, the other
source register contains zero, and overflow isn't needed, the
instruction becomes a nop and we don't need to emit anything.

We could add specialized handling for the case where overflow is needed,
but none of the titles I tried would hit this path.

Before:
83 C7 00             add         edi,0

After:
2020-04-21 22:35:17 +02:00
Sintendo
f1c3ab359d Jit64: addx - Deduplicate branches part 2
No functional change, just simplify some repeated logic in the case
where we're dealing with exactly one immediate and one simple register
when overflow isn't needed.
2020-04-21 22:06:46 +02:00
Sintendo
72fbdf1a6b Jit64: addx - Deduplicate branches part 1
No functional change, just simplify some repeated logic for the cases
where the destination register matches one of the sources.
2020-04-21 22:06:39 +02:00
Mat M
c33565295d
Merge pull request #8713 from sepalani/dbg-printf
HLE: Add more debug functions
2020-04-21 12:58:34 -04:00
JMC47
d845b31579
Merge pull request #8717 from stenzek/mismatched-xf-bp
VertexManagerBase: Skip drawing objects with mismatched xf/bp stages
2020-04-21 10:07:36 -04:00
Jordan Woyak
d6dfb3a553 WiimoteEmu: Rename some variables from "cursor" to "point". 2020-04-18 13:20:50 -05:00
Jordan Woyak
bd067875e7 WiimoteEmu: Apply "Tilt" rotations separately and before those of "Point" and "Swing" for proper tilted pointing. 2020-04-18 13:15:52 -05:00
Léo Lam
b2cf106ae9 IOS/FS: Fix FST write failure on some platforms
On some platforms (like Windows), the temporary file must be closed
before it can be renamed.

I guess nobody noticed this for so long because (1) the FS code has a
failsafe for missing FST entries (because existing users do not have
a FST), and most games do not care about file metadata;
(2) the write failures can only be seen in the logs.

Because we don't want this to break, I have turned the ERROR_LOGs into
PanicAlerts.
2020-04-18 12:42:12 +02:00
JMC47
9de3717c50
Merge pull request #8340 from stenzek/max-res
DolphinQt: Don't overwrite >8x IR scale in ini, add maximum internal res option
2020-04-16 21:01:14 -04:00
JMC47
935b12d785
Merge pull request #8730 from JosJuice/frame-advance-duplicate-frame
Core: Skip duplicate frames when using frame advance
2020-04-16 18:29:16 -04:00
JMC47
85a8325701
Merge pull request #8733 from JosJuice/di-baten-kaitos
Adjust s_DIMAR/s_DILENGTH behavior (fixes Baten Kaitos music)
2020-04-16 18:28:09 -04:00
JMC47
19fc43f190
Merge pull request #8708 from Ebola16/Wii
Android: Add Insert SD Card and update the description
2020-04-16 18:27:51 -04:00
JMC47
55ed980620
Merge pull request #8711 from Ebola16/SDDE
Set Insert SD Card default value to true
2020-04-16 18:25:47 -04:00
JosJuice
3629e75dd2
Merge pull request #8716 from Pokechu22/properties-leak
Delete properties dialog on close
2020-04-16 13:53:37 +02:00
JosJuice
19e9a9c945 DiscIO: Clean up decompression size calculation
We can use subtraction and std::min instead of
modulo and explicit if statements.

This commit does not change the behavior.
2020-04-15 22:15:40 +02:00
Admiral H. Curtiss
330c80055d Qt/Debugger: Refresh windows on savestate load. 2020-04-15 00:12:35 +02:00
JMC47
744abab478
Merge pull request #8741 from cristian64/add_checkbox_to_filter_ingame_netplay_sessions
DolphinQt: Added checkbox to filter out NetPlay sessions that are already in-game.
2020-04-13 08:52:23 -04:00
JMC47
c0ae9cbc45
Merge pull request #8584 from jordan-woyak/widescreen-heuristic-fix
VideoCommon: Tweak widescreen heuristic.
2020-04-13 05:57:19 -04:00
Techjar
bb99062f18 IOS/USBHost: Skip starting threads when determinism is enabled
The threads can't actually be started when determinism is enabled, as
the behavior would not be deterministic, but Open() still tries to
start the threads and wait, resulting in a deadlock when booting
certain games and homebrew in NetPlay.
2020-04-12 23:44:53 -04:00
Christian Aguilera
dab4f8b36e DolphinQt: Added checkbox to filter out NetPlay sessions that are already in-game. 2020-04-13 00:42:03 +02:00
JosJuice
3aa463cdae DiscIO: Fix decompressing writing too much sometimes
This issue cannot happen with good dumps due to their size,
but it can happen with trimmed dumps.
2020-04-12 21:47:10 +02:00
JosJuice
26b21e3186 DiscIO: Fix decompressing writing too little sometimes
This issue cannot happen with good dumps due to their size,
but it can happen with trimmed dumps.
2020-04-12 21:45:55 +02:00
Pokechu22
d3dc81ba74 Fix bug 11920
DSP LLE Interpreter does not have a DSP thread, so trying to wait would hang. (DSP LLE recompiler also has no thread when in determinism mode).
2020-04-10 12:15:06 -07:00
JosJuice
b2c9149cf8 Remove outdated comment from Movie::FrameUpdate
9c5c3c0 made this function be called on the CPU thread.
2020-04-10 00:18:53 +02:00
JosJuice
94f83db2b5 Adjust s_DIMAR/s_DILENGTH behavior (fixes Baten Kaitos music)
https://bugs.dolphin-emu.org/issues/11997

The problem seemed to be that s_DILENGTH would get set to 0
at times when it shouldn't. Simply not changing it in case
of NoReply or DTK seems to fix the problem. However, we can
actually go one step further in accuracy and use data.size()
to change s_DIMAR and s_DILENGTH as partial reads (NoReply
commands) complete, instead of jumping directly to 0 when
the whole read completes.
2020-04-09 22:13:45 +02:00
JosJuice
812ad4257c Core: Skip duplicate frames when using frame advance
It used to be the case that frame advance skipped duplicate frames
(i.e. it would take 30 frame advances to get through one second
of emulated time in a 30 fps game), but this broke in 9c5c3c0.
Skipping duplicate frames making TASing less annoying.
2020-04-09 11:39:29 +02:00
JosJuice
1a42355f96 Core: Clarify Callback_VideoCopiedToXFB and FrameUpdate 2020-04-09 00:21:04 +02:00
Mat M
9a2d8a9623
Merge pull request #8715 from JosJuice/panic-alert-deadlock
DolphinQt: Fix the panic alert deadlock (a.k.a. "Question" issue)
2020-04-08 17:20:32 -04:00
Stenzek
a2f4fafe86 Vulkan: Switch from vkCreateMacOSSurfaceMVK() to vkCreateMetalSurfaceEXT()
Since we are calling this off the UI thread, we can't use anything which
accesses the underlying NSView object. We create and set the Metal layer
on the UI thread before the video backend is initialized. This extension
is both compatible with MoltenVK and gfx-portability for accepting a
layer at surface creation.
2020-04-07 18:56:55 +10:00
xperia64
b4e49dc656
Respect Core::WantsDeterminism for DNS on Linux
Previously Core::WantsDeterminism was only checked for setting the DNS on WIN32.
Same check should apply to Linux too.
2020-04-06 15:45:43 -04:00
Sean Yeh
74d8697ea3 Qt/GameList: Use KeyPress instead of KeyRelease
This fixes a bug where pressing Enter in the "Do you want to stop the
current emulation?" confirmation popup also triggers a KeyRelease in
GameList, which starts a new game.
2020-04-03 23:01:21 -05:00
JosJuice
55f787b898 Remove unused function Host_UpdateProgressDialog 2020-04-03 12:53:38 +02:00
JosJuice
c6ee767851 DolphinQt: Run tasks that use progress dialogs on separate threads 2020-04-03 12:53:38 +02:00
Pokechu22
e11a2bda56 Delete properties dialog on close
Fixes the game file being locked until Dolphin closes.
2020-04-02 16:14:37 -07:00
Stenzek
ff7180cac4 Analytics: Add quirk for mismatched xf/bp texgens/colors 2020-04-02 12:52:16 +10:00
Stenzek
a9c1dcf656 VertexManagerBase: Skip drawing objects with mismatched xf/bp stages
Hardware tests have shown that if the number of texgens/channels do not
match, you get garbage rendering. Presumably because the output
registers from the XF stage are fed into the incorrect input registers
for TEV/BP.

Currently, this causes Dolphin to crash/generate invalid shaders with an
assertion failure in the hardware backends. Instead, we log an error.

Perhaps in the future we should just spit out all texgens/colors anyway
from both stages, and let cross-stage optimization take care of DCE'ing
it away. But doing so would require changing the UIDs and invalidating
everyone's shader caches.
2020-04-02 12:51:41 +10:00
Silent
bb27da06ae
AudioPane: Do not enable DPL II quality slider with HLE audio on init 2020-04-01 22:40:45 +02:00
JosJuice
ef778723a2 DolphinQt: Fix the panic alert deadlock (a.k.a. "Question" issue) 2020-03-31 21:00:32 +02:00
Ryan Meredith
a3ff20a5f9 Android: Add Insert SD Card and update description 2020-03-31 14:58:00 -04:00
Sepalani
85cd59c585 HLE: Add more debug functions 2020-03-30 17:46:50 +04:00
Ryan Meredith
fdc9ea6ca0 Set Insert SD Card default value to true 2020-03-30 06:15:17 -04:00
Ryan Meredith
999e651ed5 Qt: Display default Paths 2020-03-30 06:06:38 -04:00
JosJuice
5988d20917
Merge pull request #8698 from howard0su/warning_capture
Cleanup warnings of -Wunused-lambda-capture
2020-03-26 10:37:33 +01:00
Jun Su
81f8099cc6 Remove warnings of -Wsign-compare
Cast the variable to the coresponding type.
2020-03-25 07:57:14 +08:00
JosJuice
5d6f23e424 SettingsHandler: Don't output null bytes
https://bugs.dolphin-emu.org/issues/12019, take two.
2020-03-24 17:01:15 +01:00
Connor McLaughlin
651595c521
Merge pull request #8701 from howard0su/static_wiimote
Wiimote: Cleanup warnings of -Wmissing-variable-declarations
2020-03-24 23:14:46 +10:00
Jun Su
7885fdb1ae Remove warning of -Wstringop-truncation
Fix the right length when strncpy. And use specific version of copy
to copy GameID.
2020-03-24 20:26:20 +08:00
Jun Su
b6ff15c130 Cleanup warnings of -Wmissing-declarations
Add static to the functions which is not intentionally
export to big scope.
2020-03-24 20:16:10 +08:00
Jun Su
da223a2271 Cleanup warnings of -Wunused-lambda-capture
Remove unused lambda captures.
2020-03-24 20:14:10 +08:00
Jun Su
9dec1e9998 use s_ prefix for local variables 2020-03-24 20:13:20 +08:00
Léo Lam
5b10f4b71e
Merge pull request #8673 from JosJuice/preserve-setting-txt
Boot: Do a better job of preserving certain parts of settings.txt
2020-03-24 10:16:17 +01:00
Léo Lam
b3ad3c3b07
Merge pull request #8683 from AlexApps99/cmdl
Parse arguments before Qt
2020-03-24 10:02:24 +01:00
Connor McLaughlin
323bffed01
Merge pull request #8700 from howard0su/add_override
NoGUI: missing override in PlatformX11
2020-03-24 18:34:48 +10:00
Jun Su
3f72bc3e7e HW: cleanup warnings of -Wtype-limits
ROM_BASE is 0, and address is unsigned. It is always
true that address >= 0. So just compare with ROM_SIZE
and don't use IN_RANGE macro to avoid the warning.
2020-03-24 09:11:24 +08:00
JosJuice
76b97a4183
Merge pull request #8680 from Leseratte10/master
SettingsHandler: Always decode the whole settings.txt file
2020-03-24 00:21:29 +01:00
JosJuice
aee9c7390d
Merge pull request #8699 from howard0su/cleanup_move
Cleanup warnings of -Wpessimizing-move
2020-03-23 19:58:13 +01:00
JosJuice
a6d1fe59a3
Merge pull request #8693 from howard0su/warning_xinpu
InputCommon: cleanup warnings of -Wclass-memaccess
2020-03-23 19:18:08 +01:00
JosJuice
6fab09951b
Merge pull request #8692 from howard0su/warning_unused
Cleanup warnings of -Wunused-[const]-variable
2020-03-23 19:10:52 +01:00
JosJuice
623a50786d
Merge pull request #8702 from sl1pkn07/Qt5.15
Fix build with Qt 5.15+
2020-03-23 18:35:09 +01:00
sL1pKn07
4f7ea79ae4 Fix build with Qt 5.15+ 2020-03-23 17:58:39 +01:00
Jun Su
0bd6016ad0 Wiimote: Cleanup warnings of -Wmissing-variable-declarations
While I am here, make g_wiimote_scanner as static as well.
2020-03-23 16:43:21 +08:00
Jun Su
fb7fbb4a7b NoGUI: missing override keyword GetWindowSystemInfo 2020-03-23 16:35:45 +08:00
Jun Su
964a2e1e70 Cleanup warnings of -Wpessimizing-move
moving a temporary object prevents copy elision. Remove std::move.
2020-03-23 16:31:15 +08:00
Jun Su
500820b352 Cleanup warnings of -Wunused-const-variable 2020-03-23 16:28:25 +08:00
Jun Su
997cfa49fc InputCommon: cleanup warnings of -Wclass-memaccess
Initialize m_state with the default constructor.
2020-03-23 14:26:36 +08:00
Jun Su
7c7a41ecd8 Cleanup warnings of -Wunused-variable
remove unused variables.
2020-03-23 14:24:27 +08:00
Jun Su
d44c51b30c DiscIO: cleanup warnings of -Wmaybe-uninitialized
replace {} with std::nullopt.
2020-03-23 14:14:00 +08:00
AlexApps99
d6fb0b44d7 Parse arguments before Qt 2020-03-22 17:49:32 +13:00
Sepalani
9ec5391bfb Improve "Generate Symbols From > RSO Modules"
Add auto-detection option
2020-03-21 12:03:12 +04:00
Admiral H. Curtiss
303b18ddaf Qt/CodeWidget: Typo in settings key. 2020-03-20 20:51:26 +01:00
Florian Bach
cba4acc54b SettingsHandler: Always decode the whole settings.txt file 2020-03-20 16:08:25 +01:00
Mat M
9ac28054df
Merge pull request #8678 from JosJuice/setting-txt-code-default
Boot: Change pre-defined setting.txt CODE values
2020-03-20 02:06:07 -04:00
Silent
4a438db2c9
Qt/GameListModel: Use native separators in File Path column 2020-03-19 18:03:35 +01:00
JosJuice
21d6c0a11a Boot: Change pre-defined setting.txt CODE values
As suggested by
https://github.com/dolphin-emu/dolphin/pull/8673#discussion_r394945753
2020-03-19 13:05:44 +01:00
Léo Lam
53c34d962d
Merge pull request #8665 from AdmiralCurtiss/debugger_columns
Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults.
2020-03-19 01:40:30 +01:00
Admiral H. Curtiss
e8dfb8f78d Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults. 2020-03-18 22:27:53 +01:00
Léo Lam
4711b76cc4
Merge pull request #8655 from Techjar/fix-hotkey-groups
Core/HotkeyManager: Fix group names in config
2020-03-18 12:03:07 +01:00
Léo Lam
bb430fb5a5
Merge pull request #8675 from Pokechu22/disc-update
Fix Load Wii System Menu not updating after performing a disc update
2020-03-18 11:54:07 +01:00
Léo Lam
d1e8e3e903
Merge pull request #8671 from leoetlino/bt-passthrough-error
BTReal: Improve error handling for device opening
2020-03-18 11:52:22 +01:00
Pokechu22
c59120f089 Fix Load Wii System Menu not updating after performing a disc update
For a fresh install, the button was completely disabled even after the disc update; otherwise, the text on it was just out of date.
2020-03-17 19:59:48 -07:00
Jordan Woyak
099e6bfab9 DolphinQt: Fix gyro mapping indicator's "jitter" drawing. 2020-03-17 19:19:58 -05:00
Techjar
ae0c91805c Core/HotkeyManager: Fix group names in config
For some reason every button group was shoved into the same config
group called "Keys" which caused buggy behavior once someone tried to
have hotkeys with the same name in different groups. This fixes that,
and converts existing configs to the new group names so they don't get
reset.
2020-03-17 05:42:26 -04:00
JosJuice
1b844067aa Back up Wii setting.txt and SYSCONF while emulating
When booting a Wii game, Dolphin can overwrite certain settings
in the SYSCONF file, such as turning off PAL60 for NTSC games.
Normally, these settings get reverted at the end of emulation, but
this does not happen if Dolphin crashes or force quits in some other
way. (Personally, I have a tendency to use Visual Studio's Stop
Debugging button, which kills the process...)

Dolphin also overwrites certain values in setting.txt when booting
a Wii game. Unlike with SYSCONF, we currently make no effort to
preserve the original values in this file.

This change fixes both of these problems by copying SYSCONF and
setting.txt to the Backup folder when booting a Wii game, and then
copying them back either when launching Dolphin (in case the
previous run of Dolphin crashed) or when ending emulation.
2020-03-16 21:04:19 +01:00
JosJuice
5f6598f9e9 StringUtil: Add PathToFileName function 2020-03-16 21:03:34 +01:00
Sepalani
e06bdaf426 AddressSpace: Fix constness 2020-03-16 23:48:03 +04:00
JosJuice
3614e9fcc2 Boot: Preserve MODEL value in setting.txt
It doesn't necessarily start with RVL-001.
2020-03-16 20:38:07 +01:00
JosJuice
36c92294df Boot: Preserve CODE value in setting.txt if it already matches the region
This is a part of fixing https://bugs.dolphin-emu.org/issues/11930.
2020-03-16 20:34:40 +01:00
Léo Lam
c86832849a
Merge pull request #8535 from JosJuice/movie-save-detection
Movie: Make checking for existing GC saves more reliable
2020-03-16 00:19:14 +01:00
JosJuice
cb0fe3fc30 Movie: Make checking for existing GC saves more reliable
The old code only handled a raw memory card in slot A, not taking
GCI folders into account at all.
2020-03-15 23:56:34 +01:00
Léo Lam
57274cbf91
Merge pull request #8565 from Pokechu22/log-scroll-bar
Always display the horizontal scroll bar when log word wrap is off
2020-03-15 23:14:23 +01:00
Léo Lam
a66ee4ea42
Merge pull request #8597 from SirMangler/master
Hotkeys: Toggle Freelook Hotkey
2020-03-15 22:40:51 +01:00
Léo Lam
d9eec2ef04
Merge pull request #8609 from jordan-woyak/separate-hotkey-background-input
DolphinQt: Give hotkeys their own "background input" setting.
2020-03-15 22:35:49 +01:00
Léo Lam
466c079bf4
Merge pull request #8604 from Techjar/netplay-index-direct
Core/NetPlayServer: Fix session not being added to index on direct connection type
2020-03-15 22:22:00 +01:00
Léo Lam
73e7f2a839 BTReal: Improve error handling for device opening
This commit attempts to improve error handling for device opening by
reducing panic alert spam when opening one or several devices fails.
Currently, Dolphin shows a panic alert for every device that we fail
to open, and another panic alert at the end if no usable device was
found. That is certainly a bit excessive -- we should only keep the
very last panic alert (the one that is shown if everything fails)
and we can just put the error for the last device open operation there.

This also changes the PanicAlert to a CriticalAlert to ensure the
message is visible even if the user has disabled regular panic alerts.

The message has also been reworded and should hopefully be clearer.
2020-03-15 22:10:24 +01:00
Léo Lam
d297080f52
Merge pull request #8669 from container1234/mbp
Breakpoints: Fix crash after clearing all memory breakpoints
2020-03-15 18:40:05 +01:00
Léo Lam
3c1f5c675d
Merge pull request #8628 from iwubcode/texturepack_game_id_file
VideoCommon: Allow texture folders to be determined by a <gameid>.txt
2020-03-15 18:37:46 +01:00
iwubcode
bba92019dc VideoCommon: Allow texture folders to be determined by a <gameid>.txt file 2020-03-15 12:34:04 -05:00
Léo Lam
24a01642e0
Merge pull request #8642 from AdmiralCurtiss/debugger_branch_arrows
Qt/CodeViewWidget: Implement branch arrows.
2020-03-15 16:45:36 +01:00
Admiral H. Curtiss
9c98b659f1 Qt/CodeViewWidget: Indent branch arrows based on free space rather than reserving a full column for each. 2020-03-15 16:14:35 +01:00
Léo Lam
19a46dd67b
Merge pull request #8652 from sonic2kk/qtshortcuts
Qt: Use Builtin QKeySequence Shortcuts
2020-03-15 15:07:47 +01:00
Léo Lam
4944e4b429
Merge pull request #8647 from jordan-woyak/minor-input-cleanups
InputCommon: Minor ReshapableInput related cleanups.
2020-03-15 15:06:54 +01:00
Léo Lam
0bf05009d0
Merge pull request #8650 from jordan-woyak/ir-cleanup
HW/WiimoteEmu: Camera logic cleanups.
2020-03-15 15:04:48 +01:00
Eamonn Rea
cd2cf137ba Use ZoomIn/ZoomOut QKeySequence in GameList 2020-03-15 14:58:33 +01:00
Eamonn Rea
eda31c782e Qt: Add Configuration shortcut 2020-03-15 14:58:31 +01:00
Eamonn Rea
b82f54762b Qt: Use builtin Find and Quit key sequences 2020-03-15 14:58:24 +01:00
Florian Bach
3487e5037e Fix settings.txt parsing in case of weird line endings 2020-03-15 00:12:19 +01:00
container1234
75a69b1145 Breakpoints: Fix crash after clearing all memory breakpoints 2020-03-14 21:57:09 +09:00
Stenzek
cdb0aa850d Qt/RenderWidget: Remove fill background functionality
We no longer need this since the video backend handles clearing the
window, and it fixes MoltenVK with Qt 5.14.
2020-03-11 23:13:45 +10:00
Stenzek
2f016295a6 Core: Render a blank UI frame before booting
This is related to https://bugs.dolphin-emu.org/issues/10958 which
uses Qt to clear out the window so the game list isn't displayed
while the core is booting. Instead, we use the video backend to
render a black screen, which means Qt doesn't have to flip between
paint engines.
2020-03-11 23:13:18 +10:00
Stenzek
fb947296b0 Vulkan: Pass CAMetalLayer to MoltenVK instead of NSView
Gets rid of the warning for calling [NSView layer] off the main thread.
2020-03-11 23:11:26 +10:00
Stenzek
a545344268 VideoBackends: Make it possible for PrepareWindow to change the surface
Again, needed for MoltenVK.
2020-03-11 23:10:30 +10:00
Stenzek
86db015c23 Common: Add a render_window field to WindowSystemInfo
We need this because we need to pass the layer to MoltenVK, not
the view handle. But the input subsystem still needs the window.
2020-03-11 23:09:30 +10:00
Admiral H. Curtiss
18127e2554 Qt/CodeViewWidget: Implement branch arrows. 2020-03-07 01:52:53 +01:00
Silent
d1f6f12f78
AudioPane: Do not enable Dolby Pro Logic II quality slider if DPLII is disabled 2020-03-06 21:13:45 +01:00
spycrab
dcaabcac03
Merge pull request #8580 from AlexApps99/master
DolphinQt: Add "File Path" column to Game Grid
2020-03-06 08:22:44 +01:00
Sergei Trofimovich
879e8364af Source/Core/Core/DSP/DSPTables.cpp: include <cstdio> for sprintf
Without included header build fails on gcc-10 as:
```
[ 52%] Building CXX object Source/Core/Core/CMakeFiles/core.dir/DSP/DSPTables.cpp.o
../../../../Source/Core/Core/DSP/DSPTables.cpp: In function 'const char* DSP::pdname(u16)':
../../../../Source/Core/Core/DSP/DSPTables.cpp:492:3: error: 'sprintf' was not declared in this scope
  492 |   sprintf(tmpstr, "0x%04x", val);
      |   ^~~~~~~
```

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2020-03-05 21:20:34 +00:00
Sergei Trofimovich
0478ce72f5 Source/Core/Common/StringUtil.h: include <limits> for std::numeric_limits
Without included header build fails on gcc-10 as:

```
[ 13%] Building CXX object Source/Core/AudioCommon/CMakeFiles/audiocommon.dir/CubebUtils.cpp.o
In file included from ../../../../Source/Core/AudioCommon/CubebUtils.cpp:13:
../../../../Source/Core/Common/StringUtil.h: In function 'bool TryParse(const string&, T*)':
../../../../Source/Core/Common/StringUtil.h:84:20: error: 'numeric_limits' is not a member of 'std'
   84 |   if (value < std::numeric_limits<LimitsType>::min() ||
      |                    ^~~~~~~~~~~~~~
```

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2020-03-05 21:20:34 +00:00
AlexApps99
465e7c2521 Used whole path instead of relative path 2020-03-03 11:58:59 +13:00
AlexApps99
7408c388d6 Add path to File Name column of game grid
Fixes https://bugs.dolphin-emu.org/issues/10567
2020-03-02 17:38:28 +13:00
Techjar
08c95883e9 Common/IniFile: Add Exists function for section name only 2020-02-29 01:39:36 -05:00
Jordan Woyak
ccdfa43a3e HW/WiimoteEmu: Fix Classic Controller triggers. 2020-02-26 15:40:58 -06:00
Jordan Woyak
2451a41a48 DolphinQt: Fix calibration cancel behavior. 2020-02-25 18:36:56 -06:00
Jordan Woyak
2c843ae06b DolphinQt: Clean up calibration drawing a bit. 2020-02-25 17:58:32 -06:00
Jordan Woyak
ed24f32c5b InputCommon: Specify ini value default when saving calibration "center". 2020-02-25 17:19:48 -06:00
Jordan Woyak
bd43e084f4 InputCommon: Clamp calibration values within square shape. 2020-02-25 17:19:48 -06:00
Jordan Woyak
f8cca9fe5d InputCommon: RoundStickGate's ideal sample count can be 1. 2020-02-25 17:19:48 -06:00
spycrab
8233255b11 Qt: Re-enable Dark Mode support 2020-02-25 23:27:44 +01:00
Jordan Woyak
ef777c4186 HW/WiimoteEmu: Fill IR data with 0xFF on failed bus read. 2020-02-24 19:45:02 -06:00
Jordan Woyak
5361e66459 HW/WiimoteEmu: Camera logic cleanups. 2020-02-24 19:44:15 -06:00
Jordan Woyak
6b109bd2a6 DolphinQt: Tweak indicator raw-input/input-shape color for better contrast in some dark themes. 2020-02-24 16:26:28 -06:00
Jordan Woyak
122984b46e DolphinQt: Eliminiate redundant swing indicator logic. 2020-02-24 16:26:28 -06:00
Jordan Woyak
d80fd13b17 DolphinQt: Clean up mapping indicator code and draw lines on "pixel centers". 2020-02-24 16:26:26 -06:00
Jordan Woyak
f79ca680cb DolphinQt: Eliminate redundant cursor indicator logic. 2020-02-24 16:25:06 -06:00
Jordan Woyak
38f36be9ae DolphinQt: Break mapping indicators into separate classes. Ensure "state lock" is held on redraw. 2020-02-24 16:25:06 -06:00
Jordan Woyak
7accd9825f InputCommon: Remove racy UpdateInput call in DetectInput. 2020-02-24 16:25:06 -06:00
Jordan Woyak
1a3b4d91bf InputCommon: Mark GetStateLock with [[nodiscard]] and fix discarding calls. 2020-02-24 16:25:06 -06:00
spycrab
25d5f0d9ef
Merge pull request #8633 from spycrab/tas_window_fixes
Qt/TAS: Improve TAS windows
2020-02-24 07:26:49 +01:00
Admiral H. Curtiss
c70e004f53 Qt/CodeViewWidget: Use named constants for column IDs. 2020-02-23 18:49:27 +01:00
Jordan Woyak
da12f3eebc InputCommon: Constify Device::Input::IsDetectable function. 2020-02-22 10:27:43 -06:00
spycrab
29c7c12016 Qt/TAS: Improve TAS windows
- Use the Dolphin Icon in TAS Windows
- Prevent deformation of the stick widget (#11988)
- Improve visual appearance
- Set a reasonable minimum size
2020-02-18 16:13:31 +01:00
Techjar
06a9f6ef82 Core/NetPlayServer: Fix session not being added to index on direct connection type 2020-02-17 21:05:32 -05:00
Jordan Woyak
70ac9ad2e6 InputCommon: Remove Wii Remote real-time calibration of M+ in favor of functionality provided by ControllerEmu. 2020-02-17 16:14:03 -06:00
Jordan Woyak
58448d74c5 InputCommon: Add real Wii Remote support to ControllerInterface. Add option to connect additional Wii Remotes. 2020-02-17 16:14:01 -06:00
Jordan Woyak
4176cc77e1 InputCommon/ControllerInterface: Make devices mutex recursive so RemoveDevice can be used within UpdateInput. 2020-02-17 15:58:06 -06:00
Jordan Woyak
5af2081c75 Core/WiimoteEmu: Add functions to Nunchuk, Classic Controller, and MotionPlus extensions to get/set data without duplicate bithacks everywhere. 2020-02-17 15:57:58 -06:00
Jordan Woyak
8343dadd58 InputCommon: Add types to ControllerEmu that represent raw controller inputs and calibration data to calculate normalized input values. 2020-02-17 15:57:43 -06:00
Jordan Woyak
259a7191d2 Common: Add additional Vector operations. 2020-02-17 15:57:43 -06:00
Jordan Woyak
1e652d7d34 InputCommon: Add calibration functionality to IMUGyroscope. 2020-02-17 15:57:43 -06:00
Jordan Woyak
9efcd08ea3 MathUtil: Add RunningMean/RunningVariance classes. 2020-02-17 15:57:43 -06:00
Jordan Woyak
82a3aa5ff6 InputCommon: Add "Dead Zone" setting to raw gyro inputs. 2020-02-17 15:57:43 -06:00
spycrab
2d6a72e941
Merge pull request #8632 from jimbo1qaz/windows-menu-font
Windows GUI: Use QMenu font (Segoe UI) for entire application
2020-02-17 15:04:37 +01:00
nyanpasu64
44f602fe51 Windows GUI: Use QMenu font (Segoe UI) for entire application
On Windows, Qt's default system font (MS Shell Dlg 2) is outdated.

Dolphin previously used over 15 lines of code to compute a font
closer to the proper font, but with an approximately correct font size.
Using the QMenu font directly is both more concise and more elegant
(in my opinion).
2020-02-17 05:37:54 -08:00
Léo Lam
44b4c2db49 Common: Avoid std::function overhead in ScopeGuard
So far in all our uses of ScopeGuard, the type of the callable is
usually just a lambda or a function pointer, so there is no need
to rely on std::function's type erasure.

While the cost of using std::function is probably negligible, it still
causes some unnecessary overhead that can be avoided by making
ScopeGuard a templated class. Thanks to class template argument
deduction in C++17 most existing usages do not even need to be changed.

See https://godbolt.org/z/KcoPni for a comparison between
a ScopeGuard that uses std::function and one that doesn't
2020-02-15 21:33:31 +01:00
JosJuice
62046d93ce
Merge pull request #8542 from Itrimel/fix-gecko-loading
Fix Gecko codes loading
2020-02-15 16:28:32 +01:00
Itrimel
fe900e057b Core/GeckoCodeConfig : Fix Gecko codes formatting
Some locales (e.g. fr_FR.UTF-8 on ArchLinux) don't split the string stream on a space. As such, when extracted formatted data from te stream, it will return the two numbers as one for the first call, effectively overflowing the u32 variable, then will do an out-of-bounds read for the second call. Forcing the use of the C locale on the streams where it would cause a problem allows to workaround this behavior.
2020-02-14 11:51:36 +01:00
spycrab
213a9adcff CMake: Fix building ARM64 on Windows 2020-02-12 12:29:31 +01:00
Jordan Woyak
903db48280 DolphinQt: Give hotkeys their own "background input" setting. 2020-02-10 20:06:29 -06:00
Tilka
a9dc4ac3f0
Merge pull request #8603 from jordan-woyak/deadzone-too-dark
DolphinQt/Mapping: Tweak "Dead Zone" and "Gate" colors.
2020-02-10 23:28:56 +00:00
Tilka
103b3abf66 Merge pull request #8621 from JosJuice/volumeverifier-invalid-partition
Fix VolumeVerifier not showing a problem for invalid partitions
2020-02-10 09:33:29 +00:00
Jordan Woyak
47877ecf2c InputCommon: Clean up creation of inputs. 2020-02-09 19:08:26 -06:00
Tilka
01d69ba81a
Merge pull request #8624 from jordan-woyak/setting-expression-input-gate
InputCommon: Only update setting expressions when the input gate is enabled.
2020-02-10 00:47:30 +00:00
Jordan Woyak
53f2e275af InputCommon: Only update setting expressions when the input gate is enabled. 2020-02-09 18:42:42 -06:00
Tilka
c598772052
Merge pull request #8622 from JosJuice/volumeverifier-invalid-partition-biggest-offset
VolumeVerifier: Ignore invalid partitions in GetBiggestReferencedOffset
2020-02-10 00:31:49 +00:00
Tilka
d129fae8fc
Merge pull request #8623 from spycrab/qt_5.14.1
Update to Qt 5.14.1
2020-02-10 00:06:11 +00:00
Tilka
db65b9a766 Merge pull request #8616 from jordan-woyak/threshold-cleanup
InputCommon: Eliminate some duplicated button threshold logic.
2020-02-10 00:05:10 +00:00
spycrab
6a3bd259a7 Update to Qt 5.14.1 2020-02-09 22:30:57 +01:00
Jordan Woyak
7cbb9822c1 VideoCommon: Remove widescreen heuristic debug logs. 2020-02-09 13:22:27 -06:00
Jordan Woyak
10223da6a8 VideoCommon: Tweak widescreen heuristic and clean up some related Renderer logic. 2020-02-09 13:22:25 -06:00
JosJuice
829f3cff6f VolumeVerifier: Ignore invalid partitions in GetBiggestReferencedOffset
Otherwise GetBiggestReferencedOffset might treat garbage data as a valid
large offset, making Dolphin incorrectly say that the disc is too small.
2020-02-09 19:05:44 +01:00
JosJuice
07df6597a5 Fix VolumeVerifier not showing a problem for invalid partitions 2020-02-09 18:58:15 +01:00
Jordan Woyak
f07457b6cc InputCommon: Eliminate some duplicated button threshold logic. 2020-02-09 10:37:18 -06:00
magiblot
55e8601192
Fix another implicit false-to-nullptr conversion 2020-02-09 15:51:30 +01:00
Léo Lam
aa21fe17b8
Merge pull request #8618 from encounter/debugger-floating-fix
DolphinQt/Debugger: Fix crash with floating debugger windows
2020-02-09 15:50:47 +01:00
Léo Lam
166e86b97f
Merge pull request #8619 from JosJuice/directoryblob-check-seek
DiscIO: Check for DirectoryBlob seek failure
2020-02-09 15:49:37 +01:00
Léo Lam
fb0f543777
Merge pull request #8574 from JosJuice/volumeverifier-assert-small-file
VolumeVerifier: Improve the messages shown for files that are too small
2020-02-09 15:48:57 +01:00
JMC47
5ab846ad12 Merge pull request #8614 from jordan-woyak/xinput-battery
InputCommon/XInput: Expose battery as input and cleanups.
2020-02-09 09:29:00 -05:00
JosJuice
9a348ae654 DiscIO: Check for DirectoryBlob seek failure
Someone reported a problem with DirectoryBlob at
https://forums.dolphin-emu.org/Thread-feature-request-thread?pid=502820#pid502820.
I'm not sure if the change in this commit actually fixes that problem,
but it's something I found that should be changed regardless.
2020-02-09 11:21:10 +01:00
Luke Street
3e94366fe0 DolphinQt/Debugger: Fix crash with floating debugger windows 2020-02-09 02:32:04 -05:00
Tilka
3cec5443cd
Merge pull request #8605 from Techjar/netplay-hostpoll-doc
Core/NetPlayClient: Add documentation for SendPadHostPoll
2020-02-09 02:32:50 +00:00
Tilka
2e2540317e Merge pull request #8417 from jordan-woyak/setting-expressions
InputCommon: Allow controller settings specified with input expresions.
2020-02-09 01:37:30 +00:00
Tilka
0043a2cf3c Merge pull request #8615 from jordan-woyak/std-abs
Cleanup: Use std::abs instead of abs.
2020-02-09 00:39:30 +00:00
Jordan Woyak
4f47cccd9f Cleanup: Use std::abs instead of abs. 2020-02-08 18:21:14 -06:00
Jordan Woyak
0a1634bedf InputCommon: Allow Wii remote extension to be set with an input expression. 2020-02-08 16:03:13 -06:00
Jordan Woyak
e7400cafd2 InputCommon: XInput cleanups. 2020-02-08 15:51:02 -06:00
Jordan Woyak
86e8745169 InputCommon: Expose XInput battery level as an input. 2020-02-08 15:03:56 -06:00
Jordan Woyak
e8152b700f InputCommon: Allow controller settings specified with input expresions. 2020-02-08 14:01:55 -06:00
JMC47
6a857df219
Merge pull request #8606 from jordan-woyak/tab-key-navigation
DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView.
2020-02-08 14:18:09 -05:00
JMC47
3b0b264c84
Merge pull request #8608 from jordan-woyak/stereoscopy-hotkeys
DolphinQt: Fix stereoscopy hotkeys.
2020-02-08 14:17:42 -05:00
JMC47
dc5447fb30
Merge pull request #8612 from jordan-woyak/unused-members
DolphinQt: Kill some unused member variables.
2020-02-08 14:17:15 -05:00
Jordan Woyak
f94726068d DolphinQt: Kill some unused member variables. 2020-02-08 10:52:06 -06:00
Tilka
e323f47ceb
Merge pull request #8472 from degasus/jitsetting
Core/Jits: Adds an option to disable the register cache.
2020-02-08 13:49:33 +00:00
Jordan Woyak
9a34091b8b DolphinQt: Fix stereoscopy hotkeys. 2020-02-07 15:47:40 -06:00
Jordan Woyak
b9f34bc822 DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView. 2020-02-06 20:48:45 -06:00
Techjar
e8e41d8529 Core/NetPlayClient: Add documentation for SendPadHostPoll 2020-02-06 07:24:00 -05:00
Jordan Woyak
b1a71b959b DolphinQt/Mapping: Change "Dead Zone" color from shadow color of palette to a transparent black or white depending on theme. Tweak order of "shake" indicator axis colors so red is more often shown. 2020-02-04 16:08:51 -06:00
Pierre Bourdon
a205ecb446
Merge pull request #8602 from lioncash/fmt
Externals: Update fmt to 6.1.2
2020-02-04 21:59:22 +01:00
Lioncash
91deb40a22 Common: Amend includes to handle the upgrade to fmt 2020-02-04 15:03:51 -05:00
Lioncash
aea76c7901 Core: Amend includes to handle the upgrade to fmt 2020-02-04 15:03:48 -05:00
Lioncash
abd2897377 VideoCommon: Amend formatting code to handle the upgrade to fmt
It seems that the newer version of fmt gets tripped up by bitfields
within structs. However, we can just specify the intended type where
necessary to get around this.
2020-02-04 14:55:20 -05:00
JosJuice
f8355d0f82 VolumeVerifier: Don't return early when file is too small
Not sure why that was there.
2020-02-02 17:09:58 +01:00
JosJuice
e449d23929 VolumeVerifier: Don't show an assert for files that are too small 2020-02-02 17:09:58 +01:00
Léo Lam
0491831483
Merge pull request #8592 from phcoder/devid
ButtonManager: Fix handling of empty device id.
2020-02-02 16:52:12 +01:00
Léo Lam
06d0b1ad48
Merge pull request #8594 from leoetlino/fs-createfullpath-fix
IOS/FS: Fix CreateFullPath to not create directories that already exist
2020-02-02 16:50:02 +01:00
Léo Lam
4c9b1f3e0b
Merge pull request #8599 from Pokechu22/di-interrupt-mask-ioctls
Fix DI interrupt mask ioctl names
2020-02-02 16:49:27 +01:00
Pokechu22
f527f382e8 Report use of DI interrupt mask commands as a game quirk 2020-02-02 00:44:12 -08:00
Jordan Woyak
d6515eee41 WiimoteEmu: Fix default IMU accelerometer mappings. 2020-02-01 23:32:09 -06:00
Pokechu22
bb5e5fd8f2 Fix assignment of DI interrupt mask ioctls
0x85 is actually DVDLowMaskCoverInterrupt, while 0x89 is DVDLowUnmaskCoverInterrupt.  I'm also fairly sure that 0x87 is DVDLowUnmaskStatusInterrupts.
2020-02-01 16:56:48 -08:00
Connor McLaughlin
69ee15e5ef
Merge pull request #8478 from jordan-woyak/dsu-client-cleanup
ControllerInterface/DSUClient: Minor cleanup.
2020-02-01 11:29:29 +10:00
SirMangler
ac34911f32 Added Toggle Freelook Hotkey 2020-01-31 20:45:08 +00:00
Stenzek
08cc73108a Vulkan: Treat VK_SUBOPTIMAL_KHR as VK_SUCCESS on Android
Android 10 seems to expect a prerotated/transformed swap chain for optimal
presentation. For now, until we implement that, just ignore the hint.
2020-01-31 19:16:06 +10:00
Stenzek
ead65b0d8c Vulkan: Log when a swap chain resize is occurring
This may help us debug performance problems in the future.
2020-01-31 19:11:43 +10:00
Léo Lam
bbc8631357 IOS/FS: Fix CreateFullPath to not create directories that already exist
This fixes CreateFullPath to not create directories when it is known
that they already exist, instead of calling CreateDirectory anyway
and checking if the error is AlreadyExists. (That doesn't work
now that we have an accurate implementation of CreateDirectory
that performs permission checks before checking for existence.)

I'm not sure what I was thinking when I wrote that function.

Also adds some tests for CreateFullPath.
2020-01-30 18:07:03 +01:00
Léo Lam
f1f293bd49 WiiRoot: Fix CopySysmenuFilesToFS directory creation
Fixes a regression from #8539.

CreateDirectory was the correct function to use for creating
directories since parent directories already exist and are
not owned by the system menu.
2020-01-30 13:53:39 +01:00
Vladimir Serbinenko
02c5d292fa ButtonManager: Fix handling of empty device id.
Device id is "" on ChromeOS when using gamepad
2020-01-29 02:47:18 +01:00
Léo Lam
57f4837e4d
Merge pull request #8589 from lioncash/translatable
DolphinQt/GCMemcardManager: Mark string as translatable within GetErrorMessagesForErrorCode()
2020-01-27 23:20:03 +01:00
Lioncash
7eaa769527 DolphinQt/GCMemcardManager: Make use of QLatin1Char within GetErrorMessagesForErrorCode()
Same behavior, but eliminates the use of a program lifetime Qt string
literal.
2020-01-27 15:59:33 -05:00
Lioncash
585ae8aedf DolphinQt/GCMemcardManager: Mark string as translatable within GetErrorMessagesForErrorCode()
This is a string that can potentially be seen by a user, so it should be
marked as translatable, like the other strings are.
2020-01-27 15:57:36 -05:00
Lioncash
dca201d5f3 DolphinQt/GameConfigWidget: Remove unimplemented EditUserConfig() member function
This isn't implemented anywhere, so we can remove the member function
prototype.
2020-01-27 15:46:52 -05:00
Lioncash
2fd628d017 DolphinQt/GameConfigEdit: Remove unimplemented SetReadOnly() member function
This isn't implemented anywhere, so we can remove this prototype.
2020-01-27 15:44:52 -05:00
Lioncash
c69cbceb59 DolphinQt/MainWindow: Surround prototype of OnSignal() with relevant ifdef
This is only used on Apple and Unix-like machines, so we can enclose the
prototype with an ifdef like the implementation is. This prevents
false-positives about an unimplemented function prototype.
2020-01-27 15:26:41 -05:00
Lioncash
e8ee4e835e DolphinQt/NetPlayDialog: Remove unimplemented SetGame() prototype
This isn't implemented anywhere, so the prototype can be removed.
2020-01-27 15:25:04 -05:00
Tilka
f36c735856
Merge pull request #8586 from Techjar/d2s-no-pext
Avoid using PDEP and PEXT on AMD Zen
2020-01-27 03:15:43 +00:00
Techjar
3a3dc28d54 VertexLoaderX64: Don't use PDEP on AMD Zen 2020-01-26 22:12:00 -05:00
Techjar
a106c99826 Jit64: Don't use PEXT in DoubleToSingle on AMD Zen
This was causing severe slowdown in some games.
2020-01-26 22:10:46 -05:00
Techjar
185e49d2a9 x64CPUDetect: Add flag for slow PDEP/PEXT on AMD Zen
For some unknown reason PDEP and PEXT are ridiculously slow on AMD Zen
architecture.
2020-01-26 22:09:46 -05:00
Techjar
52b52631c2 x64CPUDetect: Add detection for AMD Zen architecture 2020-01-26 22:09:13 -05:00
Connor McLaughlin
47239ddaac
Merge pull request #8587 from lioncash/const-qual
DolphinQt/TASCheckBox: Mark GetValue() as const
2020-01-27 12:52:10 +10:00
Lioncash
b493bdb912 DolphinQt/TASCheckBox: Mark GetValue() as const
This doesn't actually modify the checkbox's state, so this can be marked
as a const-qualified member function.
2020-01-26 21:41:31 -05:00
Tilka
5dfc9196ab
Merge pull request #8548 from jordan-woyak/wiimote-source-cleanup
Core/WiimoteReal: Wii remote connection pool and source change cleanup.
2020-01-25 23:04:50 +00:00
Tilka
9ac77dc91f
Merge pull request #8552 from jordan-woyak/extension-calibration-data
WiimoteEmu: Nunchuk and Classic Controller calibration accuracy improvements.
2020-01-25 23:01:57 +00:00
Tilka
73aea8af6b
Merge pull request #8539 from leoetlino/fs-accuracy
IOS/FS: Reimplement many functions in a more accurate way
2020-01-25 23:00:10 +00:00
Tilka
2edcb29706
Merge pull request #8582 from jordan-woyak/osd-disabled-fix
VideoCommon/OSD: Process OSD messages even when they are disabled.
2020-01-25 21:11:37 +00:00
Tilka
a632bc7324
Merge pull request #8579 from jordan-woyak/rvalue-cleanups
Common/Core: Minor rvalue reference related cleanups.
2020-01-25 21:09:22 +00:00
Tilka
14ebdf0e9d
Merge pull request #8585 from JosJuice/volumeverifier-read-error
VolumeVerifier: Report read errors to the user
2020-01-25 21:07:01 +00:00
Tilka
b0e040431a
Merge pull request #8581 from jordan-woyak/ciface-ar-aware
InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio.
2020-01-25 20:28:01 +00:00
Tilka
9827aa7a37
Merge pull request #8577 from jordan-woyak/shared_mutex
Common/Analytics: Replace mutex with shared_mutex and minor cleanups.
2020-01-25 20:08:22 +00:00
Jordan Woyak
5e3472eba9 Common/Analytics: Replace mutex with shared_mutex and minor cleanups. 2020-01-25 14:04:00 -06:00
JosJuice
de26fec0af VolumeVerifier: Report read errors to the user 2020-01-25 20:21:12 +01:00
Tilka
119ccc5e4f
Merge pull request #8556 from Sintendo/bestrest
x64Emitter: Avoid 8-bit displacement when possible
2020-01-25 19:10:47 +00:00
Tilka
709862b818
Merge pull request #8120 from MerryMage/cdts
Jit64: Make DoubleToSingle a common asm routine
2020-01-25 19:10:37 +00:00
Léo Lam
c02e7de55a IOS/ES: Remove now unnecessary title sorting hack
ES now uses FS to access the filesystem and FS's ReadDirectory now
returns file lists that are correctly ordered.
2020-01-25 17:54:58 +01:00
Léo Lam
d4ba0acb3a UnitTests/FS: Add path validity and splitting tests 2020-01-25 17:54:57 +01:00
Léo Lam
484cfb9328 UnitTests/FS: Add metadata tests 2020-01-25 17:53:39 +01:00
Léo Lam
142b7e048b IOS/FS: Actually implement SetMetadata 2020-01-25 17:53:35 +01:00
Léo Lam
e4dd582d1d IOS/FS: Implement GetMetadata properly and remove GID hack
Now that all FS functions that create new inodes are properly
implemented, we can make GetMetadata actually return correct file
metadata rather than giving fixed information. The hack for the DQX
installer can also be removed now since our ES and FS keep track of
caller UID/GIDs now.
2020-01-25 17:53:34 +01:00
Léo Lam
396429d582 IOS/FS: Implement ReadDirectory properly and remove sorting hack
With the CreateFile/CreateDirectory fix and this commit, we can
finally return correct results in ReadDirectory and the sorting
hack -- whose purpose was to prevent certain versions of the
System Menu from crashing -- can be removed too.
2020-01-25 17:53:19 +01:00
Léo Lam
a40f297d1d IOS/FS: Implement Rename properly 2020-01-25 17:53:18 +01:00
Léo Lam
53ceb6c693 IOS/FS: Implement Delete properly 2020-01-25 17:53:05 +01:00
Léo Lam
8517528f8c IOS/FS: Implement CreateFile and CreateDir properly 2020-01-25 17:52:45 +01:00
Léo Lam
8f74d02659 Core: Fix a few misuses of FS::CreateDirectory
CreateDirectory does not create missing parent directories. If that
behaviour is desired, CreateFullPath should be used instead.

(These small misuses went unnoticed since the previous implementation
of CreateDirectory automatically created parent directories.)
2020-01-25 17:52:07 +01:00
Léo Lam
36676d2628 IOS/FS: Implement Format properly 2020-01-25 17:52:03 +01:00
Léo Lam
a83d9e5600 IOS/FS: Make sure FS root directory exists
Previously, the FS root directory would get created as a side
effect of calling CreateDirectory during boot (since the
implementation was sloppy and used File::CreateFullDir).

Since CreateDirectory no longer does that, it is necessary to ensure
that the FS root directory does exist by creating it explicitly.
2020-01-25 17:51:52 +01:00
Léo Lam
0543598574 IOS/FS: Move /tmp clearing back to the IPC interface
Prevents /tmp from being cleared unnecessarily; clearing /tmp is
normally only done once every time IOS is reloaded.
2020-01-25 17:51:43 +01:00
Léo Lam
f743f100b1 IOS/FS: Add base FST functions
Some official titles rely on implementation details of Nintendo's
FS sysmodule and will not work properly if those are changed.
Notably, some games and older versions of the System Menu appear
to be relying on the order of files returned by FS::ReadDirectory
and will either fail to find their save data (for Bolt) or
outright crash (for the System Menu).

Some titles also actually expect filesystem metadata to be correct.
One title that has been confirmed to do this is DQX, which generates
paths based on the GID of files within its own title directory.

While it is easy to make workarounds for these issues -- and in fact
we already do have some for the sysmenu and DQX, having hacks
is obviously nonideal and adding yet another hack would be required
to fix Bolt -- one that would be even uglier.

Furthermore, while it is currently unknown whether any official
title cares about permissions, the lack of FS metadata means that
we are unable to implement them if that turns out to be desirable
or necessary.

By adding a FST, we can implement things correctly and solve all
those problems without hacks.

Apart from DQX, the sysmenu and Bolt, this changeset also fixes
the Photo Channel complaining about corrupted system files
on the initial launch.

This first commit adds the basic structures and functions that
are necessary to load, save, query and update our version of the FST.

For simplicity, a binary format that is inspired from Nintendo's FST
structure was chosen for serialization. It is not expected to ever
receive an update.

PS: an update on the NAND image backend:

A long time ago I had planned to add another FS backend which would
be using a NAND image/blob as the storage. While I have already
written an implementation that has been tested, solves all the
aforementioned issues and more, produces images that are fully
compatible with IOS's FS driver, I feel like NAND images raise too
many issues: savestate sizes, code complexity and maintenance cost.

Since many fixes and additions that are part of that implementation
(e.g. FS timings, utility structures, FST) have already been merged
or will be submitted as part of this changeset, I will likely not
submit the branch.
2020-01-25 17:51:37 +01:00
Léo Lam
d185bc6f09 IOS/FS: Move path validity check functions
They will be used in more places than just HostBackend/FS.cpp.

Also fix the check and make it accurate while we're at it.
2020-01-25 17:47:42 +01:00
Connor McLaughlin
e3a7922e12
Merge pull request #8336 from Ebola16/PS
Add Dolphin version and current video backend to shader compilation logs
2020-01-25 11:52:14 +10:00
Jordan Woyak
c08671c4ce VideoCommon/OSD: Process OSD messages even when they are disabled. 2020-01-24 11:00:58 -06:00
Jordan Woyak
b92f6480a0 InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio. 2020-01-24 09:20:41 -06:00
Ryan Meredith
e5f6d9320f Add Dolphin version and current video backend to shader compilation logs 2020-01-24 03:29:38 -05:00
Jordan Woyak
732032cdb2 Common/Core: Minor rvalue reference related cleanups. 2020-01-23 22:58:23 -06:00
Connor McLaughlin
42c03c4dad
Merge pull request #8576 from lioncash/texture-cvt-shader-fmt
VideoCommon/TextureConversionShader: Convert over to using ShaderCode
2020-01-24 11:53:51 +10:00
Connor McLaughlin
a0b7c1beae
Merge pull request #8366 from Techjar/high-dpi-auto-adjust
Qt/RenderWidget: Account for devicePixelRatio when auto-adjusting window size
2020-01-24 11:31:09 +10:00
Lioncash
687f1f0330 VideoCommon/TextureConversionShader: Make use of fmt where applicable
Now that we've converted the shader generation over to ShaderCode, we
can now make use of the fmt-capable WriteFmt function.
2020-01-23 14:19:40 -05:00
Lioncash
aa77dff3a2 VideoCommon/TextureConversionShader: Convert over to using ShaderCode
Migrates the shader generator off the use of a global array, eliminating
the use of some global state. This also allows us to move the shader
generation over to using fmt in a subsequent change.
2020-01-23 14:19:36 -05:00
Pierre Bourdon
ea9b96370d
Merge pull request #8573 from JosJuice/ciso-size
DiscIO: Fix CISOFileReader::GetDataSize()
2020-01-22 19:20:36 +01:00
JosJuice
956c63ef9b DiscIO: Fix CISOFileReader::GetDataSize()
Fixes being unable to run CISO games after the merge of PR 8558.
2020-01-22 18:57:50 +01:00
JMC47
f0669f5aa6
Merge pull request #8570 from Techjar/always-sync-sram
Core/NetPlayServer: Sync SRAM on every game start
2020-01-21 20:55:52 -05:00
Connor McLaughlin
a63510a55a
Merge pull request #8554 from stenzek/present-duplicate-frames
Add an option to present duplicate frames
2020-01-20 12:04:26 +10:00
JMC47
f61d77a5e2
Merge pull request #8568 from jordan-woyak/imu-accel-ordering
InputCommon: List IMUAccelerometer's Up/Down inputs first for consistency.
2020-01-19 16:05:53 -05:00
Techjar
de27dcebf6 Core/NetPlayServer: Sync SRAM on every game start
This solves the issue of booting games locally while connected to
NetPlay causing desync.
2020-01-19 03:57:41 -05:00
Jordan Woyak
a61dff67da InputCommon: List IMUAccelerometer's Up/Down inputs first for consistency. 2020-01-18 13:56:11 -06:00
tinyredpanda
8b1051abb9 Update Qt5_DIR path for ARM64 in CMake project 2020-01-18 11:28:42 +00:00
Léo Lam
89b0ab2d22 StringUtil: Add IsPrintableCharacter and use it
Add a function that safely returns whether a character is printable
i.e. whether 0x20 <= c <= 0x7e is true.

This is done in several places in our codebase and it's easy to run
into undefined behaviour if the C version defined in <cctype>
is used instead of this one, since its behaviour is undefined
if the character is not representable as an unsigned char.

This fixes MemoryViewWidget.
2020-01-16 00:22:26 +01:00
Pokechu22
0a6a53e301 Always display the horizontal scroll bar when log word wrap is off
Otherwise, a line that's too wide for the log widget will cause the horizontal scroll bar to appear, which reduces the vertical height, and causes the most recent line to be off screen.  Since that line is off screen, the log widget no longer scrolls as new lines appear, unless it's manually scrolled to the very bottom again.
2020-01-15 13:59:09 -08:00
Tilka
1cc7ef356b
Merge pull request #8558 from JosJuice/volume-oob
DiscIO: Add out of bounds checks for blob reading
2020-01-15 13:48:00 +00:00
Pierre Bourdon
1ac3264d5d
Merge pull request #8545 from jordan-woyak/imu-cursor-centering
WiimoteEmu: IMU pointing behavior improvements and code cleanup.
2020-01-15 12:10:57 +01:00
Léo Lam
d2efad58af
Merge pull request #8562 from jordan-woyak/sens-slider
Core/DolphinQt: Fix IR Sensitivity slider.
2020-01-15 00:29:24 +01:00
Jordan Woyak
b416389248 Core/DolphinQt: Fix IR Sensitivity slider. 2020-01-14 17:08:21 -06:00
JosJuice
297b790e4f DiscIO: Add out of bounds checks for blob reading 2020-01-14 18:59:31 +01:00
JosJuice
21c152f51f Fix Error #001 (alternative solution)
This is an alternative to PR 8557 and PR 8558. The way this PR solves
the problem is essentially the same as what we had before PR 8394
(except the code we had back then only worked because it was broken).
2020-01-14 16:47:14 +01:00
Pokechu22
ddba80133a Fix launching DTK games with MIOS 2020-01-13 20:07:59 -08:00
Pokechu22
d67c4f34d1 Fix crash when launching gamecube games with MIOS (from the Wii menu) 2020-01-13 19:48:19 -08:00
Stenzek
11ba623f26 Add an option to present/skip presenting duplicate frames
Currently, we do not display every second frame in 25fps/30fps games
which run to vsync. This improves performance as there's less rendering
for the GPU to perform, but when combined with vsync, could cause frame
pacing issues.

This commit adds an option to force every frame generated by the console
to be displayed to the host, which may improve pacing for these games.
2020-01-14 10:57:35 +10:00
Jordan Woyak
f5d9b78a3c DolphinQt: Properly hide Wii remote extension motion tabs when no extension is selected. 2020-01-13 18:34:04 -06:00
Connor McLaughlin
efc1ee8e6a
Merge pull request #8537 from degasus/fastmem
Core/HW -> PowerPC/JIT: Fastmem arena construction
2020-01-14 09:38:15 +10:00
Jordan Woyak
6106f780a7 ControllerInterface/DSUClient: Eliminate m_accl/m_gyro state by accessing the pad data directly like every other input. 2020-01-13 17:35:33 -06:00
JMC47
eacbff76dd
Merge pull request #8474 from jordan-woyak/dsu-battery
ControllerInterface: Exposse DSU client battery level as an input.
2020-01-13 18:30:53 -05:00
Jordan Woyak
e2d5c92c76 ControllerInterface: Remove and re-add device when combining nodes. 2020-01-13 16:50:58 -06:00
Jordan Woyak
aabe8d2ccd ControllerInterface: Don't consider the empty string a valid unique ID. 2020-01-13 16:50:58 -06:00
Jordan Woyak
ac907ef977 ControllerInterface: Combine evdev devices with the same unique ID.
This works around Linux drivers for DS4 (Playstation 4) controllers splitting the device into three separate event nodes which makes configuration difficult.
To prevent collisions of input names in combined devices more descriptive names are now used when possible.
2020-01-13 16:50:56 -06:00
Jordan Woyak
2b9fa0597a ControllerInterface: Minor DSU client device cleanups. 2020-01-13 16:32:02 -06:00
JosJuice
da59f97278
Merge pull request #8549 from leoetlino/clang-format-9
Require clang-format 9 and reformat source code
2020-01-13 23:30:26 +01:00
Jordan Woyak
f0534cabc6 ControllerInterface: Exposse DSU client battery level as an input. 2020-01-13 16:29:24 -06:00
JMC47
48fd27cdab
Merge pull request #8451 from rlnilsen/motion-input-nunchuk
Add motion input support to nunchuk
2020-01-13 17:08:03 -05:00
JosJuice
966e1b31ba
Merge pull request #8394 from Pokechu22/misc-di-gpio
Various DI improvements
2020-01-13 17:17:24 +01:00
Connor McLaughlin
ae6d3be449
Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
Sintendo
bdcdd763fe x64Emitter: Remove unused macros
No users, and one them seems to do the same as stddef.h's offsetof()
already used elsewhere.
2020-01-13 08:43:42 +01:00
Sintendo
f82c38e156 X64Emitter: Remove obsolete TODO
TODO was already taken care of in PR #941.
2020-01-13 08:43:42 +01:00
Sintendo
bdfc472751 x64Emitter: Refactor OpArg::WriteRest
Shorter, displacement is now handled in one location.
2020-01-13 08:43:42 +01:00
Sintendo
cde3a3b448 x64Emitter: Avoid 8-bit displacement when possible
Due to the way the ModRM encoding works on x86, memory addressing
combinations involving RBP or R13 need an additional byte for an 8-bit
displacement of zero.

However, this was also applied in cases where it is unnecessary,
effectively wasting a byte.

- MatR with RSP or R12

8B 44 24 00          mov         eax,dword ptr [rsp]
8B 04 24             mov         eax,dword ptr [rsp]

- MRegSum with base != RBP or R13

46 8D 7C 37 00       lea         r15d,[rdi+r14]
46 8D 3C 37          lea         r15d,[rdi+r14]

- MComplex without offset

8B 4C CA 00          mov         ecx,dword ptr [rdx+rcx*8]
8B 0C CA             mov         ecx,dword ptr [rdx+rcx*8]
2020-01-13 08:43:42 +01:00
Jordan Woyak
d9bd714143 WiimoteEmu: Nunchuk and Classic Controller calibration accuracy improvements. 2020-01-12 09:48:37 -06:00
Stenzek
d8b2be9d06 DolphinQt: Support compiling on ARM64 2020-01-12 15:23:42 +10:00
Jordan Woyak
0aacf3a627 WiimoteEmu: Make the "Total Yaw" setting work again. 2020-01-09 13:11:13 -06:00
Léo Lam
4cc2d97294 Require clang-format 9 and reformat source code
This updates the lint script to require clang-format 9 and reformats
existing source code. Since VS2019 ships with clang-format 9 this
should make auto reformats less painful.

This also updates the clang-format configuration to set
BraceWrapping.AfterCaseLabel to true to ensure consistent brace
style; otherwise clang-format 9+ defaults to putting braces on
the same line as switch case labels.
2020-01-08 22:18:15 +01:00
Scott Mansell
a8c33f4ef6
Fix trailing whitespace 2020-01-07 12:52:05 +13:00
Scott Mansell
21528c3e72
Document the evdev "interesting" heuristic
Was checking over this old code, and saw a comment calling me out for a lack of documentation.

It might be half a decade late, but better late then never.
2020-01-07 12:46:24 +13:00
Tilka
98f645daac
Merge pull request #8158 from Sintendo/jitopts
x64 micro-optimizations
2020-01-06 14:09:43 +01:00
Tilka
f17f03ea3c
Merge pull request #8551 from Sintendo/jit64addx
Jit64: addx optimizations
2020-01-06 13:15:17 +01:00
Tilka
6e18dfb600
Merge pull request #8133 from Sintendo/mov64imm32
x64Emitter: Emit shorter MOVs for 32-bit immediates
2020-01-06 13:12:56 +01:00
Sintendo
12fcbac2a3 Jit64: addx - Emit LEA for register + immediate
Prefer LEA over MOV + ADD when dealing with immediates.

Before:
44 8B EE             mov         r13d,esi
41 83 C5 20          add         r13d,20h

After:
44 8D 6E 20          lea         r13d,[rsi+20h]
2020-01-05 23:39:13 +01:00
Sintendo
8e7b6f4178 Jit64: addx - Prefer ADD over LEA when possible
The old logic would always emit LEA when both sources are in a register
and OE is disabled. However, ADD is still preferable when one of the
sources matches the destination.

Before:
45 8D 6C 35 00       lea         r13d,[r13+rsi]

After:
44 03 EE             add         r13d,esi
2020-01-05 23:23:56 +01:00
Léo Lam
c1f9bfce30 IOS/ES: Add SetUid exception for the Wii U Transfer Tool
The ES sysmodule in IOS62 (v6430) has an exception for the
Wii U Transfer Tool in the SetUid function.

If the active title is the Wii U Transfer Tool, then calling SetUid
is always allowed. (The UID is still checked first, though.)

Fixes https://bugs.dolphin-emu.org/issues/10985
2020-01-05 18:16:54 +01:00
Jordan Woyak
956339df4e Core/WiimoteReal: Make wiimote source type an enum class and add Get/SetWiimoteSource functions. Add connected real Wii Remotes to a pool when a slot is not available. 2020-01-05 10:15:22 -06:00
Léo Lam
f35f4f2bf0
Merge pull request #8541 from jordan-woyak/float-parse-fix
StringUtil: Make TryParse of floats handle comma and dot decimal separators.
2020-01-05 12:12:09 +01:00
Pokechu22
3b5d20e12c Bump state version 2020-01-04 11:43:33 -08:00
Pokechu22
51f8a3606e Return error code to game when using unimplemented commands 2020-01-04 11:43:32 -08:00
Pokechu22
af5f0b20bb Report use of various unimplemented DI commands as game quirks 2020-01-04 11:43:32 -08:00
Pokechu22
f1dc908883 Clarify emulated behavior for ReadBCA 2020-01-04 11:43:32 -08:00
Pokechu22
6c0399103f Handle partitions in /dev/di, not DVDInterface
Partitions are Wii-exclusive, and don't happen at the DVDInterface level in
IOS.  This isn't quite the cleanest fix, but it gets rid of the assumption that
a partition is open on starting the game at least.
2020-01-04 11:43:32 -08:00
Pokechu22
71e8fb278f Return more errors from DTK 2020-01-04 11:43:31 -08:00
Pokechu22
55a88ba2ed Track drive state better, reporting errors if the state is wrong
Also, fix DVDLowStopMotor logging (which was based on the ioctl parameters)
2020-01-04 11:43:31 -08:00
Pokechu22
7d6b9bcb40 Check for error 001 out of bounds reads in DVDThread
All out of bounds reads should return the appropriate DI error, but it also
makes sense to have the error 001 read happen there.
2020-01-04 11:43:30 -08:00
Pokechu22
ef2fc5a49b Split /dev/di commands from DVDInterface
The various ioctls sometimes have different arguments than the DI command
registers, though they generally overlap.  There are also a bunch of ioctls
that don't even normally go into DVDInterface, just returning various data.
Some of the implemented ioctls are new to Dolphin.
2020-01-04 11:43:30 -08:00
Pokechu22
a8ae5fa21a Expose setting DVDInterface errors and split setting into two parts 2020-01-04 11:43:30 -08:00
Pokechu22
3110599559 Increase DIMAR by DILENGTH after a command 2020-01-04 11:43:30 -08:00
Pokechu22
d3aad1d6d5 DIMAR only ignores bits 0-4, not the upper bits
Based on a hardware test on a Wii.  The alignment code was originally added in 743641965a.
2020-01-04 11:43:29 -08:00
Pokechu22
c564d64104 Remove unused drive debug command constants
The corresponding code that used these was removed in 2009 with 93b83f8d65.  Now their only purpose is to generate warnings on osx.

Minimalistic documentation on these commands can be found at http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.7.2 and https://web.archive.org/web/20070328200323/http://tmb.elitedvb.net/dvd-game/index.php/CMDFE.  Those constants only relate to the 0x11 subcommand, which is one of many.  Most can't be properly emulated unless we LLE the drive firmware (in which case, they don't need to be reimplemented).
2020-01-04 11:43:29 -08:00
Pokechu22
84f099cf62 Tidy and eliminate some of the DI register unions 2020-01-04 11:43:26 -08:00
Pokechu22
11bd132650 Implement RTC flag, which is counter-intuitively disc drive related 2020-01-04 11:43:26 -08:00
Pokechu22
77189e74cd Implement Broadway GPIOs
SLOT_LED and the AVE ones are not implemented yet, but the other Broadway ones are.
2020-01-04 11:43:26 -08:00
Pokechu22
a695b05b21 Add support for std::optional to PointerWrap 2020-01-04 11:43:26 -08:00
Jordan Woyak
0e8d4cb6ac StringUtil: Make TryParse of floats handle comma and dot decimal separators. 2020-01-04 07:19:15 -06:00
Léo Lam
ad75215bb0 Fix several warnings
A small, nonexhaustive set of warning fixes. The DiscIO Volume change
is a workaround for a GCC bug [1] that causes returning an unengaged
std::optional to emit annoying -Wmaybe-uninitialized warnings.
This last change alone fixes pages upon pages of warnings since
Volume.h is included from several files.

-Wstringop-truncation is another irrelevant warning for us, but
unfortunately there seems to be no way to disable it without
adding ugly pragmas wherever the warning appears.
2020-01-04 12:11:39 +01:00
Léo Lam
94c5460693
Merge pull request #8546 from jordan-woyak/default-num-mappings
HW: Add ticks to default mappings that are valid numeric literals.
2020-01-04 10:41:45 +01:00
Léo Lam
671defd8b9
Merge pull request #8543 from jordan-woyak/gcode-download-minor-fix
Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated.
2020-01-04 10:18:44 +01:00
Jordan Woyak
2a9a04a1ec HW: Add ticks to default mappings that are valid numeric literals. 2020-01-03 22:08:49 -06:00
Jordan Woyak
b505004d61 Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated. 2020-01-03 20:14:10 -06:00
Jordan Woyak
723115b7b6 WiimoteEmu: Allow Recenter button to adjust the pitch. 2020-01-03 18:08:45 -06:00
Jordan Woyak
72c2be52ed WiimoteEmu: Clean up ComplementaryFilter math. 2020-01-03 16:16:26 -06:00
Jordan Woyak
120c6dc850 DolphinQt: Fix accelerometer indicator math. 2020-01-03 12:34:11 -06:00
Jordan Woyak
540a3ce665 DolphinQt: Use FromQuaternion for a more accurate gyro indicator. 2020-01-02 15:46:18 -06:00
Jordan Woyak
8ab3694f51 Common: Add Matrix33::FromQuaternion. 2020-01-02 15:16:37 -06:00
George Talusan
b1a6cbc3b4 MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina 2020-01-01 23:06:19 -05:00
David Korth
11339d77c6 IsSettingSaveable.cpp: Significant code size reduction.
- Refactor the Config::System::Main check so we check system once,
  then we check for the section.

- Use an std::array<> instead of std::vector<>.

- Use an array of pointers instead of an array of ConfigLocation.
  The latter contains two std::string objects, whereas pointers
  are only 8 bytes (on 64-bit).

Code size comparison: (64-bit Linux, gcc-9.2.0, release build)

   text    data     bss     dec     hex filename
  16136       0      40   16176    3f30 IsSettingSaveable.cpp.o [before]
   3933     720       0    4653    122d IsSettingSaveable.cpp.o [after]
 -12203    +720     -40  -11523   -2d03 Difference
2019-12-29 23:45:02 -05:00
David Korth
f5fe692842 Use pre-increment for iterators instead of post-increment.
Pre-increment is more efficient, since it doesn't have to return the
old iterator.
2019-12-29 23:45:02 -05:00
David Korth
c2dd2e8a2e Use std::istringstream or std::ostringstream instead of std::stringstream where possible.
This removes std::iostream from the inheritance chain, which reduces
overhead slightly.
2019-12-29 23:45:02 -05:00
David Korth
6e549bb668 InputConfig::LoadConfig(): Convert num[] to an array of std::string_view.
NOTE: The explicit std::string() conversions later are needed. Otherwise,
gcc-9.2.0 throws all sorts of errors because it can't find a matching
operator+() function.
2019-12-29 23:45:02 -05:00
David Korth
a23b3d26f4 GLExtensions.cpp: Use arrays of const char *const instead of std::string.
The strings end up being copied, so we might as well initialize the
std::string in the unordered_map directly.
2019-12-29 23:45:02 -05:00
David Korth
05101b251c OGL/Render.cpp, InitDriverInfo(): Use std::string_view to eliminate string copies.
Consolidate the NVIDIA Tegra and non-Tegra checks into one branch.
2019-12-29 23:45:02 -05:00
David Korth
1d7f128693 GetSysMenuVersionString(): Use a char instead of std::string for the region letter.
Append the region letter after determining the version number.
2019-12-29 23:45:02 -05:00
David Korth
9f3b9acad9 PowerPC.cpp: No need to explicitly initialize ppcState.
"ppcState{}" is stored in the .data segment, which means the full ~4 MB
is stored in the executable.

"ppcState" is stored in the .bss segment, which means it only stores a
note that tells it to allocate and zero ~4 MB at runtime.
2019-12-29 23:45:02 -05:00
David Korth
afe2e7de0f VolumeVerifier.cpp: Verify that the string arrays are sorted before using std::binary_sort().
Debug builds only, since this is wrapped in assert().
2019-12-29 23:42:55 -05:00
David Korth
d660aba20f VolumeVerifier.cpp: Use arrays of string_view objects instead of strings.
string_view is a thin wrapper around C strings, so it's more efficient
for constant strings than C++ strings.

The unordered_set<> also adds extra runtime overhead. For small arrays,
a simple linear search works. For larger arrays, std::binary_search()
works better than linear but without the unordered_set<> overhead.

ShouldBeDualLayer(): Removed a duplicate "SK8X52" entry.
2019-12-29 23:42:55 -05:00
degasus
aad8aab698 Jit64: Disable the fast address check if fastmem is disabled.
This was a huge speedup with disabled fastmem, but it still requires the fastmem arena.
So let's disable it for now, even if this commit has a huge performance hit with disabled fastmem.
2019-12-28 13:41:57 +01:00
degasus
d735943aa2 Jit64: Use safe memory helpers for psq_l* without fastmem.
RMEM won't help if there is no fastmem arena, so let's use our memory helpers.
2019-12-28 13:41:57 +01:00
degasus
74cb692591 Jit64: Only activate dcbz fastpath with fastmem.
The code is safe not to create memory errors, but it accesses the fastmem area.
2019-12-28 13:41:57 +01:00
degasus
c6019f9814 PowerPC/Jit: Create fastmem arena on init. 2019-12-28 13:41:57 +01:00
degasus
ccbadf6e72 Core: Refactor fastmem arena construction.
This shall be called by the Jit, not by the emulation start itself.
2019-12-28 13:41:57 +01:00