Jump to content

SAM Build with modular DMD drivers for pindmd1,2,3 and PIN2DMD


lucky1

Recommended Posts

  • Content Provider
On 2/15/2017 at 9:20 AM, freezy said:

Sorry I was kind of slow these last weeks, but happy to see your issues resolved. And thanks for reporting your solutions, otherwise people would have spent time trying to resolve them in vain.

 

EDIT: I'm posting this here as well: For those having crashes (probably quite a few), try this new build:

DmdDevice.zip

tested dmdext for source=pinballarcade

flip-y still not working

Link to comment
Share on other sites

  • Replies 578
  • Created
  • Last Reply
  • Content Provider
On 2/20/2017 at 2:18 PM, freezy said:

I've tested this. If it doesn't work I'll need your exact command plus the log.

 

taf-flipy.png

confirmed that I was actually using the version I linked to

 

command

dmdext mirror --source=pinballarcade --destination=virtual --virtual-position 3000 400 1600 --flip-y

 

I'm not sure where the log is written to. I thought it might be in c:\temp but that folder is empty.

Link to comment
Share on other sites

  • Content Provider
On 1/17/2017 at 0:03 PM, CarnyPriest said:

Yes, it is as you say. No LE lights/GI when the game goes super-slow. It doesn't always happen, and I haven't played enough to determine a pattern for when it does happen. I'm not very good at the table, so some of my games are rather short. :)

I'll check out if disabling colorize and not using the pal file makes a difference on TWD LE. For me, SAM really needs the dmddevice renderer. I have p2k style cab and I lose some contrast in reflecting the DMD onto the playfield. Only four shades never really cut it for the SAM tables, so the dmddevice solution was very much welcome!

 

Another data point:

With Sliderpoint's WIP for Metallica LE, I could run the dmddevice.dll virtual DMD with at91jit enabled. 

With the release version of Metallica LE I have to run with at91jit disabled or the table would crash with every trial. I have only played a few games, but I have not had any slowdown as I do with TWD LE.

Link to comment
Share on other sites

  • 2 weeks later...
1 hour ago, softfish said:

Got this working, Any idea on why the virtual DMD is unable to be captured while streaming? It's always blank.

This is probably a problem with how you're capturing your gameplay footage. The Virtual DMD is a separate window, so you have to make sure you're capturing both windows. For example, if you use OBS Studio to record footage, you would need to put two sources in your canvas, one for Visual Pinball, and one for the Virtual DMD.

Link to comment
Share on other sites

1 hour ago, freelunch said:

This is probably a problem with how you're capturing your gameplay footage. The Virtual DMD is a separate window, so you have to make sure you're capturing both windows. For example, if you use OBS Studio to record footage, you would need to put two sources in your canvas, one for Visual Pinball, and one for the Virtual DMD.

I've done that. Set it to capture the application by itself. I believe it's virtual dmd exe. I've also tried a full monitor capture and it remains invisible on either one. It's very strange.

Thanks for the advice though. Try it out sometime if you have obs with the virtual dmd. I'd like to know how it works out for you.

Link to comment
Share on other sites

5 hours ago, softfish said:

I've done that. Set it to capture the application by itself. I believe it's virtual dmd exe. I've also tried a full monitor capture and it remains invisible on either one. It's very strange.

Thanks for the advice though. Try it out sometime if you have obs with the virtual dmd. I'd like to know how it works out for you.

I can record the virtual DMD fine with OBS Studio. Perhaps you don't have the source for the virtual dmd layered on top? In OBS studio I just make sure the virtual DMD window is the first listed source.

Link to comment
Share on other sites

I think perhaps we are talking about two different DMD's? The one that normally comes with games works fine. The one for colored roms that this thread was about that is activated with f1 and uses the seperate dll is the one that will not capture. 

Of course i've added above all other windows. Updated drivers, updated obs, It will not pick it up. What source are you using to capture with out of curiosity.

Link to comment
Share on other sites

edit: Huzzah! I have successfully replicated the problem. I can't help beyond that, though. For now, you may have to shop around for another capture solution or wait for OBS Studio devs to improve the software. 

Oh right, yeah, I was testing on a non-SAM table. I didn't realize the output window would be different. Maybe when I get around to getting a colored ROM I'll let you know if I have the same problem.

I capture "Window" sources instead of "Game" or "Display" capture, I have problems with the latter on my PC.

Link to comment
Share on other sites

On 2/15/2017 at 7:20 AM, freezy said:

Sorry I was kind of slow these last weeks, but happy to see your issues resolved. And thanks for reporting your solutions, otherwise people would have spent time trying to resolve them in vain.

 

EDIT: I'm posting this here as well: For those having crashes (probably quite a few), try this new build:

DmdDevice.zip

This fixed crashes I experienced when I launched a table with command lines from a front end and when I alt-tab. Thanks!

Questions:

A user somewhere else on the internet with a 2 monitor setup asked if it was possible to have per-table positioning for the virtual DMD. This way they could correctly position the virtual dmd over backglasses that don't have the same design standard on their second monitor. Is this currently possible or planned?

Softfish discovered the virtual DMD avoids being captured in OBS Studio, an open-source screen recording software. I was able to capture the virtual DMD with X-Split (a freemium recording software), so there's some incompatibility with OBS Studio. While I don't expect you to cater your development to compatibility with OBS Studio's bugs, do you have an idea why that might be, like something unusual about how the virtual dmd window works?

Link to comment
Share on other sites

Yes, you can override the position on a per-game basis. See GitHub page. I don't have any particular idea about the capturing problem. It's kind of ironic though, given dmdext is based on screen capturing. Does OBS Studio have an API for input sources? If so, it probably wouldn't be very difficult to just create another output source for dmdext that sends data directly to OBS studio...

Link to comment
Share on other sites

I just followed these instructions. I installed C++ 2015 and re-booted, as it wasn't installed.

-----------

Install Instructions

  1. Get the latest release, copy the content of the zip file to your hard drive, preferable in your PATH, and unblock the .exe file (right-click, properties, unblock).
  2. Download and install the Visual C++ Redistributable for Visual Studio 2015.

Test

  1. Open a command prompt ([Windows]+[R], cmd, [enter])
  2. Type dmdext test [enter]

You should see a test image on your DMD as well as on a virtual DMD.

--------------------

This is what happened:-

---------------

Microsoft Windows [Version 6.1.7601]
Copyright © 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Pinball>cd c:\temp

c:\temp>dmdext test

Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'DmdExt.DmdExt' threw an exception. ---> System.MissingMethodException: Method
 not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.
   at NLog.LogFactory.<GetCandidateConfigFileNames>d__a..ctor(Int32 <>1__state)
   at NLog.LogFactory.get_Configuration()
   at NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey)
   at NLog.LogManager.GetCurrentClassLogger()
   at DmdExt.DmdExt..cctor()
   --- End of inner exception stack trace ---
   at DmdExt.DmdExt.Main(String[] args)

c:\temp>

--------------

Even the Test Fails :facepalm:

Link to comment
Share on other sites

In my cab I have

Net Framework 4.6.1

Microsoft Visual C++ 2008 Redistributable x86 9.0.3072917

Microsoft Visual C++ 2013 Redistributable x64 12.0.30501

Microsoft Visual C++ 2013 Redistributable x86 12.0.30501

Microsoft Visual C++ 2015 Redistributable x86 14.0.23506

Microsoft Visual C++ 2015 Redistributable x86 14.0.23506

.. and ofc VP and some utils and drivers.

Link to comment
Share on other sites

Kevin Haworth shared this with me so credit to Kevin. If you have a two screen set-up and need to set the DMD position per table.
 
Edit DmdDevice.ini and add this at the bottom.
 
[rom_name]
virtualdmd left = 0
virtualdmd top = 0
virtualdmd width = 384
virtualdmd height = 96

 
One think to note is changes only take place when you completely exit VP and start VP again. Quit to editor and play won't pick up any changes made in DMDdevice.ini
Easy way is to position the normal vpinmame DMD. Run Regedit and go to HKey Current User/software/freeware/visual pinmame/ find the rom and note down the X, Y, Width and Height. Then enter them as above into the DMDdevice.ini
Link to comment
Share on other sites

Now that I have the colour DMD working I have one last problem to solve. They work fine when opened direct in VP, but get hidden behind the backglass when the tables are opened via the frontend? (Hyperpin) I have changed DMDdevice.ini to "stayontop = true", but they still gets hidden behind the backglass?
Link to comment
Share on other sites

5 hours ago, Andypc said:
Now that I have the colour DMD working I have one last problem to solve. They work fine when opened direct in VP, but get hidden behind the backglass when the tables are opened via the frontend? (Hyperpin) I have changed DMDdevice.ini to "stayontop = true", but they still gets hidden behind the backglass?

Is it the Direct2BS backglass or Hyperpin's background that stays on top?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...