Childproofing a RetroPie System
-
System Info:
Raspberry Pi 3 Model B (Not B+)
LoveRPi 5V 2.5A MicroUSB LED Power Supply Adapter for Raspberry Pi 3
RetroPie Version 4.7.18
Built from pre-made v4.7.1 Raspberry Pi 2/3 image downloaded from RetroPie website
Retroflag Classic USB SNES-Style Gamepads (Dinput mode)
Hello,
I am seeking advice/guidance in building a RetroPie system for a friend with small children. I am aware of the Kiosk and Kids modes and will be using them. I believe these features allow you to restrict access to games and Emulation Station features, but they do not appear to limit access to the “runcommand” launch script or in-game opening of RetroArch via Select+X.
I know you can disable the launch script through RetroPie Setup, and you can edit the hotkey functions in \retropie\configs\all\retroarch-joypads, but these appear to be “global” changes from what I can tell. Is there a way you can disable the launch menu and select+x when the UI is in “Kiosk” or “Kids” mode but remain functional when the UI is “Full?”
I hope that makes sense and thanks in advance for any assistance!
Regards,
MikeP.S. I have built several RetroPies for my own personal use with little to no trouble. This is only my first time building one that children will also be using.
-
@mikes82 said in Childproofing a RetroPie System:
Is there a way you can disable the launch menu and select+x when the UI is in “Kiosk” or “Kids” mode but remain functional when the UI is “Full?”
Not out-of-the-box, these configurations are independent. What you could do is create a simple
sh
script that you could drop in the RetroPie system and that would toggle on/off the runcommand menu/hotkey shortcuts.
I would also disable the hotkey + B combination (Reset) along with Hotkey + X. -
Thank you, @mitu!
I searched the forum before posting and found the 2019 [TOOL] RPi ES Kids Mode Toggler thread. KimDb had the very same idea two years earlier and wrote a Windows PowerShell script to do it. You provided essentially the same feedback regarding the preference for a basic Sh script and for disabling Select+B in addition to Select+X. Unfortunately, the thread died off, and I wasn’t sure if someone had already written an Sh script that I just hadn’t found. I’ve never written one before and only have minimal coding experience, primarily Windows and DOS-based.
This also happens to be an after-work project for me, and I have to start getting ready to leave, so I’ll look into this more later this evening. Do you have any advice or pointers on how to go about getting started writing the script?
Thanks again!
Mike
-
I've got a main menu screen that goes up first that has emulation station and some other things.
But I then send a php request to my own website and based on the return I open up certain functions in the main menu.
I have a super simple and secret web page where I can click "Arcade is Open" or "Arcade is Closed".It has been a constant security war with my 11 year old as he's getting more and more savvy. :D
For example he figured out he could break the boot up sequence and type 'emulationstation' himself and got around the barriers I had at the time.
-
@mikes82 said in Childproofing a RetroPie System:
Do you have any advice or pointers on how to go about getting started writing the script?
Create a set of controller and retropie configurations for each UI mode - full and kids and copy them to the right place with a script.
For instance, to toggle kids mode on create a script in `$HOME/RetroPie/retropiemenu/kids-on.sh :
#!/usr/bin/env bash cp $HOME/cfg/MyController-kids.cfg /opt/retropie/configs/all/retroach-joypads/MyController.cfg cp $HOME/cfg/runcommand-kids.cfg /opt/retropie/configs/all/runcommand.cfg
In
$HOME/cfg
, save version of the configuration files (controller and runcommand) that are suited for kids mode with thekids
suffix.Similarly, create configuration files for
full
mode in the same folder and a similar script that would copy the configuration files.Now, before you turn Kids mode on in EmulationStation, just run the
Kids-On
script and vice-versa (run theKids-Off
script after exiting Kids mode so you have full capabilities). -
At 11 years old, I would have been trying to figure out ways to bypass the parental controls too :)
I'm trying to keep this build relatively bulletproof and straightforward. It is for a buddy at work who sold off his NES and SNES collections back in the 90s and is starting to miss playing some of those old games. I had an old Pi 3 Model B board that I no longer use after upgrading to a Model 4, so I figured I'd put a fresh image on the Pi 3 and let him and his family have it.
I've only loaded 8 & 16-bit games that many would consider family-friendly by today's standards, MK-type fighting games being the most extreme. I'll show my friend how to set the parental controls for game access. I mainly want to lock down all setup menus to prevent accidental changes from being made while in Kiosk or Kids mode; thus minimizing tech support calls to me :)
Regards,
Mike -
Writing the script must be done on the Pi itself or through an SSH terminal like PuTTY; it cannot be written on Windows and transferred via WinSCP, correct?
I have little coding experience. I am a professional Electronics Technician of nearly 20 years, so I am of a technical mind; however, my skillset lies more on the hardware side. I have experience with Unix and Linux outside of RetroPie, but nothing more than following work instructions. I have never written anything from scratch.
It seems like these would be relatively simple features to implement, and I would like to learn how to write scripts, but I’m kind of out of my element and trying to find my bearings. I do believe step 1 requires reading the Developers chapter of RetroPie Docs, though :)
Is there anything existing on the Pi that is similar enough to use as an example of what I want to achieve? I have modified config files before and have a basic understanding of how they work; how the scripts interact with the configs is what’s throwing me off (I think…).
Thanks again for the assistance!
Mike
-
@mikes82 said in Childproofing a RetroPie System:
It seems like these would be relatively simple features to implement, and I would like to learn how to write scripts, but I’m kind of out of my element and trying to find my bearings. I do believe step 1 requires reading the Developers chapter of RetroPie Docs, though :)
No, it doesn't require that. The entire script is just what I posted earlier - just copying 2 configuration files, 2 lines in a
.sh
file. You can create the script on the Pi itself (over SSH, using thenano
editor) or use WinSCP to edit the file. -
I'm thinking I was overthinking this from the start, lol. It sounds like this truly is a simple task once you have the slightest idea of what you're doing!
Your advice is starting to sink in, and I believe I'm beginning to grasp the concepts well enough to where I might be able to do this! I didn't know how or where to start, but I think I have reached the point where the missing pieces will begin to fall into place once I am on the machine and start poking around.
Once again, many thanks!
Mike
-
I make sure to keep a backup of my build as an image file incase my kids mess anything up.
I also disable the launch menu for the games in options run command.
And for mame I map the mame config menu to the keyboard as they don't use the keyboard.
And using kids mode.
I ended up making a seperate kids only setup and getting my kids a pi of their own and backed up their setup so if they do somehow manage to break it I can just rewrite the image.
They didn't want much content just some of their favourites and kodi
Sim
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.