GameShell Kit Review – Part 2: An Hackable Retro Gaming Console

Orange Pi Development Boards

ClockworkPi GameShell is an hackable retro gaming console combining Arm Linux and Arduino boards that happens to come in kit form, and that’s lot of fun to assemble as we’ve seen in the first part of the review of ClockworkPi GameShell. Since then I’ve had time to have more fun, play some games, and experiment with the device, so I’ll report my experience and point out the good parts, as well as some of the shortcomings I came across.

Gameshell Review

We can press the power button to start it up, and after a few seconds we get to the main menu with several icons including…

gameshell home the self-describing Settings, Retro Games with MAME, MGBA, NESTOPIA, and PCxs emulators that require your own ROMs/BIOS, as well as Indie Games with ready to play games like OpenTyrian spaceship shooting game, or NyanCat.

gameshell-home-retroarch-cavestory-freedmMoving on to the right of the menu we’ve got the famous RetroArch emulator that allows you to easily download cores, Cave Story platform-adventure video game, and FreeDM (Free Doom) first person-shooting game.

gameshell-home-pico-8-reload-ui-music-playerSome of you will be pleased to see PICO-8 as found in the late PocketCHIP game console until you realize that you are being asked to “Please purchase the PICO-8 and copy it to the ~/games/PICO-8” directory.

gameshell pico-8

However, it just costs $15 to add, and instructions to install it can be found in Github. The  Reload UI will reload the UI as stated, but I’m not sure why it’s there…, and Music Player will play music stores in ~/music directory.

gameshell-tiny-cloud-powerOFFFinally the main menu ends with Tiny Cloud, and PowerOFF icons with the latter allowing you to turn off or reboot the game console.

I’ll explain what Tiny Cloud is in a moment, but first let’s go to the settings where’s you’ll got plenty of sub-menus with Airplane Mode, Power Options, WiFi, Bluetooth, Sound volume, Backlight Brightness, Storage,

settings airplane power optionsTimezone, Languages, Notification, Update, About, Power off, Buttons Layout, gameshell-settings timezone languagesSwitch to LauncherGo (same UI but less icons and settings options), GPU driver switch (FbTurbo or the open source Lima driver), and Network Gatework switch to use either WiFi or USB Ethernet.gameshell-settings-menuI’ll start with the most important / useful settings, since the first thing you’ll likely do right after switching on the device for the very first time is to setup a WiFi connection to your router.

It’s easy enough and I had no troubles even with a password with special characters, but bear in mind that the device only works over a 2.4 GHz connection, as dual band / 5 GHz WiFi is not supported by the hardware.

Next step should be to ensure you’ve got the very latest firmware. As I went to the Update menu, my model was pre-loaded with “stable 1.23”.

Gameshell Firmware 1.2.3I pressed X as instructed to check for new firmware, and I was told “update c4587c1” was available…

Gameshell Firmware 1.2.3Let’s go ahead by pressing the “B” button, the LOADING screen shows for a while…

Gameshell Firmware Loadingand finally I got confirmation the firmware was indeed update to the latest “stable 1.24” version.Gameshell Firmware 1.2.4

Now that we’ve gone through some basic configuration steps, let’s go back to that Tiny cloud icon…

gameshell tiny cloudIt will show the username and password, IP address, ssh/scp command, Windows network links for games and music share, the Airplay name, and USB-Ethernet IP address. I could easily connect to the game console over SSH:


The console runs Debian 9 with Linux 4.14.2 on Allwinner R16 (sun8i) quad core Cortex-A7 processor with 1GB RAM, and about 11GB storage available from the 16GB microSD card.

As a side note If you wonder how I did the screenshots above, it’s explained in the forum:

  1. Install imagemagick:
  2. Export the display in the SSH console, and capture the framebuffer to a filename of your choice:

    Done, you’ll just find the captures in /home/cpi.

I could connect to the SAMBA share and list games and music directories available to download relevant files.

Gameshell SAMBA ShareI clicked on the music directory, was asked the username and password (cpi / cpi) and  copied some royalty-free music files that I could play in the console’s Music Player.Gameshell music playbackThere’s also an RTA (Real-time Analyzer) view.

gameshell RTA

Let’s now go through some of the other Settings. Airplane menu is just to enable / disable WiFi and Bluetooth.

gameshell airplanePower options give you four different power plans with power saving, balanced, server and performance.

gameshell power optionsI did not investigate the different power plans, and kept using the balanced options for the full review. I got around 3 to 4 hours of battery on a charge for continuous usage.

We’ve already covered WiFi, so I’ll now have a closer look at Bluetooth, and it works, except it doesn’t. Let me explains. Gameshell detected both my laptop and SPORT-S9 headset as shown below.

gameshell settings bluetooth scanbut it can not connect to my Bluetooth headset, so I  installed the Bluetooth module for Pulse Audio in the SSH terminal


and it tried again, and my SPORT-S9 headset connected OK. Hooray!

gameshell settings bluetooth paired

However, I didn’t get any audio. and I’m not alone. It turns out Bluetooth currently on works with HID devices like Bluetooth keyboard or mouse, but audio is not supported. That means audio can work via the internal speakers, a 3.5mm audio jack, or HDMI.

The Sound volume menu allows to adjust the volume via a virtual rotary encoder.

gameshell volume settingsSame for brightness.

gameshell-brightness-settings

The storage menu will just show the free space on the device, you can’t take any specific actions in that section.

gameshell settings storageThe Timezone Selection menu lets you select the continent, and cities to adjust to timezone accordingly.

gameshell-settings-timezoneThe latest 1.24 firmware supports 6 languages: English, Japanese, simplified & traditional Chinese, Spanish, and French.

gameshell settings languagesThe notify menu enables/disables low battery notification only for now, and you’ll likely want to keep it enabled.

gameshell settings notifications low batteryThe About menu gives info about the processor (basically /proc/cpuinfo content), memory, and Linux kernel version.

gameshell settings aboutThe Power Off option will just allow you to power off (no reboot option here), and the Buttons Layout menu switches between SNES and XBOX layouts.

gameshell buttons layout: xbox vs snesSince I was confused with the default XBOX compatible layout in which A = back and B = accept, I switched to the SMES compatible layout, but then it became even more confusing since I had to press “B” when being asked to press “A”, and “A” for “B”…

gameshell gpu driverThe GPU driver switch menu allows you to select Fbturbo or the open source Lima driver, and both appears to work just as well, although they mentioned strange crashes in the forum for the lima driver at the end of last year. More details about FbTurbo can be found in linux-sunxi website. gameshell network gateway: WiFI vs USB EthernetSome people complained about an unstable WiFi connection, and although I found WiFi to work just fine, there’s an option to connect a USB Ethernet dongle.

As mentioned above, some emulators come without any ROM, and you need to load your own, but there are also some pre-loaded and ready-to-play games in the console as shown by the screenshots below.

Gameshell Opentyrian cave story doom
Top Left to Bottom Right – OpenTyrian, Cave Story, GSPLauncher, and FreeDM

RetroArch is also installed, and allows you to easily load cores over WiFi (or USB Ethernet) to play games. I just tried 2048 game in this review.

If you’d rather see ClockworkPi Gameshell in action, I’ve shot a ~14 minutes video showing the interfaces, trying some games, and finally going into the settings in details.

I had plan to look into more details about the hacking part for the console, but due to time limitation, I have not been able to check into details. However, you’ll find several repositories in clockworkpi github account for the Arduino KeyPad code, Linux kernel patchsets, Python launcher, and more. You can also find more tutorials or get help in the forums, especially the “Developers” section if you plan to modify the Arduino or Linux source code.

Overall, I’m pretty please with the GameShell Kit and it’s a fun device to both learn and play thanks to the ~1-hour assembly, built-in games, and STEM education potential with the ability to customize both Arduino and Linux code.

I’d like to thank Clockwork for sending Gameshell Kit for review. If you are interested in the kit, you can  buy it for $159 with Fedex/DHL shipping on their website, and full-time students can get it for $139.

5
Leave a Reply

avatar
5 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Icenowy ZhengtheguyukblujhackTLS Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
TLS
Guest
TLS

Is that Games Hell or Game Shell?

jhack
Guest
jhack

Sounds promising but I wont be an early adopter.

blu
Guest
blu

Wow, they’ve gone a long way towards a finished end product! Considering getting a couple for my kids (and myself, darnit : )

theguyuk
Guest
theguyuk

So why did they not go with the A64 allwinner ?

Icenowy Zheng
Guest
Icenowy Zheng

In fact this device is not enough open-source. The bootloader, which seems to contain initialization of the LCD, is yet closed.