Jump to content



Photo
- - - - -

WIP: Hi-res alphanumeric rendering with dmdext

dmdext

  • Please log in to reply
109 replies to this topic

#1 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 22 November 2018 - 11:22 PM

Hi all,

 

I was recently debugging a problem with the dmdext's alphanumeric rendering, which made me realize that actually, alphanumeric displays still kinda suck when it comes to rendering on the monitor.

 

So I started fiddling with Skia, a super-fast graphics library (the one driving Chrome and Android), and a first test turned out pretty well. There's still a lot to do like support all the different modes, but here's a first taste of it:

 

 

SA3YSCR.gif

 

If anyone got ideas how to make this great, let me know. Like which parameters you would like to be able configure per game or globally, etc etc.

 

EDIT: Get a build to test and track progress here!


Edited by freezy, 27 November 2018 - 10:55 PM.


#2 Slydog43

Slydog43

    Pinball Wizard

  • Platinum Supporter
  • 3,008 posts
  • Location:Hackettstown, NJ

  • Flag: United States of America

  • Favorite Pinball: Addams Family, All Williams 90's Games

Posted 22 November 2018 - 11:51 PM

I think I'm running 1.7.1.  I have seen a few messages about troubles with 1.7.2.  Is there any truth to trouble with 1.7.2 and should I upgrade to 1.7.2?  thanks



#3 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

Posted 23 November 2018 - 01:50 AM

Looks great! I like it much better than B2S Dream7.

 

1. Display dimming support for WPC (FH, BoP) but AFAIK VpinMAME does not emulate that particular feature so this may go nowhere.

2. More glow/bloom. I have a P2K style cab and when I use the VPinMAME renderer I tend to boost Display Antialias in the settings to compensate for how glow/bloom gets blunted somewhat when reflecting the image onto the playfield glass. The B2S alphanumeric renderer Dream7 has a High light boost but it is not much a boost and it does not glow or really look closely like a real display.

3. Alphanumeric display is one thing Future Pinball does very well. When a number/letter is not displaying you can still see the tube in its "off" state. I don't know if it is possible to render or if that should just be an image underlay. I haven't played a real table in a while and it may be an effect that is hyperreal and is something we don't need to worry about. Edit: expanded the video and I see that you have it. Nice!

4. For classic DMD, I still use the VPinMAME renderer. Small square pixels with a lot of bloom look more like a plasma. For recent Stern, I prefer the DMDext virtual renderer as round pixels look more like LED displays. If DMDext had square pixels with similar glow as the video, I'd use DMDExt all the time. 

5. Fantasy: nixie tubes; multi-colored display; LCD  



#4 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 23 November 2018 - 06:02 AM

Nice! Those samples look great, freezy. Williams System 11 games are our family’s favorite. Hope to see this kind of quality LCD display on our cab’s backglass at some point. Thanks for your R and D work!

#5 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 08:20 AM

@Carny_Priest: Good stuff. What's "dimming support"? Like in the game on certain events it dims down? Haven't heard of Dream7 neither, got a link?

 

Glow will probably be configurable, as well as the skew angle of the segments and probably the color. I agree that the contrast of the "unlit" tubes could be a little higher. Got an example how you'd like the DMD renderer of dmdext more to look like plasma?

 

The problem with nixie tubes is that they aren't segmented, i.e. there is one wire per number (as opposed to one bit per segment). However, for numeric displays I could parse the number from the active segments to render the correct wire. Are there pins with nixie tubes? :)

 

@Slydog43: Dude, without being more specific I have no clue. Why don't you try it and report back if there are problems?



#6 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 23 November 2018 - 09:58 AM


1. Display dimming support for WPC (FH, BoP) but AFAIK VpinMAME does not emulate that particular feature so this may go nowhere.

 

Indeed, PinMAME is missing this, but one might still be able to do this by fading segments in/out..



#7 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

Posted 23 November 2018 - 03:04 PM

 


1. Display dimming support for WPC (FH, BoP) but AFAIK VpinMAME does not emulate that particular feature so this may go nowhere.

 

Indeed, PinMAME is missing this, but one might still be able to do this by fading segments in/out..

 

Yeah, but figured we'd still need PinMAME to communicate when to dim. I haven't played a real FH or BoP in a long time, so I don't recall how this is supposed to look.

 

@Carny_Priest: Good stuff. What's "dimming support"? Like in the game on certain events it dims down? Haven't heard of Dream7 neither, got a link?

 

Glow will probably be configurable, as well as the skew angle of the segments and probably the color. I agree that the contrast of the "unlit" tubes could be a little higher. Got an example how you'd like the DMD renderer of dmdext more to look like plasma?

 

The problem with nixie tubes is that they aren't segmented, i.e. there is one wire per number (as opposed to one bit per segment). However, for numeric displays I could parse the number from the active segments to render the correct wire. Are there pins with nixie tubes? :)

 

@Slydog43: Dude, without being more specific I have no clue. Why don't you try it and report back if there are problems?

Nixie tubes - lol, it's a fantasy. Actually, a guy did a project that converted a real Bally Star Trek into a mirror universe version (think evil Spock with a goatee). He replaced the alphanumeric display units with nixie tubes. I published a B2S backglass for it at RandR's site using some segment images that gtxjoe had put together:

https://www.vpforums...=36726&p=367540

 

Stern used an LCD unit located on the apron for game settings/statistics in Whoa! Nellie. Otherwise, I'm not aware of other applications that made it into production.

 

Dream7 is the default LED code used in B2S Designer and your only option for displaying special effects from Sys 11, Gottlieb Sys 3, etc. Users can easily swap out digits as long as those digits are only 0-9, A-Z. Useful for older systems. I do have a link to a thread at the universe that I can't post here. I'll PM you at the other place.



#8 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 03:36 PM

Haha nice! I got a Nixie Clock at home, might be able to pull off a few shots and use them in the renderer.



#9 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 23 November 2018 - 03:58 PM

 

 


1. Display dimming support for WPC (FH, BoP) but AFAIK VpinMAME does not emulate that particular feature so this may go nowhere.

 

Indeed, PinMAME is missing this, but one might still be able to do this by fading segments in/out..

 

Yeah, but figured we'd still need PinMAME to communicate when to dim. I haven't played a real FH or BoP in a long time, so I don't recall how this is supposed to look.

 

 

I did some experiments at some point, and if one just does a blend between previous and current result, it already looks pretty good..



#10 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 08:42 PM

What is the previous and current result and how is it triggered?



#11 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 23 November 2018 - 10:23 PM

Previous = The segments at brightness X (i.e. what you display at the moment), Current = The new state that should be displayed (i.e. full off or full on)

So you just blend that new (=current) one in over a short period of time..



#12 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 10:54 PM

Like fade in / fade out each segment instead of toggling?



#13 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 23 November 2018 - 11:08 PM

Exactly.. Did not look bad in my prototype..

I think when a segment was switched on i did a very quick fade in (non-linear), but when it was turned off, a rather slow fade out (i think linear)..



#14 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 11:47 PM

Yeah, played around with that too. Linear fade looks okayish when short, but I'll try to ease in to see how that looks. Have you been able to look at the issue I have with the data coming from VPM?



#15 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

Posted 24 November 2018 - 06:39 AM

Looked at a video, and it looks like the effect I'm talking about is event driven. Not something that necessarily happens with all off/on states. It's easy to see on end of ball bonus count.

 

https://youtu.be/gkpI9E97qB0



#16 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 24 November 2018 - 11:34 AM

Yup, you won't be able to get smooth fade-ins/outs.. That would require support for that in VPM..



#17 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 27 November 2018 - 10:53 PM

Okay, here's a first version for you to test. Get it here:

 

https://github.com/f...nsions/pull/152

 

There's some more details in the PR, feel free to comment here or on GitHub directly.



#18 LynnInDenver

LynnInDenver

    Pinball Fan

  • Members
  • PipPipPipPip
  • 570 posts
  • Location:Denver

  • Flag: United States of America

  • Favorite Pinball: Genie

Posted 28 November 2018 - 02:48 AM

Works nice for the specific Williams games like Bride of Pinbot, looking forward to seeing it working for other systems and platforms, like Gottlieb.

#19 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

Posted 28 November 2018 - 08:07 AM

Can't really test at the moment, but wow that image at github is pretty!

 

Left a PM for you at the universe with a link to some discussion from a while back. It's mostly a sidebar but it may be of interest.



#20 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 28 November 2018 - 11:54 PM

I've added the remaining display modes (same link, r2). However there were some I couldn't test because I couldn't find a game with it. Those are:

  • 2x7Alpha_2x7Num
  • 2x7Num_2x7Num_10x1Num
  • 2x6Num10_2x6Num10_4x1Num
  • 2x7Num_4x1Num_1x16Alpha
  • 1x16Alpha_1x16Num_1x7Num

For example 2x7Num_2x7Num_10x1Num means 4 numerical blocks with 7 numbers each, plus a 10-char numerical block. Alpha means alphanumeric (14-segment display) and Num10 means 10-segment display (there is also a period).

 

If anyone has a clue which games to test for these, let me know. You can verify which display mode a game uses by running it with the DLL linked above and checking DmdDevice.log, it will say something like "New type of __2x16Alpha".







Also tagged with one or more of these keywords: dmdext