Jump to content



Photo

P-ROC for interfacing to real hardware


  • Please log in to reply
13 replies to this topic

#1 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 01 June 2009 - 09:26 PM

Hi all. I'm looking to start a dialog regarding the use of the P-ROC to allow VPinMAME software to control existing machines. Information about the P-ROC can be found at www.pinballcontrollers.com which includes general information about the board and a discussion forum.

The short version: The P-ROC is a replacement for the CPU board in existing pinball machines (WPC-x, Stern Whitestar/SAM). It contains an FPGA that performs (once configured via software) all of the real-time control functions needed to interface to a pinball machine. It connects back to the PC over USB. This allows a PC to run custom game rules, receive switch information from the P-ROC, and send updated driver information (coils/lamps/motors/DMD) to the P-ROC.

I suppose this is somewhat similar to the PinMAME-HW project I've read about, though the P-ROC just handles the control system and interfaces directly with existing power/driver boards. We may design custom power/driver boards in the future.

One of our goals is to allow people to easily switch between running custom software (to be developed) on their machines and the original software via VPinMAME. We are wrapping things up on an open source layer 1 C API that abstracts all of the P-ROC specific functionality from high layer applications to make custom game apps easier to write. Currently the driver is working in Linux/MacOS, and I've recently begun working on making the necessary low level changes for Windows support, though I'm not too knowledge on dev in Windows; so I may need some help. smile.gif I imagine we'll need some intermediate layer to get this working with VPinMAME.

Like I said, just trying to start a dialog and see where this takes us. Feel free to post your ideas or questions, and if you have any interest in helping, I'd love to hear from you!

Thanks.
- Gerry

#2 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 16 July 2009 - 08:57 PM

Short update:

The P-ROC driver (libpinproc) is now fully working in Windows. If anybody is interested in working through VPinMAME integration of the P-ROC for full control of a real pinball machine through VPinMAME, I'll offer up a P-ROC board for free.

- Gerry

#3 Joe

Joe

    Pinball Wizard

  • VIP
  • 2,356 posts
  • Location:60016

  • Flag: United States of America

  • Favorite Pinball: New Stern ones

Posted 16 July 2009 - 09:31 PM

QUOTE (gstellenberg @ Jul 16 2009, 03:57 PM) <{POST_SNAPBACK}>
Short update:

The P-ROC driver (libpinproc) is now fully working in Windows. If anybody is interested in working through VPinMAME integration of the P-ROC for full control of a real pinball machine through VPinMAME, I'll offer up a P-ROC board for free.

- Gerry

The pinmame / vpinmame code is Open source.

The pinmame team are best people to get help from.


I don't know if the usb bus has the right timing for it to run this in real time to keep up.

Edited by Joe, 16 July 2009 - 09:34 PM.


#4 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 17 July 2009 - 05:57 PM

The P-ROC driver is open source as well. I intend to keep all P-ROC software efforts with which I participate open. I've had a few discussions with the pinmame team, Maddes in particular. I know the team is busy and has other priorities. Similarly I am busy with other priorities right now too; so I was hoping to get help in shorter term.

Regarding USB latencies, the P-ROC has a number of features which will eliminate latency concerns as an issue. Things like flipper, slingshot, and pop bumper response time are worst case scenarios, but the P-ROC can be set up for instant reaction times. So, USB latencies won't pose a problem. I can go into more detail if you want.

- Gerry

QUOTE (Joe @ Jul 16 2009, 04:31 PM) <{POST_SNAPBACK}>
The pinmame / vpinmame code is Open source.

The pinmame team are best people to get help from.


I don't know if the usb bus has the right timing for it to run this in real time to keep up.

Edited by gstellenberg, 17 July 2009 - 05:57 PM.


#5 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 14 February 2010 - 02:06 AM

Short update. A bunch of people now have P-ROC boards, and custom pinball app development is starting to pick up steam.

We have somebody working on a PinMAME interface now; so we're looking forward to being able to run custom pc-based game software on real machines as well as the original software through PinMAME.

The pinball development platform we're using (and developing) is pyprocgame (code available here). All of the high level game framework is written in Python, and the low level hardware interface is written in C. There's a short video of custom game software we're currently developing for Judge Dredd machines on the front page @ www.pinballcontrollers.com.

We also hope to some day be able to interface pyprocgame to Visual Pinball so we'll be able run our custom game software solely on the PC, without the need for the real hardware. This would bring people another option when selecting which pinball development environment and tools to use when creating their custom game apps.

We're always looking for more people to join in the fun! Feel free to check out the forums or email me directly if you're interested.

- Gerry

#6 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 27 April 2010 - 08:45 PM

If anybody's interested, I am now able to use pinMAME to run original game code on my actual JD machine, which has a P-ROC board instead of the original CPU board. We added some code to pinMAME's core.c and wpc.c files to interface to the libpinproc, the P-ROC's low level interface library.

The beauty of having this functionality is that I can switch back and forth between running my fully custom JD code and the original game code without swapping CPU boards or burning ROMs.

- Gerry

#7 epthegeek

epthegeek

    Pinball Fan

  • Platinum Supporter
  • 618 posts
  • Location:Wisconsin

  • Flag: United States of America

  • Favorite Pinball: Cirqus Voltaire

Posted 27 April 2010 - 09:01 PM

This is pretty amazing stuff. The idea that you can re-do the programming/rules for any game is almost mind boggling.

I realized this would be one route to take to finally "finish" the unfinished Cactus Canyon. You'd have to re-create the existing game, which might be a huge pain (no idea really) but then you could polish off all the missing stuff like a match animation, and music during high score entry.

Edited by epthegeek, 28 April 2010 - 07:20 PM.


#8 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 28 April 2010 - 07:11 PM

Another update: We now have pinMAME with P-ROC support running in linux (ubuntu 8.10) and are working on getting it to work in OS X. smile.gif

Edited by gstellenberg, 28 April 2010 - 07:11 PM.


#9 gstellenberg

gstellenberg

    Hobbyist

  • Members
  • PipPip
  • 32 posts

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

  • Favorite Pinball: Whitewater

Posted 02 May 2010 - 03:13 AM

We got it running on the Mac now. smile.gif PinMAME with P-ROC support now works in OS X!

- Gerry


#10 destruk

destruk

    VPF Veteran

  • VPF Staff
  • 6,307 posts
  • Location:Colorado Springs, CO

  • Flag: United States of America

  • Favorite Pinball: Ultrapin!



Posted 02 May 2010 - 03:30 AM

Cool!

Build a fire, vipers love the heat.


#11 Joe

Joe

    Pinball Wizard

  • VIP
  • 2,356 posts
  • Location:60016

  • Flag: United States of America

  • Favorite Pinball: New Stern ones

Posted 01 August 2023 - 03:00 AM

 

If anybody's interested, I am now able to use pinMAME to run original game code on my actual JD machine, which has a P-ROC board instead of the original CPU board. We added some code to pinMAME's core.c and wpc.c files to interface to the libpinproc, the P-ROC's low level interface library.

The beauty of having this functionality is that I can switch back and forth between running my fully custom JD code and the original game code without swapping CPU boards or burning ROMs.

- Gerry

Everything turned out impressive! Cool! Keep it up!

 

any timing issues with that?



#12 Ashram56

Ashram56

    Hobbyist

  • Members
  • PipPip
  • 30 posts

  • Flag: France

  • Favorite Pinball: Tron Legacy

Posted 11 September 2024 - 08:28 AM

@gstellenberg

 

I am interested !!! Do you have any technical pointer for this ?

 

Cheers !



#13 toxie

toxie

    VPF Veteran

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

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 11 September 2024 - 09:24 AM

Would also be interested on the current status of things, and if everything still works as expected with current (V)PinMAME.



#14 toxie

toxie

    VPF Veteran

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

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 30 September 2024 - 11:22 AM

ping