Attract-Mode Support Forum

Attract-Mode Support => General => Topic started by: krick on June 23, 2018, 07:48:12 PM

Title: How do you set up individual consoles with MAME?
Post by: krick on June 23, 2018, 07:48:12 PM
I have the latest official MAME binary from MAMEdev.org and I'm trying to set up my cabinet with Attract Mode.

I have 4 folders with ROMs/CHDs...

MAME 0.198 ROMs (merged)
MAME 0.198 CHDs (merged)
MAME 0.198 Software List ROMs (merged)
MAME 0.198 Software List CHDs (merged)

The "Software List" folders are the console ROMs and disc images.

I have the "arcade" part of MAME working in AttractMode but I can't figure out how to set up so that the individual consoles work.

At the moment, the consoles appear in the MAME list but launching it just starts the console without any cartridge/disc.

I know that MAME ships with XML lists of supported titles for each console in the /mame/hash/ folder but I don't know what to do with them in Attract Mode.

From a usability standpoint, I think it would be most convenient if there was a separate list for each console.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 23, 2018, 09:52:51 PM
Create a separate "Emulator" for each system. You will need them anyway since the launching of each system from the command line will be different.

Here are two samples. You'll need to change the paths for your setup

Nintendo Entertainment System.cfg (using MAME)
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           \Emulators\MAME\mame64.exe
args                 nes -cart "[romfilename]"
rompath              \Roms\Nintendo Entertainment System
romext               .nes;.zip;.7z
system               Nintendo Entertainment System (NES)
info_source          thegamesdb.net
artwork    boxart    \EmuMovies\Nintendo_NES\Box_3D;\EmuMovies\Nintendo_NES\Box
artwork    boxbackart    \EmuMovies\Nintendo_NES\BoxBack
artwork    cartart   \EmuMovies\Nintendo_NES\Cart
artwork    fanart    \EmuMovies\Nintendo_NES\Background
artwork    marquee   \EmuMovies\Nintendo_NES\Banner
artwork    snap      \EmuMovies\Nintendo_NES\Video_MP4_HI_QUAL;\EmuMovies\Nintendo_NES\Snap
artwork    title     \EmuMovies\Nintendo_NES\Titles
artwork    wheel     \EmuMovies\Nintendo_NES\Logos

Sega Genesis.cfg (using MAME)
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           \Emulators\MAME\mame64.exe
args                 genesis -cart "[romfilename]"
rompath              \Roms\Sega Genesis
romext               .gen;.zip;.7z
system               Sega Genesis
info_source          thegamesdb.net
artwork    boxart    \EmuMovies\Sega_Genesis\Box_3D;\EmuMovies\Sega_Genesis\Box
artwork    boxbackart    \EmuMovies\Sega_Genesis\BoxBack
artwork    cartart   \EmuMovies\Sega_Genesis\Cart
artwork    fanart    \EmuMovies\Sega_Genesis\Background
artwork    marquee   \EmuMovies\Sega_Genesis\Banner
artwork    snap      \EmuMovies\Sega_Genesis\Video_MP4_HI_QUAL;\EmuMovies\Sega_Genesis\Snap
artwork    title     \EmuMovies\Sega_Genesis\Titles
artwork    wheel     \EmuMovies\Sega_Genesis\Logos
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 25, 2018, 10:15:02 PM
Thanks for your help. I've set up the Atari 2600 and the ColecoVision so far.

The Atari 2600 works fine but for some reason, I'm having an issue with the ColecoVision.

When I launch a game, ladybug for example, the game loads fine and gets to the blue screen where you have to press a number on the keypad to start the game.  When I press a number, the ColecoVision resets.

The weird thing is that I can run the game fine from the command prompt...

C:\mame>mame64 coleco -cart ladybug

...or...

C:\mame>mame64 coleco -cart "ladybug"

...both work fine.

Is there any way to debug attract mode to figure out what's happening?

Here are my configs...


MAME.cfg  (works fine)
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 [name]
rompath              c:/mame/roms/;E:/MAME 0.198 ROMs (merged);E:/MAME 0.198 CHDs (merged)
romext               .zip;.7z;<DIR>
system               Arcade
info_source          listxml
artwork    flyer           
artwork    marquee         
artwork    snap            E:/MAME 0.198 EXTRAs snap
artwork    wheel           

Atari 2600.cfg  (works fine)
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 a2600 -cart "[romfilename]"
rompath              E:/MAME 0.198 Software List ROMs (merged)/a2600
romext               .zip
info_source          listsoftware
artwork    flyer           
artwork    marquee         
artwork    snap            E:/MAME 0.198 EXTRAs snap_SL/a2600
artwork    wheel           

ColecoVision.cfg  (does not work correctly)
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 coleco -cart "[romfilename]"
rompath              E:/MAME 0.198 Software List ROMs (merged)/coleco
romext               .zip
info_source          listsoftware
artwork    flyer           
artwork    marquee         
artwork    snap            E:/MAME 0.198 EXTRAs snap_SL/coleco
artwork    wheel           
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 25, 2018, 11:00:44 PM
1. Download the console version of AM from here http://attractmode.org/download.html.
2. Extract the attract.exe file and rename it to attract-console.exe.
3. Place this file in your existing AM install folder and run it. You should see what's happening in the console window.

Why the "/" in Windows instead of the "\"? I don't think this is your issue but the "/" is more of a *nix thing.

Try to add some other systems and see if they have issues or if the issue is isolated to ColecoVision.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 25, 2018, 11:22:51 PM
Does your entry below work well? I don't think this gets all the correct metadata for the games. Please post the first 20 lines of your \attractmode\romlists\Atari 2600.txt file.

Code: [Select]
info_source          listsoftware
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 26, 2018, 07:48:30 PM
1. Download the console version of AM from here http://attractmode.org/download.html.
2. Extract the attract.exe file and rename it to attract-console.exe.
3. Place this file in your existing AM install folder and run it. You should see what's happening in the console window.

Here's what the console output looks like for NES that I just added...
Code: [Select]
C:\attract>attract-console.exe
Attract-Mode v2.3.0 (Windows, SFML 2.4 +SWF +7z)
avcodec 57.107.100 / avformat 57.83.100 / swscale 4.8.100 / swresample 2.9.100

Config: C:\attract\attract.cfg

*** Initializing display: 'Nintendo Entertainment System (NES)'
 - Loaded master romlist 'Nintendo Entertainment System (NES)' in 36 ms (2477 entries kept, 0 discarded)
 - Constructed 2 filters in 0 ms (4954 comparisons)
 - Loaded layout: C:\attract\layouts/Attrac-Man/ (layout.nut)
Failed to load image "C:\attract\layouts/Attrac-Man/snap.png". Reason: Unable to open file
Error opening input file: C:\attract\layouts/Attrac-Man/snap.png
ERROR loading video: C:\attract\layouts/Attrac-Man/snap.png
 - Working directory: c:\mame
*** Running: c:\mame\mame64.exe nes -cart "e:\MAME 0.198 Software List ROMs (merged)\nes/gradius.zip"

Try to add some other systems and see if they have issues or if the issue is isolated to ColecoVision.

I did.  Above is the output after adding NES.  It doesn't work at all.  It immediately crashes and goes back to AM.  It looks like it's looking for and not finding "snap.png" in the Attrac-Man layout.  Is that normal?

Why the "/" in Windows instead of the "\"? I don't think this is your issue but the "/" is more of a *nix thing.

Actually, windows supports forward slashes just fine.  In fact, I usually use forward slashes because they cause less problems since backslashes are often treated as escape characters.  Just because you mentioned it, I tried changing my slashes back to backslashes.  If you look at the console log, it looks like AM uses forward slashes for its internal paths so it was probably better the way I originally had it.
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 26, 2018, 07:59:56 PM
Does your entry below work well? I don't think this gets all the correct metadata for the games. Please post the first 20 lines of your \attractmode\romlists\Atari 2600.txt file.

Code: [Select]
info_source          listsoftware

If I generate the ROM list using listxml, I get weird stuff in the ColecoVision list that appears to be information from the Arcade versions...

(https://i.imgur.com/1swsYpu.png)

Here's the first 20 lines  from the ColecoVision romlist using listxml.

In particular, note the description for Congo Bongo that includes "(Rev C, 2 board stack)" and the "mechanical" flag on Fathom.  Something is very wrong with this data.

Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
1on1;1on1;ColecoVision;;;;;;;;;;;;;;
2010;2010;ColecoVision;;;;;;;;;;;;;;
31in1;31in1;ColecoVision;;;;;;;;;;;;;;
63in1;63in1;ColecoVision;;;;;;;;;;;;;;
buckrog;Buck Rogers: Planet of Zoom;ColecoVision;;1982;Sega;;1;0;joystick (8-way);imperfect;1;raster;;;;
bnj;Bump 'n' Jump;ColecoVision;brubber;1982;Data East USA;;2;270;joystick (8-way),joystick (8-way);good;1;raster;brubber;;;
btime;Burger Time (Data East set 1);ColecoVision;;1982;Data East Corporation;;2;270;joystick (4-way),joystick (4-way);good;1;raster;;;;
carnival;Carnival (upright);ColecoVision;;1980;Sega;;1;270;joystick (2-way);imperfect;1;raster;;;;
centiped;Centipede (revision 4);ColecoVision;;1980;Atari;;1;270;joystick (8-way),trackball;good;1;raster;;;;
choplift;Choplifter (8751 315-5151);ColecoVision;;1985;Sega (licensed from Dan Gorlin);;2;0;joystick (8-way),joystick (8-way);good;1;raster;;;;
congo;Congo Bongo (Rev C, 2 board stack);ColecoVision;;1983;Sega;;2;90;joystick (8-way),joystick (8-way);imperfect;1;raster;;;;
cavenger;Cosmic Avenger;ColecoVision;;1981;Universal;;2;0;joystick (8-way),joystick (8-way);good;1;raster;;;;
dambustr;Dambusters (US, set 1);ColecoVision;;1981;South West Research;;1;90;joystick (4-way);good;1;raster;;;;
defender;Defender (Red label);ColecoVision;;1980;Williams;;1;0;joystick (vertical2-way);good;1;raster;;;;
digdug;Dig Dug (rev 2);ColecoVision;;1982;Namco;;2;90;joystick (4-way),joystick (4-way);good;1;raster;;;;
dkong;Donkey Kong (US set 1);ColecoVision;;1981;Nintendo of America;;2;270;joystick (4-way),joystick (4-way);good;1;raster;;;;
dkongjr;Donkey Kong Junior (US set F-2);ColecoVision;;1982;Nintendo of America;;2;270;joystick (4-way),joystick (4-way);good;1;raster;;;;
dlair;Dragon's Lair (US Rev. F2);ColecoVision;;1983;Cinematronics;;1;0;joystick (8-way);preliminary;1;raster;;;chd;
fathom;Fathom;ColecoVision;;1981;Bally;;1;;;preliminary;0;;;;mechanical;

On the other hand, listsoftware seems to get decent information except the title is the same as the ROM name.  I'm wondering if something changed in recent versions of the MAME XML format that Attract Mode can't handle.

Here's the first 20 lines  from the ColecoVision romlist using listsoftware...
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
1on1;1on1;ColecoVision;;;;;;;;;;;;;;
2010;2010;ColecoVision;;;;;;;;;;;;;;
31in1;31in1;ColecoVision;;;;;;;;;;;;;;
63in1;63in1;ColecoVision;;;;;;;;;;;;;;
alcazar;alcazar;ColecoVision;;;;;;;;;;;;;;
alphazoo;alphazoo;ColecoVision;;;;;;;;;;;;;;
amazing;amazing;ColecoVision;;;;;;;;;;;;;;
antarct;antarct;ColecoVision;;;;;;;;;;;;;;
apshai;apshai;ColecoVision;;;;;;;;;;;;;;
aquatack;aquatack;ColecoVision;;;;;;;;;;;;;;
artduel;artduel;ColecoVision;;;;;;;;;;;;;;
bbears;bbears;ColecoVision;;;;;;;;;;;;;;
bcquest;bcquest;ColecoVision;;;;;;;;;;;;;;
bcquest2;bcquest2;ColecoVision;;;;;;;;;;;;;;
bdash;bdash;ColecoVision;;;;;;;;;;;;;;
beamridr;beamridr;ColecoVision;;;;;;;;;;;;;;
blockrun;blockrun;ColecoVision;;;;;;;;;;;;;;
bnj;bnj;ColecoVision;;;;;;;;;;;;;;
brainstr;brainstr;ColecoVision;;;;;;;;;;;;;;

And here's the first 20 lines from the Atari 2600 romlist using listsoftware...
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
2pakblac;2pakblac;ATARI 2600;;;;;;;;;;;;;;
2pakblue;2pakblue;ATARI 2600;;;;;;;;;;;;;;
2pakdblu;2pakdblu;ATARI 2600;;;;;;;;;;;;;;
2pakdo;2pakdo;ATARI 2600;;;;;;;;;;;;;;
2pakgrne;2pakgrne;ATARI 2600;;;;;;;;;;;;;;
2paklgrn;2paklgrn;ATARI 2600;;;;;;;;;;;;;;
2pakmage;2pakmage;ATARI 2600;;;;;;;;;;;;;;
2pakoran;2pakoran;ATARI 2600;;;;;;;;;;;;;;
2pakred;2pakred;ATARI 2600;;;;;;;;;;;;;;
2pakyelo;2pakyelo;ATARI 2600;;;;;;;;;;;;;;
32in1;32in1;ATARI 2600;;;;;;;;;;;;;;
3dgensp;3dgensp;ATARI 2600;;;;;;;;;;;;;;
3dghostp;3dghostp;ATARI 2600;;;;;;;;;;;;;;
3dhavocp;3dhavocp;ATARI 2600;;;;;;;;;;;;;;
3dtictac;3dtictac;ATARI 2600;;;;;;;;;;;;;;
4game1;4game1;ATARI 2600;;;;;;;;;;;;;;
4game1a;4game1a;ATARI 2600;;;;;;;;;;;;;;
4in1;4in1;ATARI 2600;;;;;;;;;;;;;;
8in1;8in1;ATARI 2600;;;;;;;;;;;;;;


EDIT: Just for the heck of it, I tried running this from the command line in my MAME folder...

Code: [Select]
mame64.exe a2600 -listsoftware > mame_a2600.xml

The resulting XML file has 1589 "software" tags so I'm thinking my Atari 2600 list would have that many games if this process was working correctly in Attract Mode.

I did the same for coleco and I got 220 titles.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 26, 2018, 09:14:26 PM
If you use "info_source listsoftware" you must also use "system = x". x = the mame name for the system (i.e. nes, coleco, a2600, etc.) This is likely why your Coleco games have MAME data (and because their rom names match the MAME rom names).

When using console games in MAME you use "[name]" if they use the old 8.3 naming in a zipped format and "[romfilename]" when using long names that aren't zipped.

If you get your romlists using "info_source listsoftware" (or "info_source listxml") you won't get the genre info unless you download and include the "import_extras .\extras\catver.ini" in your configuration.

Samples of your post updated to include this info.

Atari 2600.cfg
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 a2600 -cart "[name]"
rompath              E:/MAME 0.198 Software List ROMs (merged)/a2600
romext               .zip
system               a2600
info_source        listsoftware
import_extras    .\extras\catver.ini
artwork    flyer           
artwork    marquee         
artwork    snap            E:/MAME 0.198 EXTRAs snap_SL/a2600
artwork    wheel           

ColecoVision.cfg
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 coleco -cart "[name]"
rompath              E:/MAME 0.198 Software List ROMs (merged)/coleco
romext               .zip
system               coleco
info_source        listsoftware
import_extras    .\extras\catver.ini
artwork    flyer           
artwork    marquee         
artwork    snap            E:/MAME 0.198 EXTRAs snap_SL/coleco
artwork    wheel           

In my previous examples I'm using "info_source thegamesdb.net" so my "system = x" match the thegamesdb.net naming convention (i.e. Nintendo Entertainment System (NES), Atari 2600, ColecoVision, etc.).

----------

The "snap.png" errors you see have nothing to do with your game launching issue. These are AM errors that will be ignored.

----------

Do the systems you have issues with work if you run them within MAME?

Do they work if you execute the commands from the command line?

Do you have everything setup properly in your mame.ini file? It appears that you took "Pleasure" in your MAME roms, have you followed their MAME installation (Wiki #12)?
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 26, 2018, 09:59:35 PM
OK, I think I figured out how this is supposed to work.  In the MAME directory, there's a "hash" folder that contains XML files for (I assume) every system that uses a software list.

I was able to generate a proper list of game titles that way.  Here's my config file for the Atari 2600.  Notice that I'm using the "import_extras" property instead of the "info_source" property.

Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 a2600 -cart "[romfilename]"
rompath              e:/MAME 0.198 Software List ROMs (merged)/a2600
romext               .zip
import_extras        c:/mame/hash/a2600.xml
artwork    flyer           
artwork    marquee         
artwork    snap            e:/MAME 0.198 EXTRAs snap_SL/a2600
artwork    wheel           

This works.  But I think the reason that it works is that it doesn't have a BIOS file in the MAME ROM set that needs to be loaded.

I did the same setup with the hash XML file for the ColecoVision and games don't load correctly.

When I run attractmode console, it says that it's running this command line...

Code: [Select]
c:/mame/mame64.exe coleco -cart "e:/MAME 0.198 Software List ROMs (merged)/coleco/mrdo.zip"

The game loads but it keeps resetting at the ColecoVision title screen.


If I go into the mame directory and run this from the command line, it works perfectly...

Code: [Select]
mame64 coleco -cart mrdo

However, if I try to add the full path to the ROM like Attract Mode, it fails in the same way... resetting at the title screen...

Code: [Select]
mame64 coleco -cart "e:/MAME 0.198 Software List ROMs (merged)/coleco/mrdo.zip"


So I'm at a loss on how to handle this.  For ColecoVision games, it needs the system (BIOS) ROM from the main ROM set and the individual game ROM from the Software List ROM set and it doesn't appear to be loading correctly.


EDIT:  Your last post had the solution.  I needed to use  [name]  instead of  [romfilename].

Once I did that, it worked perfectly.   :D

For reference, this what the updated ColecoVision config looks like...
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 coleco -cart "[name]"
rompath              e:/MAME 0.198 Software List ROMs (merged)/coleco
romext               .zip
import_extras        e:/mame/hash/coleco.xml
artwork    flyer           
artwork    marquee         
artwork    snap            e:/MAME 0.198 EXTRAs snap_SL/coleco
artwork    wheel           


EDIT2:  It looks like I don't need both ROM sets in the config rompath.  I guess since I have both paths in my mame.ini...

"e:/MAME 0.198 ROMs (merged);e:/MAME 0.198 Software List ROMs (merged)"

Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 26, 2018, 10:28:51 PM
Please reread my post above. I have made changes that might interest you (I didn't know you reposted while I was doing it).
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 26, 2018, 10:47:21 PM
Please reread my post above. I have made changes that might interest you (I didn't know you reposted while I was doing it).

Yep.  Your post had part of the solution.  I needed to use  [name]  instead of  [romfilename]

Check out my latest post too.  I discovered the XML files in the mame/hash/ folder for consoles

They seem to work better than listxml or listsoftware as I've been using them.

I still haven't tried your suggestion to use "system = x" with listsoftware but I'll check that out tomorrow.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 26, 2018, 10:59:07 PM
Glad you got it working.

I was mainly talking about the genre/category part. I'm pretty sure you're missing this data and when you have that many roms, filters become important http://forum.attractmode.org/index.php?topic=2297.0.

I know that the mame hash files are used for just that, hash to ensure the roms are 100% correct. I haven't tried using these but I'm curious if they might leave out other data in the romlists? If not, they are probably faster since the files already exist vs. dynamically generating them with listsoftware.
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 27, 2018, 06:19:48 PM
I fired up my arcade cabinet today and changed my three (so far) console configs to use the "system" attribute with listsoftware.

Everything seems to work well so far except that it seem like I'm not seeing all the games (possibly versions and variants).  It might be because I have "merged" ROMs though.  I can use CLRMAMEPRO to convert them into "split" sets if it makes a difference in Attract Mode.

As an aside, it seems like each of my console/systems that use a software list is basically set up the same way more or less with the only variables being the "system" tag e.g. a2600, coleco, nes, ect...  in the various places they appear and the full name of the system.  It's easy enough to copy and rename one of the existing configs and do a search-replace on the system tag.  But it seems like there should be a way to parse the mame.xml and/or listsoftware output and/or the XML files in the hash folder and generate a config for each system automatically.

If a tool for that doesn't already exist, I my try my hand at writing one.


I have a somewhat related issue with configuring MAME properly in Attract Mode.

At the moment, my MAME list includes a bunch of home computers (and consoles, I think).  Is my config incorrect or do I need to do additional work to filter those out with catver.ini and/or custom filters?
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 27, 2018, 07:41:20 PM
Everything seems to work well so far except that it seem like I'm not seeing all the games (possibly versions and variants).  It might be because I have "merged" ROMs though.  I can use CLRMAMEPRO to convert them into "split" sets if it makes a difference in Attract Mode.
Yes, you see this because of the merged set. Split sets will work differently. Your method using the hash files might overcome this but I'm not certain. Using third party tools might also help or you could convert your set as you mentioned above.

As an aside, it seems like each of my console/systems that use a software list is basically set up the same way more or less with the only variables being the "system" tag e.g. a2600, coleco, nes, ect...  in the various places they appear and the full name of the system.  It's easy enough to copy and rename one of the existing configs and do a search-replace on the system tag.  But it seems like there should be a way to parse the mame.xml and/or listsoftware output and/or the XML files in the hash folder and generate a config for each system automatically.
Setting up the systems is a one time thing. I'm sure it could be automated but I don't think most care too much since this doesn't take much time.

If a tool for that doesn't already exist, I my try my hand at writing one.
I have seen several over the years. Romlister works well but there are others.

I have a somewhat related issue with configuring MAME properly in Attract Mode.

At the moment, my MAME list includes a bunch of home computers (and consoles, I think).  Is my config incorrect or do I need to do additional work to filter those out with catver.ini and/or custom filters?
Keep in mind that there were actual arcade machines that played Nintendo and Sega games that were similar or the same as the console version.


You need to decide your end goal. It's different for everyone. MAME is great and include tons of games but I wouldn't want 90% of them on my cabinet. I will never play any computer type game or most console games there. Personally, I like the no-intro type of sets/databases because I use very few clones and focus on games that were available in the US. Curating your romlists is the key to an easy to use system. This can be done manually, with tools, with filters, with databases (xml files) from other systems or emulators. My advice is figure out what you want in the end and the best or easiest way to get there. A lot of people think it's cool or important to have as many games as possible (I was once one of them) but this is really the wrong direction if you want a clean and easily navigated system.

Just because you have a rom it doesn't mean it has to be in one of your active romlists. I don't delete or move roms I don't want see or use, I just make sure their hidden via the romlist or filters. A simple trick is to create your complete romlists and call them xxx_all.txt (mame_all.txt, nes_all.txt, etc.) and then create your curated romlists. Make a copy of your attract.cfg and point it to your complete romlists. This will allow you to have a clean system but toggle to a complete system by simply swapping the attract.cfg files. I also like to have multiple attract.cfg files to quickly change complete layouts to keep things fresh but that's another discussion.

P.S. I should also mention that romlists can be generated from the command line using xml files from other systems and these commands can also use filters. This can be a helpful and powerful tool when building your ideal setup.
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 27, 2018, 09:08:02 PM
Yes, you see this because of the merged set. Split sets will work differently. Your using of the hash files might overcome but I'm not certain. Using third party tools might also help or you could convert your set as you mentioned above.

So Attract Mode must try to reconcile the physical zip file names it finds in the ROM path directory with the data in the XML file when building the list.  I understand why they would do it that way since that's probably how most users probably want it to work.

I'd kind of prefer if it just built the list purely based on the XML/DAT file you provide regardless of whether I had the correct ROMs or not.  I think that other front ends I've used in the past worked that way.  If I recall correctly, MAMEwah would ask for your mame exe location and then it would extract the XML and build a list from that.  You had the option of showing parent sets only or parents + clones.  It didn't matter if you actually had any ROM files at all.  It didn't care.

At the moment, my MAME list includes a bunch of home computers (and consoles, I think).  Is my config incorrect or do I need to do additional work to filter those out with catver.ini and/or custom filters?
Keep in mind that there were actual arcade machines that played Nintendo and Sega games that were similar or the same as the console version.

You need to decide your end goal. It's different for everyone. MAME is great and include tons of games but I wouldn't want 90% of them on my cabinet. I will never play any computer type game or most console games there. Personally, I like the no-intro type of sets/databases because I use very few clones and focus on games that were available in the US. Curating your romlists is the key to an easy to use system. This can be done manually, with tools, with filters, with databases (xml files) from other systems or emulators. My advice is figure out what you want in the end and the best or easiest way to get there. A lot of people think it's cool or important to have as many games as possible (I was once one of them) but this is really the wrong direction if you want a clean and easily navigated system.

I guess my end goal is to have the "MAME" list be just arcade games.  So that will require some kind of filtering.  I know systems like the NeoGeo are weird cases though.

Anything with a software list can be separated out into a separate list.  For example, Amiga or Commodore 64.

I'd probably want to do a list of just the cheesy LCD hand-held games but I'm not sure if that's possible because they aren't all within one "system".

Right now, I've noticed two issues.

The first is that all of my CHD games are showing up at the end of the MAME list instead of being mixed in with the rest, alphabetically.  Also, they don't have proper descriptions...
(https://i.imgur.com/mFR0SCA.png)

The other issue is what I mentioned above with software list items like computers being in the list.  For example, this chunk of HP computers/devices....
(https://i.imgur.com/Odqm01Z.png)

I wouldn't delete or move ROMs.  I'll just try to hide things with filters or creative use of dat files or something once I get a grip on how it all works.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 28, 2018, 12:18:28 AM
You can read here to determine the best method to get the correct mame.xml file to suit your needs. http://docs.mamedev.org/commandline/commandline-all.html

You can read here about how to import mame, mamewah, hyperspin and other xml files to your AM romlists. This might be what you want if you don't want any check against the actual rom files. https://github.com/mickelson/attract/blob/v2.3.0/Readme.md You can use complete romlists in AM and use an "if file exists" filter to only display the games for roms you actually have.

I mentioned Romlister above which you can find here. https://www.waste.org/~winkles/ROMLister/

As far as the mame chd files go, why even tell AM about these? There should be a .zip file for each of them and if MAME is setup properly they don't need to be configured in AM. I assume these are really duplicate entries because you have the <dir> extension defined. If not, you can always use an app like excel to reorder these games.
Title: Re: How do you set up individual consoles with MAME?
Post by: krick on June 28, 2018, 10:14:26 AM
Thanks for all your help. I'll definitely check out all the resources you linked.

As far as the mame chd files go, why even tell AM about these? There should be a .zip file for each of them and if MAME is setup properly they don't need to be configured in AM. I assume these are really duplicate entries because you have the <dir> extension defined. If not, you can always use an app like excel to reorder these games.

I'll admit that I don't totally understand the emulator configuration options within Attract Mode but I'm slowly figuring it out with your help.  I assumed (incorrectly) that Attract Mode needed the same ROM paths as my mame.ini and that's obviously wrong (now).

I basically used the default MAME config that comes with Attract Mode and modified with my paths.  This is what I had...
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 [name]
rompath              e:/MAME 0.198 ROMs (merged);e:/MAME 0.198 CHDs (merged)
romext               .zip;.7z;<DIR>
system               Arcade
info_source          listxml
artwork    flyer           
artwork    marquee         
artwork    snap            e:/MAME 0.198 EXTRAs snap
artwork    wheel           

And this is what it looks like now (which no longer has the list of CHDs at the end).  Not sure if I still need  system = Arcade  though.  I think probably not...
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 [name]
rompath              e:/MAME 0.198 ROMs (merged)
romext               .zip
system               Arcade
info_source          listxml
artwork    flyer           
artwork    marquee         
artwork    snap            e:/MAME 0.198 EXTRAs snap
artwork    wheel           

The only remaining oddity is this one game (worldadv) floating at the end of the list for some reason.  Not sure where that's coming from.  Maybe it doesn't have a proper description in MAME's listxml output or something....
(https://i.imgur.com/72I3yB9.png)
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on June 28, 2018, 11:38:01 PM
And this is what it looks like now (which no longer has the list of CHDs at the end).  Not sure if I still need  system = Arcade  though.  I think probably not...
Code: [Select]
# Generated by Attract-Mode v2.3.0
#
executable           c:/mame/mame64.exe
args                 [name]
rompath              e:/MAME 0.198 ROMs (merged)
romext               .zip
system               Arcade
info_source          listxml
artwork    flyer           
artwork    marquee         
artwork    snap            e:/MAME 0.198 EXTRAs snap
artwork    wheel           
The "system Arcade" setting is only used if you're using thegamesdb.net to scrape game info and/or artwork.

The only remaining oddity is this one game (worldadv) floating at the end of the list for some reason.  Not sure where that's coming from.  Maybe it doesn't have a proper description in MAME's listxml output or something....
When you see a MAME game like this it's because no data was found for the game (using what ever method you have specified in the emulator.cfg).
Title: Re: How do you set up individual consoles with MAME?
Post by: dondi on August 09, 2018, 11:36:31 PM
1st post, new to AM... currently doing a refresh of my ancient XP arcade cabinet I built in 1998, running my favorite (now defunct) frontend, 3DArcade. Unfortunately, 3DA is somewhat "dead" and creating gamelists is a bit archaic after MAME v0.161 with the merging of MAME+MESS, the introduction of SoftwareLists and the reformatting of the XML infos. That said, 3DA is somewhat similar in format to AM whereby it uses tab-delimited (CSV) files for gamelists. Hence, why I am using AM to create "Frankenstein" gamelists to ultimately import into 3DA. It seems it allows me to incorporate multiple sources (i.e., thegamesdb scraping, HyperSpin XMLs, catver, nplayers, MAME/MESS hash XMLs, custom XMLs, etc.) to create my needed gamelists for 3DA, which uses/can use, all the populated fields of the gamelist. I usually create a single "ALL" gamelist, and use autofilters on-the-fly for special cases. I believe that AM uses a similar tactic.
3DA gamelists' format looks like this (a few copy/pastes from my MAME, Pinball, Daphne and Neogeo master gamelists):
Code: [Select]
|Description|Name|Year|Manufacturer|Clone|Romof|Category|VersionAdded|Available|Emulator|Type|Model|Favorites|Video|Orientation|Resolution|Aspect|Frequency|Depth|Stereo|Controltype|Buttons|Players|Coins|Driver|DriverStatus|SoundStatus|ColorStatus|HtmlLinks|TimesPlayed|DurationPlayed|Rating|Maturity||||
|1942|1942|1984|Capcom|none|none|Shooter / Flying Vertical|.19|Yes|mame|arcade||Favorite|raster|vertical|224x256|3x4|60||mono|joy8way|2|2|2|1942.c|good|good|good||83|807||||||
|Pac-Man|pacman|1980|[Namco] (Midway license)|puckman|puckman|Maze|.01|Yes|mame|arcade||Favorite|raster|vertical|224x288|3x4|60||mono|joy4way||2|2|pacman.c|good|good|good||91|881||||||
|Gauntlet II|gaunt2|1986|Atari Games|None|None|Maze / Shooter Large|.30|Yes|mame|arcade|||Raster|Horizontal|336x240|4x3|60.000000|Unknown|Yes|Joy 8 Way|2|4|4|gauntlet.c|Good|Good|Good||80|781||||||
|Moon Patrol|mpatrol|1982|Irem|none|none|Shooter / Driving Horizontal|.31|Yes|mame|arcade||Favorite|raster|horizontal|240x248|4x3|57||mono|joy8way|2|2|3|mpatrol.c|good|good|good||72|701||||||
|Super Xevious|sxevious|1984|Namco|xevious|xevious|Shooter / Flying Vertical|.27|Yes|mame|arcade|xevious||raster|vertical|224x288|3x4|60||mono|joy8way|2|2|2|xevious.c|good|good|good||86|852||||||
|Galaga|galaga|1981|Namco|none|none|Shooter / Gallery|.30|Yes|mame|arcade||Favorite|raster|vertical|224x288|3x4|60||mono|joy8way|1|2|3|galaga.c|good|good|good||99|940||||||
|Flash Gordon|Flash Gordon|1981|Bally|pinball_bally_70s_flashgordon||Solid State|TAB|Yes|pinball|Pinball|pinball_bally_70s||Y|||||||||||||||||||||||
|Future Spa|Future Spa|1979|Bally|pinball_bally_70s_wide_futurespa||Solid State|JPSalas|Yes|pinball|Pinball|pinball_bally_70s_wide||Y|||||||||||||||||||||||
|Creature from the Black Lagoon|Creature from the Black Lagoon|1992|Bally|pinball_bally_90s_creaturefromblacklagoon||VPinMame|unclewilly|Yes|pinball|Pinball|pinball_bally_90s||Y|||||||||||||||||||||||
|Twilight Zone|Twilight Zone|1993|Bally|pinball_bally_90s_wide_twilightzone||VPinMame|melon|Yes|pinball|Pinball|pinball_bally_90s_wide||Y|||||||||||||||||||||||
|MACH 3|mach3|1983|Mylstar Electronics|none|daphne|Platform / Laser Disc||Yes|daphne|app|mach3||Raster|Horizontal|||||||||||||||8|1||||||
|Dragon's Lair Enhanced|dle11|1983|Cinematronics|lair|daphne|Platform / Laser Disc||Yes|daphne|app|lair||Raster|Horizontal|||||||||||||||8|4||||||
|Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)|mvsc|1998|Capcom|none|mvsc|Fighter / Versus|.127u4|Yes|fb_alpha|arcade|||raster|vertical|384x224||59.63741||stereo|joy|6|2|2|cps2.c|good|good|good|||||||||
|Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)|mvscu|1998|Capcom|mvsc|mvscu|Fighter / Versus|0.058|Yes|fb_alpha|arcade|||raster|vertical|384x224||59.63741||stereo|joy|6|2|2|cps2.c|good|good|good|||||||||
|Super Street Fighter II Turbo (World 940223)|ssf2t|1994|Capcom|none|ssf2t|Fighter / Versus|.037b13|Yes|fb_alpha|arcade|||raster|vertical|384x224||59.63741||stereo|joy|6|2|2|cps2.c|good|good|good|||||||||
|Super Street Fighter II Turbo (USA 940323)|ssf2tu|1994|Capcom|ssf2t|ssf2tu|Fighter / Versus|.070u5|Yes|fb_alpha|arcade|||raster|vertical|384x224||59.63741||stereo|joy|6|2|2|cps2.c|good|good|good|||||||||
Currently doing battle with my first AM gamelist/SoftwareList; Atari 2600. Using multiple sources, such as HyperSpin XML, MAME hash XML, catver.ini, nplayers.ini and thegamesdb. So far, I am ok with the AM-generated Atari 2600 romlist (you may notice there are inconsistencies, especially regarding genre with clones and genre in general. I noticed that even if genre appears on thegamesdb and/or the HS XML (which uses a different romname than my MAME set), that the genre gets dropped) . Here are my preliminary results:
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons
amidar;Amidar;a2600;;1983;Parker Bros;Maze / Outline;2P alt;0;joystick (8-way);good;0;raster;amidar;;;1
amidare;Amidar (PAL);a2600;amidar;1983;Parker Bros;Maze / Outline;2P alt;0;joystick (8-way);good;0;raster;amidare;;;1
aquavent;Aquaventure;a2600;;198?;CCE;Action;1;0;joystick (8-way);good;0;raster;aquavent;;;1
aquaventp;Aquaventure (Prototype);a2600;aquavent;1983;Atari;;1;0;joystick (8-way);good;0;raster;aquaventp;;;1
armoramb;Armor Ambush;a2600;;1982;Mattel;Shooter;1;0;joystick (8-way);good;0;raster;armoramb;;;1
armorambe;Armor Ambush (PAL);a2600;armoramb;1989;Telegames;;1;0;joystick (8-way);good;0;raster;armorambe;;;1
artduel;Artillery Duel;a2600;;1983;Xonox;Strategy;1;0;joystick (8-way);good;0;raster;artduel;;;1
artduele;Artillery Duel (PAL);a2600;artduel;1983;Xonox;;1;0;joystick (8-way);good;0;raster;artduele;;;1
This gets me further than most other methods. I think I am having issues with the scraping from thegamesdb as the most glaring issue is that it downloads the overview text files (1,428 of them for the complete Atari 2600 set), which is great, except that all of them are empty. Is this a temporary thing? I've also tried with the latest AM nightly after reading that there were scraping issues last month. AM does download some art; 24 fanart folders, 593 flyers, 15 marquees 83 snaps and 188 wheels. I'm not so concerned with the art. I can cobble-together the needed art between MAME extras and probably a utility like FatMatch to rename any non-MAME-romnamed art and/or videos. I have a feeling my atari2600 config may be a little "off". I tried a few variations, but here is the current state:
Code: [Select]
# Generated by Attract-Mode v2.4.0-15
#
executable           mame
args                 [name]
workdir              G:\Staging\v0.187
rompath              G:\Arcade DLs and Utils\MAME_0.185_Software_List_ROMs_non-merged\MAME_0.185_Software_List_ROMs_non-merged\MAME 0.185 Software List ROMs (non-merged)\a2600
romext               .zip;.7z
system               Atari 2600;a2600;2600;console
info_source          listsoftware+thegamesdb.net
import_extras        catver.ini;nplayers.ini;G:\Staging\v0.187\hash\a2600.xml;G:\Arcade DLs and Utils\Hyperspin FE Hyperlists\Atari 2600.xml;G:\Arcade DLs and Utils\Utilities\CSV Database Info Editor v1.0\Data\Atari 2600.xml
artwork    marquee         $HOME/mame/marquee
artwork    snap            $HOME/mame/video;$HOME/mame/snap
My catver and nplayers are on the root of my MAME/Working Dir. I tried to include multiple XMLs, figuring than none of them alone fit-the-bill, but between the 3, they contained the desired fields, i.e., clone, genre, correct MAME romname for a2600, etc. Yes, a bit "Frankenstein" but I haven't found an "easier" solution yet to get the desired results using the MAME Atari 2600 ROMs/SoftwareList --> a good CSV. I will be doing the same for the other Consoles too.
Sorry for the long post... I'm going a bit batty and getting wordy after being at this for so long.
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on August 10, 2018, 12:25:48 AM
Code: [Select]
import_extras        catver.ini;nplayers.ini;G:\Staging\v0.187\hash\a2600.xml;G:\Arcade DLs and Utils\Hyperspin FE Hyperlists\Atari 2600.xml;G:\Arcade DLs and Utils\Utilities\CSV Database Info Editor v1.0\Data\Atari 2600.xml
My catver and nplayers are on the root of my MAME/Working Dir.

The way you have defined catver.ini and nplayers.ini is incorrect. What you have posted has AM looking for these files in the root of the AM folder, not the mame root folder. You need to either move these files or define full paths or pathes relative to the AM folder.

The empty/blank game overview files is a current issue. This did work correctly in the past. There were recent changes to the way AM uses these file as well as changes to thegamesdb.net API so I don't know where this issue lies.
Title: Re: How do you set up individual consoles with MAME?
Post by: dondi on August 10, 2018, 08:18:38 AM
@progets Thanks for the reply... Hmmm.., are you sure about the pathing of the INIs in my CFG? I get a message in the console stating "info found for 152 entries" for catver and 153 entries for nplayers. I also tried with absolute paths with same result. I assumed that most all pathing was relative to the Working Directory. Will catver and nplayers have much of an effect on SoftwareLists, or do they just affect the Arcade portion of MAME?—still unclear if SoftwareLists are addressed in these 2 INIs. Doesn't seem that the 2 INIs are getting the bulk of the Atari 2600 set. I see that thegamesdb has Genre info for most of the Atari 2600 set. Wondering if this portion of the scraping is also being currently affected along with the overview TXTs

Had a feeling the blank overview txt files was probably just an API issue or something changing in the scraper; I tried every-which-way to get them pulled from thegamesdb to no avail. Hopefully, someone is on the case and it'll be fixed soon.

Quickie art question: I'm currently using the MAME SoftwareList non-merged romset for my Atari 2600. Over the years I've obtained various art and video sets from various sources with various naming conventions, i.e., MAME 8.3, No-Intro, Goodsets, etc. If/when assigning multiple art sources in AM, will AM use any "fuzzy logic" to look at the game name to grab the appropriate art/video and copy into the destination folder with my current MAME 8.3 naming convention, or do I need to use a 3rd party util to rename first?
Thanks again for the assist progets!!
Title: Re: How do you set up individual consoles with MAME?
Post by: progets on August 10, 2018, 03:22:28 PM
@progets Thanks for the reply... Hmmm.., are you sure about the pathing of the INIs in my CFG? I get a message in the console stating "info found for 152 entries" for catver and 153 entries for nplayers. I also tried with absolute paths with same result. I assumed that most all pathing was relative to the Working Directory. Will catver and nplayers have much of an effect on SoftwareLists, or do they just affect the Arcade portion of MAME?—still unclear if SoftwareLists are addressed in these 2 INIs. Doesn't seem that the 2 INIs are getting the bulk of the Atari 2600 set. I see that thegamesdb has Genre info for most of the Atari 2600 set. Wondering if this portion of the scraping is also being currently affected along with the overview TXTs

Had a feeling the blank overview txt files was probably just an API issue or something changing in the scraper; I tried every-which-way to get them pulled from thegamesdb to no avail. Hopefully, someone is on the case and it'll be fixed soon.

Quickie art question: I'm currently using the MAME SoftwareList non-merged romset for my Atari 2600. Over the years I've obtained various art and video sets from various sources with various naming conventions, i.e., MAME 8.3, No-Intro, Goodsets, etc. If/when assigning multiple art sources in AM, will AM use any "fuzzy logic" to look at the game name to grab the appropriate art/video and copy into the destination folder with my current MAME 8.3 naming convention, or do I need to use a 3rd party util to rename first?
Thanks again for the assist progets!!

Yes, catver.ini and players.ini can be used in newer version of mame that have mess merged as long as they are up-to-date versions that contain the information. nplayers.ini is outdated and no longer needed since this info can now be taken from the mame.xml. I am also certain about the paths unless something has change in the past 6 months.

No, there is no fuzzy logic on existing art matching with AM. The name is a 100% match (except the file extension) or it's not recognized. You can use 3rd party tools to rename or use the built-in scraping feature of AM to get artwork that matches from thegamesdb.net (this requires the proper configuration of your emulator.cfg files).