Commit Graph

19186 Commits

Author SHA1 Message Date
Lioncash ffaa9a3bea SW NativeVertexFormat: Utilize std::array where applicable
Gets rid of some hardcoded looping bounds, and also simplifies code in
some places, sometimes allowing for removal of a loop altogether.
2017-08-22 22:39:28 -04:00
Léo Lam ef888ef168 WFS: Fix logging types. 2017-08-22 23:41:38 +02:00
Léo Lam 344228ec10 WFSI: Implement noop ioctl 0x8f. 2017-08-22 23:41:38 +02:00
Léo Lam 70cb0cb126 WFSI: Implement GET_VERSION.
This ioctl writes a constant value to the output buffer.
2017-08-22 23:41:38 +02:00
Léo Lam 8a5d24ab4b WFSI: Implement IOCTL_WFSI_IMPORT_TITLE_CANCEL.
It gets called for cleaning up whenever something goes wrong, and
also when cancelling an update.
2017-08-22 23:41:38 +02:00
Léo Lam 5cc18bf116 WFSI: Add missing functionality to ImportTitleInit. 2017-08-22 23:41:38 +02:00
Léo Lam f0aeeeaef6 WFSI: Implement internal Cancel{Title,Patch}Import. 2017-08-22 23:41:38 +02:00
Léo Lam c1817b2c6d WFSI: Rename 2 ioctls to better reflect their purposes.
* IOCTL_WFSI_PREPARE_DEVICE -> IOCTL_WFSI_IMPORT_TITLE_INIT
  (equivalent of ES_ImportTitleInit, also the official name)

* IOCTL_WFSI_IMPORT_TITLE -> IOCTL_WFSI_IMPORT_TITLE_CANCEL
  (equivalent of ES_ImportTitleCancel)
2017-08-22 23:41:38 +02:00
Léo Lam 7423563386 WFSI: Fix the TMD size check. 2017-08-22 23:41:37 +02:00
Pierre Bourdon a641609857 WFSI: Implement patch install finalization. 2017-08-22 23:41:37 +02:00
Pierre Bourdon 76bbfbb511 WFSI: Adapt FINALIZE_TITLE_INSTALL for patch support. 2017-08-22 23:14:00 +02:00
Pierre Bourdon db24c94c6e WFSI: More work to support patching: split off current_tid/gid and import_tid/gid 2017-08-22 23:14:00 +02:00
Pierre Bourdon aa445806a5 WFSI: Rename a few ioctl handlers. 2017-08-22 23:14:00 +02:00
Pierre Bourdon 5ed3a3f12d WFSI: Get the patch info from PREPARE_DEVICE. 2017-08-22 23:14:00 +02:00
Léo Lam e004709b69 WFSI: Implement CHECK_HAS_SPACE. 2017-08-22 23:13:59 +02:00
Léo Lam 15f25783a8 WFS: Implement RENAME. 2017-08-22 23:13:58 +02:00
Pierre Bourdon 2a8d9a53b7 WFS: Share error codes with WFSI. 2017-08-22 23:13:14 +02:00
Pierre Bourdon e6e00f6c8d WFSI: Implement install finalization. 2017-08-22 23:13:14 +02:00
Pierre Bourdon 88580b8d5f WFSI: Fix install directories creation. 2017-08-22 23:13:14 +02:00
Pierre Bourdon e79392cb8e WFS: Implement WRITE and WRITE_ABSOLUTE. 2017-08-22 23:13:14 +02:00
Pierre Bourdon dca70844a6 WFS: Implement CREATE_OPEN along with OPEN. 2017-08-22 23:13:14 +02:00
Pierre Bourdon ef3232cd74 WFSI: Create meta/work/save dirs when applying title profile. 2017-08-22 23:13:14 +02:00
Pierre Bourdon c0b3a68441 WFS: Implement MKDIR. 2017-08-22 23:13:13 +02:00
Pierre Bourdon e45bb77512 WFS: Add a basic GET_ATTRIBUTES implementation. 2017-08-22 23:13:13 +02:00
Pierre Bourdon 56aa3cc558 WFSI: Implement both GET_TMD ioctls. 2017-08-22 23:13:13 +02:00
Pierre Bourdon c81636d9a8 WFSI: Stub out SET_FST_BUFFER. 2017-08-22 23:13:13 +02:00
Pierre Bourdon 92387cb052 WFS: Implement CLOSE_2 as a clone of CLOSE. 2017-08-22 23:13:13 +02:00
Leo Lam c12418788a Merge pull request #5963 from JMC47/mtmsrfix
Fix JIT64 mtmsr issue after PIE support.
2017-08-22 22:12:13 +02:00
Leo Lam 788af71f30 Merge pull request #5949 from ligfx/gamelistmodelupdategame
GameListModel: make UpdateGame update existing files as well
2017-08-22 21:39:29 +02:00
Nick 3d01eeef00 Fix OSX hotkey defaults 2017-08-22 21:31:19 +02:00
Leo Lam 6e1cdfadc9 Merge pull request #5955 from leoetlino/copy
FileUtil: Simplify File::Copy on non-Windows platforms
2017-08-22 21:29:46 +02:00
Leo Lam b3a8209821 Merge pull request #5960 from ligfx/gamefiledontstorefilepathparts
GameFile: don't store file path parts
2017-08-22 21:29:30 +02:00
Leo Lam 232b81999a Merge pull request #5961 from ligfx/gamefilebanner
GameFile: handle missing banners in UI instead
2017-08-22 21:26:38 +02:00
Michael M d00ecb7231 GameFile: remove unused m_company 2017-08-22 12:18:49 -07:00
Markus Wick 3094d6531d Merge pull request #5962 from degasus/arm-fixes
JitArm64: Fix rlwinmx.
2017-08-22 20:27:45 +02:00
Nick 3cddb62aea keyboard fixes v2 2017-08-22 12:26:44 -04:00
JosJuice 09f3f9b41a Remove NonCopyable
The class NonCopyable is, like the name says, supposed to disallow
copying. But should it allow moving?

For a long time, NonCopyable used to not allow moving. (It declared
a deleted copy constructor and assigment operator without declaring
a move constructor and assignment operator, making the compiler
implicitly delete the move constructor and assignment operator.)
That's fine if the classes that inherit from NonCopyable don't need
to be movable or if writing the move constructor and assignment
operator by hand is fine, but that's not the case for all classes,
as I discovered when I was working on the DirectoryBlob PR.

Because of that, I decided to make NonCopyable movable in c7602cc,
allowing me to use NonCopyable in DirectoryBlob.h. That was however
an unfortunate decision, because some of the classes that inherit
from NonCopyable have incorrect behavior when moved by default-
generated move constructors and assignment operators, and do not
explicitly delete the move constructors and assignment operators,
relying on NonCopyable being non-movable.

So what can we do about this? There are four solutions that I can
think of:

1. Make NonCopyable non-movable and tell DirectoryBlob to suck it.

2. Keep allowing moving NonCopyable, and expect that classes that
   don't support moving will delete the move constructor and
   assignment operator manually. Not only is this inconsistent
   (having classes disallow copying one way and disallow moving
   another way), but deleting the move constructor and assignment
   operator manually is too easy to forget compared to how tricky
   the resulting problems are.

3. Have one "MovableNonCopyable" and one "NonMovableNonCopyable".
   It works, but it feels rather silly...

4. Don't have a NonCopyable class at all. Considering that deleting
   the copy constructor and assignment operator only takes two lines
   of code, I don't see much of a reason to keep NonCopyable. I
   suppose that there was more of a point in having NonCopyable back
   in the pre-C++11 days, when it wasn't possible to use "= delete".

I decided to go with the fourth one (like the commit title says).
The implementation of the commit is fairly straight-forward, though
I would like to point out that I skipped adding "= delete" lines
for classes whose only reason for being uncopyable is that they
contain uncopyable classes like File::IOFile and std::unique_ptr,
because the compiler makes such classes uncopyable automatically.
2017-08-22 16:40:34 +02:00
JosJuice 6e6864fcbf Revert "DirectoryBlob: Use NonCopyable"
This reverts commit a7a8e467b6.
2017-08-22 16:35:37 +02:00
JosJuice 51a7150990 Fix DolphinWX build issue
I'm not sure why this hasn't popped up as an error on the buildbots,
but the build fails on my new install of VS2017. The error is C2445:
result type of conditional expression is ambiguous: types 'wxString'
and 'const char [1]' can be converted to multiple common types
2017-08-22 13:35:20 +02:00
JMC47 f7b133b39a Fix JIT64 mtmsr - PIE support caused the codesize
to get bigger, breaking an optimization.  This forces the emitter to use a
32bit pointer instead of an 8bit one, fixing the issue at the expense of
efficiency.
2017-08-22 06:44:38 -04:00
Michael M 5f30ebed23 GameFile: don't store file path parts 2017-08-21 23:55:45 -07:00
Michael M e88b5f4254 GameFile: add missing include for QFileInfo 2017-08-21 23:55:45 -07:00
degasus b00c60618b JitArm64: Fix rlwinmx.
Seems like I was wrong that ANDI2R doesn't require a temporary register here.
There is *one* case when the mask won't fit in the ARM AND instruction:
mask = 0xFFFFFFFF
But let's just use MOV instead of AND here for this case...
2017-08-22 08:47:43 +02:00
Michael M 061da1300a GameFile: handle missing banners in UI instead
Currently, GameFile returns a generic banner if the file didn't have one
available (either because the file format doesn't support it, or because
it's a Wii file without an associated save).

It makes more sense to handle the lack of banner in the UI layer. The
game list will use the generic missing banner explicitly (no change from before), and the game info window now omits the banner display entirely if the file didn't have one (since it's not useful to display/allow the user to save the "missing banner" banner).
2017-08-21 18:00:04 -07:00
N.E.C ebda7db437 VideoCommon: Fix bug #10464 (RA4 format not handled in TextureDecoder) 2017-08-21 10:22:15 -07:00
Léo Lam 6f923ffae4 FileUtil: Simplify File::Copy on non-Windows platforms
The old way of doing it is error prone and unnecessarily complex.
2017-08-21 18:31:46 +02:00
Pierre Bourdon 873521ce0b Revert "Try to fix File::Copy with non-1024-byte aligned sizes" 2017-08-21 18:29:58 +02:00
Jules Blok d0fc223fe1 Merge pull request #5956 from Armada651/fix-remove-clr-usage
RenderState: Fix incorrect blending factors when removing the color usage.
2017-08-21 17:06:44 +02:00
Markus Wick 8280d15357 Merge pull request #5939 from JonnyH/WIP/broken-fstream-copy
Try to fix File::Copy with non-1024-byte aligned sizes
2017-08-21 17:01:16 +02:00
Jules Blok 390f3f13ba RenderState: Fix incorrect blending factors when removing the color usage. 2017-08-21 16:33:10 +02:00
Leo Lam 92b375b07a Merge pull request #5952 from lioncash/futureproofing
CommonTypes: Qualify standard integral types in typedefs with std::
2017-08-21 11:07:34 +02:00
Nick 0df4f7db4f Depreciate old OSX Keyboard and Mouse 2017-08-21 01:44:03 -04:00
Mat M 5aed9a67ef Merge pull request #5904 from leoetlino/indirect-include
PowerPC: Fix indirect includes for GDBStub
2017-08-20 19:59:53 -04:00
Lioncash 7a5577498b CommonTypes: Qualify standard integral types in typedefs with std::
Given a relatively recent proposal (P0657R0), which calls for deprecation of putting stuff into the global namespace when using C++ headers, this just futureproofs our code a little more.

Technically this is what we should have been doing initially, since an
implementation is allowed to not provide these types in the global
namespace and still be compliant.
2017-08-20 19:34:52 -04:00
Leo Lam 08004d409e Merge pull request #5937 from ligfx/miniupnpccmake
CMake: use miniupnpc target instead of global vars
2017-08-20 23:44:06 +02:00
Leo Lam aab4cced11 Merge pull request #5938 from sepalani/err-msg
CommonFuncs: LastStrerrorString added
2017-08-20 23:41:47 +02:00
Michael M 8c13e0230c GameTracker: use WorkQueueThread 2017-08-20 14:40:56 -07:00
Michael M de9378bf63 Common: add WorkQueueThread 2017-08-20 14:40:56 -07:00
Leo Lam 165a995cc4 Merge pull request #5950 from ligfx/gamelistmodelfilenamefallback
GameListModel: fallback to file name if long name is empty
2017-08-20 23:29:27 +02:00
Michael M 1a59ea3adb GameFile: don't assign English long name for ELF/DOLs 2017-08-20 13:50:24 -07:00
Michael M f3ab974bc6 GameListModel: fallback to file name if long name is empty 2017-08-20 13:50:24 -07:00
Michael M 6bfb280cec GameListModel: make UpdateGame take a const ref 2017-08-20 13:46:49 -07:00
Michael M f724a06108 GameListModel: make UpdateGame update existing files as well 2017-08-20 13:46:49 -07:00
Jules Blok f4f6782ae6 D3DBase: Only use a stereo swapchain if quad-buffering is enabled. 2017-08-20 18:25:49 +02:00
Stenzek a7f217c3f4 UberShaderPixel: Fix sampling of EFB copies in stereo modes 2017-08-20 18:08:24 +10:00
Michael M 623026f420 Connect to Settings::PathAdded/Removed directly in GameListModel
It no longer makes sense to connect these signals in GameList, since
GameListModel is now owned by Settings.
2017-08-19 15:59:40 -07:00
Michael M 7d9ad88bc5 Add initial paths to GameTracker after construction
It's strange to see GameTracker add its own initial paths in
construction, because you might expect a race condition where the
GameLoaded signal is emitted before it gets connected to in
GameListModel.

In fact, this doesn't happen, but only because of how it abuses the Qt
signals mechanism to load files asynchronously: GameLoader emits a
GameLoaded signal which gets forwarded to the GameTracker::GameLoaded
signal _after_ control returns to the event loop, at which point
GameListModel has connected.

This commit moves the logic of adding initial paths out of GameTracker
to a point after the signals are connected, which is more obvious and
doesn't rely on how GameTracker implements concurrency.
2017-08-19 15:59:40 -07:00
Sepalani 4e5fe6366a CommonFuncs: LastStrerrorString added 2017-08-18 20:08:50 +01:00
Michael M abf55be70d RunOnObject: add missing QThread include 2017-08-17 16:41:35 -07:00
Jonathan Hamilton 643b3ba9f8 Try to fix File::Copy with non-1024-byte aligned sizes
ifstream::read() sets the failbit if trying to read over the end, which
means that (!input) would be hit for the 'last' block if it wasn't
exactly BSIZE (1024) bytes.
2017-08-17 14:08:56 -07:00
Michael M fc306faad8 CMake: use miniupnpc target instead of global vars 2017-08-17 13:15:02 -07:00
Léo Lam 4b4e488189 WFS: Use a separate log type for WFS related logs
Makes it easier to turn off general IOS messages that can be
distracting (e.g. /dev/net/ssl being opened hundreds of time...)
without losing the ability to view WFS messages.
2017-08-16 22:27:29 +02:00
Leo Lam 918b0375e4 Merge pull request #5742 from ToadKing/fix-bad-controllers
Ignore capabilities reported by an XInput device
2017-08-17 03:42:02 +08:00
Leo Lam 799b01b6af Merge pull request #5751 from leoetlino/region
Config: Fall back to the system menu region
2017-08-17 03:40:19 +08:00
Leo Lam a53b01360c Merge pull request #5898 from ligfx/extractupnp
Common: extract UPnP namespace from NetPlayServer
2017-08-17 03:11:41 +08:00
Leo Lam 70931f460d Merge pull request #5929 from JonnyH/PR/fix-oprofile-build-linked-as-needed
Fix OPROFILE linux build with -Wl,--as-needed
2017-08-17 03:06:59 +08:00
Léo Lam d2452b8ecf Qt: Fix old usage of GetSelectedGame
Waited too long before merging a PR, which managed to break the build
because GetSelectedGame was changed without introducing any conflict :(
2017-08-16 13:21:14 +02:00
Leo Lam 3748384008 Merge pull request #5746 from leoetlino/disc-updates
Add support for installing disc updates from the game list
2017-08-16 19:02:42 +08:00
Sepalani 93b5a5369b SymbolDB: Blank stripped symbol name fixed 2017-08-16 04:07:19 +01:00
Pierre Bourdon 9b79e0ac72 Merge pull request #5930 from delroth/wfs
Fix Dragon Quest X offline mode on Dolphin
2017-08-15 22:40:56 +02:00
Pierre Bourdon 40c70469e5 WFS: Implement GET_HOMEDIR. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 1e75455ef5 WFS: Return a proper ENOENT code on failed OPEN. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 397f5e54e0 WFS: Implement READ_ABSOLUTE (merged with READ implementation). 2017-08-15 22:35:45 +02:00
Pierre Bourdon 49a4712f33 WFS: Implemented the GET_SIZE ioctl. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 2f5ddf12a9 WFS: Normalize paths before opening. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 425cf18bf7 USB: Add a stub HIDv5 implementation and use it for IOS59. 2017-08-15 22:35:45 +02:00
Pierre Bourdon f810f1edb2 WFS/NAND: Better handle GID. 2017-08-15 22:29:10 +02:00
Pierre Bourdon f8e5f4296f WFS: Document WFSSRV ioctl 0x0c as being mkdir. 2017-08-15 22:29:10 +02:00
Pierre Bourdon c14ab0dd53 WFS: Implement current/home path expansion. 2017-08-15 22:29:10 +02:00
Jonathan Hamilton 2a66b88d01 Fix OPROFILE linux build with -Wl,--as-needed
The opagent library was (incorrectly) marked as a dependency for "Core"
instead of "Common".

When linked with --as-needed, any symbols the linker can tell are not
used are discarded. As the link is done in command-line order, and the
Core library (and dependencies) are processed before Common, it would
link in Core, then opagent, but as at that point no opagent symbols are
used the whole opagent library would be discarded.

Moving the opagent library to be a dependency of Common fixes this, as
after the Common library is linked, there *are* opagent symbols used.
2017-08-14 14:38:44 -07:00
Jonathan Hamilton 5c213a5ad5 Qt frontend build fix for USE_UPNP=OFF
A couple of missing "#ifdef USE_UPNP" around
NetPlaySetupDialog::m_host_upnp
2017-08-14 13:31:55 -07:00
Anthony 6a272f22de Merge pull request #5478 from stenzek/vulkan-nvidia
Vulkan: Don't use vkCmdClearAttachments on NVIDIA with MSAA
2017-08-14 13:12:41 -07:00
Anthony a7bdd2ee1c Merge pull request #5868 from stenzek/d3d-require-new-compiler
D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
2017-08-14 09:55:31 -07:00
Leo Lam 5bfd00f4e6 Merge pull request #5926 from ligfx/lintallsource
Fix two small lint errors
2017-08-14 23:18:04 +08:00
Anthony fc9f9b6683 Merge pull request #5880 from stenzek/nv-ubershaders
Ubershader optimizations for NVIDIA
2017-08-14 08:17:10 -07:00
Michael M 1ade08c607 Fix two small lint errors 2017-08-13 19:06:10 -07:00
Michael M 8702ffccc3 UPnP: use value-initialization instead of std::memset 2017-08-13 18:50:53 -07:00
Michael M 0e51082bbb UPnP: move variable declaration to where it's used 2017-08-13 18:50:52 -07:00
Michael M 7ce9f1f984 UPnP: remove unneeded vector in InitUPnP() 2017-08-13 18:50:52 -07:00
Michael M b5d070b0cf NetPlayServer: handle port forwarding in constructor 2017-08-13 18:50:52 -07:00