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

Support retroarch #119

Closed
Schroedingers-Cat opened this issue Oct 6, 2017 · 8 comments
Closed

Support retroarch #119

Schroedingers-Cat opened this issue Oct 6, 2017 · 8 comments

Comments

@Schroedingers-Cat
Copy link

Support for Retroarch would be great: http://www.retroarch.com/

@IsamuDragon
Copy link

I would like to second this, since a lot of people use it as an all-in-one emulator

@JosefNemec
Copy link
Owner

I actually thought about it, but I didn't know what to do about it since it's a front end in it self and you can't just pass the ROM file to it via cmdline. You can currently create RetroArch profile manually and provide cmdline arguments as described here. And then treat RetroArch config files as ROMs, it should work then.

It just didn't feel consistent with how other emulators are currently treated in Playnite, so I didn't include RetroArch profile by default. I will have to take a another look at it and somehow integrate it.

@Schroedingers-Cat
Copy link
Author

According to this you can just pass the rom file via commandl ine.
Retroarchs config profiles are per core basis and per game basis. Both are saved and named consistently, meaning if you know the name of the core, the path to retroarch and the name of the rom file, you have all the info you need.

@By6r9
Copy link
Contributor

By6r9 commented Oct 14, 2017

Another interesting example: Vice. Emulates bunch of Commodore computers, each with different executable and C64 can be emulated with x64.exe and x64sc.exe.

- Name: Vice
  Website: 'http://vice-emu.sourceforge.net/'
  Platforms: [Commodore 64]
    - Name: Vice (fast)
      DefaultArguments: -fullscreen -autostart "{ImagePath}"'
      ImageExtensions: [.bz2, .gz, .d6z, .d7z, .d8z, .g6z, .g7z, .g8z, .d64, .d71, .d80, .d81, .d82, .g64, .g41, .x64, .t64, .p00, .tap, .prg, .zip ]
      ExecutableLookup: ^x64\.exe$
    - Name: Vice (accurate) 
      DefaultArguments: -fullscreen -autostart "{ImagePath}"'
      ImageExtensions: [.bz2, .gz, .d6z, .d7z, .d8z, .g6z, .g7z, .g8z, .d64, .d71, .d80, .d81, .d82, .g64, .g41, .x64, .t64, .p00, .tap, .prg, .zip ]
      ExecutableLookup: ^x64sc\.exe$
  Platforms: [Commodore Plus/4]
    DefaultArguments: -fullscreen -autostart "{ImagePath}"'
    ImageExtensions: [.bz2, .gz, .d6z, .d7z, .d8z, .g6z, .g7z, .g8z, .d64, .d71, .d80, .d81, .d82, .g64, .g41, .x64, .t64, .p00, .tap, .prg, .zip ]
    ExecutableLookup: ^xplus4\.exe$
  

@JosefNemec
Copy link
Owner

My proposition:

- Name: Vice
  Platforms: [Commodore 64, Commodore Plus/4]
  Website: 'http://vice-emu.sourceforge.net/'
  Configurations:
    - Name: Fast
      DefaultArguments: '-fullscreen -autostart "{ImagePath}"'
      ExecutableLookup: ^x64\.exe$
      ImageExtensions: [.bin, .md]  
    - Name: Accurate
      DefaultArguments: '-fullscreen -autostart "{ImagePath}"'
      ExecutableLookup: ^x64sc\.exe$
      ImageExtensions: [.bin, .md]  

In case of RetroArch every configuration would be setting for a different core and when assigning emulator to a game (or doing game import), you would select appropriate core (configuration).

I would keep platforms global for the whole emulator since that IMHO makes sense, because we are defining what all platforms is emulator supporting. Also it would not break current linking where emulators are only provided in "Action" settings based on game's set platform.

@By6r9
Copy link
Contributor

By6r9 commented Oct 17, 2017

You missed in your example xplus4.exe - without linking platform and executable other solution would be
name: Vice (Plus/4) , and adding another configuration but that is less elegant.

Another can of worms is MAME.
For arcade games it is:
mame <romname> (or rompath)
but executable includes also emulation of approximately thousand of other systems, with different default arguments:

Sony Playstation:

mame psu -cdrom <isoname> 
mame psj -cdrom <isoname>
mame pse -cdrom <isoname>
mame psa -cdrom <isoname>

for USA, Japan, Europe, Asia variants of bios/system.

Nintendo Game Boy Advance:
mame gba -cart <romname>
etc, so there should be a way to link platform and exe/arguments/extensions.

@JosefNemec
Copy link
Owner

OK I'll move platform definitions to each config section as well. Hopefully that will cover all possible scenarios.

JosefNemec added a commit that referenced this issue Nov 13, 2017
New: Option to create different profiles for emulator definition
@JosefNemec
Copy link
Owner

Released in 3.0

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

No branches or pull requests

4 participants