Commit Graph

26334 Commits

Author SHA1 Message Date
Léo Lam 2b44e1b851 IOS/USB: Fix initial device scan
Even though libusb is supposed to be thread-safe, in practice
it's not (at least on Windows); getting a list of devices from two
different threads can result in libusb crashes. This is easily
fixed by waiting for the scan thread to complete scanning instead
of running the scan on the CPU thread.

This also fixes an issue that I had overlooked in the initial
implementation: IOS interfaces such as OH0 are sometimes opened
every frame, in which case we were doing a full device scan every
single frame on the CPU thread!
2019-05-21 19:07:30 +02:00
Léo Lam b274a054a9 IOS/VEN: Read cancel endpoint correctly
Fixes an embarrassing bug that made the implementation utterly useless.

This fixes Your Shape hanging on shutdown. The game was waiting for an
interrupt transfer to be cancelled, and Dolphin wasn't cancelling
transfers on the correct endpoint.
2019-05-21 19:07:30 +02:00
Léo Lam d7e23d71f8 IOS/VEN: Return -4 when no transfer was cancelled
Simple accuracy fix.
2019-05-21 19:07:30 +02:00
Léo Lam 4c6ef81291 IOS/USB: Verify that isochronous req buffer size is consistent
To catch possible bugs.
2019-05-21 19:07:30 +02:00
Léo Lam a6da38d75d IOS/USB: Fix TransferCommand length type
The total buffer size for isochronous transfers should be a u32,
not a u16. It is easy to hit the bug with devices such as cameras,
which require larger buffers.

This fixes Your Shape.

This also fixes the length type for bulk and interrupt transfers,
which should be u32 as that's what IOS supports. I'm not sure why
I made them u16... probably because OH0 uses u16 for most lengths...
2019-05-21 19:07:30 +02:00
Léo Lam 5226d6103a IOS/USB: Add debug logging for all transfers
This makes debugging USB issues easier.
2019-05-21 19:07:29 +02:00
TryTwo 86d1e6cd7e Qt/Debugger: Improve Code View
* Use font based sizing for row height. Fits more rows on screen.
* Adds whitespace for better formatting and minimum column width.
  Helps prevent frequent resizing while scrolling.
2019-05-11 17:48:49 +02:00
Miksel12 ee8226cc1b Set Cubeb as default on Windows
Cubeb and Xaudio2 are identical in features while Cubeb has lower
latency and is still actively being worked on.
2019-05-11 14:22:03 +02:00
Léo Lam 2f89a50318
Merge pull request #7778 from jordan-woyak/wheel-accel-brake
SI/GCSteeringWheel: Allow simultaneous use of accelerator and brake.
2019-05-11 12:24:19 +02:00
Léo Lam 57743637de
Merge pull request #8088 from Pokechu22/modal-control-mapping
Allow interacting with the render window while configuring controllers
2019-05-11 10:45:28 +02:00
Léo Lam e35ccd5a9a
Merge pull request #8091 from leoetlino/traversal-chrono
TraversalServer: use C++ <chrono> instead of gettimeofday
2019-05-11 10:44:49 +02:00
Anthony 3ab06dcd02
Merge pull request #8016 from jordan-woyak/emu-wm-ir-rename
WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward actions.
2019-05-10 19:16:40 -07:00
Anthony 46561cc242
Merge pull request #8092 from leoetlino/double-switcheroo
Core/AddressSpace & Qt/Debugger: Fix parameter order mixup
2019-05-10 19:11:01 -07:00
Anthony e66d25312e
Merge pull request #8090 from stenzek/video-buffer-reset
CommandProcessor: Don't reset the video buffer when FIFO distance is changed
2019-05-10 19:10:39 -07:00
Léo Lam e66547d6e5 Qt: Fix AddressSpace::WriteXXX parameter order mixup 2019-05-11 00:16:27 +02:00
Léo Lam d00711b34f AddressSpace: Fix PowerPC::HostWrite_XXX parameter order mixup 2019-05-11 00:15:15 +02:00
Jordan Woyak f74f49383c SI/GCSteeringWheel: Allow simultaneous use of accelerator and brake. 2019-05-10 17:11:43 -05:00
Michael M 916a97b869 TraversalServer: use C++ <chrono> instead of gettimeofday 2019-05-10 21:33:26 +02:00
Pokechu22 7c80fcde53 Allow interacting with the render window while configuring controllers
WindowModal allows alt+tabing to the render window, but prohibits interaction
with parent windows (controller settings window and the main dolphin window).
2019-05-10 11:27:36 -07:00
Léo Lam e7bc86881d
Merge pull request #8056 from JosJuice/more-enums-to-constexpr
Turn more enum constants into constexpr
2019-05-10 18:52:52 +02:00
Stenzek 3e29fdb4a7 CommandProcessor: Don't reset the video buffer when FIFO distance is changed
This prevents partially-processed commands from being lost when switching buffers.
2019-05-11 00:31:37 +10:00
Léo Lam 672e8d78c6
Merge pull request #7994 from faxx1080/qt_adddebuglog
DolphinQt: Add debug log option in GUI for debug builds
2019-05-10 15:33:33 +02:00
JosJuice 8e2277e1f2 Turn more enum constants into constexpr
https://bugs.dolphin-emu.org/issues/11692#note-7
2019-05-10 15:04:16 +02:00
Léo Lam 123bbbca2c
Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
weihuoya e98f43d2af bbox minor fx 2019-05-09 17:30:17 +08:00
Jordan Woyak 374585f128 WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward mappings. 2019-05-08 20:27:41 -05:00
Léo Lam 1030dec340 DolphinQt: Use LogTypes::LOG_LEVELS instead of magic numbers
Also gets rid of two unnecessary casts.
2019-05-08 14:54:30 +02:00
Frank 57c64e57ef DolphinQt: Add debug log option in GUI for debug builds 2019-05-08 14:47:34 +02:00
Vlad Firoiu 239af3cdf9 Step MemoryWatcher at end of each video frame. 2019-05-08 11:20:59 +01:00
Léo Lam 6607d9512f
Merge pull request #8081 from jordan-woyak/structured-binding
DolphinQt: Use a structured binding.
2019-05-08 10:37:15 +02:00
Jordan Woyak 0de6b5f7fa WiimoteEmu: Implement "Drawsome" tablet. 2019-05-07 18:07:24 -05:00
JosJuice 91f5d577cc
Merge pull request #8084 from leoetlino/wiisave-sign
WiiSave: Fix save signing
2019-05-07 14:43:50 +02:00
Léo Lam 2740ff9a9d WiiSave: Fix save signing
The system menu is passing the SHA1 hash of the save data to ES
to sign, not the save data itself.

Fixes save import in the System Menu for saves that were exported
by Dolphin.
2019-05-07 01:09:48 +02:00
Jordan Woyak f055d37346 WiimoteEmu: Add game quirk report for reading of EXT/IR input directly, which will fail with TAS/NetPlay. 2019-05-06 15:36:05 -05:00
Jordan Woyak 6ebd35d511 DolphinQt: Use a structured binding. 2019-05-06 15:33:57 -05:00
Techjar ff972e3673 Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Vlad Firoiu f4d950f4e2 Revert "Core: Remove MemoryWatcher"
This reverts commit 0c02e77eee.
2019-05-05 21:43:45 +01:00
JosJuice bb1ed46753 Use [[fallthrough]] in DiscExtractor
This was missed in PR 6273 because the fallthrough was added to
DiscExtractor after that PR was created.
2019-05-05 10:35:45 +02:00
Léo Lam 9133e8f1be Require CMake 3.10 and use CMAKE_CXX_STANDARD
Removes the need to add -std= flags manually. CMake 3.10 is available
in Ubuntu 18.04, which is the oldest LTS version we support.
2019-05-05 00:13:13 +02:00
Léo Lam ab9ece9bca Replace MathUtil::Clamp with std::clamp 2019-05-04 23:12:17 +02:00
Léo Lam 6f84984b7b Use attribute [[fallthrough]] 2019-05-04 23:04:18 +02:00
Léo Lam cb168f22d6 Replace custom UNUSED macro with [[maybe_unused]] 2019-05-04 23:04:18 +02:00
Léo Lam 04c8201c32 Enable C++17
All supported platforms now have easy access to a compiler with C++17
support.

C++17 potentially allows for some nice cleanups and removes the need
for standard library backports (optional/variant).

See discussion at https://dolp.in/pr6264#discussion_r158134178
2019-05-04 23:04:18 +02:00
Léo Lam 99a4ca8de7
Merge pull request #7839 from ShFil119/impr/redundant
Remove redundant initialization
2019-05-04 22:50:51 +02:00
Léo Lam afa46aaf43
Merge pull request #7887 from lioncash/hid
DolphinQt/Debugger/RegisterColumn: Add HID registers to the register pane
2019-05-04 22:33:45 +02:00
Léo Lam 623b37d928
Merge pull request #8053 from jordan-woyak/profile-dropdown-fix
DolphinQt: Profile combobox fixes.
2019-05-04 21:37:06 +02:00
Connor McLaughlin 184f334158
Merge pull request #8074 from Qyriad/fixes/set-user-dir-properly
UICommon: Properly set user dir if ./user is a file (not a directory)
2019-05-04 16:15:00 +10:00
Techjar 1dd8263375 Qt/NetPlayDialog: Fix checksum menu being visible for everyone
The wrong function was used to attempt to hide the menu. Non-hosts will
segfault upon trying to use it as they don't have a server instance.
2019-05-04 01:54:57 -04:00
Mikaela Szekely 8fe7e271f3
UICommon: Properly set user dir if ./user is a file (not a directory) 2019-05-03 23:30:50 -06:00
Jordan Woyak 6784225573 DolphinQt: Profile combobox fixes. 2019-05-03 16:29:22 -05:00