vbousquet / flexdmd

A DMD renderer for Visual Pinball original tables.
Apache License 2.0
55 stars 13 forks source link
dmd pinball visualpinball

FlexDMD

FlexDMD is a DMD renderer extension for Visual Pinball and Pinball front-ends like PinballY. It can also be used as a drop-in replacement for the great UltraDMD from Stephen Rakonza, solving some of its rough corners since its development seems to have stopped.

Example Video

Documentation :

Features

The main features are summarized below:

Installation

Download the latest release or snapshot build: Release Snapshot
GitHub Releases GitHub Actions

It comes with the following files;

Beside these files, you will need DmdDevice.dll for 32 bits rendering, and DmdDevice64.dll for 64 bits rendering. There can be different flavors of these. The ones used for developping FlexDMD are Freezy's DMD Extensions, where you can find the needed files in the Release section. Just place them alongside the FlexDMD files (the 64bits version need to be renamed to DmdDevice64.dll).

You can place these 6 files where you want. It happens that VPinMame also uses DMDDevice.dll and requires it to be placed alongside itself. Therefore a good place to place FlexDMD and DMDDevice files would be in your VPinMame folder (usually C:\Visual Pinball\VPinMAME).

The FlexDMDUI.exe application allows you to install the different parts and test them. So just launch it, check it finds all the needed files (first panel), then simply press register (second panel) for the FlexDMD extension, and, if you want it, just press register (third panel) for the UltraDMD replacement.

To check that everything is fine, switch from the 'Installer' tab to one of the 'Designer' tab and press 'Run'.

A VPX table which demonstrates some of the capabilities of FlexDMD is provided with each release; just open & run it with Visual Pinball X version 10.6+ to see examples of what can be done.

Finally, you will also find a Scripts folder with a few prepared scripts;

Configuration

FlexDMD does not have any configuration file:

Therefore to position the DMD, if you are using Freezy's DMD, simply run the table, right click on the DMD and select the option to save its position.

When using FlexDMD as an UltraDMD replacement, you may want to edit UltraDMD options regarding DMD's coloring. This is easily done using the FlexDMD companion application (FlexDMDUI.exe) in the configuration tab.

Build Instructions

  1. Download and install Visual Studio 2019
  2. Clone the repo: git clone https://github.com/vbousquet/flexdmd.git
  3. Open the .sln file in Visual Studio and build the solution.

Architecture

The following diagram shows the overall architecture of Visual Pinball and where FlexDMD sits.

Overall Architecture

Installing from the command line

Whilst it is not the preferred way of using it, FlexDMDUI.exe can also be used from the command line with the given commands: