skmp / reicast-emulator

Reicast was a multiplatform Sega Dreamcast emulator
https://reicast.emudev.org
Other
1.1k stars 346 forks source link

ElysianVMU Interop #1762

Open gyrovorbis opened 4 years ago

gyrovorbis commented 4 years ago

I am the author of ElysianVMU, a cross-platform, mature, feature-rich VMU emulator running on Windows, MacOS, Linux, Raspberry Pi, Web, and PSP, with Dreamcast, GameCube, iOS, and Android on their way. I have poured my heart and soul into trying to make the most comprehensive, accurate, VMU emulation experience possible, and the goal was not just to be a simple emulator for playing games, but also to be a full-fledged file management system with a suite of developer and debugger tools to facilitate VMU programming.

It was always a goal of mine to interop the emulator with a Dreamcast emulator, providing the full DC experience. I went through great lengths trying to ensure that any future interop would be as painless as possible. Interoping with EVMU is as easy as simply forwarding relevant Maple packets to the application (running on any device) over TCP/IP (or whatever protocol you want, I'm flexible). I have already implemented this level of interoperability within our Engine, ESTk.

Imagine how cool it would be to run a DC game on Reicast then connect to EVMU and prop your smart phone up under your monitor as a full VMU that you can carry with you. In the future, we plan to add hardware support to various Dreamcast controller adapters, so interoping with EVMU in this manner may very will give you real physical VMU support in the future as well.

If this strikes your interest, I propose one of several plans of attack: 1) You guys just initiate a socket connection to some user-configurable EVMU IP address, start forwarding packets, and I'll deal with it on my end. 2) I can work with you or create an API to make this easier on you. 3) I can do the Reicast-side work myself, with your guidance and blessing.

If you still aren't sold, here's a more comprehensive list of EVMU's features and roadmap: https://dreamcast.wiki/VMU_emulators#ElysianVMU

Screen Shot 2020-01-11 at 1 06 14 AM

Random EVMU Screenshot playing the Shenmue Minigame

Screen_Shot_2018-02-01_at_2 09 08_PM Screenshot of EVMU (bottom right) integrated within cross-platform engine using the same proposed Maple-over-TCP mechanism.

Screen_Shot_2018-11-13_at_7 07 32_PM Screenshot of the File Manager interface as well as the hex editor for hex-hacking save files.

Screen_Shot_2020-01-10_at_11 25 10_PM Screenshot of attempting to hex-hack Chao Adventure 1's code in real-time using our built-in developer tools.

ezgif-4-5699726c2687 Chao Adventure 1 Mod that I was able to produce in just a few minutes of hex editing the ROM (lolz).

Screen Shot 2020-01-11 at 1 46 46 AM

EVMU TCP server/client communications manager, notice the checkbox for "Allow Dreamcast connections."

skmp commented 4 years ago

o/

Let's make it happen.


Quick links to help

VMU >> https://github.com/reicast/reicast-emulator/blob/alpha/libswirl/hw/maple/maple_devs.cpp#L373

HTTP >> https://github.com/reicast/reicast-emulator/blob/alpha/libswirl/utils/http.cpp#L45

Will reply in more detail to this tomorrow

andrewapperley commented 4 years ago

@skmp This would be an amazing thing to have happen! /bump

einsteinx2 commented 4 years ago

Love this idea!