Page 1 of 1

Remove/hide vertical games

Posted: Sun Jul 18, 2021 9:22 pm
by mappy24
Hi,

I've got two cabs, one horizontal and one vertical. My Arpicade running 3.X.1 is in the horizontal cab.

How do I only show horizontal games in the attract mode list? I have no desire to run vertical games on my horizontal cab.

Thanks in advance for any advice.

Re: Remove/hide vertical games

Posted: Fri Oct 22, 2021 1:00 am
by mikebetz42
I too would like to know if there is a switch (command line) or option to show only horizontal or vertical games.

Or is there an easy way to filter the ROMs?

Re: Remove/hide vertical games

Posted: Sat Oct 23, 2021 6:34 am
by dee2eR
Sorry I must have missed this post the first time around...

As far as I'm aware there's no convenient way to do this at the moment (there maybe an Attract-Mode option or plugin I'm not aware of), but I could certainly add one to the service menu in the future.

Pretty sure I wrote a script to sepperate roms years ago... may have been prior to my old HDD failing though.

I could write a script to move all vertical games to a different folder that could be run from the command line if you like. That way you could just move all the vert games to your PC (or whatever storage), in case you ever wanted them back.

Re: Remove/hide vertical games

Posted: Sun Mar 31, 2024 8:51 am
by mappy24
Finally managed to do this using a powershell script, first you need the -listxml output from the current version of MAME

Code: Select all

mame -listxml > c:\roms\mame.xml
Then, this script, thanks to ChatGPT :D

Code: Select all

# Path to the MAME XML file
$xmlFilePath = "C:\romsArcade\mame.xml"

# Path to the folder where ROMs are located
$romsFolder = "C:\romsArcade\mame-203"

# Path to the vertical roms folder where we will move the zip files
$verticalFolder = "C:\romsArcade\mame-203\vertical"

# Load the XML file
$xml = [xml](Get-Content $xmlFilePath)

# Loop through each machine entry
foreach ($machine in $xml.mame.machine) {
    $romName = $machine.name

    # Get the associated display entry for the machine
    $display = $machine.display

    # Check if the display entry exists and rotation is set to either 90 or 270
    if ($display -and ($display.rotate -eq "90" -or $display.rotate -eq "270")) {
        # Move the ROM to the vertical Roms folder
        Move-Item -Path "$romsFolder\$romName.*" -Destination $verticalFolder -Force
    }
}
You just need to run this in each of the mame versions folder by updating the $romsFolder and $verticalFolder paths.

It will then copy the vertical roms to the vertical folder. You can then either delete the horizontal roms and move the vertical roms back, or just delete the vertical roms to be left with all the horizontal ones.

I've now got two cabs, with the correct orientation rom sets.

Ian