DreamPort Support - TheArcadeStriker/flycast-wiki GitHub Wiki

What Is It And Why Do I Care?

Flycast has built in VMU support, 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, benefiting from the really cool features most games implemented (Radars, Stats, Health, Minimap Etc). Using 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 your device. This is the best we have had..... until now. For the first time, you can now use a REAL DC controller, VMU, and Rumble pack with Flycast!

How Do I Use It?

DreamPort offers VMU LCD and Rumble support using Flycast on Windows, MacOS and Linux.

IMG_3281

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

  • For a simplified description of the Hardware Setup, scroll down to the section "I can not read schematics, can you please dumb it down a bit for me?"
  • For all nitty-gritty details, continue here
  • Wire up a Raspberry Pi Pico or Raspberry Pi Pico 2 for Host Mode
  • You can wire up for any amount of Controllers - DreamPort and Flycast support up to 4
  • 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, host-2p.uf2, or host-4p.uf2, depending on your setup)
    • If you used a Pico 2 make sure to deploy the binary prepended with pico2_
  • Perform a first test: Plugin the microcontroller with at least one controller connected. VMU LCD should show a QR-Code as well as the Player Number (A, B, C, or D), and the Rumble pack should vibrate
  • If this doesn't work:

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 QR-Code as well as the Player Number (A, B, C, or D), 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
    • This is is currently an extra step to move your save games and mini games from the Flycast VMU file, drop it in to the Real VMU, and 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!
  • The microcontroller needs to be reconnected if devices (e.g., VMU/Rumble pack) are added to a 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 DreamPort is plugged in, check your OS if the USB serial device shows up:
      • Windows: Open Device Manager -> Ports. Note down the COM* serial device name of USB Serial Device (e.g., COM3)
      • MacOS: Open Terminal and input ls /dev/tty.usbmodem*. Note down the name of the serial device port (e.g., /dev/tty.usbmodem1123)
      • Linux: Open Terminal and input ls /dev/ttyACM*. Note down the name of the serial device port (e.g., /dev/ttyACM0)
    • 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:
      • DreamPortSerialDevice = <YourSerialDevicePortName>
    • If more than one serial device shows up:
      • Check which one has the VID 1209 and the PID 2F07, and use this one in emu.cfg (see previous step), or
      • try and error all devices
    • Make sure to relaunch Flycast after every modification of emu.cfg
  • Issue 2: Stick/Buttons/Triggers are not working
    • In Flycast, open Settings -> Controls. Click Map next to DreamPort
    • Map the missing Stick/Buttons/Triggers

I can not read schematics, can you please dumb it down a bit for me?

Wire Guide For Dummies

  • For Use With Simple Basic Protection method which is 2 different 100 ohm resistors and where to exactly connect each of the 5 wires from your controller cable
    • Pin 1>>> 100 ohm resistor>>Pi pin 14
    • Pin 2>>>> Pi Pin 39
    • Pins 3 and 4 >>>>>> Pi Pin 38
    • Pin 5 >>>> 100 ohm resistor>>>>> Pi Pin 15

NOTE: DO NOT ALLOW WIRES TO CROSS MULTIPLE PINS. THIS COULD INSTANTLY BURN OUT YOUR PICO. ENSURE THE PINS GET WIRED TO ONLY THE SPECIFIC PINS STATED HERE. TRIPPLE CHECK BEFORE POWERING ON THE PI FOR THE FIRST TIME.

  • Pin Guide for controller port looking straight in to the plug on the controller, where the 3 contacts are the top row, and the 2 are the bottom

    • Pin 1, Top Left
    • Pin 2 Top Middle
    • Pin 3 Top Right
    • Pin 4 Bottom Left
    • Pin 5 Bottom right

Pi Setup For Dummies

  • CLICK HERE and ensure you grab the proper release. 1, 2, or 4 players, and pico 1 or pico 2.

  • Simply copy and move file to the Pi, which should show up in File browser as a removeable drive.

  • Restart Pi

  • Verify in windows "USB CONTROLLER" page that you not only see the Dreamcast controller, but you verify inputs from the controller on the Properties tab

  • You are good to go. Start+Left trigger opens the menu in flycast.

How to move your Flycast Vmu file with save games or Mini games to Physical VMU (Temporary Until Direct Save Is Implemented)

  • Go to the DATA folder in your Flycast Home Directory (Where Flycast.exe is)

  • Select your VMU file. (it is a .bin with a name like vmu_save_A1.bin, and it is recommended to not use Per Game VMU saves in Flycast when doing this, or you can only move one game back and forth at a time, but same method applies, just the VMU name is the Game ID, Similar to MK-51035_vmu_save_A1.bin)

  • Copy and Paste to make a duplicate file right in this folder.

  • Rename the copy to vmu0.bin

  • Move file to the Removable device the physical VMU is showing up as on your PC, overwriting the one on there ( Make sure you know this will overwrite and delete the file on there)

  • now your VMU has the files that the Flycast VMU had on that VMU file.

  • When your done and want to send the data back to Flycast, just do the last few steps backwards, renaming the file to what it was before you named it vmu0.bin, and you are all set!

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. This feature is actively developed by @Tails86, @kosekmi, and @flyinghead, so stay tuned for more things to come!