September 05, 2019

Updating BittBoy's Pocket Go Using Linux

I recently bought a Bittboy Pocket Go on a lark. For roughly $35 (on sale) it was a pretty good buy. Gaming isn't really my bag,1 but goofing around for a few minutes here and there has been fun.

Again, for the price, it's been dynamite, but there are some issues. Screen tearing has been one of them.

The community around the Pocket Go has come together and compiled an updated firmware, which is supposed to relieve the issue (as much as software can fix a hardware issue... apparently the screen is locked to 30hz) but all of the instructions require Windows.

That's clearly wrong, so I spent an hour figuring out how to get it working on Linux. It wouldn't be very becoming of me to keep that information to myself, so here we are:

Don't blindly copy things into your terminal you've taken from the Internet. For all you know, I'm a DARKNET wizard and will use your nievity to install horrible viruses on to your computer, wreck your debt, yellow your teeth and woo your significant other. You've been warned!

  1. Back up your files! Plug in your Pocket Go's microSD card and copy over your roms folder (as well as anything else you might fancy a copy of before you wipe the card). Keep it on your computer, make a copy on an external drive, back up all of your data offsite, etc., etc.
  2. Find and install fatresize from your distribution's repository. That might be using a software center, or via the command line; it's your choice, you're a big-(girl|boy).

    For example, on Ubuntu-esque distros, you might type:

    sudo apt install fatresize
  3. Download the latest firmware from the official(?) repository (a place where neckbeards like me, store code we're working on... if you weren't aware).
  4. Extract or uncompress the resulting download. It will end in a .7z extension, which is a strange choice... Perhaps it's more popular on Windows, I don't really know. (Mine was called PocketGo_CFW_v1.3_21-08-2019.img.7z in case you're scared you didn't get the correct file). You can use your desktop environment's built in tools for doing this (like file-roller or Ark) or use the commandline.
  5. "Restore" the uncompressed .img file to your Pocket Go's microSD card. If you're unsure, best reach for an application called Etcher by Balena. Here's a guide to using installing Etcher from Linux Hint.
  6. Here's the "hard" part: you can use the card as is, but you won't be getting the most out of your microSD card's available space. The partition named main needs to be resized/expanded to fill the available space on the card. (E.g., restoring the firmware only used 4GB of the 32GB of space on the card, and ~28GB was left "unallocated" or otherwise unusable by the Pocket Go.)

    Hold tight, we're almost there partner.

    With the microSD card still plugged into the computer, we need to figure out where it's mounted. So fire up a terminal and enter:

    man df

    That was a trick! I just wanted you to know which program you'll be using before you copy things blindly into your terminal. (See the note above, fool.)

    Type q to exit the manual (hot tip: typing man plus whatever command you're about to enter will provide a desription of what a command does and how you might use it).


    you should see a little table that lists all of the partitions currently available to your computer. You're looking for one labelled main. Write down the "Mounted on" address, something like /dev/sda4, memorize it, keep it tattooed on your neck. Whatever you need, pal.

    Here's the fun part:

    man fatresize
    sudo fatresize -s SIZE LOCATION

    Replace SIZE with how much space there is left over. (E.g., I have a 32GB card, so I had roughly 28GB of unused space, so I typed in 27G to replace SIZE. I'm a scaredy cat, so I went conservative. Apparently there's a max to fill up all the remaining space... but I didn't realize that until now.)

    Replace LOCATION with your "Mounted on" address you copied earlier.

  7. Copy your backed up files from step 0, eject that microSD card and plug it directly into your Pocket Go.

Now, enjoy the rest of your day you would have wasted figuring out where to get a usable copy of Windows :)

  1. I respect the medium but it's always fallen too low on my life priority list to care about. 

Ruffle: an Adobe Flash Emulator Written in Rust (Of Course)

There was a time when I couldn't wish that the death of Adobe's Flash could come fast enough. It was inaccessible, required endless resources and most flash site were obnoxiously overdone. With the hindsight that can only come from maturity, do I realise that there were some apps, games and animations that were worth saving.

Cue the Ruffle Project, an emulator for SWF files written in everyone's favorite and overhyped low-level programming language Rust. It's early days yet, and the team behind the open-source project (Apache 2.0 and MIT, respectively) say that it's only capable of running flash animations. Your favourite early-2000's era platformer will have to wait a bit longer as Actionscript is not yet supported.

Signs Preceding the End of the World by Yuri Herrera

This one is still making me think. Herrera’s metaphorical twists and deep imagery are unsettling—not in an uncomfortable way. It's as if something in my head is slightly amiss, like there's a gap where there shouldn’t be, or a line slightly crooked.

It wasn’t at all what I expected, yet I enjoyed every page.

Semi-Automatic Installer of macOS in Virtualbox

It is exactly as the repo description purports: a script to help you install a recent version of macOS in VirtualBox on Linux. Read the description/instructions, confirm that's what you're after, hit enter to move to the next stage. An absolute godsend this has been for browser testing.

More of thoughtfully made automations, like this one, please.

Documentation With Attitude

It's been a long time since I first came across “Why's (Poignant) Guide to Ruby” and I’d forgotten just how personable it is compared to standard programming documentation. Don't get me wrong, I appreciate clear, sober documentation but having a personality counts in a way I hadn't expected.

The love and affection Why the Luck Stiff has for the Ruby is palpable: it pours from every cartoon and zany example. It gets me excited about Ruby, a language I wanted to love but wasn't ready for, yet. I suggest reading the chapter I've linked to get your beak wet and see for yourself just how enjoyable it can be to learn about code. And, maybe I'll take another crack at Ruby, or at the very least, flick through another few chapters.

HTML Is the Web

I read this piece by Pete Lambert and was surprised to learn (as I am every time I learn it) that many web people aren't concerned about learning the ins and outs of HTML. Doesn't everyone have a semi-spiritual relationship with HTML? Or is it just me?

X.Org Being Sent to the Farm

While everyone in my Twitter feed is talking about the departure of Jony Ive from Apple (a big deal, for my future readers to remember, but one I am personally ambivalent about), another massive change dropped from a Red Hat employee's blog post: X.Org will be put in maintenance mode.

Given the crawling release cadence, it probably already has. Red Hat's announcement isn't a death knell, anyone is free to pick it up and contribute, but the current largest contributor is moving on. This is a move that I'm sure will draw some consternation, but Wayland's maturing (though not entirely for many use cases that we currently take for granted, screen recording, anyone?) and thick-heeled companies, like Nvidia need to be put on notice before they'll do anything whatsoever to contribute.

I've recently moved to Fedora, particularly for first-rate Wayland support (mixed DPI display environments are a travesty in Linux). And I suspect that many more will take the plunge after this news.

Raspberry Pi 4

What an unexpected treat! I have a Raspberry Pi 3B+ that I've tineres with and enjoy immensely, but seeing updated I/O on this board, not to mention the increased power, makes me want this board all the more. USB 3 and gigabit Ethernet make me think I have an accessibly priced NAS in my future.

(H/T Phoronix)


I can't remember how this dropped on my lap but for those equally interested in a GitHub repo filled with colours derived from Chinese folklore, you're welcome.