Jump to content

Clear setup guide for ZeDMD with DMDExt, libzedmd, and libserum


Recommended Posts

Posted

Hello,

First of all, thank you for all the amazing work on ZeDMD and DMDExt. I really appreciate the effort that goes into developing and maintaining these tools.

 

I think it would be very helpful for the whole community if there was a clear step-by-step guide explaining exactly which files are needed to run ZeDMD with VPX/PinMAME, and how they interact with each other.

 

Right now, things feel quite confusing:

There are multiple versions of DMDExt (Freezy vs PPUC fork).

There is libzedmd for hardware communication.

There is libserum for Serum colorized packs.

And people are not always sure which DLLs go where.
 

I personally asked some ZeDMD owners how they managed to get it working. Most of them admitted that they don’t really know exactly what they installed — at some point it just started working, and since then they haven’t touched anything.
I even noticed that some people avoided buying a ZeDMD altogether because they were discouraged by the confusion around which versions and files to use.

 

For clarity, could you please explain:

Which DMDExt version is recommended for ZeDMD?

Which libzedmd version should be used, and where should it be placed?

Is libserum required for Serum packs, and how to integrate it?

Is there a stable “all-in-one” package or a reference setup that everyone should follow?

And finally, what are the interactions between these files (DMDExt, libzedmd, libserum), so that users can actually understand how the whole chain works?
 

I believe having this documented in one place would make it easier not only for me, but for many other users who want to use ZeDMD without struggling through trial and error.

 

Thanks a lot for your support and for helping the community get the most out of ZeDMD!

  • Content Provider
Posted

Hello
For Serum, everything is clear here :

and as soon as the dmdext virtual DMD show you the colorization, Serum in itself is ready for any device (Virtual DMD, ZeDMD, PinDMDv3, Pin2DMD).

Now if there are extra steps needed for ZeDMD, I let @mk47 or @PastorLUL (or anybody who feels confident about his knowledge) answer.

Posted

Which DMDExt version is recommended for ZeDMD?

  • Latest version available

Which libzedmd version should be used, and where should it be placed?

  • Get the latest release, place in pinmame folder.
    It's not necessarily required with the latest ZeDMD release available though. libzedmd is already embedded in the latest DMDext version.

Is libserum required for Serum packs, and how to integrate it?

  • If you want to be the most up to date possible, download the latest release and drop both "serum.dll" and "serum64.dll" in your pinmame folder. Some of the newer Serums being released require this.

Is there a stable “all-in-one” package or a reference setup that everyone should follow?

  • Not sure. Most people having trouble come to ask in the Serum discord server.

And finally, what are the interactions between these files (DMDExt, libzedmd, libserum), so that users can actually understand how the whole chain works?

  • DMDext is fed the pinmame DMD output, it then passes it onto libserum. Libserum colorizes it and then reports it back to DMDext.
    libzedmd communicates with DMDext for the colorized frames, which then passes it onto your ZeDMD.
  • Content Provider
Posted
19 hours ago, PastorLUL said:

Is libserum required for Serum packs, and how to integrate it?

  • If you want to be the most up to date possible, download the latest release and drop both "serum.dll" and "serum64.dll" in your pinmame folder. Some of the newer Serums being released require this.

 

I'd say the official instructions are now to always have the latest serum.dll and serum64.dll available from https://github.com/zesinger/libserum/releases in your vpinmame directory as a release for dmdext is not made for each release of libserum. Doing so either you have the same libserum than the one embedded in dmdext or you have a more recent one, but you can't be outdated. And I don't think you consider sparing 2x100ko on your disk is so important.

Posted

Thanks a lot for the clarifications, that really helps!

 

I still have one point of confusion though:

So far, I did the following setup:

 

  • I’m using DMDExt (Freezy) v2.3.1 (from February 14).
  • Then I installed the files zedmd.dll and zedmd64.dll from libzedmd v0.9.6 (from February 23). More recent than those included in DMDExt?
  • Finally, I also installed serum.dll and serum64.dll to make sure I was up to date.

My question is: is libzedmd v0.9.6 already included in DMDExt (Freezy) v2.3.1, or is it correct to manually replace the DLLs with the newer ones?

Thanks again for your guidance!

Posted

Like @zedrummer says, if you want to be sure always get the latest dlls and drop them in your pinmame folder.
In an ideal world if a new libzedmd or libserum version is available freezy immediately updates dmdext for everyone to download, but he also has other things to do. 

Posted (edited)
On 8/31/2025 at 7:42 PM, TechWizard0018 said:

to clarify if you have extracted freezys dmdext prior to this guide including the dmddevice.dll would you just have to copy the serum.dll and 64.dll into the vpinmame directory?  And then setup the rest using your guide?

 

Normally (if I understand correctly), after installing the latest Freezy’s DMDExt (v2.3.1), you don’t need to add anything else.
The only thing to do is copy the latest versions of serum.dll and serum64.dll into your VPinMAME folder, until of course new versions are released for the rest.

Edited by marco37
  • Content Provider
Posted

For serum[64].dll, yes, always copy the latest ones in the VPinMame directory. For zedmd[64].dll, I would do the same, I don't know if latest is embedded, but I'm not the coder any more.

  • Content Provider
Posted

Yes, Costura (the package allowing to embed dll as a resource in your code) works this way:

- if the dll is found in the directory where your program is, this dll is used

- if not, the embedded one is used

So dropping these dlls in the directory where dmddevice[64].dll is will make them used and the embedded ones ignored.

  • 4 months later...
Posted

need help   got zedmd 4.0.2  dmd is not starting in vpx     this is my log 

 

 [3] 2026/01/14 22:35:11.876  INFO | Starting DmdDevice API 2.4.0 (x64) through VPinballX64.exe. 
 [3] 2026/01/14 22:35:12.062  INFO | Assembly located at C:\vPinball\VisualPinball\VPinMAME\DmdDevice64.dll 
 [3] 2026/01/14 22:35:12.094  INFO | Running in C:\vPinball\VisualPinball\Tables 
 [3] 2026/01/14 22:35:12.173  INFO | Successfully loaded config from E:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini. 
 [3] 2026/01/14 22:35:12.509  INFO | [serum] Determined altcolor path from assembly path: C:\vPinball\VisualPinball\VPinMAME\altcolor 
 [3] 2026/01/14 22:35:12.509  INFO | Analytics disabled. 
 [3] 2026/01/14 22:35:12.606  INFO | [dll] Open(0) 
 [3] 2026/01/14 22:35:12.606  INFO | [dll] Set_4_Colors_Palette(device: 0, 0%: #000000, 33%:#0600D6, 66%:#E10FC1, 100%:#FF5820) 
 [3] 2026/01/14 22:35:12.606  INFO | [dll] PM_GameSettings(0, afm_113b, 1) 
 [3] 2026/01/14 22:35:12.619  INFO | Enabling game colorization 
 [3] 2026/01/14 22:35:12.619  INFO | Setting game name: afm_113b 
 [3] 2026/01/14 22:35:12.619  INFO | Setting color: #FFFF5820 
 [3] 2026/01/14 22:35:13.400  INFO | Serum v2 initialized 128x32. 
 [3] 2026/01/14 22:35:13.400  INFO | [serum] Found 0 triggers to emit. 
 [3] 2026/01/14 22:35:13.400  INFO | [serum] Serum colorizer v2.3 initialized. 
 [3] 2026/01/14 22:35:13.400  INFO | [serum] Loaded v2 colorization at C:\vPinball\VisualPinball\VPinMAME\altcolor\afm_113b\afm_113b.cRZafm_113b.cRom. 
 [3] 2026/01/14 22:35:13.400  INFO | Opening virtual display... 
 [9] 2026/01/14 22:35:13.622  INFO | Found B2S, moving behind DMD
 [9] 2026/01/14 22:35:14.381  INFO | Added VirtualDMD renderer. 
 [9] 2026/01/14 22:35:14.530  INFO | [pinup] Starting afm_113b... 
 [9] 2026/01/14 22:35:14.560  INFO | Added PinUP renderer. 
 [9] 2026/01/14 22:35:14.560  INFO | Transformation options: Resize=Fit, HFlip=False, VFlip=False 
 [9] 2026/01/14 22:35:14.578  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.578  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.578  INFO | Just clearing palette, colorization is done by converter. 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [9] 2026/01/14 22:35:14.588  INFO | Applying default color to render graphs (#FFFF5820). 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [9] 2026/01/14 22:35:14.588  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [9] 2026/01/14 22:35:14.679  INFO | Setting up 2-bit Colorization Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [9] 2026/01/14 22:35:14.681  INFO |   == Listening to DmdDevice 2-bit Source for Serum (Gray2) 
 [9] 2026/01/14 22:35:14.710  INFO |   ** Connecting converter Serum to Virtual DMD... 
 [9] 2026/01/14 22:35:14.757  INFO |     -> Connecting Serum to Virtual DMD (Rgb565 -> Rgb565) 
 [9] 2026/01/14 22:35:14.793  INFO |     -> Connecting Serum to Virtual DMD (ColoredGray6 -> ColoredGray6) 
 [9] 2026/01/14 22:35:14.793  INFO |     ~> Subscribing destination Virtual DMD to color rotation palette changes from Serum. 
 [9] 2026/01/14 22:35:14.793  INFO |   ** Connecting converter Serum to PinUP Writer... 
 [9] 2026/01/14 22:35:14.793  WARN |     -- Destination doesn't support RGB565 frames from converter, ignoring converter. 
 [9] 2026/01/14 22:35:14.793  WARN |     -- Destination doesn't support colored 6-bit frames from converter, ignoring converter. 
 [9] 2026/01/14 22:35:14.793  INFO |     ~> Subscribing destination PinUP Writer to frame events from Serum. 
 [9] 2026/01/14 22:35:14.793  INFO |     -- Converter Serum could not be linked with a compatible frame format to PinUP Writer. 
 [9] 2026/01/14 22:35:14.793  INFO |   -> Connecting DmdDevice 2-bit Source to PinUP Writer (Gray2 -> Gray2) - not deduped 
 [9] 2026/01/14 22:35:14.810  INFO | Setting up 4-bit Colorization Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [9] 2026/01/14 22:35:14.810  INFO |   == Listening to DmdDevice 4-bit Source for Serum (Gray4) 
 [9] 2026/01/14 22:35:14.810  INFO |   ** Connecting converter Serum to Virtual DMD... 
 [9] 2026/01/14 22:35:14.810  INFO |   ** Connecting converter Serum to PinUP Writer... 
 [9] 2026/01/14 22:35:14.810  WARN |     -- Destination doesn't support RGB565 frames from converter, ignoring converter. 
 [9] 2026/01/14 22:35:14.810  WARN |     -- Destination doesn't support colored 6-bit frames from converter, ignoring converter. 
 [9] 2026/01/14 22:35:14.810  INFO |     -- Converter Serum could not be linked with a compatible frame format to PinUP Writer. 
 [9] 2026/01/14 22:35:14.810  INFO |   -> Connecting DmdDevice 4-bit Source to PinUP Writer (Gray4 -> Gray4) - not deduped 
 [9] 2026/01/14 22:35:14.810  INFO | Setting up RGB24 Passthrough Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [9] 2026/01/14 22:35:14.810  INFO |   -> Connecting DmdDevice RGB24 Source to Virtual DMD (Rgb24 -> Rgb24) 
 [9] 2026/01/14 22:35:14.810  INFO |   -> Connecting DmdDevice RGB24 Source to PinUP Writer (Rgb24 -> Gray4) 
 [9] 2026/01/14 22:35:14.810  INFO | Setting up Alphanumeric Passthrough Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [9] 2026/01/14 22:35:16.685  INFO | Creating FBOs for 128x32 
[14] 2026/01/14 22:35:16.983  INFO | Resizing virtual DMD to 256x64 
 [9] 2026/01/14 22:35:16.983  INFO | Creating FBOs for 256x64 
 [3] 2026/01/14 22:35:53.030  INFO | [dll] Close(0) 
 [3] 2026/01/14 22:35:53.030  INFO | Closing up. 
 [3] 2026/01/14 22:35:53.125  INFO | Source for 7 renderer(s) stopped. 
 [3] 2026/01/14 22:35:53.143  INFO | Source for 2 renderer(s) stopped. 
 [3] 2026/01/14 22:35:53.143  INFO | Source for 2 renderer(s) stopped. 
[11] 2026/01/14 22:43:51.646  INFO | [dll] Open(0) 
[11] 2026/01/14 22:43:51.646  INFO | [dll] Set_4_Colors_Palette(device: 0, 0%: #000000, 33%:#0600D6, 66%:#E10FC1, 100%:#FF5820) 
[11] 2026/01/14 22:43:51.646  INFO | Applying palette of 4 to render graphs. 
[11] 2026/01/14 22:43:51.646  INFO | [dll] PM_GameSettings(0, afm_113b, 1) 
[11] 2026/01/14 22:43:51.646  INFO | Enabling game colorization 
[11] 2026/01/14 22:43:51.646  INFO | Reloading config from E:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini. 
[11] 2026/01/14 22:43:51.650  INFO | Setting game name: afm_113b 
[11] 2026/01/14 22:43:51.650  INFO | Setting color: #FFFF5820 
[11] 2026/01/14 22:43:51.810  INFO | Serum v2 initialized 128x32. 
[11] 2026/01/14 22:43:51.810  INFO | [serum] Found 0 triggers to emit. 
[11] 2026/01/14 22:43:51.810  INFO | [serum] Serum colorizer v2.3 initialized. 
[11] 2026/01/14 22:43:51.810  INFO | [serum] Loaded v2 colorization at C:\vPinball\VisualPinball\VPinMAME\altcolor\afm_113b\afm_113b.cRZafm_113b.cRom. 
[11] 2026/01/14 22:43:51.810  INFO | Opening virtual display... 
 [7] 2026/01/14 22:43:51.857  INFO | Found B2S, moving behind DMD
 [7] 2026/01/14 22:43:51.857  INFO | Added VirtualDMD renderer. 
 [7] 2026/01/14 22:43:51.857  INFO | [pinup] Starting afm_113b... 
 [7] 2026/01/14 22:43:51.912  INFO | Added PinUP renderer. 
 [7] 2026/01/14 22:43:51.912  INFO | Transformation options: Resize=Fit, HFlip=False, VFlip=False 
 [7] 2026/01/14 22:43:51.912  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.912  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.912  INFO | Just clearing palette, colorization is done by converter. 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551700, 66%:#FFAA2E00, 100%:#FFFF4500) 
 [7] 2026/01/14 22:43:51.916  INFO | Applying default color to render graphs (#FFFF5820). 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [7] 2026/01/14 22:43:51.916  INFO | [RenderGraph] SetColor(0%: #FF000000, 33%:#FF551D0B, 66%:#FFAA3B15, 100%:#FFFF5820) 
 [7] 2026/01/14 22:43:51.916  INFO | Resizing virtual DMD to 128x32 
 [7] 2026/01/14 22:43:51.916  INFO | Setting up 2-bit Colorization Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [7] 2026/01/14 22:43:51.916  INFO |   == Listening to DmdDevice 2-bit Source for Serum (Gray2) 
 [7] 2026/01/14 22:43:51.916  INFO |   ** Connecting converter Serum to Virtual DMD... 
 [7] 2026/01/14 22:43:51.916  INFO |     -> Connecting Serum to Virtual DMD (Rgb565 -> Rgb565) 
 [7] 2026/01/14 22:43:51.916  INFO |     -> Connecting Serum to Virtual DMD (ColoredGray6 -> ColoredGray6) 
 [7] 2026/01/14 22:43:51.916  INFO |     ~> Subscribing destination Virtual DMD to color rotation palette changes from Serum. 
 [7] 2026/01/14 22:43:51.916  INFO |   ** Connecting converter Serum to PinUP Writer... 
 [7] 2026/01/14 22:43:51.916  WARN |     -- Destination doesn't support RGB565 frames from converter, ignoring converter. 
 [7] 2026/01/14 22:43:51.916  WARN |     -- Destination doesn't support colored 6-bit frames from converter, ignoring converter. 
 [7] 2026/01/14 22:43:51.916  INFO |     ~> Subscribing destination PinUP Writer to frame events from Serum. 
 [7] 2026/01/14 22:43:51.916  INFO |     -- Converter Serum could not be linked with a compatible frame format to PinUP Writer. 
 [7] 2026/01/14 22:43:51.916  INFO |   -> Connecting DmdDevice 2-bit Source to PinUP Writer (Gray2 -> Gray2) - not deduped 
 [7] 2026/01/14 22:43:51.916  INFO | Setting up 4-bit Colorization Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [7] 2026/01/14 22:43:51.916  INFO |   == Listening to DmdDevice 4-bit Source for Serum (Gray4) 
 [7] 2026/01/14 22:43:51.916  INFO |   ** Connecting converter Serum to Virtual DMD... 
 [7] 2026/01/14 22:43:51.916  INFO |   ** Connecting converter Serum to PinUP Writer... 
 [7] 2026/01/14 22:43:51.916  WARN |     -- Destination doesn't support RGB565 frames from converter, ignoring converter. 
 [7] 2026/01/14 22:43:51.916  WARN |     -- Destination doesn't support colored 6-bit frames from converter, ignoring converter. 
 [7] 2026/01/14 22:43:51.916  INFO |     -- Converter Serum could not be linked with a compatible frame format to PinUP Writer. 
 [7] 2026/01/14 22:43:51.916  INFO |   -> Connecting DmdDevice 4-bit Source to PinUP Writer (Gray4 -> Gray4) - not deduped 
 [7] 2026/01/14 22:43:51.916  INFO | Setting up RGB24 Passthrough Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [7] 2026/01/14 22:43:51.916  INFO |   -> Connecting DmdDevice RGB24 Source to Virtual DMD (Rgb24 -> Rgb24) 
 [7] 2026/01/14 22:43:51.916  INFO |   -> Connecting DmdDevice RGB24 Source to PinUP Writer (Rgb24 -> Gray4) 
 [7] 2026/01/14 22:43:51.916  INFO | Setting up Alphanumeric Passthrough Graph for 2 destination(s) [ Virtual DMD, PinUP Writer ] 
 [7] 2026/01/14 22:43:52.395  INFO | Creating FBOs for 128x32 
 [5] 2026/01/14 22:43:53.386  INFO | Resizing virtual DMD to 256x64 
 [7] 2026/01/14 22:43:53.386  INFO | Creating FBOs for 256x64 
[11] 2026/01/14 22:44:08.098  INFO | [dll] Close(0) 
[11] 2026/01/14 22:44:08.098  INFO | Closing up. 
[11] 2026/01/14 22:44:08.120  INFO | Source for 7 renderer(s) stopped. 
[11] 2026/01/14 22:44:08.134  INFO | Source for 2 renderer(s) stopped. 
[11] 2026/01/14 22:44:08.134  INFO | Source for 2 renderer(s) stopped. 
 

Posted

[global]

; how to scale games to smaller or larger displays: fit, fill or stretch
resize = stretch

; flips the image horizontally
fliphorizontally = false

; flips the image vertically
flipvertically = false

; enable or disable frame-by-frame colorization (inactive in VPX bundle)
colorize = true

; scaler mode for standard content (vpm frames): none, doubler, scale2x.
; note: see readme.md for details
scalermode = scale2x

; VNI colorizations can contain 256x64 frames for 128x32 games. this defines
; how the frames that aren't replaced are up-scaled. doubler or scale2x.
vni.scalermode = doubler

; the key to decrypt PAC files, in hex.
vni.key =  f0ad135937ffa111c60b24d88ebb2e59


; if set, don't send anonymous usage statistics
skipanalytics = false

; put your plugins here, up to 10 plugins can be defined.
; since they are native plugins, you need to define them
; for both 32-bit and 64-bit versions.
plugin.0.path =
plugin.0.path64 =
plugin.0.passthrough = false

; a DMD that renders with nice dots on a computer monitor
[virtualdmd]
enabled = true

; virtual dmd stays on top of all other windows
stayontop = false

; ignore the aspect ratio of the rendered dots when resizing
ignorear = false

; use VPM's registry values when positioning the virtual dmd
useregistry = false

; x-axis of the window position
left = 0

; y-axis of the window position
top = 0

; width of the dmd in monitor pixels
width = 1024

; height of the dmd in monitor pixels
height = 256

; style to apply to games where it's not explicitly set
style = default

; scale the dot size (set to 0.8 for same size as pre-1.6.0)
style.default.dotsize = 0.85

; rounding of the dots (0 is square, 1 is circle)
style.default.dotrounding = 0.85

; scale the brightness of the dots
style.default.brightness = 0.95

; amount of glow to add around the dots
style.default.dotglow = 0.3

; amount of glow of the dots background (very blurry diffuse glow)
style.default.backglow = 0.4

; gamma correction (1.0 to disable, a value around 2.2 should be used)
style.default.gamma = 1

; amount of lighting of unlit dots
style.default.unlitdot = #00000000

; texture path for the DMD glass
style.default.glass = 

; Amount and color of lighting of the glass coming from the room
style.default.glass.color = #00000000

; Amount of lighting of the glass coming from the DMD
style.default.glass.lighting = 0

; sharpness of the dots
style.default.dotsharpness = 0.8

; padding of the DMD under the glass (fake unlit dots are added around the real DMD to account for this padding)
style.default.glass.padding.left = 0
style.default.glass.padding.top = 0
style.default.glass.padding.right = 0
style.default.glass.padding.bottom = 0

; texture path for an overlay frame
style.default.frame = 

; padding of the glass under the frame
style.default.frame.padding.left = 0
style.default.frame.padding.top = 0
style.default.frame.padding.right = 0
style.default.frame.padding.bottom = 0

; Legacy style (plain square dots without any effects)
style.legacy.dotsize = 0.92
style.legacy.dotrounding = 1.0
style.legacy.brightness = 1.0
style.legacy.dotglow = 0.0
style.legacy.backglow = 0.0
style.legacy.gamma = 1.0
style.legacy.unlitdot = #00000000
style.legacy.glass = null
style.legacy.glass.color = #00000000
style.legacy.glass.lighting = 0.0
style.legacy.glass.padding.left = 0
style.legacy.glass.padding.top = 0
style.legacy.glass.padding.right = 0
style.legacy.glass.padding.bottom = 0
style.legacy.frame = null
style.legacy.frame.padding.left = 0
style.legacy.frame.padding.top = 0
style.legacy.frame.padding.right = 0
style.legacy.frame.padding.bottom = 0

; Example of using the glass padding to fit a 128x16 DMD in a 128x32 display frame
style.dataeast-128x16.dotsize = 0.5
style.dataeast-128x16.dotrounding = 0.5
style.dataeast-128x16.brightness = 8
style.dataeast-128x16.dotglow = 0.03
style.dataeast-128x16.backglow = 0.03
style.dataeast-128x16.gamma = 2.2
style.dataeast-128x16.glass = null
style.dataeast-128x16.glass.color = #00000000
style.dataeast-128x16.glass.lighting = 0
style.dataeast-128x16.glass.padding.left = 0
style.dataeast-128x16.glass.padding.top = 8
style.dataeast-128x16.glass.padding.right = 0
style.dataeast-128x16.glass.padding.bottom = 8
style.dataeast-128x16.frame = null
style.dataeast-128x16.frame.padding.left = 0
style.dataeast-128x16.frame.padding.top = 0
style.dataeast-128x16.frame.padding.right = 0
style.dataeast-128x16.frame.padding.bottom = 0
style.dataeast-128x16.unlitdot = #FF2C1600
style.bluesquare.brightness = 3.24
style.bluesquare.dotsize = 0.72
style.bluesquare.dotrounding = 0
style.bluesquare.dotsharpness = 0.8
style.bluesquare.unlitdot = #00000000
style.bluesquare.dotglow = 0.186178861788618
style.bluesquare.backglow = 0.11
style.bluesquare.gamma = 0.94
style.bluesquare.tint = #ff2852f5
style.bluesquare.glass = textures\glasses\glass3.jpg
style.bluesquare.glass.color = #ff5477ff
style.bluesquare.glass.lighting = 0.13
style.bluesquare.glass.padding.left = 0
style.bluesquare.glass.padding.top = 0
style.bluesquare.glass.padding.right = 0
style.bluesquare.glass.padding.bottom = 0

; bally frame by wiesshund
style.bally.brightness = 0.95
style.bally.dotsize = 0.85
style.bally.dotrounding = 0.85
style.bally.dotsharpness = 0.8
style.bally.unlitdot = #00000000
style.bally.dotglow = 0.3
style.bally.backglow = 0.4
style.bally.gamma = 1
style.bally.tint = #00ff5820
style.bally.glass = 
style.bally.glass.color = #00000000
style.bally.glass.lighting = 0
style.bally.glass.padding.left = 0
style.bally.glass.padding.top = 0
style.bally.glass.padding.right = 0
style.bally.glass.padding.bottom = 0
style.bally.frame = textures\frames\bally.png
style.bally.frame.padding.left = 2.4
style.bally.frame.padding.top = 0.9
style.bally.frame.padding.right = 1
style.bally.frame.padding.bottom = 15.03

; metal frame by benji
style.metal1.brightness = 0.95
style.metal1.dotsize = 0.92
style.metal1.dotrounding = 1
style.metal1.dotsharpness = 0.8
style.metal1.unlitdot = #00000000
style.metal1.dotglow = 0
style.metal1.backglow = 0
style.metal1.gamma = 1
style.metal1.tint = #00ff5820
style.metal1.glass = 
style.metal1.glass.color = #00000000
style.metal1.glass.lighting = 1
style.metal1.glass.padding.left = 12
style.metal1.glass.padding.top = 12
style.metal1.glass.padding.right = 12
style.metal1.glass.padding.bottom = 12
style.metal1.frame = textures\frames\metal4.png
style.metal1.frame.padding.left = 12
style.metal1.frame.padding.top = 12
style.metal1.frame.padding.right = 12
style.metal1.frame.padding.bottom = 12

[pindmd1]

; if false, doesn't bother looking for a pinDMD1
enabled = false

[pindmd2]

; if false, doesn't bother looking for a pinDMD2
enabled = false

[pindmd3]

; if false, doesn't bother looking for a pinDMD3
enabled = false

; COM port, e.g. COM3
port = 


[zedmd]

; if false, doesn't bother looking for a ZeDMD
enabled = true

; if true, ZeDMD displays its debug informations
;debug = false

; optionally set the brightness from 0 to 15 
;brightness = 6

; optionally set the COM port and disable auto discovery in case it causes trouble with other devices 
;port = COM9

[zedmdhd]

; if false, doesn't bother looking for a ZeDMD HD
enabled = true

; if true, ZeDMD displays its debug informations
;debug = false

; optionally set the brightness from 0 to 15 
;brightness = 15

; optionally set the COM port and disable auto discovery in case it causes trouble with other devices 
;port = COM9

[zedmdwifi]

; if false, doesn't bother looking for a ZeDMD WiFi
enabled = false

; if true, ZeDMD displays its debug informations
;debug = false

; optionally set the brightness from 0 to 15 
;brightness = 6

; if not set, the WiFi mode uses its autodiscovery 
;wifi.address = 192.168.0.27

[zedmdhdwifi]

; if false, doesn't bother looking for a ZeDMD HD WiFi
enabled = false

; if true, ZeDMD displays its debug informations
;debug = false

; optionally set the brightness from 0 to 15 
;brightness = 6

; if not set, the WiFi mode uses its autodiscovery 
;wifi.address = 192.168.0.27

[pin2dmd]

; if false, doesn't bother looking for a PIN2DMD
enabled = false

; how long to wait in milliseconds after sending a palette
delay = 25

[pixelcade]

; if false, doesn't bother looking for a Pixelcade
enabled = false

; COM port, e.g. COM3
port = COM9


; color matrix to use, either "rgb" or "rbg"
matrix = rgb

[networkstream]

; if enabled, stream to your DMD connected to another computer
enabled = false
url = ws://127.0.0.1/dmd

; if enabled, retry connecting if the connection fails, default is false
retry = false

; interval in seconds between retry attempts, default is 5
retry-interval = 5

[browserstream]

; if enabled, stream to your browser in your LAN
enabled = false
port = 9090

[vpdbstream]

; if enabled, stream DMD to https://test.vpdb.io/live
enabled = false
endpoint = https://api-test.vpdb.io/

[video]

; if enabled, writes frames to an .avi file
enabled = false

; path to folder or .avi file. if folder, gamename.avi is used.
path = 

[pinup]

; if enabled, send frames to PinUP.
enabled = false

[rawoutput]

; if enabled, write all frames to VPM's dmddump folder.
enabled = false

[alphanumeric]
enabled = false
style = default
style.default.skewangle = 12
style.default.backgroundcolor = ff000000
style.default.foreground.enabled = true
style.default.foreground.color = fffbe6cb
style.default.foreground.blur.enabled = true
style.default.foreground.blur.x = 2
style.default.foreground.blur.y = 2
style.default.foreground.dilate.enabled = false
style.default.innerglow.enabled = true
style.default.innerglow.color = a0dd6a03
style.default.innerglow.blur.enabled = true
style.default.innerglow.blur.x = 15
style.default.innerglow.blur.y = 13
style.default.innerglow.dilate.enabled = true
style.default.innerglow.dilate.x = 15
style.default.innerglow.dilate.y = 10
style.default.outerglow.enabled = true
style.default.outerglow.color = 40b65829
style.default.outerglow.blur.enabled = true
style.default.outerglow.blur.x = 50
style.default.outerglow.blur.y = 50
style.default.outerglow.dilate.enabled = true
style.default.outerglow.dilate.x = 90
style.default.outerglow.dilate.y = 40
style.default.background.enabled = true
style.default.background.color = 20ffffff
style.default.background.blur.enabled = true
style.default.background.blur.x = 7
style.default.background.blur.y = 7
style.default.background.dilate.enabled = false
style.blue.skewangle = 12
style.blue.weight = Bold
style.blue.backgroundcolor = #ff000000
style.blue.foreground.enabled = true
style.blue.foreground.color = #ff00ffff
style.blue.foreground.blur.enabled = true
style.blue.foreground.blur.x = 2
style.blue.foreground.blur.y = 2
style.blue.foreground.dilate.enabled = false
style.blue.innerglow.enabled = true
style.blue.innerglow.color = #ff0000ff
style.blue.innerglow.blur.enabled = true
style.blue.innerglow.blur.x = 15
style.blue.innerglow.blur.y = 13
style.blue.innerglow.dilate.enabled = true
style.blue.innerglow.dilate.x = 15
style.blue.innerglow.dilate.y = 10
style.blue.outerglow.enabled = true
style.blue.outerglow.color = #ff000080
style.blue.outerglow.blur.enabled = true
style.blue.outerglow.blur.x = 50
style.blue.outerglow.blur.y = 50
style.blue.outerglow.dilate.enabled = true
style.blue.outerglow.dilate.x = 6
style.blue.outerglow.dilate.y = 40
style.blue.background.enabled = true
style.blue.background.color = #2dfffafa
style.blue.background.blur.enabled = true
style.blue.background.blur.x = 7
style.blue.background.blur.y = 7
style.blue.background.dilate.enabled = false
style.green.skewangle = 12
style.green.weight = Bold
style.green.backgroundcolor = #ff000000
style.green.foreground.enabled = true
style.green.foreground.color = #ff00ff00
style.green.foreground.blur.enabled = true
style.green.foreground.blur.x = 2
style.green.foreground.blur.y = 2
style.green.foreground.dilate.enabled = false
style.green.innerglow.enabled = true
style.green.innerglow.color = #eb00ff7f
style.green.innerglow.blur.enabled = true
style.green.innerglow.blur.x = 15
style.green.innerglow.blur.y = 13
style.green.innerglow.dilate.enabled = true
style.green.innerglow.dilate.x = 4
style.green.innerglow.dilate.y = 4
style.green.outerglow.enabled = true
style.green.outerglow.color = #b900fa9a
style.green.outerglow.blur.enabled = true
style.green.outerglow.blur.x = 50
style.green.outerglow.blur.y = 50
style.green.outerglow.dilate.enabled = true
style.green.outerglow.dilate.x = 1
style.green.outerglow.dilate.y = 2
style.green.background.enabled = true
style.green.background.color = #2dfffafa
style.green.background.blur.enabled = true
style.green.background.blur.x = 7
style.green.background.blur.y = 7
style.green.background.dilate.enabled = false

Posted

you have both zedmd and zedmd hd set to enabled. be sure it's only one, and besides that you should update the ZeDMD. Version 4.0.2 is really old, also make sure there are no zedmd dlls in your vpinmame folder

Posted (edited)

It works.  Thank you for the help. Updated to zedmd 5.1.8 and freezy dmd 2.4. Now it works perfect

Edited by ikke242

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...