Hi guys,
Some of you might have heard about
Pinball Browser, an application that allows browsing and editing all the sounds, images, videos, messages etc of Stern SAM games. It was written by oga83 over at Pinside and it's an excellent tool. One of its features is the possibility to add color data to the
DMD frames. Once done, it's possible to re-route the
DMD signal from the real pin through a Raspberry Pi which adds the color data and displays it in all glory on an LCD display. The software doing that is called
SmartDMD and is written by oga83 as well.
As it happened, Lucky1 managed to do the same in the firmware of his RGB LED dot matrix contoller called PIND
ᒿDMD. Those of you who have one have probably already used it. It allows you to have frame-by-frame coloring in
VPM games. It works by either using a modified ROM from Pinball Browser or by detecting frames and applying different color palettes to each frame, or even replace entire frames. The result is similar to what SmartDMD and
ColorDMD offer for real pins, and it's pretty awesome!
Until now, in the virtual pinball community, this has been an exclusive feature for PIND
ᒿDMD owners. However, since opening access to cool technology usually comes with hell of a lot more benefits than drawbacks, Lucky1 decided to team up with some folks and implement this in a way so everybody can use it.
The first step came with a
VPM patch from Lucky1 that allowed
VPM to delegate
DMD rendering to an external DLL. This already went upstream a few months ago and is now part of the official VPinMAME source, thanks to Toxie. The second step was DJRobX adding support for modified ROMs to the unofficial SAM source. This allows
VPM to actually understand Pinball Browser's ROM modifications and send the color info to the DLL. (Note that this is only one of two ways of coloring ROMs, the second way doesn't use Pinball Browser, doesn't modify ROMs and works also for non-SAM games - hence this thread here at
VPF.)
The third step was for me to integrate the DLL's API into
DMD Extensions, a tool that allows the usage of real DMDs for Pinball Arcade, Pinball FX2 and Pro Pinball and that was already shipped with the VPX 10.2 release.
DMD Extensions also comes with a virtual
DMD which renders quite nicely on computer monitors. So having
DMD Extensions integrated with
VPM now allows us to have one single DLL that renders to all supported real DMDs plus the monitor. Which is a good base for adding coloring.
So after a couple of weeks of work, we are now reaching a point where it has become somewhat stable, and I'm happy to announce that if you have a PIND
ᒿDMD, PinDMD3 or computer monitor (duh), you can fully benefit from frame-by-frame coloring using
DMD Extension's DLL.
Games
Currently there are only a few games available in color, which are all SAM games modified through Pinball Browser. Here are some of them:
By making the coloring feature available to everyone, we hope that some of you might start coloring non-SAM ROMs as well. There are a lot of great games out there.
How does this work?
Stern SAM games through Pinball Browser are explained above: The ROM is modified with additional color data which is then applied to each frame individually.
For all other games, we do the coloring ourselves: Every frame coming from
VPM is analyzed. If matched, color info is added. Static content can be entirely replaced, dynamic content (with scores, video modes etc) can be enhanced.
Usually there are no animations in a game when nothing's going on, so there is a default palette. For each animation you then define key frames where you want the palette to change. For four shades, we increase the color depth, so you're able to set 16 individual colors for every frame even for non-SAM games. With that you're able to do pretty awesome stuff.
Technically, it would be possible to add even more colors, but it turns out 16 colors are plenty. Remember, 16 colors means out of ~16 million colors you get to pick 16 for every frame. That means while you cannot do large gradients in one frame, you can do it over multiple frames.
Anyway, I'm mentioning this because I want it to be clear that what the current SAM games show off can be equally achieved for all other (non-SAM) games.
Setup
Firstly you'll need to
download the DLL (which by the way is called DmdDevice.dll). The best is to copy it to your
C:\Windows\SysWOW64 folder, along with DmdDevice.ini. Remove or rename whatever dmddevice.dll you have in your VPinMAME folder.
The next steps will get a lot easier with *cough* VPDB *cough*, but for now, you need to do the following:
1. Download the patch file and patch the ROM
2. Create folder in
VPM's altcolor folder
3. Copy the palette files there
4. Enable "Use external
DMD (dll)" in
VPM
5. Use patched ROM in VPX and play the game!
This is of course simplified. I won't go into more details because of the SAM rules here, but search "modular dmd drivers" on the other site and you'll find a detailed step-by-step guide by roar.
Create
As mentioned before,
DMD coloring is not exclusive to SAM ROMs. You can color any ROM using
PINDᒿDMD Editor written by Steve. Download the Windows or Mac version
here.
The first thing you need to do is get or create a frame dump of the game you want to colorize. You can do that by creating a folder called DmdDump where
VPM is located. In order to record frames, enable "Show
DMD" AND "Use external
DMD" in
VPM. Finally, use Gzip to compress the resulting .txt file in order to load it into PIND
ᒿDMD Editor.
The goal of the frame dump is to get all available frames of the game. So you basically need to finish the game by playing through all modes while recording. The debug mode in VPX should be helpful to achieve this.
Once you have the frame dump, you can start coloring. There is a tutorial on how to do that
here and the manual can be found
here.
If you're going for a SAM ROM, you can also use Pinball Browser.
Here's an introduction. You'll need the full version of the software. Buy it, it's cheap and you're supporting a guy who has done awesome work for the pinball community.
Thanks!
This was really a team effort, so tons of thanks to Lucky1, Toxie, DJRobX, our chief of coloring Sharkky and of course oga83. Cheers also to the testers who gave feedback and made it better.
Edited by freezy, 19 March 2021 - 07:50 AM.