Commit Graph

28626 Commits

Author SHA1 Message Date
971972069c Merge pull request #7148 from lioncash/build
Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
2018-06-22 23:55:37 +02:00
1da868ee82 Merge pull request #7150 from lioncash/naming
BTEmu: Amend variable naming
2018-06-22 22:50:48 +02:00
d07e599a74 Merge pull request #7151 from lioncash/const
Movie: Make pointer parameters const where applicable
2018-06-22 22:50:25 +02:00
e16cadf982 Merge pull request #7153 from lioncash/deduplicate
DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
2018-06-22 22:49:16 +02:00
167c19ae19 Merge pull request #7154 from lioncash/emitter
DSPEmitter: Make member functions, aliases and constants private where applicable
2018-06-22 22:47:34 +02:00
dfc09cc11c Merge pull request #7157 from spycrab/qt_fix_options
Qt/Mapping: Fix "Options" entries disappearing
2018-06-22 09:46:56 +02:00
308d4bb670 Qt/Mapping: Fix "Options" entries disappearing 2018-06-22 00:16:28 +02:00
8d9f74b762 DSPEmitter: Make member functions, aliases and constants private where applicable
Given we now use a base class for the interface, we can make all member
functions, types and constants that aren't directly related to
instructions private.
2018-06-21 17:29:33 -04:00
fd1ad02c5c DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
This function was duplicated across all the opcode tables: the main info
tables, the interpreter tables, and the x86-64 JIT tables. However, we
can just make the type of the std::array parameter a template type and
get rid of this duplication.
2018-06-21 13:35:06 -04:00
2354d933c8 Movie: Make pointer parameters const where applicable
A few functions don't actually modify the data being pointed to, so
these can be made pointer-to-const.
2018-06-21 12:27:30 -04:00
25e3ec23f8 BTEmu: Rename AccessWiiMote to AccessWiimote
Everywhere else throughout the codebase we use "Wiimote" when referring
to the Wii Remote as a shorthand. This makes the casing consistent.
2018-06-21 11:36:02 -04:00
56b8d1803e BTEmu: Amend parameter and local variable naming 2018-06-21 11:35:31 -04:00
16c6e9fa57 BTEmu: Amend class member variable naming 2018-06-21 10:53:07 -04:00
77f6e50493 Merge pull request #7134 from spycrab/qt_housekeep
Qt: Basic housekeeping
2018-06-21 14:24:53 +02:00
b7068bfefd Merge pull request #7129 from lioncash/dsptool
DSPTool: Factor out behavior from main()
2018-06-21 13:33:24 +02:00
c4fb07f428 Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
Previously these were required to be built into the executable so that
the JIT portion of the DSP code would build properly, as the
x86-64-specifics were tightly coupled to the DSP common code. As this is
no longer the case, this is no longer necessary.
2018-06-21 06:53:31 -04:00
630c3f0805 Merge pull request #7147 from lioncash/emitter
DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
2018-06-21 12:34:13 +02:00
52990d215d Merge pull request #7145 from lioncash/mtspr
Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
2018-06-21 11:36:12 +02:00
b7301bee29 DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
This adds a base class that is used to replace the concrete instance of
the x64 JIT pointer within DSPCore. This fully removes the direct use
(read: non-ifdefed) usage of x86-64-specifics within the main DSP code.

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

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

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

While shuffling all the code around, the removal of the DSPEmitter
includes in some places uncovered indirect inclusions, so this also
fixes those as well.
2018-06-21 04:21:44 -04:00
0459a1a9e6 Merge pull request #6875 from JonnyH/WIP/mipmap-heuristic-tweaks
Make arbitrary mipmap detection a config option
2018-06-21 10:19:47 +02:00
bf50348d9f Merge pull request #6539 from degasus/async
VideoCommon: Flush the GPU pipeline on async requests.
2018-06-21 10:16:54 +02:00
d8ba3034c3 Merge pull request #7133 from lioncash/assembler
DSPAssembler: Minor changes
2018-06-21 10:02:36 +02:00
b4b9b53239 Merge pull request #7143 from lioncash/bt-helper
BTEmu: Make m_WiiMotes private
2018-06-21 10:00:28 +02:00
4ca05810be Merge pull request #7144 from lioncash/cast
ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
2018-06-21 09:56:05 +02:00
966cc5bc01 Merge pull request #7142 from lioncash/shadow
Common/MemoryPatches: Silence variable shadowing warnings
2018-06-21 09:52:47 +02:00
9f03d8ca6a Merge pull request #7139 from lioncash/tb
PowerPC: Add functions to read/write the full timebase value
2018-06-21 09:52:13 +02:00
235a01c976 Merge pull request #7131 from JosJuice/android-case-insensitive-sort
Android: Use case insensitive sorting in game list
2018-06-21 09:29:41 +02:00
3816e825c9 Merge pull request #7135 from JosJuice/cant-load-state
Only show savestate version mismatch OSD message when relevant
2018-06-21 09:28:47 +02:00
6bfe336102 Merge pull request #7146 from lioncash/software
Software: Don't link against X11 libraries
2018-06-21 09:26:43 +02:00
540bb1a1b0 Software: Don't link against X11 libraries
The software backend doesn't actually use X11 in any capacity directly.
2018-06-21 01:47:37 -04:00
d0fbba9ac1 Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
Despite both being documented as read-only registers, only one of them
is truly read-only. An mtspr to HID1 will steamroll bits 0-4 with
bits 0-4 of whatever value is currently in the source register, the rest
of the bits are not modified as bits 5-31 are considered reserved, so
these ignore writes to them.

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

Given as all external accesses to the WiimoteDevice instances go through
this function, we can make the other two private.
2018-06-20 17:05:54 -04:00
0e437c41e5 ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
Using reinterpret_cast (or a C-styled equivalent) to reinterpret
integers as floating-point values and vice-versa invokes undefined
behavior. Instead, use BitCast, which does this in a well-defined
manner.
2018-06-20 16:38:30 -04:00
e4b6d7626b WiimoteDevice: Make Callback_WiimoteInterruptChannel() accept its data as a u8* rather than void*
All current usages of the function pass in either u8 arrays or pointers,
so we can make this part of the function a concrete type.
2018-06-20 16:04:10 -04:00
2b60fe684c BTEmu: Make m_WiiMotes private
We can already utilize the public interface to access the necessary
instance without exposing a private data member.
2018-06-20 15:15:05 -04:00
583ddfa8f0 Qt/GCMemcardManager: Update free blocks when a memcard is changed 2018-06-20 12:33:14 +02:00
ce126f1cfe Qt/Mapping: Remove "Iterative Input" everywhere 2018-06-20 12:33:14 +02:00
dddac76b8c Common/MemoryPatches: Silence variable shadowing warnings 2018-06-19 21:33:50 -04:00
bdfc6de9fd Merge pull request #7137 from lioncash/copy
GameFile: Avoid copying map pairs in GetLanguages()
2018-06-19 22:57:29 +02:00
de0b153867 Merge pull request #7136 from lioncash/unused
GameFile: Remove unused variable within GetUniqueIdentifier()
2018-06-19 22:57:00 +02:00
e728c0c948 Merge pull request #7132 from lioncash/table
BTEmu: Make read-only arrays const
2018-06-19 22:56:10 +02:00
a2bc62dd89 Merge pull request #7140 from lioncash/move
DolphinQt2/RegisterWidget: std::move std::function instances in AddRegister()
2018-06-19 22:53:37 +02:00
6066ca30b2 DolphinQt2/RegisterWidget: std::move std::function instances in AddRegister()
These can be moved into the RegisterColumn constructor, which avoids
potential allocations in the case a std::function would otherwise need
to allocate to hold all of it's captured data.

Also tidy up the inclusion order while we're at it.
2018-06-19 13:40:22 -04:00
562d2a700b PowerPC: Add functions to read/write the full timebase value
Allows us to get rid of a silly pointer cast and deduplicate some code
from the front-end when it comes to reading the value.
2018-06-19 13:26:08 -04:00
d3ed750c9d GameFile: Avoid copying map pairs in GetLanguages()
We can just reference the pairs instead of taking them by value,
avoiding copying std::string instances.
2018-06-19 12:25:16 -04:00
1e4f3607c3 GameFile: Remove unused variable within GetUniqueIdentifier() 2018-06-19 12:18:09 -04:00