Tutorial "marquee_only" layouts for MAME

AnonTet

Pinball Master
Site Supporters
Joined
Jun 21, 2020
Messages
2,016
Solutions
1
Reaction score
1,172
Points
125
Favorite Pinball Machine
Indiana Jones
@Isaac Sauvage

So my daughters though they were faster than I (still) am :D I I recall this thread.

after a couple of games I went up to 129700 top score... Just in case you're still trying :D

# getting on topic of MAME adventures #

I though I'd finally do some "marquee_only" layouts and give yet another use for my old tablet. Kind of a Proof of concept (.lay files can get really complicated) but for now it's fine for me.

I installed Windows Subsystem for Linux, ubuntu distro and p7zip afterwards.
Why you ask? Because work smarter not harder and bash rules :D

I used snowbros rom for testing purposes so from here on, it's simple substitution.

So 1st I extracted a bunch of "marquees" I have. They're all conveniently named <romname>.png files into a folder; one was obviously snowbros.png

Note: here's a link to a very nice collection of marquees. So download v219 parts 1 and 2, the update to .219 and update to .220. Extract all in this order to a folder and proceed with steps below.
Caveat: Delete the .jpg files. Most (not all, i.e., spang - Super Pang) are just duplicates. Should not a problem if you have mame extras but i'll let you decide if you want to sort those by hand or not. I just kept the .png which is what the code below uses anyway. You're on your own if you want to use the .jpg files.

Then I created a simple template "default.lay"
XML:
<!-- romname.lay -->

<mamelayout version="2">
    <element name="marq">
        <image file="romname.png" />
    </element>
 
    <view name="Marquee_Only">
        <!-- use aspect ratio instead -->
        <bounds x="0" y="0" width="16" height="9" />
        <element ref="marq">
                <!-- y=2 center vertically -->
            <bounds x="0" y="2" width="16" height="4.5" />
        </element>
    </view>
</mamelayout>

Then I created .lay files for all .png
Bash:
for file in *.png ; do cp default.lay $(basename "$file" .png).lay ; done

Then I changed romname by the actual romname
Bash:
for file in *.lay ; do basename $file .lay;  sed -i "s/romname/$(basename "$file" .lay)/g" "$file" ; done

zip both <romname>.lay and <romname>.png in <romname>.zip (this will take a while)
Bash:
for file in *.lay ; do  7z a -tzip $(basename "$file" .lay).zip $file  $(basename "$file" .lay).png ; done

Optional step; if you use mame extras it is probable that you're seeing bezels. In this case you'll have to rename the <romname>.lay to default.lay inside the .zip and hopefully your main monitor will have bezels but the 2nd monitor only the marquee will show.
You can of course still press TAB - Video and set screen #0 and #1 to whatever options you have while in-game

Bash:
for file in *.zip ; do 7z l -ba $file | grep -oP '\S+lay$' | xargs -I {} 7z rn $file {} default.lay ; done

And finally move the .zips to your artwork folder (default is inside mame folder)

In mame.ini we MUST set
# remember to set this to 1 if your 2nd monitor is disconnected or mame WILL crash next time
numscreens 2

#force screen0 to be main monitor
screen0 \\.\DISPLAY1
view0 Standard
#will call view from layout file
view1 Marquee_Only

Under "CORE ARTWORK OPTIONS" add:
use_backdrops 1
use_overlays 1
use_bezels 1
use_marquees 1

If a game doesn't have yet a marquee configured and/or you want one while browsing roms, you can have a generic one set like this:
edit mame.ini and change the following lines:
# default is what I use. Just the NAME of your default layout file.
# Example, you have a MyDefaultLayout.zip in your artwork folder and inside you have a MyDefaultLayout.lay along your image file.
#The fallback_artwork parameter must be MyDefaultLayout
fallback_artwork default
override_artwork 1
 
Last edited:
double post for bumping the above as it was updated.
I made it work with current bezel .lay files from Mr. Do found in mame extras.

here's proof:
 

Attachments

  • with marquee.jpeg
    with marquee.jpeg
    229.8 KB · Views: 12
Many thanks.
I do think it is easier to find in own thread, even from google search :)
 
General chit-chat
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
      xenonph @ xenonph: @oilpainter27 find here...
      Back
      Top