Skip to content

Connecting to DreamPotato VMU emulator #1988

@RikkiGibson

Description

@RikkiGibson

Demo video

Hi there, I am opening this issue to show a prototype for an integration between Flycast and DreamPotato, a VMU emulator I am working on. The idea is to allow an experience similar to when a real Dreamcast and VMU are used together. For example, on real hardware, a VMU minigame can be saved out from Dreamcast to VMU, and then you just pull the VMU out of the controller, and the minigame is ready to play. DreamPotato uses a virtual "insert/eject" function to do something similar.

The TCP connection system used between Flycast and DreamConn controllers is reused here, without much modification. This allows DreamPotato to work similarly to how a real VMU would work when it is "plugged in", receiving graphics+buzzer data from the Dreamcast, fulfilling memory card read/write requests, and so on. When it is "ejected", the file manager, minigame and clock functions are available for use just as they would be on a real VMU. The main change was just to make "hot plugging" work, by having DreamPotato send a message to Flycast when the VMU is inserted or ejected, asking Flycast to re-query the device state and refresh the Maple devices.

It would be great to know any thoughts you may have on this project. If you feel it would be worthwhile to make a change to Flycast to allow it to connect to a VMU emulator, I would be happy to work out the design together and contribute as much as I can to implementation. I imagine that if other VMU emulators such as ElysianVMU wanted to add the support, they would then be able to connect to Flycast the same way DreamPotato does.

Thank you for your consideration and also for all your work on Flycast.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestinputRelated to input controllers and devices

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions