igir icon indicating copy to clipboard operation
igir copied to clipboard

Feature: update console support

Open juliadin opened this issue 2 years ago • 11 comments

I am currently going through the lists of supported consoles and adding things, fixing things.

I am also introducing the {console} token that is replaced with the more or less canonical name of the console. I hope that’s ok. It’s a more specific way of doing things than the —dir-dat-name which largely depends on the dat creators view on the name (which differs between groups). I tried to get the different names from different regions into one string, trying to respect POSIX and Windows file system limitations. It would be useful for my collection at least, feel free to shoot the idea down though :).

juliadin avatar Dec 03 '23 07:12 juliadin

:test_tube: Branch testing instructions

This pull request can be tested locally with the following command:

npm exec --yes -- "github:juliadin/igir#feature_update_console_support" [commands..] [options]

Comment generated by the Pull Request Commenter workflow.

github-actions[bot] avatar Dec 03 '23 07:12 github-actions[bot]

I have a list with about 200 names of consoles to canonicalize (generated from parsing hundreds of dat files that were available to me). Funnily most of them are supported by batocera or libretro in some capacity, some have standalones available ... I had a look at what daijisho offers as presets and I am trying to filter the most obscure stuff out but I think it wouldn't hurt to have canonical names for most of them.

juliadin avatar Dec 06 '23 16:12 juliadin

@emmercm Would be nice to know if you approve of the canonical name via {console} and if so: which name should I choose? I am tending towards using the name from the country where the device was developed, excluding (Super)Famicom/(S)NES, Genesis/Megadrive etc where the popularity of both names is overwhelming.

juliadin avatar Dec 06 '23 16:12 juliadin

@juliadin I scanned through the diff so far and it looks good to me. I would probably personally err on the side of using console names copied & pasted from No-Intro DATs, as those are seemingly the most used DATs these days.

Do you have any consoles you're not sure about?

emmercm avatar Dec 06 '23 22:12 emmercm

Something worth thinking about @juliadin is what is the use case for this over {datName}? Maybe it would help sort ROMs when not using DATs, but it would likely drop a lot of data if it can't find an appropriate {console} using filename extensions. Whatever we do here will be just as opinionated as the naming used in DATs, and it might be best to encourage people to just use DATs that they prefer best.

emmercm avatar Dec 06 '23 22:12 emmercm

@juliadin I scanned through the diff so far and it looks good to me. I would probably personally err on the side of using console names copied & pasted from No-Intro DATs, as those are seemingly the most used DATs these days.

Do you have any consoles you're not sure about?

Thanks, yes. The Odyssey 2 aka Philips G7000 aka Philips Videopac (not +) for example ...

juliadin avatar Dec 07 '23 08:12 juliadin

Something worth thinking about @juliadin is what is the use case for this over {datName}? Maybe it would help sort ROMs when not using DATs, but it would likely drop a lot of data if it can't find an appropriate {console} using filename extensions. Whatever we do here will be just as opinionated as the naming used in DATs, and it might be best to encourage people to just use DATs that they prefer best.

The usecase I was thinking of was when using DATs from multiple sources (like No-Intro + some aftermarket DATs) the naming conventions might differ and that causes 'some mess'. I don't know yet if it is really worth the trouble but when for example using some metadats from libretro together with No-Intro and Redump, I ended up with a lot of very similarily named folders.

juliadin avatar Dec 07 '23 08:12 juliadin

In the end this is https://xkcd.com/927/ all over again but the usecase would be that by using regex igir could bring many opinionated namings into one opinionated naming ... I still think it is worth the work.

juliadin avatar Dec 07 '23 09:12 juliadin

I see the use case for mixing multiple input DATs, though I typically don't because it's highly likely duplicate ROMs will be output with different filenames. Though there is normally not a ton of overlap between No-Intro and Redump.

I'm good with this if you are, I don't see a ton of harm in it, and I think documentation will go a long way toward clearing up any confusion.

emmercm avatar Dec 07 '23 22:12 emmercm

After thinking about it for a while I guess you are right. While the main task of the pull request still makes sense (adding as many .dat Regexes for game systems as possible and finding out if any supported emulation devices can work with these) my draft for a new tag doesn't ... it just adds to the confusion that working with .dats can be as it is. What turned it around for me was that especially the dats for working with game systems that support multiple formats or where formats matter this makes things harder, not easier. It seemed like a good idea and seemed to solve a problem I thought I had. Thanks for helping me think about it again :).

juliadin avatar Dec 09 '23 19:12 juliadin

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.09%. Comparing base (ae85f69) to head (a8f25d2). Report is 369 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #846      +/-   ##
==========================================
- Coverage   93.37%   93.09%   -0.28%     
==========================================
  Files          86       86              
  Lines        5374     5374              
  Branches     1230     1230              
==========================================
- Hits         5018     5003      -15     
- Misses        338      352      +14     
- Partials       18       19       +1     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Aug 31 '24 00:08 codecov[bot]

:lock: Inactive pull request lock

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Comment generated by the GitHub Lock Issues workflow.

github-actions[bot] avatar Sep 30 '24 02:09 github-actions[bot]