Commit Graph

15391 Commits

Author SHA1 Message Date
Matthew Parlane a51c992e61 Merge pull request #4018 from bentley/openbsd-ifdefs
Openbsd ifdefs
2016-07-18 16:12:06 +12:00
Anthony J. Bentley cdf62dece3 Add OpenBSD to the list of Unixes declaring CEXIETHERNET. 2016-07-17 20:38:39 -06:00
Anthony J. Bentley 9a14cbb225 Undefine OpenBSD's system byteswap macros to pick up generic functions. 2016-07-17 20:18:50 -06:00
Anthony J. Bentley 6e6b113a7e Clarify error message.
If the #error hits, the operating system may be fine but the
architecture won't be.
2016-07-17 19:02:59 -06:00
Anthony J. Bentley eea609c55e Explicitly error out when no context definition is provided.
If there is no context definition in a non-generic build, compilation
will error out anyway, but in a less obvious place.
2016-07-17 18:59:26 -06:00
Matthew Parlane 4b9173ca62 Merge pull request #4017 from bentley/openbsd-libs
OpenBSD neither provides nor requires libdl and librt.
2016-07-18 12:42:14 +12:00
Scott Mansell ff3b4a0fd7 Merge pull request #4020 from bentley/fstat64
Use the standard stat()/fstat() interfaces, not nonstandard *64().
2016-07-18 12:22:33 +12:00
Anthony J. Bentley eb4cae78aa OpenBSD neither provides nor requires libdl and librt. 2016-07-17 18:06:38 -06:00
Matthew Parlane b9246cf5e1 Merge pull request #4019 from bentley/posix-includes
POSIX includes portability
2016-07-18 09:19:20 +12:00
Léo Lam 66c2ce6c74 DolphinWX: Center the links in the About dialog
This makes the links explicitly vertically centered in the DolphinWX
About dialog. It is not needed on Windows, because the links have the
same height as text (and look just like text links). However, this is
required on other platforms or the links would look misaligned.
2016-07-17 22:48:26 +02:00
Anthony J. Bentley f4cc52813c Add required POSIX includes and fairly portable Unix include.
POSIX specifies that inet_ntoa() is declared in arpa/inet.h, and that
POLLRDNORM, etc. are defined in poll.h.

gethostbyname() is not specified by POSIX, but the manpages in OpenBSD,
FreeBSD, OS X, and glibc all state that it is declared in netdb.h.

Without these headers, the build fails on OpenBSD and possibly other
systems.
2016-07-17 04:41:15 -06:00
Anthony J. Bentley 5bab6210ef Use the standard stat()/fstat() interfaces, not nonstandard *64().
Most modern Unix environments use 64-bit off_t by default: OpenBSD,
FreeBSD, OS X, and Linux libc implementations such as Musl.

glibc is the lone exception; it can default to 32 bits but this is
configurable by setting _FILE_OFFSET_BITS.

Avoiding the stat64()/fstat64() interfaces is desirable because they
are nonstandard and not implemented on many systems (including
OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either
the default or trivial to set up.
2016-07-17 04:30:00 -06:00
Anthony J. Bentley de6babb928 Add an OpenBSD driver identifier. 2016-07-17 04:13:06 -06:00
Anthony J. Bentley 64fb96e493 OpenBSD uses pthread_set_name_np() to set the name of a thread. 2016-07-17 04:09:46 -06:00
Anthony J. Bentley 5c90738638 OpenBSD doesn't support per-thread locales. 2016-07-17 04:08:44 -06:00
Anthony J. Bentley 242c770fe5 OpenBSD has a custom sysctl for physical memory. 2016-07-17 04:06:38 -06:00
Aestek 9c5b546e2e Add Wii sdcard to CommonPaths 2016-07-16 22:48:46 +02:00
Aestek 51c77e8eea Add md5 testing to netplay
Allows to test current game, an arbitrary game or the sdcard of all players
at once.
2016-07-16 22:48:46 +02:00
mimimi085181 8b7bfe6cf9 Netplay: Fix synchronization for the Wiinote netplay
The old implementation always polled the local 1st Wiimote and used that as input for the Wiimote that is mapped to the player. But the reporting mode for Wiimotes can be different, even when using the same extensions. So an input for Wiimote 1 with a data size 4 could be used for Wiimote 2, which actually requires data size 7 at that time for example.

The 2nd problem was that the code added a dummy input into the buffer, when the reporting mode changed. But when the data from the other player hasn't arrived yet, the data in the buffer is out of order. Well, i think this is the problem, i'm not 100% sure, because i don't fully understand how the buffer works. But on the other hand, i'm pretty sure this will just force sync the players on reporting mode changes, instead of allowing them to be apart.

Pros:
- No more desyncs caused by big bugs in the code.
- Can use different extensions for different players.

Cons:
- Higher latency, because instead of polling 1 controller per player at once, all controllers are polled in order, send to the other players, before the next is processed.
- Have to setup the Wiimote, which the player is going to use, instead of the 1st one.

Now, if the controller config could temporarily be overridden with the one from another slot, the 2nd problem could be fixed. But at the same time, we would lose the ability to use different extensions. (unless we hack around it somehow, or properly send the used extension to the other players)
2016-07-16 13:00:54 +02:00
Pierre Bourdon bb87bb73f4 Merge pull request #4004 from degasus/dynamic-bat
JitCache: Support for VMEM + MSR bits
2016-07-16 12:26:54 +02:00
degasus f9e5660106 JitCache: Implement block unlinking. 2016-07-16 09:24:10 +02:00
magumagu 0de9d94de3 Add ISI logging to interpreter. 2016-07-16 09:24:09 +02:00
magumagu 0f788e0c3d Add support for DSI exceptions to CachedInterpreter.
Should be straightforward.  Maybe useful for the purpose of testing.
2016-07-16 09:24:09 +02:00
magumagu b81d008f92 JIT: fix handling of PC in dispatcher/block cache.
Specifically, don't make any assumptions about what effective addresses
are used for code, and correctly handle changes to MSR.DR/MSR.IR.

(Split off from dynamic-bat.)
2016-07-16 09:24:05 +02:00
EmptyChaos 8f7f9cbb9c DQt2: Warning window HiDPI fix.
QSizePolicy::Expanding includes ShrinkFlag which is bad.
QSizePolicy::MinimumExpanding prevents the truncation.
2016-07-16 10:51:02 +10:00
Pringo 8d6f23fa9c Clarify Boot from DVD Message 2016-07-15 13:11:13 -07:00
Mat M fac7d09091 Merge pull request #3737 from EmptyChaos/update-wx
Externals: Update wxWidgets to 3.1.0
2016-07-15 09:48:14 -04:00
Lioncash 5b2ddbc4b2 EXI_Channel: Change m_pDevices to m_devices
Basic name change to get rid of (incorrect) Hungarian notation
2016-07-15 01:43:06 -04:00
Lioncash 642284fec4 EXI_Channel: Use std::array 2016-07-15 01:22:28 -04:00
Pierre Bourdon a9d8a7decd Merge pull request #4009 from leoetlino/common-id-assign
ControllerInterface: Make the ID assigning code common
2016-07-14 23:13:30 +02:00
Matthew Parlane a97a546bd6 Merge pull request #3594 from lioncash/threads-a-joke-about
Core: Use the thread_local keyword
2016-07-15 08:50:54 +12:00
Léo Lam 788e19f54d ControllerInterface: Make the ID assigning code common
This makes the device ID assigning code common to all backends, by
moving it to AddDevice() instead of copy-pasting or replicating
the logic in the backends.

Also, to prepare for hotplugging, instead of relying on a name usage
count, the new ID assigning system always starts from ID 0 and tries
to assign the first ID that is not used.
2016-07-14 10:50:53 +02:00
Pringo 94353978ae Finish Menu Capitalization Fixes 2016-07-13 21:05:59 -07:00
Matthew Parlane ca8484cb72 Merge pull request #3936 from Pringo/fix-menu-capitalization
Fix Menu Capitalization
2016-07-14 14:19:34 +12:00
Pierre Bourdon 667e18a8a3 Merge pull request #3958 from jloehr/Fix-SCMRevGen-MSBuild(x64)
Fix SCMRevGen for 64-bit MSBuild
2016-07-13 19:51:24 +02:00
Pierre Bourdon 014037ebb7 Merge pull request #3983 from JosJuice/discio-enums
Move DiscIO enums to a new file
2016-07-13 19:51:01 +02:00
JosJuice 0a15aaaa12 Move DiscIO enums to a new file
At first there weren't many enums in Volume.h, but the number has been
growing, and I'm planning to add one more for regions. To not make
Volume.h too large, and to avoid needing to include Volume.h in code
that doesn't use volume objects, I'm moving the enums to a new file.
I'm also turning them into enum classes while I'm at it.
2016-07-13 17:29:27 +02:00
Julian Löhr 6f65293131 Fix SCMRevGen for 64-bit MSBuild
CScript must be run as 64-bit regardless of the MSBuild bitness. Otherwise it won't find 64-bit Git installations.
However the "Sysnative" redirector is not available for 64-bit processes. So a fix is needed when 64-bit MSBuild is run.
The "ProgramFiles(x86)" Macro is only set for 64-bit, otherwise it is empty. Therefore it can be used as condition to check whether the current MSBuild process is 32 or 64-bit.
2016-07-13 17:28:55 +02:00
Pierre Bourdon 89a03174cc Merge pull request #4001 from leoetlino/split-controller-setting
ControllerEmu: Split the Setting class
2016-07-13 13:59:59 +02:00
Léo Lam 213373f5f9 StringUtil: Make TryParse parse floats as booleans
This is needed to keep compatibility with old configuration files which
didn't store booleans as booleans, but as floats/doubles.
2016-07-13 13:50:48 +02:00
Matthew Parlane baf9abe911 Merge pull request #3980 from JosJuice/changedisc-threading-simplification
DVDInterface: Simplify calling ChangeDisc from CPU thread
2016-07-13 22:48:47 +12:00
Pierre Bourdon f4d2626d2b Merge pull request #4005 from EmptyChaos/blockcache-bug
SectorReader: Minor cache bias bug
2016-07-13 12:11:19 +02:00
Matthew Parlane 3f9a98ddf2 Merge pull request #3979 from JosJuice/use-g_want_determinism
Use g_want_determinism more
2016-07-13 18:56:23 +12:00
Matthew Parlane ebf10d38dd Merge pull request #3978 from JosJuice/frameskipping-determinism
Movie: Fix FrameSkipping determinism condition
2016-07-13 18:54:51 +12:00
Matthew Parlane 4d2df0a8ce Merge pull request #3989 from JosJuice/insert-sd-thread
Don't ScheduleEvent from wrong thread when inserting SD card
2016-07-13 18:44:50 +12:00
Scott Mansell cb63bacd65 Merge pull request #4006 from EmptyChaos/dqt2-warning
DolphinQt2: Startup Warning
2016-07-13 18:27:01 +12:00
EmptyChaos 0efb19e66a DolphinQt2: Experimental GUI Warning Prompt.
Add a GUI prompt to tell users not to use DolphinQt by accident.
2016-07-13 15:52:45 +10:00
EmptyChaos 3e4cea7f6f DolphinQt2: Fix MSBuild for Visual Studio.
Null VideoBackend is not being linked correctly.
2016-07-13 11:12:20 +10:00
Rohit Nirmal bb52aad546 Fix building with PCH disabled. 2016-07-12 12:43:03 -05:00
Léo Lam 47859ad40c WiimoteReal: Call Update() less often
This moves back the WiimoteScanner:Update() call to where it originally
was, since according to a comment it is intended to be called only when
"when not looking for more Wiimotes", and calling it too often causes
the Bluetooth module to be loaded/unloaded a lot of times.
2016-07-12 16:50:41 +02:00
Léo Lam 5e829f4527 ControllerEmu: Split the Setting class
The Setting class was used for both numeric values and booleans, and
other parts of the code had hacks to make it work with booleans.

By splitting Setting into NumericSetting and BooleanSetting, it is
clear which settings are numeric, and which are boolean, so there is
no need to guess by checking the default values or anything like that.
Also, booleans are stored as booleans in config files, instead of 1.0.
2016-07-12 11:42:18 +02:00
Scott Mansell e0839a9478 Strip whitespace from Evdev and OSX controller names. 2016-07-12 14:19:07 +12:00
Pierre Bourdon f59b8b7536 Merge pull request #3986 from JosJuice/scrubbing-improvements
Scrubbing improvements
2016-07-12 02:24:04 +02:00
Pierre Bourdon ac00b249aa Merge pull request #3985 from thegrb93/master
Prevent windows from idling while playing a game with a gc controller
2016-07-11 23:45:53 +02:00
Garrett Brown 0856e162a3 Prevent windows from idling while playing a game with a gamecube controller. 2016-07-11 13:39:06 -05:00
Pierre Bourdon 2de6d07360 Merge pull request #4000 from JosJuice/movie-netplay-global
Movie: Don't access g_netplay_initial_gctime directly
2016-07-11 17:09:04 +02:00
JosJuice 8df4437b6c Movie: Don't access g_netplay_initial_gctime directly
Using the global variable directly is ugly and might not be threadsafe.
2016-07-11 16:49:58 +02:00
Léo Lam 6cc4591226 evdev: Clamp axis values to the 0.0-1.0 range
The values are expected to be in the 0.0-1.0 range (as indicated by the
comment), and other parts of Dolphin also expect it to be in that range
since the "full" axis has a -1.0 to 1.0 range.  However, this is not
always the case and fvalue can end up being outside of the range. This
clamps fvalue to always be in the 0.0 and 1.0 range.
2016-07-11 14:00:09 +02:00
JosJuice 53e7eed28d DiscScrubber: Fix issue 9356 2016-07-11 11:46:15 +02:00
Pierre Bourdon f57aec0525 Merge pull request #3858 from Aestek/feature/better-netplay-gamenotfound
Netplay: check if all players have the game before starting
2016-07-11 10:06:00 +02:00
Pierre Bourdon 8de6800e9d Merge pull request #3998 from comex/warning-fixes-951
Fix more warnings:
2016-07-11 04:04:30 +02:00
comex 8a02473237 Fix more warnings:
- Externals/soundtouch/CMakeLists.txt: add -w (since it's not our code) to
silence an unused variable warning
- Source/Core/Core/NetPlayClient.cpp: Work around a Clang/libc++ bug where
initializing a std::array the way the standard says you're supposed to produces
a warning.  (libc++'s implementation of std::array, like any sane
implementation, has a C array as a field, so the most explicit form of
initialization would use two braces, one for the struct and one for the array.
Clang has a general warning for not being explicit with braces, which is
usually sane.  But the standard only guarantees that initializing std::array
works with a single pair of braces!)  There are other places in Dolphin that
incorrectly use double braces, presumably to avoid the warning, so maybe the
warning should just be turned off, but in any case here I just switch to an
equivalent .fill().
2016-07-10 21:51:28 -04:00
comex 42660292f6 Use newer ffmpeg APIs to avoid deprecation warnings. 2016-07-10 21:36:18 -04:00
Pierre Bourdon 3a895f88bf Merge pull request #3988 from leoetlino/scanning-block
WiimoteReal: Don't block on refresh
2016-07-10 21:40:48 +02:00
Léo Lam 80fc5e2814 WiimoteReal: Don't use a recursive mutex
This replaces a recursive mutex with a normal mutex.
2016-07-10 20:41:00 +02:00
Pierre Bourdon 08e482eae3 Merge pull request #3614 from rukai/LinuxLocalDev
Linux support for portable.txt + documentation in readme
2016-07-10 16:34:33 +02:00
Léo Lam c827fdd2b5 WiimoteReal: Don't block on refresh
This changes Refresh() to use the existing scanning thread to scan for
devices, instead of running the scan on the UI thread and blocking it.

Also makes the UI thread not block when Continuous Scanning is disabled
and removes duplicated code.

Should fix issue 8992.

Under the hood:
* The scanning thread is now always active, even when continuous
  scanning is disabled.
* The initialize code which waits for Wiimotes to be connected also
  uses the scanning thread instead of scanning on yet another thread.
* The scanning thread now always checks for disconnected devices, to
  avoid Dolphin thinking a Wiimote is still connected when it isn't. So
  we now check if we need new Wiimotes or a Balance Board at scan time.
2016-07-10 13:29:57 +02:00
Aestek cd9a58b704 Check if all players have the game before starting netplay
https://bugs.dolphin-emu.org/issues/8885
2016-07-10 10:13:34 +02:00
Pierre Bourdon 7ee6d08213 Merge pull request #3961 from phire/less_virtual_xfb_lag
XFB: Send image to screen at start of field (Reduce VirtualXFB latency)
2016-07-10 03:01:26 +02:00
Pierre Bourdon 6204a813fd Merge pull request #3995 from RisingFog/remove_vi_movie_playback
Remove VI count limit on Movie playback
2016-07-10 02:54:31 +02:00
Chris Burgener d00c013339 Remove VI count limit on Movie playback 2016-07-09 20:35:01 -04:00
Léo Lam 90ed048532 DolphinWX: Print a message when we receive a signal
This makes it clear that sending a signal a second time will force stop
Dolphin (which is useful in case the GUI is deadlocked or otherwise
unable to react to the signal).
2016-07-09 20:27:49 +02:00
Pierre Bourdon 59f4d445bb Merge pull request #3991 from leoetlino/signal
DolphinWX: Shut down cleanly on shutdown signal
2016-07-09 14:17:22 +02:00
mimimi085181 de7b2f984a Make tries a u32
Before this variable was an u8, which could theoretically result in desyncs with a large buffer(greater than 255*120/200=153) filled with blank inputs. If this could actually happen, i don't know. But this part of the code on its own looks like it could break.
2016-07-08 23:30:25 +02:00
mimimi085181 b962c1f392 Fix running more than one session with Wiimotes
A static var is not a good idea, when the value needs to be reset for every session. Also, the variable holds the data size, so it makes sense to set the data size, where the data is added.
2016-07-08 23:30:24 +02:00
Léo Lam 0f028df6b2 DolphinWX: Shut down cleanly on signal
This makes DolphinWX shut down cleanly, just like it would with
File->Exit when it receives a SIGINT, SIGTERM (Unix) or some signals
on Windows.

The default signal handler will be restored after a first shutdown
signal so a second signal will exit Dolphin forcefully.
2016-07-08 23:11:27 +02:00
mimimi085181 4f9fe41ee6 Revert pr#3660
https://github.com/dolphin-emu/dolphin/pull/3660
2016-07-08 20:23:33 +02:00
mimimi085181 330289cf71 Revert pr#3691
https://github.com/dolphin-emu/dolphin/pull/3691
2016-07-08 20:23:32 +02:00
EmptyChaos 9036b9d8e8 SectorReader: Fix cache line bias
Minor bug where SectorReader::GetEmptyCacheLine was biased towards
the first hit.
2016-07-09 02:27:35 +10:00
JosJuice b960b5677b Don't ScheduleEvent from wrong thread when inserting SD card 2016-07-08 00:02:06 +02:00
mimimi085181 fcf5d4f6bc Revert pr#3802
https://github.com/dolphin-emu/dolphin/pull/3802
2016-07-07 14:25:30 +02:00
JosJuice 31226b8503 DiscScrubber: Replace unused blocks with 0x00 instead of 0xFF 2016-07-07 11:51:58 +02:00
Pierre Bourdon 3f03e2d5fe Merge pull request #3982 from JosJuice/how-did-this-even-compile
DolphinWX: Fix a mix-up
2016-07-06 18:46:05 +02:00
JosJuice 3b7c614124 DolphinWX: Fix a mix-up
Caused by a commit of mine, cb3b1b6
2016-07-06 18:31:18 +02:00
JosJuice 865be48ee3 Movie: Simplify ChangeDisc path handling 2016-07-05 21:13:43 +02:00
JosJuice ce9622c426 Use g_want_determinism in code added by 8f0cbef
There's no reason this only should apply to netplay.
2016-07-05 20:58:44 +02:00
JosJuice 6951228abd Use g_want_determinism more 2016-07-05 18:50:06 +02:00
JosJuice 1da866d7de DVDInterface: Simplify calling ChangeDisc from CPU thread
When Movie was calling ChangeDisc, it was moving execution to
the host thread just to then make the host thread the CPU thread.
We can simply run the code directly on the CPU thread instead.
2016-07-05 18:20:24 +02:00
JosJuice b6eb5c25d1 Movie: Fix FrameSkipping determinism condition
The old condition seems to be a typo of
!(IsMovieActive() || NetPlay::IsNetPlayRunning())
2016-07-05 13:57:06 +02:00
JosJuice f3e459091b Merge pull request #3874 from dolphin-emu/revert-3873-argh
Revert "Undo the addition of a translatable string during the string freeze"
2016-07-05 12:07:53 +02:00
Matthew Parlane 7ad74832e6 Revert "Undo the addition of a translatable string during the string freeze" 2016-07-05 21:44:38 +12:00
Scott Mansell 708fb35fdb Merge pull request #3878 from mathieui/enable-cheats-for-jmc-the-cheater
Sync the "enable cheat" setting over netplay
2016-07-05 21:36:02 +12:00
Scott Mansell 69bf05b302 Merge pull request #3976 from JosJuice/shutdown-clear-codes
PatchEngine: Clear active codes on shutdown
2016-07-05 21:13:48 +12:00
JDV d6a2fcd26c Formatting and setting is now only temporarily changed (#1)
Add the cheat setting to the bootmanager config cache, and reformat
2016-07-05 02:23:19 +02:00
mathieui 8a2e7fddd1 Sync the "enable cheat" setting over netplay 2016-07-05 02:23:10 +02:00
Rukai f42350e719 portable.txt enables portable configuration on linux, README updated to
show how to build a portable and a local dolphin on linux.
2016-07-04 19:39:10 +10:00
hthh 8be5717a60 Improve PerfQuery accuracy
In TimeSplitters: Future Perfect, PerfQuery is used to detect
the visibility of lights and draw coronas. 25 points are drawn
for each light. However, the returned count was incorrectly
being divided by four leading to dim coronas.

Using 4x antialiasing was a workaround because of a bug where
antialiasing multiplied the PerfQuery results. This commit
fixes that bug too (but only for OpenGL).
2016-07-04 18:54:49 +10:00
JosJuice b210769ea0 PatchEngine: Clear active codes on shutdown
The active codes normally get cleared when a game boots, because
LoadPatches gets called, replacing the codes from the previous game.
However, there were cases where LoadPatches doesn't get called, and
then codes from the previous game would be used for the current game.
This commit clears the codes on shutdown so that it doesn't matter
whether the boot process loads LoadPatches.
2016-07-01 13:07:57 +02:00
Lioncash 9bfafed5b8 FifoPlayer: Get rid of semicolons on namespace braces 2016-07-01 04:36:05 -04:00
Lioncash 06ccfef1c1 FifoPlayer: Get rid of unnecessary includes 2016-07-01 04:25:40 -04:00
Markus Wick b30bf5d959 Merge pull request #3966 from phire/ImNotTheOnlyPersonWhoMakesThisMistake
Fix broken debug builds in visual studio
2016-07-01 08:24:02 +02:00
Chris Burgener fcbb39d236 Merge pull request #3972 from RisingFog/merge_addstereosamples
Remove AddStereoSamples function
2016-07-01 01:03:14 -04:00
Chris Burgener 76abf1f727 Remove AddStereoSample function 2016-07-01 00:59:25 -04:00
Chris Burgener 046c96f1b8 Merge pull request #3944 from RisingFog/configurable_dump_path
Add Dump Path to Configuration Menu
2016-06-30 20:46:52 -04:00
Chris Burgener e92ff9d09f Add Dump Path to Configuration Menu 2016-06-30 20:20:48 -04:00
hthh e57333ac5e Jit: Remove unsafe MOV optimization
This optimization broke arithXex in rare cases by
emitting XOR where MOV was expected.
2016-07-01 01:43:35 +10:00
Pierre Bourdon f8bf839e36 Merge pull request #3967 from JosJuice/remove-boomy
Remove Boomy
2016-06-30 12:07:50 +02:00
JosJuice ed42467e87 Fall back to default theme when the configured theme doesn't exist 2016-06-30 11:49:13 +02:00
Scott Mansell 20449ec91f Don't forget to initalize your variables. 2016-06-30 20:27:19 +12:00
Lioncash 396ae89e5c FifoDataFile: Convert FifoFrameInfo's fifoData member into a vector 2016-06-29 02:54:49 -04:00
Lioncash 437b1294bb FifoDataFile: Convert MemoryUpdate data member to std::vector 2016-06-29 02:29:34 -04:00
Lioncash 8943d23a4c FifoDataFile: Make Load return a unique_ptr 2016-06-28 21:23:55 -04:00
Chris Burgener 41335752e5 Merge pull request #3891 from RisingFog/split_audio_dump_sample_rate
Split Audio Dumps on Sample Rate Changes
2016-06-28 11:52:40 -04:00
Scott Mansell 35566316ed XFB: Send image to screen at start of field.
This is much more accurate to the hardware, and saves around 16ms
of latency.
2016-06-28 15:12:43 +12:00
Chris Burgener 28a3691e70 Merge pull request #3930 from RisingFog/split_video_dump_resolution
Split Video Dumps on Resolution Change
2016-06-27 22:39:19 -04:00
Matt Mastracci 1e08ad0d97 Add MOV optimization and MOV_sum
Replaces incarnations of the A=B+C pattern throughout the
code so we can apply optimizations consistently.
2016-06-27 15:43:52 -06:00
Matt Mastracci b1296a7825 Refactor fastmem/trampoline code.
Simplication to avoid reading back the generated instructions, allowing
us to handle all possible cases.
2016-06-27 14:58:20 -06:00
Markus Wick ddc9e414ee Merge pull request #3454 from mmastrac/gqr_fixes
JIT perf improvements for quantized loads/stores
2016-06-27 18:31:50 +02:00
Chris Burgener f31adf9635 Fix D3D crashes/issues 2016-06-27 10:13:17 -04:00
Léo Lam 1b71249562 D3D: Fix crash on start with BBox enabled
Someone removed the BBox::Init(), causing crashes when BBox is enabled.

Fixes issue #9643.
2016-06-27 12:45:00 +02:00
Pierre Bourdon cf2c5e276c Merge pull request #3957 from lioncash/mutex
FifoRecorder: Use lock_guard instead of explicit lock/unlock
2016-06-27 10:36:43 +02:00
Lioncash 1dee75a68e FifoRecorder: Use lock_guard instead of explicit lock/unlock 2016-06-27 04:15:16 -04:00
Matt Mastracci 4aa5291f54 Refactor the paired load/store code
Simplification/reduction of duplicated code. Detect other constant GQR values and inline loads (5-10% speedup) and do direct dispatch to AOT methods for stores.
2016-06-26 19:49:02 -06:00
Léo Lam d9fc1e01b4 LightingShaderGen: Fix formatting 2016-06-26 16:35:44 +02:00
Markus Wick 6b01eca3a0 Merge pull request #3950 from phire/fix-warnings
VideoCommon: Fix some warnings.
2016-06-26 13:37:15 +02:00
Scott Mansell d958388617 VideoCommon: Fix some warnings. 2016-06-26 23:10:31 +12:00
degasus d79aeaa1e9 VideoCommon: Drop GetConfigName.
We're past 5.0 now, so there is no need to look for old inis.
2016-06-26 12:34:59 +02:00
degasus 5f2f462067 VideoBackends: Merge ShowConfig functions. 2016-06-26 12:34:59 +02:00
degasus 7833ff25df VideoBackends: Merge Initialize and Shutdown functions. 2016-06-26 12:34:59 +02:00
Scott Mansell b16333a25c Merge pull request #3716 from degasus/coretiming
CoreTiming: Drop ProcessFifoWaitEvents.
2016-06-26 22:13:05 +12:00
Scott Mansell ee9e3432cb Merge pull request #3513 from phire/make_hdkr_happy
Get shadergen ready for Multithreadded generation of shaders.
2016-06-26 21:55:22 +12:00
degasus ca96302a36 PowerPC: Dedoublify CheckExternalExceptions. 2016-06-26 11:29:25 +02:00
degasus 4c5f8f9c91 CoreTiming: Drop ProcessFifoWaitEvents.
globalTimer is only written in Advance, so this function has no function.
2016-06-26 11:29:25 +02:00
Matthew Parlane 2776bcbf55 Merge pull request #3903 from leoetlino/wiimote-disconnect
Disconnect real Wiimotes when disconnected by games (not on all platforms)
2016-06-26 18:33:09 +12:00
Mat M 8d1a70af9a Merge pull request #3945 from comex/warning-fixes-2016
Warning fixes 2016
2016-06-26 02:16:35 -04:00
Mat M cf50ed82bb Merge pull request #3943 from ShadowsFriend/nopch-fix
ControllerInterface: Include memory to fix building without pch
2016-06-26 02:13:47 -04:00
Mat M c896645313 Merge pull request #3947 from magumagu/interpreter-cleanup
Misc cleanup in Interpreter.
2016-06-26 02:11:09 -04:00
Mat M 8d2137ba85 Merge pull request #3948 from magumagu/dead-bfakemem
Delete dead variable named bFakeVMEM.
2016-06-26 02:10:13 -04:00
magumagu 1c28a27ee4 Delete dead variable named bFakeVMEM.
(There's another bFakeVMEM in Memmap.h.)
2016-06-25 23:05:55 -07:00
magumagu b5ed27ffa8 Misc cleanup in Interpreter.
Mostly comment changes; also gets rid of an unnecessary call to
CheckExceptions.
2016-06-25 22:52:17 -07:00
EmptyChaos 822326eea9 Update wxWidgets to 3.1.0
From wxWidgets master 81570ae070b35c9d52de47b1f14897f3ff1a66c7.

include/wx/defs.h -- __w64 warning disable patch by comex brought forward.

include/wx/msw/window.h -- added GetContentScaleFactor() which was not implemented on Windows but is necessary for wxBitmap scaling on Mac OS X so it needs to work to avoid #ifdef-ing the code.

src/gtk/window.cpp -- Modified DoSetClientSize() to direct call wxWindowGTK::DoSetSize() instead of using public wxWindowBase::SetSize() which now prevents derived classes (like wxAuiToolbar) intercepting the call and breaking it. This matches Windows which does NOT need to call DoSetSize internally. End result is this fixes Dolphin's debug tools toolbars on Linux.

src/osx/window_osx.cpp -- Same fix as for GTK since it has the same issue.

src/msw/radiobox.cpp -- Hacked to fix display in HiDPI (was clipping off end of text).

Updated CMakeLists for Linux and Mac OS X. Small code changes to Dolphin to fix debug error boxes, deprecation warnings, and retain previous UI behavior on Windows.
2016-06-26 15:25:29 +10:00
Pringo 96d574b7ab Fixed Missed Uncapitalized Words. 2016-06-25 21:50:56 -07:00
comex efef07293b Suppress deprecation warning. 2016-06-26 00:49:51 -04:00
comex fe73ae8526 Add missing override 2016-06-26 00:49:50 -04:00
comex 61813767c7 Get rid of #define PAGE_MASK and round_page, which conflict with OS X headers 2016-06-26 00:49:46 -04:00
Markus Wick bc354277ca Merge pull request #3940 from lioncash/tie
Device: Use std::tie for operator==
2016-06-26 06:40:14 +02:00
Mat M 3d72fe3173 Merge pull request #3942 from comex/osx-build-fix
Fix in-tree build (cmake .) on OS X.
2016-06-26 00:35:00 -04:00
Scott Mansell 2f134c5c36 Remove the rest of ShaderDebugging.
Without UID checking, it's basically a no-op that disables shader cache
and stores the shader source code (without ever reading it back).
2016-06-26 16:25:11 +12:00
magumagu e01a33f69b Make reset button (Emulation -> Reset) work correctly for Wii games.
Fixes issue 8328.

As far as I know, this works the same way as console. Games will generally
react to the reset button the same way as Home->Reset, so this is
only marginally useful, but possibly nice to have in certain situations.

Note that if you try to use Reset, and you're running a WAD which isn't
installed, it will likely crash because WADs respond to the reset button
by launching themselves with ES_LAUNCH.  It might be a good idea to add some
sort of hack to make this work as expected.

It would be easy to extend this to support the power button, but it's
unclear how exactly that should be exposed in the UI. See also issue 8979.

Needs to be rebased once PR #3811 is merged.
2016-06-25 21:21:44 -07:00
Scott Mansell ebe5fd0b36 Multithreadded Shadergen: Minor fixups. 2016-06-26 16:13:22 +12:00
Scott Mansell 95469ec225 Remove UID Checker.
Kind of pointless now that multiple shaders with the same UID are
now fundementally impossible.
2016-06-26 16:13:22 +12:00
Scott Mansell 24e5d21780 Multithreadded Shadergen: Second pass over Pixel Shadergen.
Note: It's not 100% perfect, as some of the GPU capablities leak into the
pixel shader UID.

Currently our UIDs don't get exported, so there is no issue. But someone
might want to fix this in the future.
2016-06-26 16:13:21 +12:00
Scott Mansell 1a831cfc7d Multithreadded Shadergen: Second Pass over vertex/lighting Shadergens
As much as possible, the asserts have been moved out of the GetUID
function. But there are some places where asserts depend on variables
that aren't stored in the shader UID.
2016-06-26 16:13:21 +12:00
Scott Mansell 28c7113e41 Multithreadded Shadergen: Second Pass over geometery Shadergen 2016-06-26 16:13:21 +12:00
Scott Mansell fa02f47729 Multithreadded Shadergen: First pass over geometery Shadergen. 2016-06-26 16:13:20 +12:00
Scott Mansell 4969415f38 Remove global refrences from common code.
Bug Fix: Previously vertex shaders and geometery shaders didn't track
         antialaising state in their UIDs, which could cause AA bugs
	 on directx.
2016-06-26 16:13:20 +12:00
Scott Mansell 0d996f512b Multithreadded Shadergen: First pass over pixel Shadergen
Bug Fix: It was theoretically possible for a shader with depth writes
         disabled to map to the same UID as a shader with late depth
	 writes.
	 No known test cases trigger this.
2016-06-26 16:13:20 +12:00
Scott Mansell e99364c7c9 UID Change: Fix bug with indirect stage UIDs
Bug Fix: The normal stage UIDs were randomly overwriting indirect
         stage texture map UID fields. It was possible for multiple
	 shaders with diffrent indirect texture targets to map to
	 the same UID.
         Once again, it dpesn't look like this bug was ever triggered.
2016-06-26 16:13:19 +12:00
Scott Mansell 03f2c9648d Shader UID change: Only store the two bits of components we need.
This frees up 21 bits and allows us to shorten the UID struct by an entire
32 bits.

It's not strictly needed (as it's encoded into the length) but I added a
bit for per-pixel lighiting to make my life easier in the following
commits.
2016-06-26 16:13:19 +12:00
Scott Mansell 53c402dbc5 Multithreadded Shadergen: First Pass over vertex/lighting Shadergens
The only code which touches xfmem is code which writes directly into
uid_data.

All the rest now read their parameters out of uid_data.

I also simplified the lighting code so it always generated seperate
codepaths for alpha and color channels instead of trying to combine
them on the off-chance that the same equation works for all 4 channels.

As modern (post 2008) GPUs generally don't calcualte all 4 channels
in a single vector, this optimisation is pointless. The shader compiler
will undo it during the GLSL/HLSL to IR step.

Bug Fix: The about optimisation was also broken, applying the color light
         equation to the alpha light channel instead of the alpha light
	 euqation. But doesn't look like anything trigged this bug.
2016-06-26 16:13:19 +12:00
comex 659d079d5c Fix in-tree build (cmake .) on OS X.
OS X uses a case insensitive filesystem by default: when I try to build,
a system header does #include <assert.h>, which picks up
Source/Core/Common/Assert.h.  This only happens because CMakeLists adds
'${PROJECT_BINARY_DIR}/Source/Core/Common' as an include directory: in
an out-of-tree build, that directory contains no other source files, but
in an in-tree build PROJECT_BINARY_DIR is just the source root.

This is only used for scmrev.h.  Change the include directory to
'${PROJECT_BINARY_DIR}/Source/Core' and the include to
"Common/scmrev.h", which is more consistent with normal headers anyway.
2016-06-25 23:57:17 -04:00
Lioncash 55916b963d Device: Use std::tie for DeviceQualifier's operator== 2016-06-25 23:45:37 -04:00
Christian Widmer be922730b3 ControllerInterface: Include memory to fix building without pch
All affected files use shared_ptr but do not include memory which breaks
building without precompiled headers.
2016-06-26 05:42:29 +02:00
Matthew Parlane 3a26167148 Merge pull request #3931 from dhustkoder/master
constexpr added to BitSet.h. conflicts solved
2016-06-26 14:42:46 +12:00
Pringo 56d0f08f29 Change "Op" to "Instruction" 2016-06-25 19:12:32 -07:00
Pierre Bourdon c1fa1e6749 Merge pull request #3923 from leoetlino/ciface-small-cleanup
ControllerInterface: Small cleanup
2016-06-26 04:03:33 +02:00
Mat M e31a4d1f07 Merge pull request #3813 from degasus/null_video
Null: Initial release of null video backend
2016-06-25 20:14:28 -04:00
Matthew Parlane 5ba3e641ea Merge pull request #3933 from delroth/fixed-size-queue
FixedSizeQueue: modernize (std::array, std::move)
2016-06-26 10:31:07 +12:00
degasus fdbda7b7dd Null: Create Visual Studio project file.
Why is this so stupid on linux.....
2016-06-25 22:40:23 +02:00
degasus 59e4882af3 nullvideo: initial release of null video backend 2016-06-25 22:40:23 +02:00
Léo Lam 8678133e87 ControllerInterface: Switch to std::shared_ptr
Small cleanup by using std::shared_ptr and getting rid of
ciface.Devices() which just returned the m_devices (which defeats the
point of making m_devices protected).

Incidentally, this should make the code safer when we have
different threads accessing devices in the future (for hotplug?).

A lot of code use Device references directly so there is
no easy way to remove FindDevice() and make those unique_ptrs.
2016-06-25 21:46:39 +02:00
Pringo 6b568b1150 Fix Menu Capitalization 2016-06-25 10:50:04 -07:00
JosJuice 1878605d77 Undo some comment formatting changes from b5104a7 2016-06-25 18:07:10 +02:00
Pierre Bourdon 9081d029e3 FixedSizeQueue: modernize (std::array, std::move) 2016-06-25 17:39:54 +02:00
Chris Burgener 88dbaf1fa5 Split Video Dumps on Resolution Change 2016-06-25 11:39:41 -04:00
Anthony Serna 64cf74abb4 Merge pull request #3678 from rukai/dolphinQtPropertiesDialog
DQt2: properties dialog - info tab
2016-06-25 10:31:46 -05:00
Rukai b5104a79f1 GCVolume: supports reading all opening.bnr information
DQT2: Game properties dialog contains info tab giving information about the selected iso.
2016-06-26 00:03:59 +10:00
dhust b707e199c2 constexpr added to BitSet.h. conflicts solved 2016-06-25 10:58:53 -03:00
Rukai e82e4a62c1 DQt2: Set a minimum width for toolbar buttons + fix stop button
Using a minimum width is a good compromise between
setting all buttons to the same width
and letting them all decide their own width.
This is because the small buttons are kept tidy and regular
while allowing the biggest buttons to fit their contents.
2016-06-25 23:58:04 +10:00
Matthew Parlane afa202738e Merge pull request #3865 from leoetlino/third-party-wiimotes
Change Bluetooth device discovery on Linux to use LIAC (updated #3327)
2016-06-26 00:17:57 +12:00
Matthew Parlane a7448271a9 Merge pull request #3892 from leoetlino/ciface-synchronisation
ControllerInterface: Add synchronisation
2016-06-26 00:17:08 +12:00
Léo Lam 9b075556ea Fix a small formatting issue 2016-06-25 13:46:53 +02:00
Léo Lam d3e2ae35ff ControllerInterface: Add synchronisation
Since we may have to add/access devices from different threads, this
adds synchronisation to anything that touches m_devices.
2016-06-25 13:46:53 +02:00
Léo Lam fd29e5c4cc ControllerInterface: Don't pass m_devices to the backends
Previously, the devices vector would be passed to all backends. They
would then manually push_back to it to add new devices. This was fine
but caused issues when trying to add synchronisation.

Instead, backends now call AddDevice() to fill m_devices so that it is
not accessible from the outside.
2016-06-25 13:46:53 +02:00
Matthew Parlane 2f9a911c54 Merge pull request #3913 from rukai/dolphinQtVSDLL
VS can now run dolphinQt directly without DLL errors
2016-06-25 23:36:01 +12:00
Bryan Grim 92c572a83d Change Bluetooth device discovery on Linux to use LIAC
This changes Bluetooth device discovery on Linux to use LIAC (Limited
Dedicated Inquiry Access Code) since third-party Wiimotes (such as Rock
Candy Wiimotes) are not discovered without it.

Also added accessor function in IONix class to help with checking if
the discovered Wiimote has already been found.

[leoetlino: code review suggested changes, remove unused variable,
commit message formatting fixes, and build fix]
2016-06-25 12:34:45 +02:00
Chris Burgener dba9d86b55 Merge pull request #3888 from RisingFog/remove_cpack_txt
Remove cpack_package_description.txt from Windows builds
2016-06-24 21:13:27 -04:00
Chris Burgener ca2eaac704 Split Audio Dumps on Sample Rate Changes 2016-06-24 21:12:15 -04:00
Rohit Nirmal 84cd57f99b Fix building with PCH disabled. 2016-06-24 11:46:48 -05:00
Lioncash 2904e96f1e Core: Use the thread_local keyword
Android and OSX are still twiddling their thumbs though,
so we have to keep pthreads around for them.
2016-06-24 09:14:10 -04:00
Léo Lam d575b40c73 Disconnect real Wiimotes when disconnected by games
This commit makes real Wiimotes really disconnect when they are
disconnected by the emulated software, which is more similar to how
it works with a real Wii and allows Wiimotes to be disconnected after
timeout for power saving.

This is currently only enabled on Linux, because of limitations on
the other platforms.
2016-06-24 14:47:39 +02:00
Pierre Bourdon 2fdfacd6d9 Add clang-format markers around fragile header inclusions. 2016-06-24 13:24:10 +02:00
Pierre Bourdon 43d0d692f9 Fix D3D12 headers missing includes. 2016-06-24 11:14:10 +00:00
Pierre Bourdon 5fcb4bb3ab Further fixes to the formatting change. WX sucks. 2016-06-24 12:16:10 +02:00
Pierre Bourdon 3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Pierre Bourdon 2115e8a4a6 Add annotations for code sections that need to remain manually formatted. 2016-06-24 10:41:46 +02:00
hthh 45ad585baf GUI: Fix truncated text on OS X 2016-06-23 22:17:53 +10:00
Chris Burgener 09dbe2337c Merge pull request #3904 from dhustkoder/master
_DEFAULT_SOURCE flag added, and clang check version for IsTriviallyCopyable m…
2016-06-22 10:54:39 -04:00
Scott Mansell 2ec3a24e4e analytics: Collect less data about controllers.
The name field can contain personal information, particularly in the
case of bluetooth devices on OSX which get configured with the user's
full name.
2016-06-22 17:02:30 +12:00
Rukai 59b7bb04b6 VS can now run dolphinQt directly without DLL errors 2016-06-21 22:42:15 +10:00
Scott Mansell 3dfea6e996 analytics: Collect controller information.
Collects the existence of a gamecube adapter, and the type of
whatever controller is configured for the first emulated gamepad.
2016-06-21 01:48:28 +12:00
Scott Mansell d197f489b9 analytics: Report OpenGL's adapter name too. 2016-06-20 23:54:44 +12:00
dhust 19fed720ff _DEFAULT_SOURCE flag added, and clang check for IsTriviallyCopyable macro
fix clang ver check for 4.0 +

using clang macro __has_feature

__GLIBCXX__ check added

fix __has_feature
2016-06-19 18:32:19 -03:00
Pierre Bourdon 45f91c02c7 Merge pull request #3908 from delroth/analytics-gpu
analytics: More accurate video backend name.
2016-06-19 16:40:28 +02:00
Pierre Bourdon 5982072a44 analytics: More accurate video backend name. 2016-06-19 16:36:18 +02:00
Pierre Bourdon b8496fc844 analytics: Disable ALPN only on Windows. 2016-06-19 12:54:40 +02:00
Pierre Bourdon 63dab254e0 Analytics: Implement UI.
* Opt-in popup on first start.
* Checkbox and button in the main config dialog.
2016-06-19 02:55:46 +02:00
Pierre Bourdon 121f270367 Add an Analytics reporting system.
Fully opt-in, reports to analytics.dolphin-emu.org over SSL. Collects system
information and settings at Dolphin start time and game start time.

UI not implemented yet, so users are required to opt in through config editing.
2016-06-19 02:55:46 +02:00
Pierre Bourdon 49ce9b153d scmrev: Add "distributor" option.
Used to distinguish between Dolphin distributions (e.g. "dolphin-emu.org",
"Ishiiruka", etc.).
2016-06-18 18:31:40 +02:00
Pierre Bourdon c4f5c471bb Externals: Add libcurl. 2016-06-18 18:31:40 +02:00
Pierre Bourdon fe51de23f1 StringUtil: Add a HexDump function.
Generates a string like the following from a binary blob:

000000: 00 00 04 74 79 70 65 00 09 61 70 70 2d 73 74 61  ...type..app-sta
000010: 72 74                                            rt
2016-06-18 16:37:09 +02:00
Scott Mansell 96ab76f81d TextureCache: Rename functions and add comments to clear up docs 2016-06-18 04:27:16 +12:00
Scott Mansell 94eaacae30 TextureCache: Track efb copies used in a partially updated texture
Fixes a major preformance regression in Skies of Arcadia during
battle transisions.

I had plans for a more advanced version of this code after 5.0,
but here is a minimal implemenation for now.
2016-06-17 23:46:22 +12:00
Chris Burgener 66fe98dbd9 Remove cpack_package_description.txt from Windows builds 2016-06-10 09:50:46 -04:00
Pierre Bourdon c514a48f4d Merge pull request #3776 from EmptyChaos/ar-isoprop-corrupt
ActionReplay: Fix ISOProperties corrupting active code set
2016-06-05 09:29:51 +02:00
Mat M a3e2436446 Merge pull request #3872 from JosJuice/movie-revision-nonhexadecimal
Movie: Improve handling of non-hexadecimal revision strings
2016-06-02 14:13:08 -04:00
JosJuice 9681fee86a Movie: Improve handling of non-hexadecimal revision strings 2016-06-02 18:55:35 +02:00
Matthew Parlane 7a99312687 Merge pull request #3873 from JosJuice/argh
Undo the addition of a translatable string during the string freeze
2016-05-31 08:46:25 +12:00
JosJuice e5ffc91265 Undo the addition of a translatable string during the string freeze 2016-05-30 22:41:08 +02:00
Pierre Bourdon aecf9e16c8 Merge pull request #3871 from Helios747/weird_nvidia_fix
[OGL] Workaround nvidia being weird with GL_MAX_TEXTURE_SIZE
2016-05-30 18:54:17 +02:00
Anthony Serna 0e5852f634 [OGL] Workaround nvidia being weird with GL_MAX_TEXTURE_SIZE 2016-05-30 10:06:19 -05:00
Karol Herbst c0e21871cd EGL: specify version first
allthough this is a mesa bug, this is a simple enough workaround for context
creation fails with EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR set.

Otherwise dolphin will fail to create 3.3+ core context with current mesa
version
2016-05-29 22:12:31 +02:00
Pierre Bourdon c4240692b6 SectorReader: Fix reading the last block of the disc.
Regression from PR #3795.
2016-05-29 18:26:04 +02:00
EmptyChaos 309d0e59f4 ISOProperties/GameListCtrl: Use Global INI Change event.
ISOProperties no longer needs its hack to refresh the game list, the
new INI Modified event can be used instead.
2016-05-30 00:49:11 +10:00
Pierre Bourdon 6ef7414479 Merge pull request #3867 from phire/fix_wii_savestates_some_more
IPC_HLE: Close file handles before savestating. Fixes DKCR crashing.
2016-05-29 16:26:37 +02:00
EmptyChaos 6ab1b27477 ActionReplay: UI Consistency and Cleanup
Cleanup code style.

Move ActionReplay code->INI saving into ActionReplay namespace.

Threadsafety Cleanup: ActionReplay is accessed from the Host, Emu
and CPU Threads so the internal storage needs to be protected by a
lock to prevent vectors/strings being deleted/moved while in use by
the CPU Thread.

UI Consistency: Make ARCodes behave like Gecko Codes - only apply
changes when Apply is pressed. Save changes to INI from CheatsWindow.

ISOProperties/CheatsWindow now synchronize with each other.
2016-05-29 23:33:24 +10:00
EmptyChaos 25b072ff2b ActionReplay: Fix ISOProperties corrupting active code set
ISOProperties loads codes using ActionReplay::LoadCodes which actually applies
the codes to the global state. If a game is running then that games receives
all the codes (and ACTIVE status) from the second game being shown in
ISOProperties which is not desirable.
2016-05-29 23:33:24 +10:00
Pierre Bourdon 0fa9233c1a Merge pull request #3857 from JosJuice/update-language-list
Add more languages, and remove Hebrew because it's very incomplete
2016-05-29 15:22:16 +02:00
Scott Mansell 7d80aaedc7 Cleanup: fix an incorrect variable name.
For consistancy.
2016-05-29 18:14:50 +12:00
Scott Mansell f419faa408 IPC_HLE: Close file handles before savestating. Fixes DKCR crashing.
Donkey Kong Country Returns is writing new data to some files in /tmp
when loading each level. But the savestate code was opening the files
a second time and reading some old and stale data out.

As of #3798, dolphin now correctly restores that stale data to /tmp,
which broke DKCR (and probally countless other games).

This PR closes all file handles before saving and loading savestates,
which flushes the data out and pervents this issue. (old savestates
are corrupted and will still cause crashes if loaded)
2016-05-29 16:48:46 +12:00
Rohit Nirmal 14220ae488 Fix building with PCH disabled. 2016-05-26 13:05:21 -05:00
Mat M 340743d82a Merge pull request #3819 from mimimi085181/netplay-fix-gamecube-port-mapping1
Netplay: Fix gamecube controller mapping
2016-05-25 17:47:32 -04:00
JosJuice 3d62b1ced7 Add more languages, and remove Hebrew because it's very incomplete 2016-05-25 23:33:18 +02:00
sigmabeta c92f7ef173 Fix builds when using newest version of NDK 2016-05-25 14:23:35 -04:00
mimimi085181 1d90719abe Fix latency regression
On master, when polling the 1st in-game controller, Dolphin would poll all the 1st local controllers. With the 1st commit, each client waits its turn, which would dramatically increase the lag.

Now with this commit, it even polls all local controllers at once, so it should have even less latency than master in a few setups. Like one player with 3 controllers and the 2nd one with just one controller.
2016-05-24 22:13:40 +02:00
mimimi085181 ca9027879b Netplay: Fix gamecube controller mapping
This fixes issues with setups like:
Player 1 uses port 1 and player 2 uses port 3, or
player 1 uses port 2 and player 2 uses port 3, so nobody uses port 1
2016-05-24 21:59:36 +02:00
Anthony Serna 44677ce7d5 [UI] Fix Gamelist encoding bug 2016-05-23 17:47:30 -05:00
Mat M 08d45b9fea Merge pull request #3794 from EmptyChaos/frame-advance-race
Core: Add synchronization to state changes (Fix Frame Step and FIFO Player -  Issue 8718)
2016-05-22 15:19:16 -04:00
Markus Wick ff4bc5f33d Merge pull request #3854 from degasus/arm
JitArm64: Implement MMU handling.
2016-05-21 08:46:22 +02:00
Matthew Parlane 25f88bf751 Merge pull request #3823 from Summate/development
Piping the wxMsgAlert through netplay window during netplay ...
2016-05-21 11:16:19 +12:00
Markus Wick ca728d792a Merge pull request #3802 from mathieui/netplay-disable-wiimotes-for-real-i-swear
Disable wiimotes on game start if running in netplay
2016-05-20 12:38:21 +02:00
mathieui ef0f164343 Disable wiimotes on game start if running in netplay
And restore the settings on game quit
2016-05-20 12:05:29 +02:00
Markus Wick de0f93f636 Merge pull request #3851 from JosJuice/revision-20
Movie: Better safety when writing to s_revision
2016-05-20 10:18:30 +02:00
degasus c5e8238cc7 JitArm64: Fix dispatcher with MMU. 2016-05-20 08:32:16 +02:00
degasus 8e902abca3 JitArm64: Implement DSI exception.
Ok, this falls back on all memory instructions, but it's a way to start.
2016-05-20 08:32:16 +02:00
Markus Wick bb6604df76 Merge pull request #3805 from mathieui/gcadapter-unplug-crash
GCAdapter: improve thread safety
2016-05-19 22:58:06 +02:00
mathieui 1bbbe92cd2 GCAdapter: protect some more functions
Reset() and Setup() are not used outside of this namespace
2016-05-19 22:00:49 +02:00
degasus 5db61b4bbb JitArm64: Fix broken block handling. 2016-05-19 19:20:44 +02:00
degasus 37e2e92e33 JitArm64: Handle ISI excepction. 2016-05-19 19:20:44 +02:00
degasus 95ebb2991f JitArm64: Check Exceptions on mtmsr. 2016-05-19 19:20:44 +02:00
degasus 782c68cf00 JitArm64: Clean up LWZ idle skipping. 2016-05-19 19:20:44 +02:00
Stenzek e169d54f3c D3D11: Fix CPU EFB color reads when MSAA is enabled
Also swaps the byte order from RGBA->BGRA to match GL/D3D12, and what
the read handler is expecting.

Depth reads will now return the minimum depth of all samples, instead of
the average of all samples.
2016-05-19 22:51:00 +10:00
Stenzek 89e54fbd6c OGL: Work around slowdown of glMapBufferRange with SSBO on NVIDIA drivers
Using glMapBufferRange to read back the contents of the SSBO is extremely
slow on NVIDIA drivers. This is more noticeable at higher internal
resolutions. Using glGetBufferSubData instead does not seem to exhibit
this slowdown.
2016-05-19 21:24:09 +10:00
JosJuice a399966751 Movie: Better safety when writing to s_revision 2016-05-19 12:29:50 +02:00
Matthew Parlane 24ea2dc2da Merge pull request #3842 from rukai/dolphinQtVSkeepBinaryClean
[Qt] VS build no longer adds all of Data to Binary
2016-05-19 20:49:35 +12:00
degasus c04cff57da GLExtensions: Fix OpenGL ES 3.2 handling. 2016-05-18 23:22:46 +02:00
Markus Wick 22648729c7 Merge pull request #3832 from degasus/android
DriverDetails: Update Qualcomm new driver version.
2016-05-18 21:26:45 +02:00
mathieui 54b4efff6b GCAdapter: improve thread safety
make sure Reset() can’t be run concurrently with AddGCAdapter() or
ResetRumble() (which is called on other threads) which can cause
crashes (issue #9462)
2016-05-18 20:44:01 +02:00
Markus Wick 682af0a86a Merge pull request #3846 from degasus/videosw
VideoSW: Fix XFB config.
2016-05-18 20:14:55 +02:00
Markus Wick da3b03c61d Merge pull request #3829 from phire/timing_madness
Increase Audio DMA Interrupt delay to 200 cycles (Fix assorted Namco games)
2016-05-18 20:14:02 +02:00
degasus 3a452f3cc5 VideoSW: Fix XFB config. 2016-05-18 18:37:44 +02:00
degasus fa3526962d VideoSW: Drop Update in XFB copy. 2016-05-18 18:37:44 +02:00
Markus Wick ae5d6003cd Merge pull request #3758 from phire/minor_core_timing_fix
CoreTiming: Trim max slicelength to the given value.
2016-05-18 17:56:02 +02:00
Markus Wick e2d65778fc Merge pull request #3816 from magumagu/neogamma-hack
Add hack to IPCHLE to make NeoGamma work.
2016-05-18 17:49:58 +02:00
Markus Wick 5a36b7db24 Merge pull request #3811 from magumagu/eslaunch-timing
Fix timing regression affecting ES_LAUNCH.
2016-05-18 17:15:30 +02:00
Markus Wick 60e7c78007 Merge pull request #3840 from degasus/arm
JitArm64: Faster block linking.
2016-05-18 16:49:01 +02:00
rukai f9ef9067c1 [Qt] VS build no longer adds all of Data to Binary 2016-05-14 16:50:25 +10:00
Mat M e5bafeb40a Merge pull request #3821 from mathieui/gcadapter-no-device
Fix a hang with the GC Adapter
2016-05-13 21:36:51 -04:00
degasus 637851fce0 JitArm64: optimize bclrx
the unconditional path is the most common, so no need to switch to far code here.
2016-05-14 00:05:55 +02:00
degasus b6f16352e4 JitArm64: Check downcount on block linking.
This skips one B() call.
2016-05-14 00:04:58 +02:00
degasus 10e716c623 JitCommon: Pass jit block instead of host pointer on linking.
So the JIT may do more fancy stuff.
2016-05-14 00:04:58 +02:00
degasus cf3c65fbd0 JitArm64: Use B() instead of BR() to jumo to ASM.
Avoid indirect jumps as good as possible. This is a noticeable speedup.
2016-05-14 00:04:58 +02:00
degasus b2be9bd7f7 JitArm64: Inline JitAsm in JitArm64.
So they share the same emitter, and so they are in the same 128MB range.
This allows us to use B() to jump to the dispatcher.

However, so we have to regenerate them on every cache clear.
2016-05-14 00:04:58 +02:00
EmptyChaos c1944f623b Core/Movie: Add ability to run code in Host context
EndPlayInput runs on the CPU thread so it can't directly call
UpdateWantDeterminism. PlayController also tries to ChangeDisc
from the CPU Thread which is also invalid. It now just pauses
execution and posts a request to the Host to fix it instead.

The Core itself also did dodgy things like PauseAndLock-ing
from the CPU Thread and SetState from EmuThread which have been
removed.
2016-05-13 09:23:44 +10:00
EmptyChaos e8dfc8e654 Movie: Threadsafety Audit
Fix TASInputDlg which was trying to access the GUI without the GUI
lock from the CPU Thread.
2016-05-13 09:23:44 +10:00
EmptyChaos c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
mathieui 8f0cbefbe5 Disable part of the adapter features for netplay
In order to avoid desyncs
2016-05-12 23:31:51 +02:00
Rukai d9a8318879 Brings visual studio build files up to date with recent Qt changes 2016-05-13 01:18:57 +10:00
Matthew Parlane ec40b38484 Merge pull request #3571 from rukai/dolphinQtVisualStudio
DolphinQt2 Builds on Visual Studio
2016-05-12 22:27:18 +12:00
Matthew Parlane 356f709537 Merge pull request #3810 from mathieui/fix-adapter-recording-savestate
Fix loading save states with input recording with the adapter
2016-05-12 20:53:04 +12:00
mathieui 2a0ba5aaa6 Fix loading save states with input recording with the adapter
Intended fix for issue #9508
2016-05-12 10:45:03 +02:00
mathieui 8d23ebaa6b Revert "Fix netplay desync when using wii-u adapter."
This reverts commit 429ae8fb01.

 Conflicts:
	Source/Core/Core/HW/SI_DeviceGCAdapter.cpp
	Source/Core/Core/HW/SI_DeviceGCAdapter.h
2016-05-12 02:01:35 +02:00
degasus bca0e06a95 OGL: Use coherent mapping on Qualcomm devices. 2016-05-11 23:55:28 +02:00
degasus 7517d126c8 DriverDetails: Drop BUG_BROKENALPHATEST.
This flag is not in use at all.
2016-05-11 21:22:09 +02:00
degasus 6219c39cf5 OGL: Drop QC ES3.1 workaround.
This was never tested well:

HdkR> The tester was most likely trying to load a stale shader cache or something
2016-05-11 20:45:07 +02:00
Matthew Parlane 48c0c2ace6 Merge pull request #3830 from Lionel07/qt-settings-window
[Qt] Settings Window for Qt
2016-05-11 16:43:43 +12:00
Corwin McKnight 321b775f02 [Qt] Settings Window for Qt
AND Fix leftovers from full code, fixed styling and lint
2016-05-10 21:24:53 -07:00
Matthew Parlane 670a1c2694 Merge pull request #3532 from rukai/enterOpenGame
Qt - Enter key opens selected game in the game list.
2016-05-11 08:45:29 +12:00
Matthew Parlane 3f012df6d5 Merge pull request #3615 from rukai/qtCrash
DolphinQt2: Fix crash related to loading gameini
2016-05-11 08:40:00 +12:00
Summate e01bdeddf2 Piping the wxMsgAlert through netplay window during netplay instead of running a blocking messagebox 2016-05-10 05:03:06 -05:00
Matthew Parlane bb6a04dc8e Merge pull request #3713 from stenzek/d3d12-more-fixes
D3D12: Bug fixes, implement bbox, realxfb, perfquery
2016-05-10 21:34:27 +12:00
Scott Mansell 2c95cf0f5a Increase Audio DMA Interrupt delay to 200 cycles.
We really need hardware tests for this one. But this will do as a
quick fix for issue 9509 for 5.0
2016-05-09 14:16:32 +12:00
Mat M c299a6a8cc Merge pull request #3801 from Helios747/the_30_minute_blocker_fix
[UI] Remove browse toolbar button and tweak empty gamelist message
2016-05-08 17:24:40 -04:00
Stenzek ccf9470241 D3D12: Specify read/write ranges when calling Map/Unmap 2016-05-08 23:18:59 +10:00
Stenzek fde7dee652 D3D12: Fix invalid CopyTextureRegion call in CopyRectangleFromTexture
This was occuring when the source texture was larger than the destination
texture, but the source rect was <= dest rect, so the copy is valid.
2016-05-08 23:18:58 +10:00
Stenzek 9bff187547 D3D12: Cleanup startup/shutdown process
Sorts out references that cause some modules to be kept around after
backend shutdown.

Should also solve the issue with errors being thrown due to the config
being loaded after device creation, leading to the incorrect device being
used in a multi-adapter system.
2016-05-08 23:18:58 +10:00
Stenzek 4269abdc3e D3D12: Implement perf query support 2016-05-08 23:18:57 +10:00
Stenzek 25d5da0ea3 D3D12: Remove D3D11 header references 2016-05-08 23:18:56 +10:00
Stenzek 6f3573dda8 D3D12: Implement XFB encoding/decoding (support Real XFB) 2016-05-08 23:18:51 +10:00
Stenzek 3372bfa6ab D3D12: Remove feature level checks
We don't create a device below feature level 11_0 anyway, so no point
checking, we can just assume support.
2016-05-08 12:08:25 +10:00
Stenzek 063761fbd2 D3D12: Don't add padding when allocating within empty StreamBuffer
Resources are already aligned to an address larger than any of our
requirements, anyway.
2016-05-08 12:08:25 +10:00
Stenzek 0c27aae7d3 D3D12: Improve output of shader compiler errors
These were completely broken due to lack of c_str(). We also output
warnings now as well (these can be useful).
2016-05-08 12:08:25 +10:00
Stenzek acfa93372e D3D12: Refactoring and cleanups
Moves render target restoring to RestoreAPIState, this also means no need
to manually restore after allocating in a buffer that caused execution,
because the manager restores it for us.

Remove a method that wasn't used from D3DUtil.cpp, and fixes a few errors
in EFB poke drawing.
2016-05-08 12:08:25 +10:00
Stenzek 7ec1fce741 D3D12: Fix error with >1xIR/MSAA EFB depth access 2016-05-08 12:08:25 +10:00
Stenzek ac1cd8279b D3D12: Implement GPU-based bounding box 2016-05-08 12:08:25 +10:00
Stenzek 32599559db D3D12: Use helper method for binding EFB render targets 2016-05-08 12:08:25 +10:00
Stenzek 984da2d624 D3D12: Use signed ints for viewport origin
Fixes black screen when crop is enabled.
2016-05-08 12:08:25 +10:00
Stenzek a8c4d6c242 D3D12: Allow large texture uploads (>64MiB) by using temporary buffer
This is not optimal, but for those texture packs with extremely large
images, it won't crash. Releasing after the frame completes is an option
too, however, there is the risk of running out of memory by doing this.
2016-05-08 12:08:25 +10:00
magumagu cfce7a2aab Fix IPCHLE to make NeoGamma work.
NeoGamma is explicitly sending a nonsense command to the Bluetooth module;
make sure to respond with something sane.

Fixes issue 9470, a regression from PR #1856.
2016-05-07 11:37:21 -07:00
Matthew Parlane 1e1fce1a03 Merge pull request #3815 from degasus/scm
SCM: Use std::string.
2016-05-07 20:24:59 +12:00
Matthew Parlane 461a48f8e3 Merge pull request #3820 from Lionel07/netplay-elf-title-regression
Fix regression for .elf files in Netplay Game Selector
2016-05-07 19:47:13 +12:00
Corwin Mcknight 453d7777e5 Fix regression for .elf files in Netplay Game Selector
Rearranged code to look nicer, as well
2016-05-06 19:41:40 -07:00
Matthew Parlane 48237b38e8 Merge pull request #3817 from Lionel07/qt-mac
[UI] Enable Qt on Mac
2016-05-06 13:28:11 +12:00
Corwin McKnight 0368fc3837 [Qt]: Enable Qt on Mac OSX.
* Enables Qt on OSX
* Makes it look pretty
2016-05-05 17:03:53 -07:00
Matthew Parlane 1cfeacd5b6 Merge pull request #3793 from mathieui/netplay-disc-num
Add information about disc number in the netplay setup
2016-05-06 09:19:54 +12:00
mathieui f36cd77da4 Add information about disc number in the netplay setup
Previously, two-disc games would appear exactly the same, and not
necessarily in disc order, which made it a pain.
2016-05-05 23:15:00 +02:00
degasus 2030ad4577 SCM: Use std::string.
Those macros may be defined, or not. We should support both cases, so use std::string as it also defines the length of the string.
2016-05-05 00:22:49 +02:00
Matthew Parlane dbd67c6b06 Merge pull request #3809 from Lionel07/netplay-gui-updates
[UI] Make NetPlay UI bigger and neater
2016-05-04 08:45:48 +12:00
Matthew Parlane ea82fcc24f Merge pull request #3658 from Tilka/helpers
Interpreter: simplify some helpers
2016-05-03 22:44:27 +12:00
Matthew Parlane 1634948b6e Merge pull request #3742 from phire/dither
Implement Dithering for video software
2016-05-03 22:41:39 +12:00
Matthew Parlane c32ba0fc06 Merge pull request #3744 from degasus/videosw
VideoSW: Fix special case.
2016-05-03 22:34:00 +12:00
Matthew Parlane e0a5f1bb75 Merge pull request #3791 from spxtr/mw-timer
Use CoreTiming for MemoryWatcher.
2016-05-03 22:30:51 +12:00
magumagu 36f01e141d Fix timing regression affecting ES_LAUNCH.
Scheduling an event for zero cycles in the future actually means zero
cycles with new timing changes, but the code for IPC ACKs was depending on
it meaning "soon".

Fixes #9511.

I'm not at all confident this is actually right... but it seems to work.
2016-05-02 21:56:49 -07:00
Corwin Mcknight 3a76aeb23d [UI] Make NetPlay UI bigger and neater
This commit does 4 things:
* It increases the default small size of the NetPlay window to a larger
and more appealing size.
* It cleans up and reorganizes a bit of the NetPlay Setup UI code.
* It moves the Direct or Transversal Selector to be more appealing and
nice looking.
* The Direct or Transversal also gets a label and nicer text, and a
spacer.
2016-05-02 08:15:44 -07:00
Matthew Parlane a78787ba75 Merge pull request #3730 from lioncash/noncopy
NonCopyable: Minor changes
2016-05-01 11:46:08 +12:00
Matthew Parlane 05e1406e89 Merge pull request #3795 from EmptyChaos/fix-diskreader
DriveReader: Fix View > Show Drives
2016-05-01 11:43:30 +12:00
Matthew Parlane 3d375592a2 Merge pull request #3798 from phire/goto_dino
Fix handling of Wii NAND's /tmp directory during savestate loads.
2016-05-01 11:37:33 +12:00
Anthony Serna 79b902e7e5 [UI] Remove browse toolbar button and tweak empty gamelist message
Removed some related functions
2016-04-30 10:25:46 -05:00
degasus 6f2d8483b7 VideoSW: Fix special case.
I have no clue what this special case shall be, but accessing g_main_cp_state within Flush() is not allowed.
We likely still have a bad behavior, but now it only depends on the current state, not on the next one after flushing.
2016-04-30 13:14:09 +02:00
mathieui 542e7ba158 Make a generic rumble function
Call the appropriate rumble function for each SI Device, Should fix #9331.
Ideally we wouldn’t have to do this, but since the way things are wired,
fixing the root cause it out of the picture for now.
2016-04-30 12:54:31 +02:00
degasus 170a7f1a06 CoreTiming: Trim max slicelength to the given value.
Previously it was underclocking by 50% when there were
no events to schedule.
2016-04-30 19:28:14 +12:00
Matthew Parlane 3df4b09a94 Merge pull request #3797 from phire/casually_delete_some_code
Fix netplay desync when using wii-u adapter.
2016-04-30 17:55:06 +12:00
Mathew Maidment 45e0cb70df Merge pull request #3770 from EmptyChaos/dsp-int-fail
DSP: Fix array out of bounds
2016-04-29 20:07:07 -04:00
Mathew Maidment 2d7dfa060e Merge pull request #3796 from endrift/indtev-simplify
VideoCommon: Workaround Intel OS X bug again
2016-04-29 19:59:45 -04:00
Mathew Maidment 9776b8db43 Merge pull request #3799 from mimimi085181/fix-auto-ir
Make integral auto IR(multiple of 640x528) work as expected
2016-04-29 19:50:21 -04:00
Mathew Maidment b99b685f22 Merge pull request #3800 from phire/unexceptional-exceptions
Make exceptions consistent across all JITs/Interpreters (Fixes Pokemon Box)
2016-04-29 19:48:55 -04:00
Mathew Maidment b420abc908 Merge pull request #3769 from RisingFog/remove_framestep
Remove Unused Framestop Functions
2016-04-29 19:41:25 -04:00
spxtr b9e9a5ee3d Use CoreTiming for MemoryWatcher. 2016-04-28 21:28:15 -07:00
Scott Mansell eb5819f88a Make exceptions consistant across all JITs/Interpeters.
They all handled it diffrently, so I've just moved it into Advance()

This fixes Pokemon Box booting in JIT/JITIL which shared a bug where
exceptions set in a scheduled event would be ignored untill the next
slice (upto 20,000 cycles).
2016-04-28 17:22:52 +12:00
mimimi085181 8c34463f14 Make integral auto IR(multiple of 640x528) work as expected
Right now, it's possible that x and y are scaled differently, if efb and xfb size are not the same.
2016-04-26 23:25:38 +02:00
EmptyChaos 97d570f0c9 DriveReader: Fix View > Show Drives
DriveReader::m_size was never initialized which was indirectly
causing CGameListCtrl to crash Dolphin when it tried to insert a
character at a negative index in a string.

Reading one sector at a time is very inefficient and appears to
be causing timing issues during boot so SectorReader has been
enhanced to support batching.

SectorReader has been given a working cache system.
2016-04-26 21:24:08 +10:00
Scott Mansell 8f4ac5bbad Close all files so /tmp can be deleted on save state load.
Because the file handles were open, the recursive delete was
failing. The previous commit stopped the crash but this should
make the restore actually happen has expected.
2016-04-25 18:29:49 +12:00
Scott Mansell b2f133d2ac make DeleteDirRecursively clean up correctly after failure.
Fixes Metroid prime crashing the second boot after loading
a save state (issue 9496)
2016-04-25 18:28:38 +12:00
Scott Mansell 429ae8fb01 Fix netplay desync when using wii-u adapter.
If the game sent a command to a disconnected controller, the
wii u adapter code would return a diffrent response.

This simply deletes the speclized version of RunBuffer for the
wii-u adapter as the only diffrence was the code which detected
disconnected controllers and returned a error.
2016-04-25 15:26:31 +12:00
Jules Blok 8a21b082d6 Merge pull request #3745 from stenzek/d3d11-texcache
D3D11: Fix EFB MSAA depth buffer copies, StateManager desyncs in some cases
2016-04-24 11:47:32 +02:00
Jeffrey Pfau d6517a761c VideoCommon: Simplify indirect texture lookup code slightly 2016-04-23 22:55:52 -07:00
Jeffrey Pfau aa736bf258 Revert "VideoBackend: Remove extraneous shifts from indirect texture lookups"
This reverts commit 1f1b127b69.
2016-04-23 22:55:42 -07:00
mimimi085181 fcd5170cff XInput: Apply Rumble/Motor output only on changes (again)
Disclaimer: I can't test if this works on xbox one controllers, i don't have one. But i have conformed that this UpdateMotors() is related to rumble for emulated wiimotes.

This partially reverts commit "XInput: Apply immediately as well" (1958a10b6f) from pr # https://github.com/dolphin-emu/dolphin/pull/1560

Hopefully this fixes the xbox one controller rumble issue:
https://bugs.dolphin-emu.org/issues/9071

And in theory it might reduce the used usb bandwidth, as it was originally intended before pr 1560.

@JMC47: Please do a good amount of testing, to see if this breaks rumble for wiimotes or gamecube controllers emulated with xinput devices.
2016-04-23 13:45:10 +02:00
Mathew Maidment bdb9da2104 Merge pull request #3687 from rukai/fixMakerColumn
DolphinWX: Disable 'maker' column hiding
2016-04-21 09:15:10 -04:00
EmptyChaos 49babfb60b CFrame: Fix Confirm Close
Closing Dolphin's main frame and clicking "no" does not clear
m_bClosing which means that pressing the "stop" button triggers
OnClosed which suddenly and unexpectedly closes the main frame.
2016-04-19 15:47:51 +10:00
Rukai 4cd918caf1 DolphinWX: Disable 'maker' column hiding
This was done because showing a column was broken:
Showing a column repopulates the column with no regard for the sorted
order. This results in a seemingly random order.
(actually the order of m_ISO_FILES)
2016-04-17 10:19:25 +10:00
EmptyChaos 32239f500c VideoInterface: Fix registers not being initialized
VideoInterface::Preset was not initializing all registers, this is a problem
because it leaks register settings across games. Xenoblade Chronicles does
not like m_DisplayControlRegister having random bit patterns in it.
2016-04-17 09:35:22 +10:00
Lioncash 4ae4b241ec ChunkFile: Handle bool in a stable way across platforms
bool is not always guaranteed to be the same size on every platform.
On some platforms it may be one byte, on others it can be 8 bytes if the
platform dictates it. It's implementation-defined.

This can be problematic when it comes to storing this
data to disk (it can also be space-inefficient, but that's not really an
issue). Also say for some reason you moved your savestates to another
platform, it's possible they won't load correctly due to differences in size.

This change stores all bools to savestates as if they were a byte in size
and handles the loading of them accordingly.
2016-04-14 22:55:03 -04:00
Pierre Bourdon 4d864ece27 Merge pull request #3759 from JosJuice/dvd-callback-savestates
DVDInterface/DVDThread: Don't store CoreTiming event IDs in savestates
2016-04-14 17:55:52 +02:00
Chris Burgener 02bfc62d1c Fix Windows build not copying certain files 2016-04-12 19:05:17 -04:00
Chris Burgener ab4c3314e7 Only copy relevant files for Windows builds
Fixes issue 9455: https://bugs.dolphin-emu.org/issues/9455
2016-04-12 12:20:23 -04:00
JosJuice be191c0473 DVDInterface/DVDThread: Don't store CoreTiming event IDs in savestates
CoreTiming event types aren't guaranteed to be stable across
runs of Dolphin, so they shouldn't be in savestates.
2016-04-11 22:14:25 +02:00
Pierre Bourdon 2063fc671a Merge pull request #3748 from mimimi085181/partial-updates-paletted-textures
Partial updates for paletted textures
2016-04-11 21:47:24 +02:00
Pierre Bourdon 58d8c734b8 Merge pull request #3773 from phire/if_you_want_100_cycles_ask_for_100_cycles
"Instant" ARAM DMA shouldn't schedule and event too soon.
2016-04-11 21:46:43 +02:00
Pierre Bourdon 61ea5328f7 Merge pull request #3774 from phire/Fix_Metroid_Other_M
Fix Metroid: Other M
2016-04-11 21:43:20 +02:00
degasus ef01f234df PixelShaderGen: Fixes implicit type conversion or PR #3772.
This regression did only happen on OpenGL ES.
2016-04-10 12:49:32 +02:00
Pierre Bourdon c4af588945 Merge pull request #3772 from degasus/shader_opt
PixelShaderGen: Move constant multiplication to constant generation.
2016-04-10 01:20:34 +02:00
mimimi085181 9f625417c0 Partial updates for paletted textures
This pr fixes another regression that happened after pr #3165 was merged. The shadows in mario baseball should now work again.
2016-04-09 18:22:36 +02:00
Pierre Bourdon e98fb0af84 Merge pull request #3752 from mimimi085181/remove-use-only-once-restriction-partial-updates
Remove the restriction to use efb copies only once as partial update
2016-04-09 18:10:20 +02:00
Scott Mansell 5e50c37c13 Alternative fix: promote cycleslate to an s64 everywhere.
Also changed a few functions to be static.
2016-04-10 02:13:06 +12:00
Scott Mansell 28e0607522 Fix Metroid: Other M
During boot of Other M, there is momentarily a period when VICallback's
cycles late is larger than GetTicksPerHalfLine(). Because
GetTicksPerHalfLine() returns a u32 and c++'s weird type promotion rules,
cycleslate gets promoted from a s32 to a u32 and the result of the
substraction is a really large u32.

Before ScheduleEvent accuracy improvements, ScheduleEvent took a s32, so
the result got cast back to the small negitave we expect. But it now takes
a s64 and the u32 to s64 conversion gives us a really large number (around
two seconds) and Other M times out while waiting for something.
2016-04-10 00:10:56 +12:00
Scott Mansell 662ed217d7 "Instant" ARAM DMA shouldn't schedule and event too soon.
Now that the accuracy of ScheduleEvent has changed, 0 cycles will
schedule an event as soon as possible. But this breaks ATV 2.

So we schedule it 100 cycles out (unless it's a really short copy)
2016-04-09 22:34:53 +12:00
degasus 10e4f7e7bf PixelShaderGen: Move constant multiplication to constant generation.
No need to do this within the shader per pixel if it can be done once.
2016-04-09 12:25:00 +02:00
EmptyChaos 80ff82b81a DSP: Fix integer promotion spill 2016-04-08 12:08:17 +10:00
Scott Mansell 365baeccb4 Only force progressive if we are currently in an interlaced video mode
The NES games on the Zelda Collecters Edition disk use a XFB which is
only 256 pixels wide, but has a stide of 640 pixels.

This fits our definition of a interlaced xfb, as a second line of data
could fit in the extra space. The solution is to check that we are
actually in a interlaced video mode before activating the force
progressive hack.
2016-04-06 05:12:53 +12:00
Chris Burgener 3140f9b226 Change GetStatePtr() Return to const 2016-04-05 12:45:48 -04:00
Chris Burgener 54eb8c09f9 Remove Unused Framestop Functions 2016-04-05 12:19:12 -04:00
Pierre Bourdon 3f079fb2c1 Merge pull request #3762 from mimimi085181/partial-updates-efb-copy-before-texutre
Partial texture updates: Allow the efb copy to start before the texture
2016-04-04 14:53:06 +02:00
shuffle2 c63ef18fcc Merge pull request #3760 from lioncash/vs
pch: Update Visual Studio version check
2016-04-03 17:14:45 -07:00
Lioncash 8d9221a71e MathUtilTest: Fix tests on MSVC - Document compiler bug
MSVC's implementation of numeric_limits currently generates incorrect
signaling NaNs. The resulting values are actually quiet NaNs instead.

This commit is based off of a solution by shuffle2. The only
difference is a template specialization for floats is also added
to cover all bases
2016-04-03 19:16:47 -04:00
Mathew Maidment 23f6c64525 Merge pull request #3733 from EmptyChaos/wx-playbtn-fix
WXGUI: Fix disabled play button not fading
2016-04-03 11:26:14 -04:00
mimimi085181 befb2e4809 Partial texture updates: Allow the efb copy to start before the texture
This is an oversight from pr https://github.com/dolphin-emu/dolphin/pull/3266 . Thanks to degasus for pointing this out.

It's possible that MAX_TEXTURE_BINARY_SIZE can be optimised, but i wanted to play it safe considering the 5.0 stable release.
2016-04-02 20:34:49 +02:00
Pierre Bourdon 418b8c03d5 Merge pull request #3763 from JosJuice/boot-clear-memory
Always clear memory when booting
2016-04-02 12:59:24 +02:00
JosJuice 2db2672810 Always clear memory when booting
Reading uninitalized memory is non-deterministic. We used to only
clear the memory when using EmulatedBS2_GC or FifoPlayer, but we
now do it during Memory::Init instead so it always gets done.
2016-04-01 21:35:26 +02:00
Pierre Bourdon 77c05737e9 Merge pull request #3757 from stenzek/amd-glsl-storage-qualifier
ShaderGen: Handle AMD bug with storage qualifiers in interface blocks
2016-04-01 10:05:50 +02:00
Lioncash 33c22ffab7 D3D: Amend code to fix a new VS warning
Fixes warning C4334
2016-03-30 20:59:57 -04:00
Pierre Bourdon 486d3a7114 Merge pull request #3656 from phire/windows-10-sdk-update
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-30 18:37:53 +02:00
Stenzek e6b2212ec0 ShaderGen: Only specify storage qualifier in interface block when needed
Drivers that don't support GL_ARB_shading_language_420pack require that
the storage qualifier be specified even when inside an interface block.

AMD's driver throws a compile error when "centroid in/out" is used within
an interface block.

Our previous behavior was to include the storage qualifier regardless, but
this wasn't working on AMD, therefore we should check for the presence of
the extension and include based on this, instead.
2016-03-30 00:42:50 +10:00
mimimi085181 2dd9e6bfe2 Remove the restriction to apply efb copies only once as partial update
I'm not entirely sure what is happening, but this optimisation is causing an issue in Sonic Riders: Zero Gravity. Apparently the issue would also be fixed by PR#3747, but this PR should also fix similar issues.

Games that use partial updates might get slower with this, so some performance regression testing would be nice. Games like New Super Mario Bros, RS2, Zelda TP and Silent Hill. Testing with high graphics settings makes sense, since this would mostly end up in more work for the GPU.
2016-03-27 04:13:20 +02:00
Scott Mansell fbcac2598a Use a sane default for the controller update rate.
Previously the default queryed the controller 4500 times a second,
Wasn't really a problem for most games as they set it to a sane
value. But fifoplayer didn't, and so in my profile dolphin spends
12% of the cpu time reading the controllers.

This new default value (I just took what the gamecube bios set)
drops that to 1.2% of cpu time and increase the framerate of the
silent hill fifo by 10-12%
2016-03-27 09:02:52 +13:00
Scott Mansell c036cf7a5f Updated D3D12 to build on the newer windows 10 sdk. 2016-03-26 18:11:49 +13:00
Pierre Bourdon bd200bd195 Merge pull request #3736 from BhaaLseN/issue-9135
Rewrite NAND Content handling in ES to fix Issue 9135
2016-03-26 05:00:08 +01:00
Pierre Bourdon 2fd0884347 Merge pull request #3672 from EmptyChaos/d3d-anisotropy
Fix D3D Forced Anisotropy
2016-03-26 03:25:01 +01:00
Pierre Bourdon ae4cb12033 Merge pull request #3719 from Sonicadvance1/workaround_osx_video_drivers
Workaround OS X video driver bug #24983074
2016-03-26 01:43:32 +01:00
Pierre Bourdon 21eb1cd158 Merge pull request #3635 from phire/lazy_comex
Implement BLR Overflow handling for Windows.
2016-03-26 01:42:54 +01:00
Pierre Bourdon 8f74f1f4e9 Merge pull request #3601 from phire/AccurateEventScheduling
Adjust cycle counts so they are accurate to the JIT block level (Fixes OoT virtual console and other games)
2016-03-25 17:02:30 +01:00
Scott Mansell 066b6b0bcb OpenGL: Cache query to max texture size.
This showed up really high when I was profiling things.
2016-03-26 03:14:39 +13:00
Stenzek 53cf42fb06 D3D11: Fix some cases where render target switches desynced StateManager
This was occuring in certain EFB copy patterns, leaving the textures
unbound for the next draw call.
2016-03-26 00:01:26 +10:00
Stenzek 63e4e07683 D3D11: Simplify MSAA depth texture resolving
This also fixes EFB depth buffer copies when MSAA is enabled.
2016-03-26 00:00:39 +10:00
EmptyChaos 0b9a72a62d VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper function 2016-03-24 13:43:29 +11:00
EmptyChaos 902e5cddf7 VideoBackends: Do not use Anisotropy on Point filtered textures.
The D3D backend was always forcing Anisotropic filtering when that is enabled regardless of how the game chose to configure the texture filtering registers; this causes the same issues as "Force Filtering" without Anisotropy, such as causing game UI elements to no longer line up adjacent correctly. Historically, OpenGL's Anisotropy support has always worked "better" than D3D's due to seeming to not have this problem; unfortunately, OpenGL's Anisotropy specification only gives GL_LINEAR based filtering modes defined behavior, with only the mipmap setting being required to be considered. Some OpenGL implementations were implicitly disabling Anisotropy when the min/mag filters were set to GL_NEAREST, but this behavior is not required by the spec so cannot be relied on.
2016-03-24 13:43:29 +11:00
Scott Mansell d61baef2f6 Disable JitArm64's inline timebase implemenation, as it's incorrect.
The interpeted version is correct.
2016-03-24 05:17:10 +13:00
Scott Mansell 27beef1ff4 Store an inverted copy of lastOCfactor.
The inverse operation is more common, especially when games check the
timer rapidly. So we do the division once and store the inverted copy.
2016-03-24 05:17:10 +13:00
Scott Mansell 407f86e01a Mark global variables with g_ prefix 2016-03-24 04:32:12 +13:00
Scott Mansell 67dc26cf1d CoreTiming: Fix 31bit overflow for events scheduling.
Events scheduled more than 4.12 seconds in the future (2.96 seconds for
Wii games) would overflow the sign bit and get scheduled in the past
instead, causing them to fire instantly.
2016-03-24 04:27:14 +13:00