Jump to content



Photo
* * * * * 5 votes

Call for testing


  • Please log in to reply
1630 replies to this topic

#741 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 18 April 2019 - 09:10 PM

I've been playing with mame as well.  while -rompath [tablefile] does work, it should work with just [tablefile].  Looking at the log, it has the right parameter to pass, but I can't see what actually sent when the game launches.  Given the behavior with just using [tablefile], my guess would be that the parameters aren't passing cleanly for the "Other" system type.  

 

I also can't get it to keep focus.  Looks to me like PBY isn't tracking the process to know that it's open and retakes focus assuming the game is closed.  When I look in task manager I see multiple processes.

 

processes.png

 

Here's my config for mame:

 

mameconfig.png



#742 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 18 April 2019 - 09:38 PM

I've been playing with mame as well.  while -rompath [tablefile] does work, it should work with just [tablefile].  Looking at the log, it has the right parameter to pass, but I can't see what actually sent when the game launches.  Given the behavior with just using [tablefile], my guess would be that the parameters aren't passing cleanly for the "Other" system type.  

 

I also can't get it to keep focus.  Looks to me like PBY isn't tracking the process to know that it's open and retakes focus assuming the game is closed.  When I look in task manager I see multiple processes.

 

Re -rompath:  MAME has some pretty peculiar command line handling, and I think you actually *do* need to specify the path via -rompath unless the files are in the "default location", wherever that is (registry setting, working folder, ...?).  -rompath actually is meant to be *just* a directory location, *not* a filename.  The terminology on Windows is confusing in that "path" sometimes means a full file spec with directory path, and sometimes it just means the directory path portion (and of course, there's also the third meaning you see in the PATH environment setting where it's a whole collection of directory locations to be searched in order).  In this case, -rompath is a "path" in the sense of just the directory location.

 

So what I'd try is something like this:

 

-rompath    "[TABLEPATH]"     "[TABLEFILE]"

 

(Added spaces for emphasis.)  That is, specify the path and file portions separately.

 

> Looks to me like PBY isn't tracking the process to know that it's open

 

Well, that's actually *the entire thing* that PinballY does with a child process.  If PinballY thinks the process is done, it's because the process is done!

 

You mention that MAME is launching two observed processes.  Do you think what's going on could be that the original child process that PinballY launches is launching a second process, and then that original process is exiting, leaving the second process to actually run the game?  That would perfectly explain the observed behavior, because like I said, literally ALL that PinballY is doing is watching that first child process that it launched to see when it exits.  

 

If that's what's going on, you need to set this up like Steam games, where you tell PinballY to monitor a second process via the "Process name" box.  If you can figure out the EXE name of that second process, enter it there.  PinballY will then monitor that process for exit instead of the one it directly launches.


Edited by mjr, 18 April 2019 - 09:39 PM.


#743 MikePinball

MikePinball

    Oak Micros Pinball Products

  • Platinum Supporter
  • 416 posts

  • Flag: United States of America

  • Favorite Pinball: Space Invaders

Posted 18 April 2019 - 09:46 PM

You mention that MAME is launching two observed processes.  Do you think what's going on could be that the original child process that PinballY launches is launching a second process, and then that original process is exiting, leaving the second process to actually run the game?  That would perfectly explain the observed behavior, because like I said, literally ALL that PinballY is doing is watching that first child process that it launched to see when it exits.  

 

If that's what's going on, you need to set this up like Steam games, where you tell PinballY to monitor a second process via the "Process name" box.  If you can figure out the EXE name of that second process, enter it there.  PinballY will then monitor that process for exit instead of the one it directly launches.

 

I too cannot get MAME working very well with PinballY so this thread may help. Obviously you also need to use MAME64.exe if you are using 64-bit Windows.

 

More importantly, I wrote a defect on a similar issue with starting Future Pinball tables. This double "child" process may explain why I see focus issues. I'm using the FPLauncher wrapper which then calls Future Pinball.exe. I will try the "Process name" function and let you know.


Edited by MikePinball, 18 April 2019 - 10:02 PM.

MikePinball (dba Oak Micros).

 


#744 randr

randr

    I'm just a hardware guy so...

  • VIP
  • 2,650 posts
  • Location:Minnesota

  • Flag: United States of America

  • Favorite Pinball: Twilight Zone

Posted 18 April 2019 - 11:17 PM

@mjr I tried all your suggestions and still need to alt/tab to bring up the mame window.
When I launch mamelayplus.exe from pby I see that process and conhost.exe but both are not focus just kicks back to pby

randr___pinball.png                         


#745 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 19 April 2019 - 03:13 AM

I'll try to be a bit more specific.  I don't think I articulated myself very well above.

 

Let's start with invoking MAME:  

  • If I invoke MAME from a command line, I'd start in the MAME directory (C:\Pinball\mameplus). 
  • I'd then run a specific game, in this case Donkey Kong by executing .\mamep.exe dkong
  • It knows where to find the rom because the rom directory is specified in the mame.ini (C:\Roms)
  • Using -rompath throws an error when used from the command line saying the rompath is specified in the mame.ini.
  • In PinballX, I also only pass [TABLEFILE] in my parameters field.
  • In PinballY, [TABLEFILE} doesn't work, but -rompath "[TABLEPATH}\[TABLEFILE]" does work.
  • Curious as to how PinballY is handling things that this difference occurs.

In terms of PinballY tracking the process:

  • I get the PinballY needs to track the process.
  • I do see mamep.exe in the process list, but PinballY for some reason doesn't see it.
  • I'm assuming a console window is opening to launch mame.  I see an additional conhost.exe show up in the process list when it launches, but one already exists before it launches so I'm not sure how PinballY could decipher between the two.
  • I've tried using mamep.exe and conhost.exe as the "Process Name", but no luck.  I've tried a few other things, but I'm really shooting in the dark.
  • What's the best way to find what that process might be?  I'm assuming I should be able to find it in the Task Manager somewhere?


#746 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 19 April 2019 - 04:42 AM

As always for troubleshooting just about anything, you should take a look at the PinballY log file to see if that offers any helpful information.  Go to the Log File settings in the options and make sure "Table launch" is checked, then do the launch.  Exit and carefully read through the log reports relating to the launch.  That will tell you all sorts of useful things about exactly what's going on internally.



#747 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 19 April 2019 - 02:31 PM

I have been using the log files.  I haven't been able to glean much from them.  Here are examples of launching a vpx table, mame with -rompath, and mame without -rompath.  Both mame entries open mame.  The first one successfully opens the game but PinballY doesn't see it.  The second one doesn't open the game as the command line would, again, PinballY doesn't see it.  In both cases, there is a process in the process list called mamep.exe.

 

Table launch: Diner, table file Diner VPX 1.2, system Visual Pinball 10
+ launch: full table path C:\Pinball\Visual Pinball\Tables\10\Diner VPX 1.2
+ table launch: table file C:\Pinball\Visual Pinball\Tables\10\Diner VPX 1.2 doesn't exist; try adding extension -> C:\Pinball\Visual Pinball\Tables\10\Diner VPX 1.2.vpx
+ table launch: file + extension (C:\Pinball\Visual Pinball\Tables\10\Diner VPX 1.2.vpx) exists, using it
+ table launch: executable: C:\Pinball\Visual Pinball\VPinballX.exe
+ table launch: applying command line variable substitutions:
+ Original> /minimized /play -"[TABLEPATH]\[TABLEFILE]"
+ Final   > /minimized /play -"C:\Pinball\Visual Pinball\Tables\10\Diner VPX 1.2.vpx"
+ table launch: process launch succeeded
+ table launch: Close Game command received
+ table launch: game exited normally
+ table launch finished successfully
 
Table launch: Donkey Kong, table file dkong, system Mame
+ launch: full table path C:\Roms\dkong
+ table launch: table file C:\Roms\dkong doesn't exist; try adding extension -> C:\Roms\dkong.vpt
+ table launch: file + extension (C:\Roms\dkong.vpt) doesn't exist either; sticking with original name (C:\Roms\dkong)
+ table launch: table file C:\Roms\dkong doesn't exist; try adding extension -> C:\Roms\dkong.vpt
+ table launch: file + extension (C:\Roms\dkong.vpt) doesn't exist either; sticking with original name (C:\Roms\dkong)
+ table launch: executable: C:\Pinball\mameplus\mamep.exe
+ table launch: applying command line variable substitutions:
+ Original> -rompath "[TABLEPATH]\[TABLEFILE]"
+ Final   > -rompath "C:\Roms\dkong"
 
Table launch: Donkey Kong, table file dkong, system Mame
+ launch: full table path C:\Roms\dkong
+ table launch: table file C:\Roms\dkong doesn't exist; try adding extension -> C:\Roms\dkong.vpt
+ table launch: file + extension (C:\Roms\dkong.vpt) doesn't exist either; sticking with original name (C:\Roms\dkong)
+ table launch: table file C:\Roms\dkong doesn't exist; try adding extension -> C:\Roms\dkong.vpt
+ table launch: file + extension (C:\Roms\dkong.vpt) doesn't exist either; sticking with original name (C:\Roms\dkong)
+ table launch: executable: C:\Pinball\mameplus\mamep.exe
+ table launch: applying command line variable substitutions:
+ Original> [TABLEFILE]
+ Final   > dkong


#748 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 19 April 2019 - 05:32 PM

rothbauerw: if you keep looking further in the log file, do you see any information about how the process subsequently exits?  Do you see the confirmation message that it successfully launched?  Since the issue seems to be premature termination, it would be helpful to examine everything related to the whole process lifecycle.


Edited by mjr, 19 April 2019 - 05:33 PM.


#749 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 19 April 2019 - 06:22 PM

That's the entire log. It looks like it can't tell it launched at all. No success or failure message in the log.

#750 randr

randr

    I'm just a hardware guy so...

  • VIP
  • 2,650 posts
  • Location:Minnesota

  • Flag: United States of America

  • Favorite Pinball: Twilight Zone

Posted 19 April 2019 - 10:35 PM

I’m seeing same thing as rothbauerw and I think I’ve tried about everything to make this work with no luck.

randr___pinball.png                         


#751 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 19 April 2019 - 11:08 PM

I got to thinking.  -rompath doesn't work from command line.  So I started thinking the first parameter in the parameter list maybe wasn't passing.  I tried [TABLEFILE} [TABLEFILE] (I also tried "randrsucks [TABLEFILE]") for my parameters and sure enough, mame loaded the right game.  Still don't have focus, but I think this must be a bug with the parameter list.  Let me know if you need me to elaborate.  Here's what the log looks like for a successful game launch:

 

Table launch: Donkey Kong, table file dkong, system Mame
+ launch: full table path C:\Roms\dkong
+ table launch: executable: C:\Pinball\mameplus\mamep.exe
+ table launch: applying command line variable substitutions:
+ Original> randrsucks [TABLEFILE]
+ Final   > randrsucks dkong

Edited by rothbauerw, 19 April 2019 - 11:08 PM.


#752 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 20 April 2019 - 04:16 AM

I got to thinking.  -rompath doesn't work from command line.  So I started thinking the first parameter in the parameter list maybe wasn't passing.  I tried [TABLEFILE} [TABLEFILE] (I also tried "randrsucks [TABLEFILE]") for my parameters and sure enough, mame loaded the right game.

 

Okay, I see what's going on.  It's not that the first parameter isn't being passed, and it's not that the first parameter isn't being received.  It's that the first parameter is being ignored.  

 

Or to be more accurate, it's probably using the old DOS-box command parsing conventions, where the first parameter on the command line is the name of the program being launched.  Most newer Windows programs (since about the mid 1960s) don't use that convention, but some older crustier DOS-box programs still do.

 

So I think what MAME is really expecting you to put there is its own EXE file name.  What you should probably enter there is just MAMEP.EXE.  In all likelihood, MAME isn't even looking at that parameter, other than skipping it, so it probably doesn't matter what you put there as long as there's *something* there.

 

(You might wonder: why can't PinballY add that parameter, if MAME expects it?  Well, because, like I said above, most newer programs *don't* want that extra parameter and will barf if you provide it.  And there's no way to ask the program whether it wants it or not.  So I have to leave it up to the configuration settings for each system.  Fortunately it's just a matter of adding the extra token when needed.)



#753 rothbauerw

rothbauerw

    Enthusiast

  • Members
  • PipPipPip
  • 345 posts
  • Location:Wisconsin - USA

  • Flag: United States of America

  • Favorite Pinball: Dr Who, Tee'd Off, Jive Time

Posted 20 April 2019 - 01:34 PM

 

Okay, I see what's going on.  It's not that the first parameter isn't being passed, and it's not that the first parameter isn't being received.  It's that the first parameter is being ignored.  

 

 

Or to be more accurate, it's probably using the old DOS-box command parsing conventions, where the first parameter on the command line is the name of the program being launched.  Most newer Windows programs (since about the mid 1960s) don't use that convention, but some older crustier DOS-box programs still do.

 

So I think what MAME is really expecting you to put there is its own EXE file name.  What you should probably enter there is just MAMEP.EXE.  In all likelihood, MAME isn't even looking at that parameter, other than skipping it, so it probably doesn't matter what you put there as long as there's *something* there.

 

(You might wonder: why can't PinballY add that parameter, if MAME expects it?  Well, because, like I said above, most newer programs *don't* want that extra parameter and will barf if you provide it.  And there's no way to ask the program whether it wants it or not.  So I have to leave it up to the configuration settings for each system.  Fortunately it's just a matter of adding the extra token when needed.)

 

 

This explanation doesn't make sense to me.  When I run from command line, I only enter one parameter, not two.  In addition, if I create a windows short cut, it again only takes one parameter, not two.  The below successfully launches the game.  Adding an additional parameter causes mame to error out.

 

shortcut.png

 

This was also tested this on a non-steam version of fx2 where it's setup to receive the tablename as a parameter and launch that specific table.  It doesn't work with only one parameter passed, but it does with two.  Same as mame.



#754 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,007 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 22 April 2019 - 05:06 PM

I've mentioned before that the upgrade didn't go as I hoped and that some tables was missing. I resolved it by a *.bak that was created. Well, it seems I have to do that once again and this time I'm running av vimdiff to see what is really going on. I added rating to some tables. What pby is doing is adding new tag <ipdbid> it also adds data to decription that I never asked for and there lies my big problem. I told you I could not really jump right over to using pby alone as I have a structured but odd way of organizing my tables. Eg.

 

'VPX__Sopranos__DMD__2005__Stern' is now 'VPX__Sopranos__DMD__2005__Stern (Stern 2005)'

 

For me. Two following underscores in the description separates the files I use to generate mp4 videos, instructions etc via perl scripts I've made. PBY should not imo add any new tags to the xml as long as it is in PBY mode. Of course. I don't want it to touch description either. Actually, what seems to happen is that because it changes the description. It doesn't find the media anymore for these tables. Easy fix once you know about it it I guess.

 

Or, maybe this is the PBX media manager that is gotten confused by the added ipdbid tags ? Something has changed and PBX hasn't been updated in a long time.


Edited by Thalamus, 22 April 2019 - 05:28 PM.

From now on. I won't help anyone here at VPF. Please ask Noah why that is.


#755 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 23 April 2019 - 01:21 AM

Thalamus - you're right, PinballY adds that <ipdbid> tag if you modify a game.  That was the one place I violated my rule about never adding any new tags - that rule was exactly because I was afraid adding anything would screw up someone's dependencies on the exact XML file format.  I guess my fears about that were justified.  Are you absolutely sure that it's the <ipdbid> tag that's breaking things for you, though?  Do you have some external program (other than pBX) that's reading the XML files and getting confused by the extra tag, maybe?  If so, is there any way you could adjust that external program to be more tolerant of tags it doesn't recognize?  As far as I can tell, PBX itself doesn't care about extra tags, but I can't be sure since it's closed-source.  If the <ipdbid> tags are completely un-work-around-able, I *could* move that info to the GameStats file, but I'd really rather not, both for the sake of not changing things unnecessarily across PBY versions, and also because that information just "fits" so nicely into the XML in terms of the conceptual schema.

 

As for the media file naming, it does treat that as an internal field that it synthesizes based on the "title (manufacturer year)" format whenever you edit any of the game details.  I was thinking early on about exposing the media name as an explicitly separate, user-entered field, but I never did that, because it adds complexity to the visible UI.  But the trade-off is that hiding it makes things more complex for people like you who want to do special things with the media naming.  I'm not sure if there's a comfortable medium, but on balance it might be better to expose it.


Edited by mjr, 23 April 2019 - 01:24 AM.


#756 MikePinball

MikePinball

    Oak Micros Pinball Products

  • Platinum Supporter
  • 416 posts

  • Flag: United States of America

  • Favorite Pinball: Space Invaders

Posted 23 April 2019 - 01:29 AM

As for the media file naming, it does treat that as an internal field that it synthesizes based on the "title (manufacturer year)" format whenever you edit any of the game details...I'm not sure if there's a comfortable medium, but on balance it might be better to expose it.

This tripped me up too but partly because I'm still relatively new (6 months in). I tried to standardize on just the title for the filenames but found that PinballY was enforcing the naming convention of "title (manufacturer year)" and renaming things.

 

It should be fairly easy to add a global override option that says "Do not use standard file naming convention".


Edited by MikePinball, 23 April 2019 - 01:30 AM.

MikePinball (dba Oak Micros).

 


#757 MikePinball

MikePinball

    Oak Micros Pinball Products

  • Platinum Supporter
  • 416 posts

  • Flag: United States of America

  • Favorite Pinball: Space Invaders

Posted 23 April 2019 - 02:15 AM

What pby is doing is adding new tag <ipdbid>

The X in XML is kinda important. PinballX has no difficulty ignoring the tags it doesn't understand. Can you modify your code to do the same? Other solutions like storing it in a new file are clearly doable but not really desirable.


MikePinball (dba Oak Micros).

 


#758 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,007 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 23 April 2019 - 04:34 AM

@mjr : Good. Well, looking closer at my current incompatibility. I was wrong, adding <ipdbid> does not create any problems, only adding data to desc does. I hope we can find a way around that.

 

I really love pby. It has changed the way I use my cab a lot already. Now I actually start it most of the time, and adding videos and images was something I wasn't looking forward to as I had to change resolution and switch to a older version of vpx in order to have rock steady video recording via pbxrecorder. I even installed adobe flash ;-)


From now on. I won't help anyone here at VPF. Please ask Noah why that is.


#759 Dexjee

Dexjee

    Hobbyist

  • Members
  • PipPip
  • 37 posts

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

  • Favorite Pinball: AFM

Posted 26 April 2019 - 06:12 PM

is there a way to check for orphaned table entries?

if i delete table files the table entry is still in pinbally.

i dont even see a option in the gui to delete the entry



#760 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,346 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 26 April 2019 - 08:15 PM

is there a way to check for orphaned table entries?

if i delete table files the table entry is still in pinbally.

i dont even see a option in the gui to delete the entry

 

Orphaned tables are actually intentionally included, since there are cases where you might want to have a database entry without any "table file" existing anywhere, such as some commercial games that don't use table files.

 

You can delete a database entry as follows:

 

Operator Menu (press digit "0") -> Game Setup -> Delete Game Details