Commit Graph

20759 Commits

Author SHA1 Message Date
Léo Lam 1176ae6512 IOS/FS: Fix ReadDirectory file list copying
Each entry can take up to 13 bytes (including the terminating null
character) but should not be aligned to 13 bytes.
2018-04-20 00:02:32 +02:00
Léo Lam 4c47417a0e IOS/FS: Fix ReadDir returning wrong number of entries
ReadDir should always write the actual number of entries in the
directory list (`min(max_count, number_of_entries_on_nand)`).
2018-04-20 00:02:32 +02:00
Connor Roth 3e4725f390 THis fixes issue #08 and #16, the rumble test and slider 2018-04-19 17:48:55 -04:00
Tilka a500347345
Merge pull request #6676 from spycrab/qt_fix_open
Qt: Fix "Open File" dialog opening twice
2018-04-19 22:13:38 +01:00
spycrab cd390714c9 Qt: Fix "Open File" dialog opening twice 2018-04-19 23:10:23 +02:00
Tillmann Karras 1737f1bee8 Jit64: avoid an unnecessary load 2018-04-19 21:49:12 +01:00
spycrab c09075209f Qt: Implement Cheats Manager 2018-04-19 10:42:24 +02:00
Léo Lam 396204248d
Merge pull request #6667 from lioncash/si
SI: Remove unnecessary declarations of internally linked functions
2018-04-18 18:49:44 +02:00
Lioncash e6405f7b2b
Core: Use thread_local directly
Both Android and OSX now support it, allowing us to remove the fallback code.
2018-04-17 19:03:24 -04:00
Mat M df44aa7335
Merge pull request #6668 from JosJuice/remove-hybrid-wiimote
Remove Hybrid Wii Remote
2018-04-17 18:09:58 -04:00
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
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 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
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 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
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 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 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 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
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