Jump to content

Table File Name Standardization


Recommended Posts

  • Administrators

One of the things that's going to set this site apart from the others is how the downloads are organized. If everything works out right with the way that I envision; you will no longer have to search for the files related to the main table download. ROM's, Wheel Images, Media Packs, Videos, etc will be listed right within the primary download.

In order to keep everything neatly organized, we need to come up with a standard naming convention. I believe that a standard naming convention is very important especially for future enhancements, or even external API use.

Personally, I have been using a system that used the VPF table ID along with the table version. It's worked out well for the most part, I can easily see what table I'm using and what version of the table.

My tables are currently named like:

Table_Name[Table ID](version)

While this works out for me right now; I think it could probably be much better and more informative. I'd like to open discussion in regards to suggestions in creating a new standard naming convention for our table downloads.

Link to comment
Share on other sites

I like this Table (Manufacturer) (Year) (Author) (Version)

This seems to be the minimum required to accurate tell what is what. Of course it's also the same naming I use for my vids so i'm partial.

Aaron Spelling (Data East) (1992) (Destruk) (1.0.0)

Link to comment
Share on other sites

  • Content Provider

I prefer the format Dazz mentioned. With a Table ID, you can query all of the information for the table from a database. That way you don't need to include all of the information in the filename. The version is a must so you know which version of the table you have.

The media files can reference the Table ID, so you will be able to make some sort of downloader that will fetch the exact media files you need for that particular table.

Maybe add another field to indicate certain options like:


B2S      1

2 Screen  2

3 Screen  4

Desktop   8

etc...   16

You would simply add up the features and put it in the field.

ie: A 3 screen table B2S would be 5, and a 2 screen B2S table would be 3.

Link to comment
Share on other sites

Im not sure about the ID idea as it makes messing with artwork a pain in the butt. That is if you are an artwork creator. When you want to quickly find some artwork you don't want to have to look up an ID number first. I think a site that did image snapshots for mame did it it his way and it sucked balls. They wrote a special converter so that you could rename all your files to the proper name. This wansn't so bad until you need to mess with artwork on a regular basis. Circo can probably back me on that.

Link to comment
Share on other sites

  • Content Provider

Well, the idea behind it was an application could reference the Table ID and know exactly which files to download for Media, as you would link the Media to the Table ID. Then you would simply scan all of your tables, and have everything you needed. I suppose you could use the table name as your ID, but then you'd have to reference the name as well as some else in the filename as you can have different authors for the same table.

It wouldn't replace the name of the table. Just simply be another field in the filename.

Link to comment
Share on other sites

  • 1 year later...

Also maybe some kind of system in place where if an author updates the name of the table, then all the extra file names get updated to match automatically.

 

I've noticed when tables get frequently updated, it doesn't seem necessary for the description field and the artwork to change.

I've started creating a VP9 Fullscreen XML that have the descriptions hard coded which allow me to easily slide an updated or new table into my setup.

The way I have the game name's setup allow me to easily know if a table I'm looking at is already in my setup or not.

 

Have a look and let me know what you guys think or if further improvements can be made.

 

Thanks!

Link to comment
Share on other sites

  • 2 weeks later...

There are so many variants and mods to VP tables, I think it may be too cumbersome to try and distill them down to naming format that works well for every case.  A filename often tries to tell us the reason for the mod (VP9.2 Flashers, 3d Models, Night Mod, etc).    I think it would be better to just keep the relationship in a database on the server side.    Just standardize on the first part of the name, so it can be correlated to the correct physical table. 

 

For example, the problem with including the author is that it's sometimes a collaborative work or mod, and the list of "Authors" becomes extensive.    It's usually too much detail for a filename.  

 

The table manufacturer and year is probably the least useful information, but somteimes resolves ambiguity (Indiana Jones - Williams or Stern?).  

Link to comment
Share on other sites

Great points there and I understand what you're saying.

 

The thing is though, HyperPin seems to only care about the description field and the table name does need to match the name field in the XML, but really isn't showed when flipping through tables in HyperPin.

 

I wanted to come up with a naming scheme to where I could easily know if I'm running the latest version of a table or not, so I like to have a lot of the relevant information in the name field so the description field could be left as is to avoid renaming other things when a new release or mod of a table happens.

 

I'm not saying this method is for everyone, but it works for me and I figure I would share it since it took hours of work.

 

Here's where I'm at right now and more improvements can certainly me made, but I'm taking a gaming break for now :)

 

 

Visual Pinball.zip

Link to comment
Share on other sites

  • Administrators

Personally, I strip most of the stuff in the file name...  I think I got this idea from DeeGor or someone. My file names consist of the following the game name, location where I downloaded from [VPU or VPF] with the database ID, then version number of the table.

 

So, Pirates of the Caribbean would look like the following to me.

 

Pirates of the Caribbean [VPU2458](v1.4)

 

BTW - The above is for my personal naming convention on my pin. This thread is regarding a standard file naming to help with our downloader application that will be database driven.

Link to comment
Share on other sites

I just went through all my 625 tables and renamed them with Desc (Manufacturer)(Year)(Author(s))(Version).  I think I will also add FS, HV, Desk to end to distinguish future stuff that I download and keep in my table dir.  I have a SQLite db with all the info so i recreate the XML easily with some vb code.  

Link to comment
Share on other sites

I just went through all my 625 tables and renamed them with Desc (Manufacturer)(Year)(Author(s))(Version).  I think I will also add FS, HV, Desk to end to distinguish future stuff that I download and keep in my table dir.  I have a SQLite db with all the info so i recreate the XML easily with some vb code.  

 

I think that's a great system because if one decides to take some time off for other things, then you can quickly read forum posts and consult your XML to see if you already have the table or not.

 

I only keep pincab tables and other FS tables that support directb2s because it's all I care to play.

 

One suggestion might be to have seperate XMLs for HV and legacy B2S stuff so you don't have a clutter of stuff all in 1 folder (unless you want it that way)

You can always create multiple table folders and copy over all your scripts and required files so things are a bit better organized (my preference)

 

Just a friendly suggestion :)

Link to comment
Share on other sites

  • Content Provider

How do I create multiple folders? I have Pinball X, but I know it's very similar to Hyperpin.

 

I have separate xml's for EM, SS, DMD, Bowlers, and Cocktail tables, But I also have a "master" xml with everything in it.

 

And I only have 2 screen tables in my cab, either b2s, or DirectB2s (415).

Link to comment
Share on other sites

How do I create multiple folders? I have Pinball X, but I know it's very similar to Hyperpin.

 

I have separate xml's for EM, SS, DMD, Bowlers, and Cocktail tables, But I also have a "master" xml with everything in it.

 

And I only have 2 screen tables in my cab, either b2s, or DirectB2s (415).

 

I meant to create a new folder in windows explorer and keep the different kinds of tables separated if that's what you prefer, because then it's only a matter of accessing your settings.ini and changing your tables path if your seperated XMLs are already created and setup.

Link to comment
Share on other sites

How do I create multiple folders? I have Pinball X, but I know it's very similar to Hyperpin.

 

I have separate xml's for EM, SS, DMD, Bowlers, and Cocktail tables, But I also have a "master" xml with everything in it.

 

And I only have 2 screen tables in my cab, either b2s, or DirectB2s (415).

 

 

Itchigo, I find it pretty awkward updating and handling all the different XML's for PinballX. Especially considering they have overlapping tables in them (EM's are also in the Master XML).

What's your workflow to make it as hassle free as possible?

Link to comment
Share on other sites

  • Content Provider

It's really not that bad. When I add a new table I just update it in the master and the category it goes in. The master tells me what I have, if I have something in the wrong place I can look it up and see if I have it at all. Using the hp editor it only takes a minute or two.

Link to comment
Share on other sites

  • 2 months later...

I wish I could find a way to use PINBALLX to detect the VP version to ensure compatibility when it's time to load table something like using (VPXXX)

 

Magic(Stern)(1979)(TableMaker)(VP8)(1.0)

 

Any one have good solution to share?

 

 

Here is my final solution to fix my issue without the need to create many list for specific VP version:

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

 

I personally use autohotkey scripts to call all my tables and execute the needed VP version available so honestly I think that progression of VP version shouldn't take care of backward and leave the table makers free to release an updated version adapted to desired VP version.

 

here is the script based on tables names and specific "part of text" used to detect the proper version of VP so far this work perfectly for me with pinballx . Simply use it to your need and name it for example "RunMyVP.AHK" compile script and call it from pinballx by replacing the vpinball.exe by your compiled name for example I use "RunMyVP.exe" don't forget to put the compiled exe inside VP folder where all exe stand.

 

Pinballx setup:

 

Executable: RunMyVP.exe

Parameters: /play -"[TABLEPATH]\[TABLEFILE]"

 

 

Sorry for my poor experience with script and I hope to help some of you with backward issue. Maybe I that way we will keep away the question about taking care of old stuff in newer version of VP wink.png


 #SingleInstance force
 SetTitleMatchMode 2
 DetectHiddenWindows On
 SetWorkingDir %A_ScriptDir%

 vpt=vpt
 vpx=vpx
 playme=/play
 editme=/Edit

 Table = %1% ;Variable direct table
 SplitPath, Table, Tname, Tdir, Text, Tname_no_ext, Tdrive
 SplitPath, Tdir,, vpdir
 If (Text=%vpt%) or (Text=%vpx%)
  {
  goto Tabledetected
  }

 Table = %2% ;Variable from PinballX
 SplitPath, Table, Tname, Tdir, Text, Tname_no_ext, Tdrive
 StringTrimLeft, Table, Table, 1
 SplitPath, Tdir,, vpdir
 StringTrimLeft, vpdir, vpdir, 1

 If (Text=%vpt%) or (Text=%vpx%)
  {
  if playme=%1%
   function=%playme%
  else
   function=%editme%
  goto Tabledetected
  }
 exitapp

Tabledetected:

 IfInString, Table, VP91
  {
  myexe=VPinball916_r721.exe
  }

 IfInString, Table, VP92
  {
  myexe=VPinball921.exe
  }

 IfInString, Table, DX9
  {
  myexe=VPinball_DX9.exe
  }

 IfInString, Table, physmod2
  {
  myexe=VP_physmod2.exe
  }

 IfInString, Table, physmod3
  {
  myexe=VP_physmod3.exe
  }

 IfInString, Table, physmod4
  {
  myexe=VP_physmod4.exe
  }

 IfInString, Table, physmod5
  {
  myexe=VP_physmod5.exe
  }

 IfInString, Table, physmod
  {
  myexe=VP_physmod.exe
  }

 IfInString, Table, vpx
  {
  myexe=VPX_rev1081.exe
  }

 if myexe=
  {
  myexe=VPinball.exe
  }

 If function=%editme%
         RunMytable =%vpdir%\%myexe% /Edit -"%Table%"
 Else
         RunMytable =%vpdir%\%myexe% /play -"%Table%"  

 Run, %RunMytable%

checkprocessagain:
 Process, wait, %myexe%, 5.5
 NewPID = %ErrorLevel%  ; Save the value immediately since ErrorLevel is often changed.
 if NewPID = 0
   goto checkprocessagain

 Process, WaitClose, %NewPID%
 exitapp

return

 

 

Link to comment
Share on other sites

  • Content Provider

Vp10 is far than to be ready, the dev has not began yet :)

There will be several ways to solve this, another way is to have a new table xml that points to the upcoming new exe.

Maybe vp10 will be compatible with vp9 tables, like word supports doc and docx

Link to comment
Share on other sites

Archived

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

×
  • Create New...