Lioncash
a85aa73c4d
FileUtil: Remove unnecessary IOFile GetHandle() call in ReadFileToString()
...
We can just use IOFile's GetSize() function to do the same thing. While
we're at it, get rid of unnecessary variables.
2018-05-11 16:27:33 -04:00
Mat M
b938e15699
Merge pull request #6818 from JonnyH/WIP/variant-update
...
Update mpark::variant implementation to 1.3.0
2018-05-11 15:36:23 -04:00
Lioncash
cdeed038bd
SDCardUtil: Replace macros with typed equivalents
...
Instead use a general template and specify which type we're writing out.
2018-05-11 12:33:07 -04:00
Lioncash
3b0139b258
SDCardUtil: Namespace SDCardUtil
...
Brings yet another header in the common library under the Common
namespace.
2018-05-11 09:19:30 -04:00
Lioncash
4e1547b3b2
SDCardUtil: Remove the use of IOFile's GetHandle() function
...
GetHandle() should really not even be part of IOFile's interface, but
since it is (for the time being), we can cull unnecessary usages of it.
In this case, the WriteBytes() function does what we need without using
the underlying handle directly.
2018-05-11 09:19:29 -04:00
Lioncash
ad4150dae9
SDCardUtil: Join variables with declarations where applicable
2018-05-11 09:19:26 -04:00
Lioncash
1ffd0d2572
SDCardUtil: Make type of write_empty's "count" parameter size_t
...
This allows getting rid of casts. We can also leverage std::min to allow
making relevant variables const. Also make the "empty" table const to
allow it to be read-only.
2018-05-11 08:55:05 -04:00
Lioncash
c26de8107d
SDCardUtil: Convert return type of write_* functions to bool
...
Converts them from 0 == success, 1 == failure to using the built-in
standard bool. Also while we're at it, const qualify write_sector's
"sector" parameter, since nothing in the function modifies the data
being pointed to.
2018-05-11 08:29:37 -04:00
Lioncash
5fc18aa639
SDCardUtil: Replace sector size magic value with relevant named constant
...
Makes variable use consistent throughout the file.
2018-05-11 08:25:35 -04:00
Lioncash
6d0cab3743
DolphinQt2/MemoryWidget: Use QString's toUtf8() where applicable instead of toStdString()
...
Avoids needing to iterate and append the characters in one case. This also
alters the function to not need to construct a temporary std::string
(QString's toUtf8() is sufficient, as QByteArray exposes iterators).
toStdString() is equivalent to retrieving the QString's underlying
QByteArray via calling QString's .toUtf8 member function and then
calling .toStdString() on the result of it (discarding the QByteArray
afterwords), so this just trims off an unnecessary step in the process.
This is also somewhat more indicative of the conversions going on:
toStdString() converts the underlying character sequence of a
QString to UTF-8, not strict ASCII, so we're really using a superset of
ASCII.
2018-05-10 22:10:45 -04:00
Lioncash
ba01f6dba3
CommonFuncs: Convert ROUND_UP_POW2 macro to a function
...
Also move it to MathUtils where it belongs with the rest of the
power-of-two functions. This gets rid of pollution of the current scope
of any translation unit with b<value> macros that aren't intended to be
used directly.
2018-05-10 19:42:20 -04:00
Lioncash
0a3631cc76
FloatUtils: Remove IntDouble and IntFloat
...
Type punning via unions in C++ invokes undefined behavior. Instead, leverage BitCast,
our variant of C++2a's std::bit_cast
2018-05-10 12:28:09 -04:00
Lioncash
bde4e970f1
FloatUtils: Clean up memcpy usages
...
Now that we have BitCast, we can use that instead.
2018-05-10 12:28:09 -04:00
Lioncash
b3292298c9
BitUtils: Add C++14/C++17 compatible equivalent of std::bit_cast from C++2a
...
Given bit conversions between types are quite common in emulation
(particularly when it comes to floating-point among other things) it
makes sense to provide a utility function that keeps all the boilerplate
contained; especially considering it makes it harder to accidentally
misuse std::memcpy (such as accidentally transposing arguments, etc).
Another benefit of this function is that it doesn't require separating
declarations from assignments, allowing variables to be declared const.
This makes the scenario of of uninitialized variables being used less
likely to occur.
2018-05-10 12:28:05 -04:00
Mat M
7b0d7799b5
Merge pull request #6798 from spycrab/qt_moc_fix
...
Qt: Fix moc compilation
2018-05-09 21:22:49 -04:00
Lioncash
e020f5b04b
RenderBase: Remove unused PixelPerfQuery enum
...
Neither the values or the identifier name of the enum is used anywhere
in the codebase.
2018-05-09 12:11:29 -04:00
Lioncash
593bad3253
Atomic_Win32: Replace deprecated (and since been removed) barrier intrinsics
...
As of VS 15.7, these seem to have been removed. Given we shouldn't have
been using these for some time, just replace them with the standard
library equivalent.
This fixes building on Windows with VS 15.7
2018-05-09 11:35:35 -04:00
Lioncash
f29e7fea2a
FloatUtils: Remove union type punning from ClassifyX functions
...
Type-punning via unions is undefined behavior in C++
Also take the liberty of cleaning these up a little bit by removing
unnecessary else usages.
2018-05-09 10:25:23 -04:00
Lioncash
fe218ea3f6
FloatUtils: Remove union type punning from ApproximateReciprocal functions
...
This form of type punning invokes undefined behavior in C++
2018-05-09 10:05:29 -04:00
Lioncash
46a4243d9a
FloatUtils: Remove using namespace std in ApproximateReciprocal()
...
This was made quite a long time ago when we supported 32-bit ARM targets
2018-05-09 09:36:23 -04:00
Lioncash
86018b503b
Common: Move floating-point utility functions to FloatUtils.h/.cpp
...
Keeps all of the floating-point utility functions in their own file to
keep them all together. This also provides a place for other
general-purpose floating-point functions to be added in the future,
which will be necessary when improving the flag-setting within the
interpreter.
2018-05-07 02:56:32 -04:00
Lioncash
82b1518342
x64Emitter: Use an enum class to represent FixupBranch branch types
...
Gets rid of the use of magic values and replaces them with strongly
typed symbolic names.
2018-05-06 22:05:03 -04:00
Lioncash
64d1865448
Interpreter_FPUtils: Properly update the FPSCR's FEX bit in UpdateFPSCR()
...
FPSCR.FEX is supposed to be a logical OR of all floating-point exception
bits masked by their respective enable bits.
Currently UpdateFPSCR() isn't called by anything in the interpreter
except for mcrfs and mffs, so this doesn't alter existing behavior that much.
However, this will be necessary in future PRs when making the interpreter more
accurate in how it sets flags.
2018-05-06 21:40:00 -04:00
Lioncash
d5de49f9aa
Interpreter_FPUtils: Make FPCC enum an enum class
...
Avoids dumping two letter identifiers into global scope
2018-05-06 19:32:09 -04:00
Lioncash
69a0aaebd4
Gekko: Make UReg_FPSCR's single argument constructor explicit
...
Prevent implicit conversions to UReg_FPSCR. Given the semantics of a
random magic value and the FPSCR are different, make explicit
conversions a requirement to signify intent.
2018-05-06 18:46:57 -04:00
Lioncash
cb5926c1ca
PowerPC: Make the PowerPCState's fpscr member variable a UReg_FPSCR instance
...
Gets rid of the need to cast the actual member to access information without bit shifts and masking.
2018-05-06 18:46:52 -04:00
Lioncash
707615ef82
PowerPC: Fix copying of the MSR.ILE bit to MSR.LE
...
The MSR.LE bit is supposed to be set to the value of MSR.ILE upon
entering an exception vector to control whether the environment in said
vector operates as little endian or big endian. If this bit is ORed into
the LE bit, then the scenario of operating in little endian but wanting
to take exceptions in big endian will be incorrectly handled.
2018-05-06 14:24:58 -04:00
Lioncash
31389bab0a
DolphinQt/MemoryWidget: Fix dead condition in FindValue()
...
This condition is already checked earlier in the function and exits out
if it's satisfied, meaning it'll never reach this check further down.
2018-05-05 20:44:38 -04:00
Lioncash
0043b77ccd
Gekko: Make UReg_MSR's single-argument constructor explicit
...
Prevents implicit construction of MSR instances from integral values.
This is beneficial, considering MSR values have an intended
representation while a regular magic value doesn't. So make these
conversions required to be explicit.
2018-05-05 17:59:45 -04:00
Lioncash
ffcf107dd2
PowerPC: Make the PowerPCState's msr member variable a UReg_MSR instance
...
Gets rid of the need to construct UReg_MSR values around the the actual
member in order to query information from it (without using shifts and
masks). This makes it more concise in some areas, while helping with
readability in some other places (such as copying the ILE bit to the LE
bit in the exception checking functions).
2018-05-05 17:59:30 -04:00
Mat M
54a6b0f50a
Merge pull request #6726 from spycrab/qt_sort_alpha
...
Qt/GameList: Always sort games alphabetically
2018-05-03 13:13:09 -04:00
Mat M
348125eda4
Merge pull request #6738 from spycrab/qt_fix_empty_adapter
...
Qt/GeneralWidget: Fix empty adapter option
2018-05-03 13:11:00 -04:00
Mat M
689a70a7f1
Merge pull request #6736 from spycrab/qt_bad_range_clear
...
Qt/MappingButton: Fix bad range default
2018-05-03 13:09:26 -04:00
Mat M
cf40ebf16a
Merge pull request #6737 from JosJuice/qt-invalid-si-device
...
DolphinQt2: Don't crash on invalid SI devices
2018-05-03 13:07:23 -04:00
Mat M
ed6709ac8f
Merge pull request #6731 from spycrab/qt_cache_slider
...
Qt/HacksWidget: Fix "Accuracy" slider
2018-05-02 15:48:33 -04:00
Mat M
a2c12f1503
Merge pull request #6735 from JosJuice/ui-ini
...
Remove code related to UI.ini
2018-05-02 15:47:28 -04:00
Mat M
ad836b9071
Merge pull request #6717 from spycrab/issue_11039
...
Qt/GraphicsControls: Reload values when settings are changed
2018-04-29 20:20:36 -04:00
Mat M
1ce75ce217
Merge pull request #6721 from spycrab/qt_alloc_console
...
Qt/Win32: Fix console output
2018-04-29 20:19:55 -04:00
Mat M
d8b56af342
Merge pull request #6714 from spycrab/qt_fix_toolbar
...
Qt/ToolBar: Fix inconsistencies
2018-04-29 15:20:01 -04:00
Mat M
cad7d2c71f
Merge pull request #6720 from spycrab/qt_ext
...
Qt/GameTracker: Match uppercase file extensions
2018-04-29 14:24:24 -04:00
Mat M
1aebe515d9
Merge pull request #6719 from spycrab/qt_batch
...
Qt: Implement Batch flag (-b)
2018-04-29 14:23:46 -04:00
Lioncash
167b92ff2c
Jit_Integer: Make arrays const in MultiplyImmediate() and twX()
...
These are only ever read from, so make the data immutable to be explicit about that
2018-04-28 14:13:02 -04:00
Mat M
0cd46f4d21
Merge pull request #6690 from lioncash/nand
...
Common/NandPaths: Minor cleanup
2018-04-28 13:43:33 -04:00
Mat M
6b8da197e8
Merge pull request #6689 from container1234/qt-minor-fixes
...
Qt: Minor changes
2018-04-28 13:41:59 -04:00
Mat M
c057eb3c82
Merge pull request #6705 from leoetlino/variable
...
IOS/SO: Clean up variable declarations
2018-04-28 13:40:38 -04:00
Mat M
fa44e28ce0
Merge pull request #6708 from spycrab/qt_dynfilter
...
Qt/GameList: Ensure resort when new entries are added
2018-04-28 13:39:56 -04:00
Mat M
73c91edde6
Merge pull request #6709 from JosJuice/qt-controls-clear
...
DolphinQt2: Fix clearing numeric values in controller config
2018-04-28 13:39:25 -04:00
Lioncash
8183360832
Common/MemTools: Make handler function internally linked on Windows
...
This doesn't need to be an externally linked function.
2018-04-28 12:55:38 -04:00
Lioncash
4637579375
Common: Amend CommonTypes include within BitSet.h
...
We do includes relative to the root, rather than direct pathing.
2018-04-23 00:14:00 -04:00
Lioncash
d68f437e67
Common: Move BitSet helper functions into the Common namespace
2018-04-23 00:13:55 -04:00
Lioncash
c1c360d9b1
NandPaths: Make function parameters consistent
...
Also drops trailing underscores from said parameter names.
2018-04-22 23:49:20 -04:00
Lioncash
62242331d8
NandPaths: Remove unused header inclusions
2018-04-22 23:49:16 -04:00
Lioncash
2ce0f42c14
Common: Move BitSet into the Common namespace
...
This should be under the common namespace, considering where it's living
2018-04-22 23:43:07 -04:00
Mat M
4a0b6c7b0b
Merge pull request #6683 from aldelaro5/qt-log-colors
...
Qt/log change the notice log color to lime
2018-04-22 01:37:33 -04: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
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
Mat M
908e00556e
Merge pull request #6661 from sepalani/host_va
...
HLE_VarArgs: PowerPC::HostRead_F64 used
2018-04-17 10:16:05 -04:00
Mat M
41f07a8773
Merge pull request #6652 from leoetlino/shared-pugixml
...
CMake: Use system-wide pugixml if available
2018-04-17 08:06:58 -04: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
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
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
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
Mat M
615c0decb7
Merge pull request #6644 from leoetlino/uicommon-header
...
UICommon: Fix header
2018-04-14 20:25:22 -04: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
Lioncash
2851c7e5ee
CMakeLists: Don't dump zlib's includes into the top-level directory
2018-04-13 08:32:48 -04: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
Lioncash
7de2d1c9d6
CMakeLists: Don't dump LZO's includes into the top-level directory
...
Instead, we add the includes to the LZO target's interface. That way
only libraries that link it in can see them.
2018-04-13 07:39:09 -04:00
Mat M
9d7009796c
Merge pull request #6637 from JosJuice/projection-hack-leftovers
...
Remove leftovers of projection hack support
2018-04-13 07:23:13 -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
Lioncash
6a637cfc22
CMakeLists: Don't dump libpng's includes into the top-level directory
...
Instead, add the includes to the target, which only libraries that link it in can actually see.
2018-04-11 17:33:52 -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
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
Lioncash
b9c872dbca
CMakeLists: Don't dump bochs' includes into the top-level directory
...
Instead add it to the target interface. This way, only libraries that
link in bochs will see its include directories.
2018-04-08 20:43:18 -04:00