Friday, July 25, 2014

Adventures in RetroPie


One of my goals with Raspberry Pi was to turn it into a vintage gaming console like the video above. I tend to be seduced pretty quickly by cheap ways of using interesting technology. The video can be found with more detailed written instructions on Lifehacker.com. Unfortunately, for the total noob like me, there are lot of little steps a long the way that made this "easy" project take way longer than prescribed.

Step One required me to download and install RetroPie on a SD card. RetroPie is the software that allows the Raspberry Pi to be used as a multi-platform vintage gaming console. The installation was not a simple drag and drop action. Lifehacker suggested using RasPi SD Card Builder for the Mac. One tutorial noted that Card Builder caused problems for some people. I, of course, am some people.

RasPi SD Card Builder seemed to stall about 3/4 of the way through the process. I made multiple attempts. A couple of times I received the error below.

Noob that I am, I wasn't sure  how to fix the problem. A couple tutorials suggested beginning a Terminal session on my Mac to build the SD card. However, they also mentioned being EXTREMELY careful. Entering the wrong syntax could cause major corruption to my Mac if I did things wrong. I really didn't want to cause total system failure just so I could play Super Mario Brothers and Excitebike.

Against, my better judgement, I began a Terminal session. I was very careful and followed the instructions from Tuts+ for flashing an SD card from Terminal. It really wasn't difficult, but the looming threat of a corrupt Mac had me worried. For the next 20 or so minutes, I starred at the window below.

In Terminal, there is no status bar. No blinking cursor. No spinning wheel. Nothing. You just wait. And hope that something is happening. And hopefully that something, isn't completely catastrophic to your hard drive. Multiple tutorials for RasPi setups use the phrase "this may take a few minutes, be patient". Unfortunately, "a few minutes" is really vague. Sometimes it means 2-3 minutes. Other times, it means more like 20. For flashing this particular image, it meant 45 minutes. By the time it was done, I was ready for bed.

The next morning I attempted Step Two and booting RasPi to boot up Emulation Station. Emulation Station is like an OS that manages multiple vintage gaming console emulators. You can load NES, SNES, Sega, Atari, and several other systems and play any ROMS (games) that you may have. Step two is not particularly difficult, other than setting up your "Internationalisation Options". Setting up your keyboard properly is essential to making things work. My Apple keyboard proved to be a little troublesome at first. But with some tweaks, I think I figured it out.

After another reboot, I had to set-up my controller for Emulation Station. I was using a  USB SNES controller from Amazon. To be honest, I didn't really know what I was doing in this step. I was just blindly following instructions. Things seemed to be working right. But after spending several hours just trying to flash the SD card, I was happy to just see RetroPie booting. I semi-successfully set up the controller for Emulation Station, but something was wonky. I didn't feel like I had full control of what I was doing. The buttons on the controller didn't seem to be acting the way I thought they should. I soldiered on.

Step Three required me to configure my controller for the emulators. This is a separate step than configuring the controller for Emulation Station. Remember, Emulation Station is like the OS. The emulators themselves (NES, SNES, Atari, Sega, etc) are more like the apps. Emulation Station and the Emulators have their own sets of configuration. I had to go back into command line and tap each button on my controller (up, down, left, right, a, b, x, y, l, r) when prompted. It wasn't difficult, but it took a couple tries.

Step Four was where things started getting real. I had a few ROMS that I had played on my Mac. Super Mario Brothers, Excitebike, RC ProAm, Blades of Steel, Contra, and NHL 95. In Step Four, I needed to load them on my RasPi. Lifehacker recommended CyberDuck for transferring files from my Mac to the RasPi. I downloaded CyberDuck, connected RasPi to my router via Ethernet and realized that I no idea how to find the IP address of my RasPi. Using "ifconfig" in command line, I learned how to find it, thanks to this link. (fwiw, i could never have done any of this without google) I connected to RasPi and eventually transferred my ROMs.

I rebooted to happily discover NES and Sega appearing in Emulation Station. Yay! I attempted to navigate to my games using my controller with little success. Something wasn't working right. I kept getting lead into a menu screen with options that weren't mentioned in my tutorial. I kept tapping buttons until finally I managed to reach the opening screen of Super Mario Brothers. Success! Kinda. 

The game itself worked flawlessly. I was jumping, busting bricks and collecting coins like it was the late 80s. Unfortunately, I couldn't seem to exit the game. My Apple keyboard was unresponsive as I tapped F4 and ESC. I couldn't even get back to command line. Frustrated, the only way to end a game was to reboot by pulling the power cord. This is not good practice with RasPi or any computer.

I ended up reconfiguring the keyboard settings a little to provide myself an exit from the game and Emulation Station. However, I feel like I should be able navigate and control the entire console from the controller.

Now it is probably worth mentioning that I attempted this project using a 25+ year old 13" composite TV. I do not recommend this! Composite TVs crop to much navigation from the top and bottom of the screen in both Emulation Station and Raspian. Raspian is unreadable on a composite. HD is essential. I later connected the RasPi to my 40" HDTV and was amazed to discover an entire menu at the bottom of Emulation Station that had been obscured by the cropping of my composite. My controller suddenly didn't seem so wonky.


While this project was not a gigantic undertaking, I really don't know how comfortable I am putting something like this in front of my K-4 students. While many of them have surprised me, the need for Terminal sessions seems a little too advanced. I have two RasPi  for my classroom this year. I thought I had an idea of what I'd like to do with them. Now, I'm not so sure.

No comments:

Post a Comment