batocera-linux / batocera-emulationstation

MIT License
316 stars 244 forks source link

Feature request: allow grouping of multiple game versions #1626

Open aderumier opened 9 months ago

aderumier commented 9 months ago

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

Darknior commented 9 months ago

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.

aderumier commented 9 months ago

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

aderumier commented 9 months ago

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

geogolem commented 7 months ago

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]
aderumier commented 4 months ago

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.

aderumier commented 4 months ago

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