Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User contributions to Parser Presets (Post yours here!) #98

Open
kencinder opened this issue Apr 16, 2018 · 60 comments
Open

User contributions to Parser Presets (Post yours here!) #98

kencinder opened this issue Apr 16, 2018 · 60 comments
Assignees
Labels

Comments

@kencinder
Copy link
Collaborator

kencinder commented Apr 16, 2018

Since this is now a thing, and a number of presets have been added, I'm creating this to gather further emulator presets that I can add, in a ticket meant just for that.

Please use the "Copy Configuration to Clipboard" button in the bottom right of your parser(s) and paste them here AS-IS with a space between each parser entry (makes it easier to read).

Make sure before posting it, that it actually functions, from testing to launching a game with Steam.

Do not however worry about extra things you may have added to customize your parser, I will weed that out - I use an IPS flag for my Retroarch parsers for instance, as well as local images and different title modifiers etc than most users would.

@FrogTheFrog FrogTheFrog changed the title [OnGoing] User contributions to Parser Presets (Post yours here!) User contributions to Parser Presets (Post yours here!) Apr 16, 2018
@ghost

This comment was marked as resolved.

@kencinder

This comment was marked as resolved.

@kencinder

This comment was marked as resolved.

@mrd77

This comment was marked as resolved.

@kencinder

This comment was marked as resolved.

@Mattiams

This comment was marked as resolved.

@kencinder

This comment was marked as resolved.

@noah978

This comment was marked as resolved.

@kencinder

This comment was marked as resolved.

@noah978

This comment was marked as resolved.

@doZennn doZennn pinned this issue Sep 12, 2019
@HEspoke

This comment was marked as resolved.

@doZennn doZennn unpinned this issue May 27, 2020
@doZennn doZennn pinned this issue May 27, 2020
@cbartondock

This comment was marked as resolved.

@cbartondock

This comment was marked as resolved.

@cbartondock

This comment was marked as resolved.

@pyrox0

This comment was marked as resolved.

@Xirious

This comment was marked as resolved.

doZennn pushed a commit that referenced this issue Jan 10, 2021
* Create Arcade.json

Create arcade.json to move MAME into it and add Retroarch FBNeo

* Delete MAME.json

Moved MAME presets to Arcade.json

* Update Amstrad CPC.json

Add 7zip file extensions to Retroarch presets

* Update Atari 2600.json

Add 7zip file extensions to Retroarch presets

* Update Atari 5200.json

Add 7zip file extensions to Retroarch presets

* Update Atari 7800.json

Add 7zip file extensions to Retroarch presets

* Update Atari Jaguar.json

Add 7zip file extensions to Retroarch presets

* Update Atari Lynx.json

Add 7zip file extensions to Retroarch presets

* Update Atari ST+STE+TT+Falcon.json

Add 7zip file extensions to Retroarch presets

* Update Bandai WonderSwan+Color.json

Add 7zip file extensions to Retroarch presets

* Update Coleco ColecoVision.json

Add 7zip file extensions to Retroarch presets

* Update GCE Vectrex.json

Add 7zip file extensions to Retroarch presets

* Update Mattel Intellivision

Add 7zip file extensions to Retroarch presets

* Update Microsoft DOS.json

Add Retroarch DOSBox Pure as per #98 (comment)

* Update Microsoft MSX.json

Add 7zip file extensions to Retroarch presets

* Update NEC PC Engine CD+TurboGrafx CD.json

Add 7zip file extensions to Retroarch presets

* Update NEC PC Engine SuperGrafx.json

Add 7zip file extensions to Retroarch presets

* Update NEC PC Engine+TurboGrafx 16.json

Add 7zip file extensions to Retroarch presets

* Update NEC PC-98.json

Add 7zip file extensions to Retroarch presets

* Update NEC PC-FX.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo 3DS.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo 64.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo DS.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo GameBoy Advance.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo GameBoy Color.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo GameBoy.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo GameCube.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo NES.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo SNES.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo Virtual Boy.json

Add 7zip file extensions to Retroarch presets

* Update Nintendo Wii.json

Add 7zip file extensions to Retroarch presets

* Update Panasonic 3DO.json

Add 7zip file extensions to Retroarch presets

* Update SNK Neo Geo Pocket+Color.json

Add 7zip file extensions to Retroarch presets

* Update Sega 32X.json

Add 7zip file extensions to Retroarch presets

* Update Sega CD+Mega CD.json

Add 7zip file extensions to Retroarch presets

* Update Sega Dreamcast VMU.json

Add 7zip file extensions to Retroarch presets

* Update Sega Dreamcast.json

Add 7zip file extensions to Retroarch presets

* Update Sega Game Gear.json

Add 7zip file extensions to Retroarch presets

* Update Sega Genesis+Mega Drive.json

Add 7zip file extensions to Retroarch presets

* Update Sega Master System.json

Add 7zip file extensions to Retroarch presets

* Update Sega SG-1000.json

Add 7zip file extensions to Retroarch presets

* Update Sega Saturn.json

Add 7zip file extensions to Retroarch presets

* Update Sony PlayStation Portable.json

Add 7zip file extensions to Retroarch presets

* Update Sony PlayStation.json

Add 7zip file extensions to Retroarch presets

* Update Spectravision International (SVI).json

Add 7zip file extensions to Retroarch presets
@g3rmg3rm

This comment was marked as resolved.

@Maleel

This comment was marked as resolved.

@ScarsonWiki

This comment was marked as resolved.

@MrGreenTea

This comment was marked as resolved.

@wiesshund

This comment was marked as outdated.

@jrobio
Copy link

jrobio commented Oct 10, 2022

Edit: I may revisit adding this @kencinder

Bottles. I've been having some poor luck with Lutris and Wine on my Steam Deck lately and moved over to Bottles because of it. I've had a much simpler and stable windows software experience since then.

I got this to work by consistently naming both the bottle and the program (Bottles allows you to alias executables) the exact same thing. Let me know if you have suggestions for improvements!

# Parser type
····Selected: Glob
# Configuration title
····Bottles_SD
# Steam category
····${Bottles}
# Steam directory
····${steamdirglobal}
# User accounts
····
····[x]: Skip found accounts with missing data directories
····[x]: Use account credentials
# ROMs directory
····/run/media/mmcblk0p1/Games/bottles/
# Executable
····/usr/bin/flatpak
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
····run --command=bottles-cli com.usebottles.bottles run -b ${title} -p ${title}
# Executable modifier
····"${exePath}"
# "Start In" directory
····
# User's glob
····${title}
# User's glob-regex
····null
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
# itch.io AppData Path Override
····null
# Uplay Directory Override
····null
····[ ]: Launch games via UPlay for online services
# Title from custom variable
····
····[ ]: Case-insensitive variables
····[ ]: Skip file if variable was not found
····[ ]: Enable Title from Custom Variable
# Title modifier
····${fuzzyTitle}
# Fuzzy matching
····[x]: Replace diacritic characters
····[x]: Aggressive matching
····[x]: Remove (...) and [...] brackets
# Image providers
····Selected: SteamGridDB
····[ ]: Allow NSFW artwork
····[ ]: Allow joke artwork
# Allowed grid styles
····Selected: 
# Allowed hero styles
····Selected: 
# Allowed logo styles
····Selected: 
# Allowed icon styles
····Selected: 
# Allowed animation types
····Selected: static
# Online image query
····${${fuzzyTitle}}
# Image pool
····${fuzzyTitle}
# Default image
····
# Default tall image
····
# Default hero image
····
# Default logo image
····
# Default icon
····
# Local images
····
# Local tall images
····
# Local hero images
····
# Local logo images
····
# Local icons
····

@Raybeano99

This comment was marked as resolved.

@DragRedSim

This comment was marked as outdated.

@Jrogas

This comment was marked as resolved.

@matygn14

This comment was marked as resolved.

@maxatesa

This comment was marked as resolved.

@missionfloyd

This comment was marked as resolved.

@jet082

This comment was marked as resolved.

@PRAEst-76

This comment was marked as resolved.

@deathau

This comment was marked as outdated.

@FrankAlbella

This comment was marked as resolved.

@kencinder
Copy link
Collaborator Author

I added everything up to this point and hid all comments, except for a few I may revisit(Comments were added)

There are various reasons I will not add them right now, from not knowing how to categorize them or if they truly belong in the presets to a couple needing a fair bit of time to do right.
They are left unhidden so others can see and use them.

Thanks to everyone that shared their parsers and a big thanks to @missionfloyd for providing many flatpak parsers

@fpiesche
Copy link

fpiesche commented Dec 13, 2023

@rkr87:

I created the parser below to add all of the games I have in Lutris to Steam automatically, the category regex is a fudgy way of categorising the games by source.

NOTE: This is for the Flatpak version of Lutris, should be easy to modify the exe path for the non-Flatpak version. It will also ignore any Steam games that are in your Lutris library if you've setup that integration in Lutris. If using the Flatpak version of SRM you'll need to use Flatseal to give SRM access to the Lutris directory.

I've tried this out on my installation of Lutris and the shortcuts it generates aren't quite right. For reference, here's what my Lutris config path looks like:

 ~ ls /home/deck/.var/app/net.lutris.Lutris/config/lutris/games
barkley-shut-up-and-jam-gaide-120-1676805396.yml
drakan-order-of-the-flame-setup-1682855419.yml
project-06-standalone-1692318019.yml
dig-n-rig-download-1669928903.yml
emperor-battle-for-dune-setup-1682896806.yml
viva-pinata-setup-1682898788.yml

The shortcuts this parser gets me from there use this command line:

"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/barkley-shut-up-and-jam-gaide-120
"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/dig-n-rig-download
"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/drakan-order-of-the-flame-setup
"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/emperor-battle-for-dune-setup
"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/project-06-standalone
"/usr/bin/flatpak" run net.lutris.Lutris lutris:rungame/viva-pinata-setup

These don't actually work - the final component of the extracted title (-setup, -download, -standalone, -120 in these examples) is extraneous for each and every one. Can you confirm whether that component is present in your Lutris configuration files as well, and try modifying the regex to strip it? If I remove the final component from the .yml file names, the parser works perfectly! I'd give this a go myself but it's very late here and I do not have the ability to think with regex right now...

@kencinder
Copy link
Collaborator Author

The regex to strip from second last dash is ${/^(?!steam\-\d+)(.+)\-.+\-\d+\.yml/}

Given I'm not a user of this at all, I'm not sure if the command line args are correct. If what is there will work with the above regex or if filePath needs to be used instead.

@fpiesche
Copy link

fpiesche commented Dec 13, 2023

The regex to strip from second last dash is ${/^(?!steam\-\d+)(.+)\-.+\-\d+\.yml/}

Given I'm not a user of this at all, I'm not sure if the command line args are correct. If what is there will work with the above regex or if filePath needs to be used instead.

With that regex, command line /usr/bin/flatpak and args run net.lutris.lutris lutris:rungame/${title} this works for me - getting good matches for my handful of titles from the fuzzy matcher, final titles are looking sensible and the correct art for them gets pulled.

@rkr87
Copy link

rkr87 commented Dec 13, 2023

@rkr87:

 ~ ls /home/deck/.var/app/net.lutris.Lutris/config/lutris/games
barkley-shut-up-and-jam-gaide-120-1676805396.yml
drakan-order-of-the-flame-setup-1682855419.yml
project-06-standalone-1692318019.yml
dig-n-rig-download-1669928903.yml
emperor-battle-for-dune-setup-1682896806.yml
viva-pinata-setup-1682898788.yml

How strange, none of my lutris config files have those suffixes and the pattern provided previously works fine for my installation.

The potential problem I see with @kencinder's proposed solution is that it won't work for users whose file patterns match those in my installation. Instead, I think the only all encompassing solution is to remove select words if they occur before the numerical id string, which isn't perfect as it means we need to identify all of the potential "words" we might possibly want to remove and will fall over if any of those words actually exist in the title of the game for users whose filename pattern matches that of my installation.

I quickly put below together that meets those requirements, the list probably needs expanding and I'll consider whether or not there's a better way to have this work for all possible scenarios.

${/^(?!steam\-\d+)(.+)(?>(?>\-(?>setup|standalone|download|120))?)\-\d+\.yml/}

@fpiesche
Copy link

I wonder if it might be worth investigating with Lutris how those file names are generated, so we can have certainty?

@kencinder
Copy link
Collaborator Author

Nestopia UE Flatpak
Mednafen
Mednaffe Flatpak
Mupen64Plus
GZDoom Flatpak
Chocolate Doom Flatpak
DOSBox Staging Flatpak
DOSBox-X Flatpak
m64p Flatpak
Parallel Launcher Flatpak

I have opted not to add the Doom presets or Mednafen for the following reasons

With all of them, the Generic preset covers them just fine. There is no special glob used or command line arguments beyond what is needed for the flatpak specifics for Doom.
Mednafen is something I've looked at repeatedly, but there is nothing needed Generic doesn't provide and it covers numerous systems, so basically replicating Generic 20+ times with just Mednafen + different system for preset titles and categories is very redundant.

@mdeguzis
Copy link

Saw the Sega model 2 one, anyone working on Sega model 3? I built it from source, but perhaps it's not in here yet since I heard the flatpak has a few issues?

@louisefindlay23
Copy link

For adding Ubisoft Games that aren't installed. This will open Ubisoft Connect and open the game (if installed) or the install dialog (if not installed). A bit of manual work required to set the game title back to the game name rather than the Uplay ID. Hopefully someone with more experience can improve it.

Create a .txt file for every Ubisoft game with its Uplay Game ID as the filename. Use this README for the Uplay Game IDs.

Then create the parser below: The main change is to set the executable to UbisoftConnect.exe and then command line arguments to uplay://launch/"${title}"/0

Finally, set the title to the correct Game Name (instead of the Uplay Game ID) by clicking Fix in Add Games.

# Parser type
····Selected: Glob
# Configuration title
····Ubisoft
# Steam directory
····${steamdirglobal}
# User accounts
····Global
# ROMs directory
····${romsdirglobal}/PC/Ubisoft
# Steam collections
····PC
# Executable
····C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\UbisoftConnect.exe
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
····uplay://launch/"${title}"/0
# Executable modifier
····"${exePath}"
# "Start In" directory
····
# User's glob
····${title}.txt
# User's glob-regex
····null
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Epic Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Legendary installed.json Path Override
····null
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
····[ ]: Parse linked executables from GOG Galaxy
····[ ]: Parse using Registry instead of Galaxy DB
# itch.io AppData Directory Override
····null
# Windows-on-Linux Install Drive Redirect
····null
# Application Types
····Selected: game
····[ ]: Find artwork for installed titles only
# Ubisoft Directory Override
····null
····[ ]: Launch games via UPlay for online services
# XboxGames Directory Override
····null
····[ ]: Launch game as UWP instead of launcher helper
# EA Games Directory Override
····null
····[ ]: Launch games via EA Desktop
# Battle.net.exe Path Override
····null
# Title modifier
····${fuzzyTitle}
# Title from custom variable
····
····[ ]: Case-insensitive variables
····[ ]: Skip file if variable was not found
# Fuzzy matching
····[x]: Replace diacritic characters
····[x]: Aggressive matching
····[x]: Remove (...) and [...] brackets
# Enable Steam Input
····Selected: 1
# PS4 Template
····Selected: null
# PS5 Template
····Selected: null
# PS5 Dualsense Edge Template
····Selected: null
# Xbox 360 Template
····Selected: null
# Xbox One Template
····Selected: null
# Xbox One Elite Template
····Selected: null
# Switch Joy-Con (Left) Template
····Selected: null
# Switch Joy-Con (Right) Template
····Selected: null
# Switch Pro Template
····Selected: null
# Steam Deck Template
····Selected: null
# Steam Controller Template
····Selected: null
# Image providers
····Selected: sgdb,steamCDN
# Online image query
····${${fuzzyTitle}}
# Image pool
····${fuzzyTitle}
····[ ]: Local backups (DRM takedown protection)
····[ ]: Allow NSFW artwork
····[ ]: Allow joke artwork
# Allowed grid styles
····Selected: 
# Allowed hero styles
····Selected: 
# Allowed logo styles
····Selected: 
# Allowed icon styles
····Selected: 
# Allowed animation types
····Selected: static
# Allowed banner dimensions
····Selected: 
# Allowed hero dimensions
····Selected: 
# Allowed icon dimensions
····Selected: 
# Fallback portrait
····null
# Fallback banner
····null
# Fallback hero
····null
# Fallback logo
····null
# Fallback icon
····null
# Local portraits glob
····null
# Local banners glob
····null
# Local heroes glob
····null
# Local logos glob
····null
# Local icons glob
····null

@louisefindlay23
Copy link

Thanks, @kencinder. I've updated the parser per your great advice. Worked a treat :)

# Parser type
····Selected: Glob
# Configuration title
····Ubisoft
# Steam directory
····${steamdirglobal}
# User accounts
····Global
# ROMs directory
····${romsdirglobal}/PC/Ubisoft
# Steam collections
····PC
# Executable
····C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\UbisoftConnect.exe
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
····uplay://launch/"${title}"/0
# Executable modifier
····"${exePath}"
# "Start In" directory
····
# User's glob
····${title}.txt
# User's glob-regex
····null
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Epic Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Legendary installed.json Path Override
····null
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
····[ ]: Parse linked executables from GOG Galaxy
····[ ]: Parse using Registry instead of Galaxy DB
# itch.io AppData Directory Override
····null
# Windows-on-Linux Install Drive Redirect
····null
# Application Types
····Selected: game
····[ ]: Find artwork for installed titles only
# Ubisoft Directory Override
····null
····[ ]: Launch games via UPlay for online services
# XboxGames Directory Override
····null
····[ ]: Launch game as UWP instead of launcher helper
# EA Games Directory Override
····null
····[ ]: Launch games via EA Desktop
# Battle.net.exe Path Override
····null
# Title modifier
····${fuzzyTitle}
# Title from custom variable
····${Ubisoft}
····[ ]: Case-insensitive variables
····[ ]: Skip file if variable was not found
# Fuzzy matching
····[x]: Replace diacritic characters
····[x]: Aggressive matching
····[x]: Remove (...) and [...] brackets
# Enable Steam Input
····Selected: 1
# PS4 Template
····Selected: null
# PS5 Template
····Selected: null
# PS5 Dualsense Edge Template
····Selected: null
# Xbox 360 Template
····Selected: null
# Xbox One Template
····Selected: null
# Xbox One Elite Template
····Selected: null
# Switch Joy-Con (Left) Template
····Selected: null
# Switch Joy-Con (Right) Template
····Selected: null
# Switch Pro Template
····Selected: null
# Steam Deck Template
····Selected: null
# Steam Controller Template
····Selected: null
# Image providers
····Selected: sgdb,steamCDN
# Online image query
····${${fuzzyTitle}}
# Image pool
····${fuzzyTitle}
····[ ]: Local backups (DRM takedown protection)
····[ ]: Allow NSFW artwork
····[ ]: Allow joke artwork
# Allowed grid styles
····Selected: 
# Allowed hero styles
····Selected: 
# Allowed logo styles
····Selected: 
# Allowed icon styles
····Selected: 
# Allowed animation types
····Selected: static
# Allowed banner dimensions
····Selected: 
# Allowed hero dimensions
····Selected: 
# Allowed icon dimensions
····Selected: 
# Fallback portrait
····null
# Fallback banner
····null
# Fallback hero
····null
# Fallback logo
····null
# Fallback icon
····null
# Local portraits glob
····null
# Local banners glob
····null
# Local heroes glob
····null
# Local logos glob
····null
# Local icons glob
····null

Sample userVariables.json

{
	"Ubisoft": {
		"4": "Assassin's Creed II",
		"26": "Assassin's Creed Brotherhood",
		"40": "Assassin's Creed Revelations",
		"273": "Assassin's Creed IV Black Flag",
		"1875": "Assassin's Creed Syndicate",
		"3539": "Assassin's Creed Origins",
		"5059": "Assassin's Creed Odyssey",
		"5183": "Assassin's Creed III Remastered",
		"6100": "Assassin's Creed Mirage",
		"13504": "Assassin's Creed Valhalla"
	}
}

@louisefindlay23
Copy link

Complete Uplay ID userVariables.json

{
  "Ubisoft": {
    "2": "Tom Clancy's Splinter Cell Conviction",
    "3": "Silent Hunter®: Battle of the Atlantic Gold Edition",
    "4": "Assassin's Creed II",
    "5": "Trial Rising Demo",
    "8": "The Settlers 7: Paths to a Kingdom",
    "11": "Prince of Persia® The Forgotten Sands™",
    "13": "Driver: San Francisco",
    "18": "The Settlers Online",
    "20": "Shaun White Snowboarding",
    "22": "Anno 2070",
    "26": "Assassin's Creed Brotherhood",
    "30": "From Dust",
    "40": "Assassin's Creed® Revelations",
    "44": "Might & Magic Heroes VI",
    "46": "Far Cry® 3",
    "53": "Tom Clancy's Ghost Recon Future Soldier",
    "54": "Assassin's Creed® III",
    "64": "Might & Magic® VI-Pack",
    "68": "Silent Hunter 5",
    "71": "Anno 2070 (Steam)",
    "78": "Trials Evolution: Gold Edition",
    "80": "Rayman Origins",
    "82": "Assassin's Creed™",
    "83": "Tom Clancy's EndWar",
    "84": "Far Cry",
    "85": "Far Cry 2",
    "87": "Heroes of Might and Magic V",
    "88": "Tom Clancy's Rainbow Six® Vegas",
    "89": "Anno 1404",
    "90": "World In Conflict",
    "91": "Tom Clancy's Splinter Cell Blacklist",
    "93": "I am Alive",
    "95": "Tom Clancy's Splinter Cell Chaos Theory™",
    "103": "Assassin's Creed® III (RU)",
    "104": "Assassin's Creed® III (JPN)",
    "105": "Assassin's Creed® III (CZ)",
    "108": "Tom Clancy's Rainbow Six® Vegas 2",
    "109": "Tom Clancy's Splinter Cell",
    "110": "Tom Clancy's Splinter Cell Double Age",
    "111": "Prince of Persia: The Sands of Time™",
    "113": "Prince of Persia: The Two Thrones™",
    "121": "Prince of Persia: Warrior Within",
    "205": "Far Cry® 3 Blood Dragon",
    "232": "Beyond Good and Evil™",
    "233": "Cold Fear™",
    "270": "Brothers in Arms: Road to Hill 30",
    "271": "Brothers in Arms: Earned in Blood",
    "272": "Brothers in Arms: Hell's Highway",
    "273": "Assassin’s Creed® IV Black Flag™",
    "274": "Watch_Dogs",
    "277": "Prince of Persia (2008)",
    "292": "Silent Hunter III",
    "293": "Silent Hunter 4 Gold Edition",
    "297": "Trials Fusion",
    "318": "Trials Fusion (Steam)",
    "348": "Might and Magic VII: For Blood and Honor",
    "349": "Might & Magic® VIII: Day of the Destroyer",
    "350": "Might & Magic® IX",
    "352": "Heroes of Might & Magic II Gold Edition",
    "353": "Heroes® of Might & Magic® III Complete Edition",
    "354": "Heroes® of Might & Magic® IV Complete Edition",
    "358": "Tom Clancy's Rainbow Six® Lockdown",
    "360": "Rayman® 3 Hoodlum Havoc®",
    "361": "Rayman® 2 The Great Escape",
    "362": "Rayman Raving Rabbids™",
    "401": "Might & Magic X Legacy (Uplay)",
    "402": "Might & Magic X Legacy (Steam)",
    "403": "Might & Magic X Legacy (Uplay+Steam)",
    "410": "Rayman® Legends",
    "411": "Rayman Legends Demo",
    "413": "The Crew (Worldwide)",
    "420": "Far Cry® 4",
    "422": "Flashback",
    "423": "Flashback Demo",
    "424": "Driver San Francisco 大概 (Steam)",
    "437": "Assassin’s Creed® IV Black Flag™ (Steam Version)",
    "441": "Assassin’s Creed® IV Black Flag™ (RU)",
    "442": "Assassin’s Creed® IV Black Flag™ (Asia)",
    "449": "Tom Clancy's Splinter Cell Blacklist (Steam)",
    "507": "The Crew (Russian)",
    "509": "Rayman Chinese Special Edition",
    "540": "ShootMania Storm Elite Demo",
    "541": "Watch_Dogs (Steam)",
    "543": "Watch_Dogs (RU)",
    "545": "Watch Dogs Asia",
    "568": "Tom Clancy's The Division™",
    "569": "For Honor",
    "609": "Child of Light",
    "611": "Child of Light (Steam)",
    "625": "Assassin's Creed® Liberation HD",
    "632": "Assassin's Creed® Liberation HD (Uplay version/Australia)",
    "635": "Tom Clancy's Rainbow Six® Siege",
    "659": "Valiant Hearts (Uplay)",
    "661": "Valiant Hearts (Steam)",
    "664": "Assassin's Creed® Freedom Cry",
    "665": "The Crew 2 (Steam Version)",
    "678": "ANNO 2070® Complete Edition",
    "680": "Anno 2070 RUS",
    "688": "Lock On",
    "693": "Petz Horsez 2",
    "698": "Silent Hunter 4 Wolves of the Pacific (Uplay)",
    "699": "Silent Hunter 4 Wolves of the Pacific: U-Boat Missions (Uplay)",
    "720": "Assassin's Creed® Unity",
    "741": "Watch_Dogs (Steam)",
    "750": "The Crew (Beta)",
    "801": "Child of Light Demo",
    "825": "Champions of Anteria",
    "828": "Watch Dogs Asia (Steam)",
    "834": "Trials Fusion Demo (Steam)",
    "856": "Far Cry® 4 (Steam version/Australia)",
    "857": "Assassin's Creed® Unity (Steam)",
    "895": "Assassin's Creed® Rogue",
    "920": "Far Cry® 6 (Steam Version)",
    "934": "Assassin's Creed® Rogue (Steam Version)",
    "944": "Assassin's Creed Unity (RU)",
    "945": "Assassin's Creed Unity (RU) (Steam Version)",
    "969": "Far Cry 4 RU",
    "1176": "Might & Magic Heroes VII",
    "1177": "Might & Magic Heroes VII (Steam)",
    "1186": "Assassin's Creed Rogue (RU)",
    "1187": "Assassin's Creed Rogue (RU) (Steam Version)",
    "1253": "Anno 2205",
    "1275": "Trials Fusion Multiplayer Beta",
    "1428": "Watch_Dogs Complete Edition",
    "1651": "Assassin's Creed® Chronicles China",
    "1653": "ZOMBI (Uplay)",
    "1661": "Assassin's Creed Rogue Asia",
    "1662": "Assassin's Creed Rogue Asia (Steam)",
    "1713": "Skull and Bones",
    "1771": "Tom Clancy's Ghost Recon® Wildlands",
    "1803": "Far Cry® 5",
    "1832": "Zombi (Uplay+Steam)",
    "1835": "Tom Clancy's The Division™ (RU)",
    "1841": "Assassin's Creed® Chronicles China (Steam Version)",
    "1842": "Tom Clancy's Rainbow Six® Siege (RU)",
    "1843": "Tom Clancy's Rainbow Six® Siege (Steam)",
    "1847": "Assassin's Creed® Chronicles India",
    "1848": "Assassin's Creed® Chronicles Russia",
    "1849": "Assassin's Creed® Chronicles India (Steam)",
    "1850": "Assassin's Creed® Chronicles Russia (Steam)",
    "1875": "Assassin's Creed® Syndicate",
    "1955": "Assassin's Creed® Syndicate (RU)",
    "1956": "Assassin's Creed® Syndicate Asia",
    "1957": "Assassin's Creed® Syndicate (Steam Version)",
    "1958": "Assassin's Creed® Syndicate (RU) (Steam Version)",
    "2010": "Far Cry® Primal",
    "2029": "Far Cry® Primal (Steam version/Australia)",
    "2036": "Tom Clancy's The Division Beta",
    "2070": "Trackmania Turbo",
    "2170": "Champions of Anteria (Steam)",
    "2235": "Tom Clancy's Rainbow Six® 3 Gold",
    "2297": "Tom Clancy's Ghost Recon",
    "2298": "Tom Clancy's Rainbow Six®",
    "2688": "WATCH_DOGS® 2",
    "2855": "The Crew 2 (Uplay Connect)",
    "2968": "Rayman Forever",
    "2970": "Tom Clancy's Ghost Recon® Wildlands (Open Beta)",
    "2988": "Silent Hunter 2",
    "2990": "Anno 1602",
    "2992": "Panzer General 3D Assault",
    "2993": "Panzer General 2",
    "3037": "The Settlers - New Allies",
    "3044": "POD Gold",
    "3050": "Imperialism",
    "3051": "Imperialism 2",
    "3052": "Speed Busters: American Highways",
    "3053": "Warlords Battlecry",
    "3054": "Warlords Battlecry 2",
    "3088": "South Park™: The Fractured But Whole™",
    "3097": "Champions of Anteria Demo",
    "3098": "Champions of Anteria Demo (Steam)",
    "3130": "Just Dance 2017",
    "3131": "Just Dance 2017 (Steam)",
    "3279": "Steep",
    "3280": "Steep (Steam)",
    "3301": "Trials of the Blood Dragon (Steam)",
    "3352": "UNO (Uplay)",
    "3353": "Watch Dogs: Legion",
    "3360": "UNO (Uplay+Steam)",
    "3361": "UNO Demo",
    "3445": "Steep Open Beta",
    "3458": "For Honor",
    "3502": "Tom Clancy's The Division PTS",
    "3539": "Assassin's Creed® Origins",
    "3559": "Tom Clancy's Ghost Recon Wildlands (Steam)",
    "3584": "South Park™ - The Stick of Truth™",
    "3600": "Trials Rising",
    "3601": "Trials Rising",
    "3619": "WATCH_DOGS® 2 (Steam)",
    "3765": "UNO - Rayman Theme Cards",
    "3766": "UNO - Just Dance Theme Cards",
    "3774": "Monopoly Plus",
    "3775": "Monopoly Plus (Steam)",
    "3776": "UNO - Winter Theme Cards",
    "4311": "Far Cry® 5 (Steam Version)",
    "4472": "Steep Open Beta (Steam)",
    "4502": "South Park: The Fractured But Whole (Steam)",
    "4553": "Anno 1800 (Uplay)",
    "4554": "Anno 1800 (Uplay+Steam)",
    "4740": "Avatar: Frontier of Pandora (Uplay)",
    "4865": "Tom Clancy's Rainbow Six® Siege Test Server",
    "4919": "Assassin's Creed II (Steam Version)",
    "4923": "Assassin's Creed Origins (Steam Version)",
    "4932": "Tom Clancy's The Division® 2",
    "4984": "Tom Clancy's Ghost Recon Wildlands Open Beta",
    "5037": "The Crew 2",
    "5042": "Might & Magic Heroes VI",
    "5059": "Assassin's Creed® Odyssey",
    "5092": "Assassin's Creed® Odyssey (Steam Version)",
    "5100": "Discovery Tour by Assassin's Creed: Ancient Egypt",
    "5159": "Tom Clancy's The Division 2 - PPS",
    "5183": "Assassin's Creed® III - Remastered",
    "5184": "Assassin's Creed® III - Remastered (Steam Version)",
    "5210": "Far Cry® New Dawn",
    "5211": "Far Cry® New Dawn (Steam Version)",
    "5233": "Trials Rising - Open Beta",
    "5266": "Far Cry® 6",
    "5271": "Tom Clancy's Rainbow Six® Extraction",
    "5277": "Starlink: Battle For Atlas",
    "5404": "Discovery Tour: Ancient Greece by Ubisoft",
    "5405": "Immortals Fenyx Rising",
    "5408": "Rabbits Coding!",
    "5454": "Trials® Rising Demo",
    "5487": "Riders Republic",
    "5595": "Trackmania",
    "5613": "Might & Magic - Chess Royale",
    "5705": "Scott Pilgrim vs the World: The Game",
    "5726": "Immortal Fenyx Rising™ Demo",
    "5850": "Rayman Jungle Run",
    "5860": "Rayman Fiesta Run",
    "5870": "Hungry Shark World",
    "6100": "Assassin's Creed® Mirage",
    "6116": "The Last Friend",
    "6145": "Prince of Persia: The Lost Crown",
    "6150": "Skull and Bones Open Beta Closed Beta",
    "7013": "Assassin's Creed® Valhalla (Steam)",
    "7017": "Watch Dogs: Legion (Steam)",
    "9662": "Valiant Hearts: Coming Home",
    "9797": "Ode",
    "10424": "Tom Clancy's Rainbow Six® Siege Test Server (Steam)",
    "10871": "Transference",
    "10885": "Steep Road To The Olympics Beta",
    "10886": "Steep Road To The Olympics Beta (Steam)",
    "11373": "Discovery Tour: Ancient Egypt by Assassin’s Creed (Steam)",
    "11662": "The Settlers - History Edition",
    "11783": "The Settlers 2: Veni, Vidi, Vici - History Edition",
    "11784": "The Settlers 3 - History Edition",
    "11785": "The Settlers 4 - History Edition",
    "11786": "The Settlers 5: Heritage of Kings - History Edition",
    "11787": "The Settlers 6 - History Edition",
    "11788": "The Settlers 7: Paths to a Kingdom - History Edition",
    "11899": "Roller Champions",
    "11903": "Tom Clancy's Ghost Recon® Breakpoint",
    "11957": "Hyper Scape",
    "12737": "Tom Clancy's Ghost Recon® Breakpoint (Uplay Open + Closed Beta)",
    "13504": "Assassin's Creed® Valhalla",
    "13800": "Anno 1800 - Open Beta",
    "15657": "XDefiant Closed Beta",
    "16232": "Anno 1404 - History Edition",
    "16234": "Anno 1503 - History Edition",
    "16236": "Anno 1602 - History Edition",
    "16238": "Anno 1701 - History Edition",
    "16383": "UNO - Flip Theme Cards",
    "17772": "Far Cry® 6 Episode 1 Insanity DLC",
    "17773": "Far Cry® 6 Episode 2 Pagan: Control DLC",
    "17774": "Far Cry® 6 Episode 3 Joseph: Collapse DLC",
    "17860": "UNO - Fenyx's Quest Theme Cards",
    "17905": "Monopoly Madness",
    "17942": "UNO - 50th Anniversary Theme Cards",
    "19000": "Discovery Tour: Viking Age by Ubisoft",
    "19028": "Far Cry® 6 Offline Mode \"DLC\"",
    "59689": "UNO - The Call of Yara Theme Cards",
    "60710": "UNO - AC Valhalla Theme Cards",
    "60951": "Project U",
    "61432": "Fell Seal: Arbiter's Mark",
    "61499": "Evan's Remains",
    "61503": "Astrologaster",
    "61515": "Lake",
    "61517": "A Normal Lost Phone",
    "61578": "Rabbids: Party of Legends",
    "62326": "Immortals Fenyx Rising (Steam)"
  }
}

@Aceba1
Copy link

Aceba1 commented Dec 4, 2024

Here's a parser for Citra to get installed titles from a 3DS!
IDs are split by platform and content category. Right now this is only checking the "Normal" folder (00040000)
I used this as a reference: https://www.3dbrew.org/wiki/Titles

Unfortunately, additional non-executable files are also returned. I haven't figured how to filter those out without manually excluding them while cross-checking Citra

# Parser type
····Selected: Glob-regex
# Parser title
····Nintendo 3DS - Citra (Installed Titles)
# Steam directory
····${steamdirglobal}
# User accounts
····Global
# ROMs directory
····/mnt/MassStorage/Emulation/storage/citra/sdmc
# Steam collections
····Nintendo 3DS
# Search glob
····
# Search glob-regex
····Nintendo 3DS/*/*/title/00040000/${/(.+)/|00040000$1}/content/**/*.app
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Epic Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Legendary Path Override
····null
# Legendary installed.json Path Override
····null
····[ ]: Launch games via Legendary for online services
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
····[ ]: Parse linked executables from GOG Galaxy
····[ ]: Parse using Registry instead of Galaxy DB
# itch.io AppData Directory Override
····null
# Windows-on-Linux Install Drive Redirect
····null
# Application Types
····Selected: game
····[ ]: Find artwork for installed titles only
# Ubisoft Directory Override
····null
····[ ]: Launch games via UPlay for online services
# XboxGames Directory Override
····null
····[ ]: Launch game as UWP instead of launcher helper
# EA Games Directory Override
····null
····[ ]: Launch games via EA Desktop
# Battle.net.exe Path Override
····null
# Executable
····/mnt/MassStorage/Emulation/tools/launchers/citra.sh
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
···· "${filePath}"
# Executable modifier
····"${exePath}"
# "Start In" directory
····
# Title modifier
····${fuzzytitle}
# Title from custom variable
····Selected: 3DS
····[x]: Case-insensitive variables
····[ ]: Skip file if variable was not found
# Fuzzy matching
····[x]: Replace diacritic characters
····[x]: Aggressive matching
····[x]: Remove (...) and [...] brackets
# Enable Steam Input
····Selected: 1
# PS4 Template
····Selected: [object Object]
# PS5 Template
····Selected: [object Object]
# PS5 Dualsense Edge Template
····Selected: [object Object]
# Xbox 360 Template
····Selected: [object Object]
# Xbox One Template
····Selected: [object Object]
# Xbox One Elite Template
····Selected: [object Object]
# Switch Joy-Con (Left) Template
····Selected: null
# Switch Joy-Con (Right) Template
····Selected: null
# Switch Pro Template
····Selected: [object Object]
# Steam Deck Template
····Selected: [object Object]
# Steam Controller Template
····Selected: [object Object]
# Artwork providers
····Selected: sgdb
# Artwork provider search queries
····${fuzzyTitle}
# Artwork pool
····${fuzzyTitle}
····[ ]: Local backups (DRM takedown protection)
····[ ]: Allow NSFW artwork
····[ ]: Allow joke artwork
# Allowed grid styles
····Selected: 
# Allowed hero styles
····Selected: 
# Allowed logo styles
····Selected: 
# Allowed icon styles
····Selected: 
# Allowed animation types
····Selected: static
# Allowed banner dimensions
····Selected: 
# Allowed hero dimensions
····Selected: 
# Allowed portrait dimensions
····Selected: null
# Allowed icon dimensions
····Selected: 
# Fallback portrait
····
# Fallback banner
····
# Fallback hero
····
# Fallback logo
····
# Fallback icon
····
# Local portraits glob
····
# Local banners glob
····
# Local heroes glob
····
# Local logos glob
····
# Local icons glob
····

Keys in userVariables.json should be lower-cased. Here's an example:

{
  "3DS": {
    "00040000000b0f00": "Youtube"
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests