Commit Graph

10533 Commits

Author SHA1 Message Date
Tilka
02f5a7505f
Merge pull request #7821 from jordan-woyak/emu-turntable-effect-dial-fix
WiimoteEmu: Fix turntable effect dial mapping.
2019-02-26 04:22:45 +00:00
Tilka
6ce7f44b8a
Merge pull request #7753 from stenzek/videocommon-all-the-things
Move a significant amount of video backend logic to VideoCommon
2019-02-26 04:21:05 +00:00
Jordan Woyak
4b830ddc26 WiimoteEmu: Fix turntable effect dial mapping. 2019-02-25 15:54:36 -06:00
JosJuice
71e6243c54 TitleDatabase: Don't hardcode HBC IDs that actually are in GameTDB 2019-02-25 19:55:49 +01:00
JosJuice
9df763b4ac TitleDatabase: Don't merge multiple languages into same map
Instead of selecting languages based on the user config at the time
of TitleDatabase creation and merging the different languages into one
map for GC and one map for Wii, have one map for each language, and
have the caller supply the language they want. This makes us not need
the IsGCTitle function, which is inaccurate for IDs that start with D.
2019-02-25 19:55:46 +01:00
JosJuice
8842a0f402 Keep track of GameTDB ID separately from game ID
The difference between Dolphin's game IDs and GameTDB's game IDs
is that GameTDB uses four characters for non-disc titles, whereas
Dolphin uses six characters for all titles.

This fixes:

- TitleDatabase considering Datel discs to be NHL Hitz 2002
- Gecko code downloading not working for discs with IDs starting with P
- Cover downloading mixing up discs with channels (e.g. Mario Kart Wii
  and Mario Kart Channel) and making extra HTTP requests. (Android was
  actually doing a better job at this than DolphinQt!)
2019-02-25 19:54:25 +01:00
Jordan Woyak
d64f29d234 WiimoteEmu: Minor IR Camera behavior accuracy fix. 2019-02-23 16:40:47 -06:00
Jordan Woyak
58f1ff3773 WiimoteEmu: Minor accuracy fixes. 2019-02-20 17:44:55 -06:00
Stenzek
f039149198 Move most backend functionality to VideoCommon 2019-02-19 16:57:54 +10:00
JosJuice
5067e96f37 Minor fixes to translatable strings 2019-02-13 18:54:45 +01:00
Tilka
131f4931fb
Merge pull request #7792 from jordan-woyak/auto-calibration
DolphinQt/ControllerEmu: Add stick calibration "wizard".
2019-02-13 02:13:27 +00:00
Tilka
8d59d1bb11
Merge pull request #7798 from ShFil119/impr/empty
Use empty instead of size
2019-02-13 01:59:43 +00:00
Filip Gawin
49fe9f5db1 Use empty instead of size 2019-02-13 00:03:49 +01:00
Tilka
4d85bb2d18
Merge pull request #7782 from jordan-woyak/wiimote-emu-speaker-pan
WiimoteEmu: Change speaker pan to use "constant power pan law".
2019-02-11 00:20:07 +00:00
Jordan Woyak
3c77b4aa4b WiimoteEmu: Change speaker pan to use "constant power pan law" and change UI setting max value from 127 to 100. 2019-02-10 17:55:11 -06:00
Jordan Woyak
0064f70c8a DolphinQt/ControllerEmu: Replace Input Radius/Shape settings with an input calibration "wizard". 2019-02-10 07:55:47 -06:00
Anthony
f65b3a998c
Merge pull request #7739 from zackhow/multib
Android: Disable backend multithreading and add option to gfx menu
2019-02-03 12:44:00 -08:00
Anthony
eee24cd1ce
Merge pull request #7746 from Techjar/fix-hotkey-conflicts
[RFC] Core/HotkeyManager: Fix default hotkey conflicts
2019-02-03 12:26:14 -08:00
Anthony
4e825beddf
Merge pull request #7757 from jordan-woyak/wiimote-connection-status-checkmarks
WiimoteDevice: Update UI when wiimote connection status changes.
2019-02-03 10:28:08 -08:00
Jordan Woyak
69b617ce76 WiimoteEmu: Remove redundant Matrix library and use the one in Common. 2019-02-03 12:02:02 -06:00
Jordan Woyak
9c1a8891e5 WiimoteEmu: Code cleanups. 2019-02-02 19:40:31 -06:00
Jordan Woyak
3945aa6242 WiimoteEmu: Fix battery level handling and remove old comments. 2019-02-02 19:40:31 -06:00
Jordan Woyak
6c0902ab0a WiimoteEmu: Add logic for enabling/disabling M+ and force it disabled for now. 2019-02-02 19:40:31 -06:00
Jordan Woyak
0d1fbe7bbc WiimoteEmu: Major renaming and cleanup. 2019-02-02 19:40:31 -06:00
Jordan Woyak
b1f350ab1c WiimoteEmu: Cleanups, Kill some now-redundant constants. 2019-02-02 19:40:30 -06:00
Jordan Woyak
6e5847a790 WiimoteEmu: Fix wiimote pan setting from keeping center at half volume. 2019-02-02 19:40:30 -06:00
Jordan Woyak
d3906e548d WiimoteEmu: Cleanup ack handling. Improve accuracy of report handling with unusual values. Eliminated outdated comments. 2019-02-02 19:40:30 -06:00
Jordan Woyak
3a889c35ad WiimoteEmu: Cleanups, Kill more magic numbers and use some enum classes. 2019-02-02 19:40:30 -06:00
Jordan Woyak
86c94b8b22 WiimoteEmu: Motion plus now works half of the time in Wii Sports Resort. 2019-02-02 19:40:30 -06:00
Jordan Woyak
0b4329e077 Implement the rest of the wiimote input reports. 2019-02-02 19:40:30 -06:00
Jordan Woyak
10c2101e72 WiimoteReal: Unbreak. 2019-02-02 19:40:30 -06:00
Jordan Woyak
42b9392784 WiimoteEmu: Cleanups and work towards making motion plus functional. 2019-02-02 19:40:30 -06:00
Jordan Woyak
a25e8cb516 Advance save state version. 2019-02-02 19:40:30 -06:00
Jordan Woyak
a0721b256f WiimoteEmu: Cleanup, kill some magic numbers, and unbreak wiimote speaker pan setting. 2019-02-02 19:39:29 -06:00
Jordan Woyak
372b12c67f WiimoteEmu: Emulated motion plus is detected by game now. 2019-02-02 19:39:29 -06:00
Jordan Woyak
ba936923bd WiimoteEmu: Tweak the i2c bus code to better support motion plus and its passthrough port. 2019-02-02 19:39:29 -06:00
Jordan Woyak
84d32f6645 WiimoteEmu: Fix usage of ReportFeatures in TAS related code. 2019-02-02 19:39:29 -06:00
Jordan Woyak
4dc0aa6f8e WiimoteEmu: Process wiimote read data requests like they are on a real wiimote. It's not a queue. New requests are ignored and input is suppressed while processing a request. This simplifies the save state code greatly. 2019-02-02 19:39:29 -06:00
Jordan Woyak
ec460da36d WiimoteEmu: Add wiimote speaker logic to i2c bus. Temporarily break the "pan" setting. 2019-02-02 19:39:29 -06:00
Jordan Woyak
62b66580c3 WiimoteEmu: Unbreak wiimote extensions. 2019-02-02 19:39:29 -06:00
Jordan Woyak
ebc2e58fa4 WiimoteEmu: Partially emulate i2c bus to more closely simulate the real thing. Transfer most of IR camera logic to the i2c bus. Temporarily break everything else. 2019-02-02 19:39:29 -06:00
Jordan Woyak
6c40c47472 WiimoteEmu: Remove some remnants of hybrid wiimote. 2019-02-02 19:39:28 -06:00
Tilka
cfbc852fb0
Merge pull request #7777 from jordan-woyak/input-rounding
ControllerEmu: Round input floats instead of casting.
2019-02-03 00:56:05 +00:00
Tilka
6ec11c6801
Merge pull request #7742 from jordan-woyak/si-device-change-fix
SI: Device change logic fix.
2019-02-03 00:52:23 +00:00
Jordan Woyak
3bc4968c11 ControllerEmu: Round input floats instead of casting to prevent almost-neutral values from being rounded down. 2019-02-02 15:12:07 -06:00
Tilka
28c0b5338e
Merge pull request #7738 from spycrab/core_warnings
Core: Fix some warnings
2019-02-02 14:13:21 +00:00
Tilka
d55e276d0b
Merge pull request #7763 from jordan-woyak/steering-wheel-ff-fix
HW: SI_Device_GCSteeringWheel: Fix handling of force commands.
2019-02-02 13:12:51 +00:00
Admiral H. Curtiss
fdd19c1b54 GCMemcard: Fix out of bounds access in F-Zero GX checksum calculation. 2019-02-01 17:50:19 +01:00
Tillmann Karras
4090c19e00 GeckoCodeConfig: fix Gecko Code downloading
For some reason the server always redirects once to the same location.
2019-02-01 13:44:58 +00:00
Jordan Woyak
552392e4f6 HW: SI_Device_GCSteeringWheel: Fix handling of force commands. 2019-02-01 06:47:17 -06:00
Jordan Woyak
b0cb100958 SI: Device change logic fix. 2019-02-01 06:43:24 -06:00
JMC47
a129d60a57
Merge pull request #7762 from jordan-woyak/gcadapter-calibration
HW: SI_Device_GCAdapter: Restore calibration behavior for real gamecube controllers.
2019-01-31 23:47:09 -05:00
Tillmann Karras
45aeb86766 Fix -Wmissing-declarations warning 2019-02-01 03:06:01 +00:00
Jordan Woyak
cb9896618f HW: SI_Device_GCAdapter: Restore calibration behavior for real gamecube controllers. 2019-01-31 08:38:25 -06:00
Jordan Woyak
c54cc3fa38 HW: SI_Device_GCController: Minor cleanup. Remove a member/state variable that should just be a local variable. 2019-01-31 06:30:06 -06:00
Jordan Woyak
159d2b1cc3 HW/Wiimote: Don't reconnect wiimotes on ChangeWiimoteSource when the source hasn't actually changed. 2019-01-29 10:01:35 -06:00
Jordan Woyak
4bc576472c WiimoteDevice: Update UI when wiimote connection status changes to keep check marks in the menu bar accurate. 2019-01-29 07:57:51 -06:00
JMC47
0e1669e1c7
Merge pull request #7728 from jordan-woyak/pad-perfect-calib
SI_DeviceGCController: Calibrate to perfect neutral instead of initial input state.
2019-01-28 21:11:46 -05:00
zackhow
831ab64e1c Android: Don't grab wiimote report if size is < 1
Fixes crash when using official wiimotes with the dolphin bar.
2019-01-27 16:43:19 -05:00
Techjar
d70ea9e4ec Core/HotkeyManager: Fix default hotkey conflicts 2019-01-27 06:20:01 -05:00
zackhow
8a1eb34c38 Android: Default backendMultithreading to false on android 2019-01-25 19:22:07 -05:00
spycrab
0691971d82 Core: Fix some warnings 2019-01-25 21:21:22 +01:00
Jordan Woyak
3cd3e84486 SI_DeviceGCController: Calibrate pad origin on boot to perfect neutral values instead of initial input state. 2019-01-22 15:33:04 -06:00
Cody Wilson
00f786384d
Update GeckoCodes code download to use https
The WiiRD codes respository at https://geckocodes.org has started using HTTPS, and 301 Redirecting traffic from HTTP to HTTPS.  The HTTP client does not appear to be able to handle a 301 Redirect and instead fails when attempting to download codes. This pull request is purely a string replacement to set the URL as HTTPS.
2019-01-20 11:26:29 -05:00
Léo Lam
c7373701cc
Merge pull request #7580 from Techjar/netplay-padmapping-type
NetPlay: Remove PadMapping type
2019-01-16 21:57:38 +01:00
Léo Lam
fd3ef7ebc5
Merge pull request #7616 from AdmiralCurtiss/memcard-cleanup
Clean up GCMemcard a bit.
2019-01-16 21:56:40 +01:00
Léo Lam
a8bc6f9899
Merge pull request #7693 from jordan-woyak/hotplug-callback-fix
ControllerInterface: Hotplug callback fixes.
2019-01-16 21:00:48 +01:00
JMC47
1d3e3de44b
Merge pull request #7629 from JosJuice/auto-disc-change
Automatic disc change for 2-disc games
2019-01-15 13:01:36 -05:00
Jordan Woyak
b425f86121 ControllerInterface: Allow hotplug callbacks to be unregistered and don't reload the entire config from the ini file on hotplug, just update the control references. This should fix a crash on shutdown on Android. 2019-01-10 18:32:16 -06:00
Anthony
3da06970d9
Merge pull request #7605 from zackhow/jitarmconfigs
Android: Add Jit debug options to menu.
2019-01-07 13:50:57 -08:00
Anthony
c73adf8d8e
Merge pull request #7656 from JMC47/DanceMatFix
Fix Emulated Dance Mat
2019-01-07 13:48:50 -08:00
Admiral H. Curtiss
04bcc64e82 GCMemcard: Update formatting of memcard field comments in header. 2019-01-06 14:40:38 +01:00
Admiral H. Curtiss
e6acbf7cbe GCMemcard: 'Broken File000' commented out code can't work anymore, but leave a comment about it. 2019-01-06 14:18:00 +01:00
Admiral H. Curtiss
41767daabc GCMemcard: Remove obsolete commented out code, this is handled via InitActiveDirBat() and related. 2019-01-06 14:12:59 +01:00
Admiral H. Curtiss
111f0b38e0 GCMemcard: Update panic alerts and comments to refer to 1st/2nd dir/BAT blocks. 2019-01-06 14:12:59 +01:00
JMC47
0ca9accd8b
Merge pull request #7640 from jordan-woyak/input-fixes
ControllerInterface: Output/Rumble fixes
2019-01-05 17:16:35 -05:00
JMC47
d75e9b2d5d
Merge pull request #7677 from Techjar/netplay-peer-init-fix
NetPlay: Fix server peer initialization hang
2019-01-05 15:10:39 -05:00
JMC47
1cd5debecf
Merge pull request #7585 from Techjar/netplay-wiimote-extension
NetPlay: Sync Wiimote extension
2019-01-05 05:57:36 -05:00
JosJuice
0c622929ba Add M3U file support for automatic disc switching 2019-01-04 09:24:42 +01:00
JosJuice
352ac91a1c Add a delay before automatically switching discs
Some games don't behave as expected if we eject the disc as soon as
we receive the DVDLowStopMotor command. For instance, Baten Kaitos
never shows the prompt to switch discs or the "Reading disc..." text
(but works correctly other than that).
2019-01-04 09:24:41 +01:00
JosJuice
b608e80d8e Don't do automatic disc switching when running e.g. the Wii Menu
We only want automatic disc switching to happen when the game actually
is running, but software like the Wii Menu also uses DVDLowStopMotor.
2019-01-04 09:24:41 +01:00
JosJuice
bd665aad5d Automatic disc change for 2-disc games 2019-01-04 09:24:38 +01:00
JMC47
f8586bb83c Fix Emulated Dance Mat
I have no idea how it got so broken, but this makes it so both the
Active Life and DDR Mario/Wii games can be fully configured.
2018-12-28 17:47:49 -05:00
Jordan Woyak
2765475e7b HW: DK Bongos actual fix 2018-12-28 15:15:29 -06:00
Mat M
dd1fc70d70
Merge pull request #7644 from jordan-woyak/dk-bongos-fix
HW: DK Bongos clap fix and cleanup
2018-12-28 06:41:10 -05:00
Mat M
2d379446b5
Merge pull request #7642 from MerryMage/fprf-whole
EmuCodeBlock: Fix bug in SetFPRF: Should only consider lower double
2018-12-28 06:37:43 -05:00
Mat M
b7db1f020b
Merge pull request #7624 from lioncash/paired-single
PowerPC: Remove separate macros for paired singles
2018-12-28 06:32:45 -05:00
Mat M
8c9f553734
Merge pull request #7620 from lioncash/paired
Interpreter: Handle HID2.PSE and HID2.LSQE bits
2018-12-28 06:30:37 -05:00
Mat M
de03019c77
Merge pull request #7628 from jordan-woyak/stick-shapes
ControllerEmu: Add ability to reshape analog sticks. Make the mapping indicator pretty.
2018-12-28 06:18:56 -05:00
MerryMage
77e9aa48bc Jit64: Remove Jitx86Base class 2018-12-28 09:15:26 +00:00
Jordan Woyak
ceb28a2302 Add ability to reshape analog sticks from square/circle to octagon and make the analog stick mapping indicator pretty. 2018-12-27 18:31:46 -06:00
Tilka
bfb9b1aca5
Merge pull request #7602 from CrystalGamma/stop-g_jit
stop using g_jit outside of JitInterface
2018-12-27 23:12:14 +01:00
Tilka
89eedc8c1b
Merge pull request #7625 from jordan-woyak/emu-shake-fix
WiimoteEmu: Shaking emulation fix
2018-12-27 22:32:50 +01:00
MerryMage
26bc38d25d Jit64: Fix instruction breakpoints
Broken by 5236dc3.
2018-12-27 20:11:26 +00:00
JosJuice
5b97ea8b40
Merge pull request #7606 from booto/dtk_pos_align
DTK: Report position in increments of 0x8000
2018-12-26 10:22:40 +01:00
JosJuice
2ff1bfdc85
Merge pull request #7646 from leoetlino/temporary-to-permanent
WiiUtils: Clear IPL.TID when re-installing a title manually
2018-12-25 23:46:47 +01:00
Léo Lam
0aef6bc834 WiiUtils: Clear IPL.TID when re-installing a title manually
If the user tries to permanently install a title that has already been
imported, and if that title is currently marked as a temporary title
in IPL.TID, that flag should be cleared.
2018-12-25 20:49:11 +01:00
Jordan Woyak
43f5d4973e Fix wiimote/nunchuk acceleration value clamping (off-by-one).
Add in shaking acceleration rather than overwritting it so it doesn't look like the device is in free-fall. This fixes shaking in "Batman: TBATB". It appears the game only detects shaking along the z-axis and expects gravity to exist.
2018-12-25 12:10:31 -06:00
Jordan Woyak
56256d8624 HW: DK Bongos clap fix and cleanup 2018-12-25 11:24:09 -06:00
Lioncash
244d083f0e PowerPC: Remove separate macros for paired singles
Previously, PowerPC.h had four macros in it like so:

\#define rPS0(i) (*(double*)(&PowerPC::ppcState.ps[i][0]))
\#define rPS1(i) (*(double*)(&PowerPC::ppcState.ps[i][1]))

\#define riPS0(i) (*(u64*)(&PowerPC::ppcState.ps[i][0]))
\#define riPS1(i) (*(u64*)(&PowerPC::ppcState.ps[i][1]))

Casting between object representations like this is undefined behavior.
Given this is used heavily with the interpreter (that is, the most
accurate, but slowest CPU backend), we don't exactly want to allow
undefined behavior to creep into it.

Instead, this adds a helper struct for operating with the paired singles,
and replaces the four macros with a single macro for accessing the
paired-singles/floating-point registers.

This way, it's left up to the caller to explicitly decide how it wants to interpret
the data (and makes it more obvious where different interpretations of
the same data are occurring at, as there'll be a call to one of the
[x]AsDouble() functions).
2018-12-25 10:35:09 -05:00
JosJuice
ca2a2c98f2
Merge pull request #7627 from Techjar/netplay-disable-bt-passthrough
Core/BootManager: Disable bluetooth passthrough when booting NetPlay
2018-12-25 15:48:08 +01:00
JosJuice
08ae6d7706
Merge pull request #7525 from JosJuice/nand-title-region
Accurate region detection for NAND titles
2018-12-25 15:36:00 +01:00
MerryMage
0deed2a5af EmuCodeBlock: Fix bug in SetFPRF: Should only consider lower double 2018-12-24 19:02:43 +00:00
Markus Wick
e7b53540d8
Merge pull request #7634 from MerryMage/downcount-on-exit
Jit64: Check downcount at block exit, not block entry
2018-12-23 19:34:12 +01:00
MerryMage
5236dc31a6 Jit64: Check downcount at block exit, not block entry 2018-12-23 18:03:29 +00:00
Markus Wick
54f37c3bae
Merge pull request #7631 from MerryMage/crXXX-AeqB
Jit_SystemRegisters: Special-case crXXX for CRBA == CRBB
2018-12-23 17:55:09 +01:00
degasus
64378c90da JitArm64: Fix RC calculation of srawix.
Seems like it was missed from the early implementation.
2018-12-22 17:31:14 +01:00
Jordan Woyak
3a145aeae4 ResetRumble on emu pause/stop regardless of presence of DInput/Xinput as that's not relevant. All the backends would like to stop rumbling. 2018-12-22 07:31:36 -06:00
zackhow
233b00fb7e ConfigManager: add save/load for Jit debug options 2018-12-21 15:06:37 -05:00
MerryMage
174d2b0230 crXXX: Avoid loading twice when CRBA == CRBB 2018-12-21 11:33:18 +00:00
MerryMage
07c146e7e2 crXXX: Remove unnecessary CRBA == CRBD constraint for crclr and crset 2018-12-21 11:20:06 +00:00
Techjar
cf8b730c61 Core/BootManager: Disable bluetooth passthrough when booting NetPlay
Bluetooth passthrough does not and never will work on NetPlay, so we'll
just force the use of emulated bluetooth when booting in NetPlay.
2018-12-17 18:22:13 -05:00
Jordan Woyak
79eb065cf3 Reduce emulated shaking frequency to 6hz. (something more humanly possible) (was ~13hz) 2018-12-15 10:36:22 -06:00
Jordan Woyak
a8a6bdcdd2 Compute emulated classic controller calibration data instead of having hardcoded values. 2018-12-15 10:27:06 -06:00
Jordan Woyak
6848812a31 Produce emulated nunchuk calibration data. 2018-12-15 10:27:06 -06:00
CrystalGamma
2f490e44fb stop using g_jit outside of JitInterface
Replace g_jit in x86-64 ASM routines code by m_jit member reference
2018-12-15 01:58:58 +01:00
Lioncash
52cae18b01 Interpreter: Handle paired-single HID2.PSE and HID2.LSQE bits
These bits enable or disable paired-single execution based on how
they're set. If PSE isn't set, then all paired-single instructions are
illegal. If PSE is set, but LSQE isn't set, then psq_l, psq_lu, psq_st
and psq_stu are illegal to execute.

Also thanks go out to my roommate @Veegie for letting me use his Wii as
a blasting ground for tests, since mine isn't on hand right now. It only
caught on fire twice and only burned down half of the house through the
process; what a team player.
2018-12-13 22:48:05 -05:00
Lioncash
c87a2f57b4 Interpreter_SystemRegisters: Handle reserved/read-only bits for HID2 in mtspr 2018-12-13 11:39:40 -05:00
Admiral H. Curtiss
fa6782f841 GCMemcard: Required declaration before C++17. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
36d84c6959 GCMemcard: Slightly nicer definition of UNINITIALIZED_GAMECODE. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
ca2c7679df GCMemcard: Rewrite DEntry_IconFmt() and DEntry_AnimSpeed() to make more sense. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
2351a60567 GCMemcard: Let GetDEntry() return std::optional<DEntry>. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
860e003b0c GCMemcard: Remove needless second definition of DENTRY_SIZE. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
3d77a43e67 GCMemcard: Use std::array for GCMBlock.m_block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
ceb9cb53c6 GCMemcard: Rename GCMBlock.block to m_block to match naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
fc70b60d8b GCMemcard: Access active directory/BAT via methods instead of pointers. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
7ff65db3b2 GCMemcard: As far as I can tell, the directory and BAT blocks aren't really main and backup, but just two blocks that store data are written to alternately. So store them as an std::array of 2 blocks instead of an explicit 'backup' block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
0aaf24b9cc GCMemcard: Rename GCMemcard variables to match our naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
4d4b5442bd GCMemcard: Use std::array and BigEndianValue for BlockAlloc.m_map. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
eb6cc3dbab GCMemcard: Use BigEndianValue for BlockAlloc.m_last_allocated_block. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
d3b61c3ff0 GCMemcard: Use BigEndianValue for BlockAlloc.m_free_blocks. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
88bdab6fe6 GCMemcard: Use BigEndianValue for BlockAlloc.m_update_counter. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
0f776fb091 GCMemcard: Use BigEndianValue for Directory.m_update_counter. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
2d77096d63 GCMemcard: Use std::array for Directory's members. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
f8488f4561 GCMemcard: Use std::array for DEntry.m_unused_2. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
4175fdf28d GCMemcard: Use std::array for DEntry.m_makercode. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
deadec608e GCMemcard: Use std::array for DEntry.m_gamecode. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
0c638ad858 GCMemcard: Use std::array for DEntry.m_filename. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
443729d2c3 GCMemcard: Use BigEndianValue for DEntry.m_comments_address. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
8a920dac93 GCMemcard: Use BigEndianValue for DEntry.m_block_count. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
675a549628 GCMemcard: Use BigEndianValue for DEntry.m_first_block. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
929fd2b41d GCMemcard: Use BigEndianValue for DEntry.m_animation_speed. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
c3e9f53480 GCMemcard: Use BigEndianValue for DEntry.m_icon_format. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
65f6250faa GCMemcard: Use BigEndianValue for DEntry.m_image_offset. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
1d25e249e8 GCMemcard: Use BigEndianValue for DEntry.m_modification_time. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
2f1ff80dd6 GCMemcard: Use std::array for Header members instead of raw C arrays. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
256d336219 GCMemcard: Use BigEndianValue for Header.m_encoding. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
8eabcbf294 GCMemcard: Use BigEndianValue for Header.m_size_mb. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
bfbfcc72a2 GCMemcard: Use BigEndianValue for Header.m_device_id. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
b3ce882109 GCMemcard: Use BigEndianValue for Header.m_sram_language. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
905a16e7e7 GCMemcard: Use BigEndianValue for Header.m_format_time. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
9f03c2f358 GCMemcard: Rename BlockAlloc variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
17208f4c89 GCMemcard: Rename Directory variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
15f89d3e6f GCMemcard: Rename DEntry variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
c419dac1d8 GCMemcard: Rename Header variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss
4b1d891378 GCMemcard: Add a few static asserts for sizes of memory card structures. 2018-12-09 22:28:55 +01:00
Techjar
2e19efa8d5 NetPlay: Sync Wiimote extension
Small addition of NetPlay code in Core.cpp was needed to set the
extensions at the right time, as init would override them otherwise.
This solution is more elegant than modifying the user's INI files on
game start.
2018-12-05 16:36:44 -05:00
Pierre Bourdon
2c57e709d0
Merge pull request #7603 from jordan-woyak/fs-open-file-fix
Present an error message when failing to open a file that should exist.
2018-12-04 08:49:21 +01:00
booto
1ab390c15f DTK: Report position in increments of 0x8000 2018-12-04 00:16:46 -05:00
Jordan Woyak
122ce28786 Present an error message when failing to open a file that should exist.
This could happen with savestate loads, permission issues, or use by other processes.
Prior to this Dolphin assumed any existing file could be opened and crashes from invalid variant access.
Failing to open a file during savestate load will likely still crash but at least the user will know why.
2018-12-03 19:07:42 -06:00
Pierre Bourdon
f5e9135912
Merge pull request #7598 from sepalani/wfsi
WFSI: Fix Dragon Quest X (all-in-one, v2, v3) installers
2018-12-03 02:39:47 +01:00
Sepalani
077597b028 VersionInfo: Replace IOS59 v7021 with v9249 2018-12-01 22:29:39 +04:00
Sepalani
5bb7cd251e WFSI: Handle PATCH_TYPE_2 properly in IOCTL_WFSI_FINALIZE_TITLE_INSTALL 2018-12-01 22:28:58 +04:00
Sepalani
f351280061 WFSI: Implement IOCTL_WFSI_CHANGE_TITLE 2018-12-01 22:26:47 +04:00
Pierre Bourdon
754d934a18
Merge pull request #7596 from Techjar/netplay-fix-force-stop
NetPlay: Allow force stopping
2018-11-30 21:30:04 +01:00
Connor McLaughlin
6388992f62
Merge pull request #7039 from stenzek/moltenvk
Vulkan: macOS support via MoltenVK
2018-11-30 21:55:30 +10:00
Techjar
baecc500e8 Core: Notify state change callback about stopping state 2018-11-30 01:20:22 -05:00
Pierre Bourdon
d9cacf6f5a
Merge pull request #7572 from delroth/analytics-quirks
Analytics: add simple framework for game quirks reporting
2018-11-30 05:22:45 +01:00
Techjar
5c81285b91 NetPlay: Fix server peer initialization hang
The implementation of peer initialization would hang if the initial
packet was never received. This fixes that issue by deferring the
initialization to the packet receive loop.
2018-11-22 03:15:49 -05:00
Pierre Bourdon
8d20a173f0
Merge pull request #7579 from AdmiralCurtiss/next-free-block-fix
GCMemcard: Fix mixed memcard-based and bat-based indices in definition and usage of NextFreeBlock().
2018-11-22 06:54:52 +01:00
Pierre Bourdon
0c6d677233
Merge pull request #7582 from AdmiralCurtiss/memcard-delete-wrong-dir
GCMemcard: Fix incorrect directory block being accessed in RemoveFile().
2018-11-22 06:43:25 +01:00
Pierre Bourdon
1805f51d79
Merge pull request #7446 from Techjar/wii-save-full-sync
NetPlay: Add full Wii save sync
2018-11-21 00:22:50 +01:00
Admiral H. Curtiss
431e6c42e1 GCMemcard: Fix incorrect directory block being accessed in RemoveFile().
When deleting files, block index data was always fetched from the first copy of the directory listing rather than the currently active one.
2018-11-21 00:15:58 +01:00
Admiral H. Curtiss
353e289fbf GCMemcard: Fix mixed memcard-based and bat-based indices in definition and usage of NextFreeBlock(). 2018-11-19 20:40:18 +01:00
JosJuice
46fe0669a5 Minor fixes to netplay sync strings 2018-11-19 19:54:55 +01:00
Techjar
b06b7e5686 NetPlay: Add full Wii save sync
This adds the ability to sync all Wii saves, instead of only the
selected game. Useful for cases like launching a game though GeckoOS.
2018-11-19 06:37:09 -05:00
Techjar
f4eb4fab08 HW/WiiSave: Fix reversed condition in WriteFiles
This didn't make any sense, as it would only attempt to create the directory if it already existed, and would simply fail if it didn't exist.
2018-11-19 06:37:09 -05:00
Techjar
6730748309 NetPlay: Use chunked data transfer for save sync 2018-11-19 06:37:09 -05:00
Techjar
d94922002b NetPlay: Implement chunked data transfer
This sends arbitrary packets in chunks to be reassembled at the other
end, allowing large data transfers to be speed-limited and interleaved
with other packets being sent. It also enables tracking the progress of
large data transfers.
2018-11-19 06:37:09 -05:00
Techjar
529796bd59 NetPlay: Remove PadMapping type
Its usage was inconsistent, confusing, and buggy, so I opted to just
remove it entirely. It has been replaced with PadIndex for the
appropriate instances (mainly networking), and inappropriate usages
(where it was really just a player ID) have been replaced with the
PlayerId type. The definition of "no mapping" has been changed from -1
to 0 to match the defintion of "no player", as -1 (255 unsigned) is
actually a valid player ID.

The bugs never manifested because it only occurs with a full lobby of
255 players, at which point the last player's ID collides with the "no
mapping" definition and some undefined behavior occurs. Nevertheless, I
thought it best to fix it anyways as the usage of PadMapping was
confusing.
2018-11-19 05:45:32 -05:00
Pierre Bourdon
e6b2758ab4
Merge pull request #7477 from Zexaron/ext-minizip
Externals: Add a stripped down version of minizip
2018-11-17 22:23:02 +01:00
Léo Lam
c56516502d
Merge pull request #7440 from JosJuice/wii-menu-1.0-region
Never return Unknown from SConfig::GetFallbackRegion
2018-11-17 21:18:38 +01:00
Pierre Bourdon
ef562ec2f1 Analytics: add simple framework for game quirks reporting
And use it for reporting games that rely on ICache emulation to some
degree. We know of a few but it would be interesting to get a more
exhaustive list from crowdsourcing.
2018-11-15 03:32:49 +01:00
Pierre Bourdon
6b7a1ca6d1
Merge pull request #7535 from UnclePunch/synccodes
Netplay: Sync AR and gecko codes with clients
2018-11-13 22:39:25 +01:00
Pierre Bourdon
41333fa971
Merge pull request #7564 from Techjar/netplay-sync-wii-shutdown
NetPlay: Sync power button event
2018-11-13 22:33:59 +01:00
Techjar
ef89e4e70c NetPlay: Sync power button event
This fixes the deadlock on shutdown when Wii Remotes are in use.
2018-11-12 22:32:18 -05:00
Techjar
caf2fc3c3e NetPlay: Sync Defer EFB Copies setting 2018-11-12 20:45:12 -05:00
Pierre Bourdon
97e3200f57
Merge pull request #7519 from stenzek/controller-window
Core: Switch controller interface to render surface on booting
2018-11-12 17:26:03 +01:00
Pierre Bourdon
a9f7df5b15 SystemTimers: fix a 1-in-1000 crash happening in throttler performance 2018-11-10 20:50:17 +01:00
MerryMage
df08a77812 Jit_LoadStore: Ra needs to be ReadWrite when writeback is required
This was an erronous change in 534db3b, Ra was previously loaded but was changed to not being loaded.
Why is loading necessary? Loading is necessary because when a memory exception occurs, the current
register values are flushed. This occurs before a new value is loaded into Ra, so the previous value
is required in Ra.
2018-11-10 10:57:15 +00:00
JosJuice
0e1cca54da
Merge pull request #7555 from Techjar/config-delcaration-unused
Core/Config: Remove unused NETPLAY_SELECTED_HOST_GAME declaration
2018-11-09 08:07:21 +01:00
Pierre Bourdon
61b9ef33ab
Merge pull request #7492 from MerryMage/regcache2
JitRegCache: Refactor register cache
2018-11-09 04:45:47 +01:00
Techjar
4fd2a25253 Core/Config: Remove unused NETPLAY_SELECTED_HOST_GAME declaration 2018-11-08 22:39:42 -05:00
Pierre Bourdon
162e34ad22
Merge pull request #7534 from Techjar/fix-netplay-gamelist-saving
NetPlay: Fix saving host game selection
2018-11-09 04:28:55 +01:00
Stenzek
c7a2b1572b CMake: Build Vulkan backend on macOS 2018-11-07 05:12:20 -08:00
Stenzek
487ea5ab36 VideoBackend: Add a virtual PrepareWindow function
Executes backend-specific commands on the main thread.
2018-11-07 05:12:20 -08:00
Techjar
dfa4395ba0 Core/Config: Fix memcard path not being saved 2018-11-07 04:29:44 -05:00
Stenzek
a45f977d26 Analytics: Add deferred EFB copies setting to graphics settings 2018-11-07 16:25:01 +10:00
Stenzek
8e2c063d62 TextureCache: Implement deferred/batched EFB copies 2018-11-07 16:25:01 +10:00
JosJuice
20b8c24847 Fix first DTK track not playing after booting with IPL
DVDLowAudioBufferConfig doesn't start a DTK stream, it just tells the
drive that the game is allowed to use DTK. At least if I'm not mistaken.
2018-11-01 21:06:11 +01:00
Vin Bertinelli
469f29350f Netplay: Sync codes
Adds a tickbox to the server's window to syncronize codes. Codes
are temporarily sent to each client and are used for the duration of the
session.

Saves the "sync codes" tickbox as per PR Netplay: Properly save hosting
settings #7483
2018-10-29 23:00:51 +01:00
Techjar
203ecb534d NetPlay: Fix saving host game selection 2018-10-29 17:01:30 -04:00
Stenzek
52828901ef Core: Switch controller interface to render widget on booting
Previously, the Qt frontend would initialize the controller
interface on starting, resulting in the cursor position being
relative to the main window, instead of the render window.
2018-10-29 11:46:06 +10:00
Stenzek
a7f334dc2a ControllerInterface: Don't crash on non-X11 QPA 2018-10-29 11:46:06 +10:00
Pierre Bourdon
9095233d21
Merge pull request #7483 from Zexaron/netplay_save-host-settings
Netplay: Properly save hosting settings
2018-10-29 01:44:41 +01:00
Pierre Bourdon
53a45e5c28
Merge pull request #7445 from Techjar/improve-sfmlhelper
Improve SFMLHelper
2018-10-28 23:53:59 +01:00
MerryMage
342067abfa JitRegCache: Remove old interface 2018-10-28 17:57:46 +00:00
MerryMage
08c41090b2 JitRegCache: Add RegistersInUse 2018-10-28 17:57:46 +00:00
MerryMage
096392f295 JitRegCache: Add PreloadRegisters function 2018-10-28 17:57:46 +00:00
MerryMage
e699b6b283 Jit: Remove OpArg variant of ComputeRC 2018-10-28 17:57:46 +00:00
MerryMage
7d7316c90f Jit_SystemRegisters: mffsx 2018-10-28 17:57:46 +00:00
MerryMage
62484141f2 Jit_SystemRegisters: mtfsfx 2018-10-28 17:57:46 +00:00
MerryMage
192f8ba6f1 Jit_Paired: ps_res 2018-10-28 17:57:46 +00:00
MerryMage
66d9349643 Jit_Paired: ps_rsqrte 2018-10-28 17:57:45 +00:00
MerryMage
3fc3a55a9a Jit_Paired: mergeXX 2018-10-28 17:57:45 +00:00
MerryMage
cf5823c146 Jit_Paired: ps_muls 2018-10-28 17:57:45 +00:00
MerryMage
1550729688 Jit_Paired: ps_sum 2018-10-28 17:57:45 +00:00
MerryMage
be8fec6244 Jit_Paired: ps_mr 2018-10-28 17:57:45 +00:00
MerryMage
96b86a9bc4 Jit_FloatingPoint: HandleNaNs 2018-10-28 17:57:45 +00:00
MerryMage
0a96da578e Jit_FloatingPoint: fresx 2018-10-28 17:57:45 +00:00
MerryMage
e812a62879 Jit_FloatingPoint: frsqrtex 2018-10-28 17:57:45 +00:00
MerryMage
68bbd56c01 Jit_FloatingPoint: frspx 2018-10-28 17:57:45 +00:00
MerryMage
cc77e2f3ef Jit_FloatingPoint: fctiwx 2018-10-28 17:57:45 +00:00
MerryMage
457327cbc4 Jit_FloatingPoint: FloatCompare 2018-10-28 17:57:45 +00:00
MerryMage
55c21a15a2 Jit_FloatingPoint: fmrx 2018-10-28 17:57:45 +00:00
MerryMage
fecbf091e5 Jit_FloatingPoint: fselx 2018-10-28 17:57:45 +00:00
MerryMage
d62ca40496 Jit_FloatingPoint: fsign 2018-10-28 17:57:45 +00:00
MerryMage
537eeb7ebf Jit_FloatingPoint: fmaddXX 2018-10-28 17:57:45 +00:00
MerryMage
a26c9c4b74 Jit_FloatingPoint: fp_arith 2018-10-28 17:57:45 +00:00
MerryMage
2337e089bf Jit_SystemRegisters: mtspr 2018-10-28 17:57:45 +00:00
MerryMage
d87436c57d Jit_LoadStorePaired: psq_lXX 2018-10-28 17:57:45 +00:00
MerryMage
0b29b5cb83 Jit_LoadStorePaired: psq_stXX 2018-10-28 17:57:45 +00:00
MerryMage
459f977483 Jit_LoadStoreFloating: stfiwx 2018-10-28 17:57:45 +00:00
MerryMage
dcfe955087 Jit_LoadStoreFloating: stfXXX 2018-10-28 17:57:45 +00:00
MerryMage
f564da7233 Jit_LoadStoreFloating: lfXXX 2018-10-28 17:57:45 +00:00
MerryMage
36790ad3ad Jit_SystemRegisters: mtcrf 2018-10-28 17:57:45 +00:00
MerryMage
d8b2bf785a Jit_SystemRegisters: mfcr 2018-10-28 17:57:45 +00:00
MerryMage
6ff8f9e991 Jit_SystemRegisters: mfmsr 2018-10-28 17:57:45 +00:00
MerryMage
5fa6df8c1e Jit_SystemRegisters: mtmsr 2018-10-28 17:57:45 +00:00
MerryMage
1d867493d9 Jit_SystemRegisters: mfspr 2018-10-28 17:57:45 +00:00
MerryMage
9438ea0ef5 Jit_LoadStore: stmw 2018-10-28 17:57:45 +00:00
MerryMage
98cf0b3286 Jit_LoadStore: lmw 2018-10-28 17:57:45 +00:00
MerryMage
c6b9712ac4 Jit_LoadStore: stXx 2018-10-28 17:57:44 +00:00
MerryMage
90cef22d57 Jit_LoadStore: stX 2018-10-28 17:57:44 +00:00
MerryMage
4a2efc8f5e Jit_LoadStore: dcbz 2018-10-28 17:57:44 +00:00
MerryMage
0e501e5c36 Jit_LoadStore: dcbx 2018-10-28 17:57:44 +00:00
MerryMage
534db3b2ed Jit_LoadStore: lXXx 2018-10-28 17:57:44 +00:00
MerryMage
00d65f7a69 Jit: memcheck 2018-10-28 17:57:44 +00:00
MerryMage
c896d41c37 DoJit 2018-10-28 17:57:44 +00:00
MerryMage
4443b36326 Jit_Branch: bclrx 2018-10-28 17:57:44 +00:00
MerryMage
0cd85bbce7 Jit_Branch: bcctrx 2018-10-28 17:57:44 +00:00
MerryMage
453417ad8c Jit_Branch: bcx 2018-10-28 17:57:44 +00:00
MerryMage
256e234949 Jit_Integer: DoMergedBranchCondition 2018-10-28 17:57:44 +00:00
MerryMage
0d3393b306 Jit_Integer: rlwimix 2018-10-28 17:57:44 +00:00
MerryMage
b866b5bdd9 Jit_Integer: reg_imm 2018-10-28 17:57:44 +00:00
MerryMage
ace2ed27ac Jit_Integer: DoMergedBranchImmediate 2018-10-28 17:57:44 +00:00
MerryMage
88e5d0d8b1 Jit_Integer: cmpXX 2018-10-28 17:57:44 +00:00
MerryMage
b256286690 Jit_Integer: boolX 2018-10-28 17:57:44 +00:00
MerryMage
b7a4296bec Jit_Integer: extsXx 2018-10-28 17:57:44 +00:00
MerryMage
c380764ed0 Jit_Integer: twX 2018-10-28 17:57:44 +00:00
MerryMage
5621907283 Jit_Integer: cntlzwx 2018-10-28 17:57:44 +00:00
MerryMage
31bd9b5cd0 Jit_Integer: srawix 2018-10-28 17:57:44 +00:00
MerryMage
817fddf734 Jit_Integer: srawx 2018-10-28 17:57:44 +00:00
MerryMage
32572dd639 Jit_Integer: slwx 2018-10-28 17:57:44 +00:00
MerryMage
22600b33ee Jit_Integer: srwx 2018-10-28 17:57:44 +00:00
MerryMage
4a97f31aa2 Jit_Integer: negx 2018-10-28 17:57:44 +00:00
MerryMage
42614ede16 Jit_Integer: rlwnmx 2018-10-28 17:57:44 +00:00
MerryMage
d4e2acc9cd Jit_Integer: rlwinmx 2018-10-28 17:57:44 +00:00
MerryMage
bde5df03a3 Jit_Integer: arithcx 2018-10-28 17:57:44 +00:00
MerryMage
6ce718b920 Jit_Integer: arithXex 2018-10-28 17:57:44 +00:00
MerryMage
9bf75a0f31 Jit_Integer: addx 2018-10-28 17:57:44 +00:00
MerryMage
50e7b97406 Jit_Integer: divwx 2018-10-28 17:57:44 +00:00
MerryMage
f945457915 Jit_Integer: divwux 2018-10-28 17:57:44 +00:00
MerryMage
2652d4dfdb Jit_Integer: mulhwXx 2018-10-28 17:57:44 +00:00
MerryMage
24aadd933e Jit_Integer: mullwx 2018-10-28 17:57:44 +00:00
MerryMage
02deaab6ee Jit_Integer: mulli 2018-10-28 17:57:44 +00:00
MerryMage
497ac5789d Jit_Integer: subfx 2018-10-28 17:57:44 +00:00
MerryMage
64c29ab942 Jit_Integer: Port subfic to new register cache interface 2018-10-28 17:57:44 +00:00
MerryMage
33812319ac Jit: Add preg_t variant of ComputeRC 2018-10-28 17:57:44 +00:00
MerryMage
5e46c16e4f JitRegCache: Add IsZero to RCOpArg 2018-10-28 17:57:43 +00:00
MerryMage
2e955012b2 JitRegCache: Add BindOrImm 2018-10-28 17:57:43 +00:00
MerryMage
590ec866b0 JitRegCache: Add revertable binds 2018-10-28 17:57:43 +00:00
MerryMage
16f8b7413d JitRegCache: IsAllUnlocked 2018-10-28 17:57:43 +00:00
MerryMage
6c61d9a426 JitRegCache: RCForkGuard 2018-10-28 17:57:43 +00:00
MerryMage
367a0bb672 JitRegCache: Add RCOpArg::ExtractWithByteOffset 2018-10-28 17:57:43 +00:00
MerryMage
ae1bd7a6b0 JitRegCache: New interface 2018-10-28 17:57:43 +00:00
MerryMage
6fef683e14 JitRegCache: Move files to subdirectory 2018-10-28 17:57:43 +00:00
MerryMage
448fc89e4c JitRegCache: Count locks/unlocks 2018-10-28 17:57:43 +00:00
JosJuice
8baafcc523 Accurate region detection for NAND titles 2018-10-28 11:27:08 +01:00
Pierre Bourdon
756a2fe14d
Merge pull request #7517 from delroth/analytics-perf
Report performance information through our analytics subsystem
2018-10-28 00:43:12 +02:00
Pierre Bourdon
6a891ea37c Core/Analytics: add support for performance sampling
Samples are pushed to the analytics module every frame but only sent
once every ~15min. We send data for 100 frames at a time.
2018-10-27 17:39:53 +02:00
Pierre Bourdon
64e04eb38c SystemTimers: export performance index from the throttler callback 2018-10-27 15:14:59 +02:00
JosJuice
34edcdd454 Never return Unknown from SConfig::GetFallbackRegion
This happens if Wii Menu 1.0 is installed.

Reported by https://forums.dolphin-emu.org/Thread-default-case-should-not-be-reached
2018-10-25 17:54:13 +02:00
Mat M
74c49c961e
Merge pull request #7504 from JosJuice/game-id-partition-none
Fix issue 11422 (inconsistent game ID for some hacked games)
2018-10-24 21:15:10 -04:00
Pierre Bourdon
eadb4a66a5 ThrottleCallback: use microseconds to represent realtime
Using milliseconds doesn't provide a lot of granularity, and we can use
all we can get for performance analysis.
2018-10-25 02:27:49 +02:00
Stenzek
8c84e27155 Core: Fix display being passed as surface to ControllerInterface 2018-10-24 15:24:10 +10:00
Stenzek
eb284b5d66 VideoBackends: Pass window system info from host on creation 2018-10-20 21:11:34 +10:00
Stenzek
a3961750a7 Drop Host_GetRenderSurface and pass display to backend 2018-10-20 21:11:34 +10:00
Tillmann Karras
97cc9894e4 Update to Visual Studio's default Windows SDK 2018-10-20 00:53:08 +01:00
JosJuice
03d401127e Fix issue 11422 (inconsistent game ID for some hacked games)
Starting with PR 7411, the rest of Dolphin reads the game ID from
PARTITION_NONE, but SetRunningGameMetadata was still reading from
the game partition. https://bugs.dolphin-emu.org/issues/11422
2018-10-16 21:41:28 +02:00
MerryMage
688e8db904 BTReal: Correct comparison of integers of different signs 2018-10-15 19:30:58 +01:00
Tilka
64515d0840
Merge pull request #7216 from leoetlino/test
Fix BT passthrough by sending larger packets
2018-10-14 10:22:51 +01:00
MerryMage
93ec976975 Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0 (Redux)
* BTR modifies its argument.
* Do not fallthrough.
2018-10-13 19:20:08 +01:00
Pierre Bourdon
2508f6c621
Revert "Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0" 2018-10-13 20:04:30 +02:00
Pierre Bourdon
2bdee9b80b
Merge pull request #7455 from spycrab/qt_tags
Qt/GameList: Implement tag system
2018-10-13 19:58:32 +02:00
MerryMage
e7a65c31a8 Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0
BTR modifies its argument
2018-10-13 15:59:40 +01:00
Zexaron
550aa93ed0 NetPlay: Properly save Hosting GUI settings 2018-10-13 10:35:42 +02:00
MerryMage
d60345f15e Jit_FloatingPoint: Make fp_tri_op a local lambda 2018-10-12 20:46:02 +01:00
Mat M
ecd4897d43
Merge pull request #7437 from stenzek/graphics-options-race
Fix race condition caused by opening graphics options while running
2018-10-12 10:29:28 -04:00
Mat M
b3cd6158fc
Merge pull request #7471 from JosJuice/country-region-switch
DiscIO: Improve RegionSwitch/CountrySwitch
2018-10-12 10:25:45 -04:00
JosJuice
f834ef1dfe DiscIO: Rename RegionSwitch/CountrySwitch
Callers don't need to know that these functions are implemented
with a switch statement.
2018-10-12 12:32:22 +02:00
Tillmann Karras
db54b903ef Zero-initialize CPU state and register view 2018-10-10 00:04:02 +01:00
Tillmann Karras
dfe8305ae7 PowerPC: fix a cast warning 2018-10-10 00:03:54 +01:00
Pierre Bourdon
8e26d33133 Externals: Add a stripped down version of minizip. 2018-10-09 14:27:53 +02:00
JosJuice
57d05293fd DiscIO: Move the Korean GC mess out of VolumeGC 2018-10-08 13:56:13 +02:00
Tillmann Karras
9c7136453d FifoPlayer: reduce XF_REGS_SIZE to what we know
This avoids out-of-bounds warnings when replaying FIFO captures.

The value of XF_REGS_SIZE is written into the DFF header and we only
read the min of XF_REGS_SIZE and the header value, so this change is
backward compatible and doesn't break forward compatibility for old
Dolphin versions either.
2018-10-08 06:54:32 +01:00
MerryMage
8e3846d844 Jit_LoadStore: Name indexed condition
inst.OPCD == 31 represents an indexed instruction
2018-10-07 20:29:47 +01:00
MerryMage
d448ed3308 JitRegCache: Fix SanityCheck 2018-10-07 11:48:06 +01:00
MerryMage
d5999bc0df JitRegCache: Rename CachedReg function names
* BoundTo -> SetBoundTo
* Flushed -> SetFlushed
* Remove argument from MakeDirty
2018-10-07 11:48:06 +01:00
MerryMage
29d301e303 JitRegCache: Use preg_t for PPC register indexes 2018-10-07 11:48:06 +01:00
MerryMage
d9e2b3ed98 JitRegCache: Make {Store,Load}Register protected
No reason for them to be public
2018-10-07 11:48:06 +01:00
MerryMage
66c3d1e183 JitRegCache: Remove FlushR
No external users.
2018-10-07 11:48:05 +01:00
MerryMage
ba33e1e69b JitRegCache: Simplify ASSERTs 2018-10-07 11:48:05 +01:00
MerryMage
ff0a6b8331 JitRegCache: Encapsulate behavior of X64CachedReg 2018-10-06 19:27:56 +01:00
MerryMage
dd41bab365 JitRegCache: Encapsulate behavior of PPCCachedReg 2018-10-06 19:27:56 +01:00
Tilka
b480db9392
Merge pull request #7419 from Sintendo/miscopts
Miscellaneous x64 micro-optimizations
2018-10-05 23:44:25 +01:00
JosJuice
08d0b98988 DiscIO: Merge RegionSwitchGC and RegionSwitchWii 2018-10-05 17:54:29 +02:00
spycrab
6e873c6e06 Qt/GameList: Implement tag system 2018-10-05 08:22:51 +02:00
Techjar
c5b4e1a5f6 Improve SFMLHelper
Switch to using additional overloads of sf::Packet, so we can eliminate
some of the messy code and just use the normal syntax for
BigEndianValue.

We can't avoid helper functions with u64 due to SFML's non-standard way
of defining 64-bit integer types.
2018-10-02 05:44:50 -04:00
Shawn Hoffman
2a0f022da3 mx sram: replace union-with-byte-array with operator[] to make gcc happy. 2018-10-01 00:00:20 -07:00
Shawn Hoffman
d300f3bbbc exi ipl: quiet a gcc warning 2018-09-30 18:22:35 -07:00
Shawn Hoffman
2cd96aa5bb mx sram: fix checksum calc; use Common::BigEndianValue for rtc field. 2018-09-30 17:58:37 -07:00
Shawn Hoffman
d594d4f12f Fix sram accesses. 2018-09-29 22:52:29 -07:00
Sintendo
ef94fca504 DSPJit: various micro-optimizations 2018-09-29 09:52:30 +02:00
Sintendo
e3b424facd EmuCodeBlock: remove redundant instructions
Their result is overwritten by a subsequent MOV.
2018-09-28 23:58:16 +02:00
MerryMage
89a0b0de32 Jit64AsmCommon: Reduce branches in fast-path and inline most behavior
The only behavior requires a function call is denormal behaviour. We also fix fpscr exception raising.
2018-09-28 18:11:30 +01:00
Stenzek
eb33d7af64 Core: Call InitBackendInfo before loading config 2018-09-28 21:44:41 +10:00
Stenzek
a877d5f6dc Remove unused Host_ShowVideoConfig 2018-09-28 14:05:53 +10:00
Mat M
3cee297c87
Merge pull request #7331 from booto/si_buffer
SI: Add 16bit accessors for SI IO buffer
2018-09-27 21:50:50 -04:00
Léo Lam
e90bd035cb
Merge pull request #7262 from lioncash/force
ControlGroup: Return state data via GetState() by value where applicable
2018-09-16 16:04:21 +02:00
Léo Lam
5a289de27a Fix BT passthrough by sending larger packets
Fixes a critical regression from 8bb08d1ca6.

In that commit, I replaced a 1024 byte buffer with a SHCIEventCommand.
However, it looks like some Bluetooth adapters actually require such
a large buffer, so this change needs to be reverted.
2018-09-16 15:36:58 +02:00
Léo Lam
40b7fab235
Merge pull request #7261 from lioncash/static
WiimoteReal: Make functions internally linked where applicable
2018-09-16 15:30:25 +02:00
Léo Lam
80c402e1ad
Merge pull request #7161 from lioncash/disasm
CMake: Only link in Bochs on x86 platforms
2018-09-16 15:16:00 +02:00
Léo Lam
3a16c0d47e
Merge pull request #7401 from JosJuice/translation-fixes
Translation fixes
2018-09-16 15:09:26 +02:00
JosJuice
b5bb445f21 Include the Korean Wii Shop Channel when checking default credentials 2018-09-15 17:28:23 +02:00
booto
3825e2e5ff SI: Add 16bit accessors for SI IO buffer
Dolphin has traditionally treated the SI IO buffer (128 bytes) as a set of
32 little endian u32s. This works out fine if you only ever read/write
using aligned 32bit accesses. Different sized accesses or misaligned reads
will mess it up. Byte swapping reads/writes will fix this up, but all the
SI devices that use the SI IO buffer need to be adjusted.
2018-09-11 22:19:13 -04:00
JosJuice
fb6b31bba8 Re-add i18n comments that were lost in the DolphinWX removal 2018-09-08 15:58:15 +02:00
JosJuice
e0cb56edb9 Reword some translatable strings
We've decided to use the term "Usage Statistics Reporting"
instead of "Analytics" in user-facing strings.
2018-09-08 15:19:01 +02:00
JosJuice
762747f8c1
Merge pull request #7377 from Techjar/more-frameskip-junk
Core/Core: Remove another leftover part of frameskip
2018-08-28 08:29:43 +02:00
Techjar
c5ae721eca Core/Core: Remove another leftover part of frameskip 2018-08-28 02:22:05 -04:00
Lioncash
d10a0b440f SFMLHelper: Simplify 64-bit packet reading function and remove 64-bit write function
Now that SFML's packet class can properly handle 64-bit values, we don't
need a helper function just to write values to the packets.
2018-08-27 17:38:07 -04:00
Pierre Bourdon
4c75331d5d
Merge pull request #7374 from lioncash/iowin
IOWin: Make functions internally linked where applicable
2018-08-27 22:13:24 +02:00
Lioncash
8753321841 IOWin: Use anonymous namespaces where applicable
Several functions (and one variable) were being given external linkage.
Instead, relocate them all to anonymous namespaces to make them
internally linked.
2018-08-27 16:10:07 -04:00
Lioncash
d40022d6d0 JitInterface: Move explanatory comment of ClearSafe() to the function's prototype
Puts the comment in the header where it's more likely to be seen
initially. We can also remove the TODO, given doing nothing or returning
an error is what is generally done for the JIT interface if the JIT
instance isn't valid.
2018-08-27 13:04:05 -04:00
Lioncash
36b24bf7a0 PowerPC: Remove Profiler.cpp
With 7aa305ea35 merged, all that remains
within Profiler.cpp is an unused function that just forwards to the
equivalent function within JitInterface. Given that, we can just remove
the source file.
2018-08-27 12:13:39 -04:00
Lioncash
7aa305ea35 Profiler: Migrate global g_ProfileBlocks boolean to JitOptions
This global belongs in the JitOptions structure, as it's a conditional
setting (A.K.A. option) that changes the behavior of what the JIT does.

Plus it keeps the scope of the variable constrained to the general area
it's intended to be used and nothing further.
2018-08-27 11:30:19 -04:00
Pierre Bourdon
88a91562b5
Merge pull request #7370 from lioncash/constness
JitArm64/Jit: Don't cast away const within DumpCode()
2018-08-27 16:31:15 +02:00
Lioncash
cc2ef5a2c3 JitArm64/Jit: Don't cast away const within DumpCode()
swap32() has a const u8* overload that swaps the data being pointed to as
if it were a 32-bit word. We can just use that instead. It gets rid of
undefined behavior, as we're not type punning a pointer and dereferencing it,
and gets rid of the need to cast entirely.
2018-08-27 10:28:11 -04:00
Lioncash
e81408588f JitCommon/JitCache: Make JitBlock's checkedEntry and normalEntry members non-const pointers
In both cases of the x64 and AArch64 JITs, these would have const casted
away from them, followed by them being placed within an emitter and
having breakpoint instructions written in them.

In this case, we shouldn't be using const period if we're writing to the
emitted data.
2018-08-27 10:23:22 -04:00
Lioncash
208be26bb4 Arm64Emitter: Make the Align* functions return a non-const data pointer
Similar in nature to e28d063539 in which
this same change was applied to the x64 emitter.

There's no real requirement to make this const, and this should also
be decided by the calling code, considering we had places that would
simply cast away the const and carry on
2018-08-27 09:44:38 -04:00
Pierre Bourdon
f2323331ea
Merge pull request #7240 from lioncash/namespace
Common/DebugInterface: Namespace code under the Common namespace
2018-08-27 04:49:26 +02:00
Pierre Bourdon
0c39590353
Merge pull request #7229 from lioncash/truncate
Interpreter: Remove an unnecessary cast in Trace()
2018-08-27 04:49:06 +02:00
Pierre Bourdon
dbb7563cce
Merge pull request #7363 from Techjar/netplay-hia-comments
NetPlay: Add additional comments for host input authority mode
2018-08-27 04:45:20 +02:00
Pierre Bourdon
246b1f4459
Merge pull request #7350 from zackhow/android-analytics
Android: Add usage statistics to android
2018-08-27 04:37:17 +02:00
Techjar
1ba834d13c NetPlay: Add additional comments for host input authority mode 2018-08-26 22:28:23 -04:00
Pierre Bourdon
9bcd7bfe1e
Merge pull request #7360 from Techjar/netplay-host-input-authority
NetPlay host input authority mode
2018-08-26 23:15:44 +02:00
Techjar
5519efa66e NetPlay host input authority mode
Currently, each player buffers their own inputs and sends them to the
host. The host then relays those inputs to everyone else. Every player
waits on inputs from all players to be buffered before continuing. What
this means is all clients run in lockstep, and the total latency of
inputs cannot be lower than the sum of the 2 highest client ping times
in the game (in 3+ player sessions with people across the world, the
latency can be very high).

Host input authority mode changes it so players no longer buffer their
own inputs, and only send them to the host. The host stores only the
most recent input received from a player. The host then sends inputs
for all pads at the SI poll interval, similar to the existing code. If
a player sends inputs to slowly, their last received input is simply
sent again. If they send too quickly, inputs are dropped. This means
that the host has full control over what inputs are actually read by
the game, hence the name of the mode. Also, because the rate at which
inputs are received by SI is decoupled from the rate at which players
are sending inputs, clients are no longer dependent on each other. They
only care what the host is doing. This means that they can set their
buffer individually based on their latency to the host, rather than the
highest latency between any 2 players, allowing someone with lower ping
to the host to have less latency than someone else.

This is a catch to this: as a necessity of how the host's input sending
works, the host has 0 latency. There isn't a good way to fix this, as
input delay is now solely dependent on the real latency to the host's
server. Having differing latency between players would be considered
unfair for competitive play, but for casual play we don't really care.
For this reason though, combined with the potential for a few inputs to
be dropped on a bad connection, the old mode will remain and this new
mode is entirely optional.
2018-08-26 17:10:23 -04:00
BhaaL
5f95ed5263 Jit64: get rid of global g_jit accesses 2018-08-25 16:53:49 +02:00
zackhow
82f82a6b7d Android: Add usage statistics to android.
Added an option in General config to enable/disable usage statistics. Added a popup on first open if
the user would like to engage in reporting. Clicking cancel or out of the box opts out. Only
clicking 'Ok' will enable reporting. Also added a new android specific values to report.
2018-08-23 17:31:17 -04:00
Pierre Bourdon
183fb9bf6a
Merge pull request #7338 from booto/controller_modes
Fix analog modes that use 4 bits for c-stick data
2018-08-20 13:02:32 +02:00
Pierre Bourdon
0fdb6f4267
Merge pull request #7249 from yourWaifu/discord-rpc-join
Add Discord Join Net Play functionally
2018-08-19 13:43:33 +02:00
booto
168fdf814b Fix analog modes that use 4 bits for c-stick data
Also get rid of a load of unnecessary casts
2018-08-16 02:17:17 -04:00
Pierre Bourdon
6c1f39458b Jit64: Update PC before checking for exceptions 2018-08-14 02:27:48 +02:00
Lioncash
a4110ad958 PowerPC: Deduplicate Helper_Mask() code
We can share this across all implementations instead of duplicating it
in different ways.
2018-08-12 17:24:16 -04:00
JMC47
3a4574957b Disables a panic alert in lswx that makes using not64 impossible 2018-08-10 21:22:45 -04:00
Pierre Bourdon
91edc95243
Merge pull request #7315 from delroth/crset-fix
Jit64: fix crset implementation
2018-08-11 02:24:15 +02:00
Pierre Bourdon
b382310367
Merge pull request #7313 from PoroCYon/master
Rename SIGTRAP, SIGTERM etc. to GDB_SIGTRAP etc.
2018-08-11 01:40:14 +02:00
Pierre Bourdon
c8d4fa5308 Jit64: fix crset implementation
At some point SetCRFieldBit was modified to operate on RSCRATCH, but the
function was only partially changed. As such, setting SO, GT or LT would
write the right bit to cr_field, but then cr_field would just get
overwritten with RSCRATCH, undoing the work.
2018-08-11 01:12:49 +02:00
Markus Wick
185f971e2a
Merge pull request #7308 from booto/dualcore-fifo-player-shutdown
FifoPlayer: Actually exit on 'Stop' in dualcore
2018-08-10 18:00:18 +02:00
PoroCYon
26a9ab5b19 Use GDB_SIG* enum instead of the system's macros, as the latter mightn't be included or might have a different value. 2018-08-10 16:09:27 +02:00
JosJuice
2ee8a61148 ConfigManager: Remove m_FrameSkip
This setting was removed some time ago but was apparently
still being read and written by ConfigManager.
2018-08-09 10:31:02 +02:00
booto
da0927fe8f FifoPlayer: Actually exit on 'Stop' in dualcore
Quit the fifoplayer cpu idle loop if a shutdown has been requested
2018-08-09 01:08:21 -04:00
spycrab
ddf09a0841
Merge pull request #7298 from spycrab/usb_keyboard_hotkey
Hotkeys: Add "Toggle USB Keyboard" hotkey
2018-08-07 07:47:20 +02:00
Sleepy Flower Girl
c2aedb7649 Adds a UI for accepting Discord join requests in Dolphin
also did these things
fixed crash from joining user that isn't hosting via a direct connection
current game stat can now pass to override the current game in config
uses ip endpoint from dolphin.org
2018-08-06 16:12:03 -04:00
Lioncash
ac1b48497e NetPlayServer: Make g_initial_netplay_rtc a member variable of NetPlayClient
Behaviorally, this belongs within the netplay client. The server will
always transmit a known RTC value, so it doesn't even need a global for
this. Given the client receives the packet containing said RTC value, we can
store it as a member variable and provide an accessor for reading that
value.

This removes another global variable within the netplay code.
2018-08-03 23:20:16 -04:00
Anthony
72d5ff54f3
Merge pull request #7257 from lioncash/const
WiimoteEmu: Minor changes
2018-08-03 20:09:31 -07:00
spycrab
cf116d488a
Merge pull request #7268 from lioncash/config
Core/BootManager: Remove unnecessary includes
2018-08-02 23:17:03 +02:00
spycrab
e3f36b74c5 Hotkeys: Add "Toggle USB Keyboard" hotkey 2018-08-02 12:55:30 +02:00
booto
f800f6343d BS2Emu: Don't do a DVDCopy when AppLdrMain returns 0 2018-08-02 01:30:25 -04:00
spycrab
2a776bf2b6
Merge pull request #7258 from Techjar/netplay-fix-segfaults
Fix more segfaults on NetPlay quit
2018-07-30 11:52:38 +02:00
spycrab
7c2569ada7
Merge pull request #7283 from Techjar/netplay-improve-settings-sync
NetPlay: Improve settings synchronization and UI
2018-07-30 11:47:48 +02:00
spycrab
8fb3085b07 Revert "Revert "Qt/GameList: Add option to show covers in grid mode"" 2018-07-30 03:16:37 +02:00
degasus
5333c17cca Jit: Fix branch following.
The idea of this code was to not unroll loops, but it was completely broken.
So we've unrolled all loops, but only up to the second iteration.
Honestly, a better check would test if we branch to code which is already in the compiling block. But this is out of scope for now.

But testing shows that this unrolling actually improve the performance. So instead of fixing this bug, this check can be dropped.
2018-07-28 16:35:42 +02:00
Techjar
7036299a92 NetPlay: Improve settings synchronization and UI
Most settings which affect determinism will now be synced on NetPlay.
Additionally, there's a strict sync mode which will sync various
enhancements to prevent desync in games that use EFB reads.

This also adds a check for all players having the IPL.bin file, and
doesn't load it for anyone if someone is missing it. This prevents
desyncs caused by mismatched system fonts.

Additionally, the NetPlay window was getting too wide with checkboxes,
so FlowLayout has been introduced to make the checkboxes take up
multiple rows dynamically. However, there's some minor vertical
centering issues I haven't been able to solve, but it's better than a
ridiculously wide window.
2018-07-26 17:23:04 -04:00
Techjar
dee64a89e0 Fix segfault on NetPlay start with unknown region
This is accomplished by having SConfig::GetDirectoryForRegion no longer
return nullptr, as doing that was kind silly, considering we never
check for nullptr.
2018-07-21 13:13:08 -04:00
Techjar
cfeffdcf42 Fix more segfaults on NetPlay quit
Basically everything here was race conditions in Qt callbacks, so I changed the client/server instances to std::shared_ptr and added null checks. It checks that the object exists in the callback, and the shared_ptr ensures it doesn't get destroyed until we're done with it.

MD5 check would also cause a segfault if you quit without cancelling it first, which was pretty silly.
2018-07-21 00:04:14 -04:00
Mat M
a21d536f99
Merge pull request #7282 from booto/no-more-global-dcbz-disable
Config: Remove Core::DCBZ [bDCBZOFF] - obsolete
2018-07-20 23:05:38 -04:00
booto
f88c46b4da Config: Remove Core::DCBZ [bDCBZOFF] - obsolete
This option completely disabled the DCBZ instruction. Users are toggling
this option in dolphin forks and using that same problematic config when
launching dolphin. Removing the option from dolphin will let the config be
ignored.
2018-07-20 03:25:12 -04:00
Techjar
4407854e9c NetPlay save data synchronization
This adds the functionality of sending the host's save data (raw memory
cards, as well as GCI files and Wii saves with a matching GameID) to
all other clients. The data is compressed using LZO1X to greatly reduce
its size while keeping compression/decompression fast. Save
synchronization is enabled by default, and toggleable with a checkbox
in the NetPlay dialog.

On clicking start, if the option is enabled, game boot will be delayed
until all players have received the save data sent by the host. If any
player fails to receive it properly, boot will be cancelled to prevent
desyncs.
2018-07-19 18:09:20 -04:00
JosJuice
c663dc9e00 Remove settings that only were used by DolphinWX 2018-07-16 21:21:42 +02:00
JosJuice
325f3c6ee5
Merge pull request #7254 from Techjar/dont-set-jitfollowbranch
Core/ConfigManager: Don't set JITFollowBranch
2018-07-16 21:06:31 +02:00
Techjar
d49b415e75 Core/ConfigManager: Don't set JITFollowBranch
We don't want to write this setting to disk, as SConfig has problems
with leaking settings changed by GameINI into the base configs. The
result of this is that if someone plays an N64 VC game (or other game
where we disable this setting) the branch following option can get
unintentionally disabled globally, which will reduce performance in
many games and cause NetPlay to desync with users who still have it
enabled.
2018-07-15 17:38:10 -04:00
Lioncash
71de1abd88 Core/BootManager: Remove unnecessary includes
Lessens the amount of files that have to be recompiled if
ConfigManager.h is modified. This also removes an indirect inclusion
within DolphinQt/Main.cpp.
2018-07-14 23:16:23 -04:00
spycrab
6044165f9d
Merge pull request #7237 from lioncash/netsettings
NetPlayClient: Make global NetSettings instance part of the NetPlayClient class
2018-07-15 00:02:58 +02:00
Lioncash
9983d92981 WiimoteEmu: Resolve unrelated lint code style warnings
This discrepancy was introduced in b3b1845785
2018-07-13 13:34:00 -04:00
Lioncash
cfe7549091 ControlGroup/Triggers: Return state data by value
Makes it less error-prone to get state data from analog sticks (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash
97ba02df27 ControlGroup/Tilt: Return state data by value
Makes it less error-prone to get state data from tilt controls (no need
to pass any pointers to locals), and also allows direct assignment,
letting the retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash
918d448b5b ControlGroup/Slider: Return state data by value
Makes it less error-prone to get state data from sliders (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash
4c30b9e14d ControlGroup/Force: Return state data by value
Ensures that an array of sufficient size is always used and doesn't put
the responsibility on the caller. It also allows for direct assignment.
2018-07-13 13:20:35 -04:00
Lioncash
ef1240b0c7 ControlGroup/Cursor: Return state data by value
Makes it less error-prone to get state data from cursors (no need
to pass any pointers to locals), and also allows direct assignment,
letting the retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash
d05f490caa ControlGroup/AnalogStick: Return state data by value
Makes it less error-prone to get state data from analog sticks (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:31 -04:00
Lioncash
d80f91478f WiimoteReal: Make functions internally linked where applicable
These functions are only used within this translation unit, so they can
be made internally linked.
2018-07-13 09:24:27 -04:00
Lioncash
7f8cdbb2a4
CMake: Only link in Bochs on x86 platforms
Bochs' disassembler is only for disassembling x86 code. On non-x86
platforms it doesn't really make sense to build and link this in.
2018-07-12 16:44:17 -04:00
Lioncash
113a357604 WiimoteEmu: Make constructor of Wiimote explicit
Prevents implicit conversions
2018-07-12 15:59:31 -04:00
Lioncash
5b58977561 WiimoteEmu: Amend parameter names for EmulateShake() and EmulateSwing()
Ensures they match their naming within the definition of the function.

In EmulateSwing's case, one parameter was erroneously named tilt_group,
when it's actually supposed to be swing_group.
2018-07-12 15:58:50 -04:00
Lioncash
2825b2daa2 WiimoteEmu: Remove unnecessary value-wise const from function prototypes
These aren't necessary in the prototype, however they do apply in the
definition of the function. This just cuts down on line noise within the
prototypes.
2018-07-12 15:54:01 -04:00
spycrab
cc6526f553
Merge pull request #6222 from iwubcode/emulated_input_improvements
Emulated wii input improvements
2018-07-12 20:36:53 +02:00
Lioncash
f209f5f2a4
NetPlayClient: Make the NetSettings instance part of the NetPlayClient class
This is only ever read from externally, so we can expose a getter that ensures that
immutability, while making the actual instance internal. Given the
filling out of these settings depends on packets received by the client
instance, it makes more sense to make it a part of the client itself.

This trims off one lingering global.
2018-07-12 13:55:41 -04:00
spycrab
b3b1845785 HW/WiimoteEmu: Add Forward Option 2018-07-12 19:35:30 +02:00
spycrab
fc967908ea
Merge pull request #7238 from Techjar/netplay-bundle-pad-states
NetPlay: Bundle multiple local pads into one packet
2018-07-11 11:27:10 +02:00
spycrab
bf4341f762
Merge pull request #7248 from Techjar/netplay-fix-spectator-deadlock
NetPlay: Don't update mappings on leave if player had no mappings
2018-07-11 01:18:22 +02:00
Techjar
39449da304 NetPlay: Don't update mappings on leave if player had no mappings
This stops clients randomly deadlocking when a spectator leaves, as the mappings construct is not thread-safe and should not be written while the game is running.
2018-07-10 18:35:37 -04:00
spycrab
b367cd0331 Core/NetPlay: Add debugging messages 2018-07-10 22:23:49 +02:00
Techjar
006202a33c NetPlay: Fix SRAM desyncing after first boot 2018-07-10 05:03:31 -04:00
Lioncash
dfdfe6c972
Common/DebugInterface: Namespace code under the Common namespace
Gets more identifiers out of the global namespace and makes it more in
line with the rest of the (mostly) namespaced Common code.
2018-07-09 22:23:57 -04:00
Techjar
f68dbed535 NetPlay: Bundle multiple local pads into one packet
This saves a significant amount of bandwidth with multiple controllers on one client, as most of the packet is just protocol overhead.
2018-07-09 21:37:44 -04:00
spycrab
31d9ca34e3
Merge pull request #7231 from Techjar/netplay-less-timebase
NetPlay: Send timebase packet less frequently
2018-07-09 23:29:46 +02:00
spycrab
4f5ea1ad5e
Merge pull request #7232 from Techjar/netplay-reduce-poll-rate-twice
NetPlay: Change "Reduce Polling Rate" to poll twice per frame
2018-07-09 23:29:22 +02:00
spycrab
31bc017593
Merge pull request #7235 from spycrab/jit_disable_following
Core/PowerPC: Add option to disable branch following
2018-07-09 23:22:08 +02:00
spycrab
df61e527da Core/PowerPC: Add option to disable branch following 2018-07-09 22:58:40 +02:00
Mat M
9487892c18
Merge pull request #7226 from lioncash/netplay
Core: Namespace NetPlay utilities under the NetPlay namespace
2018-07-09 00:38:12 -04:00
Techjar
38e67c0530 NetPlay: Change "Reduce Polling Rate" to poll twice per frame
Some games don't play nice when we poll only once per frame, so we'll poll twice instead.
2018-07-08 06:14:13 -04:00
Techjar
98447eae64 NetPlay: Send timebase packet less frequently
This packet is only used by the host to detect desyncs, and we don't really need to know the exact frame we desynced on (unless you're debugging, but you can just recompile for that), so it's perfectly fine to just send it less often. This makes it so the timebase packet is sent only every 60 frames, rather than every frame, which further cuts back on unnecessary bandwidth consumption.
2018-07-08 02:18:17 -04:00
Lioncash
db5b2d93c3 Interpreter: Remove an unnecessary cast in Trace()
PowerPCState's cr_val member is an array of u64s, so we can just use the
correct printf macro specifier within cinttypes. This also avoids
truncation on operating systems that use an LLP64 data model (like
Windows), where long is actually 32 bits in size, not 64-bit, which
could result in wonky values being printed, should Trace ever be used on
it.
2018-07-07 16:06:26 -04:00
iwubcode
3b11066e61 Fix lint bugs 2018-07-07 13:02:38 -05:00
iwubcode
230af569ed Input - Make dynamic rules be definable per game. Configuration can now
define how many frames constitute a high or a low swing/shake when the
button is down.  Also configurable is the number of frames to execute
the swing/shake after the button is released.
2018-07-07 12:55:52 -05:00
iwubcode
14482a72af Input: Allow cycling to occur for each individual controller 2018-07-07 12:55:49 -05:00
iwubcode
485285eadc Input: Add cycling between game specific profiles 2018-07-07 12:39:08 -05:00
iwubcode
3969bf6d1c Input: Add hotkey to cycle the wiimote profile forward or backward
Co-authored-by:  Barath Kannan <barathsotd@gmail.com>
2018-07-07 12:39:08 -05:00
iwubcode
29b71fb9ce Wiimote Emulation: increase left/right bounds for IR calculation, to fix games that previously you couldn't reach the left/right edges (ex: system menu) 2018-07-07 00:49:47 -05:00
iwubcode
5cbc825bc9 Wiimote Emulation: add 'dynamic' swing/shake options that vary based on how long the key is pressed 2018-07-07 00:49:47 -05:00
iwubcode
9936a83a1b Add game-configurable shake/swing commands for the nunchuk at three intensities 2018-07-07 00:49:47 -05:00
iwubcode
fb7a6a1bbe Wiimote Emulation: Add game-configurable shake/swing commands for the wiimote at three intensities 2018-07-07 00:49:47 -05:00
Michael M
e7cbee235c Convert Dolphin.Core.DefaultISO to use new-style config 2018-07-06 19:28:19 -07:00
Lioncash
675260b0f7
Core: Namespace NetPlay utilities under the NetPlay namespace
Previously there was only one function under the NetPlay namespace,
which is kind of silly considering we have all of these other types
and functions existing outside of the namespace.

This moves the rest of them into the namespace.

This gets some general names, like Player, for example, out of the global namespace.
2018-07-06 19:53:23 -04:00
spycrab
28ca6fec9a
Merge pull request #7202 from Techjar/better-netplay-errors
Improve NetPlay connection error handling
2018-07-06 12:27:03 +02:00
spycrab
eb01a0a040
Merge pull request #7204 from spycrab/exclusive_mapping
Support for exclusive mapping booleans
2018-07-06 11:27:20 +02:00
Techjar
a29cdb5713 Improve NetPlay connection error handling 2018-07-05 17:15:19 -04:00
Mat M
9ea3e833ba
Merge pull request #7141 from lioncash/fp
Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions
2018-07-04 22:26:24 -04:00
spycrab
3ab3ba0d99
Merge pull request #7187 from Techjar/netplay-reduce-poll-rate
Add "Reduce Polling Rate" option to NetPlay
2018-07-04 20:49:29 +02:00
spycrab
f7887a442f Qt/NetPlayDialog: Stop games properly 2018-07-04 16:27:16 +02:00
spycrab
d8212fd927 Core/Core: Fix getting stuck when Stop is called without emulation running 2018-07-04 00:52:53 +02:00
Jonathan Hamilton
431b9e76be Set arbitrary mipmap detection threshold default to 14
Now the detection heuristic has changed, the old value is no longer
valid.

Some example thresholds for known mipmap effects that should trigger:

SMG's lava has a mimimum difference of ~17.8, SMG2's clouds have a
minimum difference of ~14.8, and Wind Waker's foam has a minimum
difference of ~15

Non-triggering examples were tested and all had a calculated difference
lower than 3.

So a value of 14 should lean towards false-negatives instead of
positives, but this is clearly incomplete testing and may require
further tweaks later.
2018-07-02 09:53:54 -07:00
spycrab
3e2e813607 HW/WiimoteEmu: Make "Upright / Sideways Wii Remote" mutually exclusive 2018-07-02 15:27:03 +02:00
Techjar
bc15eb2d57 Expose arbitrary mipmap detection toggle in UI 2018-07-01 04:42:47 -04:00
Mike Ravenelle
8218de0762 QT: Removed iterative input in options groups. 2018-06-30 14:38:42 -05:00
Techjar
5adeca4087 Add "Reduce Polling Rate" option to NetPlay
Normally, SI is polled at a rate defined by the game, and we have to send the pad state to other clients on every poll or else we'll desync. This can result in fairly high bandwidth usage, especially with multiple controllers, mostly due to UDP/IP overhead.

This change introduces an option to reduce the SI poll rate to once per frame, which may introduce up to one frame of additional latency, but will reduce bandwidth usage substantially, which is useful for users on very slow internet connections.

Polling SI less frequently than the game asked for did not seem to cause any problems in my testing, so this should be perfectly safe to do.
2018-06-30 13:13:44 -04:00
Pierre Bourdon
212adc7b87
Merge pull request #7115 from Sintendo/double2singleopt
Jit64Common: Eliminate branch in ConvertDoubleToSingle
2018-06-25 01:45:11 +02:00
Pierre Bourdon
307d705654
Merge pull request #7152 from lioncash/dsp-interp
DSPIntExtOps: Minor cleanups
2018-06-25 01:42:42 +02:00
Pierre Bourdon
8129a3db6c
Merge pull request #7156 from lioncash/psq
Interpreter_LoadStorePaired: Generate a program exception if non-indexed paired-single load/stores are used and HID2.LSQE is not set
2018-06-25 01:41:48 +02:00
Pierre Bourdon
4200d2e5e3
Merge pull request #7155 from degasus/arm_registers
JitArm64: Drop the plattform register.
2018-06-25 01:38:29 +02:00
Pierre Bourdon
2cfdf89898
Merge pull request #6983 from yourWaifu/add-discord-rpc-support
Add Discord Rich Presence support
2018-06-25 00:06:27 +02:00
Lioncash
135398fcea BTEmu: Get rid of a few pointer casts
Maintains the same behavior without invoking undefined behavior.
2018-06-22 21:24:49 -04:00
Lioncash
bc8f932f0c BTEmu: Make WriteToEndpoint's reference parameter const
This function doesn't modify anything being referenced.
2018-06-22 20:59:00 -04:00
Léo Lam
971972069c
Merge pull request #7148 from lioncash/build
Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
2018-06-22 23:55:37 +02:00
Léo Lam
1da868ee82
Merge pull request #7150 from lioncash/naming
BTEmu: Amend variable naming
2018-06-22 22:50:48 +02:00
Léo Lam
d07e599a74
Merge pull request #7151 from lioncash/const
Movie: Make pointer parameters const where applicable
2018-06-22 22:50:25 +02:00
Léo Lam
e16cadf982
Merge pull request #7153 from lioncash/deduplicate
DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
2018-06-22 22:49:16 +02:00
Lioncash
8d9f74b762 DSPEmitter: Make member functions, aliases and constants private where applicable
Given we now use a base class for the interface, we can make all member
functions, types and constants that aren't directly related to
instructions private.
2018-06-21 17:29:33 -04:00
Lioncash
47acf794c7 Interpreter_LoadStorePaired: Generate a program exception if non-indexed paired-single load/stores are used and HID2.LSQE is not set
HID2.LSQE is the Load/store quantize enable bit for non-indexed format
instructions (which are psq_l, psq_lu, psq_st, and psq_stu). If this bit
is not set and any of these instructions are attempted to be executed,
then a program exception is supposed to occur.
2018-06-21 17:16:54 -04:00
degasus
ecf86bbf7b JitArm64: Drop the plattform register.
This register is defined as "optional reserved" within the aarch64 ABI.
Linux doesn't use it, but we must not modify it on ios or windows.
As we have plenty of registers on aarch64, let's just always skip this one.
2018-06-21 22:39:15 +02:00
Lioncash
fd1ad02c5c DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
This function was duplicated across all the opcode tables: the main info
tables, the interpreter tables, and the x86-64 JIT tables. However, we
can just make the type of the std::array parameter a template type and
get rid of this duplication.
2018-06-21 13:35:06 -04:00
Lioncash
fdf057efce DSPIntExtOps: Remove unnecessary const from function prototypes
const on a parameter being passed by value in a prototype doesn't actually signify
anything, these are only applicable in the definition, where they make
the opcode parameter immutable.
2018-06-21 13:00:08 -04:00
Lioncash
42846e6ef1 DSPIntExtOps: Correct casing of functions
Corrects several functions to conform to our coding style.
2018-06-21 12:53:22 -04:00
Lioncash
4367e3aeda DSPIntExtOps: Make IsSameMemArea internally linked
inline has external linkage, which doesn't really make sense here, given
the function is only used within this translation unit. So we can
replace inline with static.

While we're at it, the code within the function can also be compressed
to a single return statement.
2018-06-21 12:46:01 -04:00
Lioncash
2354d933c8 Movie: Make pointer parameters const where applicable
A few functions don't actually modify the data being pointed to, so
these can be made pointer-to-const.
2018-06-21 12:27:30 -04:00
Lioncash
25e3ec23f8 BTEmu: Rename AccessWiiMote to AccessWiimote
Everywhere else throughout the codebase we use "Wiimote" when referring
to the Wii Remote as a shorthand. This makes the casing consistent.
2018-06-21 11:36:02 -04:00
Lioncash
56b8d1803e BTEmu: Amend parameter and local variable naming 2018-06-21 11:35:31 -04:00
Lioncash
16c6e9fa57 BTEmu: Amend class member variable naming 2018-06-21 10:53:07 -04:00
Lioncash
c4fb07f428 Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
Previously these were required to be built into the executable so that
the JIT portion of the DSP code would build properly, as the
x86-64-specifics were tightly coupled to the DSP common code. As this is
no longer the case, this is no longer necessary.
2018-06-21 06:53:31 -04:00
Markus Wick
630c3f0805
Merge pull request #7147 from lioncash/emitter
DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
2018-06-21 12:34:13 +02:00
Markus Wick
52990d215d
Merge pull request #7145 from lioncash/mtspr
Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
2018-06-21 11:36:12 +02:00
Lioncash
b7301bee29 DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
This adds a base class that is used to replace the concrete instance of
the x64 JIT pointer within DSPCore. This fully removes the direct use
(read: non-ifdefed) usage of x86-64-specifics within the main DSP code.

Said base can also be used for creating JITs for other architectures,
such as AArch64, etc.
2018-06-21 05:20:22 -04:00
Mat M
8b68a7d88a
Merge pull request #7109 from degasus/cached_interpreter
CachedInterpreter: Implement breakpoints.
2018-06-21 04:23:38 -04:00
Markus Wick
5f7dc31a9f
Merge pull request #7138 from lioncash/dsp-table
DSPTables: Separate interpreter and JIT functions from main info table
2018-06-21 10:23:03 +02:00
Lioncash
474c1bb4f7 DSPTables: Separate interpreter and JIT functions from main info table
This is one of the last things that needed to be done in order to
finally separate the x86-64-specific code from the rest of the common
DSP code. This splits the tables up similar to how it's currently done
for the PowerPC CPU tables.

Now, the tables are split up and within their own relevant source files,
so the main table within the common DSP code acts as the "info" table
that provides specifics about a particular instruction, while the other
tables contain the actual instruction.

With this out of the way, all that's left is to make a general base for
the emitters and we can then replace the x64 JIT pointer in DSPCore with
it, getting all x64 out of the common code once and for all.

While shuffling all the code around, the removal of the DSPEmitter
includes in some places uncovered indirect inclusions, so this also
fixes those as well.
2018-06-21 04:21:44 -04:00
Markus Wick
0459a1a9e6
Merge pull request #6875 from JonnyH/WIP/mipmap-heuristic-tweaks
Make arbitrary mipmap detection a config option
2018-06-21 10:19:47 +02:00
Markus Wick
d8ba3034c3
Merge pull request #7133 from lioncash/assembler
DSPAssembler: Minor changes
2018-06-21 10:02:36 +02:00
Markus Wick
b4b9b53239
Merge pull request #7143 from lioncash/bt-helper
BTEmu: Make m_WiiMotes private
2018-06-21 10:00:28 +02:00
Markus Wick
4ca05810be
Merge pull request #7144 from lioncash/cast
ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
2018-06-21 09:56:05 +02:00
Markus Wick
9f03d8ca6a
Merge pull request #7139 from lioncash/tb
PowerPC: Add functions to read/write the full timebase value
2018-06-21 09:52:13 +02:00
Markus Wick
3816e825c9
Merge pull request #7135 from JosJuice/cant-load-state
Only show savestate version mismatch OSD message when relevant
2018-06-21 09:28:47 +02:00
Lioncash
d0fbba9ac1 Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
Despite both being documented as read-only registers, only one of them
is truly read-only. An mtspr to HID1 will steamroll bits 0-4 with
bits 0-4 of whatever value is currently in the source register, the rest
of the bits are not modified as bits 5-31 are considered reserved, so
these ignore writes to them.

PVR on the other hand, is truly a read-only register. Attempts to write
to it don't modify the value within it, so we model this behavior.
2018-06-20 18:50:33 -04:00
Lioncash
7eb86cdb67 BTEmu: Add helper function for accessing WiimoteDevice instances by index
This makes it much more straightforward to access WiimoteDevice
instances and also keeps the implementation details of accessing those
instances in one spot.

Given as all external accesses to the WiimoteDevice instances go through
this function, we can make the other two private.
2018-06-20 17:05:54 -04:00
Lioncash
0e437c41e5 ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
Using reinterpret_cast (or a C-styled equivalent) to reinterpret
integers as floating-point values and vice-versa invokes undefined
behavior. Instead, use BitCast, which does this in a well-defined
manner.
2018-06-20 16:38:30 -04:00
Lioncash
e4b6d7626b WiimoteDevice: Make Callback_WiimoteInterruptChannel() accept its data as a u8* rather than void*
All current usages of the function pass in either u8 arrays or pointers,
so we can make this part of the function a concrete type.
2018-06-20 16:04:10 -04:00
Lioncash
2b60fe684c BTEmu: Make m_WiiMotes private
We can already utilize the public interface to access the necessary
instance without exposing a private data member.
2018-06-20 15:15:05 -04:00
yourWaifu
63f03455f3 Discord Rich Presence CMake integration
I have no idea if this works or not. Hopefully the build bot will tell me.
2018-06-19 22:43:03 -04:00
Lioncash
72e21bc679 Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions
According to PEM 3.3.6.1, if a division by zero occurs and FPSCR.ZE is
set, then the result of the instruction operation is unchanged (see
table 3-13). Similarly, if an invalid operation occurs and FPSCR.VE is
set, then the destination should also remain unchanged (see table 3-12).
Hardware also matches this behavior.

We were handling this for other relevant instructions, but we weren't
doing so for the arithmetic instructions. This corrects that.

This also alters our NI_* functions to return an FPResult type, which
allows us to see which kind of exception in particular is set in
exceptional cases. This is necessary for cases like the fdiv
instructions, which requires handling both ZE and VE being potentially
set.
2018-06-19 18:09:03 -04:00
Lioncash
562d2a700b PowerPC: Add functions to read/write the full timebase value
Allows us to get rid of a silly pointer cast and deduplicate some code
from the front-end when it comes to reading the value.
2018-06-19 13:26:08 -04:00