Author Topic: Group by genre, then console generation, then game instead?  (Read 4315 times)

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
I've played around with Attract-mode last year. And I've actually set up NES, SNES, Genesis, and mame games. But it's not really what I wanted (see title). Now, one and a half years later, is that now possible? I know it's still version 2.6.1; but maybe there is a work around now, like some kind of xml/spreadsheet way.
« Last Edit: June 09, 2021, 04:26:26 AM by Leecher »

hermine.potter

  • Hero Member
  • *****
  • Posts: 767
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #1 on: June 09, 2021, 08:22:23 AM »
there exists different threads. search terms:
Platform Categories
submenu
AM Version : 2.6.1
Input : Mad Catz Brawlstick; Mouse; Keyboard; Xbox360 Wireless
Cabinet : Yes
OS : Windows10 Pro
System : Dell Precision T3500 ; Intel X5650 ; 12GB RAM

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #2 on: June 09, 2021, 07:21:49 PM »
Thank you so much hermine.potter

Okay. I found this thread:
http://forum.attractmode.org/index.php?topic=3933.0
which redirects me to this thread:
http://forum.attractmode.org/index.php?topic=3619.msg25044#msg25044
And after reading it, I think it's what I wanted.


But I still have some concerns, that I should probably ask here.

Genre:
Since I want to start at "Genre" as the main display, I would probably want to have custom genres since my idea of a game's genre may not be the same as the info source.

A good example is metroid from thegamesdb.net, there, the genre is "Action, Adventure, Platform". But let's say I want it to be "Metroidvania". So, I edited NES.txt, but the display only shows "unknown" instead of "Metroidvania". And when I regenerate the rom list (let's say I've added new games), it changes the genre back to "Action, Adventure,  Platform".

How can I make this work?


Skipping the console selection:
My vision for my attract-mode is that users like me will run it with a certain game or a certain type(genre) of game in mind. Like, "I feel like playing Star Fox 64 (N64) right now, oh, wait, I think I'll play Panzer Dragoon (sega saturn) instead." Only partitioning it by console generation, because it's kind of unfair for the old games to be in the same list with the newer games. So, in the example, I'd probably need a list of games that have both N64 and Sega Saturn games in it (N64.txt and Saturn.txt combined?).

How can I make this work?
« Last Edit: June 09, 2021, 08:35:54 PM by Leecher »

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #3 on: June 09, 2021, 08:19:06 PM »
This master list concept should help you get AM setup like you want http://forum.attractmode.org/index.php?topic=1165.msg8455#msg8455.

You can use the "tagging" feature that is described there to create lists like "Metroidvania".

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #4 on: June 09, 2021, 10:53:13 PM »
Thank you so much progets

At first I thought the multilevel display and the master romlist+filtering+tagging is not compatible, but after looking at it longer I think I can now make it work. I'll update you guys in this thread once it's done.

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #5 on: June 13, 2021, 12:34:02 AM »
I'm sorry but I deleted your post by mistake. I should be able to get it back but can't for some reason.

You can get what you want by manually (or though the GUI) creating many displays that each contain global rules in the attract.cfg.
« Last Edit: June 13, 2021, 11:42:43 PM by progets »

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #6 on: June 13, 2021, 01:48:00 AM »
Did I post something bad? Sorry, progets.

Okay. I'll rewrite it. The original plan/design that I want is to be able to select a genre, and then, select a generation, I don't want to select the console, I want all the consoles of the same generation in the same list. In other words, I want it multilevel (3 levels of display), and I want it grouped by genre, then by generation.

Code: [Select]
2D Side-scrolling Platformer
3rd Gen
Plumber Brothers 1
Plumber Brothers 2
Plumber Brothers 3
4th Gen
Plumber Brothers World 1
Plumber Brothers World 2
Fast Hedgehog 1
Fast Hedgehog 2

2D Top-down Action
3rd Gen
Elf Princess 1
4rd Gen
Elf Princess 3


I could do what you said, "manually (or though the GUI) creating many displays", that's probably what I'll do if what I want is impossible in the current version of AM. But that would mean it's just going to be 2 levels of display, not 3, which is sad.
« Last Edit: June 13, 2021, 02:49:56 AM by Leecher »

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #7 on: June 13, 2021, 08:38:52 PM »
You didn't post anything bad. I replied to your post but then realized it wouldn't work so I deleted it. I was half asleep and deleted your post as well by mistake.

Here's an example of what you can do to get the three levels you want. It might need a little tweaking to get it right but it definitely can be done.

Action.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
1st_Gen_Action;1st_Gen;@;;;;;;;;;;;;;;;;;;
2nd_Gen_Action;2nd_Gen;@;;;;;;;;;;;;;;;;;;

Platform.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
1st_Gen_Platform;1st_Gen;@;;;;;;;;;;;;;;;;;;
2nd_Gen_Platform;2nd_Gen;@;;;;;;;;;;;;;;;;;;

1st_Gen_Action.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
All Systems;1st_Gen_Action;@;;;;;;;;;;;;;;;;;;

2nd_Gen_Action.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
All Systems;2nd_Gen_Action;@;;;;;;;;;;;;;;;;;;

1st_Gen_Platform.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
All Systems;1st_Gen_Platform;@;;;;;;;;;;;;;;;;;;

2nd_Gen_Platform.txt romlist
Code: [Select]
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
All Systems;2nd_Gen_Platform;@;;;;;;;;;;;;;;;;;;

Now you need to create many "Displays" with global filters to show the games how you'd like.

Code: [Select]
display All Systems
layout               <anything>
romlist              All Systems
in_cycle             no
in_menu              no

display Action
layout               <anything>
romlist              Action
in_cycle             no
in_menu              yes

display Platform
layout               <anything>
romlist              Platform
in_cycle             no
in_menu              yes

display 1st_Gen_Action
layout               <anything>
romlist              All Systems
in_cycle             no
in_menu              no
global_filter
rule                 Emulator contains NES|SMS       
rule                 Category contains Action

display 1st_Gen_Platform
layout               <anything>
romlist              All Systems
in_cycle             no
in_menu              no
global_filter
rule                 Emulator contains NES|SMS 
rule                 Category contains Platform

display 2nd_Gen_Action
layout               <anything>
romlist              All Systems
in_cycle             no
in_menu              no
global_filter
rule                 Emulator contains SNES|GENESIS   
rule                 Category contains Action

display 2nd_Gen_Platform
layout               <anything>
romlist              All Systems
in_cycle             no
in_menu              no
global_filter
rule                 Emulator contains SNES|GENESIS   
rule                 Category contains Platform



Your emulator names need to match your system names in this example for the filtering to work properly.

You also need to Configure-->General-->Startup Mode=Show Displays Menu
« Last Edit: June 14, 2021, 05:17:49 PM by progets »

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #8 on: June 14, 2021, 02:16:57 AM »
Thank you progets. But I'm still a bit confused.

The "display menu" will call the "action", "platform" display.
The "action", "platform" display will call the generation.txt, a shortcut to the "1st_gen", "2nd_gen" display.
"1st_gen", "2nd_gen" display will call "All systems" display.

I'm confused. When are "1st_Gen_Action", "1st_Gen_Platform", "2nd_Gen_Action", "2nd_Gen_Platform" called?

Are they supposed to be called in 1st_Gen.txt and 2nd_Gen.txt?

Also, is it possible to filter the "action", "platform" in the action, platform displays? And then, filter the emulators in the "1st_gen", "2nd_gen" displays? I don't know. I just thought that's the way it would go; sorry if I'm presumptuous.
« Last Edit: June 14, 2021, 03:17:57 AM by Leecher »

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #9 on: June 14, 2021, 05:21:07 PM »
You have the right idea and I did need to made adjustments to the post above. Give it a try and see if it works for you.

Filters get applied only to the display you're viewing. They are not combined with other displays. If you want a three level display with genres first, there isn't any point to applying filters to "action" or "platform".
« Last Edit: June 14, 2021, 06:16:45 PM by progets »

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #10 on: June 14, 2021, 06:53:20 PM »
Thank you again progets.

After studying your code. I can see now that it's a one-to-many situation, and not one-to-one as I Imagine it in my head.

I thought I only have to have one "action" "platform" display, and one "1st gen" "2nd gen" display. And AM will generate all the filtered list in the background.

Doing it one-to-many feels like a lot of manual work; I mean, there's gonna be multiple "1st gen" "2nd gen" and other gen displays. And adding genres will also multiply the "gens" displays.

Thank you so much progets for helping me reach this point. But I'm just gonna give up from here. And just group the games by "genre".

Or maybe I'll do it later. I just got overwhelmed. I also probably need to put comments inside my cfg file. You do it with the "#" sign, right?
« Last Edit: June 14, 2021, 07:15:47 PM by Leecher »

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #11 on: June 14, 2021, 09:05:14 PM »
The way you want to display your games is unique and I've never seen it in any front end. This is the reason there are bunch of extra steps to get there. If you have command line or scripting skills you can automate a lot of this. If these aren't an option I don't think it would take very much time to accomplish, it would just be a lot of copy and paste.

You could start by completely making your Action genre work. Next you can copy and paste the "Action.txt" romlist 20 times and simply change the name of the file to <genre.txt>, this would take just a few minutes. For the other romlists you would copy, paste and rename, then change just a word or two in each file (you can use find and replace). For the attract.cfg file you could copy and paste all the "Action" Displays, highlight the newly pasted section and then use a find and replace to change "Action" to your next genre like "Platform".

Yes, the "#" should work as a remark/comment in the attract.cfg.

Good luck and have fun however you decide to setup your front end.

P.S. You can make a copy of your existing AM and paste it to try any changes. As long as you don't store your emulators, roms or artwork inside the "attract" folder it shouldn't be very big. I always do this before upgrading or making big changes to my configurations so I can just go back to the original if thing don't work right.
« Last Edit: June 15, 2021, 12:13:33 AM by progets »

Leecher

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Re: Group by genre, then console generation, then game instead?
« Reply #12 on: June 15, 2021, 12:48:34 AM »
I did it. The build currently has 21 games, 8 genres, and 4 generations, with videos. Thanks progets.

I just wish it could shuffle the compatible videos just like if it's grouped by system. It can be solved with duplicate videos, but... nah.

Thanks progets.


Can AM refer to "All Systems" (or something else) for the display menu videos? Like my "action" display refers to "All Systems" but filtered to just show the action video game videos? And then, my "2nd gen Action" display refers to "All systems" but filtered to just show 2nd gen action video game videos? I don't know what I'm talking about.

Also, I don't think I should create a new thread for this question, because it could be too unique, as you said.
« Last Edit: June 15, 2021, 01:26:42 AM by Leecher »