Jump to content



Photo

dmddevice.dll: Missing alphanumeric data


  • Please log in to reply
9 replies to this topic

#1 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

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

  • Favorite Pinball: T2, TOM, AFM

Posted 23 November 2018 - 11:06 PM

It seems for Gottlieb System 80B, there are two bugs.

 

Firstly, I'm getting layout type "None" instead of "__2x20Alpha".

 

Secondly, there seems to be data missing. The segmented data is an ushort array where each value corresponds to a character (2 bytes => 16 segments). So we have 2x20 chars in an array of 64 ushorts. However, from the 16th ushort on, data is always 0, resulting in the second half of the second row being empty:

 

uYN6LEC.png

On top the DMD converter, in the middle the output renderer of the segmented data (both via dmddevice.dll) on bottom the VPM display.

 

Looking at the VPM window, the data seems to be there, just not sent to dmddevice.dll. 

 

Any idea?



#2 gtxjoe

gtxjoe

    VPF Veteran

  • VIP
  • 5,133 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness, AbraCadabra



Contributor

Posted 24 November 2018 - 12:43 AM

Just a comment

Gottlieb system 80b never worked even back in the PIndmd1 days

Gottlieb system 1 also has issues. LEDs dont turn off so you end up with all 8s eventually if I remember correctly. Totem and Charlies Angel for example

#3 toxie

toxie

    VPF Veteran

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

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 24 November 2018 - 11:38 AM

@freezy: How do you fetch the segment data (function calls)?



#4 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

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

  • Favorite Pinball: T2, TOM, AFM

Posted 24 November 2018 - 12:21 PM

@gtxjoe: Good to know!

 

@toxie: It's VPM calling Render_PM_Alphanumeric_Frame(layout_t, const UINT16 *const seg_data, const UINT16 *const seg_data2)of dmddevice.dll



#5 toxie

toxie

    VPF Veteran

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

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 24 November 2018 - 01:46 PM

Gottlieb system 1 also has issues. LEDs dont turn off so you end up with all 8s eventually if I remember correctly. Totem and Charlies Angel for example

 

I just checked that with the test dmddevice.dll of PinMAME. There those two games work, so if its not working with another dmddevice.dll, then that's a bug there.


It seems for Gottlieb System 80B, there are two bugs.

 

Firstly, I'm getting layout type "None" instead of "__2x20Alpha".

 

Secondly, there seems to be data missing. The segmented data is an ushort array where each value corresponds to a character (2 bytes => 16 segments). So we have 2x20 chars in an array of 64 ushorts. However, from the 16th ushort on, data is always 0, resulting in the second half of the second row being empty:

 

The first one is indeed a bug. And has been around since we inherited the code from the PinDMD codebase. Fix coming up.

 

As for the second one: I don't see an issue there when i use the internal/test dmddevice.dll of PinMAME. So may be a bug in your implementation?

 

As for dimming: I checked PinMAME, and apparently there is dimming support for segments, but only implemented so far for GTS3 (and there even commented out at the moment  :/).



#6 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

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

  • Favorite Pinball: T2, TOM, AFM

Posted 24 November 2018 - 01:50 PM

This seems to take care of problem #1.


@toxie for problem #2 I dumped the array I was receiving and there are zeros where there shouldn't be. Like 3/4 of the array is okay and 1/4 is not. There is no processing whatsoever from my side at the time of dumping so, I'm not sure what to do.

 

Do you have the source of your internal test dmddevice.dll so I can double check?



#7 toxie

toxie

    VPF Veteran

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

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 24 November 2018 - 02:30 PM

Yup, sure: https://github.com/f.../dmddevice/Demo

And if you tweak https://github.com/f...anumeric.h#L222 and https://github.com/freezy/SAMbuild/blob/master/ext/dmddevice/usbalphanumeric.h#L224 (both i+4 instead of i), then you will see the last 4 columns being displayed.

 

I also added a new function that one can implement, see https://sourceforge....09e51cb04c:4659

Currently there is no dimming transferred, as there is none implemented :/ but maybe i'll look into it "soon"..



#8 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 685 posts

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

  • Favorite Pinball: T2, TOM, AFM

Posted 24 November 2018 - 08:39 PM

Thanks toxie, it was a bug on my side indeed. I thought the uint16 array converter was part of .NET, but actually it was written by me. And my loop didn't go high enough. D'oh!

 

Out of curiosity, is there a particular reason for VPM/VP still being on SourceForge? GitHub would just make it so much easier to contribute!

 

Thanks again!

 

  -freezy.



#9 Mike DA Spike

Mike DA Spike

    Pinball Fan

  • Platinum Supporter
  • 1,279 posts
  • Location:Hoofddorp

  • Flag: Netherlands

  • Favorite Pinball: Too many to mention

Posted 14 May 2019 - 05:06 AM

Will the 2 "bugs" be compiled and put as a public release ?

That would really be awesome !


331ddabcc742f0ba74791e946eb0f791.gif Try PinballX Database manager as a replacement of PinballX's game list manager
With special thanks to Scutters 


#10 doogie2301

doogie2301

    Enthusiast

  • Members
  • PipPipPip
  • 97 posts

  • Flag: United States of America

  • Favorite Pinball: Funhouse

Posted 07 May 2020 - 04:58 PM

Was this ever resolved officially?