Commit Graph

24369 Commits

Author SHA1 Message Date
JosJuice
2953cf201d Remove Hybrid Wii Remote
It simply doesn't seem to work for anything useful, and nobody seems
to care about maintaining it.
2018-04-17 22:40:21 +02:00
Lioncash
d1d8300a46
SI: Remove unnecessary declarations of internally linked functions
These aren't dependent on calling order so we can just organize all of the statics together
instead of splitting them up over the file. This also allows us to organize a common spot for
file static variables as well.
2018-04-17 16:33:11 -04:00
Mat M
d230194464
Merge pull request #6657 from leoetlino/dedup
Qt/Debugger: Deduplicate memory view update code
2018-04-17 10:21:53 -04:00
Mat M
b19d77a3ff
Merge pull request #6660 from leoetlino/pause
Qt/Debugger: Don't pause when already paused
2018-04-17 10:20:30 -04:00
Mat M
e04592e6c4
Merge pull request #6663 from spycrab/qt_fix_columns
Qt: Fix columns not properly showing / hiding
2018-04-17 10:19:35 -04:00
Mat M
8bb0e0ee96
Merge pull request #6662 from Tilka/fix_warnings
Fix some warnings
2018-04-17 10:17:01 -04:00
spycrab
9ffc600e8d Qt: Fix columns not properly showing / hiding 2018-04-17 15:27:51 +02:00
Tillmann Karras
4cfd900c67 Fix some warnings 2018-04-17 14:10:05 +01:00
Sepalani
04cfddca33 HLE_VarArgs: PowerPC::HostRead_F64 used 2018-04-17 16:25:43 +04:00
Léo Lam
69ad94997c Qt/Debugger: Don't pause when already paused
Fixes a severe performance issue which would cause the UI to use tons
of CPU time and fail to update when scrolling with a breakpoint on PC.
2018-04-17 14:21:18 +02:00
Mat M
c78b3f6ab6
Merge pull request #4507 from sepalani/host_f
PowerPC: HostR/W float/double added
2018-04-17 08:02:07 -04:00
Pierre Bourdon
94f3e27ccd
Merge pull request #6659 from spycrab/qt_tabbed_config
Qt/SettingsWindow: Use tabs
2018-04-17 13:52:23 +02:00
Sepalani
048513183e PowerPC: HostR/W float/double added 2018-04-17 08:29:47 +04:00
spycrab
4d4a018ccf Qt/SettingsWindow: Use tabs 2018-04-16 23:15:45 +02:00
Lioncash
c23a998f9d
TraversalClient: Use u32 instead of enet_uint32
Lessens the dependence on the enet library (and we really don't need to rely on a third-party library for a 32-bit integer type)
2018-04-16 16:46:48 -04:00
Lioncash
f1e92a1eae
TraversalClient: Make TestPacket() private
This is only used by the private InterceptCallback()
2018-04-16 16:46:48 -04:00
Lioncash
1b8ad49d1e
TraversalClient: In-class initialize members where applicable 2018-04-16 16:46:48 -04:00
Lioncash
ca6a2970ea
TraversalClient: Make data externally read-only members private
These are only ever queried for state, not written. Therefore, prevent writing to the members
and make them private.
2018-04-16 16:46:44 -04:00
Léo Lam
6c87817d9c Qt/Debugger: Deduplicate memory view update code
The structure and address calculation were identical.
Only the string generation was different.
2018-04-16 22:36:32 +02:00
Léo Lam
dfd6a228a6
Merge pull request #6654 from lioncash/log
Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0)
2018-04-16 20:38:22 +02:00
Léo Lam
d13fc1d2e9
Merge pull request #6655 from lioncash/common-libs
Common/CMakeLists: Link curl and VTune libraries in privately
2018-04-16 20:35:31 +02:00
JosJuice
0efbaebe17 Minor fixes to translatable strings
The usual deduplication between DolphinWX and DolphinQt2, plus the removal
of a now unused ubershader string and a fix for the Euphoria i18n comment.
2018-04-16 19:08:58 +02:00
Lioncash
236aed9fd1
Common/CMakeLists: Link curl and VTune libraries in privately
These are only used internally.
2018-04-16 12:38:24 -04:00
Lioncash
b0dc823472
Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0)
Enforces the termination of GENERIC_LOGs with semicolons.
2018-04-16 12:11:32 -04:00
Mat M
6224b9bd37
Merge pull request #6642 from leoetlino/stm
IOS/STM: Reset the event hook at the correct time
2018-04-16 09:04:12 -04:00
Lioncash
939c5671a9 Common/Config: Remove unused header inclusions 2018-04-15 22:35:00 -04:00
Lioncash
4836739663 Common/Config: Remove unnecessary function declaration
This prototype declaration is already provided by the Config.h header
2018-04-15 22:33:53 -04:00
Léo Lam
3355ddcfb3 FileSystem: Fix member destruction order 2018-04-15 14:29:27 +02:00
Léo Lam
45647df349 UnitTests: Add tests for the Wii filesystem
This adds unit tests for the Wii filesystem now that the filesystem
interface is neatly separated from the IPC code.

Basic FS functionality is tested, in addition to problematic usages and
edge cases that Dolphin used to handle incorrectly (which of course
broke emulated software).

These tests should make it quite a bit harder to introduce regressions.

Issues that are covered by the tests in particular:

* Metadata: issue 10234 (though tests are commented out for now because
  Dolphin doesn't support NAND images yet so it can't track metadata);

* EOF seeks/reads: https://github.com/dolphin-emu/dolphin/pull/4942

* Read/write operations from multiple handles: see issue 2917, 5232 and
  8702 and https://github.com/dolphin-emu/dolphin/pull/2649
2018-04-15 14:29:27 +02:00
Mat M
eecdb51709
Merge pull request #6645 from JosJuice/tie-constexpr
x64Emitter: Don't assume that std::tie is constexpr
2018-04-15 03:11:31 -04:00
JosJuice
8a146d5210 x64Emitter: Don't assume that std::tie is constexpr
Using constexpr tie broke building with older GCC versions according to
https://forums.dolphin-emu.org/Thread-build-error-on-linux-mint-18-3
2018-04-15 08:30:01 +02:00
JosJuice
45923696ed
Merge pull request #6648 from leoetlino/master
WiimoteEmu: Fix turntable_button_names size
2018-04-15 08:25:44 +02:00
Mat M
615c0decb7
Merge pull request #6644 from leoetlino/uicommon-header
UICommon: Fix header
2018-04-14 20:25:22 -04:00
Léo Lam
0a481c0663 WiimoteEmu: Fix turntable_button_names size
Three elements were removed, but because of an oversight the array
size was not changed to match.
2018-04-14 23:52:10 +02:00
Léo Lam
783e4ec2fa
Merge pull request #6633 from aldelaro5/wx-debugger-icons
Wx: debugger icons
2018-04-14 23:29:57 +02:00
Léo Lam
371f807e67
Merge pull request #6615 from leoetlino/sysconf
SysConf: Migrate to new filesystem interface
2018-04-14 23:29:25 +02:00
Léo Lam
c73b05e200
Merge pull request #6647 from aldelaro5/qt-fix-mbp
Qt/Debugger: correctly set the MBP attributes when adding an address one
2018-04-14 23:22:57 +02:00
aldelaro5
0f8c51dfe4
Wx: Implement the new debugger icons 2018-04-14 17:22:04 -04:00
Léo Lam
ee955e37a9
Merge pull request #6564 from JosJuice/translate-certain-button-names
Translate certain button names but not all
2018-04-14 23:20:39 +02:00
Léo Lam
aafa8a10e1
Merge pull request #6643 from lioncash/oprofile
CMakeLists: Define an OProfile target and use it
2018-04-14 23:12:17 +02:00
aldelaro5
1401fbc71a
Qt/Debugger: correctly set the MBP attributes when adding
Not setting the end address causes the GetMecheck function to never think a matching address MBP exists.
2018-04-14 17:05:23 -04:00
Léo Lam
2f22c76db1 UICommon: Avoid including Xrandr.h
Xlib has really terrible headers that declare non-namespaced
macros and typedefs for common words.

Just wasted 10 minutes trying to figure out why a unit test failed
to build before I remembered it was Xrandr.h conflicting with our
enum class members again.

To fix the issue, this removes the Display* parameter from the
EnableScreensaver function (which was unused) so we don't have
to include Xrandr.h anymore.
2018-04-14 17:14:38 +02:00
Léo Lam
62269572e4 UICommon: Fix indirect includes 2018-04-14 16:42:54 +02:00
Léo Lam
e253d3d919
Merge pull request #6640 from spycrab/qt_scale_render
Qt: Fix render size not matching window size
2018-04-14 14:56:33 +02:00
Lioncash
b31281527a
CMakeLists: Define an OProfile target and use it
Allows us to bring includes and relevant libraries into scope by explicitly declaring linkage against the target
as opposed to using a variable. Also removes the dumping of OProfile includes into the top-level directory.
2018-04-13 19:35:17 -04:00
Léo Lam
8bae4b7e51 IOS/STM: Reset the event hook at the correct time
Just re-disassembled STM and found out I have made a mistake when
I changed STM stuff back in 2016.

I accidentally made STM reset the event hook on close when it should
have been done in the destructor (i.e. when IOS gets reset on console).

Verified in IDA that STM just `IOS_ResourceReply(request, IOS_OK)`
without ever resetting the hook.
2018-04-13 23:34:35 +02:00
Léo Lam
b1bbd8a50e
Merge pull request #6625 from lioncash/evdev-udev
InputCommon/CMakeLists: Include evdev and udev includes on a by-target basis
2018-04-13 20:50:31 +02:00
Léo Lam
52905a5fae
Merge pull request #6627 from sepalani/map-strip
PPCSymbolDB: Do not truncate fixed size symbols
2018-04-13 20:48:28 +02:00
spycrab
a12d4996ed Qt: Use new debugger icons 2018-04-13 20:40:41 +02:00
spycrab
8536e31136 Qt: Fix render size not matching window size 2018-04-13 20:12:13 +02:00
Lioncash
b256f873ca
CMakeLists: Link in zlib privately where applicable
Also, use the target name introduced via find_package(ZLIB) instead
of hardcoding the 'z' name in the link libraries.
2018-04-13 08:29:46 -04:00
JosJuice
7ed28297b2 ControllerEmu: Use enum instead of bool for translatability 2018-04-13 13:04:26 +02:00
JosJuice
3f13dbe087 Translate certain button names but not all
Some button names should be translated, for instance Up, Left and such.
At the same time, some other button names shouldn't be translated,
for reasons that might be less obvious. In 0146456af, I removed the
_trans markers for button names that never need to be translated
(such as A and B), but that isn't actually enough to ensure that
DolphinWX won't try to translate them anyway. This commit adds a bool
that explicitly tells the GUI whether a button name should be translated.
Otherwise we'll have problems like the GUI treating the button name "B"
(which isn't supposed to be translated) as matching the translatable
string "B" (being an abbreviation of "bytes"), meaning that the button
"B" will be labeled "o" when running Dolphin in French (after
translations get pulled from Transifex the next time).

By the way, while it turned out that DolphinWX translated all button
names, it also turned out that DolphinQt2 translated *no* button names.
Go figure. This commit makes them consistent with each other.
2018-04-13 13:04:26 +02:00
JosJuice
e604641b12 Remove leftovers of projection hack support 2018-04-13 12:52:42 +02:00
Markus Wick
71dd2d9d4c
Merge pull request #6632 from lioncash/fp
Interpreter: Don't use a union to type-pun between integral and FP types
2018-04-13 11:12:01 +02:00
Lioncash
a36bf438cd
Interpreter_FloatingPoint: Handle QNaNs properly in frsp
Essentially the same behavior as the SNaN path, minus the conditional result and setting of the VXSNAN FPSCR bit.
2018-04-12 19:47:10 -04:00
Lioncash
965b963a6f
Interpreter_FloatingPoint: Handle SNaNs properly in frsp
If FPSCR[VE] is set, a result isn't supposed to be written to the destination,
just the FPSCR[VXSNAN] bit gets set, and FPSCR[FR] and FPSCR[FI] get set to zero.

If FPSCR[VE] isn't set, then we do write out a result, however, the FPSCR[FPRF]
field is updated to signify a QNaN (yes, a QNaN, the FPRF field doesn't have
a bit configuration for SNaNs).
2018-04-12 19:47:06 -04:00
Lioncash
e28d063539 x64Emitter: Make the Align* functions return a non-const data pointer
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-04-12 19:46:55 -04:00
Lioncash
ab25eb6449 Interpreter_LoadStorePaired: Don't use a union to type-pun between integral and FP types 2018-04-12 19:44:31 -04:00
Lioncash
7a3158a693 Interpreter_FPUtils: Don't use a union to type-pun between integral and FP types
The previous code invokes undefined behavior. memcpy will optimize away
to the relevant loads and stores while maintaining well-defined
behavior.
2018-04-12 19:44:31 -04:00
Tilka
bbd1bb8eaa
Merge pull request #6636 from phire/fix_autoformatting
Fix change in comment meaning by autoformat.
2018-04-12 22:52:06 +01:00
Scott Mansell
0e6d01220a Fix change in comment meaning by autoformat. 2018-04-13 09:20:27 +12:00
Tilka
27515f4c9b
Merge pull request #6626 from lioncash/dcbz_l-disasm
GekkoDisassembler: Fix disassembly of dcbz_l
2018-04-12 22:18:56 +01:00
Léo Lam
a287bbc3bd Move SysConf to Core
It's not common code that could be reused for, say, Citra;
it's absolutely specific to Wii emulation and only used by the Dolphin
core, so let's move it there.

Another reason for doing this is to avoid having Common depend on Core.
2018-04-12 22:16:37 +02:00
Léo Lam
0856d4a68a SysConf: Migrate to new filesystem interface
It was discovered that some titles rely on filesystem metadata to work
properly. Currently, in master they either simply won't find their
save files (for example Bolt) or will complain about the Wii system
memory being corrupted (on first use or every time depending on
the title).

In order to even be able to keep track of file metadata, we first need
to eliminate all direct accesses to the NAND and make all kinds of
operations go through the filesystem code added in PR 6421.

This commit starts the migration process by making SysConf use
the new FS interface.
2018-04-12 22:16:37 +02:00
Léo Lam
3744a6d3f5 FileSystem: Add some more wrappers for convenience 2018-04-12 22:16:37 +02:00
Léo Lam
95aae11164 IOS: Do not manually close devices in destructor
This used to be necessary for properly cleaning up the FS state because
the old FS implementation used static state and only performed cleanup
in the close function, not in the destructor.

Now that the static state is gone, we do not need to close devices
manually anymore.
2018-04-12 22:16:10 +02:00
spycrab
40bb9974f2 Reformat all the things! 2018-04-12 21:28:39 +02:00
Sepalani
7d36165489 PPCSymbolDB: Do not truncate fixed size symbols
Fix comparison warning
2018-04-10 21:50:33 +04:00
Sepalani
9b8866ba78 PPCSymbolDB: Replace alert with LOG message 2018-04-10 21:49:47 +04:00
Lioncash
1c17329e2f
GekkoDisassembler: Fix disassembly of dcbz_l
Previously this would fall through and disassemble as a generic "ps_[number]" junk instruction.
2018-04-10 11:22:01 -04:00
Lioncash
73ebc190fa
InputCommon/CMakeLists: Link evdev and udev in privately
These libraries aren't directly used outside of InputCommon
2018-04-10 09:59:55 -04:00
Lioncash
d63d0b5069
InputCommon/CMakeLists: Include evdev and udev includes on a by-target basis
Avoids including the evdev/udev includes in the top-level directory
2018-04-10 09:59:51 -04:00
Markus Wick
0bfeb37a1f
Merge pull request #6604 from lioncash/dcbz_l
Interpreter_LoadStore: Generate a program exception if dcbz_l is executed when HID2[LCE] is zero
2018-04-09 23:04:09 +02:00
JosJuice
a66d56aece Use configured locale in UICommon::FormatSize
StringFromFormat always uses the C locale, so we can't use it if we want
the decimal separator to be locale aware, but we can use a stringstream.
2018-04-09 19:14:15 +02:00
JosJuice
0dca432836 Remove old code for using default locale
This isn't needed anymore now that the global C++ locale isn't
set to the classic locale.
2018-04-09 19:14:15 +02:00
JosJuice
13d060491c DolphinQt2: Set locale
We want things like number formatting to be done the way the user expects.
2018-04-09 19:14:14 +02:00
JosJuice
72040600d7 Set locale to "en_GB" if "en" is configured 2018-04-09 19:14:14 +02:00
JosJuice
9417fc6a3a DolphinWX: Set C++ locale
After 3a83ebc, the Show System Clock feature started using the
unfortunate combination of MM/DD/YY dates (rare outside of the US)
and 24-hour time (rare in the US) regardless of the user's locale
settings. This commit makes it use the configured locale again.

I've noticed one minor difference in behavior between now and
before 3a83ebc: The new way of setting the C/C++ locale seems to
treat "en" as "en-US", but the wx way of setting the C locale
treated it as "en-GB" (at least on Windows).
2018-04-09 19:14:14 +02:00
JosJuice
7aaaf44229
Merge pull request #6611 from leoetlino/remove-workaround
Boot_WiiWAD: Remove a timing issue workaround
2018-04-09 15:46:39 +02:00
Léo Lam
67f8e6e60a
Merge pull request #6620 from lioncash/dvd
DVDInterface: Deduplicate code in UpdateInterrupts()
2018-04-09 12:52:38 +02:00
Léo Lam
cb88e1256f
Merge pull request #6617 from lioncash/ppcanalyst
PPCAnalyst: Minor cleanup
2018-04-09 12:48:16 +02:00
Léo Lam
783cbef638
Merge pull request #6618 from lioncash/symboldb
PPCSymbolDB: Minor cleanup
2018-04-09 12:46:28 +02:00
Lioncash
1b3dae918a StreamADPCM: Turn the ADPCM decoder into a class
Migrates the state to be instance-based as opposed to being a flat
namespace. This keeps behavior localized to its own instantiable unit
(and forces uses of the class to also be localized, lest they cart around
an instance all over the place).
2018-04-09 03:49:18 -04:00
Lioncash
a8088b7365 ProcessorInterface: Remove prefixed underscores from parameters
These are reserved by the implementation for any use.
2018-04-09 03:21:59 -04:00
Lioncash
419ed1b46a DVDInterface: Deduplicate code in UpdateInterrupts() 2018-04-09 03:18:51 -04:00
Lioncash
a0f943178b Profiler: Move BlockStat and ProfileStats structures into the Profiler namespace
These should be part of the namespaced API and not be sitting in the
global namespace.
2018-04-08 22:29:48 -04:00
Lioncash
0461709c8d PPCSymbolDB: Use auto for iterators where applicable 2018-04-08 22:03:11 -04:00
Lioncash
b44eb90ee4 PPCSymbolDB: Default destructor and pass to member variables in the constructor initializer-list 2018-04-08 21:56:24 -04:00
Lioncash
d6d17eea60 PPCSymbolDB: Remove unused function pointer typedef 2018-04-08 21:54:50 -04:00
Lioncash
9c5115a627 PPCAnalyst: Simplify boolean assignments in SetInstructionStats()
Ternaries here aren't necessary if all we're checking against is if
something is non-zero
2018-04-08 21:42:43 -04:00
Lioncash
f2b2f5b4c7 PPCAnalyst: Make ReorderType an enum class
Makes the values strongly typed and doesn't dump them into the class
itself.
2018-04-08 21:38:19 -04:00
Lioncash
5e5a56bd9b PPCAnalyst: Remove unnecessary includes from header 2018-04-08 21:34:12 -04:00
Lioncash
4bd3b28823 PPCAnalyst: in-class initialize PPCAnalyzer's members
Eliminates the need to assign in the constructor initializer list.
2018-04-08 21:32:15 -04:00
Lioncash
433a56636b PPCAnalyst: Move public interface above private interface 2018-04-08 21:31:19 -04:00
Léo Lam
8894b902df Boot_WiiWAD: Remove a timing issue workaround
This was necessary to work around a FS timing issue which caused small
writes to take much longer than they should.

Now that we emulate timings for the FS module including its file cache,
we don't need to maintain this workaround anymore.
2018-04-08 11:23:18 +02:00
Léo Lam
9dbc760bb7
Merge pull request #6606 from lioncash/bochs
CMakeLists: Link bochs in privately where applicable
2018-04-08 11:08:12 +02:00
Lioncash
f1be7cd4a0
CMakeLists: Link bochs in privately where applicable
Everything that links in core doesn't need to see anything related to bochs, because it's only used internally.
Anything else that relies on bochs should be linking it in explicitly.
2018-04-08 04:59:58 -04:00
Léo Lam
0a290f5d11
Merge pull request #6607 from lioncash/ppc
PPCDebugInterface: Remove redundant HostRead_U32() call in Disassemble()
2018-04-08 10:25:43 +02:00
Léo Lam
2a535d5a55
Merge pull request #6608 from lioncash/gekko
Gekko: In-class initialize members where applicable
2018-04-08 10:23:42 +02:00
Léo Lam
219728dbd4
Merge pull request #6609 from lioncash/ufpr
Gekko: Remove unused UFPR union
2018-04-08 10:22:43 +02:00
Lioncash
88a80f118c Common/Swap: Amend BigEndianValue's operator= to return a reference to the object rather than returning void
The general convention is to return a reference to the object that was
acted on, otherwise you can get into situations with errors because the
type wasn't being propagated properly
2018-04-08 01:22:18 -04:00
Lioncash
5d1349f9c7 Gekko: Remove unused UFPR union
Using this in its current form would invoke undefined behavior, as it's
using a union to type pun between data types. It's also, well, unused,
so we don't need to keep it around.
2018-04-07 22:30:26 -04:00
Lioncash
d5555b49e9 Gekko: In-class initialize members where applicable
Allows defaulting the default constructor. Also moves assignment to
initializer lists where applicable as well.
2018-04-07 22:26:24 -04:00
Lioncash
3e50b0e320 PPCDebugInterface: Remove redundant HostRead_U32() call in Disassemble()
We already read the necessary information with the
HostRead_Instruction() call. Internally, it calls HostRead_U32() as
well, so there's no difference in behavior.
2018-04-07 22:20:59 -04:00
Léo Lam
f4a2ad3c88 IOS/FS: Emulate read/write/close/seek timing
Also bumps up the state version.
2018-04-07 23:35:28 +02:00
Léo Lam
42983c0bd3 IOS/FS: Emulate superblock write timing 2018-04-07 23:35:28 +02:00
Léo Lam
b74577ff43 IOS/FS: Emulate GetAttr() timing 2018-04-07 23:35:28 +02:00
Léo Lam
896d875187 IOS/FS: Emulate Open() timing 2018-04-07 23:35:28 +02:00
Léo Lam
32b1409cbd IOS/FS: Use hardware tested minimum reply time
...instead of an arbitrary guess.
2018-04-07 23:35:28 +02:00
Léo Lam
7dff069659
Merge pull request #6605 from spycrab/gc_fix_rumble
[RFC] Core/GC: Fix rumble for "Luigi's Mansion"
2018-04-07 23:23:30 +02:00
spycrab
eed066e8a7 Core/GC: Fix rumble for "Luigi's Mansion" 2018-04-07 22:13:01 +02:00
Lioncash
181539e049
Interpreter_LoadStore: Generate a program exception if dcbz_l is executed when HID2[LCE] is zero
If the locked cache isn't enabled, dcbz_l is illegal to execute
(locked cache is off, locked cache instructions don't work, makes sense)

This makes exception handling more accurate. It was previously possible to hit the DSI exception
handler when HID2[LCE] is set to zero, which isn't correct.

With this change we no longer hit the DSI handler, however we still have a lingering issue elsewhere
likely to do with exception precedence, we seem to hit the Floating Point exception handler instead
in some cases. This isn't due to the instruction itself directly however, so this is just another bug
to fix elsewhere.
2018-04-06 23:53:44 -04:00
Anthony
9e2806c181 [AVIDump] fix compilation issues on Linux 2018-04-06 19:53:10 -07:00
Léo Lam
a957bd1ecc
Merge pull request #6421 from leoetlino/fs-interface
IOS: Refactor the filesystem code
2018-04-06 12:17:09 +02:00
Lioncash
3e946d87e4
DolphinWX/DolphinQt2 CMakeLists: Use cmake -E instead of mkdir -p for creating language directories
CMake already has this functionality built-in. This lessens depending on the host system environment
and is more cross-platform friendly (which is always nice from a build-system point of view).
2018-04-05 12:49:33 -04:00
Léo Lam
a3bdb5d85e
Merge pull request #6598 from lioncash/target
DolphinQt2/CMakeLists: Use the target_* equivalents of add_definitions and include_directories
2018-04-05 17:53:24 +02:00
Léo Lam
4cd5ef76ad
Merge pull request #6537 from spycrab/qt_quick_assign
Qt/Mapping: Implement "Iterative Input"
2018-04-05 17:44:30 +02:00
Lioncash
839fc7e749
DolphinQt2/MainWindow: Resolve a memory leak on systems with X11
In the case we had X11 libs available, we'd allocate an XRRConfiguration instance and pass it
to the GraphicsWindow instance, but it would never actually be freed.
2018-04-05 09:07:08 -04:00
Lioncash
9c27c7eda8
DolphinQt2/CMakeLists: Use the target_* equivalents of add_definitions and include_directories
add_definitions and include_directories don't operate on a by-target basis, they act on a
by-directory basis (i.e. if we defined two targets, A and B, in this CMakeLists file, add_definitions
would add the definitions to the COMPILE_DEFINITIONS directory property which both A and B would
implicitly use).

The same idea applies to include_directories, only it appends to the INCLUDE_DIRECTORIES directory
property.

Instead, specify these on the target to keep scope as narrow as possible.
2018-04-05 07:52:25 -04:00
Léo Lam
d0b7c013a1
Merge pull request #6593 from lioncash/headless
DolphinNoGUI/CMakeLists: Remove the use of SRCS and LIBS variables
2018-04-05 10:07:31 +02:00
Léo Lam
39cb22ddc9
Merge pull request #6594 from lioncash/qt
DolphinQt2/CMakeLists: Specify Qt libraries via COMPONENTS in the find_package call
2018-04-05 10:03:41 +02:00
Markus Wick
a9cd67125c
Merge pull request #6597 from lioncash/fp-load-store
Interpreter_LoadStore: Generate alignment exceptions if an FP load/store instruction's effective address is not word aligned
2018-04-05 09:55:49 +02:00
Lioncash
912c9490c0 Interpreter_LoadStore: Generate alignment exceptions if an FP load/store instruction's effective address is not word aligned
This is one of the conditions for an alignment exception documented in
the 750CL architecture reference manual in section 4.5.6, which also
applies to the Gekko microprocessor.
2018-04-05 00:30:53 -04:00
Lioncash
980f1641b5 Interpreter_LoadStore: Generate alignment exceptions if dcbz or dcbz_l are executed with the data cache disabled
This is an exception condition documented within section 4.5.6 in the
architecture reference manual for the PPC 750CL, which also applies to
the Gekko microprocessor.

Also moves dcbz_l's implementation out of Interpreter_Paired and beside
dcbz where it belongs.
2018-04-04 18:44:17 -04:00
spycrab
e0ba2a4aeb Qt: Implement "Iterative Input" 2018-04-04 21:51:51 +02:00
Lioncash
fb929ab8e5
DolphinQt2/CMakeLists: Specify Qt modules via COMPONENTS in the find_package call
Eliminates the need to find the individual modules separately
2018-04-04 15:05:20 -04:00
Lioncash
6f694e435c
DolphinNoGUI/CMakeLists: Remove the use of SRCS and LIBS variables
Instead, operate on the target directly. This removes the last usages of the
SRCS and LIBS variables.
2018-04-04 11:42:57 -04:00
Léo Lam
9be505fde2
Merge pull request #6473 from spycrab/qt_dbg_memory
Qt/Debugger: Implement "Memory" widget
2018-04-04 16:58:04 +02:00
Léo Lam
4d5adf3dfa
Merge pull request #6588 from lioncash/cmake
DolphinWX/DolphinQt2 CMakeLists: Remove use of LIBS and SRCS variables
2018-04-04 16:57:01 +02:00
Lioncash
5e4446c313
DolphinQt2/CMakeLists: Remove usages of LIBS and SRCS variables
Instead, operate on the target itself. Also removes the variable
representing the name of the target. We can just refer to this directly
2018-04-04 09:09:45 -04:00
spycrab
95ae4b34d9 Qt/Debugger: Implement "Memory" widget 2018-04-04 13:43:30 +02:00
Markus Wick
c6d0d9a01f
Merge pull request #6578 from JosJuice/remove-projection-hacks
Remove support for projection hacks
2018-04-04 09:10:32 +02:00
Markus Wick
ba42238b0b
Merge pull request #6592 from lioncash/imagine-le-ppc
Interpreter_LoadStore: Generate alignment exceptions if lmw, lswi, lswx, stmw, stswi, or stswx is executed when the MSR[LE] bit is set
2018-04-04 09:00:45 +02:00
Markus Wick
b82539e927
Merge pull request #6589 from lioncash/jni
Android/CMakeLists: Remove usages of LIBS and SRCS variables
2018-04-04 08:57:10 +02:00
Lioncash
3ea0a37d72 Interpreter_LoadStore: Generate alignment exceptions if lmw, lswi, lswx, stmw, stswi, or stswx is executed when the MSR[LE] bit is set
Improves exception accuracy regarding an admittedly very unlikely
scenario.
2018-04-03 20:47:40 -04:00
Lioncash
74aff4d9ef
HiresTexture: Correct texture hashes
Fixes a regression introduced in 2da8d98b2f
2018-04-03 12:42:05 -04:00
Lioncash
21ee216e63
Android/CMakeLists: Remove usages of LIBS and SRCS variables
Instead, operate on the target itself.
2018-04-03 08:05:43 -04:00
Lioncash
516b46845d
DolphinWX/CMakeLists: Remove usages of the LIBS and SRCS variables
Instead, operated on the target itself.
2018-04-03 08:04:29 -04:00
Markus Wick
1e0f72f2da
Merge pull request #6585 from lioncash/exception
Interpreter_LoadStore: Handle alignment exceptions in lmw, lwarx, stmw, and stwcx + fixes for eciwx and ecowx
2018-04-03 09:52:36 +02:00
Anthony
971a253a88
Merge pull request #6591 from JosJuice/fix-android
Fix build error on Android
2018-04-03 00:22:44 -07:00
JosJuice
3fe0051a53 Fix build error on Android
Caused by 4387432.
2018-04-03 08:32:55 +02:00
Léo Lam
91f3650fa5
Merge pull request #6586 from lioncash/video-backends
CMakeLists: Migrate video backends off the add_dolphin_library macro and remove said macro
2018-04-02 17:10:52 +02:00
Stenzek
9924434cdf
Merge pull request #6573 from stenzek/bad-shader-uid-cache
ShaderCache: Improve shader UID cache file reliability
2018-04-03 01:00:09 +10:00
Lioncash
de0ed1a5fb
Interpreter_LoadStore: Update the DAR if a DSI exception occurs in eciwx and ecowx
Also once a DSI exception occurs, execution is supposed to leave the
instruction immediately. It doesn't finish execution.
2018-04-02 08:34:32 -04:00
Lioncash
a013638dcb
Interpreter_LoadStore: Properly update the DAR whenever an alignment exception occurs within eciwx and ecowx
These should be updating the DAR when an alignment exception occurs,
just like every other instruction that can cause an alignment exception.
2018-04-02 08:34:32 -04:00
Lioncash
c1b78106e7
Interpreter_LoadStore: Flag alignment exceptions on misaligned addresses in lwarx, lmw, stmw, and stwcx
The effective address given to these instructions must be word (4 byte) aligned,
and if the address is not aligned like that, then an alignment exception
gets triggered.

We currently don't update the DSISR in this case properly, since we
didn't really handle alignment exceptions outside of ecowx and eciwx,
and even then the handling of it isn't really that great, considering
the DAR isn't updated with the address that caused the exception to
occur.

The DSISR will eventually be amended to be properly updated.
2018-04-02 08:34:26 -04:00
Lioncash
22be923b91
CMakeLists: Remove add_dolphin_library macro
With all library targets migrated off add_dolphin_library, we can finally remove it
2018-04-02 08:31:56 -04:00
Lioncash
b184923540
Vulkan/CMakeLists: Migrate off add_dolphin_library
Finishes the migration work started in 3a4c3bbe01
2018-04-02 08:29:37 -04:00
Lioncash
8b43a31855
Software/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:24:40 -04:00
Lioncash
a3c53ff754
OGL/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:22:39 -04:00
Lioncash
d4f8502ad1
Null/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:17:00 -04:00
Lioncash
3854e2bcca
D3D/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:15:22 -04:00
Markus Wick
2449be7f0c
Merge pull request #6571 from lioncash/rotate
CommonFuncs: Generify rotation functions and move them to BitUtils.h
2018-04-02 12:18:22 +02:00
Markus Wick
dea30e08bf
Merge pull request #6576 from lioncash/iconv
CMakeLists: Remove iconv from the LIBS variable
2018-04-02 11:07:19 +02:00
Léo Lam
80525cfd4e
Merge pull request #6584 from lioncash/async-init
AsyncRequests: In-class initialize class members
2018-04-02 10:37:07 +02:00
Lioncash
672665dec0 AsyncRequests: In-class initialize class members
Prior to this change, it's possible for m_wake_me_up_again to be used
while it's in an uninitialized state from the exposed API.

e.g.

- Using SetEnable after construction would perform an uninitialized read.
- Using PushEvent would perform an uninitialized read by way of operator |=.

internally, an uninitialized read can happen if PullEventsInternal() is
executed before other functions.

Just to avoid the whole possibility of performing uninitialized reads,
we just give the class member a default value of false.
2018-04-01 19:06:43 -04:00
Lioncash
fd9eab73fb CPUDetect: Make CPUVendor enum an enum class
Avoids dumping the enum contents into the global namespace.
2018-04-01 17:47:50 -04:00
Léo Lam
bf8ffe5bfb
Merge pull request #6582 from lioncash/const
Jit64/JitRegCache: Make member functions const qualified where applicable
2018-04-01 23:32:58 +02:00
Léo Lam
7d561c7e0e
Merge pull request #6579 from lioncash/socket
IOS/Socket: Minor changes to WiiSocket
2018-04-01 23:31:47 +02:00
Lioncash
0f6c3c7b35 Jit64/JitRegCache: Make member functions const qualified where applicable
None of these member functions modify class state.

Also makes the parameter name for ScoreRegister's implementation
consistent with its declaration.
2018-04-01 16:53:00 -04:00
JosJuice
c6931ee5b8
Merge pull request #6577 from lioncash/memcard
EXI_DeviceMemoryCard: Get rid of magic number in SetCS()
2018-04-01 22:08:36 +02:00
JosJuice
621e1758fb
Merge pull request #6581 from lioncash/const
DSPJitRegCache: Make FindFreeReg() a const member function
2018-04-01 22:05:48 +02:00
Lioncash
6cfa9fda6b DSPJitRegCache: Make FindFreeReg() a const member function
This member function doesn't modify class state.
2018-04-01 16:01:25 -04:00
Lioncash
fe9d989765 DSPJitRegCache: Remove unnecessary casts in FlushRegs()
We can just use the proper printf specifiers instead.
2018-04-01 15:49:21 -04:00
JosJuice
91732e2baf Remove support for projection hacks
This isn't really useful for anything anymore as far as I know.
2018-04-01 21:41:18 +02:00
Lioncash
ad17d9a979 IOS/Socket: Delete WiiSocket's copy constructor
If the copy assignment operator is deleted, then the copy constructor
should be deleted as well, otherwise it's a hole in the API where copies
can be made (and if this were an intended case, it should be
documented).

So we delete the copy constructor and explicitly default the move
assignment and move constructor to signify this is intended to be a
move-only type.
2018-04-01 15:38:37 -04:00
Lioncash
ad575a1556 IOS/Socket: Place WiiSocket's private interface below the public interface
In the rest of the codebase we try to position the private interface
below the public interface (unless it's otherwise not possible).
2018-04-01 15:38:33 -04:00
Lioncash
abb33637a3 IOS/Socket: In-class initialize WiiSocket members 2018-04-01 15:27:58 -04:00
Lioncash
8fbd6e2a87 EXI_DeviceMemoryCard: Get rid of magic number in SetCS()
Keeps the code consistent with other usages of the same constant
2018-04-01 15:21:20 -04:00
Mat M
d8dd7b9e66
Merge pull request #6533 from spycrab/qt_desc_box
Qt/GraphicsWindow: Decrease description box size
2018-04-01 14:06:50 -04:00
Lioncash
8db4ab7dd6
CMakeLists: Remove iconv from the LIBS variable
Adjusts Common to use the ICONV_LIBRARIES variable directly and doesn't
append it to the LIBS variable.

After this, there's only one remaining usage where libraries are added
to the LIBS variable, after which it can be removed once the rest of
the targets are migrated off add_dolphin_library
2018-04-01 14:00:55 -04:00
Stenzek
2687c55cf6 Renderer: Only recreate frame dump texture if dimensions differ
This was a typo, been around for a while. == should be !=. May improve
frame dumping performnace slightly, but I doubt much if any.
2018-04-02 01:15:48 +10:00
Stenzek
8587403e0e ShaderCache: Write currently-known UIDs to cache when re-creating file
This way, if we load a UID cache where the data was incomplete (e.g.
Dolphin crashed), we don't lose the existing UIDs which were previously
at the beginning.
2018-04-02 01:13:24 +10:00
Stenzek
36ea2f7a26 ShaderCache: Fix issue where shader cache wasn't recreated when invalid 2018-04-02 01:02:20 +10:00
Léo Lam
aaf9f4759f
Merge pull request #6570 from lioncash/lzo
CMakeLists: Remove lzo from the LIBS variable and make linkage private
2018-04-01 11:51:06 +02:00
Lioncash
a4420d6d94 Jit64: Make CheckMergedBranch() a const member function
This function doesn't modify class state.
2018-03-31 20:12:53 -04:00
Lioncash
136f16599f UnitTests: Add basic tests for RotateRight() and RotateLeft() 2018-03-31 18:09:50 -04:00
Lioncash
c3483a1823 CommonFuncs: Generify rotation functions and move them to BitUtils.h
These are bit manipulation functions, so they belong within BitUtils.

This also gets rid of duplicated code and avoids relying on compiler
reserved names existing or not existing to determine whether or not we
define a set of functions.

Optimizers are smart enough in GCC and clang to transform the code to a
ROR or ROL instruction in the respective functions.
2018-03-31 18:09:45 -04:00
Lioncash
eee32c030b
CMakeLists: Remove lzo from the LIBS variable and make linkage private
The only place this library is needed (core) is already linked in the core target.
Also make the linkage private to create linkage failures if the dependency isn't
explicitly linked in elsewhere where it should be.

Reduces the dependency on the LIBS variable.
2018-03-31 15:01:05 -04:00
Mat M
76e1a5b892
Merge pull request #6569 from JosJuice/kill-emu-state
Remove EmuState
2018-03-31 14:04:30 -04:00
Mat M
a6f1c6e2e9
Merge pull request #6568 from leoetlino/dead
Remove dead code
2018-03-31 14:02:40 -04:00
Shawn Hoffman
6a0c15491b Remove EmuState 2018-03-31 16:21:17 +02:00
Léo Lam
df0d1c8138
Merge pull request #6563 from JosJuice/fix-wii-banner-load
Fix loading Wii banners for games that initially were cached without banners
2018-03-31 14:59:09 +02:00
Léo Lam
c82da2b978 Remove dead code
Unused, old code that is intended to be removed should not be left in
comments -- that is what version control is for.
2018-03-31 14:56:27 +02:00
JosJuice
5847e213af Clean up the end of GameFile::BannerChanged 2018-03-31 14:52:21 +02:00
Léo Lam
329622120f
Merge pull request #6567 from JosJuice/discio-enums-case
DiscIO: Don't use all uppercase for enum values
2018-03-31 14:37:26 +02:00
JosJuice
4387432436 DiscIO: Don't use all uppercase for enum values
Also removing some prefixes that we don't need now that we're
using enum classes instead of plain enums.
2018-03-31 14:11:32 +02:00
Léo Lam
4e547772da IOS/FS: Make the NAND root path a parameter
Cleaner than having the backend figure out which NAND root to use.
2018-03-31 10:58:49 +02:00
Léo Lam
c56f31906c IOS/FS: Remove some redundant log messages
The FS IPC code already logs all commands, so keeping the log messages
in the backend is redundant.
2018-03-31 10:58:49 +02:00
Léo Lam
2d8be6a77d IOS/FS: Make it harder to forget closing FDs
Return a FileHandle which will automatically close the FD when
the handle goes out of scope. For the rare cases where this behaviour
is undesirable, the FD can be released from the handle.
2018-03-31 10:58:48 +02:00
Léo Lam
de15e09a4f Log: Rename IOS_FILEIO to IOS_FS
Let's use the actual name of the system module.

Also, the FS code is not all about files.
2018-03-31 10:58:37 +02:00
Léo Lam
5a7b966b6d IOS: Rewrite FS to use FileSystem
This is the large change in the branch.

This lets us use either the host filesystem or (in the future) a NAND
image exactly the same way, and make sure the IPC emulation code
behaves identically. Less duplicated code.

Note that "FileIO" and "FS" were merged, because it actually doesn't
make a lot of sense to split them: IOS handles requests for both
/dev/fs and files in the same resource manager, and as it turns out,
/dev/fs commands can *also* be sent to non /dev/fs file descriptors!
If we kept /dev/fs and files split, there would be no way to
emulate that correctly. I'm not aware of anything that does that (yet?)
but I think it's important to be correct.
2018-03-31 10:58:37 +02:00
Léo Lam
78478a651d Boot: Move CreateVirtualFATFilesystem to Boot_WiiWAD
It has nothing to do in the filesystem code.

(It also smells like a workaround for some kind of timing issue.)
2018-03-31 10:58:37 +02:00
Léo Lam
fcfe4e2a26 IOS: Change GetFS() to return a FileSystem
Now that we have a proper filesystem interface, it makes more sense
to return it instead of the emulated IOS device (which isn't
really usable for any purpose other than emulated IPC).
2018-03-31 10:45:44 +02:00
Léo Lam
1eec459e30 IOS: Extract existing FS code into a host backend
Extract the existing FS code into a HostBackend implementing
the filesystem interface.

Compared to the original code, this uses less static state.
The open host files map is now a member variable
as it should have been. Filesystem handles are now also easier
to savestate. Some variable names and log messages were cleaned up.
Nothing else has been changed.
2018-03-31 10:45:44 +02:00
Léo Lam
f1dbb8952c IOS: Introduce a new FileSystem interface
Add a new FileSystem class that can be used to perform operations
on the emulated Wii filesystem.

This will allow separating the IPC code (reading from and writing to
memory to handle IOS FS commands) and the actual filesystem code
in a much better way.

This also paves the way for implementing another filesystem backend
in the future -- NAND images for more complete emulation, including
filesystem metadata like permissions or file orders, which some games
and homebrew actually care about -- without needing to make any more
changes to the other parts of the codebase, in addition to making
filesystem behaviour tests easier to write.
2018-03-31 10:45:44 +02:00
Léo Lam
1bdfedf3c6 Common: Add a Result class
This adds a lightweight, easy to use std::variant wrapper intended to
be used as a return type for functions that can return either a result
or an error code.
2018-03-31 10:45:44 +02:00
Lioncash
e93159e54a
CMakeLists: Link in system framework libraries explicitly on macOS
Makes our libraries explicitly link in which libraries they need.
This makes our dependencies explicit and removes the reliance on the
LIBS variable to contain the libraries that they need.
2018-03-30 16:14:10 -04:00
Léo Lam
7833f1a931
Merge pull request #6558 from lioncash/input
InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
2018-03-30 14:05:36 +02:00
JosJuice
a7ba69e16a Fix loading Wii banners for games that initially were cached without banners
Fixes https://bugs.dolphin-emu.org/issues/10969
2018-03-30 12:04:01 +02:00
Mat M
c3398c9e2c
Merge pull request #6559 from spycrab/qt_crashes
Qt/PatchesWidget: Fix segfault
2018-03-29 18:51:22 -04:00
Mat M
fc99b21080
Merge pull request #6560 from JosJuice/invalid-games-in-game-list
DolphinQt2: Don't show invalid games in game list
2018-03-29 18:49:38 -04:00
Mat M
65a1065cde
Merge pull request #6561 from JosJuice/uid-version-last-changed
Put a "last changed in PR" comment next to UID cache version
2018-03-29 18:48:12 -04:00
JosJuice
b065f86270 Translate the netplay chat info message about QoS 2018-03-29 22:44:23 +02:00
JosJuice
01ea10824d Put a "last changed in PR" comment next to UID cache version
This will create a merge conflict if two PRs try to increment the
cache version at the same time, which makes it noticeable that the
PR that gets merged last needs to increment the cache version again.
We already use this for savestates and the game list cache.
2018-03-29 22:38:37 +02:00
JosJuice
ff2fe73ec9 DolphinQt2: Don't show invalid games in game list
Regression from 1f1dae3.

This problem doesn't happen in DolphinWX as far as I know, but if
you've ran into the problem in DolphinQt2, it will carry over to
DolphinWX because of the shared game list cache.
2018-03-29 21:52:21 +02:00
spycrab
55d9df379a Qt/PatchesWidget: Fix segfault 2018-03-29 21:33:36 +02:00
Lioncash
b8a4ab23dd
InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
Makes an implicit dependency explicit. Also makes the macOS libraries link privately
as they aren't used in the exposed interface.
2018-03-29 11:53:50 -04:00
Léo Lam
53b3da7301
Merge pull request #6555 from Ebola16/ASU
Android: Updates for Android Studio 3.1
2018-03-29 15:13:42 +02:00
Léo Lam
e4f2ff0f32
Merge pull request #6557 from spycrab/qt_log_font
Qt/LogWidget: Add "Debugger Font" option
2018-03-29 15:12:33 +02:00
spycrab
8cb497cab2 Qt/LogWidget: Add "Debugger Font" option 2018-03-29 03:02:34 +02:00
Lioncash
b818cc682c VideoCommon/Vulkan: Explicitly link in xxhash
Lessens the dependency on the LIBS variable (and also makes the required
libraries explicit).
2018-03-28 17:03:16 -04:00
Ryan Meredith
00db87e304 Android: Updates for Android Studio 3.1 2018-03-28 16:38:22 -04:00
Léo Lam
03a6a9b240
Merge pull request #6546 from spycrab/updater_ui
Implement Updater UI
2018-03-28 20:04:32 +02:00
Léo Lam
21a2c0284d
Merge pull request #6544 from spycrab/qt_fix_general
GeneralPane: Fix settings resetting and improve code
2018-03-28 20:01:57 +02:00
spycrab
429dc54159 Updater: Implement UI 2018-03-28 17:59:22 +02:00
spycrab
f700fcae2e HttpRequest: Add callback option 2018-03-28 17:33:34 +02:00
Lioncash
fd7ac0d4a3
VideoCommon/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-28 09:57:50 -04:00
Léo Lam
c28850045d
Merge pull request #6552 from lioncash/uicommon-cmake
UICommon/CMakeLists: Migrate off of add_dolphin_library
2018-03-28 12:33:24 +02:00
Lioncash
a2a18380a7 UICommon/CMakeLists: Migrate off of add_dolphin_library
Continues the migration work started in
3a4c3bbe01
2018-03-28 06:29:09 -04:00
Markus Wick
fc59ec6f13
Merge pull request #6547 from lioncash/dead
PixelShaderGen: Remove dead code in WriteColor()
2018-03-28 10:43:15 +02:00
JMC47
3cd9465f91 Fix JIT64 mtsmsr issue after PIE support again. 2018-03-28 04:16:41 -04:00
Léo Lam
10f198f3cf
Merge pull request #6551 from lioncash/qt-misc
DolphinQt: Remove a few unused variables
2018-03-28 07:50:44 +02:00
JosJuice
748ebf6891
Merge pull request #6550 from lioncash/qt
HacksWidget: Remove duplicate AddDescription() calls in AddDescriptions()
2018-03-28 07:33:04 +02:00
Lioncash
df4ca7f05e SearchBar: Remove unused class variables 2018-03-27 22:47:02 -04:00
Lioncash
306d132232 MainWindow: Remove unused std::string variable in NetPlayHost() 2018-03-27 22:47:02 -04:00
Lioncash
833c030496 WiiPane: Remove unused variable in OnUSBWhitelistRemoveButton() 2018-03-27 22:47:01 -04:00
Lioncash
eb8a853d8e Resources: Remove unused string in Init() 2018-03-27 22:47:01 -04:00
Lioncash
568490fdfb MD5Dialog: Call .empty() instead of testing against an empty string 2018-03-27 22:47:01 -04:00
Lioncash
d3283a881f MenuBar: Remove unnecessary c_str() call
Also uses the character overload for find_last_of
2018-03-27 22:47:01 -04:00
Lioncash
b637163704 CodeWidget: Remove unnecessary c_str() calls 2018-03-27 22:46:51 -04:00
Lioncash
4a1123f519 HacksWidget: Remove duplicate AddDescription() call in AddDescriptions() 2018-03-27 22:36:37 -04:00
Lioncash
aa42534fed FilesystemWidget: Pass path QString by const reference instead of by value in ExtractDirectory()
Makes it consistent with the surrounding API.

Also corrects a typo in ExtractFile's parameter list.
2018-03-27 22:00:40 -04:00
Lioncash
fc531993a9 DiscExtractor: Pass partition by reference rather than by value in ExtractDirectory() 2018-03-27 21:49:42 -04:00
Pierre Bourdon
ac97f0463f
Merge pull request #6548 from lioncash/const
LinearDiskCache: Don't cast away const in Read()
2018-03-28 03:14:38 +02:00
Lioncash
008442898c LinearDiskCache: Don't cast away const in Read()
We really shouldn't make the out pointer in the read function const and
then summarily cast it away. Also alters Write to be consistent with
casting.
2018-03-27 21:09:18 -04:00
Lioncash
f10198500e PixelShaderGen: Invert conditional in WriteColor()
Puts the true condition body first instead of the false one for better
reading.
2018-03-27 18:53:17 -04:00
Lioncash
c9e0045881 PixelShaderGen: Remove dead code in WriteColor()
The outer conditional executes only whenever destination alpha is used.
2018-03-27 18:46:25 -04:00
Léo Lam
ea166a4812
Merge pull request #6543 from lioncash/cast
HiresTextures: Remove unnecessary pointer casts in GenBaseName() + minor associated cleanup
2018-03-27 21:45:56 +02:00
Lioncash
2da8d98b2f
HiresTextures: Use std::minmax or std::minmax_element where applicable in GenBaseName()
Minimizes repetition.

std::minmax_element can be used for the 256 * 2 case, as it's only performing byte comparisons
and thus, there will always be an element smaller than 0xffff, so it doesn't need to be included
in the set of compared values.
2018-03-27 15:39:05 -04:00
Lioncash
d5a1edba09
HiresTextures: Remove unnecessary pointer casts in GenBaseName()
swap16 has an overload that accepts a u8*, performing the same behavior
in a well-defined manner.
2018-03-27 15:19:02 -04:00
Pierre Bourdon
4ed0e10f41
Merge pull request #6541 from spycrab/updater_feedback
Updater: Provide basic user feedback
2018-03-27 20:43:36 +02:00
spycrab
7ce147f4d5 Updater: Provide basic user feedback 2018-03-27 20:32:26 +02:00
spycrab
11b15a688b GeneralPane: Fix settings resetting and improve code 2018-03-27 20:27:03 +02:00
Stenzek
92e7830be9
Merge pull request #6540 from spycrab/gcpad_segfault
Core: Check for initialized GCPad before resetting rumble
2018-03-28 02:40:53 +10:00
Léo Lam
3c61ee5f7f
Merge pull request #6542 from lioncash/cast
BPStructs: Remove an unnecessary pointer cast in GetBPRegInfo
2018-03-27 18:12:56 +02:00
Léo Lam
98f62a3ecd
Merge pull request #6530 from spycrab/qt_hires_icon
Various icon improvements
2018-03-27 18:08:46 +02:00
Lioncash
9feb18866b
BPStructs: Remove an unnecessary pointer cast in GetBPRegInfo
swap32 has an overload that accepts a u8*, performing the same behavior
in a well-defined manner.
2018-03-27 12:04:16 -04:00
spycrab
4f63d7f204 Qt: Fix low-resolution icon 2018-03-27 17:32:45 +02:00
spycrab
016ef43b27 Core: Check for initialized GCPad before resetting rumble 2018-03-27 16:26:36 +02:00
Léo Lam
ceed6890df
Merge pull request #6526 from lioncash/emitter
x64Emitter: Minor cleanup and changes
2018-03-27 08:49:36 +02:00
Lioncash
476c71efc1 x64Emitter: Make eligible register and immediate functions constexpr
Pointer variants aren't eligible as expressions with reinterpret cast
within them cannot be constexpr.
2018-03-26 18:21:22 -04:00
Lioncash
8b072e1383 x64Emitter: Make remaining eligible functions in OpArg constexpr 2018-03-26 18:21:21 -04:00
Lioncash
964201f2d3 x64Emitter: Use std::tie in OpArg's operator==. Provide operator!= for symmetry 2018-03-26 18:21:21 -04:00
Lioncash
7f583b66cb x64Emitter: Clean up constructors for OpArg
Default initializes members and moves initial assignments into the
initializer list.
2018-03-26 18:21:17 -04:00
Miikka Juomoja
7169be242f StringUtil: Fix possible bad free 2018-03-26 23:48:13 +02:00
Léo Lam
793c6d25f4
Merge pull request #4532 from Neui/env-var-usr-cfg
Use $DOLPHIN_EMU_PATH as an alternative for the user directory
2018-03-26 23:41:27 +02:00
Léo Lam
b0e4e35cc5
Merge pull request #6478 from spycrab/qt_default_btns
Qt: Replace "OK" with "Close" buttons
2018-03-26 22:48:26 +02:00
Léo Lam
d3f432946f
Merge pull request #6514 from lioncash/inputcommon-cmake
InputCommon/CMakeLists: Migrate off add_dolphin_library
2018-03-26 21:25:27 +02:00
Léo Lam
c9b4e3959c
Merge pull request #6511 from leoetlino/qt
Qt: Minor fixes
2018-03-26 21:24:44 +02:00
Léo Lam
91f61a1be4
Merge pull request #6285 from JosJuice/qt-gametracker-more-thread
DolphinQt2: Perform more of GameTracker's work on a separate thread
2018-03-26 21:24:22 +02:00
Markus Wick
9b5726fc23
Merge pull request #6534 from lioncash/dspjit
DSPEmitter: Remove uses of the DSP JIT global in CompileCurrent()
2018-03-26 21:12:46 +02:00
Markus Wick
12b99313aa
Merge pull request #6536 from stenzek/glx-swap-interval
GLInterface: Use EXT_swap_control or MESA_swap_control over SGI
2018-03-26 21:11:13 +02:00
JosJuice
0a69b42d07 DolphinQt2: Perform more of GameTracker's work on a separate thread
This reduces the time from startup to the game list window showing up.
2018-03-26 20:08:06 +02:00
Léo Lam
b4e9bef25c
Merge pull request #6519 from spycrab/qt_rw_bg
Qt/RenderWidget: Draw background on pause
2018-03-26 19:04:53 +02:00
Léo Lam
2e1edb49b0
Merge pull request #6524 from lioncash/global
JitArm64/JitAsm: Remove usages of the JIT global
2018-03-26 18:59:05 +02:00
Léo Lam
674ab6a8ef
Merge pull request #6532 from lioncash/interp
Interpreter: Remove static state within SingleStepInner()
2018-03-26 18:50:26 +02:00
Stenzek
c82be53d5c GLInterface: Use EXT_swap_control or MESA_swap_control over SGI
The SGI extension does not define calling SwapInterval with a parameter
of zero as valid. It was just lucky that drivers interpreted this as
vsync off. The EXT_swap_control extension defines zero as a valid value.

Mesa does not appear to support the EXT variant, so we fall back to
MESA_swap_control here, which also supports zero.
2018-03-26 22:09:22 +10:00
Lioncash
4a4538abbf
Interpreter_LoadStore: Amend variable naming
Amends variable names to follow our code style. Also makes code const correct where possible.
2018-03-26 07:47:50 -04:00
Léo Lam
97e4d3d56f
Merge pull request #6523 from lioncash/cast
Interpreter_LoadStore: Remove unnecessary casts
2018-03-26 12:47:09 +02:00
Léo Lam
eb489c0a5e
Merge pull request #6529 from lioncash/utils
DSPCodeUtil: Don't return data via an out parameter
2018-03-26 12:46:16 +02:00
Léo Lam
3272fda3ee
Merge pull request #6525 from lioncash/dead-code
Jit64/Jit_Integer: Remove dead code in arithXex()
2018-03-26 12:43:01 +02:00
Léo Lam
ccfdea696a
Merge pull request #6527 from lioncash/typedef
DSPTables: Remove opc_t typedef
2018-03-26 12:39:27 +02:00
Léo Lam
8e8603fcc9
Merge pull request #6528 from lioncash/enum-asm
DSPAssembler: Make error code enum an enum class
2018-03-26 12:38:06 +02:00
Léo Lam
ea5808759e
Merge pull request #6531 from lioncash/mmu-enum
MMU: Make TLBLookupResult and XCheckTLBFlag enum classes
2018-03-26 11:39:37 +02:00
spycrab
591c8837e2 Qt: Replace "OK" with "Close" buttons 2018-03-26 09:20:48 +02:00
spycrab
9f13048e1e Qt/GraphicsWindow: Decrease description box size 2018-03-26 08:30:32 +02:00
Lioncash
1519e4dbb3 DSPEmitter: Remove uses of the DSP JIT global in CompileCurrent()
With this, the DSPEmitter itself no longer makes use of the DSP JIT global
2018-03-26 01:14:17 -04:00
Kekker-git
d40ae9f569 Fix indefinite rumble on emulation pause 2018-03-26 00:04:58 -04:00
Lioncash
8b29997ed1 Interpreter: Remove an unnecessary UReg_MSR& cast from SingleStepInner
This is technically undefined behavior, but regardless of that, it's not
even necessary since we can just make a temporary around the MSR value
and just discard it when done with it, since all we do is query the FP
bit value with it.
2018-03-25 21:36:39 -04:00
Lioncash
b0efcdc8ef Interpreter: Get rid of static state within SingleStepInner()
Given how the hooking operates, we may not execute an instruction.
Instead of making the state a static local to the function, just make it
part of the lifecycle of the Interpreter class.
2018-03-25 21:30:00 -04:00
Lioncash
c4a597171c MMU: Make XCheckTLBFlag an enum class 2018-03-25 19:51:47 -04:00
Lioncash
9967c24f5d MMU: Make TLBLookupResult an enum class 2018-03-25 19:44:14 -04:00
Lioncash
0f25627614 DSPCodeUtil: Don't return data via an out parameter
We can just return directly in these cases.
2018-03-25 18:55:08 -04:00
Lioncash
e42db3594b DSPAssembler: Make error code enum an enum class
Prevents the error codes from littering the surrounding scope.
2018-03-25 18:19:08 -04:00
Lioncash
8c421ffbb7 DSPTables: Remove opc_t typedef
This was only ever used by the DSP assembler, and even then it was
sparsely used. Get rid of it to be consistent with types in other
sections of the DSP code.
2018-03-25 17:53:23 -04:00
Lioncash
2861e8f868 x64Emitter: Clean up constructor and destructors of XEmitter
In-class initializes members, defaults the default constructor and
virtual destructor, and puts members in the initializer list.
2018-03-25 16:50:02 -04:00
Lioncash
7bd41a3b55 Jit64/Jit_Integer: Remove dead code in arithXex()
The conditional this code is within already checks whether d == b, so this
conditional will never be true.
2018-03-25 15:35:02 -04:00
Lioncash
efcdb3debb JitArm64/JitAsm: Remove usages of the JIT global
With this, the entire ARM JIT makes no use of the JIT global whatsoever.
2018-03-25 15:23:49 -04:00
Lioncash
a45631c4ca Interpreter_LoadStore: Remove unnecessary casts
These aren't necessary as the type being stored into a u32 are of the
same signedness and are smaller in data size, so there's no truncation
being performed.
2018-03-25 15:09:32 -04:00
Stenzek
2f1a7cbee1 Implement "Skip" ubershader mode
Skip ubershader mode works the same as hybrid ubershaders in that the
shaders are compiled asynchronously. However, instead of using the
ubershader to draw the object, it skips it entirely until the
specialized shader is made available.

This mode will likely result in broken effects where a game creates an
EFB copy, and does not redraw it every frame. Therefore, it is not a
recommended option, however, it may result in better performance on
low-end systems.
2018-03-26 01:57:41 +10:00
Léo Lam
5c83e18fbd
Merge pull request #6515 from lioncash/cast
Interpreter_FPUtils: Get rid of a pointer cast
2018-03-25 11:27:38 +02:00
Léo Lam
e9976c27c0
Merge pull request #6518 from lioncash/namespace
Interpreter: Don't dump the MathUtils namespace into scope in Interpreter_FloatingPoint and Interpreter_Paired
2018-03-25 11:24:24 +02:00
Lioncash
48e2e9a41d CachedInterpreter: Use using aliases instead of typedef 2018-03-25 02:57:25 -04:00
Lioncash
9829083241 CachedInterpreter: Use an enum class for instruction type 2018-03-25 02:57:16 -04:00
Lioncash
89df65aa25 Interpreter_Integer: Correct precedence of overflow check in nego
The overflow check needs to occur before the condition register update
due to the fact that the summary overflow (SO) bit is used in the
updating of the condition register. If we set any overflow bits after
updating the CR, then we can potentially incorrectly report that an
overflow did not happen (in the case the SO bit wasn't set previously).
2018-03-24 20:48:05 -04:00
spycrab
3f1430587c Qt/RenderWidget: Draw background on pause 2018-03-25 01:26:50 +01:00
Lioncash
96014e74a3 Interpreter_Paired: Don't dump the entire MathUtils namespace into scope
Functions from the namespace are only used four times within the entire
file.
2018-03-24 19:42:14 -04:00
Lioncash
46f61a48c7 Interpreter_FloatingPoint: Don't dump the entire MathUtils namespace into scope
Given functions from the MathUtils namespace are only used six times in
the whole file, dumping the namespace seems a little excessive.
2018-03-24 19:40:22 -04:00
Lioncash
27611d55ff Interpreter_FPUtils: Get rid of a pointer cast
This is undefined behavior according to the standard. We can just use
the built in means of retrieving a quiet NaN.
2018-03-24 19:33:44 -04:00
Léo Lam
328ac424c0
Merge pull request #6517 from lioncash/ppctables
PPCTables: Namespace all exposed functions
2018-03-24 22:17:36 +01:00
Lioncash
8a7abd72b4 PPCTables: Remove prefixed underscores from parameter names 2018-03-24 16:46:49 -04:00
Lioncash
2381aeecc3 PPCTables: Namespace all exposed functions
It's somewhat inconsistent to have two straggler functions outside the
namespace.
2018-03-24 16:46:12 -04:00
Lioncash
397b3fb976 CPUCoreBase: Make the GetName() member function const qualified
This function should have no need to modify internal class state.
2018-03-24 16:17:39 -04:00
Lioncash
c738ddc4aa CPUCoreBase: Default the virtual destructor 2018-03-24 16:09:19 -04:00
Léo Lam
5369d3c9f1
Merge pull request #6513 from lioncash/dead-code
Interpreter: Remove dead code
2018-03-24 20:09:25 +01:00
Lioncash
ef6e747a68 PowerPC: Remove commented out PanicAlert 2018-03-24 14:52:22 -04:00
Lioncash
3dc3b0caa5 Interpreter_LoadStore: Remove commented out code
Also removes long separation lines that aren't really necessary.
2018-03-24 14:49:18 -04:00
Lioncash
f9e0645b99 Interpreter_SystemRegisters: Remove commented out code 2018-03-24 14:45:46 -04:00
Lioncash
288b579c09 Interpreter_Integer: Remove commented out code in subfic 2018-03-24 14:43:25 -04:00
Lioncash
01308330d9
InputCommon/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-24 14:13:53 -04:00
Lioncash
680ceb7f43
DiscIO/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-24 13:54:06 -04:00
Léo Lam
2d0d4fee28 Qt: Fix controller window margin
Reduces wasted space and makes the whole window (barely) fit on my
laptop screen again. (Regression from the scroll wrap changes)
2018-03-24 18:45:10 +01:00
Léo Lam
bf05c74f6b Qt: Fix GameCube config pane spacing 2018-03-24 18:18:17 +01:00
Léo Lam
752098de22 Qt: Fix search bar widget spacing
With setMargin(0), the widgets look awkwardly close to the window edges
2018-03-24 18:09:46 +01:00
Léo Lam
8d0c15bb97 Qt/Search: Simplify placeholder text
A search box is a common UI element. We don't need to explicitly tell
the user that they need to type a search term. Also,

Let's use the common "Search <items>..." placeholder text instead
and make the string shorter for localisation.
2018-03-24 18:02:17 +01:00
Léo Lam
f7c9d2fd4d Qt: Show code pane by default in debug mode
Otherwise, it's confusing because the option seems to do nothing
especially if the user is used to the DolphinWX debugger.
2018-03-24 17:53:46 +01:00
spycrab
806990968d Qt: Implement "Auto-Adjust Window Size" 2018-03-24 16:48:46 +01:00
Léo Lam
a838d13fd1
Merge pull request #6504 from Ebola16/OSD
Rename "On-Screen Messages" to "On-Screen Display Messages"
2018-03-24 09:59:14 +01:00
Léo Lam
305b3dc835
Merge pull request #6497 from spycrab/qt_file
Qt: Implement missing "File" menu items
2018-03-24 09:10:49 +01:00
Léo Lam
4c5efb0f3a
Merge pull request #6508 from lioncash/cmake-common
Common/CMakeLists: Migrate off add_dolphin_library
2018-03-24 09:08:20 +01:00
Léo Lam
37dbb2e181
Merge pull request #6509 from spycrab/qt_shader_gen
Qt: Show shader generation window
2018-03-24 09:03:16 +01:00
Markus Wick
3ab88742fd
Merge pull request #6492 from lioncash/nop
Jit_Integer: Make NOP check more flexible for ori and expand NOP checking to oris, xori, and xoris
2018-03-24 08:53:21 +01:00
spycrab
cb71b06afc Qt: Show shader generation window 2018-03-24 03:02:47 +01:00
Mat M
5669841e83
Merge pull request #6505 from lioncash/arm
Arm64Emitter: Minor cleanup
2018-03-23 19:25:50 -04:00
Lioncash
f889cae8c4
Arm64Emitter: Satisfy unrelated linter issues that cropped up by modifying the cpp file 2018-03-23 19:17:44 -04:00
Lioncash
91cefe6c8a
Arm64Emitter: Make IsImmArithmetic, IsImmLogical, FPImm8ToFloat, and FPImm8FromFloat internally linked
These aren't used anywhere outside of the emitter. Centralizes them under an anonymous namespace.
2018-03-23 19:17:26 -04:00
Lioncash
2548ccda8e
Common/CMakeLists: Migrate off add_dolphin_library
Continues the migration work that was started in 3a4c3bbe01
2018-03-23 19:08:30 -04:00
spycrab
8ebb3a015e Qt: Update analytics checkbox after initial prompt 2018-03-23 23:28:17 +01:00
spycrab
f3e6f0f2d4 Updater: Increase request timeout to 30s 2018-03-23 22:25:38 +01:00
Lioncash
b11c237c43
Arm64Emitter: Remove unnecessary V8_UINT64_C preprocessor macro
UINT64_C is provided via <cstdint>, so we can just use that instead.
2018-03-23 13:31:48 -04:00
Lioncash
03671a5534
Arm64Emitter: Remove duplicate IsPowerOf2 function
We can just use the generified version in MathUtil.
2018-03-23 13:31:44 -04:00
Ryan Meredith
976347c65d Rename "On-Screen Messages" to "On-Screen Display Messages" 2018-03-23 12:29:03 -04:00
Pierre Bourdon
22d851d930
Merge pull request #6500 from spycrab/qt_respect_portable
Qt: Make QSettings use the user config directory (Make it respect portable.txt)
2018-03-23 17:25:28 +01:00
JosJuice
9c70036105
Merge pull request #6503 from lioncash/brace-warn
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings
2018-03-23 15:29:39 +01:00
Lioncash
a52cc8d52b
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings 2018-03-23 10:06:27 -04:00
Lioncash
2ab29a40eb
AbstractFramebuffer: Silence a -Wlogical-op-parentheses warning in ValidateConfig() 2018-03-23 09:58:19 -04:00
Lioncash
79f40fb8d7
MathUtil: Generify IsPow2
This will allow it to also be used in the AArch64 emitter.
2018-03-23 09:50:49 -04:00
spycrab
68733ac6c1 Qt: Make QSettings use the user config directory 2018-03-23 12:50:01 +01:00
Lioncash
38f045cee5
DolphinQt2/GameCubePane: Correct duplicate condition in LoadSettings()
Also turns a std::string const reference into a value instance.
While this is well-defined, it does look out of place, given a new string
is being created.
2018-03-23 07:38:26 -04:00
Pierre Bourdon
894d4c99a8
Merge pull request #6495 from lioncash/namespace
PowerPC: Namespace all header contents for PowerPC.h
2018-03-23 12:09:09 +01:00
Pierre Bourdon
27ffc8a69d
Merge pull request #6498 from lioncash/cmake
AudioCommon/CMakelists: Migrate off add_dolphin_library
2018-03-23 12:07:00 +01:00
Pierre Bourdon
1ac7452129 AutoUpdater: Generate basic HTML changelog. 2018-03-23 11:10:25 +01:00
Pierre Bourdon
1f3310874b AutoUpdater: Don't show a spinning wheel cursor when delaying update 2018-03-23 11:10:25 +01:00
Pierre Bourdon
9628333b86 AutoUpdater: support optionally restarting Dolphin after update 2018-03-23 11:10:25 +01:00
Pierre Bourdon
773ec975f3
Merge pull request #6489 from spycrab/qt_updater
Qt: Improve and better integrate updater
2018-03-23 11:08:48 +01:00
spycrab
95a5a51e55 Qt: Implement missing "File" menu items 2018-03-23 10:58:54 +01:00
spycrab
ee3d64145c Qt: Improve updater 2018-03-23 10:42:40 +01:00
Lioncash
fc16a78f6a Jit_Integer: Handle NOP case for xori and xoris
Like ori and oris, xori and xoris can also be used to introduce a NOP.
In that case, just don't do anything.
2018-03-22 22:51:43 -04:00
Lioncash
007f9e5309 Jit_Integer: Handle NOP case for oris as well
Like ori, this can also be used as a NOP under the same conditions.
2018-03-22 22:49:02 -04:00
Lioncash
42fce74f39 Jit_Integer: Handle NOP case where RA == RS for ori
ori can be used as a NOP if the two register operands are the same, and
the immediate is zero, not only if the two register operands are r0.

Also removes the check for !inst.Rc, as ori only has one encoding, and
said encoding doesn't even have a record bit in it.
2018-03-22 22:47:19 -04:00
Lioncash
b96bbc8f8d
AudioCommon/CMakelists: Migrate off add_dolphin_library
Continues the changes that were introduced in 3a4c3bbe01
2018-03-22 22:07:11 -04:00
Mat M
71846a6daa
Merge pull request #6469 from lioncash/cmake
Core/CMakeLists: Migrate off add_dolphin_library
2018-03-22 21:52:44 -04:00
Lioncash
4c97deb364 PowerPC: Namespace all header contents for PowerPC.h
Puts everything under the same namespace. Previously the header was only
partially namespaced, which is inconsistent.
2018-03-22 19:01:47 -04:00
spycrab
196a1dcce4 Qt/CheatCodeEditor: Fix valid, encrypted AR codes not being accepted 2018-03-22 23:42:20 +01:00
Léo Lam
5e76f3a6d4
Merge pull request #6488 from aldelaro5/symbols-log
LOG: Add a log type for Symbols
2018-03-22 22:06:04 +01:00
Markus Wick
a4511129e7
Merge pull request #6491 from lioncash/sub-oe
Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
2018-03-22 21:52:17 +01:00
aldelaro5
c54e56793a
Add a log type for Symbols and move symbols related logs to it
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2018-03-22 14:57:28 -04:00
Lioncash
796d67e1ec Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
With this, overflow flag support is now fully implemented for all
instructions that support it.
2018-03-22 13:08:03 -04:00
Anthony
0f60e68e0b
Merge pull request #6490 from spycrab/qt_fs_warn
Qt: Fix fullscreen quitting
2018-03-22 08:43:52 -07:00
spycrab
cc3d5a9921 Qt: Fix fullscreen quitting 2018-03-22 15:29:08 +01:00
Markus Wick
59c5bc964f
Merge pull request #6486 from lioncash/add-oe
Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze
2018-03-22 14:15:58 +01:00
Lioncash
9d21425449 Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze 2018-03-22 09:09:31 -04:00
Léo Lam
2e92d95888
Merge pull request #6487 from sepalani/dsp-doc
DSP: Fix typos in DSP LoadStore doc
2018-03-22 07:51:29 +01:00
Sepalani
4ed06da2b4 DSP: Fix typos in DSP LoadStore doc 2018-03-22 09:24:58 +04:00
Lioncash
e53fffeb90 PowerPC: Properly unset the overflow bit
The OV bit is non-sticky. Therefore, after an overflow-enabled
instruction executes, if an overflow does *not* occur, then OV is
cleared. SO is sticky however, so it staying set in this case is
correct.
2018-03-21 23:59:15 -04:00
Anthony
23bc50704a
Merge pull request #6484 from lioncash/mul
Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw
2018-03-21 18:18:00 -07:00
Lioncash
355509653e Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw 2018-03-21 20:28:37 -04:00
Michael M
1ba43e6c27 DSPSymbols: remove unused ReadAnnotatedAssembly
It's unused, and it used a weird format, something like:

```
void label_name() {
   asm $REG1, $REG2
   // etc
}
```
2018-03-21 17:07:27 -07:00
Michael M
ed56f319b5 DSPHost: don't try to read old annotated assembly files
They don't exist anymore!
2018-03-21 17:06:30 -07:00
Anthony
30ccaa3fd5
Merge pull request #6481 from spycrab/qt_fix_fs
Qt: Fix fullscreen
2018-03-21 16:44:54 -07:00
Léo Lam
1b0f6a7d2e
Merge pull request #6482 from spycrab/qt_borders
Qt/MainWindow: Remove obnoxious border
2018-03-21 23:24:46 +01:00
Léo Lam
1b28693eb0
Merge pull request #4484 from Helios747/remove_text
[UI] Remove experimental tag from Vulkan
2018-03-21 23:18:03 +01:00
Helios747
b02b616930 [UI] Remove experimental tag from Vulkan 2018-03-21 15:12:12 -07:00
spycrab
8ead5be9f2 Qt: Fix fullscreen 2018-03-21 22:57:16 +01:00
spycrab
809dd665c7 Qt/MainWindow: Remove obnoxious border 2018-03-21 22:48:17 +01:00
Anthony
9cf22aec04
Merge pull request #6480 from spycrab/qt_search
Qt: Implement search
2018-03-21 12:40:34 -07:00
spycrab
3292abb41d Qt: Implement search 2018-03-21 20:04:13 +01:00
Léo Lam
8580b3ba1f Qt: Add ignore button for panic alerts
Allows easily disabling panic alerts during a session if needed.
2018-03-21 11:22:30 +01:00
Markus Wick
8308d6b464
Merge pull request #6476 from lioncash/dispatch
JitAsm: Eliminate use of the JIT global variable
2018-03-21 09:55:04 +01:00
Lioncash
7a2d98b948 JitAsm: Remove use of the JIT global in Generate()
With this, JitAsm code doesn't have any reliance on the JIT global
variable. This means the core JIT64 code no longer relies on said
global at all. The Jit64 common code, however, still has some offenders.

Notably, EmuCodeBlock and Jit64AsmCommon are the remaining places in the
common code that make use of the global variable.
2018-03-21 04:41:37 -04:00
Lioncash
e0165a62da JitBase: Remove use of the JIT global in Dispatch() and JitTrampoline()
Trims down a few more uses of the global variable by just passing the
JIT instance we're dispatching or trampolining with as a parameter.
2018-03-21 04:41:30 -04:00
Pierre Bourdon
fe600ab0ed
Merge pull request #6146 from HannesMann/qos-support
Netplay: Add Quality of Service (QoS) support
2018-03-21 02:46:46 +01:00
Pierre Bourdon
6860259c44
Merge pull request #6457 from spycrab/qt_misc
Qt: Improve spacing again
2018-03-21 01:10:01 +01:00
Pierre Bourdon
6079d7d3c6
Merge pull request #6475 from Starsam80/fix-always-true
Qt: Remove always true if statement
2018-03-21 01:07:54 +01:00
Anthony
ad8c31699f
Merge pull request #6463 from delroth/auto-update
Initial implementation of the Dolphin auto-updater for Windows
2018-03-20 11:28:26 -07:00
Pierre Bourdon
66b41c5509 UICommon: Add AutoUpdate module + placeholder Qt implementation
The AutoUpdate module is a generic update checker mechanism which can be
used by UI backends to trigger an auto-update check as well as the
actual update process.

Currently only configurable through .ini and the Qt implementation is
completely placeholder-y -- blocking the main thread on a network
request on startup, etc.
2018-03-20 19:21:19 +01:00
Pierre Bourdon
37902c4aa4 DolphinWX: depend on Updater in order to make sure the binary is included in default builds 2018-03-20 19:21:19 +01:00
Pierre Bourdon
07c160310e Add Updater.exe which performs the update tasks.
Updater.exe takes as input manifests and applies the difference between
these manifests to an install directory.

Currently lacking a UI.
2018-03-20 19:21:19 +01:00
Markus Wick
43c92c8b16
Merge pull request #6451 from leoetlino/default-mmu
Config: Set bMMU to true by default on x64
2018-03-20 14:40:40 +01:00
Markus Wick
35bfa64dfc
Merge pull request #6470 from lioncash/ov-flag
Interpreter: Handle setting the overflow flag when the OE bit is set in divw, divwu, and neg
2018-03-20 11:08:12 +01:00
Starsam80
b7c44715a8
Qt: Remove always true if statement 2018-03-20 00:41:47 -06:00
Pierre Bourdon
bc9deb7be3 HttpRequest: make curl initialization thread-safe 2018-03-20 00:36:43 +01:00
spycrab
44ce78c969 Qt: Remove in-development warning 2018-03-19 21:59:50 +01:00
Anthony
50588034ba
Merge pull request #6472 from lioncash/jit-init
JitBase: Ensure JitOptions and JitState instances are consistently initialized
2018-03-19 13:20:40 -07:00
Lioncash
51cfeb8c7d JitBase: Ensure JitOptions and JitState instances are consistently initialized
Ensures that upon construction of a JitBase instance, that all
underlying members within the option and state structs are guaranteed
to be initialized.

This prevents potentially using a member uninitialized in some form.
2018-03-19 15:58:32 -04:00
Anthony
37f8efcda0
Merge pull request #6471 from JosJuice/qt-strings-consistent
Make strings more consistent between DolphinWX and DolphinQt2
2018-03-19 11:00:24 -07:00
JosJuice
a71c615435 Make strings more consistent between DolphinWX and DolphinQt2
Reduces the number of strings to translate.
2018-03-19 18:52:46 +01:00
Léo Lam
16f74cee70
Merge pull request #6467 from lioncash/breakpoint
Breakpoints: Remove direct usages of the JIT global
2018-03-19 18:42:10 +01:00
Lioncash
2fa0cb91a1 Interpreter_Integer: Set the overflow flag if the OE bit is set for neg
Also amends the condition that was being checked. Previously it was
checking if the destination register value was 0x80000000, however it's
actually the source register that should be checked.
2018-03-19 13:27:36 -04:00
Lioncash
675d2fb774 Interpreter_Integer: Set the overflow flag if the OE bit is set for divw and divwu
divw and divwu won't panic now if the OE bit is set for these instructions.
2018-03-19 11:51:10 -04:00
Lioncash
f129c936e7 PowerPC: Add functions for getting and setting the XER OV bit
While we're at it, change GetXER_SO's return value to u32
to prevent potential sign bit wonkyness given we're performing bit arithmetic.
2018-03-19 11:51:04 -04:00
Léo Lam
f335790623
Merge pull request #6460 from lioncash/datareader
DataReader: Minor API changes
2018-03-19 15:02:50 +01:00
Markus Wick
8c1be29cef
Merge pull request #6466 from lioncash/mffs
Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf and mtfsfi with the record bit set
2018-03-19 09:37:01 +01:00
Markus Wick
523031f037
Merge pull request #6444 from stenzek/d3d-bbox
D3D: Fix broken bounding box
2018-03-19 09:21:22 +01:00
Markus Wick
98b4716902
Merge pull request #6442 from stenzek/async-compiler-priority
ShaderCache: Implement compile priority
2018-03-19 09:16:53 +01:00
Markus Wick
0c0a342483
Merge pull request #6464 from lioncash/using
JitArm64_RegCache: Remove using namespace declaration from header
2018-03-19 09:11:45 +01:00
Lioncash
3a4c3bbe01 Core/CMakeLists: Migrate off add_dolphin_library
This macro (that has unfortunately become the de-facto way of
introducing targets) has a lot of disadvantages that outweigh the fact
that you avoid writing two extra lines of CMake script.

- It encourages the use of variables. In a build system the last thing
we want to care about is mutable state that can be avoided.

- It only handles linking in the libraries and nothing else. It's a
laziness macro.

- We should be explicit about what we're doing by introducing the target
first, not last.

This gets the ball rolling by migrating Core off the macro. Note that
this is essentially 1-to-1 unrolling of the macro, therefore we're
still linking in all libraries as public, even though that may not be
necessary.

This can be revisited once everything is off the macro for a quicker
transition period.
2018-03-19 04:02:12 -04:00
Markus Wick
22aba8c56d
Merge pull request #6468 from lioncash/downcast
JitInterface: Remove a downcast within InitJitCore
2018-03-19 09:00:56 +01:00
Markus Wick
3d49bdb488
Merge pull request #6462 from lioncash/ppc
PPCTables: Make the op type enum an enum class
2018-03-19 08:55:32 +01:00
Markus Wick
8002bfbc41
Merge pull request #6461 from lioncash/emitter
x64Emitter: Move FloatOp and NormalOp enum definitions into the cpp file
2018-03-19 08:53:00 +01:00
Markus Wick
79b21e1381
Merge pull request #6459 from lioncash/enum
VertexShaderGen: Convert defines to an enum
2018-03-19 08:48:25 +01:00
Markus Wick
768cd7ede5
Merge pull request #6458 from lioncash/remove-mainbase
VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
2018-03-19 08:46:35 +01:00
Lioncash
14b204a9bb JitInterface: Remove a downcast within InitJitCore
This isn't necessary as JitBase is already within the type hierarchy that
CPUCoreBase is.
2018-03-19 03:13:16 -04:00
Lioncash
a0164e14bc BreakPoints: Avoid direct use of the JIT global
Trims the direct usages of the global by making the code go through the
JIT interface (where it should have been going in the first place).

This also removes direct JIT header dependencies from the breakpoints as
well. Now, no code uses the JIT global other than JIT code itself, and
the unit tests.
2018-03-19 03:08:57 -04:00
Lioncash
b4cd11c7c9 BreakPoints: Invert if statements where reasonable
Puts the early-exit condition first, unindenting code that doesn't need
to be.
2018-03-19 03:08:53 -04:00
Lioncash
3137d4f75f BreakPoints: Use std algorithms where applicable 2018-03-19 03:08:17 -04:00
Lioncash
eea99de118 Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf, and mtfsfi with the record bit set
All of these with the record bit set update condition register 1 with the
contents of the FPSCR's FX, FEX, VX and OX bits.

Helper_UpdateCR1() does exactly that, so we use it here to perform this
for us.
2018-03-19 00:05:00 -04:00
Lioncash
6ae8a2b5f8 JitArm64_RegCache: Remove using namespace declaration from header
Dumping a namespace in a header file should be avoided since it can
cause random name and type clashing in unexpected ways.
2018-03-18 19:39:58 -04:00
Pierre Bourdon
5498f9b7ef make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
Pierre Bourdon
0427d3474c Import ed25519 implementation from https://github.com/orlp/ed25519 2018-03-19 00:11:55 +01:00
Pierre Bourdon
891a1eeb6a Import picojson to Externals from https://github.com/kazuho/picojson 2018-03-19 00:11:55 +01:00
Lioncash
6428cee939 PPCTables: Make the op type enum an enum class
Reduces the amount of identifiers dropped into the global namespace when
the PPCTables header is included.
2018-03-18 18:53:58 -04:00
Lioncash
975ba4abf0 x64Emitter: Make FloatOp and NormalOp enum classes
Reduces the amount of identifiers placed in the Gen namespace internally.
2018-03-18 18:04:54 -04:00
Lioncash
c22a6f4551 x64Emitter: Move FloatOp and NormalOp enums to the cpp file
These are only used internally. This also allows us to eliminate some
symbols that get dumped into the exposed Gen namespace.

By extension this also hides the Write[X] functions from OpArg's public
interface. This is only used internally by XEmitter, so they shouldn't
be usable by anything else.
2018-03-18 18:04:48 -04:00
Lioncash
b21a00d290 DataReader: Provide a const qualified variant of GetPointer()
This wouldn't be much of a data reader if it can't access the
read-only data pointer in read-only contexts. Especially if it
can get a writable equivalent in contexts that aren't read-only.
2018-03-18 16:53:04 -04:00
Lioncash
ce29c1c42f DataReader: Correct return type of operator=
It's questionable to not return a reference to the instance being
assigned to. It's also quite misleading in terms of expected behavior
relative to everything else. This fixes it to make it consistent with
other classes.
2018-03-18 16:50:59 -04:00
Lioncash
ffade65c55 DataReader: Remove __forceinline from trivial functions 2018-03-18 16:49:50 -04:00
Lioncash
4c2ec39199 DataReader: In-class initialize member variables where applicable
Allows the default constructor to be defaulted and ensures the default
values are associated with the member variables directly.

Also corrects a prefixed underscore in the two parameter constructor.
2018-03-18 16:34:51 -04:00
Lioncash
fd956f6c69 DataReader: Make size() and Peek() const member functions
These don't modify class state, so they can be const qualified.
2018-03-18 16:33:14 -04:00
Lioncash
2b3b1e8d09 VertexShaderGen: Convert defines to an enum
Unlike defines, these will actually obey namespacing (should one be
added), and also provide a symbol when debugging, as opposed to a magic
value.
2018-03-18 15:45:20 -04:00
Pierre Bourdon
0c128f3abe
Merge pull request #6450 from leoetlino/nandboot
Boot: Set TYPE_NANDBOOT when booting from NAND
2018-03-18 20:44:44 +01:00
Lioncash
b68e8b872e VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
Given that this only contains functions from the VideoBackendBase class,
it makes more sense to move these to the relevant cpp file to keep them
all together.
2018-03-18 15:33:59 -04:00
Léo Lam
b86947264b
Merge pull request #6453 from leoetlino/remove-unused
State: Remove unused Verify functions
2018-03-18 11:24:37 +01:00
Léo Lam
4b3542558a
Merge pull request #6456 from lioncash/video-static
MainBase: Remove unused file-scope variables
2018-03-18 11:24:16 +01:00
spycrab
1b06e66f1d Qt: Various layout fixes 2018-03-18 00:10:54 +01:00
Lioncash
13ed716419 MainBase: Remove effectively unused s_FifoShuttingDown variable
This is only ever set and cleared, which is fine, however nothing else
ever actually reads its state to perform differing behavior.
2018-03-17 18:10:43 -04:00
Lioncash
826c11ba3b MainBase: Remove unused s_beginFieldArgs struct
This is only ever memset to zero and never used again.

This also gets rid of an instance of undefined behavior considering the
draft standard for C++17 (N4659) states at [dcl.type.cv] paragraph 5:

"
The semantics of an access through a volatile glvalue are implementation-defined.
If an attempt is made to access an object defined with a volatile-qualified type
through the use of a non-volatile glvalue, the behavior is undefined.
"
2018-03-17 18:07:08 -04:00
JosJuice
9970f05ec8 DolphinQt2: Fix issues with MoIterator
Before this, DolphinQt2 would crash at boot with an assertion error
when using a Windows debug build, at least if the Dolphin GUI
language was set to English.
2018-03-17 21:54:39 +01:00
JosJuice
ffb672286a Fix launching DolphinQt2 from Visual Studio
Fourth time now...
2018-03-17 19:10:57 +01:00
Anthony
87c6ed3e00
Merge pull request #6436 from spycrab/qt_layout
Qt: Improve spacing
2018-03-17 09:57:51 -07:00
spycrab
c421848559 Qt: Improve spacing 2018-03-17 16:14:56 +01:00
Léo Lam
6aa6be2804 State: Remove unused Verify functions
These were unused in the entire codebase.
2018-03-16 22:56:54 +01:00
Lioncash
882d1c1256 OGLShader: Ensure m_id and m_compute_program_id are always initialized
Depending on which constructor is invoked, m_id or m_compute_program_id
can end up in an uninitialized state. We should ensure that the object
is completely initialized to something deterministic regardless of the
constructor taken.
2018-03-16 17:49:34 -04:00
Lioncash
83f17ac59f OGLShader: Fix mismatched assignment in compute shader constructor
This shouldn't be assigning to the regular ID.
2018-03-16 17:44:23 -04:00
Léo Lam
f2b9a6696d Config: Set bMMU to true by default on x64
This prevents Dolphin from crashing when the emulated software crashes.
AFAIK, there is absolutely no performance to enabling this with the
x64 JIT.

Eventually, we should probably just remove bMMU
(https://github.com/dolphin-emu/dolphin/pull/1831). We can't do that
yet because of the ARM JIT.
2018-03-16 21:08:23 +01:00
Léo Lam
917f0e2182
Merge pull request #6441 from spycrab/qt_exec
Qt/Main: Add option to launch file without -e
2018-03-16 20:25:13 +01:00
Léo Lam
25704a2494 Boot: Set TYPE_NANDBOOT when booting from NAND
It makes more sense to set TYPE_NANDBOOT than TYPE_RETURN. The latter
is normally only set when returning to the system menu from a game.
2018-03-16 20:17:43 +01:00
JosJuice
bdaa7be299
Merge pull request #6448 from lioncash/qt
DolphinQt2: Fix project loading in VS
2018-03-16 20:17:01 +01:00
Lioncash
293d84b9be DolphinQt2: Fix project loading in VS
These headers are already specified in the QtMoc item section, so these
are seen as a duplicate definition of the file, causing a project load
error.
2018-03-16 15:07:44 -04:00
spycrab
0911b44f60 Qt/Main: Add option to launch file without -e 2018-03-16 19:41:54 +01:00
Pierre Bourdon
6fdac685d6
Merge pull request #6409 from leoetlino/timing
IOS: Minor IPC fixes
2018-03-16 18:54:01 +01:00
Léo Lam
a63aaeecee IOS: Fix "kernel FD table full" error code 2018-03-16 18:51:08 +01:00
Léo Lam
d029f2a7b6 IPC: Clear X1 when acknowledging a reply
Hardware tests indicate that IOS clears X1 when it acknowledges
an IPC request.
2018-03-16 18:51:08 +01:00
Léo Lam
1a71076e50 IPC: Remove incorrect guess about acks
A very basic hardware test shows that the ARMMSG doesn't change until
IOS replies. (People could have disassembled IOS to verify this too...)

Console:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000010(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, prior to this fix:

sending request (00034640) - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 00034640
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, after this fix:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

(Yes, note that the X1 bit is still set. This is a bug that I will
fix in the next commit.)
2018-03-16 18:51:08 +01:00
Léo Lam
b9f7d67667 IPC: Fix missing interrupt when writing to Y1/Y2
The IPC interrupt is triggered when IY1/IY2 is set and Y1/Y2 is written
to even when this results in clearing the bit.

This shouldn't change anything in practice but it's a difference
that Dolphin wasn't taking into account, which made me waste some time
when I was writing a hwtest :/
2018-03-16 18:51:08 +01:00
Léo Lam
35e3775a77 IOS: Remove outdated comment 2018-03-16 18:51:08 +01:00
Léo Lam
fa89614b07 IOS: Adjust IPC timing based on hardware tests
This adjusts IOS IPC timing to be closer to actual hardware:

* Emulate the IPC interrupt delay. On a real Wii, from the point of
  view of the PPC, the IPC interrupt appears to fire about 100 TB ticks
  after Y1/Y2 is seen.

* Fix the IPC acknowledgement delay. Dolphin was much, much too fast.

* Fix Device::GetDefaultReply to return more reasonable delays. Again,
  Dolphin was way too fast. We now use a more realistic, average reply
  time for most requests.

  Note: the previous result from https://dolp.in/pr6374 is flawed.
  GetTicketViews definitely takes more than 25µs to reply.
  The reason the reply delay was so low is because an invalid
  parameter was passed to the libogc wrapper, which causes it to
  immediately return an error code (-4100).

* Fix the response delay for various replies that come from the kernel:
  fd table full, unknown resource manager / device, invalid fd,
  unknown IPC command.

Source: https://github.com/leoetlino/hwtests/blob/af320e4/iostest/ipc_timing.cpp
2018-03-16 18:51:07 +01:00
Lioncash
7926a0c814 Use __func__ instead of __FUNCTION__ where applicable
This replaces usages of the non-standard __FUNCTION__ macro with the standard
mandated __func__ identifier.

__FUNCTION__ is a preprocessor definition that is provided as an
extension by compilers. This was the only convenient option to rely on
pre-C++11. However, C++11 and greater mandate the predefined identifier
__func__, which lets us accomplish the same thing.

The difference between the two, however, is that __func__ isn't a
preprocessor macro, it's an actual identifier that exists at function
scope. The C++17 draft standard (N4659) at section [dcl.fct.def.general]
paragraph 8 states:

"
The function-local predefined variable __func__ is defined as if a
definition of the form

static const char __func__[] = "function-name ";

had been provided, where function-name is an implementation-defined
string. It is unspecified whether such
a variable has an address distinct from that of any other object in the
program.
"

Thankfully, we don't do any macro or string concatenation with __FUNCTION__
that can't be modified to use __func__.
2018-03-16 13:41:53 -04:00
Lioncash
75f5fcdfee Assert: Remove unused parameter from DEBUG_ASSERT
This brings the macro in line with the regular ASSERT macro, which only has one
macro parameter.
2018-03-16 13:01:11 -04:00
Lioncash
f44e2dc425 Assert: Wrap assertion macro bodies in do {} while (0)
Enforces the termination of the macro with a semicolon. Aside from that
requirement, behavior remains the same.
2018-03-16 12:35:23 -04:00
Mat M
9f4d5122a2
Merge pull request #6438 from lioncash/assert
Assert: Uppercase assertion macros
2018-03-16 11:59:14 -04:00
Stenzek
93865b327f ShaderCache: Implement compile priority
Currently, when immediately compile shaders is not enabled, the
ubershaders will be placed before any specialized shaders in the compile
queue in hybrid ubershaders mode. This means that Dolphin could
potentially use the ubershaders for a longer time than it would have if
we blocked startup until all shaders were compiled, leading to a drop in
performance.
2018-03-17 01:53:11 +10:00
Stenzek
cb19ddd1d4 D3D: Fix broken bounding box 2018-03-17 00:20:43 +10:00
Stenzek
1259370cdf
Merge pull request #6439 from JosJuice/android-ubershader-config
Bring the Android GUI setting for ubershaders up to date
2018-03-16 23:19:13 +10:00
spycrab
a2d6bab0d2 Properties/GameConfig: Remove "Skip DCBZ" 2018-03-15 20:33:01 +01:00
Anthony
1c3cc26d19
Merge pull request #6386 from spycrab/qt_dbg_code
Qt/Debugger: Implement "Code" widget
2018-03-15 11:35:26 -07:00
JosJuice
828c2c44ca Bring the Android GUI setting for ubershaders up to date
9fa2470 changed how the ubershader setting is stored in INIs but didn't
update the Android GUI code to reflect that, so the setting in the
Android GUI has been broken starting with that commit.

Fixes https://bugs.dolphin-emu.org/issues/10947
2018-03-15 19:15:13 +01:00
Lioncash
50a476c371 Assert: Uppercase assertion macros
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
Markus Wick
19d97f3fd9
Merge pull request #6430 from stenzek/uid-cache-fixes
ShaderCache: Fix several issues in background shader compiling
2018-03-14 17:08:36 +01:00
Stenzek
517a977444 ShaderCache: Fix several issues in background shader compiling
- In D3D, shaders could be compiled on the main thread, blocking
startup.
- Reduced the latency between a pipeline being requested and used in all
backends in hybrid ubershader mode, when no shader stages were present.
- Fixed a case where async compilation could cause the same UID to be
appended multiple times to the UID cache.
- Fix incorrect number of threads being used when immediately compile
shaders was enabled.
2018-03-15 01:50:47 +10:00
Stenzek
dc9012ae08 OGL: Ensure VAO is active before unmapping buffers
Fixes a crash which could occur in platforms which do not support
buffer_storage, and EFB2RAM is enabled (which indirectly uses the
attributeless buffer).
2018-03-15 00:32:39 +10:00
Léo Lam
6813c5e1e9
Merge pull request #6434 from lioncash/x86-dsp
DSPCore: Move x64 JIT source files into an x64 subdirectory
2018-03-14 10:54:46 +01:00
Lioncash
9f2a46b08d DSPCore: Use nested namespace specifiers for the x64 JIT
Slims down the amount of lines needed for namespacing.
2018-03-13 18:57:25 -04:00
Lioncash
b3fd79b45a DSPCore: Rename namespace to match moved x64 JIT files
Maintains consistency between location and code
2018-03-13 18:48:16 -04:00
Lioncash
ab5b90bf15 DSPCore: Move x64 JIT source files into an x64 subdirectory
While the code is namespaced out properly, the files weren't separated
into their own directory. This moves the files so that introducing a general
interface is easier in the future for supporting other architectures.
2018-03-13 18:26:26 -04:00
Stenzek
51e4014a35 DriverDetails: Disable primitive restart on Vulkan with Mali driver 2018-03-14 02:56:24 +10:00
Stenzek
db810956ec Vulkan: Provide a more accurate method of detecting drivers/vendors
This is needed to differentiate between the open-source Mesa drivers and
their binary counterparts for Intel and AMD.
2018-03-14 02:48:53 +10:00
Markus Wick
f7ff634e4f
Merge pull request #6432 from degasus/OGL-OSD-update
OGL: Scale OSD text on big screens.
2018-03-13 16:37:58 +01:00
Henrik Rydgård
6cbb716f60 SSE-optimize UninitializeXFBMemory
Lowest hanging fruit I could find with a profiler.

Not sure this stuff actually needs to be done, but assuming it is, why
not do it quickly? 10x faster, goes from 1% CPU to 0.09%.
2018-03-13 11:55:28 +01:00
degasus
a5c0739fab OGL: Scale OSD text on big screens. 2018-03-12 20:38:06 +01:00
degasus
d4449971c9 OGL: Warn if buffer_storage isn't available.
Yes, this commit is only to blame OSX and Mali. Through the former supports unsynchronized mappings, the latter supports *no* way to stream dynamic data at all. Let's try to make bad news, as they ignore friendly feature requests. Maybe we just need to make more noise...
2018-03-12 20:38:00 +01:00
Léo Lam
90ca62e416
Merge pull request #6428 from JosJuice/qt-zh-order
Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
2018-03-12 18:44:41 +01:00
JosJuice
4b85f7fe79 Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
The least specific language code should be tried last.
2018-03-11 22:27:17 +01:00
Stenzek
427aa188d4 ShaderCache: Use a version number for pipeline UID caches 2018-03-11 14:48:09 +10:00
Léo Lam
63d5e57337
Merge pull request #6419 from Ebola16/Fix_OpenAL
Change FATAL_ERROR to STATUS message for OpenAL not found in externals
2018-03-10 13:35:30 +01:00
Pierre Bourdon
d72947d638
Merge pull request #6427 from JosJuice/thousandseparate-encoding
StringUtil: Fix Windows encoding in ThousandSeparate
2018-03-10 13:16:00 +01:00
JosJuice
34be8488a5 StringUtil: Fix Windows encoding in ThousandSeparate
Some locales use non-breaking spaces as separators, so getting the
encoding right is important. If DolphinWX gets a string that isn't
valid UTF-8, it flat out won't display the string.
2018-03-10 12:13:30 +01:00
Stenzek
93ab50c555 OGL: Move primitive restart enable logic to GLUtil 2018-03-10 16:11:20 +10:00
Stenzek
51a586d11a GLUtil: Encapsulate functions in a namespace 2018-03-10 16:11:19 +10:00
Stenzek
e31cc1f679 ShaderCache: Implement background shader compilation
This enables shaders to be compiled while the game is starting, instead
of blocking startup. If a shader is needed before it is compiled,
emulation will block.
2018-03-10 16:11:19 +10:00
Stenzek
9fa24700b6 VideoConfig: Collapse ubershader configuration fields to a single value 2018-03-10 15:56:45 +10:00
Stenzek
590307b94c ShaderCache: Use memcmp for comparing pipeline UIDs
As these are stored in a map, operator< will become a hot function when
doing lookups, which happen every frame. std::tie generated a rather
large function here with quite a few branches.
2018-03-10 15:56:42 +10:00
Stenzek
41296db083 Renderer: Remove now-redundant Set{Rasterization,Depth,Blending}State 2018-03-10 15:56:40 +10:00
Stenzek
fc1fe0672b OGL: Add some basic state tracking
We would want to improve the granularity here in the future, but for
now, this should avoid any performance loss from switching to the
VideoCommon shader cache.
2018-03-10 15:56:37 +10:00
Stenzek
f9c829c7f7 OGL: Re-implement async shader compiling 2018-03-10 15:56:34 +10:00
Stenzek
dec0c3bce8 Move shader caches to VideoCommon 2018-03-10 15:56:30 +10:00
Stenzek
24df896eb8 VKShader: Fix incorrect loading of binary shaders 2018-03-10 15:56:27 +10:00
Stenzek
1ddc4c5568 D3D: Make NativeVertexFormat thread safe 2018-03-10 15:56:24 +10:00
Stenzek
40845e6b8f D3D: Make StateCache thread safe 2018-03-10 15:56:21 +10:00
Stenzek
bfb4709c80 AbstractPipeline: Allow setting pipeline to null 2018-03-10 15:56:18 +10:00
Stenzek
5e5dfe686a VKPipeline: Fix render pass and add pipeline layout fields 2018-03-10 15:56:13 +10:00
Stenzek
a61fcb0088 OGL: Fix abstract pipelines on drivers without binding layout support 2018-03-10 15:56:06 +10:00
Stenzek
00204dc988 OGL: Make ProgramShaderCache thread safe 2018-03-10 15:55:56 +10:00
Léo Lam
63838c013b
Merge pull request #6281 from JosJuice/unify-gamelist-code
Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
2018-03-09 20:39:02 +01:00
Léo Lam
ef975b8c56
Merge pull request #6377 from sepalani/memcheck
DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow
2018-03-09 20:35:54 +01:00
Ryan Meredith
b7276483da Change FATAL_ERROR to STATUS message for OpenAL not found in externals 2018-03-09 12:29:23 -05:00
JosJuice
0e2690f40b FileMonitor: Store last file offset instead of path
This saves us from having to call GetPath when the same file is being
read over and over. (GetPath is more expensive than GetOffset due to
it iterating through parts of the file system and creating strings.)
2018-03-09 15:18:32 +01:00
JosJuice
1f1dae367d Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
The original reason I wanted to do this was so that we can replace
the Android-specific code with this in the future, but of course,
just deduplicating between DolphinWX and DolphinQt2 is nice too.

Fixes:

- DolphinQt2 showing the wrong size for split WBFS disc images.

- DolphinQt2 being case sensitive when checking if a file is a DOL/ELF.

- DolphinQt2 not detecting when a Wii banner has become available
after the game list cache was created.

Removes:

- DolphinWX's ability to load PNGs as custom banners. But it was
already rather broken (see https://bugs.dolphin-emu.org/issues/10365
and https://bugs.dolphin-emu.org/issues/10366). The reason I removed
this was because PNG decoding relied on wx code and we don't have any
good non-wx/Qt code for loading PNG files right now (let's not use
SOIL), but we should be able to use libpng directly to implement PNG
loading in the future.

- DolphinQt2's ability to ignore a cached game if the last modified
time differs. We currently don't have a non-wx/Qt way to get the time.
2018-03-09 13:08:38 +01:00
Hannes Mann
41682a07cb Add Quality of Service (QoS) support 2018-03-09 00:11:18 +01:00
JosJuice
0d3a7d5e38 Fix launching DolphinQt2 from Visual Studio 2018-03-08 22:33:11 +01:00
Léo Lam
3cc64cc146
Merge pull request #6418 from spycrab/qt_gameconfig
Qt/PropertiesDialog: Add "Game Config" tab
2018-03-08 20:33:12 +01:00
Léo Lam
ed2d749fb9
Merge pull request #6424 from delroth/traversal-watchdog
Add systemd watchdog support to the traversal server
2018-03-08 17:29:45 +01:00
Léo Lam
1eae5fe790
Merge pull request #6422 from sepalani/nullptr-blank
HLE: Improve format string detection heuristic
2018-03-08 17:26:09 +01:00
Pierre Bourdon
9e0739f5e5 traversal: add systemd watchdog support 2018-03-08 06:10:17 +00:00
spycrab
394388af4e Qt/PropertiesDialog: Add "Game Config" tab 2018-03-07 20:59:41 +01:00
Anthony
1a1133bf8e
Merge pull request #6423 from leoetlino/tid
UI: Show title ID in info panel
2018-03-07 10:47:43 -08:00
Léo Lam
3af09da0f3 UI: Show title ID in info panel
Add a way to easily get the title ID of a game. For Wii titles, it's
sometimes more useful to know than the game ID.
2018-03-07 17:40:22 +01:00
Stenzek
24a46dc6af
Merge pull request #6315 from stenzek/abstract-framebuffers
Abstract Framebuffers
2018-03-08 00:52:49 +10:00
Léo Lam
aee977e32a
Merge pull request #6420 from JosJuice/qt-translateability
Tweak Qt strings to be more translation friendly
2018-03-07 13:40:14 +01:00
Léo Lam
6ca1c46117
Merge pull request #6415 from spycrab/qt_resize
Qt/GameList: Make a few columns resizable
2018-03-07 13:36:26 +01:00
Sepalani
4f1c0ca3e9 HLE: Improve format string detection heuristic 2018-03-06 21:21:56 +04:00
JosJuice
83373e2e87 Qt2 TAS input: Generate key strings automatically
This saves us from having to hardcode strings, and it also gives
us strings in whatever format is appropriate on the current OS
(for instance, IIRC Windows uses Alt+F where other OSes use Alt-F).
2018-03-06 17:38:57 +01:00
JosJuice
45040f00c6 Tweak Qt strings to be more translation friendly 2018-03-04 19:13:13 +01:00
Léo Lam
a436c6182b
Merge pull request #6388 from leoetlino/merge
Consolidate ec_wii functions into IOSC
2018-03-02 23:14:37 +01:00
Léo Lam
96e4e01564
Merge pull request #6416 from Ebola16/Warning
Remove DSPLLE ReadAnnotatedAssembly error log entry
2018-03-02 23:10:43 +01:00
Anthony
78b00d8d32
Merge pull request #6382 from spycrab/qt_patches
Qt/PropertiesDialog: Implement "Patches" tab
2018-03-02 10:34:00 -08:00
Stenzek
4c24a69710 VideoCommon: Add support for Abstract Framebuffers 2018-03-02 20:20:48 +10:00
Ryan Meredith
c94cd4a275 Remove DSPLLE ReadAnnotatedAssembly error log entry 2018-03-02 02:25:25 -05:00
spycrab
dee4440c9d Qt/GameList: Make a few columns resizable 2018-03-02 00:51:21 +01:00
Stenzek
2a6d9e4713 AbstractTexture: Add support for depth textures/formats 2018-03-01 17:31:24 +10:00
Stenzek
6374a4c4a8 AbstractTexture: Support multisampled abstract texture 2018-03-01 17:31:24 +10:00
Stenzek
4316f5f56b AbstractTexture: Add property/attribute accessor helpers 2018-03-01 17:31:24 +10:00
Stenzek
e125eaa237 VideoCommon: Drop references to AbstractRawTexture 2018-03-01 17:31:24 +10:00
Stenzek
887e3830ba VideoBackends: Restore the framebuffer as part of the API state
It's not often we switch out to draw to the EFB anyway.
2018-03-01 17:31:24 +10:00
Stenzek
b4b0f3d942 Vulkan: Fix broken post-processing 2018-03-01 16:55:55 +10:00
spycrab
ecaa68ade9 Qt: Make game revision vars u16 2018-02-28 22:35:10 +01:00
spycrab
4b54f6b1c7 Qt/PropertiesDialog: Implement "Patches" tab 2018-02-28 21:16:57 +01:00
spycrab
0a5f0efe18 Qt/Debugger: Implement "Code" widget 2018-02-28 19:47:56 +01:00
Léo Lam
4e014f996b IOS: Fix invalid FD being returned after an open
Fixes a regression introduced by 80b1bf13c2.

The return value for open replies should be overwritten with the new
file descriptor.
2018-02-28 15:56:03 +01:00
Mat M
bf825e6354
Merge pull request #6404 from hubslave/patch-1
Include <endian.h> for byte swap macros on OpenBSD
2018-02-27 23:28:22 -05:00
Léo Lam
80b1bf13c2 IOS: Change devices to always return IPCCommandResult
This commit changes devices to always return IPCCommandResult rather
than just a return code for Open() and Close() in order to be able
to better emulate reply timing.

In hindsight, I should have considered we would want to emulate
timing when I cleaned up the device interface, but alas.
This rectifies that mistake.
2018-02-27 21:12:07 +01:00
Léo Lam
9282be1058 IOS: Fix regression affecting BC launch
8e06257f19 caused Dolphin not to consider BC as emulated anymore.
2018-02-27 18:16:05 +01:00
Léo Lam
1de17d20e1 Fix render surface when using Render to Main and debugger
This fixes a regression introduced by de632fc9c.
2018-02-27 13:18:43 +01:00
Stenzek
25a516bae3
Merge pull request #6403 from degasus/master
OGL: Use glBufferData on Mali.
2018-02-27 17:54:41 +10:00
spycrab
a3fd99032c IsSettingSavable: Make GFX_CACHE_HIRES_TEXTURES savable 2018-02-26 19:04:06 +01:00
hubslave
4ae48e10e5
Include <endian.h> for byte swap macros on OpenBSD
There is code below that assumes the presence of those macros (by #undef'ing them), but none of the included headers provided them.

This fixes a build failure on OpenBSD where the undef'd macros _do_ get picked up later on in a compilation unit (through which include, I don't know), and thus shadow the Common::swap* functions.
2018-02-26 00:07:05 +02:00
Markus Wick
227db66e4f OGL: Use glBufferData on Mali.
tl;dr: This PR speedups dolphin on mobiles with the Mali GPU and ES 3.2
drivers by a factor of 10 by using the method with the biggest overhead.
Please keep care not to buy this shit!

The ARM driver team seems to care very well about their customers. But
bad luck, users and open source developers are *not* their customers. So
even device-independent feature requests are just ignored for *years*:

https://community.arm.com/graphics/f/discussions/4645/gl_ext_buffer_storage-support

The bad point, they neither implement any of the other common ways to
stream dynamic content in unextented GL:
- They just ignore the GL_MAP_UNSYNCHRONIZED_BIT flag
- They don't support on-device buffer updates and just stall with
glBufferSubData

It seems like no benchmark is using any dynamic content - and like no
customer cares about anything but benchmarks, or users...

We have a flag to disable the glBufferSubData way, this PR adds the flag
to also disable the unsychronized mapping way. The second one is
available since their ES 3.2 update, but slow as hell.

So how to continue? The last remaining technical way to stream dynamic
content at all is to alloc a new buffer per draw call with glBufferData.
This is very gross, but still a factor 10 speedup compared to stalling
the GPU. Small tests shows that you can expect another 3-5 times speedup
with EXT_buffer_data, so Mali would be on pair with Adreno here. So if
you have bought such a device unfortunately, please try to make noise on
your vendor forums/support and ask for this extension. If you are going
to buy a new mobile, I'd recormend to avoid *any* mobile with a Mali GPU
in it.
2018-02-25 17:12:36 +01:00
Stenzek
e4d3b5f626 OGL: Only create bad shader files in Dump when compile failed
Warnings are still logged.
2018-02-25 18:03:58 +10:00
Anthony
a3674e3f73
Merge pull request #6396 from spycrab/qt_osx_theme
CMake/OSX: Fix missing QMacStylePlugin
2018-02-24 15:44:43 -08:00
Anthony
941ddfb830
Merge pull request #6397 from spycrab/qt_osx_icon
Qt/OSX: Fix icon
2018-02-24 12:20:31 -08:00
spycrab
7f3c1a2de4 Qt/OSX: Fix icon 2018-02-24 21:12:22 +01:00
spycrab
5ddbb3459b CMake/OSX: Fix missing QMacStylePlugin 2018-02-24 18:48:29 +01:00
Markus Wick
15b23270b2
Merge pull request #6391 from gwicks/android-reloverlay
Android: Make on-screen joysticks center on the initial touch input.
2018-02-24 18:33:26 +01:00
Anthony
b66f96c617
Merge pull request #6042 from stenzek/videocommon-pipelines
VideoCommon pipelines ("Abstract Pipeline")
2018-02-23 09:18:19 -08:00
Stenzek
2ba8f67feb OGL: Call GLInterface->Update() on window resize
macOS in particular requires the context be updated manually when the window
is resized.
2018-02-23 22:27:10 +10:00
Léo Lam
1e6dc196aa Qt: Fix warning about parentheses
The original code had parentheses placed in weird locations IMO, which
even caused compilers to issue warnings.
2018-02-22 17:55:16 +01:00
Léo Lam
f1f2bd9c94 Qt: Fix warning about array initialisation 2018-02-22 17:54:58 +01:00
Léo Lam
fd063bdc31 Qt: Use std::abs instead of abs
...since <cmath> is included, not <math.h>. May or may not fix
https://bugs.dolphin-emu.org/issues/10906
2018-02-22 17:54:19 +01:00
Stenzek
fec6bb4d56 VideoBackends: Add AbstractShader and AbstractPipeline classes 2018-02-22 22:02:34 +10:00
Stenzek
31111ef143 D3D: Remove state stack from tracker, set explicitly instead 2018-02-22 19:40:55 +10:00
Stenzek
e18c7b1c33 D3D: Support state tracking of compute shaders 2018-02-22 19:11:27 +10:00
Stenzek
e8ff2b2006 D3D: Support compiling compute shaders 2018-02-22 19:11:25 +10:00
Stenzek
aaea515d71 GLUtil: Drop now-unused attributeless VAO helpers 2018-02-22 19:09:28 +10:00
Stenzek
052d78bcb1 OGL: Log warnings from shader compiles, even if it compiled successfully 2018-02-22 19:08:54 +10:00
Stenzek
3fd4142f36 OGL: Track state of last bound vertex array object
This reduces the overhead of calling glBindVertexArray() every time
RestoreAPIState() is called, even when it is redundant.
2018-02-22 19:08:52 +10:00
Greg Wicks
b28236611d Android: Make on-screen joysticks center on the initial touch input. 2018-02-21 20:36:03 -05:00
Lioncash
abfaff8ca9 Qt: Remove unnecessary <iostream> includes
<iostream> injects a static constructor into the translation units that
it's included into. This is trivially avoidable in these cases.
2018-02-21 16:38:08 -05:00
JosJuice
619f98b97b
Merge pull request #6389 from spycrab/fix_wiimote
Fix emulated Wiimotes
2018-02-20 21:37:30 +01:00
spycrab
de1af2e45d Fix emulated Wiimotes 2018-02-20 20:41:29 +01:00
Markus Wick
9d3d31a8e8
Merge pull request #6387 from mahdihijazi/fix_build_no
Android: Use the git rev-list --count for versionCode
2018-02-20 10:42:22 +01:00
Léo Lam
f9445bb119 IOS: Remove ec_wii functions 2018-02-19 20:34:06 +01:00
Léo Lam
5e5c9e1772 IOSC: Add Sign
Equivalent of IOSC_GenerateCertificate + IOSC_GeneratePublicKeySign.

This is copied from ec_wii/MakeAPSigAndCert.
2018-02-19 20:34:06 +01:00
Léo Lam
b3c7874a3a IOSC: Add GetDeviceId and GetDeviceCertificate 2018-02-19 20:34:06 +01:00
Léo Lam
f3c63b3108 IOSC: Load built-in key entries directly from keys.bin
Preliminary commit for merging ec_wii into IOSC.
2018-02-19 20:34:06 +01:00
Léo Lam
1f4ddea5f7 IOSC: Change misc_data to a u32
It's always 4 bytes long, so let's just make it a u32.
2018-02-19 20:34:05 +01:00
Markus Wick
e01fe46068
Merge pull request #6367 from stenzek/gl-flush
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-19 16:26:35 +01:00
Stenzek
0dddaf9d7d Android: Update renderer surface before resuming emulation
Previously, this could cause a race condition which resulted in the
Vulkan backend attempting to acquire a swap chain image from a now
non-existant surface. By ensuring the backend knows about the surface
before a frame is presented, this race does not happen.
2018-02-20 01:15:55 +10:00
Stenzek
de632fc9c8 Renderer: Handle resize events on-demand instead of polling
We now differentiate between a resize event and surface change/destroyed
event, reducing the overhead for resizes in the Vulkan backend. It is
also now now safe to change the surface multiple times if the video thread
is lagging behind.
2018-02-20 01:15:55 +10:00
Stenzek
5baf3bbe2e OGL: Clear backbuffer before presenting instead of at start of frame 2018-02-20 01:11:40 +10:00
Stenzek
c1b39ecc58 BPFunctions: Move upscaling of scissor rect to VideoCommon 2018-02-20 00:49:32 +10:00
Stenzek
5359396099 BPFunctions: Move GX viewport conversion to VideoCommon 2018-02-20 00:49:32 +10:00
mahdihijazi
135ac2a7a8 Android: Use the git rev-list --count for versionCode 2018-02-19 15:33:46 +01:00
Markus Wick
a2d2a0a356
Merge pull request #6384 from jeffythedragonslayer/master
Jit64: fixed some signed to unsigned integer warnings
2018-02-19 15:28:06 +01:00
Markus Wick
be1a7366a4
Merge pull request #6225 from gwicks/android-game-settings
Android: Implement user game-specific settings overrides.
2018-02-19 15:19:57 +01:00
Anthony
4876b9d8e0
Merge pull request #6362 from spycrab/qt_indicators
Qt/Mapping: Implement indicators
2018-02-18 11:45:12 -08:00
Jeff Linahan
caf721fb3f Jit64: fixed some signed to unsigned integer warnings 2018-02-16 17:41:16 -05:00
Greg Wicks
e19922c5de Android: Implement game-specific settings overrides UI 2018-02-16 13:47:52 -05:00
Stenzek
340ee8fff8 PixelShaderGen: Implement table-based fog range as in software renderer 2018-02-15 22:19:21 +10:00
Markus Wick
e7d0aae5be
Merge pull request #6335 from stenzek/membp
Jit64: Fix incorrect PC in PPC state during fastmem trampoline
2018-02-15 11:13:52 +01:00
spycrab
ec54b421a4 Qt/Mapping: Implement indicators 2018-02-15 05:01:44 +01:00
Stenzek
7c517226ed Vulkan: Remove redundant YUYV conversion shaders
These are no longer used as of hybrid XFB.
2018-02-14 15:26:35 +10:00
Sepalani
a9b89b35fb DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow 2018-02-13 20:20:58 +01:00
Léo Lam
dbdf964f2e
Merge pull request #6376 from sepalani/es-fix
ES: Make it not fail on something that isn't IOS
2018-02-13 16:42:17 +01:00
Sepalani
68f7a03d05 ES: Make it not fail on something that isn't IOS 2018-02-13 15:47:38 +01:00
Anthony
f9b809a57e
Merge pull request #6361 from spycrab/qt_fix_layout
Qt/GCMemcardManager: Misc. improvements
2018-02-12 13:59:31 -08:00
Lucas Kent
5fe72700fa Qt: TAS input window - Fix mac os 2018-02-13 08:03:01 +11:00
Rukai
a8d482d8e1 IR widget is now a rectangle 2018-02-13 07:17:16 +11:00
Rukai
d07e212cef Qt: Implement Wii TAS input window 2018-02-13 07:15:54 +11:00
Rukai
3f1ffbad0d Qt: Implement GC TAS input window 2018-02-13 07:15:53 +11:00
Anthony
35c43e74d0
Merge pull request #6371 from rukai/dolphinQtHotkeyFixes
Qt: Various fixes to hotkeys
2018-02-12 09:28:58 -08:00
Anthony
5b744146f3
Merge pull request #6336 from spycrab/qt_additional_wiimote_settings
Qt: Implement Wiimote pane
2018-02-12 09:28:15 -08:00
Léo Lam
8e06257f19
Merge pull request #6374 from sepalani/ios-reload
ES: Make it fail on unsupported installed IOSes
2018-02-12 10:02:43 +01:00
Sepalani
a663fcb977 IOS: Adjust reply timing to be closer to real hardware 2018-02-11 18:42:19 +01:00
Sepalani
2ce7fff819 ES: Make it fail on unsupported installed IOSes 2018-02-11 18:42:02 +01:00
Stenzek
93fb0e1e1c TextureCache: Add an option to disable EFB copies to VRAM
The option is named DisableCopyToVRAM under the Hacks section in
GFX.ini. It is intentionally not exposed to the GUI, as users should not
need to use it under normal circumstances. The main use is debugging
issues in the EFB-to-RAM shaders.
2018-02-11 15:48:46 +10:00
Stenzek
84b990faa0 VideoConfig: Remove bForceCopyToRam field
It's the inverse of supports-copy-to-vram.
2018-02-11 15:29:37 +10:00
Rukai
4b5373b25b Remove hardcoded esc hotkey, make pause/stop hotkey actually toggle rather than just pausing, fix frame advance hotkey 2018-02-10 23:30:59 +11:00
spycrab
7c99f10152 Qt/Graphics: Add ubershader options 2018-02-10 13:11:18 +01:00
spycrab
c07443a628 Qt/GCMemcardManager: Misc. improvements 2018-02-09 21:54:07 +01:00
spycrab
220e4bcd99 Qt/MappingButton: light up when mapped key is pressed 2018-02-09 12:30:02 +01:00
Stenzek
6490c2b86b OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT 2018-02-09 01:25:14 +10:00
Stenzek
4b96db8fc9 OGL: Don't leave staging texture buffer bound after mapping
This could cause glReadPixels() calls which assume no buffer is bound
(e.g. CPU EFB access) to fail. The problem was limited to devices which
don't support persistent mapping, as the map path is not otherwise.
2018-02-09 01:15:27 +10:00
Anthony
c30ac55cf4
Merge pull request #6354 from leoetlino/hle
HLE: Minor cleanup
2018-02-07 23:36:31 -08:00
Anthony
096131c908
Merge pull request #6334 from stenzek/startup
Video Backend Initialization/Core Boot Improvements
2018-02-07 23:35:54 -08:00
Anthony
4636230f5a
Merge pull request #6333 from stenzek/vulkan-transition
Vulkan: Fix invalid stage mask in layout transitions
2018-02-07 23:32:05 -08:00
Anthony
8adce86daa
Merge pull request #6355 from myfreeweb/clang6-warning
Add -Wno-register to calm down clang 6.0.0 (C++17 mode)
2018-02-07 22:25:57 -08:00
spycrab
87d7c994e7 Qt/Settings: Implement ControllerStateNeeded 2018-02-07 18:49:23 +01:00
Christian Murphy
5b01c5e119 Qt: Implement Wiimote speaker volume slider and Wiimote motor toggle, rebased all changes... included fixed based on feedback by ligfx 2018-02-07 18:46:13 +01:00
spycrab
2f7b68ade5 Qt/BreakpointWidget: Fix MBP delete 2018-02-06 11:06:14 +01:00
Greg V
9b201815f2 Ignore -Wregister to calm down recent clang and GCC (C++17 mode)
The 'register' keyword is used by a header included from Xlib (X11/XKBlib.h).
2018-02-05 14:43:07 +03:00
Léo Lam
920dd0edd0
Merge pull request #6358 from myfreeweb/dont-link-usbhid
Do not link to libusbhid on FreeBSD/NetBSD
2018-02-05 11:59:35 +01:00
Anthony
2442a34c3d
Merge pull request #6357 from leoetlino/evdev
evdev: Minor fixes
2018-02-04 16:29:25 -08:00
Léo Lam
6a93223283 evdev: Always unref received udev devices
Whenever udev_monitor_receive_device() returns a non-null pointer,
the device must be unref'd after use with udev_device_unref().

We previously missed some unref calls for non-evdev devices.
2018-02-05 01:01:05 +01:00
Léo Lam
0822bb347d evdev: Don't leak eventfd on shutdown 2018-02-04 22:48:38 +01:00
Greg V
be716a680f Do not link to libusbhid on FreeBSD/NetBSD
Both libusbhid (system library) and libhidapi (3rd party library)
provide a function called hid_init. Dolphin was being linked to both.

The WiimoteScannerHidapi constructor was calling hid_init without
arguments. libusbhid's hid_init expects one argument (a file path).
It was being called as if it was defined without arguments, which
resulted in a garbage path being passed in, and because of that,
the Qt GUI was failing to launch with the following error:
'dolphin-emu-qt2: @ : No such file or directory'
2018-02-05 00:46:59 +03:00
Léo Lam
9a3705f82d evdev: Fix select() call
It's not guaranteed that the eventfd is smaller than the monitor fd,
because fds are not always monotonically allocated. To select()
correctly in all cases, use the max between the monitor fd and eventfd.
2018-02-04 22:45:28 +01:00
spycrab
f253c1ea32 Qt/MappingButton: Save settings when a mapping is changed 2018-02-04 22:03:38 +01:00
Léo Lam
3deb8ce074 HLE: Use enum classes for HookType and HookFlag 2018-02-04 14:50:55 +01:00
Léo Lam
a184ab93b6 HLE: Remove an unused function
There is nothing using PanicAlert in either official titles or libogc.
2018-02-04 14:41:55 +01:00
Léo Lam
44391ad2fe
Merge pull request #6353 from spycrab/qt_fix_invdev
Qt/MappingWindow: Fix invalid device being selected by default
2018-02-04 12:54:14 +01:00
spycrab
489f478751 Qt/MappingWindow: Fix invalid device being selected by default 2018-02-03 20:21:44 +01:00
Anthony
32d206362f
Merge pull request #6351 from spycrab/qt_fix_switch
Qt: Work around broken drivers that don't allow backend switching
2018-02-03 09:18:16 -08:00
spycrab
7c5e464584 Qt: Work around broken drivers that don't allow backend switching 2018-02-03 14:19:12 +01:00
Léo Lam
2ab29e8284
Merge pull request #6311 from cbdevnet/master
Have dolphin-emu-nogui conform to the _NET_WM_PID protocol
2018-02-03 10:42:49 +01:00
cbdev
6182ab6a6a dolphin-emu-nogui: Conform to the _NET_WM_PID protocol 2018-02-03 03:43:42 +01:00
Stenzek
cf5bf3899f
Merge pull request #6345 from spycrab/qt_fix_fsw
Qt/FileystemWidget: Fix crash when right-clicking GC disc
2018-02-03 00:56:55 +10:00
Stenzek
e20eac72f4
Merge pull request #6347 from spycrab/qt_update_defiso
Qt/Settings: Update default gamelist path textbox when changed
2018-02-03 00:55:45 +10:00
Stenzek
3e494baff2
Merge pull request #6346 from spycrab/qt_dbg_checkbox
Qt/NewBreakpointDialog: Fix radio button weirdness
2018-02-03 00:50:30 +10:00
Stenzek
75583ab098
Merge pull request #6350 from spycrab/qt_gc_selbug
Qt/GameCubePane: Fix file selection
2018-02-03 00:48:08 +10:00
spycrab
3f4a3b2456 Qt/GameCubePane: Fix file selection 2018-02-02 12:32:55 +01:00
Stenzek
260d5b7aa7 BPMemory: Handle fog configuration where both A and C are infinity/NaN
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.

However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
Anthony
1264daae9b
Merge pull request #6327 from spycrab/qt_memcard_manager
Qt: Implement GameCube memcard manager
2018-01-31 13:22:40 -08:00
spycrab
28ad12bf30 Qt/Settings: Update default gamelist path textbox when changed 2018-01-31 19:58:02 +01:00
spycrab
8f43f379a0 Qt/NewBreakpointDialog: Fix radio button weirdness 2018-01-31 19:28:44 +01:00
spycrab
8a612bf285 Qt/FileystemWidget: Fix crash when right-clicking GC disc 2018-01-31 13:51:46 +01:00
Stenzek
987bec2fd5
Merge pull request #6342 from spycrab/qt_rw_flicker
Qt/RenderWidget: Avoid flickering
2018-01-31 12:43:19 +10:00
Léo Lam
d04b179111
Merge pull request #6344 from spycrab/qt_gc_mcselector
Qt/GameCubePane: Fix memory card selector
2018-01-30 17:49:13 +01:00
spycrab
50eb8a5c81 Qt/AdvancedPane: Add ability to change clock speed while the game is running 2018-01-30 12:08:44 +01:00
spycrab
350c1f999c Qt/GameCubePane: Fix memory card selector 2018-01-30 10:23:57 +01:00
spycrab
e5994706eb Qt/RenderWidget: Avoid flickering 2018-01-30 10:05:50 +01:00
Léo Lam
3bceb3c52a
Merge pull request #6328 from spycrab/qt_fix_gc_amnesia
Qt/GameCubePane: Various fixes
2018-01-29 21:58:59 +01:00
Stenzek
fe5150cc31
Merge pull request #6303 from TraceBullet/auto-adjust-window-size
Fix Auto-Adjust Window Size option making the window too large
2018-01-29 17:28:44 +10:00
spycrab
21db1e9504 Qt: Implement GameCube memory manager 2018-01-29 01:01:25 +01:00
spycrab
d0b64745d8 Qt/RegisterColumn: Fix value columns not being editable 2018-01-28 17:10:33 +01:00
spycrab
28e0388658 Qt/GameCubePane: Fix EXIDevices resetting to Nothing 2018-01-27 15:09:14 +01:00
Stenzek
15efd42eba Jit64: Don't flush PC in exception block
These blocks can only be executed as a result of a DSI exception from a
loadstore, where we now flush the PC register prior to the loadstore.
2018-01-27 22:32:57 +10:00
Stenzek
8933fe599c Jit64: Update PC before slowmem reads as well as writes 2018-01-27 22:29:39 +10:00
Stenzek
7f3c31d78d Jit64: Set correct PC when emitting slowmem trampoline 2018-01-27 18:19:42 +10:00
Stenzek
505d30be3d DolphinWX: Move fullscreen switch to after startup is complete
This means that any error messages won't be hidden by the fullscreen
window.
2018-01-27 14:17:14 +10:00
Stenzek
c790077c13 VideoBackend: Remove PeekMessages method
The video thread and backend no longer create any windows, therefore
there will never be any messages dispatched to their thread.
2018-01-27 13:53:55 +10:00
Stenzek
d96e8c9d76 VideoBackends: Combine Initialize/Prepare and Cleanup/Shutdown methods
Also allows the work previously done in Prepare to return a failure
status.
2018-01-27 13:53:55 +10:00
Stenzek
04027a7da7 Core: Improve ordering of boot
- Smplification of graphics backend startup/shutdown.
- Don't send complete message until CPU is ready to execute.
- Remove redundant stop message.
- Remove OSD message with backend name.
2018-01-27 13:53:55 +10:00
Stenzek
f9053527a9 Core: Don't spawn an extra thread in single-core mode
We don't need a message pump thread for the video backend, as the window
is created on the UI thread, not the "idle" emu thread.
2018-01-27 13:53:55 +10:00
Stenzek
c81ac1a81d
Merge pull request #6332 from stenzek/frame-dump-crash
Renderer: Fix crash on shutdown when frame dumping or taking screenshots
2018-01-27 12:27:46 +10:00
TraceBullet
ab6f932347 Fix Auto-Adjust Window Size option making the window too large 2018-01-26 10:47:19 -05:00
Léo Lam
0eaf3deb1e
Merge pull request #6322 from spycrab/qt_gecko_input
Qt/GeckoCodeWidget: Add option to add/remove gecko codes from UI
2018-01-26 13:33:15 +01:00
Léo Lam
28176d0117
Merge pull request #6309 from sepalani/rsbk-sym-map
PPCSymbolDB: two columns symbol map support added
2018-01-26 13:12:46 +01:00
Léo Lam
2ad344b725
Merge pull request #6323 from spycrab/qt_connect_wiimote
Qt: Implement "Connect Wii Remotes" menu
2018-01-26 13:10:22 +01:00
Markus Wick
5ba18f642c
Merge pull request #6306 from mahdihijazi/fix_hardcoded_path2
Android: Don't hard code the user dircetory path to /sdcard/dolphin-emu
2018-01-26 11:38:51 +01:00
Stenzek
81ae88d2d5 AbstractTexture: Fix crash in Vulkan backend when freeing texture 2018-01-26 19:12:11 +10:00
Stenzek
fd39103c73 Vulkan: Fix invalid stage mask in layout transitions 2018-01-26 12:33:24 +10:00
Stenzek
47f453d7aa Vulkan: Fix waiting on non-existant fence when reading back 2018-01-26 12:33:24 +10:00
Stenzek
3f197480ef Renderer: Fix crash on shutdown when frame dumping or taking screenshots 2018-01-26 12:12:00 +10:00
spycrab
ee90893bfe Qt/GeckoCodeWidget: Option to add/remove gecko codes from UI 2018-01-24 21:09:59 +01:00
JosJuice
c5ac325fb8 Add missing &s to Qt AR strings
Without this, the strings differ from DolphinWX
and thus have to be re-translated by the translators.
2018-01-24 20:38:41 +01:00
spycrab
aae5c950f0 Qt: Implement "Connect Wii Remotes" menu 2018-01-24 19:47:47 +01:00
spycrab
d9d75c27f0 Qt/ARCodeWidget: Use CheatCodeEditor 2018-01-24 13:42:00 +01:00
spycrab
a0f787aa1b Qt: Turn ARCodeEditor into general purpose CheatCodeEditor 2018-01-24 13:35:13 +01:00
Sepalani
df9611255a PPCSymbolDB: two columns symbol map support added 2018-01-24 12:43:23 +01:00
Markus Wick
c66156148d
Merge pull request #6317 from stenzek/renderer-bind
AbstractTexture: Move Bind() method to Renderer
2018-01-24 12:19:53 +01:00
mahdihijazi
ae8b469b80 Android: Don't hard code the user dircetory path to /sdcard/dolphin-emu
Android is allowed to pick any path for the external storage media and
that's why we should always use Environment.getExternalStorageDirectory()
to get the external storage path
2018-01-24 12:15:59 +01:00
Léo Lam
c3dc8bf1c0
Merge pull request #6310 from mahdihijazi/fix_animation
Android: Fix settings screen animation if Animator Duration Scale is Off
2018-01-24 12:14:21 +01:00
Léo Lam
9a166dca57
Merge pull request #6313 from mahdihijazi/support_change_disc
Android: Support change disc
2018-01-24 12:07:10 +01:00
Léo Lam
5223831c7b
Merge pull request #6319 from Ebola16/master
Update the Android Gradle plugin to version 3.0.1
2018-01-24 12:06:45 +01:00
Léo Lam
432ebe793e
Merge pull request #6318 from JosJuice/qt-debugger-strings
Tweak Qt debugger strings to be more translation friendly
2018-01-24 10:39:11 +01:00
Léo Lam
a972892821
Merge pull request #6320 from sepalani/dwc_printf
HLE: DWC_Printf debug added
2018-01-24 10:29:02 +01:00
Anthony
2c1cb609cc
Merge pull request #6287 from spycrab/qt_gamecube
Qt/Settings: Implement "GameCube pane"
2018-01-23 12:25:05 -08:00
Anthony
440101a6bb
Merge pull request #6279 from spycrab/qt_arcodes
Qt: Implement "AR Codes"
2018-01-23 12:23:54 -08:00
Sepalani
6ffb5dbaaa HLE: DWC_Printf debug added 2018-01-23 19:02:32 +01:00
Stenzek
38e0b6e2ab AbstractTexture: Move Bind() method to Renderer
This makes state tracking simpler, and enables easier porting to command
lists later on.
2018-01-22 13:22:09 +10:00
Ryan Meredith
765b20cc7a Update the Android Gradle plugin to version 3.0.1 2018-01-21 17:29:34 -05:00
JosJuice
04b9310bb6 Tweak Qt debugger strings to be more translation friendly 2018-01-21 16:33:46 +01:00
mahdihijazi
c9dc585dcb Android: Support change disc 2018-01-21 13:59:36 +01:00
Markus Wick
fca56d532a
Merge pull request #4453 from degasus/custom_texture
CustomTexture: Drop old texture format.
2018-01-21 11:22:49 +01:00
mahdihijazi
e2dbf10ee5 Android: Keep the local copy of the mSurface
onCreateView might not be called after resuming the emulatoin wich will
leed the game to stuck in the middle since mRunWhenSurfaceIsValid will be
true but surfaceChanged will never be called in this case.
2018-01-21 01:30:45 +01:00
spycrab
42c562afbc Qt: Fix render window resize bug 2018-01-20 21:05:04 +01:00
degasus
a5a0599145 CustomTexture: Drop old texture format. 2018-01-20 17:08:47 +01:00
degasus
0b466249e0 CustomTextures: Drop format convertion. 2018-01-20 16:39:04 +01:00
mahdihijazi
53f2fcb571 Android: Fix settings screen animation if Animator Duration Scale is Off
If Animator Duration Scale is Off, the Enhancements/Hacks screens were
not visible unless you enable the Animator Duration Scale back. This
make sure screens will be visible regardless of your animation settings.
2018-01-19 11:55:20 +01:00
JosJuice
2441fd28d5 AVIDump: Remove incorrect usage of s_ prefix 2018-01-17 22:19:14 +01:00
Markus Wick
e02025b45e
Merge pull request #6307 from rukai/fix-frame-dump-path
Handle framedump path not existing
2018-01-17 22:02:51 +01:00
Lucas Kent
6c7e6016fb Handle framedump path not existing 2018-01-18 07:53:30 +11:00
Markus Wick
cb7eede193 VideoCommon: Apply custom texture scale for arbitrary mipmaps.
We want to get the same mipmap level. And if the IR and the custom
texture upscaling fits, we don't need to modify the LOD bias.
2018-01-17 09:02:36 +01:00
Markus Wick
2a43f41ace
Merge pull request #6297 from JosJuice/custom-texture-arb-filename
Treat custom textures with "_arb" suffix as having arbitrary mipmaps
2018-01-15 09:58:30 +01:00
spycrab
fffa883cae Qt/Settings: Implement "GameCube pane" 2018-01-14 12:24:05 +01:00
Léo Lam
27b6a2e634
Merge pull request #6292 from gyroninja/master
Fixed SIGSEGV in PPCDebugInterface When Reading Too Early in The Boot Process
2018-01-13 14:34:38 +01:00
Léo Lam
973bd154b9
Merge pull request #6304 from container1234/qt-debugger
Qt/Debugger: Minor fixes
2018-01-13 11:53:20 +01:00
container1234
025d9383ac Use double instead of float for FPRs 2018-01-13 19:33:11 +09:00
Léo Lam
ec78118a43
Merge pull request #6302 from JosJuice/gradle-compile
Use "implementation" for all dependencies in build.gradle
2018-01-13 11:25:37 +01:00
container1234
b6138b9408 Fix 64bit registers that are not displayed correctly 2018-01-13 16:21:32 +09:00
gyroninja
9628e22916 Changed PPCDebugInterace to check memory only after the emulator has finished starting 2018-01-12 15:18:29 -08:00
Léo Lam
955214c6b6
Merge pull request #6299 from Ebola16/master
ISOProperties: Rename "Edit Config" and "Show Defaults"
2018-01-12 21:34:16 +01:00
JosJuice
83870fbcf0 Use "implementation" for all dependencies in build.gradle 2018-01-12 21:29:42 +01:00
Markus Wick
56d74d65d0
Merge pull request #6298 from 34will/feature/Android_Single_Char_Fix
[Android] Fix for single char name for Wii and WAD Games
2018-01-12 09:41:52 +01:00
Stenzek
ce0c699b66
Merge pull request #6246 from stenzek/vulkan-readback-fixes
Vulkan: Fix MSAA regression from 5.0-5968
2018-01-12 11:46:55 +10:00
34will
86a787bdf9 Modified StringUtil to change UTF16ToUTF8 to use a wstring_convert and codecvt_utf8<wchar_t> to convert a UTF16 wstring to a UTF8 string. 2018-01-11 21:49:25 +00:00
Markus Wick
b93ae14272
Merge pull request #6300 from JonnyH/WIP/glsl-es-implicit-int-float-conversions-in-gpu-texture-decode
GLSL-ES doesn't allow implicit int/uint conversions
2018-01-11 22:22:05 +01:00
34will
a949e98d9b Modified UTF16BEUTF8 to just convert the UTF-16 C-string into a std::u16string, and pass it into CodeToUTF8 with the 'from' parameter being "UTF-16BE", rather than manually performing the big endian to little endian encoding. 2018-01-11 19:51:19 +00:00
Jonathan Hamilton
46254a2cf2 Some more implicit uint/float conversions in the texture decode shaders 2018-01-11 11:15:40 -08:00
Jonathan Hamilton
f23dd992dd GLSL-ES doesn't allow implicit int/uint conversions 2018-01-11 10:54:55 -08:00
Ryan Meredith
1fabc93756 ISOProperties: Rename Edit Config and Show Defaults 2018-01-11 08:31:01 -05:00
Stenzek
4997fbce44 Vulkan: Fix possible mismatch between EFB framebuffer and render pass
This could happen when changing MSAA settings or internal resolution at
runtime.
2018-01-11 16:02:31 +10:00
Stenzek
0525726338 Vulkan: Move pipeline barrier outside render pass for EFB peeks 2018-01-11 15:36:01 +10:00
Stenzek
48a8063cd5 Vulkan: Fix FramebufferManagerBase::m_EFBLayers being set out-of-range 2018-01-11 15:30:27 +10:00
Stenzek
173a33886c Vulkan: Move render pass management to ObjectCache 2018-01-11 15:21:34 +10:00
Stenzek
0e50b2c9f2 Vulkan: Add missing layout transition when resolving MSAA depth buffers 2018-01-11 15:21:33 +10:00
34will
ba111959fa Modified StringUtil to use a u16string instead of a wstring in the non-win32 UTF16BEToUTR8 method. 2018-01-11 02:45:27 +00:00
JosJuice
226b65bd38 Clean up variable naming in HiresTextures::Update 2018-01-10 17:53:51 +01:00
JosJuice
c25fffc9a0 Treat custom textures with "_arb" suffix as having arbitrary mipmaps
This is adapted from Bighead's code that was posted at
https://forums.dolphin-emu.org/Thread-dolphin-custom-texture-mipmaps?pid=460867#pid460867

In master, custom textures are never treated as having arbitrary mipmaps,
so we need either a change like this or a change that makes us apply the
arbitrary mipmap heuristic even when a custom texture is used.
2018-01-10 17:51:45 +01:00
Markus Wick
41fe276323
Merge pull request #6295 from 34will/master
Yes/No Dialogs for Android
2018-01-10 14:55:37 +01:00
34will
10ea9e5f5b Added an actual implementation for yes/no dialogs on Android using Object.wait and Object.notify.
Modified NativeLibrary to display alerts in AlertDialogs rather than Toast notifications, and allow yes/no options.
Modified MainAndroid to use the new displayAlertMsg, and to return its output.
2018-01-10 13:41:57 +00:00
Markus Wick
a1467f0e5a
Merge pull request #6282 from mahdihijazi/replace_file_browser
[Android] Replace current file browser
2018-01-10 09:50:16 +01:00
Anthony
57640a4c83
Merge pull request #6293 from container1234/dolphinqt-debugger
Qt/Debugger: Add TB, XER and GQRs to Registers Window
2018-01-09 21:25:17 -05:00
container1234
5cff714b77 Qt/Debugger: Add TB, XER and GQRs to Registers Window 2018-01-09 18:09:01 +09:00
Markus Wick
22f469697b
Merge pull request #6290 from JosJuice/invalid-aspect-ratio
Treat invalid aspect ratio setting values as Auto
2018-01-08 13:46:30 +01:00
JosJuice
1557e6ab05 Specify underlying types for enums that get casted from integers
Otherwise we might get UB if the value we cast is larger than the
max value of the underlying type that the compiled picked for the enum.

I haven't done any extensive check through Dolphin to find cases
of this, I'm just fixing the cases I already know of.
2018-01-08 12:14:18 +01:00
JosJuice
a2404c42a1 Treat invalid aspect ratio setting values as Auto 2018-01-06 12:53:53 +01:00
Markus Wick
56d153f548 VideoCommon: Apply the yscale as upscaling of the XFB. 2018-01-06 10:36:33 +01:00
Markus Wick
dc08b73db1
Merge pull request #6141 from JonnyH/WIP/shader-framebuffer-fetch2
Implement dual-source blending in shader
2018-01-05 23:42:43 +01:00
Markus Wick
1cf1e7cde0
Merge pull request #6286 from JosJuice/game-list-cache-vector
DolphinWX: Speed up in-memory operations on game list cache
2018-01-05 23:37:41 +01:00
JosJuice
6ad04fc589
Merge pull request #6288 from JosJuice/boot-savestate-thread
Don't involve host thread when booting from savestate
2018-01-05 21:45:28 +01:00
mahdihijazi
409ae4c444 [Android] Replace current file browser
1. Allow users to pick games dircetory from external storage.
2. Better UX experince to distinguish between selecting a directory or
a game. The later is needed when we implement change disk for android.
2018-01-05 21:43:19 +01:00
JosJuice
af51063a9a DolphinWX: Rewrite the logic for adding/removing games from cache
Thanks to degasus for coming up with most of this faster design.
2018-01-05 19:52:14 +01:00
Jonathan Hamilton
c709f3c2d1 Standardise some enums from ALL_CAPS to CamelCase 2018-01-05 10:03:58 -08:00
Jonathan Hamilton
ceb1f8c8cb Enable shader_framebuffer_fetch blend path on ubershaders
Tested on a linux Intel Skylake integrated graphics with
blend_func_extended force-disabled, as it's the only platform I have
that doesn't crash with ubershaders and supports fb_fetch
2018-01-05 09:56:46 -08:00
Jonathan Hamilton
8d68adcaf3 Workaround qualcomm driver bug
It seems it doesn't like modifying inout variables in place - so instead
use a temporary for ocol0/ocol1 and only write them once at the end of
the shader
2018-01-05 09:56:46 -08:00
Jonathan Hamilton
29a9ed043b Implement dual-source blending in shader
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Markus Wick
11976526d1
Merge pull request #6283 from JosJuice/qt-vs-launch
Fix launching DolphinQt2 from Visual Studio
2018-01-05 15:34:33 +01:00