Commit Graph

22716 Commits

Author SHA1 Message Date
Léo Lam
c8a6dc6c23 Use a single libusb context
libusb on Windows is limited to only a single context. Trying to open
more than one can cause device enumerations to fail randomly.

libusb is thread-safe and we don't use the manual polling support (with
`poll()`) so this should be safe.
2017-02-05 11:36:48 +01:00
Léo Lam
73e55ccf44 IOS: Add base Host and USB::Device classes
The Host class will be used by the OH0, VEN and HID implementations
as the base class for the IOS HLE device. It handles scanning devices,
detecting device changes and everything that will be needed for OH0,
VEN and HID to be implemented, while mostly abstracting libusb away.

The Device class is for actual USB devices. This commit adds a
LibusbDevice which interacts with a real USB device and enables
USB passthrough.
2017-02-05 11:36:47 +01:00
Léo Lam
b8c651eac4 IOS: Store the active IOS title ID
This allows us to get back the current active IOS version and expose
only devices which exist/can be used in that version.
2017-02-05 11:36:47 +01:00
Léo Lam
e246afb049 IOS: Add UpdateWantDeterminism to devices
This will be useful for the USB devices to disconnect and hide any real
devices when Core::g_want_determinism is true.
2017-02-05 11:36:47 +01:00
Léo Lam
b7cc25535f DolphinWX: Add USB passthrough settings
Allows adding/removing devices from USB passthrough.
2017-02-05 11:36:47 +01:00
Léo Lam
69a13a12e2 Add USB passthrough setting and USBUtils
This adds a USB passthrough setting to ConfigManager and everything
needed for the UI to show and manage the whitelist properly.
2017-02-05 11:36:46 +01:00
JosJuice
e4d20647d4 Merge pull request #4824 from lioncash/coremode
PowerPC: Convert CoreMode enum into an enum class
2017-02-05 08:25:12 +01:00
Lioncash
f7b9db9846 PowerPC: Convert CoreMode enum into an enum class
Prevents constants from polluting the namespace.
2017-02-04 19:34:56 -05:00
Matthew Parlane
567691d3f6 Merge pull request #4821 from leoetlino/gameinis
GameINI: Enable XFB for Karaoke Revolution Glee 1-3
2017-02-05 12:17:04 +13:00
Léo Lam
fa3d1e117f GameINI: Enable XFB for Karaoke Revolution Glee 1-3
This prevents the games from flickering.
2017-02-04 23:12:49 +01:00
Markus Wick
3be364073d Merge pull request #4713 from JosJuice/core-init-gameini
Don't load game INIs in Core::Init
2017-02-04 08:32:03 +01:00
Markus Wick
2ad62bf5df Merge pull request #4777 from lioncash/dspstack
DSPCore: Convert DSP stack register enum into an enum class
2017-02-04 08:27:11 +01:00
Markus Wick
72d887cb20 Merge pull request #4816 from lioncash/pair
FramebufferManagerBase: Return a std::pair from GetTargetSize
2017-02-04 08:21:52 +01:00
Mat M
ced0044059 Merge pull request #4819 from Orphis/cmake_cleanup
Small CMake cleanups
2017-02-03 22:11:52 -05:00
Florent Castelli
049446d9bb cmake: Properly link against pthread on Linux using CMake's detection 2017-02-04 03:38:20 +01:00
Florent Castelli
fb02a321b6 cmake: Move OpenSLES detection to AudioCommon through find_package() 2017-02-04 03:38:11 +01:00
Matthew Parlane
529dc6aa53 Merge pull request #4811 from lioncash/memcardmanager
MemcardManager: Minor changes
2017-02-04 10:09:01 +13:00
Matthew Parlane
e2b0197ff6 Merge pull request #4807 from leoetlino/ios-version-for-wads
Remove unneeded write to 0x3140/0x3188 for WADs
2017-02-04 10:08:29 +13:00
Matthew Parlane
6821733053 Merge pull request #4815 from endrift/forward-port-deploy-mac
Tools: Fix recurring multiple times over the same library in deploy-mac.py
2017-02-04 10:08:06 +13:00
JosJuice
edcf6819e2 Don't load game INIs in Core::Init
The game INIs are already loaded in BootManager::BootCore,
which is executed right before. Let's put the g_aspect_wide
code there instead.
2017-02-03 21:56:45 +01:00
JosJuice
c847a5258f BootManager: Use local SConfig reference when possible 2017-02-03 21:55:02 +01:00
Matthew Parlane
87c73cbeb3 Merge pull request #4812 from lioncash/define
PowerPC: Move page #define constants to MMU.cpp
2017-02-04 09:49:48 +13:00
Lioncash
c85e0a2586 FramebufferManagerBase: Return a std::pair from GetTargetSize
Keeps associated data together. It also eliminates the possibility of out
parameters not being initialized properly. For example, consider the
following example:

-- some FramebufferManager implementation --

void FBMgrImpl::GetTargetSize(u32* width, u32* height) override
{
  // Do nothing
}

-- somewhere else where the function is used --

u32 width, height;
framebuffer_manager_instance->GetTargetSize(&width, &height);

if (texture_width != width) <-- Uninitialized variable usage
{
  ...
}

It makes it much more obvious to spot any initialization issues, because
it requires something to be returned, as opposed to allowing an
implementation to just not do anything.
2017-02-03 15:27:53 -05:00
Vicki Pfau
17989028b0 Tools: Fix recurring multiple times over the same library in deploy-mac.py 2017-02-03 09:46:28 -08:00
Mat M
2e2eabdfcb Merge pull request #4814 from ligfx/fixdeploy
CMake: actually call deploy-mac.py, don't just echo it
2017-02-03 12:27:55 -05:00
Michael Maltese
fa9881f0d2 CMake: actually call deploy-mac.py, don't just echo it 2017-02-03 09:22:30 -08:00
JosJuice
28357f16e2 Merge pull request #4813 from lioncash/include
D3D: Add CommonTypes include to D3DTexture.h
2017-02-03 18:14:17 +01:00
Lioncash
a30c653f3d D3D: Add CommonTypes include to D3DTexture.h
Resolves a compile error on the Windows CMake build.
2017-02-03 12:07:53 -05:00
Lioncash
c67d095787 PowerPC: Move page #define constants to MMU.cpp
These are only ever used here.

This also converts them into typed constants.
2017-02-03 11:48:42 -05:00
Lioncash
5ce82583f8 MemcardManager: Get rid of prefixed double-underscores from an identifier
Identifiers with prefixed double-underscores are reserved by the C++
standard.
2017-02-03 11:30:39 -05:00
Lioncash
9d523f52f2 MemcardManager: Convert C arrays to std::array 2017-02-03 11:15:46 -05:00
Mat M
a3ba169e7d Merge pull request #4809 from Orphis/cmake_windows
CMake for Windows: getting a working binary!
2017-02-03 08:33:13 -05:00
Mat M
7f2bb0ba6c Merge pull request #4808 from Orphis/cmake_cleanup
CMake cleanup: start organizing targets, remove some unwanted ones
2017-02-03 08:32:03 -05:00
Florent Castelli
12dd45266e portaudio: Remove unwanted shared portaudio library 2017-02-03 05:11:41 +01:00
Florent Castelli
ca42f08e7d cmake: Copy resources next to the DolphinWX binary on Windows 2017-02-03 04:54:54 +01:00
Florent Castelli
1a4f044e9e cmake: Add RC file on Windows to DolphinWX 2017-02-03 04:54:54 +01:00
Florent Castelli
3842a9b71c OpenAL: Move Windows binaries to lib folder and fix CMake detection
The module FindOpenAL is looking for the dll in a folder called lib, not x64.
This is only used on Windows x64, it's fine to remove the platform name.
2017-02-03 04:54:54 +01:00
Florent Castelli
8bd41ad606 cmake: Add missing Windows link flags 2017-02-03 04:54:30 +01:00
Florent Castelli
0d73f3e3b3 mbedtls: Remove unwanted "lib" target 2017-02-03 04:24:45 +01:00
Florent Castelli
7ccbe9b06d portaudio: Prevent files from being install()'ed 2017-02-03 04:24:13 +01:00
Florent Castelli
9180c87197 cmake: Put test targets in folders 2017-02-03 04:23:24 +01:00
Mat M
1dd229fac8 Merge pull request #4752 from Orphis/cmake_cleanup
cmake: Improve support for multi-configuration generators
2017-02-02 20:59:13 -05:00
Mat M
1b9b1a356b Merge pull request #4805 from Orphis/cmake_macos
CMake macOS fixes
2017-02-02 20:53:22 -05:00
Matthew Parlane
7f2753362f Merge pull request #4802 from lioncash/header
ShaderGenCommon: Remove unnecessary includes
2017-02-03 14:52:41 +13:00
Matthew Parlane
8b1fc5b753 Merge pull request #4806 from lioncash/memcard-dlg
MemcardManager: Use unique_ptr over raw pointers
2017-02-03 14:50:55 +13:00
Léo Lam
767cbcafb1 Remove unneeded write to 0x3140/0x3188 for WADs
This is unnecessary now that IOS::HLE is responsible for writing the
values to memory; removing the writes also prevents the IOS minor
version from being mangled (by the write to 0x3142).
2017-02-02 22:05:36 +01:00
Markus Wick
318a387e92 Merge pull request #4796 from degasus/blr
JitArm64: Initial implementation of the BLR optimization.
2017-02-02 21:24:23 +01:00
Lioncash
d72cf81dea MemcardManager: Use unique_ptr over raw pointers 2017-02-02 14:33:01 -05:00
degasus
384efb0cb2 JitArm64: Initial implementation of the BLR optimization. 2017-02-02 09:06:34 +01:00
Florent Castelli
e9aac53cec macOS: Update how resources are copied in the bundle
Instead of using install() commands, we use the MACOSX_PACKAGE_LOCATION
property, which will allow the files to be identified and updated individually
by the build system without having to remove the entire folder and copy it
each time.

deploy-mac.py is now idempotent and should be working properly, so we'll
call it all the time from now on.
2017-02-02 03:51:32 +01:00