ElysianVMU - A Brand New VMU Emulator From Elysian Shadows

Elysian Shadows burst on to the Dreamcast radar in 2014 with little more than a dream and a Kickstarter pitch for a revolutionary new role playing game. The project was funded in less than a week and since then lead developer Falco Girgis and his team have been working away behind the scenes to bring what is perhaps the single most ambitious independent title yet to Sega's system. Featuring graphical techniques not yet seen on the Dreamcast, and an adventure that promises to engage players for hours upon hours, Elysian Shadows is easily one of the most exciting upcoming prospects for many Dreamcast gamers.
The game is also launching on PC and Mac however, and due to the game's reliance on the humble VMU for certain aspects of the adventure, Falco took it upon himself to develop a brand new and totally bespoke VMU emulator for Elysian Shadows; thus allowing computer-based players to get the full experience. Not only that, the emulator - titled ElysianVMU - will allow gamers to take the myriad mini-games away from their computer and play them on Android and iOS devices. To this end, I'm extremely excited to allow Falco Girgis himself to explain in his own words what this new VMU emulator is all about and what it means for the Dreamcast indie dev community going forward. Falco, over to you...

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:

Features:

  • 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

Known issues:

  • 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.

As ever, please be sure to visit the Elysian Shadows official website for updates, follow the team on Twitter and keep up to date with the FaceBook page. You can also watch the development diaries on YouTube here.

While we've got your attention, check out our developer interview with Falco here!

1 comment:

Unknown said...
This comment has been removed by a blog administrator.