What's new

ZeDMD and Serum: how it all started

zedrummer

Registered
Joined
Sep 22, 2023
Messages
11
Location
Alsace, France
Alias
David
Hi friends

After reading this thread https://www.pinballinfo.com/communi...-led-not-colordmd-or-pin2dmd-but-zedmd.57155/ , I wanted to clarify why and how I coded ZeDMD real DMD then Serum colorization format.

I have been a coder as a hobbyist since I was 8, I'm now 49. I've always spent a lot of my spare time coding, even now that I have music and lutherie as a hobbyist, this is still really important.
After making my vpin back in 2018, I started to work on a FULL home made jukebox starting from scratch, wood working and software. At one point, I wanted to add some extra lighting using LED strip. As I wanted the lighting to be reacting to music, I discovered ESP32 µcontrollers. Eventually I made this:


(the code has changed a little bit).
ESP32 are cheap (around 8€) and extremely powerful. In my JB, there are about 1000 LEDs in LED strips and as you can see, I can display an animation LED per LED without any slowdown. And interfacing the ESP32 with a PC is not a big deal for simple tasks.

Then I had some spare 128x32 LED matrices at home and decided to try to make a simple Tetris with just the ESP32, as this is a really simple game to code (the first game I made back when I was 11 or 12). It took me only 2 days for something really smooth.


That's when it all started, I then wondered why I wouldn't try to create a real DMD with it. I was not sure I could do it, but I contacted Freezy who gave me some overall guidelines on how to code an "output driver" for dmdext. Eventually, I had the first version of ZeDMD working with dmdext and displaying any format from original 4-or-16-shades of orange roms to 16-or-64-color VNI/PAL colorizations to FlexDMD/any frontend 256 color images. The device was far from being optimized and displaying a 256 color animation was quite slow.
At that moment, Lucky1 released his PAC format, aimed at replacing any VNI/PAL and targeting only Pin2DMD. I tried to PM him and talk about releasing it for any real DMD. He seemed not to be OK with that and I told him that as I don't want to abandon my ZeDMD (without colorization, the device had no future), I may start to design the Serum colorization format and to code its editor ColorizingDMD (https://github.com/zesinger/ColorizingDMD).

When the first Serums were released (Scared Stiff by Dtatane https://vpuniverse.com/files/file/13489-scared-stiff-bally-1996-dmd-64-colors-serum-format/ and Tron by Ebor https://vpuniverse.com/files/file/14216-tron-legacy-stern-2011-dmd-64-colors-serum-format-v22-final/), I was contacted by Markus Kalkbrenner, a german guy who had a full system called PPUC (https://github.com/mkalkbrenner/PPUC) based on Pin2DMD aimed at real pinball machines. He was interested in adding the Serum decoding and ZeDMD device to his project. As all my projects are open-source and available on Github, he started to propose improvement and huge optimizations for the ZeDMD mainly on the connection and communication code. As coding for the Serum editor is a full time job, I proposed to Markus to become the owner of the ZeDMD as he really deserves it: now, thanks to him, ZeDMD (128x32) and ZeDMD HD (256x64) support compression, the device can cope with any colour depth at any resolution.
For those looking for a tutorial, I tried to wrote a comprehensive one here https://www.pincabpassion.net/t14796-zedmd-installation-english.

On my side, you can see what is possible with the Serum format looking on the update thread at VPU https://vpuniverse.com/forums/topic/8542-new-features-for-colorizingdmd-editor/ or at the comprehensive tuto about the editor https://www.pincabpassion.net/t15414-comprehensive-tuto-about-colorizingdmd. I think there is great potential, we have more and more colorization authors joining, you can check the WIPs joining the community on the Discord server https:// discord .gg/aK2dNaB6xR.

I saw the question: how colorization works? if you read the tuto you'll have the comprehensive answer, but in short: the colorization program receives the raw/original frame, tries to identify it (calculating a hashcode and comparing it with all the hashcodes available in the colorization file), then it knows which corresponding colorized frame is to be displayed. That's a little more complicated, as there is dynamic content like scores and such, but you've got the idea.

I hope this answer makes things clear. Don't hesitate to ask for more.
Thanks
David aka Zedrummer or Zed
 
Last edited:
I just want to add a few things. Along with Markus, we continue to work on ZeDMD / HD and Serum:
- The real pinball version of ZeDMD is not working yet, mainly for memory reason. Markus hopes the new ESP32 S3 will help, a "N16R8" owns 16M flash and 8M PSRAM. The alphaDMD from "pinballpower"/"usul27" (https://github.com/pinballpower/alpha_dmd) allowing to use Serums with rpins is working but not on all systems (SAM and WPC-95) and is far from being Plug'n'Play, the software installation part can be a little tricky.
- On the discord server I linked previously, I work with the authors trying to implement any request (as long as it doesn't need a full re-coding of the UI). We are looking for new authors interested in giving time to create new colorizations. Experimented authors try to help as much as possible. Apart from the text tutorial i linked earlier (https://www.pincabpassion.net/t15414-comprehensive-tuto-about-colorizingdmd) you can learn the basics with Dtatane videos available here https://www.youtube.com/playlist?list=PL_BgMMKhwOKJ9EieULq_tjClotEdiR6MO
- I made an easy ZeDMD installer/updater available here https://www.pincabpassion.net/t15782-zedmd-installer-updater
Thanks
 
Last edited:
Hello David,
Thank you for taking the time in adding this information here, and answering questions I could not answer.

So for real pins - is it a matter of waiting?

Will it be running freezys 'code' so it can use pin2dmd files (pac, vni etc). If the answer is no then no doubt real pinballers would have to wait for the serum files on the games.... is this correct?

My last question is how do I get a ZeDMD to work (on a vpin) with cactus canyon continued? This is the only thing I can not get working.

Appreciate your input.
 
Yes that's a matter of waiting, Markus will make it. There is a ZeDMD-specific channel on the Discord server. Ping him there ("mkalkbrenner" or at VPUniverse "mk47") and ask if he's getting close to something. I'm not involved in the ZeDMD dev anymore.
And no, it won't use Freezy's dmdext, only Serum will be used for colorization with the ZeDMD-PPUC for different reasons:
  • The reason of the encrypted fsq file format is also because some (if not most of them) authors are selling their colorization, what we respect, we don't want our system to be a way to bypass (=hack) that
  • Our aim is that most of the authors move to Serum and use my editor, so we are not interested in providing a system vni/pal-or-pac-compatible
  • The Serum file format is easy to use as it is a cross-platform (open-source) library (DLL for Windows), so I just have to update the DLL all along the development and any program using it will work with the new version
  • Dmdext code is Windows specific and would need some extra conversion coding to be working on a linux or arduino typed environment, once again, that's not our interest to spend time on that
So, yes, you need to wait for a Serum file for your rpin, but you could ask in the "help-colorization" Discord channel if someone would be interested. Anyway the hardware is not available yet.

I'm proud to say again and again that the library is open-source and that I didn't earn even a cent... sorry a penny from either ZeDMD or Serum and I really don't want to! Someone selling shields for ZeDMD proposed me to refund something for every shield sold and I refused. Likewise, if someday there is a ready-to-use ZeDMD and Serum based DMD set for rpins sold, if I am proposed to get back a part of the amount earned, I will refuse! I actively champion the donations, but only for colorization authors, not for me. If you read this and like a Serum colorization that you use a lot, think about donating even 50p or 1£ to the author ("Beer me up" at VPU), they really deserve it!

For Cactus Canon Continued, I really don't know, I tried it ages ago and was not aware that there was a bug with that. Is that working with the virtual DMD of dmdext? And with other real DMD (Pin2DMD, PinDMDv3, ...)?
 
Last edited:
Back
Top Bottom