Attract-Mode Support Forum

Attract-Mode Support => General => Topic started by: j.e.f.f on October 07, 2020, 02:40:46 PM

Title: All Games List?
Post by: j.e.f.f on October 07, 2020, 02:40:46 PM
Currently I have a separate Displays, each with its own associated games list for each system (e.g., one for NES, one for Neo Geo, etc).  I’d like one more Display that combines all games from all other displays. Is this possible?

Thanks!
 - Jeff
Title: Re: All Games List?
Post by: progets on October 07, 2020, 04:19:52 PM
Step 1 here http://forum.attractmode.org/index.php?topic=1165.msg8455#msg8455 (http://forum.attractmode.org/index.php?topic=1165.msg8455#msg8455)
Title: Re: All Games List?
Post by: j.e.f.f on October 08, 2020, 07:39:41 AM
Thanks @progets

I was afraid that that was going to be the only option (was hoping there was an automatic way).  I've heavily modified my games lists, so re-scanning will undo all the work I did.  I'll try manually combining all of the games into a single list using a text editor instead.

Nice that I can then filter the master list for each Display, so at least I won't have to manage both the master list and also the individual games lists.
Title: Re: All Games List?
Post by: dmmarti on October 08, 2020, 07:54:41 AM
You can write DOS Batch scripts (or korn shell if you're using a linux OS) to automatically combine all of the romlist text files into a single file, instead of manually launching each one, copy/pasting into a master list, etc.

That way, the automation script will copy all individual romlist file entries and put them into a single romlist file and save you a ton of time (no rescraping needed this way).
Title: Re: All Games List?
Post by: zpaolo11x on October 08, 2020, 08:22:47 AM
Nice that I can then filter the master list for each Display, so at least I won't have to manage both the master list and also the individual games lists.

There are people here, myself included, who are really into this "master romlist" stuff. The suggestion is that you create one huge single romlist, merging together all your lists. Then you can edit your displays so to add a "default filter" to select only games with a certain system. You can even add a "is available" filter so that your romlist will stay fixed as a database and each time you add a rom, you'll see the new game in the right display.

Other advantages of master romlist are: create a "All favorites" display with all the favorites from all the systems, create collections (all Mario games, all Street Fighter games) etc. I don't suggest using the whole romlist "as is" in a display and add filters to that, because it will be slow in launch and update, but with "default filters" everything will be pretty fast
Title: Re: All Games List?
Post by: j.e.f.f on October 08, 2020, 08:50:16 AM
I don't suggest using the whole romlist "as is" in a display and add filters to that, because it will be slow in launch and update, but with "default filters" everything will be pretty fast

My thought was to use the master gameslist in its entirety in one display primarily so that I can search against every game included in AM.  Every other Display would represent a "system" (e.g., NES, Genesis, etc.), and it would be the master list filtered list to that particular system

When you say "default filters" are you referring to the global filter you specify in the Display config?  Or something else?  I don't plan on using dynamic filtering in my Displays... none of my current romlists are all that long (about 100-150 games per system, max, even in my Arcade folder). I have no desire to include all 6000+ mame roms, for example, so the ability to filter beyond system, or favourites is not something I need.

Which leads me to my current problem... There is currently nothing in any given rom list to indicate what system it belongs to -- I'm currently using the separate romlists to categorize a game into a particular system. I don't want to filter on emulator, because there are plenty of games that need a specific emulator that is different than most of the games for the particular system, and in some cases, I'm using the same emulator across multiple systems (e.g., PicoDrive for both Sega Mastersystem and Genesis).  Also, I try out different emulators all the time, so it's a bit too transient of a field to filter against, and would require constant maintenance to keep the Display filters up to date.  I'd like to be able to filter on some other field.

Of all of the possible columns in all my romlists, the "Extra" column is empty in all cases.  If I use that field to indicate the System the game belongs to, will that break anything else?  What is the "Extra" column normally used for in AM?

Alternatively, can I just add a column to the rom list and use that?  Will it be available to set a filter against within AM?

Thanks!
 - Jeff
Title: Re: All Games List?
Post by: progets on October 08, 2020, 06:03:17 PM
You can easily create tag files for each system to filter. I personally use the emulator field for system filtering. You can accomplish this is several other ways too. I also avoid manually modifying the romlists because that means you can't easily generate new romlists if needed.

There are many ways to setup your system. A lot of things are just a matter of preference.
Title: Re: All Games List?
Post by: Ryugah on October 08, 2020, 06:39:26 PM
about the "master list or favourite list" once you generated it and favourite your games with filter

what happens when you want to add a new game to that list?

or how do you do that? for example

-got the master list merged with a lot of systems
-want to add another PC GAME but dont want to scan the ENTIRE librery again for one game

what would be the correct way to do so?
Title: Re: All Games List?
Post by: progets on October 08, 2020, 07:14:48 PM
Again, there are many ways to accomplish this.

Some people will always start with complete romlists so there aren't games ever added/changed. Then they create a global filters to only display games they actually have roms for.

Some people would manually edit the two romlist.txt to add the game entry to the system list and the master list.

Some people import romlists from other systems like HyperSpin.

Some people create romlists from the command line using filter switches when they are built.

Attract-Mode is very versatile and you may do similar things in different ways. Everyone has different preferences. My advice is plan/decide how you want your system to work and then determine the best way for you to get there. I spent a lot of time to get my system where I wanted it and barely ever make any changes to it.

Title: Re: All Games List?
Post by: zpaolo11x on October 09, 2020, 12:12:03 AM
When you say "default filters" are you referring to the global filter you specify in the Display config? 

Exactly!

Quote
Or something else?  I don't plan on using dynamic filtering in my Displays... none of my current romlists are all that long (about 100-150 games per system, max, even in my Arcade folder). I have no desire to include all 6000+ mame roms, for example, so the ability to filter beyond system, or favourites is not something I need.

If this is the case, you can probably use the whole romlist in a single display. My layout allows for system selection and filtering inside the display without having to reload anything but struggles with tens of thousands or roms... not your case though

Quote
Which leads me to my current problem... There is currently nothing in any given rom list to indicate what system it belongs to -- I'm currently using the separate romlists to categorize a game into a particular system. I don't want to filter on emulator, because there are plenty of games that need a specific emulator that is different than most of the games for the particular system, and in some cases, I'm using the same emulator across multiple systems (e.g., PicoDrive for both Sega Mastersystem and Genesis).  Also, I try out different emulators all the time, so it's a bit too transient of a field to filter against, and would require constant maintenance to keep the Display filters up to date.  I'd like to be able to filter on some other field.

When you define an emulator there's a field called "System Identifier", I use that to add System information to my romlists. I just put the name of the layout there, and when I generate merged romlists this is carried to the whole list so in some way it is transferred to the romlist. Just try to see where it's placed in your romlists.
I use that field in my layout to get System information for each game, so in a multi-system list one can sort or filter by system etc.
Title: Re: All Games List?
Post by: j.e.f.f on October 09, 2020, 05:44:22 AM
When you define an emulator there's a field called "System Identifier", I use that to add System information to my romlists. I just put the name of the layout there, and when I generate merged romlists this is carried to the whole list so in some way it is transferred to the romlist. Just try to see where it's placed in your romlists.
I use that field in my layout to get System information for each game, so in a multi-system list one can sort or filter by system etc.

Odd... All of my configured emulators have the System Identifier field filled, but none of my romslists, which were all initially generated by scanning, contain this information.  There's not even a column header defined for it. There is also no option for me to filter on it in the global filters. Is this something that an older version supported but the newest does not? I'm on version 2.6.1 (I believe, can't figure out where to verify this, but I downloaded and installed it in April, and I see that 2.6.1 was released in January.  So pretty sure I'm on 2.6.1)
Title: Re: All Games List?
Post by: zpaolo11x on October 09, 2020, 06:11:46 AM
You are right, I was partly misled: my emulators are named after the system too, but actually in the romlist there's not the system identifier, but the emulator name. The link between emulator and system identifier is in the emulator .cfg file.
Title: Re: All Games List?
Post by: rand0m on October 09, 2020, 01:54:01 PM
AFAIK system identifier info is used exclusively while scrapping by websites like gamesdb. As for the original question you can create a muti-system display by adding all the system you have already configured via AM settings > emulator. I am not sure if AM retains the info this way, same can be done via opening the files in text editor or excel. Keep in mind though that AM does not auto-update this multi-system list so you will need to update the multi-system everytime you make a change in any systemlist.

You can also create the master/ multi-system list and hide it from display and edit search module so it searches the multi-list and display the results.

As for identifying systems in romlists you can either name the emulator.cfg exactly like the system (e.g. nintendo_entertainment_system.cfg, sega_genesis.cfg) or use any header/ field which is not being utilized like extra, buttons, clone_of etc. The headers deal exclusively with MAME so most fields are not usable elsewhere.


PS:  I've used some of the ides being discussed here. in my WIP theme here > http://forum.attractmode.org/index.php?topic=3199.0. Going through its docs might be helpful.
Title: Re: All Games List?
Post by: zpaolo11x on October 10, 2020, 01:18:28 AM
AFAIK system identifier info is used exclusively while scrapping by websites like gamesdb.

System Identifier is used also to get the "Info.System" data and the [System] magic token. It is not saved in the romlist, but the romlist carries the emulator name, and the emulator .cfg has the system info, so probably at runtime AM links the two.
I just made a quick test, created an emulator named "superemu" with a "snes" system identifier. My layout, which uses Info.System to create some elements, correctly interprets that as a SNES game
Title: Re: All Games List?
Post by: j.e.f.f on October 10, 2020, 02:15:03 AM
As for identifying systems in romlists you can either name the emulator.cfg exactly like the system (e.g. nintendo_entertainment_system.cfg, sega_genesis.cfg) or use any header/ field which is not being utilized like extra, buttons, clone_of etc. The headers deal exclusively with MAME so most fields are not usable elsewhere.

This is what I ended up doing,  but in my case it was the prefix of the emulator, as in many cases I'm using multiple emulators for a system.
e.g.:

Code: [Select]
Arcade - FB Alpha.cfg
Arcade - FBNeo.cfg
Arcade - MAME 2003.cfg
etc.

Then I set global filters for each system like
Code: [Select]
Emulator contains Arcade
Of course I didn't fully think this through... as I ended up with overlap between a few systems:  For example, I named Nintendo emulators
Code: [Select]
NES - <emulator>.cfgand Super Nintendo emulators
Code: [Select]
SNES - <emulator.cfg>
When I filtered with `Emulator contains NES` it also picked up my SNES games.  (Also a similarly with `Sega` and `Sega Genesis`).  Rather than going through the process or renaming those emulators again and doing a search and replace all over again in my romlists, I ended up making the rules a bit more complicated than they needed to be.  For Nintendo, I needed to do two rules:
Code: [Select]
Emulator contains NES
Emulator not_contains SNES
::)

System Identifier is used also to get the "Info.System" data and the [System] magic token.

This is how I plan on using it on the all games list so that multiple listings of the same game can be distinguished from each other


In any case, it all works now!  Thanks for everyone's help.
Title: Re: All Games List?
Post by: Ryugah on October 21, 2020, 01:26:08 PM
Again, there are many ways to accomplish this.

Some people will always start with complete romlists so there aren't games ever added/changed. Then they create a global filters to only display games they actually have roms for.

Some people would manually edit the two romlist.txt to add the game entry to the system list and the master list.

Some people import romlists from other systems like HyperSpin.

Some people create romlists from the command line using filter switches when they are built.

Attract-Mode is very versatile and you may do similar things in different ways. Everyone has different preferences. My advice is plan/decide how you want your system to work and then determine the best way for you to get there. I spent a lot of time to get my system where I wanted it and barely ever make any changes to it.


the second options seems pretty easy but i didnt work i add the game to the system list and master list
(the game appeared in the system list) but in the "all favourite" game list didnt appear
i also tagged the game as favourite but doens't show up.
Title: Re: All Games List?
Post by: progets on October 21, 2020, 09:59:52 PM
the second options seems pretty easy but i didnt work i add the game to the system list and master list
(the game appeared in the system list) but in the "all favourite" game list didnt appear
i also tagged the game as favourite but doens't show up.

To use the first option you can add a global filter (this IMO is the best option if you plan to add roms all the time)
Code: [Select]
        global_filter
                rule                 FileIsAvailable equals 1

You do understand that the "master list" favorites/tagging is a different file from the "system list" favorites/tagging file. Please read the entire "master list" thread to better understand how it works (by people asking questions) and how you can hide of all your system lists but still show per systems lists using only the master list and filters (which eliminates the multiple favorites/tagging list issue).
Title: Re: All Games List?
Post by: Ryugah on October 23, 2020, 09:46:08 AM
yeah well i kind of fix the problem thanks to you! but now it appears as "the last game" in list i would love to arrange all my games by letter but when i try to do so nothing seems to change.
Title: Re: All Games List?
Post by: progets on October 24, 2020, 12:26:12 AM
yeah well i kind of fix the problem thanks to you! but now it appears as "the last game" in list i would love to arrange all my games by letter but when i try to do so nothing seems to change.

Try a "sort by" global filter or place your manual entry in the correct alphabetical place in the romlist.
Title: Re: All Games List?
Post by: akafox on October 25, 2020, 04:03:28 PM
Something I can actually talk about and not seem like an idiot. xD

The system (ex. SNES, megadrive, mame, ect.) need to be there because it tells AM what emulator to use (in a sense) when launching the game.

You can combine ALL your games and systems into one list and filter them by genre or player or whatever you want

For example if you combine them all and filter by fighter then you get ALL the fighting games from ALL the systems (clay fighter..weaponlord, ect.) in with your street fighter and tekken. or you can filter them by the number of players so bomerman or general chaos gets added in with your mutant ninja turtles...

But yes you have to fill in the missing info with ini files..OR scrape the info from the games database (gamebd.net) or you can just add it manually. Using ini files is faster and can be done without an internet connection. Scraping takes a little longer and you MUST be connected to the internet.

What I used to do was just copy each of my game lists into one master list. Thus I had DICE (think pong and such) and Daphne (think dragon's lair. (Although I found the default setup for daphne with AM does have a few problems so I made them all individual "systems" then added them to one list and ran them that way.)) I added atomiswawe, naomi, sega model 1,2,3 and last I would add TaitoX (well on windows at least.)

That way all your "arcade" systems are in one list. Make is easy on you. 1. it's just easier. 2. it keeps people from asking you how to get to so-and-so game every 30 minutes! (you can do all this with emulation station on the pi too (or with AM on the pi))

I think AM will make a master list for you. you can tailor your list however you like. AM is very  flexible when it comes to list making. I have been wanting to do a write up...but been dragging my tail or trying to get it back lately…