Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sys_usbd implementation #5688

Merged
merged 3 commits into from Sep 16, 2019
Merged

sys_usbd implementation #5688

merged 3 commits into from Sep 16, 2019

Conversation

RipleyTom
Copy link
Contributor

@RipleyTom RipleyTom commented Feb 25, 2019

sys_usbd implementation with:
-Passthrough implementation for
*Guitar Hero/Harmonix Guitars/Drums(untested)
*DJ Hero Turntable(Both DJ Hero 1&2 work perfectly)
*Skylander Portal(working)
*Singstar Microphone(untested and probably broken)
*Various wheels supported by GT5/GT6(G27 tested working on GT5/GT6)

-Framework for USB device emulation with:
*Fake Skylanders Portal basic implementation(Manager=>Skylanders Portal to config, each file represent a figure). Tested only with Skylanders SWAP Team.

To make it work on linux:
You need to add:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
To a rule file in /etc/udev/rules.d/
Note that this give r/w access to all usb devices by default, if you want to specify a specific device you can use:
SUBSYSTEM=="usb", ATTRS{idVendor}=="ABCD", ATTRS{idProduct}=="1234", MODE="0666"
changing idVendor&idProduct values to the VID/PID of the device you want to allow.

To make it work on windows:
You need to change the driver of the accessory you want to use to WinUsb one with zadig: https://zadig.akeo.ie/
You can revert drivers through device manager, the device will be listed under "Universal Serial Bus Devices", right click on it, Properties => Driver => Update Driver => Browse my computer for driver software => Let me pick... => USB Input Device(or whatever the previous driver was).

Copy link
Contributor

@kd-11 kd-11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any plans to refactor the DS3 handler and the work here? The passthrough class could be useful in a general-purpose manner and would reduce amount of replicated code. Or maybe implement DS3 adapter via sys_usbd? Just brainstorming here.

@RipleyTom
Copy link
Contributor Author

DS3 actually goes through sys_hid_manager syscalls in lv2 and 95% of what we do in cellPad actually happens in those syscalls so there is really no motivation to implement those and lle cellPad.

Copy link
Contributor

@elad335 elad335 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use sys_event_queue for usbd events, create it with SYS_SYNC_PRIORITY protocol and 0x10 size. (as the kernel does)
This will fix ppu scheduling traits and make the code a little more compact.

@RipleyTom RipleyTom changed the title sys_usbd implementation [WIP] sys_usbd implementation Apr 16, 2019
@RipleyTom
Copy link
Contributor Author

Added a proof of concept emulator for skylander portal, tested with Skylanders SWAP force.
Manager to add/load figure is under Manage=>Skylanders Portal.
I might add more to it later.

Also added proper IDs for DJ Hero Turn Table, Harmonix/GH guitars/drums for passthrough.

@RipleyTom
Copy link
Contributor Author

Added the VIDs/PIDs of all supported devices by GT5.
Thanks to Kirbyguy for providing logs & testing that it worked!

@k10kan
Copy link

k10kan commented Apr 24, 2019

Every Skylander is a member of exactly one element. It would be useful to associate each skylander object with corresponding element. Could be used for better / shorter / quicker emulated portal list selection.

According to https://skylanders.fandom.com/wiki/Main_Page there are 11 elements across all six Skylanders titles.

Element Skylanders: Spyro's Adventure
Skylanders: Giants
Skylanders: Swap Force
Skylanders: Trap Team
Skylanders: SuperChargers
Skylanders: Imaginators Total
Air x x x 33
Dark - x x 6
Earth x x x 32
Fire x x x 33
Kaos - - x 1
Life x x x 35
Light - x x 6
Magic x x x 33
Tech x x x 34
Undead x x x 32
Water x x x 33

Total: 278

Pairs of "skylander":"element" grouped per titles...

Skylanders: Spyro's Adventure

{
"Bash" : "Earth",
"Boomer" : "Tech",
"Camo" : "Life",
"Chop Chop" : "Undead",
"Cynder" : "Undead",
"Dino-Rang" : "Earth",
"Double Trouble" : "Magic",
"Drill Sergeant" : "Tech",
"Drobot" : "Tech",
"Eruptor" : "Fire",
"Flameslinger" : "Fire",
"Ghost Roaster" : "Undead",
"Gill Grunt" : "Water",
"Hex" : "Undead",
"Ignitor" : "Fire",
"Lightning Rod" : "Air",
"Prism Break" : "Earth",
"Slam Bam" : "Water",
"Sonic Boom" : "Air",
"Spyro" : "Magic",
"Stealth Elf" : "Life",
"Stump Smash" : "Life",
"Sunburn" : "Fire",
"Terrafin" : "Earth",
"Trigger Happy" : "Tech",
"Voodood" : "Magic",
"Warnado" : "Air",
"Wham-Shell" : "Water",
"Whirlwind" : "Air",
"Wrecking Ball" : "Magic",
"Zap" : "Water",
"Zook" : "Life",
}

Skylanders: Giants

{
"Bouncer" : "Tech",
"Crusher" : "Earth",
"Eye-Brawl" : "Undead",
"Hot Head" : "Fire",
"Ninjini" : "Magic",
"Swarm" : "Air",
"Thumpback" : "Water",
"Tree Rex" : "Life",
"Chill" : "Water",
"Flashwing" : "Earth",
"Fright Rider" : "Undead",
"Hot Dog" : "Fire",
"Jet-Vac" : "Air",
"Pop Fizz" : "Magic",
"Shroomboom" : "Life",
"Sprocket" : "Tech",
"Bash S2" : "Earth",
"Chop Chop S2" : "Undead",
"Cynder S2" : "Undead",
"Double Trouble S2" : "Magic",
"Drill Sergeant S2" : "Tech",
"Drobot S2" : "Tech",
"Eruptor S2" : "Fire",
"Flameslinger S2" : "Fire",
"Gill Grunt S2" : "Water",
"Hex S2" : "Undead",
"Ignitor S2" : "Fire",
"Lightning Rod S2" : "Air",
"Prism Break S2" : "Earth",
"Slam Bam S2" : "Water",
"Sonic Boom S2" : "Air",
"Spyro S2" : "Magic",
"Stealth Elf S2" : "Life",
"Stump Smash S2" : "Life",
"Terrafin S2" : "Earth",
"Trigger Happy S2" : "Tech",
"Whirlwind S2" : "Air",
"Wrecking Ball S2" : "Magic",
"Zap S2" : "Water",
"Zook S2" : "Life",
"LightCore Chill" : "Water",
"LightCore Drobot" : "Tech",
"LightCore Eruptor" : "Fire",
"LightCore Hex" : "Undead",
"LightCore Jet-Vac" : "Air",
"LightCore Pop Fizz" : "Magic",
"LightCore Prism Break" : "Earth",
"LightCore Shroomboom" : "Life",
}

Skylanders: Swap Force

{
"Blast Zone" : "Fire",
"Boom Jet" : "Air",
"Doom Stone" : "Earth",
"Free Ranger" : "Air",
"Freeze Blade" : "Water",
"Fire Kraken" : "Fire",
"Grilla Drilla" : "Life",
"Hoot Loop" : "Magic",
"Magna Charge" : "Tech",
"Night Shift" : "Undead",
"Rattle Shake" : "Undead",
"Rubble Rouser" : "Earth",
"Spy Rise" : "Tech",
"Stink Bomb" : "Life",
"Trap Shadow" : "Magic",
"Wash Buckler" : "Water",
"Bumble Blast" : "Life",
"Countdown" : "Tech",
"Dune Bug" : "Magic",
"Fryno" : "Fire",
"Grim Creeper" : "Undead",
"Pop Thorn" : "Air",
"Punk Shock" : "Water",
"Rip Tide" : "Water",
"Roller Brawl" : "Undead",
"Scorp" : "Earth",
"Scratch" : "Air",
"Slobber Tooth" : "Earth",
"Smolderdash" : "Fire",
"Star Strike" : "Magic",
"Wind-Up" : "Tech",
"Zoo Lou" : "Life",
"Anchors Away Gill Grunt" : "Water",
"Big Bang Trigger Happy" : "Tech",
"Blizzard Chill" : "Water",
"Fire Bone Hot Dog" : "Fire",
"Heavy Duty Sprocket" : "Tech",
"Horn Blast Whirlwind" : "Air",
"Hyper Beam Prism Break" : "Earth",
"Knockout Terrafin" : "Earth",
"Lava Barf Eruptor" : "Fire",
"Mega Ram Spyro" : "Magic",
"Ninja Stealth Elf" : "Life",
"Phantom Cynder" : "Undead",
"Super Gulp Pop Fizz" : "Magic",
"Thorn Horn Camo" : "Life",
"Turbo Jet-Vac" : "Air",
"Twin Blade Chop Chop" : "Undead",
"LightCore Bumble Blast" : "Life",
"LightCore Countdown" : "Tech",
"LightCore Flashwing" : "Earth",
"LightCore Grim Creeper" : "Undead",
"LightCore Smolderdash" : "Fire",
"LightCore Star Strike" : "Magic",
"LightCore Warnado" : "Air",
"LightCore Wham-Shell" : "Water",
}

Skylanders: Trap Team

{
"Blastermind" : "Magic",
"Bushwhack" : "Life",
"Enigma" : "Magic",
"Gearshift" : "Tech",
"Gusto" : "Air",
"Head Rush" : "Earth",
"Jawbreaker" : "Tech",
"Ka-Boom" : "Fire",
"Knight Light" : "Light",
"Knight Mare" : "Dark",
"Krypt King" : "Undead",
"Lob-Star" : "Water",
"Short Cut" : "Undead",
"Snap Shot" : "Water",
"Thunderbolt" : "Air",
"Tuff Luck" : "Life",
"Wallop" : "Earth",
"Wildfire" : "Fire",
"Bat Spin" : "Undead",
"Blackout" : "Dark",
"Blades" : "Air",
"Cobra Cadabra" : "Magic",
"Chopper" : "Tech",
"Déjà Vu" : "Magic",
"Echo" : "Water",
"Fist Bump" : "Earth",
"Fling Kong" : "Air",
"Flip Wreck" : "Water",
"Food Fight" : "Life",
"Funny Bone" : "Undead",
"High Five" : "Life",
"Rocky Roll" : "Earth",
"Spotlight" : "Light",
"Torch" : "Fire",
"Trail Blazer" : "Fire",
"Tread Head" : "Tech",
"Fizzy Frenzy Pop Fizz" : "Magic",
"Full Blast Jet-Vac" : "Air",
"Hog Wild Fryno" : "Fire",
"Sure Shot Shroomboom" : "Life",
"Tidal Wave Gill Grunt" : "Water",
"Barkley" : "Life",
"Bop" : "Earth",
"Breeze" : "Air",
"Drobit" : "Tech",
"Eye-Small" : "Undead",
"Gill Runt" : "Water",
"Hijinx" : "Undead",
"Mini-Jini" : "Magic",
"Pet-Vac" : "Air",
"Small Fry" : "Fire",
"Spry" : "Magic",
"Terrabite" : "Earth",
"Thumpling" : "Water",
"Trigger Snappy" : "Tech",
"Weeruptor" : "Fire",
"Whisper Elf" : "Life",
"Elite Chop Chop" : "Undead",
"Elite Eruptor" : "Fire",
"Elite Gill Grunt" : "Water",
"Elite Spyro" : "Magic",
"Elite Stealth Elf" : "Life",
"Elite TerraFin" : "Earth",
"Elite Trigger Happy" : "Tech",
"Elite Whirlwind" : "Air",
}

Skylanders: SuperChargers

{
"Astroblast" : "Light",
"Big Bubble Pop Fizz" : "Magic",
"Bone Bash Roller Brawl" : "Undead",
"Deep Dive Gill Grunt" : "Water",
"Dive-Clops" : "Water",
"Double Dare Trigger Happy" : "Tech",
"Fiesta" : "Undead",
"Hammer Slam Bowser" : "Fire",
"High Volt" : "Tech",
"Hurricane Jet-Vac" : "Air",
"Lava Lance Eruptor" : "Fire",
"Nightfall" : "Dark",
"Shark Shooter Terrafin" : "Earth",
"Smash Hit" : "Earth",
"Spitfire" : "Fire",
"Splat" : "Magic",
"Stormblade" : "Air",
"Super Shot Stealth Elf" : "Life",
"Thrillipede" : "Life",
"Turbo Charge Donkey Kong" : "Life",
"Barrel Blaster - Vehicle" : "Tech",
"Burn-Cycle - Vehicle" : "Fire",
"Buzz Wing - Vehicle" : "Life",
"Clown Cruiser - Vehicle" : "Air",
"Crypt Crusher - Vehicle" : "Undead",
"Dive Bomber - Vehicle" : "Water",
"Gold Rusher - Vehicle" : "Tech",
"Hot Streak - Vehicle" : "Fire",
"Jet Stream - Vehicle" : "Air",
"Reef Ripper - Vehicle" : "Water",
"Sea Shadow - Vehicle" : "Dark",
"Shark Tank - Vehicle" : "Earth",
"Shield Striker - Vehicle" : "Tech",
"Sky Slicer - Vehicle" : "Air",
"Soda Skimmer - Vehicle" : "Magic",
"Splatter Splasher - Vehicle" : "Magic",
"Stealth Stinger - Vehicle" : "Life",
"Sun Runner - Vehicle" : "Light",
"Thump Truck - Vehicle" : "Earth",
"Tomb Buggy - Vehicle" : "Undead",
"Elite Boomer" : "Tech",
"Elite Dino-Rang" : "Earth",
"Elite Ghost Roaster" : "Undead",
"Elite Slam Bam" : "Water",
"Elite Voodood" : "Magic",
"Elite Zook" : "Life",
}

Skylanders: Imaginators

{
"Air Strike" : "Air",
"Ambush" : "Life",
"Aurora" : "Light",
"Barbella" : "Earth",
"Boom Bloom" : "Life",
"Buckshot" : "Magic",
"Chain Reaction" : "Tech",
"Chopscotch" : "Undead",
"Ember" : "Fire",
"Flare Wolf" : "Fire",
"King Pen" : "Water",
"Mysticat" : "Magic",
"Pit Boss" : "Undead",
"Ro-Bow" : "Tech",
"Starcast" : "Dark",
"Tidepool" : "Water",
"Tri-Tip" : "Earth",
"Wild Storm" : "Air",
"Bad Juju" : "Air",
"Blaster-Tron" : "Light",
"Chompy Mage" : "Life",
"Dr. Krankcase" : "Tech",
"Golden Queen" : "Earth",
"Grave Clobber" : "Water",
"Hood Sickle" : "Dark",
"Kaos" : "Kaos",
"Pain-Yatta" : "Magic",
"Tae Kwon Crow" : "Fire",
"Wolfgang" : "Undead",
"Crash Bandicoot" : "Life",
"Dr. Neo Cortex" : "Tech",
}

Skylanderes grouped per elements...

Air (33)

Lightning Rod
Sonic Boom
Warnado
Whirlwind
Swarm
Jet-Vac
Lightning Rod S2
Sonic Boom S2
Whirlwind S2
LightCore Jet-Vac
Boom Jet
Free Ranger
Pop Thorn
Scratch
Horn Blast Whirlwind
Turbo Jet-Vac
LightCore Warnado
Gusto
Thunderbolt
Blades
Fling Kong
Full Blast Jet-Vac
Breeze
Pet-Vac
Elite Whirlwind
Hurricane Jet-Vac
Stormblade
Clown Cruiser - Vehicle
Jet Stream - Vehicle
Sky Slicer - Vehicle
Air Strike
Wild Storm
Bad Juju

Dark (6)

Knight Mare
Blackout
Nightfall
Sea Shadow - Vehicle
Starcast
Hood Sickle

Earth (32)

Bash
Dino-Rang
Prism Break
Terrafin
Crusher
Flashwing
Bash S2
Prism Break S2
Terrafin S2
LightCore Prism Break
Doom Stone
Rubble Rouser
Scorp
Slobber Tooth
Hyper Beam Prism Break
Knockout Terrafin
LightCore Flashwing
Head Rush
Wallop
Fist Bump
Rocky Roll
Bop
Terrabite
Elite TerraFin
Shark Shooter Terrafin
Smash Hit
Shark Tank - Vehicle
Thump Truck - Vehicle
Elite Dino-Rang
Barbella
Tri-Tip
Golden Queen

Fire (33)

Eruptor
Flameslinger
Ignitor
Sunburn
Hot Head
Hot Dog
Eruptor S2
Flameslinger S2
Ignitor S2
LightCore Eruptor
Blast Zone
Fire Kraken
Fryno
Smolderdash
Fire Bone Hot Dog
Lava Barf Eruptor
LightCore Smolderdash
Ka-Boom
Wildfire
Torch
Trail Blazer
Hog Wild Fryno
Small Fry
Weeruptor
Elite Eruptor
Hammer Slam Bowser
Lava Lance Eruptor
Spitfire
Burn-Cycle - Vehicle
Hot Streak - Vehicle
Ember
Flare Wolf
Tae Kwon Crow

Kaos (1)

Kaos

Life (35)

Camo
Stealth Elf
Stump Smash
Zook
Tree Rex
Shroomboom
Stealth Elf S2
Stump Smash S2
Zook S2
LightCore Shroomboom
Grilla Drilla
Stink Bomb
Bumble Blast
Zoo Lou
Ninja Stealth Elf
Thorn Horn Camo
LightCore Bumble Blast
Bushwhack
Tuff Luck
Food Fight
High Five
Sure Shot Shroomboom
Barkley
Whisper Elf
Elite Stealth Elf
Super Shot Stealth Elf
Thrillipede
Turbo Charge Donkey Kong
Buzz Wing - Vehicle
Stealth Stinger - Vehicle
Elite Zook
Ambush
Boom Bloom
Chompy Mage
Crash Bandicoot

Light (6)

Knight Light
Spotlight
Astroblast
Sun Runner - Vehicle
Aurora
Blaster-Tron

Magic (33)

Double Trouble
Spyro
Voodood
Wrecking Ball
Ninjini
Pop Fizz
Double Trouble S2
Spyro S2
Wrecking Ball S2
LightCore Pop Fizz
Hoot Loop
Trap Shadow
Dune Bug
Star Strike
Mega Ram Spyro
Super Gulp Pop Fizz
LightCore Star Strike
Blastermind
Enigma
Cobra Cadabra
Déjà Vu
Fizzy Frenzy Pop Fizz
Mini-Jini
Spry
Elite Spyro
Big Bubble Pop Fizz
Splat
Soda Skimmer - Vehicle
Splatter Splasher - Vehicle
Elite Voodood
Buckshot
Mysticat
Pain-Yatta

Tech (34)

Boomer
Drill Sergeant
Drobot
Trigger Happy
Bouncer
Sprocket
Drill Sergeant S2
Drobot S2
Trigger Happy S2
LightCore Drobot
Magna Charge
Spy Rise
Countdown
Wind-Up
Big Bang Trigger Happy
Heavy Duty Sprocket
LightCore Countdown
Gearshift
Jawbreaker
Chopper
Tread Head
Drobit
Trigger Snappy
Elite Trigger Happy
Double Dare Trigger Happy
High Volt
Barrel Blaster - Vehicle
Gold Rusher - Vehicle
Shield Striker - Vehicle
Elite Boomer
Chain Reaction
Ro-Bow
Dr. Krankcase
Dr. Neo Cortex

Undead (32)

Chop Chop
Cynder
Ghost Roaster
Hex
Eye-Brawl
Fright Rider
Chop Chop S2
Cynder S2
Hex S2
LightCore Hex
Night Shift
Rattle Shake
Grim Creeper
Roller Brawl
Phantom Cynder
Twin Blade Chop Chop
LightCore Grim Creeper
Krypt King
Short Cut
Bat Spin
Funny Bone
Eye-Small
Hijinx
Elite Chop Chop
Bone Bash Roller Brawl
Fiesta
Crypt Crusher - Vehicle
Tomb Buggy - Vehicle
Elite Ghost Roaster
Chopscotch
Pit Boss
Wolfgang

Water (33)

Gill Grunt
Slam Bam
Wham-Shell
Zap
Thumpback
Chill
Gill Grunt S2
Slam Bam S2
Zap S2
LightCore Chill
Freeze Blade
Wash Buckler
Punk Shock
Rip Tide
Anchors Away Gill Grunt
Blizzard Chill
LightCore Wham-Shell
Lob-Star
Snap Shot
Echo
Flip Wreck
Tidal Wave Gill Grunt
Gill Runt
Thumpling
Elite Gill Grunt
Deep Dive Gill Grunt
Dive-Clops
Dive Bomber - Vehicle
Reef Ripper - Vehicle
Elite Slam Bam
King Pen
Tidepool
Grave Clobber

@RipleyTom
Copy link
Contributor Author

RipleyTom commented Apr 25, 2019

Atm the skylanders are sorted per ID which is, as far as I can tell, the order in which they were released(ie Spyro's Adventure skylanders, then Giants skylanders, etc). Which imo makes more sense.
I'll add separators to indicate the distinction but there is a bit more work to do on the skylanders manager anyway(the skylanders generated won't work on giant and spyro because they don't include a recovery mode), I might also include extra stuff like money/xp editor).

edit:
Nvm the ID order is not completely the release order it seems but I still think sorting per game would be the best option.

@Dokman
Copy link

Dokman commented Apr 30, 2019

How I can give you a trace of my wheel Logitech g27 to make it support for gran turismo?

@RipleyTom
Copy link
Contributor Author

RipleyTom commented May 1, 2019

It's already supported & has been tested as working(on Windows with WinUsb driver).

rpcs3/Emu/Io/Skylander.cpp Outdated Show resolved Hide resolved
rpcs3/Emu/Io/Skylander.cpp Show resolved Hide resolved
rpcs3/rpcs3qt/skylander_dialog.cpp Outdated Show resolved Hide resolved
@LuismaSP89
Copy link

@RipleyTom Sorry, but this implementation can also work with Buzz controllers? Thanks a lot.

@legend800
Copy link

@RipleyTom This PR broken Time Crisis Razing Storm. Freezes on load now. Fine on the build prior.

Broken:
RPCS3.log.gz

Previous PR:
RPCS3-8714.log.gz

@lostromb
Copy link

lostromb commented Dec 5, 2019

I can verify that the Skylanders stuff works with Giants. It's a little awkward but I was able to create a new .sky file, initialize it and go ingame without any extra help.

@eeprom1
Copy link

eeprom1 commented Feb 6, 2020

Anyone had luck get the Rock Band or Guitar Hero drums working? My GH drums don't work; log shows it is detected; Zadig has already changed the drums driver to WinUsb.
Need to buy a real PS3 if there is no hope.

@SuperToad64
Copy link

Does anyone know how to get the Lego Dimensions Portal to work with sys_usb? I followed the tutorial on installing the new driver but RPCS3 doesn't detect the portal and you can't play Lego Dimensions without it. Here is a picture of the problem on the latest RPCS3 version 0.0.9-10101:
https://i.imgur.com/JcmSEhY.png

The game runs perfectly well its just you can't play the game past the main menu without the Lego Dimensions Portal. I tried to compile a version of RPCS3 that includes the Device Ids for the Lego Dimensions Portal using this code:

check_device(0x0E6F, 0x0241, 0x0100, "Lego Dimensions Portal");

But I have had build errors because there are missing dependencies from the github page: https://github.com/RPCS3/rpcs3

I followed this build tutorial and downloaded all of the dependencies that were listed: https://github.com/RPCS3/rpcs3/blob/master/BUILDING.md

I have a forum thread about my problems and errors here: https://forums.rpcs3.net/thread-201525-post-309496.html#pid309496

There is also a new issue opened about how to implement the Lego Dimensions Portal here: #7761

Any help would be appreciated, thanks!

@SuperToad64
Copy link

Thanks guys! The Lego Dimensions Portal works perfect! Thank you so much for implementing this!

@Mateescu12
Copy link

Mateescu12 commented Jun 4, 2020

Hello!
I have read this and this is very confusing to me....
Can someone please help me on how you can emulate the portal for skylanders?
There is a lot of code there i have no clue what to do you it i am very new to emulating stuff.

Also i have programmed before but in java not in c++ or whatever this is

@RipleyTom RipleyTom deleted the usbd branch July 31, 2020 15:04
@Anubeia
Copy link

Anubeia commented Jan 30, 2021

Please forgive me if I am posting in the wrong way, but I have an issue regarding the USB passthrough feature and this seemed like the most logical place to post seeing as the topic is conducive to it.


Although the list of devices compatible with this USB-passthrough feature extend to wheels supported by GT5/GT6, my Thrustmaster T300RS GT is unable to be recognised by RPCS3, yet the wheel is listed by Polyphony Digital as being supported for GT6. I have searched through forum entries for multiple weeks and I am yet to find an answer as to why my wheel is seemingly unsupported despite evidence to the contrary.

There are videos on setting up Logitech wheels with Zadig, but Thrustmaster wheels are seemingly unable to be configured in the same manner -- which doesn't make any sense, since on my real PS3 my Logitech G29 was unusable with either GT5 or GT6, and my Thrustmaster wheel worked flawlessly and was able to be adjusted ingame.

If there is additional setup required for my T300RS beyond simply installing a WinUSB driver through Zadig, please let me know as I have yet to find any info on, and as such I am completely flummoxed on the matter. Thanks in advance, and I sincerely apologise for bothering you all.

@MSuih
Copy link
Member

MSuih commented Jan 30, 2021

@Anubeia don't start conversations in old pull requests. Either open a new issue or come to Discord server for general conversation.

Anyways, I don't see T300RS mentioned in the GT 5 wheel list here:

// GT5 Wheels&co
check_device(0x046D, 0xC283, 0xC29B, "lgFF_c283_c29b");
check_device(0x044F, 0xB653, 0xB653, "Thrustmaster RGT FFB Pro");
check_device(0x044F, 0xB65A, 0xB65A, "Thrustmaster F430");
check_device(0x044F, 0xB65D, 0xB65D, "Thrustmaster FFB");
check_device(0x044F, 0xB65E, 0xB65E, "Thrustmaster TRS");
check_device(0x044F, 0xB660, 0xB660, "Thrustmaster T500 RS Gear Shift");

If it has a different product or vendor ID then it has to be added to the list before games can attempt to connect to it.

@RyoOfMostShort
Copy link

Where do I go to use this implementation when trying to play skylanders? This is my first time using Github sorry

@MSuih
Copy link
Member

MSuih commented Feb 11, 2021

@RyoOfMostShort If you need help with the emulator then join our Discord server and ask questions there. GitHub isn't the place for support questions.

You should also read this wiki page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet