Francommit / win10_emulation_station

Emulation Station for Windows 10/11
https://francommit.com/emulationstation/
158 stars 27 forks source link

retropie's "runcommand" #43

Closed sublinn closed 2 years ago

sublinn commented 3 years ago

Hi, Can we add the "runcommand" to this build? This comes in handy when you want a different emulator to launch a game, such as in the Arcade folder. You may want mame2013 to launch one game, but mame2010 to launch a different game, etc. Thanks for considering.

Francommit commented 3 years ago

Hey @sublinn ,

Thanks for the suggestion!

Could you give me an example of how the "runcommand" is used? I'm really not too sure what you're talking about sorry!

sublinn commented 3 years ago

Sure- thanks for asking. Within RetroPie, the "runcommand" exists between the es_systems.cfg file and the emulator launching the game. So instead of the es_systems.cfg file defining the emulator and path to the rom, the es_systems.cfg file instead first points to the runcommand, which then launches the emulator/rom. So instead of this [es_sytems.cfg] -----> [game launching] It goes like this [es_systems.cfg] -----> [runcommand] -----> [game launching] The runcommand file itself is where the command lives that launches the game. So why the extra hop? Well, the runcommand where you could define multiple emulators to launch a systems game. Remember, this already exists as a part of RetroPie if you'd like to see first hand.

Here are two examples of it in use, which I hope will illustrate how it's useful. Let's say I want to launch half of my Wii/GameCube games with the latest development version of Dolphin, and the other half of my games with the stable version. In this scenario, the runcommand has three entries: default = "dolphin-emu-master" dolphin = /path/to/stable/version/Dolphin.exe -b -e %ROM% dolphin-emu-master = /path/to/development/version/Dolphin.exe -b -e %ROM% Considering the above, the development version is the default emulator that will launch the game, but the stable version is still available if we want to use. The way it works in RetroPie is after you click a game, you have a few seconds to smash a button on your controller to bring up the runcommand. From there, you can change the default emulator for the whole directory, or just for a specific game within that directory.

Another example would be if you housed all of your arcade roms in the one Arcade folder. You may want roms from different rom sets. Without the runcommand, you'd be forced to use the same emulator for all of the arcade roms you want to launch.

Let me know if I can provide better detail anywhere. It's native with RetroPie so if you play around with Linux you could install it on any debian based distro. Or if you have a Raspberry Pi. RetroPie works well together with intermingling EmulationStation with it's own scripts (runcommand) being one of them.-- just too bad they don't make it for Windows!

Your solution is great, just wondering if it can include the flexibility mentioned above. :)

Thanks!

Francommit commented 3 years ago

Ok I've re-read this after reading it the first time and I think I understand it now. It's probably a new feature of the emulationstation fork of retropie!

Could you possibly point me to the exact feature usage and i'll see if it's been ported across at all?

sublinn commented 3 years ago

Sorry for the delay! Yes, here is the official page on the RunCommand: https://retropie.org.uk/docs/Runcommand/ It does a great job detailing what I think your fork is missing (if it's still missing, so much time has passed!) The second screenshot on the page shows where you can select a default emulator for a specific ROM, or for the whole system. The reason I think this would be useful is if there's many arcade games in the "Arcade" folder, but from different romsets. With the RunCommand, you can choose which emulator launches each rom by default. This way, you can seamlessly pick an arcade game and it will automatically launch the correct emulator to launch the ROM (after we've configured it to do). Please let me know what you think, and thank you.

Francommit commented 3 years ago

Wouldn't it be easier just to duplicate the config in the big XML file in the script?

sublinn commented 3 years ago

That's a really good suggestion, I didn't know that would be possible, but logically it makes sense! If I can figure out the CASE or IF statements to embed in the arcade area of the es_systems.cfg file (can you please confirm that's the file you're referring to) to satisfy this need then yes I do believe it should be easier than having you further develop. Because out of everything it's the only functionality I feel this incredibly awesome project was missing.

sublinn commented 3 years ago

Can you please reply back about which script you referenced? Thanks

Francommit commented 3 years ago

Sorry, not at my PC at the moment, it's the main script.

On Tue, Jun 8, 2021, 11:11 PM sublinn @.***> wrote:

Can you please reply back about which script you referenced? Thanks

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Francommit/win10_emulation_station/issues/43#issuecomment-856753788, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACX7YNMPZUVMC2G2FW6F2J3TRYJGJANCNFSM4U76BVEA .

Francommit commented 3 years ago

Can you please reply back about which script you referenced? Thanks

https://github.com/Francommit/win10_emulation_station/blob/master/prepare.ps1#L571-L816

sublinn commented 2 years ago

Closing re-phrase question/issue.