ElysianVMU is a small, lightweight cross-platform VMU emulator being co-developed with Elysian Shadows and embedded within the ESToolkit (ESTK). It utilizes the same cross-platform back-end 'LibGyro' written by me (Falco) that allows Elysian Shadows to run on so many platforms, meaning ElysianVMU will run on the long list of platforms ES runs on (with even more to come). All programming was done by Falco Girgis, icons and art were done by Patryk Kowalik (the two people left on the ES Team).
My main goal for developing ElysianVMU was to allow backers of Elysian Shadows who aren't playing the Dreamcast version to get the authentic VMU experience on other platforms. For the Steam versions, the VMU emulator can be used as a separate window, and players can even load the VMU app on their iPhone and Droid devices to take their minigames with them portably... I don't want to spend a lot of time developing an awesome, polished VMU game then only have a niche crowd of people with VMUs that have batteries in them of an already niche crowd of Dreamcast players to only be the ones who get to enjoy it...
I think that's part of the problem with the underutilization of the VMU and lack of minigames in the DC scene. It's already hard to develop for (pure 8-bit ASM), sure, but in the grand scheme of things, it's even less worthwhile when you're developing a cross-platform game where the Dreamcast is only one of many targets... I want ElysianVMU to encourage VMU development by making the investment pay off for all other platforms.
The first thing that I noticed when I started researching current solutions is that there are very few emulators out there for the VMU. The few that there are have serious compatibility issues, are no longer maintained, aren't cross-platform, and lack lots of important features like resolution adjustment, save state, etc. I wanted ElysianVMU to be a well-supported cross-platform emulator with a nice front-end and all of the features you would expect from a polished emulator.
Another major goal I had in mind for ElysianVMU was for the developer, not just the player. I wanted the emulator to facilitate VMU development by offering good debugging utilities to developers. I want to have built-in VMU hardware documentation, an instruction set reference, and some level of profiling... From all of my research, the emulator could actually estimate the battery life of a VMU device running your game in the future. Not only could you optimize for performance, you could optimize for power consumption.
For the alpha release:
- MOST games I have tested work without a problem. The major ones like Chao Adventure, Soul Calibur, Power Stone, etc. are all perfect.
- Dynamic resolution and fullscreen mode are supported (looks hilarious, haha)
- Status bar displaying current ROM and messages like "controller attached/removed"
- VMU system clock/time properly emulated and is drive by host machine's date/time
- All VMU buttons are mapped to respective keys (a = a, b = b, mode = m, sleep = s, arrow keys = d-pad)
- External Joysticks/Controllers are supported, and the left analog stick is even supported and mapped back the dpad, BUT there is no way to reassign buttons yet if the initial assignment for your controller is off
- Save State and Load State are both implemented
- Reset is implemented
- Screenshot functionality implemented
- Sound emulation can be enabled/disabled
- Window geometry/state and preferences are saved on exit and replayed when the emulator is opened
- Rom directory is saved
- Last 5 recently played ROMs are saved in a Load Recent file menu
- Roms can be dragged and dropped onto the emulator window to be played
- L and R keys and L trigger and R trigger slow emulation down by 10x and speed it up by 10x respectively
- Debug event log is generated during every run and can be given for additional bug reporting info
- Files generated automatically go in a folder called ElysianVMU in your home directory
- Command-line interface included with options for automatically launching roms, changing the output directory, checking emulator version, and even an assembly instruction-set reference
- VMU BIOS is not fully emulated yet. Only the 'Game Mode' is emulated, so no clock or file manager
- Lots of ROMs using certain bios functions still have issues (but at least all the other emulators still seem to have this issue too)
- Keyboard and controller button assignment is not configurable
- Sound emulation has random pops and cracks occasionally under MacOS due to a bug in Apple's OpenAL sound driver
I am about to release the very first alpha version of the emulator as a general-purpose, standalone emulator. I want to eventually release the core itself as a lightweight, open-source library that ANY cross-platform Dreamcast project can include to get VMU support across the board... I really just want to see developers taking advantage of this underutilized hardware.
- Falco Girgis, Elysian Shadows
There you have it folks. A brand new VMU emulator that is compatible with the vast majority of Dreamcast games...and is portable thanks to Android and iOS compatibility. I think you'll agree that this is awesome, and just goes to further illustrate how amazingly creative the Dreamcast indie dev scene is. My sincere thanks go to Falco and the Elysian Shadows team for this article and the work they're doing. Rest assured that as soon as Elysian Shadows releases later this year, we'll be the first to report on how it plays.