batocera-linux/batocera-emulationstation

Feature request: allow grouping of multiple game versions

aderumier opened this issue · 6 comments

Issue description

Hi,
I'm currently working on my amiga collection,
and a lot of games have multiple version (mosly different languages, but sometime new revisions).

It could be great to have the possibility to regroup them in 1 game in the list, but be able to choose the version when launching the gaming.

example:

    <game>
        <path>./Fascination_v1.2.lha</path>
        <name>Fascination</name>
        <image>./images_screenshot/Fascination-01.png</image>
        <mix>./images_screenshot/Fascination-01.png</mix>
        <marquee>./images_marquee/Fascination.png</marquee>
        <wheel>./images_marquee/Fascination.png</wheel>
        <thumbnail>./images_boxart/Fascination.png</thumbnail>
        <boxart>./images_boxart/Fascination.png</boxart>
        <cartridge>./images_cartridge/Fascination-01.jpg</cartridge>
        <video>./video/Fascination.mp4</video>
        <manual>./manual/Fascination.pdf</manual>
        <rating>0.6</rating>
        <releasedate>19910101T000000</releasedate>
        <developer>Coktel Vision</developer>
        <publisher>Coktel Vision</publisher>
        <genre>Adventure</genre>
        <players>1+</players>
    </game>
    <game>
        <path>./Fascination_v1.2_Fr_2485.lha</path>
        <name>Fascination (French)</name>
        <parent>Fascination</parent>
   </game>
    <game>
        <path>./Fascination_v1.2_It_2485.lha</path>
        <name>Fascination (Italian)</name>
        <parent>Fascination</parent>
   </game>

Only define infos/medias on the parent, and only path/alternativename in the child

for sure it is a good idea :)
it works also on console systems ...

Kodi is already doing that (saga) with the tag SET ....

<id>tt3076658</id>
<title>Creed - L'Héritage de Rocky Balboa</title>
<rating>7.9</rating>
<originaltitle>Creed</originaltitle>
<set>Rocky</set>
<year>2015-11-25</year>
<votes>485</votes>

each film has a complete XML file but with this tag to group them.
it is different, not for the same purpose but the idea is lamost the same.

The problem @aderumier for me, with your idea, and exemple, ... is that for my part i love put a different cover for each game country, like in reality.
And some time other values are different, like RELEASE YEAR, etc ....
your idea is fine but if a children has a different value, ES should show it and not the parent one.

I think we could inherit values (media,rating, release...) by default from parent, and allow to override them in each child ?

Also, It can work with subfolder for my usecase, because

  • I want to be able to have video, rating,..and others fields on the main parent game. (to be able to do dynamic collection, ordering, ...)
  • I want to display a simple text list of differents versions, and not a wheel/marquee (wheel/marquee only on parent)

Im interested in this feature too..

The T-En set for PlayStation for example consists of many different versions of FF7 (japan) with various different patches.. it would be nice to be able to group all of these together and then have the ability to specify one when launching..

Example:

Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Canon] [Chicago] [HardType]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Canon] [Chicago]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Canon] [HardType]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Canon]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Chicago] [HardType]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [Chicago]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized] [HardType]
Final Fantasy VII (USA) [T-En by GreenGoblin R06g v08-06-2021] [Relocalized]
Final Fantasy VII (USA) [T-En by ProjectXsent v1.01] [Steam Translation]

Could be usefull too for snes-msu where they are multiple versions by game or mame bootlegs/hacks, where you can have differents versions.

I'll try to look at emulastation station code to see if it could be easy to implement with a simple dropdown menu to chooses the version we want.

They are already a "find similar games" option in game menu, displaying all games from all systems with same name.

I think we could do something similar, displaying games with same name in the system of the main games.
This should display hidden games too.
like this we can simply set hidden=true for alternate versions in gamelist.xml, and no need to define explicit grouping, we just need to display games with same name with the ()

<game>
        <name>Fascination</name>
        <path>./Fascination_v1.2.lha</path>
        <image>./images_screenshot/Fascination-01.png</image>
        <mix>./images_screenshot/Fascination-01.png</mix>
        <marquee>./images_marquee/Fascination.png</marquee>
        <wheel>./images_marquee/Fascination.png</wheel>
        <thumbnail>./images_boxart/Fascination.png</thumbnail>
        <boxart>./images_boxart/Fascination.png</boxart>
        <cartridge>./images_cartridge/Fascination-01.jpg</cartridge>
        <video>./video/Fascination.mp4</video>
        <manual>./manual/Fascination.pdf</manual>
        <rating>0.6</rating>
        <releasedate>19910101T000000</releasedate>
        <developer>Coktel Vision</developer>
        <publisher>Coktel Vision</publisher>
        <genre>Adventure</genre>
        <players>1+</players>
</game>
<game>
        <name>Fascination (French)</name>
        <hidden> true</hidden>
        <path>./Fascination_v1.2_Fr_2485.lha</path>
        <image>./images_screenshot/Fascination-fr.png</image>
        ....
</game>
<game>
        <name>Fascination (Italian)</name>
        <hidden> true</hidden>
        <path>./Fascination_v1.2_It_2485.lha</path>
        <image>./images_screenshot/Fascination-it.png</image>
        ....
</game>

the "find similar games" display a BasicGameListView, I think we should do the same,
but also, we could extend with adding the possibility to use other view , like a GridGameListView for example, if user want to display cover or of game. (could be a different game language version, with a differ cover or each game
This should fill the need of @Darknior