DMDTools / DOF2DMD

Utility for arcade cabinets to display game marquees, score and animations on a DMD device.
GNU General Public License v2.0
6 stars 2 forks source link

DOF2DMD

DOF2DMD logo

DOF2DMD is a small utility for arcade cabinets to display game marquees, score and animations on a real or emulated DMD device.

It covers the following use cases:

DOF2DMD offers a simple HTTP API (see API) to display pictures, animations and scores.

One big use case is to interface DOFLinx and its modified version of MAME from DDH69 to get the DMD to show animations while playing MAME.

Here is how it looks like with an emulated DMD (using Freezy DMD extensions):

demo

DOF2DMD relies on FlexDMD, which itself uses Freezy DMD extensions

Architecture

Setup

Artwork

The images and animations must be in the artwork folder (by default in the DOF2DMD path under the artwork folder).

[!NOTE] I provide a basic set of artwork, so that you can test and start editing DOFLINX's .MAME files. You probably need more artwork. I created a tool which may help - see artwork4DMD. In addition, there is a pack you can download, and more you can buy from Neo-Arcadia. If you own a PixelCade, then you are entitled to a massive pixel perfect DMD artwork library. To create your own artwork, you can use a Pixel Art tool or Gif editor, like aseprite. There are example aseprite files in the ingame.src folder.

API

DOF2DMD is a server listening to simple http request. Once it has started, you can use the following :

Use in DOFLinx

To generate effects, DOFLinx uses .MAME files located in DOFLinx's MAME folder. DOFLinx can communicate with DOF2DMD, using DOFLinx FF_DMD command. The FF_DMD command can call any of the DOF2DMD APIs.

DOFLinx.ini file

Here is a minimal DOFLinx.ini file which will work with DOF2DMD:

# location of your files and systems
COLOUR_FILE=<DOFLinx path>\config\colours.ini
DIRECTOUTPUTGLOBAL=<DOFLinx path>\config\GlobalConfig_b2sserver.xml
PATH_MAME=<DOFLinx path>\MAME\
MAME_FOLDER=<MAME executable path (note: it must be DOFLinx modified MAME version)>

# When to activate, and more specifically what is the MAME process to kick things off
PROCESSES=Mame64
MAME_PROCESS=Mame64

# DOF2DMD
PATH_DOF2DMD=<location of DOF2DMD executable and settings.ini>

Note:

Embedded commands

DOFLinx will generate the following commands automatically:

Syntax of FF_DMD DOFLinx command

To add effects like showing animations or text during the game, you must insert the FF_DMD command in the <rom>.MAME file which corresponds to the game.

FF_DMD,U,<DOF2DMD API CALL without host nor /v1/ prefix>

Examples :

Check the .MAME files included in DOFLinx, which already contain FF_DMD commands.

Testing

Once DOF2DMD is started, you can use your browser to test it:

or use the demo.ps1 and demo2.ps1 PowerShell script.

Frontends plugin

TODO

Here is what I plan to implement :

💬 Questions and support

I count on the Pinball and Arcade community to help each other through the GitHub discussions. I will be there too.

Thank you

Thanks to