Wifi and network settings
Hey there guys,
I have been working on EmulationStation to compile my own custom ES binary for retropie for my custom arcade, and in searching for documentation I came across 'Recalbox'. This looks to be a direct competitor with retropie. Although they seem very similar, I did notice a few difference that I was wondering if they would be ported over to retropie. One of them being the ability to setup your wireless network/wired network directly from inside of ES. Has this functionality ever been thought about, or worked on? I'd be interested to rip into the ES-Recalbox source to see how they did it, and replicate it to go on the official ES or even the retropie-ES version of emulationstation if anybody were interested in it. I thought it would be an awesome idea especially for people who are trying to go with a fully hand-made custom console solution.
There are a few other things I'd like to roll into ES as well, if anybody is interested.
@masteryoer We prefer to keep ES as a launcher and have the wifi configuration etc separate. However you may be able to port it across if maintaining your own ES.
@masteryoer retropie and recalbox have very different goals. Jacobfk20 has already integrated wifi in his branch. But as mentioned it's a functionality we prefer to keep separate (as with many things because retropie can be used with many different frontends)
I was just referring to the actual ES launcher, not it being the only way to configure wifi. Just thought it would be helpful, if you are using Es as a front end, to be able to configure wifi from within the front end.
Although it's a good idea not to integrate hardware specific settings in EmulationStation, the current console based settings is a dead-end road for such a product as TV game console.
I think EmulationStation needs an ability to use a third party executable output in JSON or XML as a content for it's settings menu. So instead of showing RetroPie-Setup Script output on a fullscreen, ES should:
- Run it in a background after selecting a "Settings" option in a START menu
- Read the RetroPie-Setup Script output, which is now is in pure JSON or XML format, containing current menu title, menu items and command line parameters for each menu item.
- Parse this data and show it as a new submenu.
- When user selects one of this submenu options, ES runs the RetroPie-Setup Script again, but now with command line parameters assigned for this menu item and shows the output again.
This way RetroPie can became an excellent product for an end user, but EmulationStation code will not contain any hardware specific code. We just configure it anyway we want for each case.
I agree a menu option to display and configure wifi from emulationstation would be very user friendly, as opposed to having to leave emulationstation and go into retropie-setup to do it.
It wouldn't/shouldn't require special software be made to do it, just that the retropie script be changed to accept cli parameters or whatever, that the ES gui could pass and read back to display the elements on the screen. (For example, ./retropie_setup.sh --get-wifi-ssids to display a list of all the ssids that are available, or ./retropie_setup.sh --connect -s <ssid> <key>.
That wouldn't be 'software dependent', and other front-ends could easily hook into it. Everything would still be done through retropie setup as well, it would just be wrapped around the front-ends interface and be more 'integrated' and user friendly.
Just an idea though.
I don't want to implement any wifi settings in emulation station - even if it's just acting as a frontend to some other tools. I'm happy with the existing wifi configuration (I may add some way to enter passwords via a joypad, but I recommend a small keyboard for retropie configuration anyway). Can also configure wifi via the boot partition for those without a keyboard on the rpi.
btw retropie already supports commandline parameters btw, via retropie_packages.sh (for most things).
You didn't get it. It's NOT a wifi settings, or whatever.
It's an ability to configure "START" menu items, almost the same way as you configure your game list! But instead of "menulist.xml" file for this (like games are listed in "gamelist.xml"), EmulationStation will read XML data from an executable (with hard-coded or, perhaps, configurable location) stdout, executing it in a background. It can be a binary file or script in bash/python/perl/anything else, ES doesn't care while XML output is correct, it's Linux after all!
One more time, EmulationStation WILL NOT configure wifi/ethernet/Retroarch or whatever else by itself, all work is done within this executable. EmulationStation is just a GUI, like it is right now, but much better. Menu items are generated on the fly from executable stdout XML data.
And if this executable doesn't exist (or better not defined in ES config) EmulationStation works exactly as it does for now.
@Dm1 I understood what you said. It's not as simple as that either - Where does one enter the wifi password. You would need an entire configuration markup to handle all this, with a load of code to process it, and implement on screen keyboard and all sorts (assuming you wanted it integrated nicely). If you mean the password is entered on a 3rd party app, I see no point in having ES do anything but launch it, which is what we already have etc.
I'm not interested in it anyway. Feel free to fork ES if you want this.
You DON'T need to emphasise everything to me like that either.
Yep, simple markup is definitely needed for this, at least several different menu item types: regular (button), input, checkbox and maybe numeric slider. This should be enough to stay within the EmulationStation. Onscreen keyboard is needed anyway, even without this nice feature.
Of course fork is a good way to implement this, but I like RetroPie and I want it be better for everyone. So I shared this idea and wanted to hear you opinion first.