Commit Graph

24274 Commits

Author SHA1 Message Date
Lioncash 8a1a924e2e Vulkan/PostProcessing: Make file-scope std::string instances const char arrays
Avoids performing avoidable file-scope heap allocations
2018-05-21 12:29:05 -04:00
Lioncash c4d27cc8ec PostProcessing: Make GetShader() return by constant reference
We don't need to create copies of the shader string when they can be
avoided.
2018-05-21 12:07:51 -04:00
Lioncash 9d1b6cdea4 PostProcessing: Make member functions const qualified where applicable
These functions don't modify internal class state
2018-05-21 11:59:08 -04:00
Lioncash 8ce6f9bae5 PostProcessing: Replace typedef with a using alias 2018-05-21 11:57:15 -04:00
Lioncash f9c20571ab PostProcessing: Default constructor and destructor of PostProcessingShaderConfiguration
Also ensure that all members of the class are initialized on
construction as well. Previously the bool indicating if options are
dirty wouldn't be initialized, which could be read uninitialized if an
instance was constructed and then IsDirty() is called.
2018-05-21 11:54:56 -04:00
spycrab 42a1545f8e
Merge pull request #6924 from flatulation/shaderconfig
Qt: Reimplement post-processing shader configuration window
2018-05-21 17:22:41 +02:00
flatulation 93e0a2e52a Qt: Implement post-processing shader configuration window 2018-05-21 16:09:04 +01:00
Léo Lam cb850707c0 WiiSave: Fix typo 2018-05-21 16:41:15 +02:00
spycrab 9eb3bce520 Qt/MappingWindow: Make sure widgets don't need scrolling by default 2018-05-21 15:47:09 +02:00
Léo Lam af97df74e1
Merge pull request #6895 from leoetlino/hardcoded
IOSC: Fix hardcoded MS and CA IDs
2018-05-21 15:27:31 +02:00
Léo Lam 12e2012465 IOSC: Fix hardcoded MS and CA IDs
The values that are used for the MS and CA IDs come from the SEEPROM.
Also, the default CA and MS values are respectively 2 and 3,
not 1 and 2.
2018-05-21 15:11:25 +02:00
Lioncash 3edf0f1cf9 Interpreter: Move common exception functions to ExceptionUtils.h
Keeps all of the interpreter-specific exception handling functions
together in a reusable way across translation units, similar to
FPUtils.h for reusable floating-point functions.
2018-05-20 18:25:32 -04:00
Léo Lam 3d8e63fffd
Merge pull request #6914 from leoetlino/verifysign
ES: Implement VerifySign (last remaining unimplemented, actually used ioctlv)
2018-05-20 23:11:49 +02:00
Léo Lam 79edd57b96
Merge pull request #6920 from lioncash/priv
Interpreter_SystemRegisters: Check processor privilege level in mfspr and mtspr
2018-05-20 23:08:59 +02:00
Léo Lam 73fde6d84d
Merge pull request #6923 from lioncash/prototype
DolphinQt2/GeckoCodeWidget: Remove unimplemented OnDelete() prototype
2018-05-20 23:02:26 +02:00
Lioncash 437c954b60 DolphinQt2/GeckoCodeWidget: Remove unimplemented OnDelete() prototype
Tidies up the interface a little (and prevents a linker error from
occurring in the future, should it ever have been called).
2018-05-20 16:42:13 -04:00
Markus Wick c145d7ee63
Merge pull request #6922 from lioncash/interface
VideoBackendBase: Include parameter names in member function declarations
2018-05-20 22:39:31 +02:00
Lioncash ba94ffd51d VideoBackendBase: Include parameter names in member function declarations
Given this is a base class, we should clearly state what the parameters
to the functions in its exposed interface actually mean or represent.
This avoids needing to hunt for the definition of the functions in cpp
files.

While we're at it, normalize said parameter names so they follow our
naming guidelines.
2018-05-20 16:27:16 -04:00
Markus Wick 7563c82162
Merge pull request #6921 from lioncash/mmu
MMU: Avoid sign conversions in EFB_Read and EFB_Write
2018-05-20 22:18:40 +02:00
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