Commit Graph

24077 Commits

Author SHA1 Message Date
spycrab 17795a615b
Merge pull request #6838 from spycrab/qt_map_save
Qt/ControllersWindow: Fix changing devices while emulation is running
2018-05-13 18:17:13 +02:00
Léo Lam 80b3d7ccb8 WiiSave: Allow users to specify export directory
Export and ExportAll now open a directory picker (that defaults to the
previous default directory, i.e. the Dolphin user dir).

Also removes the need to return the path in the export functions since
the user knows which path they chose.
2018-05-13 17:42:56 +02:00
Léo Lam 87e5cd73dc WiiSave: Use std::array instead of C arrays
Makes copying, comparing more readable
2018-05-13 17:42:55 +02:00
Léo Lam a93d816c28 WiiSave: Move dialogs to UI code
This moves the result dialogs to DolphinQt2, since WiiSave should not
really be responsible for interacting with the user as a simple
Wii save importing/exporting class.

This also fixes Wii save import/export showing result dialogs twice,
once from WiiSave, and another time from DolphinQt2.
2018-05-13 17:42:55 +02:00
Léo Lam 41c4486c65 WiiSave: Clean up constructors
Move the import/export operation into separate functions, as it doesn't
really make sense for the constructor to do *everything*, including
printing success/failure message boxes.

The existing constructor was split into two: one that takes a path,
and another taking a title ID. This makes it more obvious what is
actually done when a path/TID is passed and also clarifies what
parameters should be passed. (No more magic 0 or "" value.)
2018-05-13 17:42:55 +02:00
Léo Lam fbf36b85d2 WiiSave: Remove unused Extract() member function 2018-05-13 17:42:55 +02:00
Léo Lam 956df21bd7 WiiSave: Use Common::BigEndianValue to simplify parsing
Gets rid of the need to manually cast when reading/writing, which is
error prone and repetitive.
2018-05-13 17:42:55 +02:00
Léo Lam fb39efbf90 WiiSave: Fix struct member naming 2018-05-13 17:42:55 +02:00
Léo Lam bae8bcde0a WiiSave: Do not expose internal constants 2018-05-13 17:42:55 +02:00
Léo Lam 00bc1f28f2 Rename CWiiSaveCrypted to WiiSave 2018-05-13 17:42:55 +02:00
spycrab fa77e09239 Qt: Fix render widget not being on top when using -n / -e 2018-05-13 17:32:29 +02:00
Léo Lam 5564150dd6
Merge pull request #6833 from leoetlino/dns
Use resolver to get default DNS nameserver
2018-05-13 15:49:50 +02:00
Dexter Gerig 73bc20ead4 Use resolver to get default DNS nameserver 2018-05-13 14:05:23 +02:00
spycrab 2ca75ae05a Qt/ControllersWindow: Fix changing devices while emulation is running 2018-05-13 14:04:39 +02:00
Léo Lam 99dff10d43
Merge pull request #6837 from spycrab/qt_position
Qt/RenderWidget: Save position and size using QSettings
2018-05-13 11:47:04 +02:00
Markus Wick c267262a66
Merge pull request #6786 from stenzek/crop-negative-y
RenderBase: Ensure the draw size does not exceed the window size
2018-05-13 08:55:59 +02:00
spycrab 760a0be28a Qt/RenderWidget: Save position and size using QSettings 2018-05-13 01:27:56 +02:00
Léo Lam 66c1b909c2
Merge pull request #6765 from aldelaro5/Qt-debugger-fixes
Qt/debugger: fix a bunch of things
2018-05-13 01:20:11 +02:00
Léo Lam ad5a69be79
Merge pull request #6826 from spycrab/qt_netplay2
Qt/NetPlayDialog: Improve player list
2018-05-13 01:17:51 +02:00
aldelaro5 5c688b2d2b
Qt/debugger: Don't update the symbols list unnecessarily
It only needs to be updated when we changes the symbols, not every time the code widget updates and it does take a while to update them so this fixes some delay when updating the code window.
2018-05-12 19:15:26 -04:00
aldelaro5 be6b4edb0c
Qt/debugger: only resize the columns of the code view once per update
Putting the columns to resizeToContents causes way too much resizes per updates which can cause severe lags and even crashes.  This only does one resize at the end of the columns.
2018-05-12 19:15:26 -04:00
aldelaro5 daf8df951c
Qt/Debugger: Update the register view properly on pause and step 2018-05-12 19:15:24 -04:00
aldelaro5 7388774f10
Qt/debugger: fix some possible crashes and inconsistencies in the breakpoint widget
One, which was also possible in Wx is to add an mbp after the core stopped which shouldn't be possible as it needs to add the memcheck on the core thread which wouldn't be running.  The other fix is Qt specific where it doesn't clear the breakpoints on stop.
2018-05-12 19:06:18 -04:00
aldelaro5 09792fde70
Qt/debugger: recenter the code widget when selecting a breakpoint 2018-05-12 19:04:37 -04:00
aldelaro5 53803c1fca
Qt/debugger: fix minor issues in the breakpointWidget
The items were editable while you cannot edit the breakpoints at the moment and the last breakpoint deleted would not cause the row count to change to 0.
2018-05-12 19:04:37 -04:00
aldelaro5 238c801711
Qt/debugger: properly updates when we break
The Host_UpdateDisasmDialog was unimplemented in Qt which is required to get updates when we break.  Additionally, this updates the debugger toolbar.
2018-05-12 19:04:30 -04:00
Mat M a4de3922e9
Merge pull request #6832 from leoetlino/wiiroot
WiiRoot: Copy initial NAND files with proper metadata
2018-05-12 18:25:21 -04:00
Lioncash 411fc01262 DolReader/ElfReader: Remove unnecessary FileUtil.h includes
These can be replace with File.h, as the only file-related things
necessary is the declaration of IOFile (which resides in File.h).
2018-05-12 17:41:17 -04:00
Lioncash f7bc75ae6d Boot: Make BootExecutableReader's constructor take a std::vector by value
This allows avoiding two copies of the executable data being created in
the following scenario (using pseudocode):

some_function()
{
  std::vector<u8> data = ...;
  DolReader reader{data};

  ...
}

In this scenario, if we only use the data for passing it to DolReader,
then we have to perform a copy, as the constructor takes the std::vector
as a constant reference -- you cannot move from a constant reference,
and so we copy data into the DolReader, and perform another copy in the
constructor itself when assigning the data to the m_bytes member
variable. However, we can do better.

Now, the following is allowable as well:

some_function()
{
  std::vector<u8> data = ...;
  DolReader reader{std::move(data)};

  ...
}

and now we perform no copy at any point in the reader's construction, as
we just std::move the data all the way through to m_bytes.

In the case where we *do* want to keep the executable data around after
constructing the reader, then we can just pass the vector without
std::move-ing it, and we only perform a copy once (as we'll std::move
said copy into m_bytes). Therefore, we get a more flexible interface
resource-wise out of it.
2018-05-12 17:40:34 -04:00
Léo Lam 48fa835bd3 WiiRoot: Copy initial NAND files with proper metadata 2018-05-12 22:54:34 +02:00
Léo Lam f91b729b61
Merge pull request #6825 from leoetlino/onion-types
Config: Fix implicit conversions/enum config types
2018-05-12 21:59:43 +02:00
Léo Lam e1169ef9ee
Merge pull request #6824 from aldelaro5/custom-rtc-no-bias
RTC: Write 0 to the counter bias if we are on custom RTC
2018-05-12 21:59:13 +02:00
aldelaro5 70ca98c8e7
Qt/debugger: change how the selected line in the code widget looks
Not only it colors the entire row instead of just the address, but if the pc is the selected row, the pc color will overwrite the selection, this is done via a stylesheet.
2018-05-12 15:47:16 -04:00
aldelaro5 9a2dd470a0
Qt/debugger: change some colors logic in the codeWidget
This commit makes the colors hardcoded except when there is no symbols loaded, in which case, it uses the theme colors, except for the PC which is hardcoded to black on green.  This makes a compromise between making use of the corespoinding theme color and the text being nicely readable on all themes.
2018-05-12 15:47:16 -04:00
aldelaro5 9bacb3cb26
Qt/RegisterView: fix minor aesthetic issues
This aligns the values to the right since It looks odd to be aligned to the left with any format other than hexadecimal.  It also sets the font tot he debugger font and disallow selection as a previous commit made the selection pointless since it now relies on the current item.
2018-05-12 15:47:16 -04:00
aldelaro5 8c23335be3
Qt/RegisterView: fix the context menu not working correctly
It seemed impossible to SELECT an item, however, when right clicking, the CURRENT item is set to the appropriate cell, this commit makes the view use thta cell instead of the first selected one.
2018-05-12 15:47:16 -04:00
aldelaro5 f9a6f97dca
Make the dock widgets (logger and debugger) be on the left by default
Like they were in Wx.
2018-05-12 15:47:16 -04:00
spycrab b094cda929 Core/GCMemcard: Fix checksums after modifying the memcard 2018-05-12 21:39:13 +02:00
spycrab 229c92d0bf Qt/GCMemcardManager: Properly perform actions and do error checking 2018-05-12 21:38:30 +02:00
spycrab 8b3358e208 Qt/GCMemcardManager: Fix broken export message 2018-05-12 20:35:16 +02:00
Lioncash 0ef7dca0d4 SettingsHandler: Remove redundant type qualifier in SetBytes()
Given the qualifier isn't used for the constructor taking a buffer, remove it here
to be consistent.
2018-05-12 13:53:42 -04:00
Lioncash 1da2091801 SettingsHandler: Remove unnecessary includes
All Windows-specific includes aren't needed here anymore.
2018-05-12 13:53:37 -04:00
Lioncash 5677e5d74a SettingsHandler: Namespace code under the Common namespace
Adds another file in Common to the Common namespace.
2018-05-12 13:39:37 -04:00
spycrab bf0ee9f702
Merge pull request #6822 from spycrab/qt_fix_defaults
Qt: Fix mapping defaults
2018-05-12 19:22:53 +02:00
spycrab d8a95834f3 Qt/NetPlayDialog: Improve player list 2018-05-12 18:25:38 +02:00
Léo Lam 6763a3fce1 Config: Add support for enums
This makes it possible to use enums as the config type.
Default values are now clearer and there's no need for casts
when calling Config::Get/Set anymore.

In order to add support for enums, the common code was updated to
handle enums by using the underlying type when loading/saving settings.

A copy constructor is also provided for conversions from
`ConfigInfo<Enum>` to `ConfigInfo<underlying_type<Enum>>`
so that enum settings can still easily work with code that doesn't care
about the actual enum values (like Graphics{Choice,Radio} in DolphinQt2
which only treat the setting as an integer).
2018-05-12 18:10:26 +02:00
Markus Wick be0f4f7fb2
Merge pull request #6828 from ScoreUnder/syntaxfix2
Fix syntax error in GLSL_GS
2018-05-12 17:37:33 +02:00
Léo Lam 94dc746351 Copy Wii NAND data to user NAND in WiiRoot
Dolphin doesn't use any of the WC24 files, so this can be done when
actually starting emulation in WiiRoot. The benefit of moving the
copy is that we don't need to handle temporary NANDs in a special way.
2018-05-12 17:08:50 +02:00
Léo Lam 5f567b38fe WiiRoot: Move content manipulation to separate functions
{Initialize,Shutdown}WiiRoot should only be responsible for setting the
SESSION_WII_ROOT or managing the temporary NAND directory.

Move all the content manipulation out of these functions to ensure
separation of concerns and call them after/before WiiRoot init/shutdown
to make sure they operate on the correct root.
2018-05-12 17:06:31 +02:00
Stenzek a446b096cb Jit64: Invalidate cached constant values w/o host register on flush
If we don't flush the values, they persist in the register cache,
potentially resulting in the values being out of sync with PPCSTATE.

This was causing random crashes in games, mainly booting, when certain
JIT instructions were disabled, or forced to fall back to interpreter.
2018-05-13 00:50:31 +10:00
Score_Under 4e7caa2818 Fix syntax error in GLSL_GS 2018-05-12 15:42:18 +01:00
Score_Under 70b00f2b2d Remove stray quote sign
This allows GLSL_EFB_POKE_GEOMETRY_GS to compile again.
2018-05-12 15:21:29 +01:00
Léo Lam 7dca7c237e Config: Fix template deduction for implicit conversions
This excludes the second argument from template deduction.

Otherwise, it is required to manually cast the second argument to
the ConfigInfo type (because implicit conversions won't work).

e.g. to set the value for a ConfigInfo<std::string> from a string
literal, you'd need a ugly `std::string("yourstring")`.
2018-05-12 14:30:18 +02:00
Léo Lam e78235943e
Merge pull request #6823 from spycrab/qt_reset_hotkey
Qt: Implement "Reset" hotkey
2018-05-12 13:12:24 +02:00
Léo Lam a712cfe339
Merge pull request #6624 from spycrab/qt_dbg_jit
Qt/Debugger: Implement "JIT" widget
2018-05-12 13:02:47 +02:00
aldelaro5 4b2906c569
RTC: Write 0 tot he counter bias if we are on custom RTC
This can be considered a hack, but it essentially neuter the bias applied on boot for both console on the RTC.  This avoids having the time on boot be changes significantly while the user would want a specific RTC and it also avoids possible underflow of the RTC if it is near the epoch.
2018-05-12 01:37:48 -04:00
spycrab 226b6888d6 Qt: Implement "Reset" hotkey 2018-05-12 03:56:10 +02:00
spycrab c118af73c2 Qt: Fix mapping defaults 2018-05-12 01:31:42 +02:00
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
Anthony f0c5b76186
Merge pull request #6677 from 404-Name-Not-Found/master
Fix test rumble feature in controller configuration
2018-05-11 12:51:52 -07:00
Anthony 968779e623
Merge pull request #6814 from lioncash/sd
SDCardUtil: Minor changes
2018-05-11 12:39:17 -07:00
Anthony ee1a175205
Merge pull request #6816 from leoetlino/kd
IOS/KD: Migrate to new filesystem interface
2018-05-11 12:37:10 -07: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
spycrab 0abce1419b Qt/NetPlayDialog: Fix broken IP label 2018-05-11 21:22:57 +02:00
spycrab 76f6c7523f
Merge pull request #6810 from spycrab/qt_fix_hotkey_conf
Qt/MappingButton: Fix occasionally broken indicator
2018-05-11 21:05:43 +02:00
spycrab 49d2f6f15a Qt/HotkeyScheduler: Use onion config 2018-05-11 20:47:30 +02:00
Léo Lam 1b070c4b6f IOS/KD: Migrate to new filesystem interface 2018-05-11 20:30:22 +02:00
Jonathan Hamilton 791c8401c1 Update mpark::variant implementation to 1.3.0
Fixes building on the latest clang shipping on MacOS
(Apple LLVM version 9.1.0 (clang-902.0.39.1))
2018-05-11 11:15:06 -07: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
spycrab 16e2ac9257 VideoCommon/RenderBase: Refactor OSD messages 2018-05-11 18:24:08 +02:00
spycrab 1dfcffcce2 Qt/Debugger: Implement "JIT" widget 2018-05-11 18:10:35 +02:00
spycrab 082573bd6b
Merge pull request #6808 from spycrab/qt_hotkey_osd
Qt/HotkeyScheduler: Show OSD information
2018-05-11 15:51:37 +02: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
spycrab 66190ae4d6 Qt/HotkeyScheduler: Show OSD information 2018-05-11 12:49:20 +02:00
spycrab 242fadc76f Qt/MappingButton: Fix occasionally broken indicator 2018-05-11 12:37:48 +02:00
Léo Lam e1866d35e5
Merge pull request #6807 from leoetlino/boot
Boot: Migrate to new filesystem interface
2018-05-11 10:41:00 +02:00
Léo Lam 5071973a51
Merge pull request #6805 from spycrab/qt_netplay
Qt/NetPlayDialog: Multiple improvements
2018-05-11 10:39:53 +02:00
Léo Lam d1bb5249ec
Merge pull request #6801 from stenzek/copy-filter-typo
D3D/Vulkan: Fix incorrect clamp in EFB RAM copy
2018-05-11 10:36:47 +02:00
Léo Lam 066e4ea463
Merge pull request #6809 from lioncash/macro
CommonFuncs: Convert ROUND_UP_POW2 macro to a function
2018-05-11 10:16:29 +02: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
Léo Lam a977a56434 Boot: Migrate to new filesystem interface 2018-05-10 22:34:03 +02:00
Léo Lam e6c489f1d4 ES: Move title dir creation logic into separate function
Since we're going to need it in the boot code, move it out to a
separate, easily reusable function. This also makes the InitImport
logic clearer.
2018-05-10 22:33:49 +02:00
Léo Lam 722d31124c SettingsHandler: Fix const correctness 2018-05-10 21:35:27 +02:00
Léo Lam 09d2afa91f SettingsHandler: Migrate to new filesystem interface
Change SettingsHandler to take a buffer instead of assuming that the
setting file to read is always on the host filesystem for more
flexibility and make it possible to use the new filesystem interface.
2018-05-10 21:35:27 +02:00
spycrab 3cca051850
Merge pull request #6806 from spycrab/qt_iowindow_crash
Qt/IOWindow: Fix crash
2018-05-10 21:18:48 +02:00
spycrab 146979f67e Qt/IOWindow: Fix crash 2018-05-10 21:12:19 +02:00
spycrab 09449e2bca Qt/NetPlayDialog: Use QToolButton instead of a QComboBox 2018-05-10 20:51:12 +02:00
spycrab 26bee93943 Qt/NetPlayDialog: Show more friendly interface names 2018-05-10 20:51:12 +02:00
spycrab 0141ce9305 Qt/NetPlayDialog: Restore window geometry 2018-05-10 20:51:12 +02:00
spycrab 0ee7bddd4f Qt/NetPlayDialog: Add splitter 2018-05-10 20:51:12 +02:00
spycrab 6ea2b2e7e5 Qt/NetPlayDialog: Fix duplicate messages 2018-05-10 20:51:12 +02:00
spycrab 7550389c72 Qt/NetPlayDialog: Escape HTML in chat 2018-05-10 19:19:09 +02:00
spycrab 893c5e694e Qt/NetPlayDialog: Use more readable colors 2018-05-10 19:14:19 +02:00
Léo Lam d8e1d2d573
Merge pull request #6803 from lioncash/tidy
FloatUtils: Remove IntDouble and IntFloat
2018-05-10 19:04:49 +02:00