DreamcastControllerUSB supportbkp - TheArcadeStriker/flycast-wiki GitHub Wiki
What Is It And Why Do I Care?
Well, Flycast has some built in VMU support now, and our wonderful community has taken this and made our lives so much easier and less expensive. Make sure you enable Show VMU Screen in GFX settings of Flycast. This allows you to see the VMU screen right in Flycast, allowing you to use the really cool features most games implemented (Radars, Stats, Health, Minimap Etc) which are really cool, and then utilizing either Elysian VMU or Dream Explorer, you can actually "use" the VMU like it was in your hand to play the mini games from some Dreamcast games right on the your device. This is the best we have had.....until now. With this DreamcastControllerUSB setup you can, for the very first time, use a REAL DC controller, VMU and Rumble pack with Flycast!
How Do I Use It
DreamcastControllerUsb offers VMU LCD and Rumble support using Flycast on Windows, MacOS and Linux.
Demo: https://youtu.be/Nj4dRMZ_jB0
General Disclaimer
Proceed at your own risk! I am not liable for any damage that may occur due to the use of any provided schematics, firmware, or any other recommendations made within this project (see LICENSE.md). There is risk of damage to any attached hardware (ex: USB port, Dreamcast peripheral, or Dreamcast) if circuitry is improperly handled.
Step 1: Hardware Setup
- Wire up a Raspberry Pi Pico for Host Mode
- Only 1 Player is supported for VMU LCD and Rumble at the moment: You can wire up for
Player 1-4
(and have up to 4 Controllers connected, but only 1 with VMU LCD / Rumble), or build your setup forPlayer 1
only - Pay special attention to Isolation Circuitry and Dreamcast Controller Pinout
- Once the hardware is setup, deploy the latest binary on the Pico (either
host-1p.uf2
, orhost-4p.uf2
, depending on your setup) - Perform a first test: Plugin the microcontroller with at least one controller connected. VMU LCD should show a stylized VMU, and the Rumble pack should vibrate. The LED on the Pico board may be used for quick status - when connected to USB, it should remain on when no button is pressed on any controller and turn off once a button is pressed.
- If this doesn't work:
- Something went wrong in the wiring; you should revisit Host Mode, Isolation Circuitry, and Dreamcast Controller Pinout
- Your Controller, VMU, and/or Rumble pack may be faulty; verify on original hardware
Step 2: Software Setup
- Download the latest dev-build of Flycast
- Startup Flycast
- Plugin the microcontroller with at least one controller connected. VMU LCD should show a stylized VMU, and the Rumble pack should vibrate. If not, go back to Step 1
- You are done! Fire up a game, and enjoy VMU LCD and Rumble support. Make sure to check the Usage Notes
- If this isn't working and you verified Step 1, go to Troubleshooting
Usage Notes
- VMUs can not be used for actual savegames during emulation yet ; However, VMU binary files can be copied over to/from the VMU (there is currently just an extra step to move your save games and mini games from the Flycast VMU file, and drop it in to the Real VMU, and then vice versa. it takes about 10 seconds both ways)
- When plugged in, the VMU will show up as a removable drive labeled
DC-Memory
- Find the *.bin file that you want to overwrite your VMU memory with, rename it to vmu0.bin, and then drag and drop it into the removable drive
- WARNING: This will entirely overwrite the memory of your VMU. Ensure that you make backups when necessary.
- You can now enjoy any VMU game, e.g., Chao Adventure, on the go!
- When plugged in, the VMU will show up as a removable drive labeled
- Controllers need to be reconnected if devices (e.g., VMU/Rumble pack) are added to the controller
- Games need to be restarted, or a savestate needs to be loaded, if a Controller is reconnected
Troubleshooting
- Issue 1: VMU LCD and / or Rumble are not working
- Make sure to check Step 1 again, and verify hardware functionality
- If you are on Linux, try starting Flycast with superuser permissions
- While DreamcastControllerUsb is plugged in, check your OS if the USB serial device shows up:
- Windows: Open
Device Manager -> Ports
. Note down theCOM*
serial device name ofUSB Serial Device
(e.g.,COM3
) - MacOS: Open
Terminal
and inputls /dev/tty.usbmodem*
. Note down the name of the serial device port (e.g.,/dev/tty.usbmodem1123
) - Linux: Open
Terminal
and inputls /dev/ttyACM*
. Note down the name of the serial device port (e.g.,/dev/ttyACM0
)
- Windows: Open
- If no serial device shows up:
- check Step 1 again, and verify hardware functionality
- If exactly one serial device shows up, add the following line to Flycast's
emu.cfg
file in the[input]
section:DreamcastControllerUsbSerialDevice = <YourSerialDevicePortName>
- If more than one serial device shows up:
- Check which one has the VID
1209
and the PID2F07
, and use this one inemu.cfg
(see previous step), or - try and error all devices
- Check which one has the VID
- Make sure to relaunch Flycast after every modification of
emu.cfg
- Issue 2: Stick/Buttons/Triggers are not working
- In Flycast, open
Settings -> Controls
. ClickMap
next toDreamcast Controller USB
- Map the missing Stick/Buttons/Triggers
- In Flycast, open
More Info...?
This is currently "Piggy Backing" off another idea/implementation, and this is why being opensource is so important to having the best emulator we can. Someone does one thing, and someone else comes along and gets ideas and boom, we all get the rewards from that. While this code may very well change around later on, it is being actively developed by Tails and Kosekmi, and