Ultimate VMU Development Resource

Place for discussing homebrew games, development, new releases and emulation.

Moderators: pcwzrd13, deluxux, VasiliyRS

User avatar
Falco Girgis
Developer
Posts: 108

Ultimate VMU Development Resource

Post#1 » Thu Jan 05, 2023 1:24 am

Hey, guys.

So as part of my coming back to the scene, getting back into Dreamcast development, and giving back to the community to atone for my sins, I realized that I might be in a unique position with my experience with the ElysianVMU emulator and with my work with many VMU developers and enthusiasts to offer some valuable resources to the scene.

The truth is that VMU development is not only fairly difficult and hardcore, but the resources, tools, and documentation are absolutely horrible, fragmented and frankly largely lost. The only people really making VMU games are those with initial embedded systems development experience who can just stare at the hardware docs and learn, and even they have trouble finding useful resources.

So I have taken the liberty of creating the ultimate compilation of every single VMU development resource that I have personally used to master the hardware for EVMU, resources that any developer has ever mentioned they found useful, ANY open-source VMU games, tech demos, or tutorials, and basically everything I could find scattered throughout the internet... and much of that required HOURS on the way-back machine PRAYING some of the broken links aren't lost forever...

There are still a few developers I've had to attempt to hunt down and email over broken links or just asking if they would release source code after all these years, but other than that, I would say the collection of resources is complete and is ready: https://dreamcast.wiki/VMU_development.

Upon Tweeting this, I received a MASSIVE amount of attention and support for the platform, because I'm telling you guys, there are way more people out there who love this thing than are able to get past the incredibly high barrier to entry.

I still have a lot of work to do on this front. My biggest thing is that I want ElysianVMU to also be a developer platform with full built-in debugging environment to help facilitate working with the device. EVMU2.0 isn't released yet, but it has a much larger emphasis on these kinds of tools.
evmu2-ubuntu.png

If you weren't already aware, it's a fully cross-platform all-encompassing VMU emulator, file browser, and now debugger. The screenshot above shows the emulator, file manager, and then the flash hex editor.

Anyway, I truly hope some of you find these links useful and give the device the love it deserves. I'm literally working right now with the code up trying to finish up creating that developer-friendly debugging environment.

If you have any VMU related questions, please don't hesitate to ask!

User avatar
Falco Girgis
Developer
Posts: 108

Re: Ultimate VMU Development Resource

Post#2 » Fri Feb 17, 2023 12:09 am

Just wanted to share two very interesting projects from our ES Discord server that have been in the works and are now open-source for any potential VMU developers, or anyone wanting to get their feet wet.

1) Shirobon's "VMU Racketball"
Screen Capture:
Image

Source:
https://github.com/pxcla/VMU-Racketball
This is a simple Racketball-type game, but the author has done an incredible job painstakingly commenting everything and has put it on Github so that it can be used as a type of tutorial or example app for people looking to get into VMU development. Definitely a great starting resource. We have a few people in our Discord server getting their feet wet with their own demos right now based on this. :mrgreen:

2) jvsTSX's "ADVM" Audio Driver
Audio Samples:
https://cdn.discordapp.com/attachments/463958110562680843/1074215359680368640/dgvdszfhdzj.mp3
https://youtu.be/ss9C2ve0_zk

Source:
https://github.com/jvsTSX/ADVM
This is a VERY VERY MUCH NEEDED hardcore audio/buzzer driver that really pushes the envelope with it and can serve as an example or a basic audio engine for VMU titles. I would say this is the audio analog to what Kresna's "libPerspective" is for rendering on the device. Really impressive work, especially given almost no games--even commercial--did very much with the buzzer. The one exception that comes to mind is the Shenmue minigame which pulled off the freaking theme song which was impressive as hell. :lol:

Anyway, both have been added to the VMU Developer's resources page I mentioned in the previous post, which also has several other new additions as well. Since many people have told me that it has been very useful to them, I've made a serious effort to keep it updated and maintained.

We're also working on some... sort of secret stuff atm that should hopefully lower the barrier of entry into VMU development CONSIDERABLY more in the future as well. Working on it right this minute, and we should hopefully have updates within the next few days or so.

User avatar
Falco Girgis
Developer
Posts: 108

Re: Ultimate VMU Development Resource

Post#3 » Tue Feb 28, 2023 8:21 pm

HEY GUYS, GOT SOME REALLY EXCITING VMU NEWS FOR YOU!!

After having disappeared from the scene for almost a decade now, I was finally able to get into contact with the VMU development scene's original rock star, Rockin'-B, the genius behind Tiny3D Engine and the BMOVIE video encoder. He has agreed to release a bunch of his old work open-source and wound up scouring his old hard drives for us, delivering one of the most impressive treasure troves of development gems I've ever seen.

The first thing I've managed to get out is a release of his Tiny3D Engine with source code. This thing is a serious-to-god real 3D engine with OpenGL-style matrix stack, vector/matrix transforms, line renderer, clipping algorithms, etc all done in pure assembly, written beautifully with reusable, standalone functions and everything.

tiny3dBiggest.gif
tiny3dBiggest.gif (3.18 MiB) Viewed 3611 times

tiny3d2Big.gif
tiny3d2Big.gif (1.39 MiB) Viewed 3611 times


He also kept meticulous notes over his years working on this and has left hints at potential future optimizations. Anyway, if you're into VMU development, here's a link to a goldmine:

https://github.com/gyrovorbis/tiny3dengine

User avatar
Falco Girgis
Developer
Posts: 108

Re: Ultimate VMU Development Resource

Post#4 » Sat May 27, 2023 12:34 pm

Dude... what in the actual hell... One of our VMU developers, jvsTSX has been making some pretty incredible finds on this strange, strange device lately.

First of all, holy shit, you can take the thing from an ~880Khz "fast" RC clock to FREAKING 6MHZ CF clock, the same one used when communicating with the Dreamcast to keep up with the Maple BUS while in standalone mode!! To date I've never seen anybody even attempt to do this, and the hardware docs sure as hell don't allow it (or document it). The homebrew potential for this thing at that speed is pretty ridiculous in comparison. Here's a demonstration of it running that fast that the buzzer essentially becomes a supersonic dog whistle: https://twitter.com/falco_girgis/status/1661118970097811463

"Wont that destroy battery life?" Of course. Good thing hardware mods for it like the new AA battery pack you can have 3D printed for a few dollars plus the USB power cable mod are becoming easier and more popular. lol.

"What's the big deal?" Bro, the VMU got a little tiny real 3D engine running at less than 1/6th this frequency which just couldn't handle more than one or two polygons. Every impressive VMU demo so far has had nowhere near the potential this has unlocked... and for the record, the VMU's ISA is actually more powerful than the GameBoy's with hardware support for complex instructions like MUL(tiply) and DIV(ide). It can do more computationally at the same frequency.

In other news, we discovered a new way to play music on the thing that allows you to basically produce two different tones on a single square wave channel (a high and a low frequency one simultaneously), which is going to be pretty epic for jvsTSX's work.

I updated the Development resource page with the following:
  • 6Mhz CF Oscillator Clock Information
  • Timer 1 Mode 3 Dual-Tone Audio Generation
  • Link to our ongoing endeavor to document the disassembled VMU BIOS
  • Link to jvsTSX's "clock rate demo" which allows you to swap between all 3 available clocks
  • Link to jvsTSX's "sound test" which allows you to play with the Timer 1 registers in Mode 3 to create some pretty exotic sounds that have never been heard before on this thing

User avatar
Falco Girgis
Developer
Posts: 108

Re: Ultimate VMU Development Resource

Post#5 » Thu Jul 20, 2023 1:02 am

Just a quick update on the VMU front...

jvsTSX has finished his epic SFRPoke application which allows us to survey the entire VMU address space, poking at every register and bitfield, looking for things that are undocumented or for how certain partially documented behaviors should behave. The goal is two-fold 1) understand more about the VMU 2) allow emulators like ElysianVMU to be even more accurate by behaving exactly like the device.

Image
The source code for his app is located here: https://github.com/jvsTSX/SFRpoke
Image

I have a pretty big announcement to make that was going to come with the release of ElyianVMU2, but I decided it would be more beneficial to the community to not wait... The core emulator library behind ElysianVMU has been released open-source: https://github.com/gyrovorbis/libevmu.

This is the entire standalone GAME emulator, all file/asset management, and everything I have ever discovered about the VMU in my years working on the emulator... I wanted to make it open source so that:
1) People can port it to other platforms
2) Dreamcast emulator/application authors can embed it
3) All of the knowledge it contains can be released before I die

It's all been separated from any UI front-end or platform-specific back-end to make it easy as hell to port or to embed within other applications. I currently have a few people working on porting it to other platforms such as iOS and WebAssembly.

I've also begun working on the detailed API documentation for libEVMU, which is going to be bundled with the desktop builds of the emulator. The documentation is also available on the web, and contains hardware documentation, including details on things that have remained undocumented:
http://vmu.elysianshadows.com/hardware_docs.html

I'm working on libEVMU and this documentation almost every day now, working towards releasing EVMU2. You can follow the progress on GitHub or in the documentation, which is autogenerated from the source repo.

  • Similar Topics
    Replies
    Views
    Last post

Return to “New Releases/Homebrew/Emulation”

Who is online

Users browsing this forum: No registered users