Commit graph

27426 commits

Author SHA1 Message Date
Léo Lam
3d10344561
Merge pull request #6610 from lioncash/swap
Common/Swap: Amend BigEndianValue's operator= to return a reference to the object rather than returning void
2018-04-08 10:22:10 +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
75574b7b97
Merge pull request #6565 from leoetlino/fs-timing
IOS: Emulate filesystem timings
2018-04-07 23:47:09 +02: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
bb38b612ba
Merge pull request #6602 from lioncash/xxhash
CMakeLists: Don't dump xxhash's includes into top-level directory scope
2018-04-07 23:31:13 +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
Mat M
5ed12b45ec
Merge pull request #6603 from orbea/ffmpeg
[AVIDump] fix compilation on Linux
2018-04-06 23:49:29 -04:00
Anthony
9e2806c181 [AVIDump] fix compilation issues on Linux 2018-04-06 19:53:10 -07:00
Lioncash
a4ba92c697
CMakeLists: Don't dump xxhash's includes into top-level directory scope
We already use a custom CMakeLists file for xxhash, so we can just make it's headers
public as part of its target interface.

This way, only libraries that link in the xxhash target will see its headers, as opposed
to every target under the top-level directory.
2018-04-06 10:41:58 -04: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
Léo Lam
c2fa6f5bee
Merge pull request #6599 from lioncash/cmake-option
CMakeLists: Move build options to the top of the file
2018-04-06 12:13:34 +02:00
Léo Lam
cc3a98ad08
Merge pull request #6601 from lioncash/mkdir
DolphinWX/DolphinQt2 CMakeLists: Use cmake -E instead of mkdir -p for creating language directories
2018-04-06 12:01:28 +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
Léo Lam
a66c7d6a64
Merge pull request #6600 from lioncash/leak
DolphinQt2/MainWindow: Resolve a memory leak on systems with X11
2018-04-05 17:42:15 +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
b4e36bbd27
CMakeLists: Move build options to the top of the file
Makes the configurable aspects of the build more immediately discoverable
as opposed to needing to read down the entire file.
2018-04-05 08:27:49 -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
Markus Wick
a8821839da
Merge pull request #6596 from lioncash/dcbz
Interpreter_LoadStore: Generate alignment exceptions if dcbz or dcbz_l are executed with the data cache disabled
2018-04-05 08:46:36 +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
84ed6fd445
CMakeLists: Remove the LIBS variable
Now that we link all libraries in explicitly, the top-level LIBS variable can finally go.
2018-04-04 11:46:30 -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
Mat M
88853551e6
Merge pull request #6590 from lioncash/hires
HiresTexture: Correct texture hashes
2018-04-03 19:00:28 -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