{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4408","repository_url":"https://api.github.com/repos/dolphin-emu/dolphin","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4408/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4408/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4408/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/4408","id":186165848,"number":4408,"title":"[WIP] IOS HLE: Implement OH0 and USB_VEN","user":{"login":"leoetlino","id":4209061,"avatar_url":"https://avatars.githubusercontent.com/u/4209061?v=3","gravatar_id":"","url":"https://api.github.com/users/leoetlino","html_url":"https://github.com/leoetlino","followers_url":"https://api.github.com/users/leoetlino/followers","following_url":"https://api.github.com/users/leoetlino/following{/other_user}","gists_url":"https://api.github.com/users/leoetlino/gists{/gist_id}","starred_url":"https://api.github.com/users/leoetlino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leoetlino/subscriptions","organizations_url":"https://api.github.com/users/leoetlino/orgs","repos_url":"https://api.github.com/users/leoetlino/repos","events_url":"https://api.github.com/users/leoetlino/events{/privacy}","received_events_url":"https://api.github.com/users/leoetlino/received_events","type":"User","site_admin":false},"labels":[{"id":221808232,"url":"https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP","name":"WIP","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2016-10-30T21:30:59Z","updated_at":"2016-12-21T15:27:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/4408","html_url":"https://github.com/dolphin-emu/dolphin/pull/4408","diff_url":"https://github.com/dolphin-emu/dolphin/pull/4408.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/4408.patch"},"body":"This PR implements OH0 (`/dev/usb/oh0` and `/dev/usb/oh0/%x/%x`) and [USB_VEN](https://wiibrew.org/wiki//dev/usb/ven) (`/dev/usb/ven`), which allows passing through arbitrary USB devices (and in the future, adding emulated USB devices).\r\n\r\nUSB HID was also rewritten to use the new common USB code (to reuse code). The main difference is that HIDs must now be whitelisted, just like any other USB devices.\r\n\r\nWith these two devices implemented, Dolphin's USB support should be near complete (well, [except internal IOS devices which don't seem to be used, as well as MSC and WFS](https://i.imgur.com/3eKX237.png))\r\n\r\nTested with:\r\n* the Wii Speak (057e:0308) in the _Wii Speak Channel_ (OH0), _Wheel of Fortune_ (OH0), _Jeopardy Wii_ (OH0) :heavy_check_mark:\r\n* SanDisk USB drives (0781:5567, 0781:5572) in _WiiMC_ (libogc -- VEN, OH0) :heavy_check_mark:\r\n* [Logitech mic (046d:0a03)](https://bugs.dolphin-emu.org/issues/5079) in _Karaoke Glee_ (VEN) :heavy_check_mark: \r\n* Logitech mic (046d:0a03) in _Karaoke Revolution Presents: American Idol Encore_ (OH0), _Rock Band 3_ (OH0), U-Sing (OH0) :heavy_check_mark: \r\n* [the camera included with _Your Shape_ (057e:030a)](https://bugs.dolphin-emu.org/issues/9199) (VEN) :heavy_check_mark:\r\n* Logitech USB mouse + keyboard receiver (046d:c505) in the _Internet Channel_ (HID v4): :heavy_check_mark:\r\n* Skylanders portals (1430:0150) (HID v4): :heavy_check_mark:\r\n\r\nKnown issues:\r\n* Large isochronous packets don't seem to work on Windows; this seems to be an issue with libusb. Unfortunately I don't know enough about libusb on Windows and cannot develop on Windows, so I can't look into this myself.\r\n*  Your Shape and another camera game don't shut down on STM event, and they hang [waiting for something](http://pastie.org/private/ugn1hl3dc7sbst2rjfqvpw). (note, this is low priority and I can't easily test what's wrong).\r\n\r\nNote: libusb has been patched to allow isochronous transfers to work on Windows (thanks to @RisingFog). Only libusbk based backends can be used.\r\n\r\nThis is mostly based on reading libogc code, hardware tests and by testing with real homebrew/games/channels. Some ioctls/ioctlvs were not even documented at all, so please point out any incorrect behaviour; thanks!\r\n\r\n<!-- Reviewable:start -->\r\n\r\n---\r\n\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/dolphin-emu/dolphin/4408)\r\n\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/268550374","html_url":"https://github.com/dolphin-emu/dolphin/pull/4408#issuecomment-268550374","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4408","id":268550374,"user":{"login":"JMC47","id":6598209,"avatar_url":"https://avatars.githubusercontent.com/u/6598209?v=3","gravatar_id":"","url":"https://api.github.com/users/JMC47","html_url":"https://github.com/JMC47","followers_url":"https://api.github.com/users/JMC47/followers","following_url":"https://api.github.com/users/JMC47/following{/other_user}","gists_url":"https://api.github.com/users/JMC47/gists{/gist_id}","starred_url":"https://api.github.com/users/JMC47/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JMC47/subscriptions","organizations_url":"https://api.github.com/users/JMC47/orgs","repos_url":"https://api.github.com/users/JMC47/repos","events_url":"https://api.github.com/users/JMC47/events{/privacy}","received_events_url":"https://api.github.com/users/JMC47/received_events","type":"User","site_admin":false},"created_at":"2016-12-21T15:27:37Z","updated_at":"2016-12-21T15:27:37Z","body":"This fixes Smurfs Dance Party.  Dolphin can go into maintenance mode once this is merged as the only game worth emulating will work."}}
{"actor":{"display_login":"JMC47"}}