Commit graph

19636 commits

Author SHA1 Message Date
Jules Blok
c97a799c5f Merge pull request #6016 from Armada651/allow-tearing
D3DBase: Support the "allow tearing" DXGI flags.
2017-09-06 13:22:23 +02:00
Jules Blok
e103a58d87 Merge pull request #6012 from stenzek/drop-nv-glsl
Vulkan: Drop VK_NV_glsl extension support
2017-09-06 13:19:47 +02:00
Stenzek
1073053df9 Merge pull request #6026 from stenzek/d3d-ubershader-logicop
ShaderGen: Output uint when logic op is enabled for D3D ubershaders
2017-09-06 18:33:47 +10:00
Stenzek
2e20cd0ffd Merge pull request #6025 from spxtr/present_queue
Vulkan: Use a separate queue for presenting.
2017-09-06 18:32:43 +10:00
iwubcode
1ccfccdcf0 D3D: Properly handle dual source blending 2017-09-05 23:51:31 -05:00
JosJuice
b96e4a2bce Merge pull request #5927 from spycrab/qt_gamelist_cache
Qt: Implement gamelist caching
2017-09-05 21:16:22 +02:00
spxtr
a5be5a3a76 Vulkan: Use a separate queue for presenting.
Before this change, we simply fail if the device does not expose one
queue family that supports both graphics and present. Currently this is
fine, since devices tend to lay out their queues in this way. NV, for
instance, tends to have one queue family for all graphics operations and
one more for transfer only. However, it's not a hard requirement, and it
is cheap to use a separate queue, so we might as well.
2017-09-05 12:00:09 -07:00
Stenzek
84f8ebd95f VideoBackends: Clear uid bits that are unused for the current backend
Currently, this is only the logic op bit, but this will be extended to
the framebuffer fetch/blend modes. In the future, when/if we move to
VideoCommon pipelines, this state will be part of the pipeline UID
anyway, and we can mask it out in the backend by using a two-level map,
so the shaders/programs are shared.
2017-09-05 23:49:42 +10:00
Stenzek
6d32cce2f5 ShaderGen: Output uint when logic op is enabled for D3D ubershaders 2017-09-05 23:49:42 +10:00
Jules Blok
347fd065df D3DBase: Support the "allow tearing" DXGI flags.
This makes sure our framerate is unlocked when we disable V-Sync.
2017-09-04 23:12:52 +02:00
spycrab
28799bbe79 CMake: Build DolphinQt2 by default 2017-09-04 22:28:48 +02:00
spycrab
a361a1deed Qt/SettingsWindow: Fix window not being detected as a dialog by some window managers 2017-09-04 19:50:24 +02:00
spycrab
4fdd4e2718 Qt: Support versions < 5.6 2017-09-04 10:40:47 +02:00
spycrab
f00456e6bf Qt/ControllersWindow: Use std::map instead of std::unordered_map 2017-09-04 08:58:52 +02:00
Anthony
ee6930a231 Merge pull request #6013 from stenzek/d3d-logic-op
D3D: Implement logic op support
2017-09-03 19:26:50 -07:00
Anthony
26e777d80b Merge pull request #5337 from stenzek/d3d-common-blending-state
D3D: Use blending state from VideoCommon
2017-09-03 19:25:46 -07:00
Stenzek
90051536bf D3D: Support logic op through integer render target view
This brings D3D to parity with OpenGL and Vulkan.
2017-09-04 10:07:36 +10:00
Léo Lam
3475ba8918 DSP: Fix missing masking for accelerator registers
Based on hardware tests, masking occurs for the accelerator registers.

This fixes Red Steel and Far Cry Vengeance, which rely on this behavior
when reading back the current playback position from the DSP.
2017-09-04 00:26:13 +02:00
Markus Wick
9e0df284aa Merge pull request #6018 from lioncash/const
Software/Tev: const correctness
2017-09-03 21:43:10 +02:00
Pierre Bourdon
5b6764a4fe Merge pull request #6015 from JosJuice/dvd-0-length
Fix handling of DVD commands that read 0 bytes
2017-09-03 21:04:25 +02:00
Markus Wick
745cde81e5 Merge pull request #6017 from lioncash/d3d-texture
D3DTexture: Remove unused class member
2017-09-03 21:03:36 +02:00
Lioncash
baee3a9c74 Software/Tev: const correctness 2017-09-03 14:15:21 -04:00
Mat M
edf4bfaf5f Merge pull request #5989 from lioncash/constantmgr
ConstantManager: Use std::array where applicable
2017-09-03 13:18:10 -04:00
Lioncash
36e299ca80 D3DTexture: Remove unused bindflags D3DTexture2D member variable 2017-09-03 13:12:26 -04:00
Lioncash
52099d1b0a D3DTexture: in-class initialize class members where applicable 2017-09-03 13:08:06 -04:00
JosJuice
3528c93edf DVDThread: Don't show an error message for all 0-length reads 2017-09-03 15:09:14 +02:00
JosJuice
0341a6052b DVDInterface: Reply to 0-length commands
This regression from the chunking PR was making a few games hang.
2017-09-03 15:09:14 +02:00
Jules Blok
8906b26ea5 D3DBase: Use the correct version of CreateDXGIFactory. 2017-09-03 14:33:06 +02:00
Stenzek
99d61906cc Merge pull request #5948 from Armada651/d3d-explicit-stereo
D3DBase: Only use a stereo swapchain if quad-buffering is enabled.
2017-09-03 21:07:24 +10:00
Jules Blok
75574ec6cc Merge pull request #5946 from stenzek/ubershader-stereo-texture-samples
UberShaderPixel: Fix sampling of EFB copies in stereo modes
2017-09-03 12:26:52 +02:00
Stenzek
c9d649d27c D3D: Use Direct3D 11.1 where supported 2017-09-03 16:33:47 +10:00
Stenzek
0622979d3b ShaderGen: Support writing integer colors when logic op is enabled
This is required for D3D to support logic op.
2017-09-03 16:33:25 +10:00
Stenzek
254160691a Revert "Vulkan: Use VK_NV_glsl extension where available, and skip glslang"
This reverts commit d23fd17e1a.

Dynamic sampler indexing is broken in VK_NV_glsl as of 385.41. The
performance gap doesn't seem to be as wide with the updated driver, so
to save maintaining two code paths, it's easier to just drop the
extension support completely.
2017-09-03 15:31:19 +10:00
Stenzek
3dd675e613 Renderer: Change SetBlendState to accept a BlendingState
This decouples the state generation (from the emulated GPU) from the
management of internal backend state.
2017-09-03 14:14:54 +10:00
Stenzek
22b8cbae35 RenderBase: Drop SetColorMask and SetLogicOpMode
These are now incorporated into the blend state for all backends.
2017-09-03 14:14:54 +10:00
Stenzek
5c9bc8b79c D3D11: Use blending state from VideoCommon 2017-09-03 14:14:54 +10:00
Stenzek
c90b0bf532 D3D11: Create debug device when validation layer is enabled in options 2017-09-03 14:14:19 +10:00
Stenzek
ce59121748 Merge pull request #6004 from lioncash/d3d
D3D: Eliminate redundant ID3D11DeviceChild* casts
2017-09-03 14:13:17 +10:00
Stenzek
005d0b39f7 Merge pull request #6009 from lioncash/async
AsyncShaderCompiler: Make WorkItem-derived class constructors explicit
2017-09-03 14:11:41 +10:00
Stenzek
7a4348b641 Merge pull request #5649 from JonnyH/WIP/disable-vk-clear-renderpass
Add DriverDetails::BUG to Disable "LoadOp" clear renderpass in vulkan
2017-09-03 13:49:51 +10:00
Pierre Bourdon
ed07bd4270 Merge pull request #6005 from spycrab/qt_warning_disable
Qt/DevelopmentWarning: Add "Don't show me this warning again" option
2017-09-03 03:50:29 +02:00
spycrab
0d3c4a3883 Qt/DevelopmentWarning: Add "Don't show me this warning again" option 2017-09-03 03:46:23 +02:00
Pierre Bourdon
425a8cb378 Merge pull request #5718 from mimimi085181/partial-updates-update
Update to partial texture updates
2017-09-03 03:16:55 +02:00
Pierre Bourdon
ab27f0f78c Merge pull request #6010 from lioncash/vertex
OGL/VertexManager: Make vertex and index buffer handles private
2017-09-03 03:13:40 +02:00
spycrab
1b593fd56b Qt: Implement TAS/Movie shortcuts 2017-09-03 02:58:38 +02:00
spycrab
0e7ed3514f Qt: Implement "Movie" menu 2017-09-03 02:57:44 +02:00
Lioncash
2237a6a04c OGL/VertexManager: Make vertex and index buffer handles private
These are only ever read, but not written to outside of the VertexManager class.
2017-09-02 20:51:54 -04:00
spycrab
4163ee42bc Qt/GameList: Implement SelectionChanged() 2017-09-03 01:49:04 +02:00
Pierre Bourdon
3ae82ea669 Merge pull request #6007 from spycrab/qt_win_icon
Qt/MSVC: Add icon
2017-09-03 01:36:11 +02:00
spycrab
018c2cfd65 Qt/MSVC: Add icon 2017-09-02 23:51:59 +02:00
Lioncash
2d45204f12 VideoBackends: Add the explicit keyword to WorkItem-derived class constructors
Prevents implicit conversions
2017-09-02 17:35:20 -04:00
Lioncash
5059332d95 OGL/ProgramShaderCache: Remove unnecessary virtual keyword
This is superfluous, considering the override keyword is present.
2017-09-02 17:27:19 -04:00
Mat M
657195fad5 Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Parse IMGTEC's GL_VERSION string format
2017-09-02 17:10:59 -04:00
Markus Wick
30e01834e2 Merge pull request #6002 from lioncash/include
CommandProcessor: Remove unnecessary include
2017-09-02 23:05:58 +02:00
Jonathan Hamilton
658a4a6e29 Mark an ImgTec driver bug as fixed in 1.8@4693462
Now we correctly parse ImgTec's GL_VERSION string we can actually use
the BugInfo's version stuff correctly here
2017-09-02 14:05:16 -07:00
Jonathan Hamilton
662abcb2fe Parse IMGTEC's GL_VERSION string format
ImgTec's driver uses a major.minor@changeID versioning system

This is packed into a double so "1.9@4850625" becomes "109.4850625"

The next release brnach is expected to be 1.10, hence the need for 2
digits for the branch minor.

The changeID should be unique for each build, but is shared over all
branches, so only makes sense to compare withing a branch.

It's likely branch 'major' versions will be used for major hardware
revisions, and the drivers for both maintained in parallel. Thus it
may not make sense to compare versions between different major
verisons - if/when this happens we can hook up a DriverDetails::Family
as needed.
2017-09-02 14:05:16 -07:00
Lioncash
64de8a9d0b D3D: Eliminate redundant ID3D11DeviceChild* casts 2017-09-02 14:45:14 -04:00
Lioncash
6f97e3faa6 AsyncShaderCompiler: use std::make_unique in CreateWorkItem()
Same behavior, simpler code.
2017-09-02 14:08:00 -04:00
Lioncash
62615c601e AsyncShaderCompiler: Forward arguments to the specified type's constructor in CreateWorkItem()
As this just hands off the arguments to another type's constructor,
perfect forwarding should be used here to preserve any potential move semantics.
2017-09-02 14:06:48 -04:00
Lioncash
f6e3a39c0e CommandProcessor: Remove unnecessary include
Gets rid of some indirect inclusion.
2017-09-02 13:34:21 -04:00
degasus
992893ba41 Jit64: Use ImmPtr. 2017-09-02 14:33:07 +02:00
degasus
da79ddbde7 JitArm64: Rewrite Exit functions.
The gpr must not be touched in the Exit functions as they are maybe conditional.
So just allocate everything here manually.
2017-09-02 13:45:24 +02:00
degasus
304e601ad3 JitArm64: Reimplement aarch64 cycle counters.
CNTVCT_EL0 is force-enabled on all linux plattforms.
Windows is untested, but as this is the best way to get *any* low
overhead performance counters, they likely use it as well.
2017-09-02 13:24:37 +02:00
degasus
9080192a65 Jit64: Move profiler to the end of th block.
Within Cleanup(), it is called at *every* end of the block. This generates bigger code,
but it is the only way to handle blocks with multiple exit nodes.
2017-09-02 13:05:58 +02:00
degasus
958b75b707 JitCommon: Restructure the profiler calls. 2017-09-02 13:05:58 +02:00
degasus
95ce860265 DolphinWX: Enable branch following in the JIT debug interface. 2017-09-02 13:05:58 +02:00
degasus
8ab34b1a3e Jit64: Inline the profiler calls. 2017-09-02 13:05:58 +02:00
spycrab
fcdd247f93 Qt: Fix building on <= 5.7.x 2017-09-02 03:20:20 +02:00
Leo Lam
8e9857d3cd Merge pull request #5954 from khg8m3r/OSXKeyboard
Clean up OSX input selection
2017-09-01 21:31:17 +02:00
spycrab
1173c2f790 Qt: Implement "Extract Certificates from NAND" 2017-08-29 08:31:50 +02:00
spycrab
561d31f887 Qt: Implement "Import BootMii NAND Backup" 2017-08-29 08:31:45 +02:00
Jonathan Hamilton
62e8d25cd1 Add Bug to Disable "LoadOp" clear renderpass in vulkan
This optimisation doesn't work on PowerVR's Vulkan implementation. We
(incorrectly) disallow Framebuffer objects to be used with a different
load or store op than that which they were created with, despite the
spec allowing such.

This fixes the windwaker intro "smearing"
2017-08-28 18:01:35 -07:00
Jonathan Hamilton
11057649ee Add VideoLogic (ImgTec) PCI ID 2017-08-28 18:01:16 -07:00
spycrab
a2b7632850 Qt: Implement "Load GameCube Main Menu" 2017-08-29 02:57:46 +02:00
spycrab
0dfde1d34e Qt: Implement "Export All Wii Saves" 2017-08-28 23:00:14 +02:00
spycrab
9469fc3d6f Qt: Implement "Import Wii Save" 2017-08-28 23:00:14 +02:00
Leo Lam
378416f986 Merge pull request #5972 from leoetlino/close
WiimoteReal: Fix device handles not being closed
2017-08-28 21:01:12 +02:00
Lioncash
9c1f9c1c00 ConstantManager: Use std::array where applicable
Modernizes the arrays and makes future simplifications possible (e.g. usages within the software renderer).

It also makes cases where we use array->pointer decay explicit.
2017-08-27 15:41:36 -04:00
spycrab
95a53a435c Qt/GraphicsWidget: Fix bad layout column 2017-08-27 10:04:06 +02:00
Stenzek
21b3cd4759 OGL: Fix EFB pokes using incorrect color/depth 2017-08-27 11:55:24 +10:00
spycrab
8b346b7058 Qt/GameList: Implement "Filesystem" tab 2017-08-26 14:56:33 +02:00
spycrab
56aad4a958 Qt/PropertiesDialog: Make title more like Wx 2017-08-26 14:44:38 +02:00
spycrab
2630fa0ce9 Qt: Only show "Filesystem" Tab when game is disc based 2017-08-25 20:35:41 +02:00
JosJuice
87d982982d Fix regression in File::CopyDir
This apparently fixes https://bugs.dolphin-emu.org/issues/10499 somehow.

The first changed line of this commit is just for performance - the
second changed line is where the difference in behavior is.
2017-08-25 19:14:14 +02:00
Léo Lam
31b04149b3 DiscIO: Fix TMD extraction
The offset that we read from the header is relative to the partition.
2017-08-25 17:31:50 +02:00
Chris Burgener
cc03e49024 Remove FFMPEG check for Renderer::IsFrameDumping() 2017-08-24 11:15:50 -04:00
spycrab
b9c5a2af05 Qt: Implement gamelist caching 2017-08-24 07:17:31 +02:00
Nick
ef95bf26cb Implement GamePAd and MultiAxisController detection 2017-08-24 00:31:59 -04:00
Michael M
b58f8d19ab Rename Common::FifoQueue to Common::SPSCQueue
Since all queues are FIFO data structures, the name wasn't informative
as to why you'd use it over a normal queue. I originally thought it had
something to do with the hardware graphics FIFO.

This renames it using the common acronym SPSC, which stands for
single-producer single-consumer, and is most commonly used to talk about
lock-free data structures, both of which this is.
2017-08-23 17:00:52 -07:00
Jonathan Hamilton
5b41c5ae0d Fix vulkan crash on drivers without atomic load/store support
This would not allocate a SSBO buffer, but still try to update the
descriptor said with a NULL buffer. Which naturally crashed.
2017-08-23 14:49:22 -07:00
Léo Lam
52f26d462e WiimoteReal: Fix device handles not being closed
fail.

I have no idea how this didn't cause issues for more people.
2017-08-23 23:05:29 +02:00
JosJuice
fb2016838e Merge pull request #5864 from JosJuice/directoryblob-disccontentcontainer
DirectoryBlob: Improve ReadInternal
2017-08-23 18:48:24 +02:00
Anthony
935c1da357 Merge pull request #5951 from ligfx/gametrackerworkqueuethread
GameTracker: use new Common::WorkQueueThread instead of signals/slots
2017-08-23 08:02:36 -07:00
Léo Lam
e4ea4da782 IOS: Check for available features when adding devices
Prevents resource managers that shouldn't be visible from being exposed
to titles.

This adds a new function to get features for an IOS version, and also
moves the version checks from the modules themselves to VersionInfo.
This hopefully documents some of the differences between IOS better
and should be slightly cleaner than having random version checks.
2017-08-23 15:18:12 +02:00
Léo Lam
24e7b465be IOS: Rename MemoryValues to VersionInfo 2017-08-23 14:44:51 +02:00
Pierre Bourdon
187e65f495 Merge pull request #5941 from delroth/wfs
WFS updates
2017-08-23 11:14:01 +02:00
Nick
3abde44641 formatting cleanup 2017-08-23 00:19:34 -04:00
Lioncash
bc57ab3923 Clipper: Copy both color sequences in CopyVertex as opposed to one
This is likely an oversight.
2017-08-22 22:45:28 -04:00
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
Michael M
4b50e77a26 NetPlayClient/Server: apply Parameter Object pattern to traversal parameters 2017-08-13 18:50:52 -07:00
Michael M
fdb5828d62 Qt MainWindow: clean up Netplay settings logic 2017-08-13 18:50:52 -07:00
Michael M
a09f8744b9 UPnP: cleanup variable name desc_xml 2017-08-13 18:50:52 -07:00
Michael M
ff1d1a7a4d UPnP: use std::to_string 2017-08-13 18:50:52 -07:00
Michael M
862e0bec79 UPnP: cleanup function names 2017-08-13 18:50:52 -07:00
Michael M
281f90efc3 UPnP: coalesce s_our_ip and cIP 2017-08-13 18:50:51 -07:00
Michael M
106ae9636e UPnP: cleanup variable names 2017-08-13 18:50:51 -07:00
Michael M
3386543a9c Common: extract UPnP namespace from NetPlayServer 2017-08-13 18:50:51 -07:00
Michael M
9afb2ff40e Common/CMakeLists: sort source files 2017-08-13 18:50:51 -07:00
Markus Wick
06da1973a8 Merge pull request #5919 from degasus/arm
JitArm64: Small performance optimizations.
2017-08-14 00:01:27 +02:00
Markus Wick
f92562c652 Merge pull request #5917 from degasus/cmp
JitArm64: Fix and improve the cmpXX instructions.
2017-08-14 00:00:54 +02:00
Sepalani
c71ce9a8eb MemoryWindow: base address search added 2017-08-12 18:22:30 +01:00
Pierre Bourdon
5a4900bc96 WFS: Stub WFSSRV's flush command. 2017-08-12 15:17:34 +02:00
Pierre Bourdon
f3224dc726 WFS: Stub out unimplemented ioctl 0x08. 2017-08-12 15:17:34 +02:00
Pierre Bourdon
f0ba0f617f WFS: Fix shutdown behavior with long hanging requests. 2017-08-12 15:17:34 +02:00
Pierre Bourdon
385f063be1 ES: Split out GetTitleId to a separate method. 2017-08-12 15:17:34 +02:00
Pierre Bourdon
58624ef409 ES: Fix wrong log message. 2017-08-12 15:17:34 +02:00
Markus Wick
d791e5d3a8 JitArm64: Use the updated wrappers.
They are faster, no need to use the slow path in the CPU.
2017-08-12 00:00:41 +02:00
Markus Wick
d78009877b JitArm64: Fix LSL/LSR/ROR/ASR wrappers.
The other method has a latency of 2 cycles. This also improves the
throughput a lot.
2017-08-12 00:00:41 +02:00
Markus Wick
5ee7f86199 JitArm64: Optimize rlwinmx.
The new code adds fast paths for most usages which fits in one
instruction with one cycle latency.
2017-08-12 00:00:41 +02:00
Markus Wick
ec5cfd2aae JitArm64: Update CR helpers to reflect their usage.
This helpers are not for general CR calculation, they are just for the
common case of the sign extended result of integer instructions if the
rc bit is set.
They must not be used by other instructions like cmp, so there is no
need to be as flexible.
2017-08-11 21:17:13 +02:00
Markus Wick
7d4c14feba JitArm64: Fix and improve the cmpXX instructions. 2017-08-11 21:17:13 +02:00
Ryan Meredith
7154c0f0ff m_bt_wiimote_motor rename and tooltip addition 2017-08-11 15:15:51 -04:00
Markus Wick
b89e4b5258 Interpreter: Fix cmpi.
cmpi shall compare two signed 32 bit values. The used difference a-b
may overflow and so the resulting 32 bit value can't represent it.
A correct way would be cr = s64(a) - s64(b) and it should be done in
this way in the JITs, but the Interpreter shall implement the most
readable way.

Also drops the now unused helper function.
2017-08-11 17:35:22 +02:00
Stenzek
f8a64ab1fc UberShaderPixel: Use an if trees instead of switch statements on GL
The switch statements in these functions appear to get transformed into
an if..else chain on NVIDIA's OpenGL/Vulkan drivers, resulting in lower
performance than the D3D counterparts. Transforming the switch into a
binary tree of ifs can increase performance by up to 20%.
2017-08-12 00:16:19 +10:00
Leo Lam
5767309670 Merge pull request #5914 from sepalani/rso-data
RSO: Import data symbols
2017-08-11 21:02:28 +08:00
Léo Lam
1bd7fefec1 Config: Set DOL/ELF region to UNKNOWN
This allows the region to be chosen by the user.
2017-08-11 20:28:33 +08:00
Léo Lam
bec35b287e Config: Fall back to the system menu region
Since we don't want users to have to configure the region manually
and always enforce one automatically, we should fall back to a region
that was likely to be chosen by the user instead of always using
PAL whenever the title region cannot be detected.

Dolphin doesn't mess with installed NAND titles like the system menu,
so it is a reliable indicator of what region the user wants.
2017-08-11 20:28:33 +08:00
Leo Lam
86e932b833 Merge pull request #5915 from JosJuice/pad-size
DolphinQt2: Replace "Pad size" with "Buffer size"
2017-08-11 20:27:52 +08:00
JosJuice
3570a9b636 DolphinWX: Replace "Pad buffer" with "Buffer size" 2017-08-11 12:36:42 +02:00
Leo Lam
c91211b6ce Merge pull request #5867 from leoetlino/widescreen
GameINI: Replace Wii.Widescreen with AspectRatio
2017-08-11 18:23:54 +08:00
JosJuice
9747a4c697 DolphinQt2: Replace "Pad size" with "Buffer size"
"Pad size" just doesn't make much sense. Let's go with "Buffer size"
instead, since the control for it is labeled "Buffer".

(Another possibility is "Pad buffer size", but I'm against that,
because we've stopped referring to controllers as "pads" in almost
all GUI strings.)
2017-08-11 12:22:44 +02:00
Leo Lam
438610a58d Merge pull request #5748 from nitrousox1de/hide-mouse-delay-fullscreen
Hide mouse delay fullscreen
2017-08-11 17:34:46 +08:00
Leo Lam
54778303ee Merge pull request #5871 from JosJuice/read-swapped-and-shifted
DiscIO: Add a Volume::ReadSwappedAndShifted function
2017-08-11 15:58:42 +08:00
Léo Lam
940cc843ed Config: Fix Movie config loading/saving
* Add missing Language setting loading/saving. This was added after the
  original OnionConfig PR, which is why support for it was missing.

* Change MovieConfigLoader to reuse ConfigInfos. Less duplication.

* Extract MovieConfigLoader::Save into SaveToDTM. The DTM should use
  the current config and not just the movie layer. This makes more
  sense than just saving the movie layer, which may not always exist,
  and also fixes a crash that would happen when creating a new
  recording because the movie layer wouldn't exist in that case.

  (Plus, having to get the loader from the layer and call ChangeDTM
  on it manually is not very pretty.)
2017-08-11 15:36:32 +08:00
Léo Lam
fa7e3e55d2 Config: Add MainSettings
Not really used anywhere yet, but useful for not having to duplicate
config locations and for getting rid of conflicts when I get around
to rebase my Main.Core and Main.DSP porting PR.
2017-08-11 15:36:32 +08:00
Léo Lam
e471505632 WX: Reload Wii config pane on config change 2017-08-11 15:36:32 +08:00
Léo Lam
b2c41cec0a Config: Include SYSCONF in base layer
Settings that come from the SYSCONF are now included in Dolphin's
config system as part of the base layer. They are handled in a
special way compared to other settings to make sure they are only
loaded from and saved to the SYSCONF (to avoid different, possibly
contradicting sources of truth).
2017-08-11 15:36:31 +08:00
Léo Lam
c900e77ac5 Config: Add Get/Set on Layer
For convenience, when getting/setting from ConfigInfos.
2017-08-11 15:28:11 +08:00
Leo Lam
e86f5ac04b Merge pull request #5913 from ligfx/qtselectedgamegamefile
GameList: make GetSelectedGame a pointer to GameFile
2017-08-11 15:25:15 +08:00
Sepalani
ae4790ff25 RSO: Import data symbols 2017-08-10 21:30:32 +01:00
Michael M
3c002f0213 GameList: make GetSelectedGame a pointer to GameFile 2017-08-10 13:22:35 -07:00
Michael M
fcb1eb9d3b dsp_rom: skip bootucode_ax when running from entrypoint
This could cause the first branch of the bootucode procedure, which
takes its parameters from the AX registers, to run during the ROM init
sequence. Since the ROM doesn't set any of the AX registers, the values
aren't meaningful, and can cause bad DMA transfers and crashes.
2017-08-10 10:53:12 -07:00
Léo Lam
5ba6182bbc Qt: Fix WiiUpdate progress dialog cancel button
We didn't properly remove the default cancellation handler, which would
cause crashes if the dialog was gone too early.
2017-08-10 23:47:18 +08:00
Léo Lam
ea3b351d92 Qt: Add menu item to perform system update from disc 2017-08-10 23:47:18 +08:00
Léo Lam
0e71c0760e WX: Add menu item to perform system update from disc 2017-08-10 23:47:18 +08:00
Léo Lam
0fdae2adb8 UI: Refactor Wii update code
This moves the progress dialog logic and the result dialog to separate
functions that can easily be reused for disc updates.
2017-08-10 23:47:18 +08:00
Léo Lam
916deb9004 WiiUtils: Add a disc updater 2017-08-10 23:47:18 +08:00
Léo Lam
eb1ba4b0e9 DiscIO: Add a blob reader for Volume files 2017-08-10 23:47:18 +08:00
Léo Lam
ca0438e26d WiiWad: Allow using WiiWad with more than just files
This adds a WiiWad constructor that takes a BlobReader, so that the
class can be used with more than just files from the host filesystem.

Required for using WiiWad with WADs from update partitions.
2017-08-10 23:47:18 +08:00
Léo Lam
5976d3934d WiiUtils: Refactor InstallWAD
Allows using an existing instance of IOS and WiiWAD.
2017-08-10 23:47:18 +08:00
Léo Lam
bc588948c9 WiiUtils: Move ShouldInstallTitle to the online updater
The disc updater uses different conditions.
2017-08-10 23:47:18 +08:00
Léo Lam
71f403d05b BTBase: Fix a file deletion issue on Windows
> The process cannot access the file because it is being used by another process.
2017-08-10 23:30:52 +08:00
JosJuice
e806928071 Make DolphinQt2 netplay strings more like in DolphinWX 2017-08-10 15:58:04 +02:00
spycrab
366d4c7744 Qt/NetPlay: Use TraversalClient::FailureReason 2017-08-10 15:41:01 +02:00
Leo Lam
e41a9905c0 Merge pull request #5744 from JosJuice/remove-non-integer-irs
Remove non-integer IRs
2017-08-10 17:10:26 +08:00
Leo Lam
d0304c9b38 Merge pull request #5810 from spycrab/qt_netplay
Qt: Implement Netplay
2017-08-10 14:45:52 +08:00
Leo Lam
15e46cb216 Merge pull request #5900 from ligfx/fixupnpinit
Fix UPnP init
2017-08-10 14:41:50 +08:00
Leo Lam
13b0ba3f55 Merge pull request #5908 from beholdnec/fix-i8-typo
VideoCommon: Fix typos in comments introduced by #5849
2017-08-10 14:39:30 +08:00
spycrab
9b65f38382 Make Visual Studio happy 2017-08-10 06:49:57 +02:00
spycrab
78cc759d56 Settings: Implement NetPlay globals 2017-08-10 06:49:57 +02:00
spycrab
2e29509b75 Qt/GameList: Add "Host with NetPlay" option 2017-08-10 06:49:57 +02:00
spycrab
13fac93a29 Qt: Implement NetPlay 2017-08-10 06:49:57 +02:00
Michael Lelli
4fb2d1e361 Ignore capabilities reported by an XInput device 2017-08-09 22:51:01 -05:00
spycrab
d5629017b9 Qt/NetPlay: Implement MD5 dialog 2017-08-09 23:13:20 +02:00
N.E.C
b52aff7966 VideoCommon: Fix typo in comments introduced by #5849 2017-08-09 00:02:27 -07:00
Michael M
6faacbeea5 TraversalClient: make FailureReason an enum class 2017-08-08 15:29:56 -07:00
spycrab
962af060a0 Qt/GameList: Add method to get unique ID for item 2017-08-09 00:05:48 +02:00
spycrab
e9138f7512 Qt/GameList: Implement GetModel() 2017-08-09 00:05:48 +02:00
spycrab
655778f7f1 Qt: Implement GetUniqueID() 2017-08-09 00:05:48 +02:00
spycrab
ca1646d99b Qt: Add "Start NetPlay" option to the menubar 2017-08-09 00:05:48 +02:00
Léo Lam
58b7350562 SettingsHandler: Fix generated serial numbers
Must be 9 characters at most; otherwise the serial number will be
rejected by SDK libraries, as there is a check to ensure the string
length is strictly lower than 10.
2017-08-08 23:25:40 +08:00
JosJuice
1fc910b3ea Convert to/from old EFB scale numbering 2017-08-08 12:09:50 +02:00
JosJuice
f090a94319 Remove non-integer IRs 2017-08-08 12:09:50 +02:00
Léo Lam
e10e42c09e PowerPC: Fix indirect includes for GDBStub 2017-08-08 17:47:20 +08:00
Michael M
9e81fec816 NetPlayServer: encapsulate m_upnp_inited in initUPnP() 2017-08-07 11:35:13 -07:00
Michael M
6a8c0ca70b NetPlayServer: actually set m_upnp_inited 2017-08-07 11:35:13 -07:00
Emmanuel Gil Peyrot
1b32751367 VideoCommon: Round values in swizzlers.
This was breaking Metroid Prime 2: Echoes’s scanner in some rooms, such
as the one in https://fifoci.dolphin-emu.org/dff/mp2-scanner/

It was found on Ivy Bridge on Mesa, the alpha value read back from the
EFB was off-by-4 in multiple objects, which was a conversion error
because int4() is equivalent to floor() and the value wasn’t always
higher.
2017-08-07 20:20:36 +02:00
Leo Lam
a25f7b9b4c Merge pull request #5892 from leoetlino/sysmenu-emu-fixes
Boot/BS2: Accuracy fixes
2017-08-08 01:33:05 +08:00
JosJuice
cbe43e58a7 Merge pull request #5890 from leoetlino/sd-fixes
IOS/SDIO: Small fixes
2017-08-07 17:03:18 +02:00
Leo Lam
f64b189850 Merge pull request #5895 from lioncash/sw
TransformUnit: Get rid of most pointer casting in TransformColor()
2017-08-07 14:18:35 +08:00
Michael M
2abf13ae36 NetPlayServer: remove goto statements 2017-08-06 23:06:38 -07:00
Leo Lam
dbb26a2b54 Merge pull request #5837 from leoetlino/auto-pause
WX: Automatically pause the core for the JIT menu items
2017-08-07 13:21:54 +08:00
Scott Mansell
3b5cad6682 Merge pull request #5860 from jturcotte/fix-macos-nswitch-axis
Fix axis not working with Switch Pro controller on macOS
2017-08-07 13:44:07 +12:00
Lioncash
745f92b4e5 TransformUnit: Get rid of pointer casting in TransformColor() where applicable
The casts to u32* are technically undefined behavior. The u8* cast is
left, as char/unsigned char is exempted from this rule to allow for
bvtewise inspection of objects (and this is what s8/u8 are typedefs of
on platforms we support).
2017-08-06 19:04:31 -04:00
Lioncash
4d35a3105e TransformUnit: Make LightColor()'s chan parameter const
Also marks references/pointers const where applicable
2017-08-06 18:15:05 -04:00
Andrew
d38987e1e8 Hide mouse cursor after delay in DolphinQt 2017-08-06 17:52:37 -04:00
Lioncash
2363be4c63 ElidedButton: Make constructor explicit
Prevents implicit conversions to ElidedButton.
2017-08-06 17:31:29 -04:00
Lioncash
5153271278 ElidedButton: Add missing override specifier on paintEvent() 2017-08-06 17:26:07 -04:00
Leo Lam
1385444d86 Merge pull request #5883 from sepalani/term-close
DolphinWX: Prevent Dolphin to be shutdown when closing cmd.exe
2017-08-07 00:50:31 +08:00
Léo Lam
9f36499f9e IOS/SDIO: Make GetCSDv1/v2 const member functions 2017-08-07 00:48:51 +08:00
Léo Lam
c24418a822 IOS/SDIO: Fix warnings about missing braces 2017-08-07 00:48:16 +08:00
Léo Lam
d86d5d62ad IOS/SDIO: Add missing save calls in DoState 2017-08-07 00:48:16 +08:00
Leo Lam
1833354ef9 Merge pull request #5891 from lioncash/const
File: Make GetSize() a const member function
2017-08-07 00:46:49 +08:00
Léo Lam
6d73c3e8e3 Boot/BS2: Don't write part of the debugger hook
Writing to 0x60 does actually not "init exception[s]" or anything like
that. Not at all. Rather, it *breaks* a check in Nintendo's SDK, which
makes it fail to realise that the hook hasn't been set up.

This prevents the SDK initialisation routines from writing the rest of
the hook instructions (total: 0x20 bytes), which in turn causes an
anti-piracy check to fail in some Ubisoft games (including Tintin).

Dolphin can be really amazing sometimes.
2017-08-07 00:36:35 +08:00
Léo Lam
d612416ce8 Boot/BS2: Write to 0x3194 and 0x3198 2017-08-07 00:36:35 +08:00
Léo Lam
0bdcabdfa9 Boot/BS2: Write the "devkit boot program version" 2017-08-07 00:36:34 +08:00
Léo Lam
81b298f747 Boot/BS2: Set the proper value for 0x000030d8
No clue where people got the 0 value from, or why it's labelled as
"time". As far as I can tell, it is always set to 0xffffffff by
official NAND titles, including the system menu.
2017-08-07 00:36:34 +08:00
Léo Lam
29b1276548 Boot/BS2: Update state file 2017-08-07 00:36:34 +08:00
Léo Lam
363bf27cce Boot/BS2: Write empty play record 2017-08-07 00:36:34 +08:00
Léo Lam
8489d9da90 Boot: Move StateFlags from Boot_WiiWAD to Boot
It's not specific to WADs. The BS2 emulation boot code will also need
to update the state file.

Move the struct to Boot and add a helper function that will handle
reading + computing the checksum + writing the state file.
2017-08-07 00:36:34 +08:00
Lioncash
f0308151a8 File: Make GetSize() a const member function 2017-08-06 07:57:43 -04:00
JosJuice
fa4723ffb4 DolphinQt2: Rename "Table"/"List" to "List View"/"Grid View"
Sentret_C posted this comment on Transifex recently:

"What Dolphin refers to as "Table View" and "List View" are
similar to "List View" and "Grid View" in Steam, and I think
the Steam names describe them better."

I agree with that, so here's a commit that changes the names.
2017-08-06 11:35:45 +02:00
Leo Lam
84ecc0ecc9 Merge pull request #5842 from TBoshoven/sdhc-support
Add support for SDHC
2017-08-06 11:17:50 +08:00
mimimi085181
cdbd9863b4 Keep textures that are overwritten by efb copies, if the stride matches
This is supposed to get efb2tex to the same texture as efb2ram, by applying the related efb copies as updates after each other, in the order of their creation.
2017-08-06 03:13:57 +02:00
mimimi085181
4e8ff42503 Do not load overwritten textures by hash
In this case, comparing the hash is not enough to check, if two textures are identical.
2017-08-06 03:13:57 +02:00
mimimi085181
a21ac22e07 fix stored memory stride for normal textures 2017-08-06 03:13:57 +02:00
Tom Boshoven
10c615d7db Added proper SDHC initialization to protocol v2. 2017-08-05 19:55:08 +02:00
degasus
cc4b3b180b VideoSW: Drop log level of missing anti aliasing support.
We don't want to emit such a high priority warning here, else fifoci will die.
2017-08-05 19:20:19 +02:00
Tom Boshoven
b29c8c1a63 Redid initialization logic.
Looks like initialization is done automatically by IOS versions that support SDHC.
2017-08-05 18:51:24 +02:00
Lioncash
01c262fe47 Filesystem: Declare FileInfo iterator's move constructor and assignment operator noexcept
Prevents potential extra copies being created in the context of
std::move_if_noexcept.
2017-08-05 12:29:02 -04:00
Tom Boshoven
47e056a654 Re-enable SDIO events. 2017-08-05 14:52:03 +02:00
Tom Boshoven
494e935ca7 Use std::array for CSD.
Fix double negative in comment.

Fixed member variable names, added some const correctness.
2017-08-05 14:49:38 +02:00
Stenzek
6d91c1b079 ProgramShaderCache: Call glTexImage3D after glTexParameter
Was missed before merge.
2017-08-05 18:18:30 +10:00
Anthony
3c5112bb21 Merge pull request #5856 from stenzek/optimus-crash
Fix ubershader crashes with primus/bumblebee
2017-08-05 00:54:28 -07:00
Léo Lam
e58ba76f07 Don't force the aspect ratio in GameINIs
Instead, add a SuggestedAspectRatio option which tells Dolphin which
aspect ratio to use when the aspect ratio option is set to Auto.
2017-08-05 14:27:16 +08:00
Anthony
737e045bd8 Merge pull request #5849 from beholdnec/tex-format-bookkeeping
Video: Clearly separate Texture and EFB Copy formats
2017-08-04 22:34:34 -07:00
Sepalani
eb3975eee8 DolphinWX: Prevent Dolphin to be shutdown when closing cmd.exe 2017-08-04 18:35:02 +01:00
Leo Lam
9bab7ffa83 Merge pull request #5794 from spycrab/qt_menubar
Qt: Overhaul menubar
2017-08-04 14:42:58 +08:00
Leo Lam
284aa99a0d Merge pull request #5169 from ligfx/sidevicegbastate
SI_DeviceGBA: refactor and make GBASockServer a member rather than parent
2017-08-04 14:40:51 +08:00
iwubcode
bc3622c2a8 Fix the size of s_last_connect_request_counter to be 5 (wiimotes + balance board) 2017-08-04 00:32:20 -05:00
Leo Lam
f274bbcbe1 Merge pull request #5872 from ligfx/wxnetplayonionconfig
WX: make Netplay use new-style config
2017-08-04 10:07:05 +08:00
Leo Lam
51af8d4aeb Merge pull request #5829 from ligfx/qtmsgalerthandler
Qt: register MsgAlertHandler
2017-08-04 09:53:24 +08:00
Leo Lam
fac085940e Merge pull request #5877 from JosJuice/log-strings
DolphinQt2: Make logging strings more like in DolphinWX
2017-08-04 09:50:08 +08:00
N.E.C
c3a57bbad5 Video: Clearly separate Texture and EFB Copy formats
Improve bookkeeping around formats. Hopefully make code less confusing.

- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
  is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-08-03 18:35:29 -07:00
Michael M
7bdfd862d7 Qt: register MsgAlertHandler
This is the thing that pops up a message box when something goes wrong,
or when you want to override a previously dumped file, etc.
2017-08-03 13:29:59 -07:00
Michael M
737651f298 MsgHandler: small cleanup 2017-08-03 13:29:59 -07:00
Michael M
76459d88bf QtUtils: add RunOnObject 2017-08-03 13:29:59 -07:00
Michael M
dde3471b62 WX: make Netplay use new-style config 2017-08-03 13:16:17 -07:00
Michael M
f8fea83e67 NetPlayLauncher: store window geometry in native wxConfig 2017-08-03 13:16:17 -07:00
Michael M
9867677211 WxUtils: add WxStrToUL 2017-08-03 13:16:17 -07:00
Michael M
7d509a7a94 Config/Section: support u16 values 2017-08-03 13:16:16 -07:00
Markus Wick
9649494f67 Merge pull request #5827 from JonnyH/WIP/fix-glMultiDrawElementsBaseVertex-invalid-OES-suffix
Fix an incorrect OES suffix on glMultiDrawElementsBaseVertex
2017-08-03 18:45:32 +02:00
JosJuice
b29ca4f830 DolphinQt2: Make logging strings more like in DolphinWX
Like PR 5817 but for strings that were added after that PR was merged.
2017-08-03 16:43:50 +02:00
Stenzek
7f88711186 Vulkan: Add a driver bug for NV when MSAA is enabled
This causes the card to lock up when vkCmdClearAttachments is called,
when multisampling is enabled. Seems to be restricted to Maxwell and
newer?
2017-08-03 17:40:15 +10:00
Leo Lam
6a76ca7bb7 Merge pull request #5873 from mimimi085181/fix-real-wiimote
Properly handle g_wiimotes_mutex again for real wiimotes
2017-08-03 13:09:57 +08:00
mimimi085181
576bf32ab2 Properly handle g_wiimotes_mutex again for reconnect on button press for real wiimotes
Sorry, i overlooked the mutex in PR  https://github.com/dolphin-emu/dolphin/pull/4949

This pr fixes issue 10434: https://bugs.dolphin-emu.org/issues/10434
2017-08-03 01:54:49 +02:00
JosJuice
5e3c98af1d DiscIO: Add a Volume::ReadSwappedAndShifted function
This is a fairly common operation, so let's make a utility
function for it to cut down on code duplication.
2017-08-02 22:00:51 +02:00
Stenzek
fee08cf63d Vulkan: Use optimal tiling for dummy texture
Fixes a crash on some NVIDIA drivers. Apparently calling
vkCmdClearColorImage on an image with linear tiling causes the
GPU/driver to lock up.
2017-08-02 21:33:10 +10:00
Stenzek
287859c5e1 GLInterface: Support surfaceless contexts on GLX 2017-08-02 20:12:28 +10:00
Stenzek
67997529b8 ProgramShaderCache: Create a FBO for shared contexts to draw into
This way it allows us to use surfaceless contexts in EGL/GLX. It also
ensures that the shared context shares a similar setup to the main
context's framebuffer, potentially reducing the number of variants a
driver needs to generate.
2017-08-02 20:12:28 +10:00
Stenzek
d0bcdc7f89 Merge pull request #5858 from stenzek/ubershader-6-bit-color
Ubershaders: Fix 6-bit color truncation not being applied
2017-08-02 20:10:34 +10:00
Stenzek
57f34d748b D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
Previously we were falling back to an earlier version of the compiler.
The older version cannot compile our ubershaders without various
graphical issues.
2017-08-02 19:54:55 +10:00
Leo Lam
a8e4a3c915 Merge pull request #5759 from AwesomeMarioFan/master
Fix Time in Forecast Channel
2017-08-02 12:54:26 +08:00
Leo Lam
7565d97733 Merge pull request #4980 from FunctionalDragon/patch-2
send stop message before saving recording
2017-08-02 12:49:46 +08:00
Leo Lam
d3bb964d79 Merge pull request #5809 from HannesMann/master
Send rumble data to the adapter on a separate thread
2017-08-02 12:36:35 +08:00
FunctionalDragon
11cab1c68d Send stop message before saving recording
When recording during netplay, the stop message was only sent after you
have chosen a filename for the replay, causing the other player(s)
to freeze for a few seconds. This takes care of the annoyance.
2017-08-02 12:29:49 +08:00
Leo Lam
d6e051c942 Merge pull request #5703 from ligfx/blockuserinputfilter
QtUtils: add BlockUserInputFilter
2017-08-02 12:13:56 +08:00
Leo Lam
4ddf4e9604 Merge pull request #5862 from JosJuice/bs2-cleanup
Emulated BS2 cleanup
2017-08-02 12:03:50 +08:00
Leo Lam
407bc7a544 Merge pull request #4949 from mimimi085181/netplay-reconnect-on-button-press
Wiimote Netplay: Sync button press for reconnect
2017-08-02 12:00:28 +08:00
Leo Lam
f208ed8924 Merge pull request #5861 from JosJuice/pr-5817-fixup
PR #5817 fixup
2017-08-02 11:57:14 +08:00
Leo Lam
02e80af104 Merge pull request #5863 from MerryMage/oop
Config: Missed a line in #5770
2017-08-02 11:56:31 +08:00
Leo Lam
c7602cce04 Merge pull request #5865 from JosJuice/noncopyable-move
DirectoryBlob: Use NonCopyable
2017-08-02 11:56:16 +08:00
Hannes Mann
56239d1ae1 Send rumble data to the adapter on a separate thread 2017-08-02 00:44:46 +02:00
JosJuice
2bcccd893a DirectoryBlob: Remove unused DiscContent member 2017-08-01 22:01:34 +02:00
JosJuice
f7032f8deb FileSystemGCWii: Don't add 0-size files to m_offset_file_info_cache
This is done in order to reduce the risk of files not being added
due to them having the same end offset as another file.
2017-08-01 21:58:25 +02:00
JosJuice
b155c46aca DirectoryBlob: Fix reading beyond the end of the disc
There were two problems with this:

1. If the starting offset was beyond the end of the disc,
   we would dereference an invalid iterator.
2. The data beyond the end of the disc was non-deterministic.
2017-08-01 21:58:18 +02:00
JosJuice
74ada98e84 DirectoryBlob: Remove redundant assert
DiscContent::Read contains an equivalent assertion.
2017-08-01 21:58:12 +02:00
JosJuice
6b0a60d2ee DirectoryBlob: Don't add DiscContents with size 0
Having DiscContents with size 0 would mean that some DiscContents
might not get added to the std::set because of them comparing
identically to another DiscContent.

This replaces an older piece of code in WriteDirectory that ensures
that no two files have the same starting offset. (We now care about
the ending offset, not the starting offset. The new solution both
ensures that no two files have the same ending offset and that no
two files have the same starting offset.)
2017-08-01 21:58:04 +02:00
JosJuice
78fa98f559 DirectoryBlob: Change the return type of Add/CheckSizeAndAdd
Only return the information that isn't already known to the caller.
2017-08-01 21:57:54 +02:00
JosJuice
1b1a75ee3a DirectoryBlob: Lookup DiscContents by offset + size instead of offset
This simplifies DiscContentContainer::Read.
2017-08-01 21:57:48 +02:00
JosJuice
d6260e02ce DirectoryBlob: Replace std::set<DiscContent> with a new class 2017-08-01 21:57:24 +02:00
JosJuice
a7a8e467b6 DirectoryBlob: Use NonCopyable 2017-08-01 21:52:30 +02:00
mimimi085181
acde0b8b6c Sync info about pressed wiimote button 2017-08-01 20:56:45 +02:00
JosJuice
b0ee8bd0a0 NonCopyable: Allow moving
NonCopyable is only supposed to prevent classes from being copied,
not make it hard for classes to be moveable.
2017-08-01 20:50:11 +02:00
mimimi085181
8b1e61b00a Change wiimote reconnect on button press code
This moves the reconnect logic into a single function, so the netplay code doesn't need to be written 2 times
2017-08-01 20:41:05 +02:00
MerryMage
31ec3e2501 Config: Missed a line in #5770 2017-08-01 18:07:53 +01:00
Leo Lam
9b0fae3183 Merge pull request #5730 from spycrab/qt_logging
Qt: Implement logging window
2017-08-01 23:51:35 +08:00
JosJuice
363547a5b2 Boot: Make EmulatedBS2 require a volume 2017-08-01 16:05:53 +02:00
JosJuice
eb6f0a7258 Boot: Remove volume parameter from SetupWiiMemory 2017-08-01 16:05:20 +02:00
JosJuice
42d7dc2e08 Boot: Remove skip_app_loader parameter 2017-08-01 16:04:15 +02:00
JosJuice
fea75d045c Boot: Split out some code to a new function SetupGCMemory
Just like the existing function SetupWiiMemory.
2017-08-01 16:03:55 +02:00
JosJuice
a345ab2515 PR 5817 fixup 2017-08-01 14:34:44 +02:00
Leo Lam
a8606f5d13 Merge pull request #5844 from leoetlino/video-analytics
Analytics: Report a few more video settings
2017-08-01 19:23:59 +08:00
JosJuice
b6c6a04f95 DirectoryBlob: Standardize the spelling of disc
DirectoryBlob was using disk in some places and disc in other places.
2017-08-01 11:36:40 +02:00
JosJuice
d0c322f6e6 DirectoryBlob: Don't silently set GC region to NTSC-J if bi2.bin is missing
We were already handling the Wii region in region.bin in this way.
2017-08-01 11:36:40 +02:00
JosJuice
3fd0d39a85 DirectoryBlob: Write partition headers properly 2017-08-01 11:36:40 +02:00
JosJuice
09832caf41 DolphinQt2: Fix memory leak in GameLoader::LoadGame 2017-08-01 11:36:40 +02:00
JosJuice
a6be1513bf DolphinWX: Increment game list cache version
This is so that DirectoryBlobs won't look like valid discs
in old versions that don't support the DirectoryBlob format.
2017-08-01 11:36:40 +02:00
JosJuice
5fe3745750 Don't show "extra" files from DirectoryBlobs in game list
For instance, we don't want to show TGC files that might be
inside the /files/ directory of a GameCube DirectoryBlob,
and we don't want to show the /sys/main.dol files for extra
partitions of Wii DirectoryBlobs.
2017-08-01 11:36:40 +02:00
JosJuice
1ea44f425d DirectoryBlob: Change ConvertUTF8NamesToSHIFTJIS's parameter to pointer 2017-08-01 11:36:40 +02:00
JosJuice
34fd08e7eb DirectoryBlob: Support multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice
955ab72b1d DirectoryBlob: Remove m_root_directory from DirectoryBlob 2017-08-01 11:36:40 +02:00
JosJuice
e15b957d53 DirectoryBlob: Implement GetDataSize() 2017-08-01 11:36:40 +02:00
JosJuice
d84bee3ff4 DirectoryBlob: Prepare more for supporting multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice
a3ee61e1a9 DirectoryBlob: Let DirectoryBlob force GC/Wii for partition 2017-08-01 11:36:40 +02:00
JosJuice
fb09874f79 DirectoryBlob: Reorder functions in .cpp file
They're now grouped by which class they belong to.
2017-08-01 11:36:40 +02:00
JosJuice
ba0ee3f54b DirectoryBlob: Prepare for supporting multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice
953ca9cee1 DirectoryBlob: Make PadToAddress and Write32 static 2017-08-01 11:36:40 +02:00
JosJuice
ab4762c4c2 DirectoryBlob: Split out setting BI2 to new function 2017-08-01 11:36:40 +02:00
JosJuice
2ea0a1a086 DirectoryBlob: Make some constants local 2017-08-01 11:36:40 +02:00
JosJuice
0d4ad0e39e DirectoryBlob: Remove m_fst_name_offset 2017-08-01 11:36:40 +02:00
JosJuice
ef39b4da46 DirectoryBlob: Improve SetApploader
The code gets simpler by using IOFile instead of ReadFileToString.
Also, we now write -1 in all cases where loading fails.
2017-08-01 11:36:40 +02:00
JosJuice
31d8322c5a DirectoryBlob: Don't use member variables for addresses
Now it's clearer that SetDOL depends on SetApploader
and BuildFST depends on SetDOL.

As a side note, we now load the DOL even if there's
no apploader. (I don't think it matters whether we
do it, but it was easier to implement this way.)
2017-08-01 11:36:40 +02:00
JosJuice
b28ec0b7ee DirectoryBlob: Split out setting partition table to new function 2017-08-01 11:36:40 +02:00
JosJuice
c4879aa48d DirectoryBlob: Split out setting TMD and ticket to new function 2017-08-01 11:36:40 +02:00
JosJuice
5a00bda490 DirectoryBlob: Move content emplacement out of the constructor 2017-08-01 11:36:40 +02:00
JosJuice
1258d18f21 DirectoryBlob: Restructure SetApploader 2017-08-01 11:36:40 +02:00
JosJuice
8747b1b6ab DirectoryBlob: Support region.bin 2017-08-01 11:36:40 +02:00
JosJuice
c73f6b6c26 DirectoryBlob: Add ReadFileToVector function 2017-08-01 11:36:40 +02:00
JosJuice
8afa230787 DirectoryBlob: Rename DISKHEADERINFO_ADDRESS to BI2_ADDRESS
Because DISKHEADERINFO is too easy confuse with DISKHEADER.

Also adding BI2_SIZE and DISKHEADER_SIZE contants.
2017-08-01 11:36:40 +02:00
JosJuice
975b2b40fa DirectoryBlob: Support bi2.bin 2017-08-01 11:36:40 +02:00
JosJuice
251828ccc0 Don't check validity twice when creating DirectoryBlob 2017-08-01 11:36:40 +02:00
JosJuice
a6bbf7e21b DirectoryBlob: Don't keep DOL in memory 2017-08-01 11:36:40 +02:00
JosJuice
4cc8d3091c DirectoryBlob: Require header file (boot.bin) 2017-08-01 11:36:40 +02:00
JosJuice
71578b468d DirectoryBlob: Support tickets and TMDs 2017-08-01 11:36:40 +02:00
JosJuice
02610d4b28 DirectoryBlob: Use DISCIO instead of DVDINTERFACE for logging 2017-08-01 11:36:40 +02:00
JosJuice
3f9eec9ae4 DirectoryBlob: Use DiscContent for ReadNonPartition too
ReadPartition and ReadNonPartition are now unified into
ReadInternal, with a parameter controlling whether
the read is in a partition or not.
2017-08-01 11:36:40 +02:00
JosJuice
a0fa350ca6 DirectoryBlob: Use DiscContent for everything in ReadPartition 2017-08-01 11:36:40 +02:00
JosJuice
936ef5b9dd DirectoryBlob: Let DiscContent be backed by memory instead of file 2017-08-01 11:36:40 +02:00
JosJuice
e1321b131d DirectoryBlob: Create a DiscContent class for use in m_virtual_disc 2017-08-01 11:36:40 +02:00
JosJuice
b56214789e DirectoryBlob: Make some functions private 2017-08-01 11:36:40 +02:00
JosJuice
b8d8c7370f DirectoryBlob: Move constants to .cpp file 2017-08-01 11:36:40 +02:00
JosJuice
12cbeb2288 Remove DVD root and apploader path settings 2017-08-01 11:36:40 +02:00
JosJuice
37c09343d8 Turn VolumeDirectory into DirectoryBlob
This lets VolumeDirectory/DirectoryBlob skip implementing
various volume functions like GetGameID, GetBanner, etc.
It also lets us view extracted discs in the game list.

This ends up breaking the boot process for Wii
DirectoryBlobs due to workarounds being removed from the
boot process, but that will be fixed later by adding
proper DirectoryBlob support for things like TMDs.

We now expect the directories to be laid out in a certain
format (based on the format that WIT uses) instead of requiring
the user to set the DVD root and apploader path settings.
2017-08-01 11:36:40 +02:00
JosJuice
5f8935932d Blob: Add interface for reading decrypted Wii data directly
This is useful for blob types that store Wii data unencrypted
(such as WIA and discs extracted to directories) so that
we don't have to waste CPU time encrypting in the blob code
just to decrypt right afterwards in the volume code.
2017-08-01 11:36:40 +02:00
JosJuice
878869488d Boot: Consider DOL/ELF files as possible volumes
The old approach to detecting DOL/ELF files doesn't fit
with the new way of implementing extracted discs.

The game list is already doing it in a way that's similar
to the approach that this commit uses.
2017-08-01 11:36:40 +02:00
Leo Lam
764c93f932 Merge pull request #5683 from JosJuice/volume-wii-defer
VolumeWii: Defer loading tickets, TMDs and keys until when needed
2017-08-01 17:11:30 +08:00
Leo Lam
c4b2aa88ec Merge pull request #5690 from ligfx/removecoreaudio
Remove CoreAudio audio backend
2017-08-01 16:42:01 +08:00
Leo Lam
4dcc931d97 Merge pull request #5855 from leoetlino/config-reload
Config: Reload game INI on title change
2017-08-01 13:40:05 +08:00
Stenzek
fe65b26d53 Merge pull request #5834 from stenzek/bc7
Support loading BC7 (BPTC) textures from DDS files
2017-08-01 12:39:19 +10:00
Stenzek
b93d118cef Merge pull request #5857 from stenzek/drop-force-ubershader-settings
VideoConfig: Drop force vertex/pixel ubershader settings
2017-08-01 12:01:33 +10:00
Stenzek
63305e9173 HiresTextures: Support loading BC7 (BPTC) from DDS files 2017-08-01 11:59:38 +10:00
Stenzek
d18988f41e GLExtensions: Add GL_ARB_texture_compression_bptc 2017-08-01 11:58:57 +10:00
Jocelyn Turcotte
200fb26148 Fix axis not working with Switch Pro controller on macOS
Each axis would appear as multiple elements with 0 min/max.
Filter the list of elements using the correct usage page like
done for buttons.
2017-08-01 01:58:30 +02:00
spycrab
84b44fa467 Qt: Implement logging widget (+ configuration) 2017-08-01 01:36:08 +02:00
spycrab
962d684ca2 Qt: Implement logging settings and signals 2017-08-01 01:36:08 +02:00
spycrab
5b733b8710 Qt: Add log menubar options 2017-08-01 01:36:08 +02:00
Léo Lam
4129aa2438 Config: Reload game INI on title change
Enables any code that uses OnionConfig to use the correct config for
the current title, not just the first title that was booted.
2017-07-31 22:44:32 +08:00
Leo Lam
131c97e87c Merge pull request #5853 from leoetlino/onionconfig-fix
Config: Fix the loader Load() being called twice
2017-07-31 22:43:32 +08:00
Léo Lam
f5fd183571 Config: Fix the loader Load() being called twice
The Config::AddLoadLayer functions call Load on the layer
explicitly, but Load is already called in the constructor,
so they'd cause the loader's Load function to be called twice,
which is potentially expensive considering we have to read an INI
from the host filesystem.

This commit removes the Config::AddLoadLayer functions because
they don't appear to be necessary.
2017-07-31 22:32:05 +08:00
Stenzek
852e30bb8c Ubershaders: Fix 6-bit color truncation not being applied 2017-08-01 00:01:09 +10:00
Stenzek
d62dcd397d VideoConfig: Drop force vertex/pixel ubershader settings
This was mainly included for debugging, but could end up being confusing
for users, as well as polluting the GL program cache with a mix of uber
and specialized shaders if the option was changed.
2017-07-31 23:21:38 +10:00
Léo Lam
23ae756192 WX: Automatically pause the core for the JIT menu items
Removes the need to manually pause the core, select the menu item and
then unpause.
2017-07-31 17:31:26 +08:00
Léo Lam
f777c01c5d WX/Debugger: Clean up event handling
Boot to Pause and Automatic Start are not JIT or CPU menu items,
so they are supposed to be handled by OnCPUMode.
2017-07-31 17:31:26 +08:00
Léo Lam
603762ec4d Config: Fix returned game INI filenames for title IDs
Using the first letter or the 3 letters of the ID only makes sense
if the ID is an actual game ID (which has 6 characters).
2017-07-31 17:00:44 +08:00
Leo Lam
ed331918f0 Merge pull request #5851 from leoetlino/sysconf-fix
SysConf: Fix writing a new SYSCONF
2017-07-31 16:45:06 +08:00
Leo Lam
279c80b414 Merge pull request #5852 from leoetlino/wiimotes
Core: Reset s_wants_determinism on shutdown
2017-07-31 16:44:05 +08:00
Leo Lam
c11172497f Merge pull request #5840 from leoetlino/wx-focus-fix
WX: Fix 'renderer has focus' returning false after start
2017-07-31 16:43:53 +08:00
Leo Lam
ca49de80c5 Merge pull request #5826 from JonnyH/WIP/add-option-to-prefer-GLES-when-using-EGL
Add "PreferGLES" option to EGL GLInterface
2017-07-31 16:43:38 +08:00
Léo Lam
311cfe9223 Core: Reset s_wants_determinism on shutdown
Without doing this, Core::WantsDeterminism() will keep returning true
and some GUI options may be disabled for no reason.
2017-07-31 15:38:39 +08:00
Léo Lam
b5e7c417ff SysConf: Fix writing a new SYSCONF
On Windows, File::GetTempFilenameForAtomicWrite returns a path
somewhere in C:\Users\XXX\AppData\Local\Temp\{UUID here}\
in which all writes just fail.

Just use the SYSCONF path + ".tmp" for the temporary file name.
2017-07-31 15:18:43 +08:00
Lioncash
f6c21e002b General: Remove unnecessary semicolons 2017-07-30 16:39:53 -04:00
Lioncash
b3c1bff34b SysConf: Add explicit to single-argument constructor
Prevents implicit construction from FromWhichRoot values.
2017-07-30 15:35:16 -04:00
Léo Lam
072991fa31 Force ticket to have a correct key index for importing
This commit changes the import code to ensure the common key index
in the ticket is correct, as it's checked by IOS.
2017-07-31 00:50:19 +08:00
Léo Lam
a1f75f3370 Analytics: Report a few more video settings
* per-pixel lighting
* usershader mode
* fast depth
* vertex rounding
2017-07-30 21:50:33 +08:00
Tom Boshoven
fa683adaf5 SDHC documentation and cleanups.
Added some more comments.

Cleanups based on PR feedback.

Comment was unclear.
2017-07-30 13:06:38 +02:00
Léo Lam
f0aa454662 WX: Fix 'renderer has focus' returning false after start
The main window was already active, so the activate event was never
emitted, and m_renderer_has_focus was never changed.
2017-07-30 17:48:54 +08:00
Stenzek
b154edb4fb VideoCommon: Move WM_USER_CREATE message to after backend initialization
Fixes the mouse cursor being left visible after ubershader
precompilation when the hide option is checked.
2017-07-30 17:43:59 +10:00
Stenzek
d54ca2a16a PixelShaderGen: Don't include host early z support in UID
Disable it at shader generation time instead. This way the UIDs are
sharable.
2017-07-30 17:43:59 +10:00
Stenzek
e968c191ff Ubershaders: Support per-pixel lighting 2017-07-30 17:43:59 +10:00
Stenzek
c8f31656cb VideoBackends: Support a different number of threads for precompiling
At runtime, we only really want a single shader compiler thread.
However, for initial boots, we can use a higher number to speed things
up.
2017-07-30 17:43:59 +10:00