Skip to content

Latest commit

 

History

History
36 lines (32 loc) · 1.83 KB

VPXDMD.md

File metadata and controls

36 lines (32 loc) · 1.83 KB

Embedding the DMD inside VPX

Recent versions of Visual Pinball allow to direclty render the DMD on the playfield output, for example for FSS or desktop layouts, allowing to run in exclusive fullscreen mode without problems. A great example is the Cirqus Voltaire table by Knorr, Clark Kent, Randr, Dark.

FlexDMD also supports this feature. In this situation, FlexDMD renders the DMD and sends back the dot matrix to Visual Pinball for final rendering.

To add an embedded DMD to your table, follow these steps;

  • You should start with a working table, that uses FlexDMD and successfully renders through dmddevice.dll to a virtual or real DMD device
  • Add a Flasher object, and check its 'Use Script DMD' checkbox
  • Add a Timer object, name it FlexDMDTimer, enable it, set its Timer Interval to -1
  • In the script, after FlexDMD object creation, add either of UseDMD = true (for monochrome) or UseColoredDMD = true (for color)
  • In the script add the following snippet:
' Update the embedded DMD inside VPX. This requires the table to have a timer object, named 'FlexDMDTimer', enabled, with a timer interval of -1 (VPX > 10.2)
Sub FlexDMDTimer_Timer
	Dim DMDp
	If UseDMD Then
		DMDp = FlexDMD.DmdPixels
		If Not IsEmpty(DMDp) Then
			DMDWidth = FlexDMD.Width
			DMDHeight = FlexDMD.Height
			DMDPixels = DMDp
		End If
	ElseIf UseColoredDMD Then
		DMDp = FlexDMD.DmdColoredPixels
		If Not IsEmpty(DMDp) Then
			DMDWidth = FlexDMD.Width
			DMDHeight = FlexDMD.Height
			DMDColoredPixels = DMDp
		End If
	End If
End Sub



As an example, applying these changes to JPSalas' Diablo III table, gives the following result (top left DMD is rendered through FlexDMD/dmddevice.dll, bottom one is rendered by VPX):

Visual Pinball Architecture