Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

Announcing XDMD


Recommended Posts

XDMD is a .net framework 2D display library for pinball DMD displays. It currently supports PinDMD version 2 and a virtual DMD window.

The project is mostly open source licensed under LGPL. XDMD was created in October 2013 by Spesoft.

It requires .net framework 2 and Visual C++ 2008 runtime and visual studio 2010 or newer for development.

Special thanks to Russell from PinDMD.

www.xdmd.info

Link to comment
Share on other sites

Looks absolutely great Tom! With all the exciting developments happening with PinballX and now XDMD I'm pining for a PinCab now more than ever!

You and me both! Hopefully I won't have to wait 30 years like I did for a cab. :D

Man you guys said it. I don't have an arcade cab OR a pinball cab. If I ever get some money together, I plan on building both eventually. Trouble now is, which one to build first? :)

Link to comment
Share on other sites

Just to answer a couple of points. It is designed for programmers so bare that in mind, although usage of the library is pretty simple. In terms of speed the CPU intensive parts such as the drawing are done in C++ so the main library consists of a vb.net library and a C++ library. I am not a C++ guru but I did what I could to optimize things. On my system it will downscale and render a 1080p video at full frame rate.

Link to comment
Share on other sites

Just to answer a couple of points. It is designed for programmers so bare that in mind, although usage of the library is pretty simple. In terms of speed the CPU intensive parts such as the drawing are done in C++ so the main library consists of a vb.net library and a C++ library. I am not a C++ guru but I did what I could to optimize things. On my system it will downscale and render a 1080p video at full frame rate.

I got to play a little with it(changed a few things)...but i am no programmer thats for sure! hope someone creates a easy way to use this.

Link to comment
Share on other sites

I got to play a little with it(changed a few things)...but i am no programmer thats for sure! hope someone creates a easy way to use this.

It should be quite easy for another programmer to make something from it that is more easy to use and aimed at the user. I don't personally want to make a HyperDMD clone but it should be pretty easy to do with the library.

Link to comment
Share on other sites

I don't mean to steal Tom's thunder,but for those who want a cab and can't afford much, I'd recommend this. Here's what I did:

I built a cabinet (empty) with buttons for play. Mount 2 screens in it. Use an existing desktop, but, by remote.

All my cab is, is a glorified controller. I use a hotkey (Windows+P) to extend the screens, then hit Pinball X. Back to duplicate to work. Why watse a good computer, just for pinball? Worthy, yes, but not practical. My cab cost less than 500$, plus the computer which I had already built for myself.

Items needed:

Cabinet

Buttons

Wiring

I-Pac

2 screens

An existing, decent computer.- In fact, I'm on my cab now!!

I'm glad I built one, but what got me started is I realized I had most of it laying around the house.

http://roguepinball.com/index.php/topic,211.0.html

We now return you to your regularly scheduled programming, AND GET BUILDING!!

Link to comment
Share on other sites

I can't stop singing the praises of two screens on a cab, I put a 720p monitor in the cpanel of mine since I use xbox controllers and the only other thing on the cpanel is the trackball, and I think it looks fabulous. I might try pinball on it using this for the dmd and see what I can come up with. I'm pretty excited to see new code to play with, kinda gives me a reason to get off my ass and try it out. :)

Link to comment
Share on other sites

I can't stop singing the praises of two screens on a cab, I put a 720p monitor in the cpanel of mine since I use xbox controllers and the only other thing on the cpanel is the trackball, and I think it looks fabulous. I might try pinball on it using this for the dmd and see what I can come up with. I'm pretty excited to see new code to play with, kinda gives me a reason to get off my ass and try it out. :)

Maybe create a GUI to build animations with the API? IDK. I could see some cross-use with programming DMD-like intros for GameEx themes... then mind boggles at the possibilities.

Link to comment
Share on other sites

  • 1 month later...

Cool. I know this was built so VP cabs could display useful info on their DMD (or DMD monitor) while in PinballX. I could make a Williams, Bally, Gottlieb, etc animation or static image, and have it displayed while browsing my tables.

I am building an original VP table. Last night I added HyperDMD for the attract scene, and started working on the scoring scene. I presume I can do the same with XDMD, right? If so, can you tell me a few things that I will be able to do with XDMD that I can't do with HyperDMD?

Link to comment
Share on other sites

XDMD is really aimed at developers and completely open unlike HyperDMD which is aimed at the user. It will be built it to PinballX shortly though to support showing detail when in the front end.

With XDMD a developer could create something similar to HyperDMD but its not an end user product.

Link to comment
Share on other sites

OK. That's cool. So, instead of interacting with HyperDMD, I COULD build my own DLL to display the DMD, and provide an object model to access it. This DLL could be customized for use as a table scoreboard. Right now, HyperDMD requires some messaging to achieve what I want.

Link to comment
Share on other sites

I need some help getting started. I expected to be able to just open the build the XDMD SLN. I get the same error in VS 2010 and VS 2012. Was this built with VS 2008?

Error 7 'PLAYER_STATE' is not declared. It may be inaccessible due to its protection level. C:\xdmd\XDMD\XDMD\Device.vb 978 95 XDMD
It looks like the Demo is a VB app, that references the VB DLL, which in tern references the native DLL. When I look at XDMDNative in Object Browser, I see PLAYER_STATE. In C# I'd need something like a "using" statement to reference the external enum class. I don't know how this is done in VB.
Link to comment
Share on other sites

The native DLL is visual studio 2008 whereas the rest is 2010/2012 but you should be able to upgrade the native lib to 2012 with a couple of clicks. Are you using Visual Studio Express or the full version? Unless you want to modify the source you can simply use the prebuilt binaries. Just add them as references to your new c# project.

Link to comment
Share on other sites

Here is what you need to do to get the whole thing to build:

Upgrade the Native VC++ DLL C++ and Framework libs to the latest version. If it doesn't prompt you when you open the solution right click that project within the solution and you will see the update option. Then Change the DEMO and Managed DLL .net framework versions to the maximum supported by your version of VS. I am using 2013 and its 4.5

Basically the reason its screwey is because I wanted it to compile for .net framework 2 here on my end. Although in order to get the native C++ DLL to do that you need Visual Studio 2008 and 2010 installed as well as whatever your using if its not 2010 OR the relevant Windows SDKs installed. (Windows 7 for 2010 and I think Vista for 2008).

Link to comment
Share on other sites

OK. I decided to start by just using the DLLs without rebuilding them. I get a divide by zero exception. I get this without doing anything in VS as well. If I download the 7Z, unzip it, navigate to "XDMD Demo/bin/release" and run XDMD Demo.exe. It displays the first two scenes, first with PinballX, the second with "Welcome to the XDMD Demo." Then it crashes.

I am going back to getting the whole thing to compile. That way I can just fix any issues I find.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...