Commit Graph

26642 Commits

Author SHA1 Message Date
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
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
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
a61dff67da InputCommon: List IMUAccelerometer's Up/Down inputs first for consistency. 2020-01-18 13:56:11 -06:00
8b1051abb9 Update Qt5_DIR path for ARM64 in CMake project 2020-01-18 11:28:42 +00:00
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
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
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
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
d2efad58af Merge pull request #8562 from jordan-woyak/sens-slider
Core/DolphinQt: Fix IR Sensitivity slider.
2020-01-15 00:29:24 +01:00
b416389248 Core/DolphinQt: Fix IR Sensitivity slider. 2020-01-14 17:08:21 -06:00
297b790e4f DiscIO: Add out of bounds checks for blob reading 2020-01-14 18:59:31 +01:00
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
ddba80133a Fix launching DTK games with MIOS 2020-01-13 20:07:59 -08:00
d67c4f34d1 Fix crash when launching gamecube games with MIOS (from the Wii menu) 2020-01-13 19:48:19 -08:00
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
f5d9b78a3c DolphinQt: Properly hide Wii remote extension motion tabs when no extension is selected. 2020-01-13 18:34:04 -06:00
efc1ee8e6a Merge pull request #8537 from degasus/fastmem
Core/HW -> PowerPC/JIT: Fastmem arena construction
2020-01-14 09:38:15 +10:00
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
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
e2d5c92c76 ControllerInterface: Remove and re-add device when combining nodes. 2020-01-13 16:50:58 -06:00
aabe8d2ccd ControllerInterface: Don't consider the empty string a valid unique ID. 2020-01-13 16:50:58 -06:00
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
2b9fa0597a ControllerInterface: Minor DSU client device cleanups. 2020-01-13 16:32:02 -06:00
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
f0534cabc6 ControllerInterface: Exposse DSU client battery level as an input. 2020-01-13 16:29:24 -06:00
48fd27cdab Merge pull request #8451 from rlnilsen/motion-input-nunchuk
Add motion input support to nunchuk
2020-01-13 17:08:03 -05:00
966e1b31ba Merge pull request #8394 from Pokechu22/misc-di-gpio
Various DI improvements
2020-01-13 17:17:24 +01:00
ae6d3be449 Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
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
f82c38e156 X64Emitter: Remove obsolete TODO
TODO was already taken care of in PR #941.
2020-01-13 08:43:42 +01:00
bdfc472751 x64Emitter: Refactor OpArg::WriteRest
Shorter, displacement is now handled in one location.
2020-01-13 08:43:42 +01:00
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
d9bd714143 WiimoteEmu: Nunchuk and Classic Controller calibration accuracy improvements. 2020-01-12 09:48:37 -06:00
d8b2be9d06 DolphinQt: Support compiling on ARM64 2020-01-12 15:23:42 +10:00
0aacf3a627 WiimoteEmu: Make the "Total Yaw" setting work again. 2020-01-09 13:11:13 -06:00
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
a8c33f4ef6 Fix trailing whitespace 2020-01-07 12:52:05 +13:00
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
98f645daac Merge pull request #8158 from Sintendo/jitopts
x64 micro-optimizations
2020-01-06 14:09:43 +01:00
f17f03ea3c Merge pull request #8551 from Sintendo/jit64addx
Jit64: addx optimizations
2020-01-06 13:15:17 +01:00
6e18dfb600 Merge pull request #8133 from Sintendo/mov64imm32
x64Emitter: Emit shorter MOVs for 32-bit immediates
2020-01-06 13:12:56 +01:00
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
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
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
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
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
3b5d20e12c Bump state version 2020-01-04 11:43:33 -08:00
51f8a3606e Return error code to game when using unimplemented commands 2020-01-04 11:43:32 -08:00
af5f0b20bb Report use of various unimplemented DI commands as game quirks 2020-01-04 11:43:32 -08:00