Jump to content



Photo
* * * * * 6 votes

FlexDMD, an UltraDMD alternative

UltraDMD DMD

  • Please log in to reply
835 replies to this topic

#421 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 11 November 2020 - 08:38 PM

@JPSalas : These are great news. Me and my family are really big fans of your tables. And the 3.0 physics pack is really great. One day, I will be able to perform all Craig Pullen's tricks ! Thanks a lot for your great work !

 

Regarding the DMD, the hard part for FlexDMD is to find back the dots of the images from the prerendered ones you include in the table. To get a really nice rendering, maibe, the best would be to ;

- stick to the 128x32 DMD size since nearly all real DMD have this size and DMD don't stretch well at all on real device

- provide in the table the original letters without the spacing and glow between the dots; these would be the one sent to the real DMD via FlexDMD (and therefore, there would not be any needs to change anything to the apron DMD, if you want to keep the FlexDMD dependency as an option and not a requirement). For the time being, FlexDMD try to recreate these letters by downsampling the image used for the apron DMD, and it does not give very clean result on a real DMD.

 

If you think some features on FlexDMD would help you or make the task easier, feel free to ask. I will be glad to have a look and see if I can add them.

 

Regards,

 

     Vincent



#422 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 11 November 2020 - 10:45 PM

what about if you did 768 x 192 with no pre dotted mesh pattern on the media?

 

would downscale to a real DMD yes? as the aspect ratio is the same.
Wish i had a DMD screen to tinker with

And yet display better where the DMD screen is an LCD and can show higher resolutions?

Also, any possibility of getting some flexDMD tutorials?
You can do a lot more with it as opposed to UltraDMD
but it is only ultrdmd that i find tutorials for


Edited by wiesshund, 11 November 2020 - 10:47 PM.

If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#423 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 12 November 2020 - 06:20 AM

The problem with downscaling is to rebuilt a 'good' image:

- When you prepare image for rendering no the apron, you need to prerender the glow of the dots which spreads away from the dot itself to surrounding dots for the result to look good. When rendering on a DMD, you just want the lit/unlit dots; the glow is a natural thing or rendered by the virtual DMD. So when downscaling, the prerendered glow will make the result somewhat fuzzy.

- Regarding the size of the DMD, you are right; multiple of the original size do scale way better. Still the best is to keep to the real size. For the time being, JP's DMD are 128x36. Going back to 128x32 would give a better result. Another point is the searched effect; this i a question of taste but my feeling is that increasing the resolution will move you away from the DMD 'feeling'. Personally, I prefer 128x32 DMD or Pinup style 'DMD' (full size video which are not DMD in fact, but fit nicely); I'm not big fan of hires DMD like the 192x64 of Sega pinballs.

- Another point is that the readability is not the same, so to get a good result, you have to test the table on a real/virtual DMD to see how it will be rendered. This gives more work to the table designer.

 

Regarding the tutorials or at least the doc and, why not, a demo table, I'm thinking about it. My main problem is the lack of time.


Edited by vbousquet, 12 November 2020 - 06:55 AM.


#424 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,000 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 12 November 2020 - 06:48 AM

Could it not be said. UltraDMD doc applies to FlexDMD, until at least any new doc exists ? After all, the aim was/is to be compatible.


From now on. I won't help anyone here at VPF. Please ask Noah why that is.


#425 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 12 November 2020 - 06:53 AM

Yes sure, UltraDMD docs do fully apply to FlexDMD. There are no more known bugs. It just works.

 

The missing doc for FlexDMD are for table creator wanting to access more advanced features (like the way JP manages its DMD). But, don't worry. I should come with some sort of docs or demo table to give references before Christmas.



#426 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 12 November 2020 - 07:37 AM

The problem with downscaling is to rebuilt a 'good' image:

- When you prepare image for rendering no the apron, you need to prerender the glow of the dots which spreads away from the dot itself to surrounding dots for the result to look good. When rendering on a DMD, you just want the lit/unlit dots; the glow is a natural thing or rendered by the virtual DMD. So when downscaling, the prerendered glow will make the result somewhat fuzzy.

- Regarding the size of the DMD, you are right; multiple of the original size do scale way better. Still the best is to keep to the real size. For the time being, JP's DMD are 128x36. Going back to 128x32 would give a better result. Another point is the searched effect; this i a question of taste but my feeling is that increasing the resolution will move you away from the DMD 'feeling'. Personally, I prefer 128x32 DMD or Pinup style 'DMD' (full size video which are not DMD in fact, but fit nicely); I'm not big fan of hires DMD like the 192x64 of Sega pinballs.

Real DMD display aside, cause there is stuff you just are not putting on one
what if what you are rendering is video, like, well let's say Stern Deadpool for example, to use a real table.
Any suggestions for that kind of content? aside from popper which not everyone has wants or like.
 


Regarding the tutorials or at least the doc and, why not, a demo table, I'm thinking about it. My main problem is the lack of time.

 

personally, myself, i would go for doc, text example form rather than example table form.

 

 

Could it not be said. UltraDMD doc applies to FlexDMD, until at least any new doc exists ? After all, the aim was/is to be compatible.

It does work, yes, but it is kind of limited in the scope of what flex can actually do as opposed to what ultra can do
you can do more things with flexdmd, if you use the native flex programming


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#427 drady

drady

    Hobbyist

  • Members
  • PipPip
  • 15 posts

  • Flag: Australia

  • Favorite Pinball: Space invaders

Posted 26 November 2020 - 08:09 PM

Would love it if someone has got flexdmd to work with scarface, that table has me stumped.

#428 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 26 November 2020 - 08:12 PM

Would love it if someone has got flexdmd to work with scarface, that table has me stumped.

That table is not designed to work with flexDMD
What is the problem?



#429 drady

drady

    Hobbyist

  • Members
  • PipPip
  • 15 posts

  • Flag: Australia

  • Favorite Pinball: Space invaders

Posted 26 November 2020 - 08:22 PM

I've read all the forums and ppl just say read it and don't bug us. I can hide the grills but loose the dmd.

#430 Mitchell

Mitchell

    Pinball Fan

  • VIP
  • 1,434 posts

  • Flag: United States of America

  • Favorite Pinball: Many

Posted 26 November 2020 - 08:43 PM

FlexDMD better than the UltraDMD. :)

 

Reason is it can keep the DMD on top of the running table.


Edited by Mitchell, 26 November 2020 - 08:44 PM.

W11 Home 64-bit + Nobara OS / AMD Radeon RX 5700 XT / AMD Ryzen 7 3700X 8-Core 3.59 GHz / RAM 64 GB


#431 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 26 November 2020 - 10:58 PM

Would love it if someone has got flexdmd to work with scarface, that table has me stumped.

 Define "Work with" ?

ANY table works with flexDMD
IF you make the table have flexDMD content to display
Even an EM table, if you so desired.

 it isnt a matter of "make this work with" 
but a matter of "Make it" period

 

For this table
All you have to do, is go through the script
and basically mirror everything that would be sent the the DMD flasher array
in FLexDMD (or ultraDMD since flex understands its programming as well) commands

 

Or carefully replace it all, either way, you simply need to devote your time to it
and all the artwork is already done for you.

 

But that does not sound like it actually addresses the problem you are having, nor is a flexDMD thread the place to has it out

You sound like you have a B2S issue
So you should probably open a thread for that if you have B2S issues in general, or post to the backglass's support thread if you only have issues with this backglass.
Is this even a 3 screen backglass that you have?
Cause hiding the grill area on a 2 screen B2S might take out the DMD with it depending on how it is made


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#432 jpsalas

jpsalas

    Grand Schtroumpf

  • VIP
  • 7,333 posts
  • Location:I'm Spanish, but I live in Oslo (Norway)

  • Flag: Norway

  • Favorite Pinball: I like both new and old, but I guess I prefer modern tables with some rules and goals to achieve.



Posted 27 November 2020 - 03:52 AM

@JPSalas : These are great news. Me and my family are really big fans of your tables. And the 3.0 physics pack is really great. One day, I will be able to perform all Craig Pullen's tricks ! Thanks a lot for your great work !

 

Regarding the DMD, the hard part for FlexDMD is to find back the dots of the images from the prerendered ones you include in the table. To get a really nice rendering, maibe, the best would be to ;

- stick to the 128x32 DMD size since nearly all real DMD have this size and DMD don't stretch well at all on real device

- provide in the table the original letters without the spacing and glow between the dots; these would be the one sent to the real DMD via FlexDMD (and therefore, there would not be any needs to change anything to the apron DMD, if you want to keep the FlexDMD dependency as an option and not a requirement). For the time being, FlexDMD try to recreate these letters by downsampling the image used for the apron DMD, and it does not give very clean result on a real DMD.

 

If you think some features on FlexDMD would help you or make the task easier, feel free to ask. I will be glad to have a look and see if I can add them.

 

Regards,

 

     Vincent

 

I plan to do that next year, 128x32 size and no dots :) I'll make the letters simpler, which I hope will scale better.


If you want to check my latest uploads then click on the image below:

 

vp.jpg

 

 


#433 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 27 November 2020 - 04:48 AM

 

If you think some features on FlexDMD would help you or make the task easier, feel free to ask. I will be glad to have a look and see if I can add them.

 

 

 

Not sure this is possible, but can not hurt to ask, and maybe it does not even hinge on flexDMD but VPX itself.

When doing this for example
 

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

What ever flex is playing will come up on any flasher set to do script DMD
Is it possible at all, to define Which flasher object it will play that back into?
So that one flasher object might be showing one thing, let's just say the ROM DMD for sake of argument
And another flasher is playing flexDMD content.

Or even an in table flasher playing a different flexDMD stream than the one outside siting on the DMD screen.

 

Yes, i know, i ask for the strange stuff


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#434 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 29 November 2020 - 08:43 PM

You can create 2 FlexDMD in the same table ; one with Show = true will display on the virtual DMD, and use VPX integrated DMD for the other. In fact, you can create as many FlexDMD as you want but you can only have one real DMD and VPX supports only one integrated flasher DMD. So, for the time being, you are limited to 2 DMD's. Perhaps, one day, VPX will allow for more than one integrated (for Dot display like in World Poker Tour or Monopoly perhaps), but this looks like a very specific use case.

 

Regards,

 

  Vincent



#435 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 29 November 2020 - 09:28 PM

You can create 2 FlexDMD in the same table ; one with Show = true will display on the virtual DMD, and use VPX integrated DMD for the other. In fact, you can create as many FlexDMD as you want but you can only have one real DMD and VPX supports only one integrated flasher DMD. So, for the time being, you are limited to 2 DMD's. Perhaps, one day, VPX will allow for more than one integrated (for Dot display like in World Poker Tour or Monopoly perhaps), but this looks like a very specific use case.

 

Regards,

 

  Vincent

create 2 how?

You mean have 2 flexDMD inits?

 

like have one do
Set FlexDMD = CreateObject("FlexDMD.FlexDMD")
Set UltraDMD = FlexDMD.NewUltraDMD()

FlexDMD.Show = 1

and another do

Set FlexDMD2 = CreateObject("FlexDMD2.FlexDMD")

Set UltraDMD2 = FlexDMD2.NewUltraDMD()

FlexDMD2.Show = 0

 

And then for the flasher, which needs the timer

Sub FlexDMDTimer_Timer()
Dim DMDp
If UseDMD Then
DMDp = FlexDMD2.DmdPixels
If Not IsEmpty(DMDp) Then
DMDWidth = FlexDMD2.Width
DMDHeight = FlexDMD2.Height
DMDPixels = DMDp
End If
ElseIf UseColoredDMD Then
DMDp = FlexDMD2.DmdColoredPixels
If Not IsEmpty(DMDp) Then
DMDWidth = FlexDMD2.Width
DMDHeight = FlexDMD2.Height
DMDColoredPixels = DMDp
End If
End If

UltraDMD2.CancelRendering():UltraDMD2.DisplayScene00Ex "DMD_Scene.png", "", 30, -1, "", -1, -1, 14, 4000, 14

would appear on the flasher

 

And then something like

UltraDMD.CancelRendering():UltraDMD.DisplayScene00Ex "background.png", "Player" &cstr (player) &" Score", 30, -1, cstr (Pscore), -1, -1, 14, 4000, 14

would go to the externally visible flexDMD window?

You have any example i could look at?

 

For original tables, this could be really useful.
You could fake multiple flashers to some extent by setting them to visible or not, giving the illusion of there being more than 1
While the external DMD continues on uninterrupted diplaying it's totally separate stream of info

 

And at some point, might be useful maybe for a Spike based table? depending on how that is done
just would need a function by which to enable or disable the DOT filter (wouldnt want dots on the spike display)

Actually, i would use that now (disabling the DOT filtering) instead of PUP, i like how flex works much better.
And the end user only has to know how to unzip and click 2 buttons to have flex installed

 

Course you may have to change the name from FlexDMD to Flex I Render Everything
:dblthumb: 
 


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#436 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 30 November 2020 - 08:38 PM

Below is an example that will just do that (the current version provide this). You then use MainDMD and CounterDMD objects as usual, but the MainDMD object for the virtual one, and the CounterDMD object for the playfield one.

Const 	FlexDMD_RenderMode_DMD_GRAY = 0, _
		FlexDMD_RenderMode_DMD_GRAY_4 = 1, _
		FlexDMD_RenderMode_DMD_RGB = 2

Dim MainDMD
Dim CounterDMD

Sub FlexDMDInit()
    Set MainDMD = CreateObject("FlexDMD.FlexDMD")
    If MainDMD is Nothing Then
        MsgBox "FlexDMD was not found.  This table will NOT run without it."
        Exit Sub
    End If
	With MainDMD
		.RenderMode = FlexDMD_RenderMode_DMD_RGB
		.Width = 128
		.Height = 32
		.GameName = cGameName + "_main"
		.Run = True
	End With
	Set CounterDMD = CreateObject("FlexDMD.FlexDMD")
	With CounterDMD
		.RenderMode = FlexDMD_RenderMode_DMD_GRAY_4
		.Width = 128
		.Height = 32
		.GameName = cGameName + "_counter"
		.Show = False
		.Run = True
	End With
End Sub

Sub FlexDMDTimer_Timer
	Dim DMDp
	DMDp = CounterDMD.DmdColoredPixels
	If Not IsEmpty(DMDp) Then
		DMDWidth = CounterDMD.Width
		DMDHeight = CounterDMD.Height
		DMDColoredPixels = DMDp
	End If
End Sub

 



#437 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 30 November 2020 - 09:51 PM

that is awesome

I will find a use for that
I bet JP could too

 

What is the reason for setting the 2nd DMD to grey?
Is that simply because it has no external it will be worrying about?
 


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#438 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 01 December 2020 - 08:35 AM

This bit of code is from my test table. It just use a variety of modes to demonstrate/test them. The second DMD can have any mode you want (so RGB will be fine) !



#439 wiesshund

wiesshund

    VPF Legend

  • Members
  • PipPipPipPipPipPipPip
  • 11,871 posts

  • Flag: United States of America

  • Favorite Pinball: How many can i have?

Posted 01 December 2020 - 10:03 AM

This bit of code is from my test table. It just use a variety of modes to demonstrate/test them. The second DMD can have any mode you want (so RGB will be fine) !

I got a head ache from trying to figure out a ROM for a table for which there is no wiring schematic for, yet anyways

So i played with it some, nothing worth keeping

but i made a number of flasher and stuck them to things
Then made some content that was some multiple of the flasher size

Just random stupid stuff

then set up some rules for setting a given flasher visible or not

 

then threw in some really poorly made scoring
Had the scores going out the main flex, and the other stuff going to the flashers
giving the illusion that there were many DMD's

 

can even move them, since flashers can be moved in real time
my movement was really jerk and crappy, but it did work.
Can also do some freaky stuff by manipulating the flashers transparency and render amount while it is running something.

 

Some one with better skills than i could do some really cool stuff with flex


If you feel the need to empty your wallet in my direction, i don't have any way to receive it anyways

Spend it on Hookers and Blow


#440 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,000 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 01 December 2020 - 09:02 PM

wiesshund: Sounds like your experiment has already been done by nFozzy for Space Station. He called it Floating Text scores if that is something you want to try out further.


From now on. I won't help anyone here at VPF. Please ask Noah why that is.






Also tagged with one or more of these keywords: UltraDMD, DMD