Commit Graph

30614 Commits

Author SHA1 Message Date
6dd0fe21f2 IOS/USB: Claim all interfaces ahead-of-time
To avoid having to claim/release interfaces all the time, and having to
trigger interface changes from several places, all interfaces are now
claimed ahead of time.

This commit also makes us avoid changing the active interface when it's
not necessary.

Changing the active interface has side effects such as resetting the
active alternate setting -- which is extremely undesirable because it
would require the emulated software to change the alternate setting
again, which isn't supposed to be necessary at all.

This fixes Your Shape, which submits isochronous transfers on an
endpoint that only exists in alt setting 6 right after submitting
control transfers (which would have reset to alt setting 0 prior to
this fix).
2019-05-24 20:47:46 +02:00
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
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
d7e23d71f8 IOS/VEN: Return -4 when no transfer was cancelled
Simple accuracy fix.
2019-05-21 19:07:30 +02:00
4c6ef81291 IOS/USB: Verify that isochronous req buffer size is consistent
To catch possible bugs.
2019-05-21 19:07:30 +02:00
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
5226d6103a IOS/USB: Add debug logging for all transfers
This makes debugging USB issues easier.
2019-05-21 19:07:29 +02:00
3bcee22f17 Merge pull request #7697 from TryTwo/Debugger_UI_CodeView_Font_Based_Sizing
Qt/Debugger: Improve Code View
2019-05-11 18:00:28 +02:00
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
a0a0a68801 Merge pull request #7972 from Miksel12/cubeb-standard
Set Cubeb as default on Windows
2019-05-11 14:31:42 +02:00
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
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
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
e35ccd5a9a Merge pull request #8091 from leoetlino/traversal-chrono
TraversalServer: use C++ <chrono> instead of gettimeofday
2019-05-11 10:44:49 +02:00
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
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
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
e66547d6e5 Qt: Fix AddressSpace::WriteXXX parameter order mixup 2019-05-11 00:16:27 +02:00
d00711b34f AddressSpace: Fix PowerPC::HostWrite_XXX parameter order mixup 2019-05-11 00:15:15 +02:00
f74f49383c SI/GCSteeringWheel: Allow simultaneous use of accelerator and brake. 2019-05-10 17:11:43 -05:00
916a97b869 TraversalServer: use C++ <chrono> instead of gettimeofday 2019-05-10 21:33:26 +02:00
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
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
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
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
8e2277e1f2 Turn more enum constants into constexpr
https://bugs.dolphin-emu.org/issues/11692#note-7
2019-05-10 15:04:16 +02:00
123bbbca2c Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
d60b0c6b37 Merge pull request #8089 from weihuoya/minor-fx
Some minor fix
2019-05-09 23:38:53 +10:00
e98f43d2af bbox minor fx 2019-05-09 17:30:17 +08:00
374585f128 WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward mappings. 2019-05-08 20:27:41 -05:00
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
57c64e57ef DolphinQt: Add debug log option in GUI for debug builds 2019-05-08 14:47:34 +02:00
239af3cdf9 Step MemoryWatcher at end of each video frame. 2019-05-08 11:20:59 +01:00
5ca9933307 Merge pull request #8072 from Craftyawesome/r3m-ini
Fix loading screens on Metroid Prime Trilogy
2019-05-08 11:18:03 +02:00
6607d9512f Merge pull request #8081 from jordan-woyak/structured-binding
DolphinQt: Use a structured binding.
2019-05-08 10:37:15 +02:00
a2e4b722f9 Merge pull request #8080 from jordan-woyak/drawsome-tablet
WiimoteEmu: Implement "Drawsome" tablet.
2019-05-08 10:20:54 +02:00
0de6b5f7fa WiimoteEmu: Implement "Drawsome" tablet. 2019-05-07 18:07:24 -05:00
91f5d577cc Merge pull request #8084 from leoetlino/wiisave-sign
WiiSave: Fix save signing
2019-05-07 14:43:50 +02:00
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
6cc1e7cfdb Merge pull request #8054 from jordan-woyak/emu-wm-determinism-check
WiimoteEmu: Report game quirk on direct read of EXT/IR input.
2019-05-06 23:20:17 +02:00
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
6ebd35d511 DolphinQt: Use a structured binding. 2019-05-06 15:33:57 -05:00
6f6c7e5df0 Merge pull request #8083 from Techjar/clang-7-format
Reformat repo to clang-format 7.0 rules
2019-05-06 21:42:07 +02:00
ff972e3673 Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
d347867f2e Merge pull request #8082 from Techjar/update-lint
Update lint.sh to clang-format 7.0
2019-05-06 20:46:28 +02:00
a72f56f558 Update lint.sh to clang-format 7.0 2019-05-05 19:25:42 -04:00
f4d950f4e2 Revert "Core: Remove MemoryWatcher"
This reverts commit 0c02e77eee.
2019-05-05 21:43:45 +01:00
7aa591bbd8 Merge pull request #8079 from Qyriad/docs/contributing-use-c++17
Document that the codebase now uses C++17 in Contributing.md
2019-05-05 16:14:38 -04:00
0c38943ee1 Document that the codebase uses C++17 in Contributing.md 2019-05-05 10:03:39 -06:00
4fdd403562 Merge pull request #8078 from JosJuice/fallthrough
Use [[fallthrough]] in DiscExtractor
2019-05-05 10:44:10 +02:00