Jump to content



Photo

Any interest in a Linux port?


  • Please log in to reply
17 replies to this topic

#1 Krellan

Krellan

    Hobbyist

  • Members
  • PipPip
  • 15 posts
  • Location:Castro Valley, CA
  • Favorite Pinball: LOTR

Posted 04 March 2009 - 06:36 AM

I'm throwing out feelers, to see if anybody's interested in a Linux port of VPinMAME.

The long-term goal is to hook it up with Emilia Pinball, the open-source pinball simulator that runs under Linux.

Now that VPinMAME has been open-sourced, the goal of having a 100% open source pinball emulator+simulator can be realized.

This will protect the scene from being subject to the whims of a single person who can get bored and lose interest, or otherwise go AWOL, as has happened once or twice so far!

If you haven't already tried Emilia Pinball, it's included in many Linux distributions, oftentimes simply under the package name "pinball" (because there pretty much is no other pinball software available for Linux). Here's some links:

http://pinball.sourceforge.net/

http://sourceforge.n...ojects/pinball/

Anybody interested in this? It would be a fairly huge project, as to my knowledge PinMAME hasn't ran under Linux in years, and it's diverged enough from the core MAME code that it would be difficult to reuse the already-existing Linux MAME coding work (except as inspiration).


#2 ValamirCleaver

ValamirCleaver

    Phoenix... rise... Raise your head... to the sky

  • Charter Member
  • 511 posts
  • Location:So Cal

  • Flag: United States of America

  • Favorite Pinball: Theatre of Magic, Circus Voltaire, Getaway: High Speed 2

Posted 04 March 2009 - 06:55 AM

Sure, of course; but I'd be more interested in seeing VP ported to OpenGL and OpenAL first.

#3 Gaston

Gaston

    Swell guy

  • VIP
  • 97 posts

  • Flag: Germany

  • Favorite Pinball: Bally Elektra



Posted 04 March 2009 - 08:19 PM

I'd like to implement a port for PocketPC so I can run it on my HTC Universal, but I would have no idea how to port VP, and without that it would be pretty much joyless... smile.gif
"How could it possibly break while I'm holding it?" - "Because YOU're holding it!"

#4 AlphaHeX

AlphaHeX

    Neophyte

  • Members
  • Pip
  • 1 posts

  • Flag: Poland

  • Favorite Pinball: Indiana Jones

Posted 04 March 2009 - 08:38 PM

QUOTE (ValamirCleaver @ Mar 4 2009, 07:55 AM) <{POST_SNAPBACK}>
Sure, of course; but I'd be more interested in seeing VP ported to OpenGL and OpenAL first.

I'm second to that smile.gif

#5 earbiter

earbiter

    Hobbyist

  • Members
  • PipPip
  • 44 posts
  • Favorite Pinball: many

Posted 05 March 2009 - 03:15 AM

If you could somehow get pinmame running like sdlmame then you would at least be halfway. Building the interface and script language between emelia and vpinmame would be the challenge!

I briefly looked at the source for pinmame and it looks like a pain to try and build even for windows.

It would be great to have it all run under linux without using wine.


#6 TomB

TomB

    Hobbyist

  • Members
  • PipPip
  • 10 posts
  • Location:Hamburg, Germany

  • Flag: Germany

  • Favorite Pinball: WMS Sys6 & 7

Posted 05 March 2009 - 01:14 PM

The "lets-do-a-linux-version" idea isn't new and has always come up once in while over the years.

The main roadblock has always been Windows-COM-technology which isn't available anywhere except Windows operating systems.
[http://en.wikipedia....t_Object_Model]

COM is essential for interaction between the three components VP, the tablescript and VPM.
VP uses COM to load the Windows scripting engine to execute the script (e.g. invokes "table_init", "trigger_hit" etc.)
The table script in turn uses COM to load and run VPM ("set Vpm = CreateObject("VPinMAME.Controller")", "Vpm.Run")
From this point on, the script can command VP ("Plunger.Fire", "Eject.CreateBall", "Playsound" etc) and command VPM ("Vpm.Switch(47)=True" etc)

I've been living under a rock for a few years regarding VP/VPM-technology, so in case it has meanwhile been replaced in some of these interactions, please correct me.

Even if you had full sourcecode of VP and VPM you still couldn't use it under Linux because the basic technology simply doesn't exist.

Okay, you never know. Perhaps one day we'll read a post that our emulation-wizard Gaston has VPM running on his cellphone :-)
But IMO it's more likely that he'll have his cellphone emulated in VPM :-)

Regards



#7 StevOz

StevOz

    Pinball Fan

  • VIP
  • 1,721 posts
  • Location:Nirvana

  • Flag: Australia

  • Favorite Pinball: Scared Stiff



Posted 05 March 2009 - 01:23 PM

http://mono-project.com/Main_Page

Files I have uploaded here...

 

http://www.vpforums....ownloads&mid=34


logoshort.gif


#8 TomB

TomB

    Hobbyist

  • Members
  • PipPip
  • 10 posts
  • Location:Hamburg, Germany

  • Flag: Germany

  • Favorite Pinball: WMS Sys6 & 7

Posted 05 March 2009 - 02:34 PM

Steve,

interesting, but I fear mono hasn't arrived yet where we need it, quotes from http://mono-project.com/COM_Interop

QUOTE
...
Mono 1.0 and Mono 1.1.xx do not have support for COM, it is a known missing feature of Mono.
Initial work has begun on supporting MS COM on Windows.
...


"on Windows" ? oops, anyway, there is hope further down that page:

QUOTE
...
Note that there is very little that ties COM Interop to Windows. COM is a binary standard, so anyone who follows that standard can use the COM Interop functionality in mono. XPCOM can easily be supported if anyone is interested in putting in a little work to support marshalling strings.
...


Volunteer anyone ? :-)

Well, let's assume mono supports COM one day, and we need the real thing with multitasking and all bells and whistles, and linux users will appreciate the fact that they now have a registry too :-)
Next obstacle is VP. I doubt we can pry the sourcecode out of Randy's or David Foley's hands, so back to square one.

It's disappointing. It's probably possible to get the standalone PinMAME to run on linux (customizing the screen and keyboad I/O to Linux), and that might feel like we're 80% done, but that's really only the engine and not a car.

I fear, a complete start over from scratch - possibly starting where Emilia left off - is the only option. Using multitasking- and process-interop-methods provided by Linux ist the better - and IMO only - approach.

Too bad it's such a mountain of work. Won't happen...

Regards


#9 Joe

Joe

    Pinball Wizard

  • VIP
  • 2,356 posts
  • Location:60016

  • Flag: United States of America

  • Favorite Pinball: New Stern ones

Posted 05 March 2009 - 07:54 PM

QUOTE (TomB @ Mar 5 2009, 07:14 AM) <{POST_SNAPBACK}>
The "lets-do-a-linux-version" idea isn't new and has always come up once in while over the years.

The main roadblock has always been Windows-COM-technology which isn't available anywhere except Windows operating systems.
[http://en.wikipedia.org/wiki/Component_Object_Model]

COM is essential for interaction between the three components VP, the tablescript and VPM.
VP uses COM to load the Windows scripting engine to execute the script (e.g. invokes "table_init", "trigger_hit" etc.)
The table script in turn uses COM to load and run VPM ("set Vpm = CreateObject("VPinMAME.Controller")", "Vpm.Run")
From this point on, the script can command VP ("Plunger.Fire", "Eject.CreateBall", "Playsound" etc) and command VPM ("Vpm.Switch(47)=True" etc)

I've been living under a rock for a few years regarding VP/VPM-technology, so in case it has meanwhile been replaced in some of these interactions, please correct me.

Even if you had full sourcecode of VP and VPM you still couldn't use it under Linux because the basic technology simply doesn't exist.

Okay, you never know. Perhaps one day we'll read a post that our emulation-wizard Gaston has VPM running on his cellphone :-)
But IMO it's more likely that he'll have his cellphone emulated in VPM :-)

Regards

How about taking the vpinmame / pinmame and building it in to the pinball app code?

#10 Chainsman

Chainsman

    Neophyte

  • Members
  • Pip
  • 8 posts

  • Flag: Luxembourg

  • Favorite Pinball: Elvira and the Party Monsters

Posted 06 October 2009 - 08:00 PM

I'm of the opinion that PinMAME itself (the emulator process) is fairly straightforward and should be modified to use named pipes. After all, pinball table targets are tens or a few hundred dry contacts with a similar number of outputs for actuators, lights, solenoids. PinMAME would listen on a named pipe for inputs and write to named pipe for outputs.

The Pinball table simulator, presumably Emelia, provides the contact closure events (targets, sensors) to the PinMAME process and accept actuator signals back (flippers, lights). (I wonder how you'd do Thing Flips or The Terminator gun?)

The dot-matrix display and music would go to their own SDL sinks (like VPinMame overlays its dot-matrix displays for example).

Afer all, since you have the computer emulated for your pinball table, then you don't need to script anything because the computer is supposed to be doing all the logic. We're talking much more than music and dot-matrix video--the whole table is already controlled by the emulated computer.
On the Pinball table simulator's end the COM interface and Visual Basic scripting should be thrown away completely and replaced with simple connections to and from the PinMAME process.

For me, getting VPinMame and Visual Pinball working together in Windows was the single most difficult videogame user experience since Phar-Lap Memory Manager, and it was all because of the bizarre COM connector jive between VP and PinMAME.


#11 Joe

Joe

    Pinball Wizard

  • VIP
  • 2,356 posts
  • Location:60016

  • Flag: United States of America

  • Favorite Pinball: New Stern ones

Posted 07 October 2009 - 12:15 AM

Just build the pinmame code into the open open source pinball app.

#12 Chainsman

Chainsman

    Neophyte

  • Members
  • Pip
  • 8 posts

  • Flag: Luxembourg

  • Favorite Pinball: Elvira and the Party Monsters

Posted 07 October 2009 - 02:53 AM

QUOTE (Joe @ Oct 6 2009, 08:15 PM) <{POST_SNAPBACK}>
Just build the pinmame code into the open open source pinball app.


Okay, but it doesn't know anything about PinMAME.


#13 wolfen69

wolfen69

    Hobbyist

  • Members
  • PipPip
  • 12 posts

  • Flag: United States of America

  • Favorite Pinball: cyclone

Posted 02 March 2010 - 05:53 AM

QUOTE (Chainsman @ Oct 6 2009, 09:53 PM) <{POST_SNAPBACK}>
QUOTE (Joe @ Oct 6 2009, 08:15 PM) <{POST_SNAPBACK}>
Just build the pinmame code into the open open source pinball app.


Okay, but it doesn't know anything about PinMAME.

Thought I would revive this thread and see if anyone has done any research or work on a linux port. That would be great if it was. Right now I keep xp around on a separate drive just for pinball and jfk.

Anyone know what tweaks I need to get it going in wine 1.2?

#14 Krellan

Krellan

    Hobbyist

  • Members
  • PipPip
  • 15 posts
  • Location:Castro Valley, CA
  • Favorite Pinball: LOTR

Posted 02 March 2010 - 06:01 AM

QUOTE (wolfen69 @ Mar 1 2010, 10:53 PM) <{POST_SNAPBACK}>
QUOTE (Chainsman @ Oct 6 2009, 09:53 PM) <{POST_SNAPBACK}>
QUOTE (Joe @ Oct 6 2009, 08:15 PM) <{POST_SNAPBACK}>
Just build the pinmame code into the open open source pinball app.


Okay, but it doesn't know anything about PinMAME.

Thought I would revive this thread and see if anyone has done any research or work on a linux port. That would be great if it was. Right now I keep xp around on a separate drive just for pinball and jfk.

Anyone know what tweaks I need to get it going in wine 1.2?


Sure don't. Haven't tried it in some time. Haven't had the time, unfortunately. Been meaning to, but just haven't....

If you have any luck running it in WINE, let me know. It's hard enough to run VP in the real Windows these days! Graphics glitches have made most games unplayable on any modern PC, despite several people's suggestions and my best attempts to fix the problem, which has really frustrated me, and so I haven't been doing much with VP at all these days.


#15 wolfen69

wolfen69

    Hobbyist

  • Members
  • PipPip
  • 12 posts

  • Flag: United States of America

  • Favorite Pinball: cyclone

Posted 02 March 2010 - 06:20 AM

QUOTE (Krellan @ Mar 2 2010, 01:01 AM) <{POST_SNAPBACK}>
QUOTE (wolfen69 @ Mar 1 2010, 10:53 PM) <{POST_SNAPBACK}>
QUOTE (Chainsman @ Oct 6 2009, 09:53 PM) <{POST_SNAPBACK}>
QUOTE (Joe @ Oct 6 2009, 08:15 PM) <{POST_SNAPBACK}>
Just build the pinmame code into the open open source pinball app.


Okay, but it doesn't know anything about PinMAME.

Thought I would revive this thread and see if anyone has done any research or work on a linux port. That would be great if it was. Right now I keep xp around on a separate drive just for pinball and jfk.

Anyone know what tweaks I need to get it going in wine 1.2?


Sure don't. Haven't tried it in some time. Haven't had the time, unfortunately. Been meaning to, but just haven't....

If you have any luck running it in WINE, let me know. It's hard enough to run VP in the real Windows these days! Graphics glitches have made most games unplayable on any modern PC, despite several people's suggestions and my best attempts to fix the problem, which has really frustrated me, and so I haven't been doing much with VP at all these days.

I havn't had any problems with VP in windows, but i've always used a good nvidia card and solid driver. Sometimes you just need to match the driver to the card, and not always use the latest one.

It would be nice if I could get it going in wine, but still no dice. But it's no big deal rebooting into windows to play some silverball.

I just found this, and apparently off world girl got it going with a script. I tried it and got some error about DCOM98.exe. Who knows, you may have better luck with it. Keep me posted about what happens if you try it.

Edited by wolfen69, 02 March 2010 - 06:44 AM.


#16 TedB

TedB

    Pinball Fan

  • Charter Member
  • 705 posts

  • Flag: Netherlands

  • Favorite Pinball: those with non virtual steel balls

Posted 02 March 2010 - 07:50 AM

QUOTE (wolfen69 @ Mar 2 2010, 07:20 AM) <{POST_SNAPBACK}>
I just found this, and apparently off world girl got it going with a script. I tried it and got some error about DCOM98.exe. Who knows, you may have better luck with it. Keep me posted about what happens if you try it.


The link is referring to Future Pinball. FP has been working with Wine for a long time now.

I haven't seen reports of anyone ever being able to run VP successfully on Linux. Might be easier for one of the devs to adjust the code so it will run in wine than change the code to adapt completely to Linux.
For me VP is the only reason to boot into Windows.

Edited by TedB, 02 March 2010 - 07:51 AM.


#17 wolfen69

wolfen69

    Hobbyist

  • Members
  • PipPip
  • 12 posts

  • Flag: United States of America

  • Favorite Pinball: cyclone

Posted 02 March 2010 - 08:43 PM

QUOTE (TedB @ Mar 2 2010, 02:50 AM) <{POST_SNAPBACK}>
QUOTE (wolfen69 @ Mar 2 2010, 07:20 AM) <{POST_SNAPBACK}>
I just found this, and apparently off world girl got it going with a script. I tried it and got some error about DCOM98.exe. Who knows, you may have better luck with it. Keep me posted about what happens if you try it.


The link is referring to Future Pinball. FP has been working with Wine for a long time now.

How so? I can't get it to work. Can you give me a clue?

#18 Maddes

Maddes

    Hobbyist

  • VP Dev Team
  • PipPip
  • 15 posts
  • Location:Germany

  • Flag: Germany

  • Favorite Pinball: IJ:TPA

Posted 12 March 2010 - 05:24 PM

Just a side note:
There's a XPinMAME patch from FreeWPC, which was reported to work.
I would like to add this patch into PinMAME soon, but need more Linux desktop experience to test it thoroughly.
But this will not solve the interconnection part to a table simulator.