Author Topic: Sorting Arcade games by Region or Country using the Filter.  (Read 5210 times)

Joelf

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
OK, this is a tough one. I want to sort my arcade games by country. Unfortunately the front end text files don't contain that info.

eg:
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
1944;1944: The Loop Master;Arcade;;2000;Eighting;Shooter;2 Players (Sim);Horizontal;8-Way Joystick;good;1;Raster;;;;

So, I look at catver.ini

Code: [Select]
1944=Shooter / Flying Vertical
nothing

The XML file that emulation scrapes?

Code: [Select]
<game>
<path>./1944.zip</path>
<name>1944: The Loop Master (USA 000620) </name>
<desc>North American release. Game developed in Japan. For more information about the game itself, please see the original Japanese release entry; "1944 - The Loop Master [Green Board]" (Japan 000620).

</desc>
<image>./images/1944.png</image>
<rating>0.8460000000000001</rating>
<releasedate>2000</releasedate>
<developer>Eighting / Raizing (Capcom license)</developer>
<publisher />
<genre>Shooter / Flying Vertical</genre>
<players>2</players>
</game>

nope (I know the description and name field has Japan in this one example, but this is totally not consistent - only for games that have revisions or alts, not games that are Japan exclusive)

Mame XML??

Code: [Select]
<game name="1944">
<description>1944: The Loop Master (US 000620)</description>
<year>2000</year>
<manufacturer>Capcom, supported by Eighting/Raizing</manufacturer>
<category>Shooter / Flying Vertical</category>
<nplayers>Shooter / Flying Vertical</nplayers>
<verAdded>.66</verAdded>
<controls_info>numPlayers="2" alternating="0" mirrored="1" usesService="0" tilt="0" cocktail="0"</controls_info>
<player number="1" numButtons="2">
<controls>
<control name="8-way Joystick">
<constant name="joy8way"/>
</control>
</controls>
<labels>
<label name="P1_BUTTON1" value="Shoot"/>
<label name="P1_BUTTON2" value="Bomb"/>
<label name="P1_JOYSTICK_UP" value="Up"/>
<label name="P1_JOYSTICK_DOWN" value="Down"/>
<label name="P1_JOYSTICK_LEFT" value="Left"/>
<label name="P1_JOYSTICK_RIGHT" value="Right"/>
</labels>
</player>
<rom name="nffu.03" size="524288" crc="9693cf8f" sha1="c296cb008e282f77b44374d1c3638a3f4d5d5d4e" region="cpu1" offset="0"/>
<rom name="nff.04" size="524288" crc="dba1c66e" sha1="4764e77d4da5d19d9acded27df1e1bcba06b0fcf" region="cpu1" offset="80000"/>
<rom name="nffu.05" size="524288" crc="ea813eb7" sha1="34e0175a5f22d08c3538369b4bfd077a7427a128" region="cpu1" offset="100000"/>
<rom name="nffux.03" size="524288" crc="675c8109" sha1="ab9756dc81c231e75050f22c8cdd3759a592bbe1" region="user1" offset="0"/>
<rom name="nff.13" size="4194304" crc="c9fca741" sha1="1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf" region="gfx1" offset="0"/>
<rom name="nff.15" size="4194304" crc="f809d898" sha1="a0b6af49e1780678d808c317b875161cedddb314" region="gfx1" offset="2"/>
<rom name="nff.17" size="4194304" crc="15ba4507" sha1="bed6a82bf1dc1aa501d4c2d098115a15e18d446a" region="gfx1" offset="4"/>
<rom name="nff.19" size="4194304" crc="3dd41b8c" sha1="676078baad789e25f6e5a79de29672587be7ff00" region="gfx1" offset="6"/>
<rom name="nff.14" size="1048576" crc="3fe3a54b" sha1="0a8e5cae141d24fd8b3cb11796c44728b0acd69e" region="gfx1" offset="1000000"/>
<rom name="nff.16" size="1048576" crc="565cd231" sha1="0aecd433fb4ca2de1aca9fbb1e314fb1f6979321" region="gfx1" offset="1000002"/>
<rom name="nff.18" size="1048576" crc="63ca5988" sha1="30137fa77573c84bcc24570bccb7dba61ddb413c" region="gfx1" offset="1000004"/>
<rom name="nff.20" size="1048576" crc="21eb8f3b" sha1="efa69f19a958047dd91a294c88857ed3133fcbef" region="gfx1" offset="1000006"/>
<rom name="nff.01" size="131072" crc="d2e44318" sha1="33e45f6fe9fed098a4c072b8c39406aef1a949b2" region="cpu2" offset="0"/>
<rom name="nff.11" size="4194304" crc="243e4e05" sha1="83281f7290ac105a3f9a7507cbc11317d45ba706" region="sound1" offset="0"/>
<rom name="nff.12" size="4194304" crc="4fcf1600" sha1="36f18c5d92b79433bdf7088b29a244708929d48e" region="sound1" offset="400000"/>
<chip type="cpu" name="68000" clock="11800000"/>
<chip type="cpu" name="Z80" clock="8000000"/>
<chip type="audio" name="QSound" clock="4000000"/>
<video screen="raster" orientation="horizontal" width="384" height="224" aspectx="4" aspecty="3" refresh="59.633331"/>
<sound channels="2"/>
<input players="2" control="joy8way" buttons="2" coins="2" service="yes"/>
<driver status="good" color="good" sound="good" palettesize="4096"/>
</game>
<game name="19xx">
<description>19XX: The War Against Destiny (US 951207)</description>
<year>1996</year>
<manufacturer>Capcom</manufacturer>
<category>Shooter / Flying Vertical</category>
<nplayers>Shooter / Flying Vertical</nplayers>
<verAdded>.37b13</verAdded>
<controls_info>numPlayers="2" alternating="0" mirrored="1" usesService="0" tilt="0" cocktail="0"</controls_info>
<player number="1" numButtons="2">
<controls>
<control name="8-way Joystick">
<constant name="joy8way"/>
</control>
</controls>
<labels>
<label name="P1_BUTTON1" value="Shoot"/>
<label name="P1_BUTTON2" value="Bomb"/>
<label name="P1_JOYSTICK_UP" value="Up"/>
<label name="P1_JOYSTICK_DOWN" value="Down"/>
<label name="P1_JOYSTICK_LEFT" value="Left"/>
<label name="P1_JOYSTICK_RIGHT" value="Right"/>
</labels>
</player>
<rom name="19xu.03" size="524288" crc="05955268" sha1="d3b6b416f1f9eb1c1cbca6647630d1155647082d" region="cpu1" offset="0"/>
<rom name="19xu.04" size="524288" crc="3111ab7f" sha1="8bbce20ae7ba47949f4939b2f35014fb6decd283" region="cpu1" offset="80000"/>
<rom name="19xu.05" size="524288" crc="38df4a63" sha1="1303f7ab6296f1454907a24d64878bdbd1ef88a7" region="cpu1" offset="100000"/>
<rom name="19xu.06" size="524288" crc="5c7e60d3" sha1="26bf0936962051be871d7a7776cf78abfca5b5ee" region="cpu1" offset="180000"/>
<rom name="19x.07" size="524288" crc="61c0296c" sha1="9e225beccffd14bb53a32f8c0f2aef7f331dae30" region="cpu1" offset="200000"/>
<rom name="19xux.03" size="524288" crc="239a08ae" sha1="a57e5a0cef351485569cf5c3c79ca0cc7ce439cf" region="user1" offset="0"/>
<rom name="19xux.04" size="524288" crc="c13a1072" sha1="e5c1c85cb77d69d5f43f8cfa6bcc894bd31e0b68" region="user1" offset="80000"/>
<rom name="19xux.05" size="524288" crc="8c066ec3" sha1="a540a773e1cb04a814feb4be8cf22b0eb3121cee" region="user1" offset="100000"/>
<rom name="19xux.06" size="524288" crc="4b1caeb9" sha1="8f965054e5b1c3f1dcaa20279a3348d63a94c1d6" region="user1" offset="180000"/>
<rom name="19x.13" size="524288" crc="427aeb18" sha1="901029b5423e4bda85f592735036c06b7d426680" region="gfx1" offset="0"/>
<rom name="19x.15" size="524288" crc="63bdbf54" sha1="9beb64ef0a8c92490848599d5d979bf42532609d" region="gfx1" offset="2"/>
<rom name="19x.17" size="524288" crc="2dfe18b5" sha1="8a44364d9af6b9e1664b44b9235dc172182c9eb8" region="gfx1" offset="4"/>
<rom name="19x.19" size="524288" crc="cbef9579" sha1="172413f220b242411218c7865e04014ec6417537" region="gfx1" offset="6"/>
<rom name="19x.14" size="2097152" crc="e916967c" sha1="3f937022166149a80585f91388de521055ca88ca" region="gfx1" offset="800000"/>
<rom name="19x.16" size="2097152" crc="6e75f3db" sha1="4e1c8466eaa612102d0807d2e8bf1004e97476ea" region="gfx1" offset="800002"/>
<rom name="19x.18" size="2097152" crc="2213e798" sha1="b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb" region="gfx1" offset="800004"/>
<rom name="19x.20" size="2097152" crc="ab9d5b96" sha1="52b755da401fde90c13181b02ab33e5e4b2aa1f7" region="gfx1" offset="800006"/>
<rom name="19x.01" size="131072" crc="ef55195e" sha1="813f465f2d392f6abeadbf661c54cf51171fa006" region="cpu2" offset="0"/>
<rom name="19x.11" size="2097152" crc="d38beef3" sha1="134e961b926a97cca5e45d3558efb98f6f278e08" region="sound1" offset="0"/>
<rom name="19x.12" size="2097152" crc="d47c96e2" sha1="3c1b5563f8e7ee1c450b3592fcb319e928caec3c" region="sound1" offset="200000"/>
<chip type="cpu" name="68000" clock="11800000"/>
<chip type="cpu" name="Z80" clock="8000000"/>
<chip type="audio" name="QSound" clock="4000000"/>
<video screen="raster" orientation="vertical" width="224" height="384" aspectx="3" aspecty="4" refresh="59.633331"/>
<sound channels="2"/>
<input players="2" control="joy8way" buttons="2" coins="2" service="yes"/>
<driver status="good" color="good" sound="good" palettesize="4096"/>
</game>
<game name="280zzzap">
<description>Datsun 280 Zzzap</description>
<year>1976</year>
<manufacturer>Midway</manufacturer>
<category>Driving / 1st Person</category>
<nplayers>Driving / 1st Person</nplayers>
<verAdded>.31</verAdded>
<rom name="zzzaph" size="1024" crc="1fa86e1c" sha1="b9cf16eb037ada73631ed24297e9e3b3bf6ab3cd" region="cpu1" offset="0"/>
<rom name="zzzapg" size="1024" crc="9639bc6b" sha1="b2e2497e421e79a411d07ebf2eed2bb8dc227003" region="cpu1" offset="400"/>
<rom name="zzzapf" size="1024" crc="adc6ede1" sha1="206bf2575696c4b14437f3db37a215ba33211943" region="cpu1" offset="800"/>
<rom name="zzzape" size="1024" crc="472493d6" sha1="ae5cf4481ee4b78ca0d2f4d560d295e922aa04a7" region="cpu1" offset="c00"/>
<rom name="zzzapd" size="1024" crc="4c240ee1" sha1="972475f80253bb0d24773a10aec26a12f28e7c23" region="cpu1" offset="1000"/>
<rom name="zzzapc" size="1024" crc="6e85aeaf" sha1="ffa6bb84ef1f7c2d72fd26c24bd33aa014aeab7e" region="cpu1" offset="1400"/>
<chip type="cpu" name="8080" clock="2000000"/>
<video screen="raster" orientation="horizontal" width="256" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
<sound channels="0"/>
<input players="1" control="paddle" buttons="2" coins="1"/>
<dipswitch name="Coinage">
<dipvalue name="2 Coins/1 Credit"/>
<dipvalue name="1 Coin/1 Credit" default="yes"/>
<dipvalue name="2 Coins/3 Credits"/>
<dipvalue name="1 Coin/3 Credits"/>
</dipswitch>
<dipswitch name="Time">
<dipvalue name="60"/>
<dipvalue name="80" default="yes"/>
<dipvalue name="99"/>
<dipvalue name="Test Mode"/>
</dipswitch>
<dipswitch name="Extended Time">
<dipvalue name="Score >= 2.5" default="yes"/>
<dipvalue name="Score >= 2"/>
<dipvalue name="None"/>
</dipswitch>
<dipswitch name="Language">
<dipvalue name="English" default="yes"/>
<dipvalue name="German"/>
<dipvalue name="French"/>
<dipvalue name="Spanish"/>
</dipswitch>
<driver status="good" color="good" sound="preliminary" palettesize="2"/>
</game>

Oh my god, so much info, but none of it the country!

So how do you sort your arcade machines by country?
My horrible  solution

I use a program called LightSpeed Mamelister. It can output attractmode front end files, and it includes all sorts of weird additional info, including region.

  • I feed it the mame.xml and catver.ini and everything you need to get it going.
  • Tell it where you keep your final roms (I am assuming you had filtered them out already, and kept only the good ones)
  • Then tell it to only compare it against the roms you own.

Once you have done this, export it as an XML file and region will be filled in. You can also use the program to select a region or whatever and make an attractmode.txt file if you want to make a display that's just Japan or USA or World, etc.

I use filters so I

  • Made a japan text file
  • added a new country category
  • added japan to each line in the text do using regex
  • Repeated it for each region I wanted
  • Added all text files to one document, and sorted the lines alphabetically.

My question to you, friend

Is there an easier way???

Joelf

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Re: Sorting Arcade games by Region or Country using the Filter.
« Reply #1 on: May 03, 2017, 11:08:05 PM »
Easier:. Make the romlister spit out names only, make it into a tag list and filter using that.

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Sorting Arcade games by Region or Country using the Filter.
« Reply #2 on: May 04, 2017, 12:54:41 AM »
Tag files are the way to go for that and the least amount of work.

I use a program called romlister (https://www.waste.org/~winkles/ROMLister/) which does similar things as lightppeed and it can output the filtering into text files with just the rom name without the extension. These can simply be renamed into .tag files.

Here's some more links to filtering if you're interested:
http://forum.attractmode.org/index.php?topic=1563.msg11120#msg11120
http://forum.attractmode.org/index.php?topic=1165.msg8455#msg8455

« Last Edit: May 04, 2017, 12:57:13 AM by progets »

Joelf

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Re: Sorting Arcade games by Region or Country using the Filter.
« Reply #3 on: May 04, 2017, 01:25:31 PM »
Romlister and lightspeed are similar. I didn't realize romlister collected and presented country info too.

Definitely, making your lister spit out a list of rom names, and saving as a .tag is a lot easier than adding a country it to the text file. The nice thing about tag files is you don't even have to narrow it down by your collection. Just make a tag file for all Japanese, US, Europe or World games and have AM do all the comparisons against what roms you own. 

If your romlister can't pop out a list of rom names, you can use regex to delete everything but the names by searching for a new line, and any characters up to the an unescaped semicolon, and replace it with a new line.

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Sorting Arcade games by Region or Country using the Filter.
« Reply #4 on: May 05, 2017, 01:13:47 AM »
Romlister can output in 100% correct text files for .tag files. That's why I mentioned it.