Lioncash
edb38ff144
MMU: Avoid sign conversions in EFB_Read and EFB_Write
...
There's no reason to use int here as opposed to an unsigned value.
Video_AccessEFB() takes its arguments as u32 values, so we'd be doing
sign conversions for no reason here (along with causing avoidable
compiler warnings).
2018-05-20 16:13:53 -04:00
Lioncash
0337ca116a
Interpreter_SystemRegisters: Check processor privilege level in mfspr and mtspr
...
If a program executing in user mode tries to write to any SPRs other than
XER, LR, or CTR registers, then a program exception occurs. Similarly
this also applies for reading SPRs as well, however the upper and lower
timebase halves can also be read (but not written to).
2018-05-20 15:51:52 -04:00
spycrab
8af8c58eb9
Merge pull request #6917 from spycrab/qt_mpbtn_size
...
Qt/MappingButton: Enforce more consistent size
2018-05-20 21:27:41 +02:00
spycrab
f7323a4419
Merge pull request #6916 from spycrab/qt_indicator_aa
...
Qt/MappingIndicator: Improve render quality
2018-05-20 21:21:08 +02:00
spycrab
0e8aa213a3
Qt/MappingButton: Enforce more consistent size
2018-05-20 21:20:45 +02:00
spycrab
b4f1c489a3
Qt/MappingIndicator: Center trigger labels
2018-05-20 21:16:14 +02:00
Léo Lam
4284952538
Merge pull request #6919 from lioncash/nop
...
Interpreter_LoadStore: No-op dcbt and dcbtst if HID0.NOOPTI is set
2018-05-20 20:33:38 +02:00
Lioncash
d05c1b257c
Interpreter_LoadStore: No-op dcbt and dcbtst if HID0.NOOPTI is set
...
If HID0.NOOPTI is set, then dcbt and dcbtst are no-oped globally. We
currently don't perform data cache emulation, but we put this in anyway
so this detail isn't forgotten about if data cache emulation is
introduced at some point in the future.
2018-05-20 14:23:51 -04:00
Léo Lam
5ce1b83d97
Merge pull request #6918 from lioncash/cast
...
Interpreter_LoadStore: Remove unnecessary cast in lhzx()
2018-05-20 20:21:16 +02:00
Lioncash
940f41f593
Interpreter_LoadStore: Remove unnecessary cast in lhzx()
...
This is only moving a smaller unsigned integral type into a larger
unsigned integral type, so there's no loss of information that could
occur.
2018-05-20 14:06:59 -04:00
Léo Lam
4b0f8d9f85
ES: Implement VerifySign
...
This implements ES_VerifySign which is notably used by the system menu
when importing saves.
Now *all* ES commands that are actually used by titles are implemented.
2018-05-20 20:04:53 +02:00
Léo Lam
cec7fded60
IOSC: Implement VerifyPublicKeySign for ECC
2018-05-20 20:04:53 +02:00
Léo Lam
b86f1ea7b3
ES / IOSC: Add support for ECC certificates
2018-05-20 20:04:53 +02:00
Léo Lam
67ce7e34e9
UnitTests: Add basic tests for ec crypto code
...
Verifies that PrivToPub and ComputeSharedSecret give expected results.
2018-05-20 19:59:26 +02:00
Léo Lam
355b1b5d5b
ec: Improve readability and clarity
...
- Move all of the ec functions into the Common::ec namespace.
- Give the public functions better names and some usage information.
- Move all of the "elt" related functions into an "elt" class including
all of the arithmetic operations, so that the logic becomes clearer
and feels less like assembly.
This also makes it much more obvious what the parameters are, instead
of only using unsigned char* (which doesn't tell anything about what
the pointer is used for or the size).
- Similarly, add a new "Point" class and move point functions there.
Overload the arithmetic operators to make calculations easier to read
2018-05-20 19:59:26 +02:00
Léo Lam
e83591f188
ec: Avoid exposing internal function
2018-05-20 19:59:26 +02:00
Léo Lam
b9dd94b9b2
bn: Use int instead of u32 for sizes
...
The loops relied on unsigned integer overflow, which is not immediately
obvious. Replace them with less clever variants that are clearer.
Also implement bn_compare using std::memcmp.
2018-05-20 19:59:26 +02:00
spycrab
b0b14853c4
Qt/MappingIndicator: Improve render quality
2018-05-20 17:50:26 +02:00
JosJuice
cc42b4354d
Reimplement custom PNG banners in game list
...
Fixes https://bugs.dolphin-emu.org/issues/10938
and makes PNG banners available in DolphinQt2 for the first time.
2018-05-20 15:34:03 +02:00
JosJuice
10ff6d73c2
Fix compatibility with versions of libpng older than 1.5
2018-05-20 13:44:42 +02:00
Emmanuel Gil Peyrot
c51ae9c62a
Remove SOIL altogether from the project.
2018-05-20 13:44:42 +02:00
Emmanuel Gil Peyrot
6d0143647e
VideoCommon: Remove a workaround mutex used for SOIL
2018-05-20 13:44:41 +02:00
Emmanuel Gil Peyrot
17e65a7167
VideoCommon: Replace SOIL with libpng for hires textures
2018-05-20 13:44:38 +02:00
Léo Lam
0706add584
Merge pull request #6699 from 404-Name-Not-Found/alphabetize-gecko-qt
...
Adds a toggleable function for sorting the gecko codes alphabetically to the gecko code menu
2018-05-20 11:13:38 +02:00
Justin Futrell
c7f0c7484d
GeckoCodeWidget: Add a Sort button
2018-05-20 11:05:11 +02:00
Léo Lam
eae45e0e2c
Merge pull request #6911 from lioncash/analyst
...
PPCAnalyst: Replace memset usages with list initialization
2018-05-20 10:45:44 +02:00
Léo Lam
464bfb073e
Merge pull request #6912 from spycrab/qt_jit_widget
...
Qt/JITWidget: Add object name
2018-05-20 10:44:21 +02:00
spycrab
f7b188c7b4
Qt/JITWidget: Add object name
2018-05-20 03:58:54 +02:00
Lioncash
ced806a00a
PPCAnalyst: Replace memset usages with list initialization
...
Allows the use of non-trivially-copyable objects within the relevant
structs should it ever be needed.
2018-05-19 18:37:54 -04:00
spycrab
07e0b9c0d2
Merge pull request #6907 from spycrab/qt_gfx_sr_backend
...
Qt/SoftwareRendererWidget: Fix backend info not getting updated properly
2018-05-19 23:33:24 +02:00
spycrab
ef803613d0
Qt/SoftwareRendererWidget: Fix backend info not getting updated properly
2018-05-19 23:28:23 +02:00
Lioncash
5de99288bf
PPCAnalyst: Clean up indexing expressions in Analyze()
...
Given we just access the same member repeatedly, just use a reference
and avoid repeated unnecessary indexing.
2018-05-19 15:31:38 -04:00
Léo Lam
c6bd237534
Merge pull request #6908 from Tilka/warnings
...
Fix -Wignored-qualifiers warnings
2018-05-19 21:06:29 +02:00
spycrab
49f8d5aefb
Qt/AdvancedWidget: Save progressive scan when toggled
2018-05-19 20:59:30 +02:00
Tillmann Karras
1993eb436c
Fix -Wignored-qualifiers warnings
2018-05-19 17:18:45 +01:00
spycrab
bc504d9f84
Qt/GraphicsWindow: Show display name in title
2018-05-19 17:44:22 +02:00
spycrab
7a8b2da55e
Qt/ToolBar: Fix checkbox not properly reflecting toolbar visibility
2018-05-19 15:50:21 +02:00
Léo Lam
fc525bdf8f
Merge pull request #6898 from leoetlino/certreader
...
ES/Formats: Deduplicate signed blob reading code
2018-05-19 12:11:02 +02:00
Léo Lam
d399b0f59e
Merge pull request #6900 from lioncash/buffer
...
PPCAnalyst: Make CodeBuffer an alias for std::vector<CodeOp>
2018-05-19 12:10:19 +02:00
spycrab
bf0fbdbc52
Merge pull request #6893 from spycrab/qt_gc_checkboxes
...
Qt/GameConfigWidget: Fix checkboxes not being saved properly
2018-05-19 03:34:24 +02:00
spycrab
adcaf3c581
Merge pull request #6887 from spycrab/qt_slider_accuracy
...
Qt/HacksWidget: Fix slider not showing overridden settings
2018-05-19 03:00:34 +02:00
Lioncash
9ad7d9ff87
Jit64/JitArm64: Remove unnecessary code buffer parameter for DoJit()
...
This function in both JITs is only ever called by passing the JIT's code
buffer into it. Given this is already accessible, since the functions
are part of the respective JIT class, we can just remove this parameter.
This also cleans up accesses with the new code buffer, as we don't need
to do janky looking dereference-then-index expressions.
2018-05-18 17:19:49 -04:00
Lioncash
3a8a67025e
PPCAnalyst: Make CodeBuffer an alias for std::vector<CodeOp>
...
This class effectively acted as a "discount vector", that would simply
allocate memory and then delete it in the destructor when it goes out of
scope.
We can just use a std::vector directly to reduce this boilerplate.
2018-05-18 17:19:45 -04:00
Léo Lam
33c5fd6f5a
IOSC: Verify that RSA signature size is correct
2018-05-18 23:12:07 +02:00
Léo Lam
964d00447d
IOSC: Reuse CertReader for cert imports
2018-05-18 23:12:07 +02:00
Léo Lam
90e86fa9a6
ES/Formats: Move sha1 calculation to SignedBlobReader
2018-05-18 22:40:38 +02:00
Léo Lam
fbf79f837f
Merge pull request #6896 from leoetlino/title-import
...
ES: Fix content check in ImportTitleDone
2018-05-18 22:38:55 +02:00
Léo Lam
69a6724b34
Merge pull request #6897 from lioncash/sw-efb
...
EfbInterface: Minor changes
2018-05-18 22:38:00 +02:00
Lioncash
505d45a233
EfbInterface: Move buffer constant from the header to the cpp file
...
This is only ever used internally, so we can limit its scope to the only
usage point.
2018-05-18 16:23:34 -04:00
Lioncash
5eef8ba984
EfbInterface: Make efb and perf_values std::arrays
2018-05-18 16:23:29 -04:00
Lioncash
dc788042ef
MMU: Use Common::BitCast where applicable
...
Gets rid of more memcpy boilerplate for properly reinterpreting bits.
2018-05-18 16:05:49 -04:00
Lioncash
c58b5e9b9b
EfbInterface: Make perf_values internally linked
...
Instead, expose functions to operate with it. This way we keep the
internal representation concealed.
2018-05-18 15:35:08 -04:00
Lioncash
f3a8874214
EfbInterface: Move efb array into the EfbInterface namespace
2018-05-18 15:09:37 -04:00
Léo Lam
f82e2f0b92
ES: Fix content check in ImportTitleDone
...
ImportTitleDone only checks if all required contents have been imported
for system titles.
This fixes the system menu not being able to recreate title directories
to copy a save back to the NAND by using title import functionality.
2018-05-18 20:59:33 +02:00
Léo Lam
473cbfa951
ES: Add more logging in title import functions
...
...to make troubleshooting easier.
2018-05-18 20:59:29 +02:00
Léo Lam
bb2c3bd572
Merge pull request #6894 from lioncash/mem
...
BPMemory: Use Common::BitCast where applicable
2018-05-18 20:35:18 +02:00
Lioncash
4dbd6f6bbc
BPMemory: Use Common::BitCast where applicable
...
Gets rid of memcpy boilerplating for reinterpreting bits properly.
2018-05-18 14:25:44 -04:00
Tilka
24eeffea7d
Merge pull request #6892 from lioncash/mask
...
Interpreter_Branch: Make type of the bitmask in rfi a u32 instead of int
2018-05-18 19:20:03 +01:00
spycrab
5e3d7dc162
Qt/HacksWidget: Fix slider not showing overridden settings
2018-05-18 20:19:21 +02:00
spycrab
707b966496
Qt/GameConfigWidget: Fix checkboxes not being saved properly
2018-05-18 20:15:14 +02:00
Lioncash
9911e51c8f
Interpreter_Branch: Make type of the bitmask in rfi a u32 instead of int
...
Given this is a bitmask, we should be using an unsigned type to store it
(especially given it's outside the range an int can represent properly
without being considered negative).
No behavior change is caused by this, it just silences a sign conversion
warning.
2018-05-18 13:39:56 -04:00
spycrab
57f9928c49
Merge pull request #6891 from spycrab/qt_fs_glitch
...
Qt/HotkeyScheduler: Fix toggle fullscreen glitches
2018-05-18 19:30:42 +02:00
Léo Lam
49c9c1ee40
Merge pull request #6853 from aldelaro5/qt-debugger-hotkey-fixes
...
Qt debugger hotkey fixes
2018-05-18 19:06:17 +02:00
spycrab
cc55817ec9
Qt/HotkeyScheduler: Fix toggle fullscreen glitches
2018-05-18 09:40:03 +02:00
spycrab
eef2092854
Qt/D3D: Fix render widget size not being restored properly
2018-05-18 09:27:56 +02:00
spycrab
9bdf7c4b5a
Merge pull request #6890 from aldelaro5/qt-fix-random-windows
...
Qt/CheatWarningWidget: properly supply a parent for the widget
2018-05-18 08:08:42 +02:00
aldelaro5
6dd5a3a866
Qt/CheatWarningWidget: properly supply a parent for the widget
...
Because it wasn't parented properly, it would show briefly the widget in its own window when creating an ARCodeWidget or a GeckoCodeWidget which would occur when accessing the game properties page or when the state changes to pause/running.
2018-05-18 01:31:43 -04:00
Tilka
bdce441bb9
Merge pull request #6889 from lioncash/mmu
...
PowerPC: Move MMU-specifics from PowerPC.h to MMU.h
2018-05-18 02:28:13 +01:00
Tilka
cbc85d928b
Merge pull request #6860 from Zexaron/qt_generalwidget_remove_wrong_description
...
Qt/GeneralWidget remove unnecesary description wiring
2018-05-18 02:24:08 +01:00
Lioncash
b9aad3310e
PowerPC: Move MMU-specifics from PowerPC.h to MMU.h
...
PowerPC.h at this point is pretty much a general glob of stuff, and it's
unfortunate, since it means pulling in a lot of unrelated header
dependencies and a bunch of other things that don't need to be seen by
things that just want to read memory.
Breaking this out into its own header keeps all the MMU-related stuff
together and also limits the amount of header dependencies being
included (the primary motivation for this being the former reason).
2018-05-17 19:18:55 -04:00
Tilka
e67f2dcada
Merge pull request #6888 from lioncash/qt-override
...
DolphinQt2: Minor changes
2018-05-17 22:16:23 +01:00
Lioncash
c1f92d304f
DolphinQt2/NetPlay/GameListDialog: Make GetSelectedUniqueID() const qualified
...
Given this member function returns a const reference to a QString, it
can be made const qualified, since it doesn't modify internal state.
2018-05-17 16:35:48 -04:00
Tilka
6ef7578321
Merge pull request #6886 from lioncash/dqt
...
DolphinQt2/Settings: Remove unimplemented IsInDevelopmentWarningEnabled() prototype
2018-05-17 21:33:37 +01:00
Tilka
a825ddf466
Merge pull request #6885 from lioncash/namespace
...
Common/CodeBlock: Namespace code under the Common namespace
2018-05-17 21:33:12 +01:00
Lioncash
c98a8b59d5
DolphinQt2/NetPlay: Mark constructors explicit where applicable
2018-05-17 16:33:05 -04:00
Tilka
7c9b0eb7ce
Merge pull request #6884 from lioncash/bit
...
Interpreter_LoadStorePaired: Use Common::BitCast where applicable
2018-05-17 21:32:37 +01:00
Lioncash
dfa1126946
DolphinQt2: Add missing override specifiers
2018-05-17 16:28:35 -04:00
Lioncash
3d8cca2682
DolphinQt2/Settings: Remove unimplemented IsInDevelopmentWarningEnabled() prototype
...
The "in development" dialog was removed quite a while ago, so this is
just a leftover remnant that must have been missed during said removal.
2018-05-17 16:09:56 -04:00
spycrab
0b5d29a347
Merge pull request #6883 from spycrab/qt_fix_hk_state
...
Qt/HotkeyScheduler: Fix state loading
2018-05-17 22:08:57 +02:00
Lioncash
1c63a48fab
Common/CodeBlock: Namespace code under the Common namespace
...
Brings more common code under the Common namespace.
2018-05-17 15:57:29 -04:00
spycrab
72a66d3fbb
Merge pull request #6877 from aldelaro5/qt-debugger-load-symbols
...
Qt/debugger: properly update when we load the symbols on boot
2018-05-17 21:41:55 +02:00
aldelaro5
65d2a6c590
Qt/debugger: properly update when we load the symbols on boot
...
This host event is still useful because the emu thread will load the symbols on boot if required.
2018-05-17 15:33:47 -04:00
Lioncash
dbe550f7ef
Interpreter_LoadStorePaired: Use Common::BitCast where applicable
...
Gets rid of more memcpy boilerplate code to reinterpret bits. This also
allows us to make variables const where applicable as well.
2018-05-17 15:27:07 -04:00
spycrab
f25213139d
Qt/HotkeyScheduler: Fix state loading
2018-05-17 20:27:14 +02:00
spycrab
f51eba9e79
Merge pull request #6879 from aldelaro5/qt-no-screensaver-pause-play
...
Qt: do not toggle the screensaver when pausing or playing
2018-05-17 13:22:46 +02:00
aldelaro5
0a2357f044
Qt/hotkeys: do not show the debugging tab if the debugger is disabled
2018-05-17 07:22:34 -04:00
aldelaro5
3d9d516bd3
Qt: do not toggle the screensaver when pausing or playing
...
This fixes 2 crashes with the pause function. One is when spamming the pause hotkey and the other is to press pause and step hotkeys at the same time. It does disable the screensaver getting disabled when the emulator is running, but paused, though, a better solution would have to be done without introducing these crashes.
2018-05-17 07:14:44 -04:00
Markus Wick
87a29eb602
Merge pull request #6881 from lioncash/build
...
Interpreter_FloatingPoint: Fix build in frspx()
2018-05-17 11:05:18 +02:00
Lioncash
abefbf032e
Interpreter_FloatingPoint: Fix build in frspx()
...
Github didn't detect conflicts here, however, since the float handling
functions were moved into the Common namespace, this would cause a build
failure.
2018-05-17 04:55:48 -04:00
Markus Wick
bc8d87bbfd
Merge pull request #6880 from lioncash/macro
...
PowerPC: Parenthesize GQR macro argument
2018-05-17 10:55:19 +02:00
Lioncash
ddbe292d54
PowerPC: Parenthesize GQR macro argument
...
Ideally none of these macros would exist (long-term goal), however in
the meantime at least make sure expressions always evaluate correctly
(thankfully no current usages rely on this).
2018-05-17 04:48:29 -04:00
Markus Wick
c485efdfe1
Merge pull request #6743 from stenzek/faster-disabled-copy-filter
...
TextureConversionShader: Don't sample from adjacent rows when not needed
2018-05-17 10:45:50 +02:00
Markus Wick
6ed3f8b474
Merge pull request #6634 from lioncash/frsp
...
Interpreter_FloatingPoint: Handle SNaNs and QNaNs properly in frsp
2018-05-17 10:43:14 +02:00
Markus Wick
3e6a706858
Merge pull request #6878 from lioncash/type
...
PowerPC/Interpreter: Avoid sign conversion with utility functions
2018-05-17 10:04:26 +02:00
Markus Wick
1424964678
Merge pull request #6856 from lioncash/cached-hook
...
PowerPC: Factor common part of function hooking code out of the interpreter and JITs
2018-05-17 09:45:17 +02:00
Lioncash
3f19aa6469
PowerPC/Interpreter: Avoid sign conversion with utility functions
...
Given we're operating with flags and bit representations, lets avoid
signed values here. It lessens the amount of sign conversion warnings
and lessens the amount of things to think about screwing you over when
making changes to the interpreter among other things.
2018-05-16 22:21:26 -04:00
Tilka
5b96abf7aa
Merge pull request #6872 from lioncash/exi
...
EXI_DeviceEthernet: Minor cleanup
2018-05-17 02:17:22 +01:00
Tilka
82d9dea245
Merge pull request #6873 from lioncash/bit
...
Interpreter_FPUtils: Use Common::BitCast where applicable
2018-05-17 02:12:07 +01:00
Tilka
975a10b3bd
Merge pull request #6876 from lioncash/var
...
Interpreter_SystemRegisters: Clean up variable naming
2018-05-17 02:09:25 +01:00
Lioncash
d80552b34a
Interpreter_SystemRegisters: Clean up variable naming
...
Cleans up remnant instances of Hungarian notation being used in variable
names along with other spotted deviations.
2018-05-16 20:41:34 -04:00