The state of emulation on Android

For whatever reason, I have a strange fascination with emulators, and making sure that I can emulate as many machines and game consoles as possible on my current PC.

The one thing I haven’t researched until now is emulating various systems on my Android device. Now that I’ve received my shiny new Galaxy S7, I figured it must be powerful enough to emulate a good fraction of older hardware. And indeed, I was pleasantly surprised by the “state” of emulation on Android.  Emulators for NES and Super NES are readily available on Google Play, along with emulators for Atari and Commodore 64, and hardly require the latest hardware to run well.

But what about emulators of actual PC hardware? Well, there’s the excellent DosBox Turbo app, which is an optimized DosBox port to Android. This is not a free app, but it’s well worth it. However, what I was looking for is a true PC emulator, such as the great bochs emulator that I’ve trusted for a long time to boot into my disk images of Windows 3.1 and Windows 95. After a bit of looking, it turns out that this is available, too!

Thanks to some fantastic work by Pelya (for porting the SDL 1.2 library to Android, thus making it easy to port any SDL-based application to Android) and by Lyubomyr (for actually adapting bochs to use pelya’s SDL port), we now have a perfectly working version of bochs for Android! Using their build instructions, I was able to build my own bochs APK, load it onto my device, along with a few disk images. And after a few configuration tweaks, I’m now able to run my emulated images nearly flawlessly:

Here it is, running Windows 3.11:

…and Windows 95:

…and Windows XP:

And here it is running one of my favorite old DOS games, Return to Zork!

Planetarium app for Samsung Gear VR!

As a fun side-project during the last few weeks, I’ve been developing a planetarium application for the Samsung Gear VR headset (one of the neater gadgets I’ve gotten my hands on this year), along the lines of Stellarium or Google Sky Map. It’s pretty rudimentary so far, but nevertheless packs most of the features you would expect from a planetarium application, such as constellations, accurate planet positions based on current time, and a selection of Messier objects.

You can “look at” any object in the virtual night sky within the app, and see a pop-up description of its name. While looking at an object, you can also tap on the trackpad on the Gear VR device to retrieve a full description of the object from Wikipedia (using Wikipedia’s new RESTBase API, which I also help develop).

The app is not yet deployed to the Oculus app store (working on it…), but you’re welcome to check it out on GitHub and build it for your own device. Here are some screenshots:




Star Wars: The Force Awakens — Obligatory Commentary

The new Star Wars movie is really great, but it’s by no means a perfect movie. It strikes a relatively good balance between capitalizing on nostalgia or “fan service,” and delivering fresh, new characters. I’m also thankful that it makes zero references to the prequel trilogy (Episodes I through III). In fact, I firmly believe that one of the planets destroyed by the new Starkiller Base is Coruscant, in a symbolic gesture of destroying any remaining evidence of the prequels. In this way, this movie fully redeems the entire franchise from the sins of the prequels.

But, now that the initial excitement and giddiness have worn off, I’ve crystallized some thoughts on what exactly my issues with this movie are, and I’ll focus on just one:   by far, my biggest complaint is that our lead character, Rey, is implausibly too good at what she does, for the mere convenience of the plot.

This seems to be a recurring theme in J.J. Abrams’ movies. If we look at Star Trek (2009), we see that all the characters are super-geniuses: James Kirk graduates from the Academy in three years, and gets promoted to Captain on his first mission. Uhura speaks a hundred languages, and can learn a new one by listening to it for a few minutes. You get the idea. To me, this suggests that Abrams is more interested in jumping as quickly as possible to the action by endowing his characters with super-human abilities, rather than taking the time to develop his characters in a richer way, by allowing them to be vulnerable human beings with weaknesses.

The Force Awakens obviously invites us to draw comparisons between Rey and Luke Skywalker from the original trilogy, so let’s examine these comparisons:

When we first meet Luke Skywalker, we learn that he’s a good pilot, but that’s about all he is. When it came to most other things, he was pretty much clueless. He had no knowledge of the Force, he was useless in a fight, and had to be rescued multiple times by supporting characters. This made us care about Luke in a much deeper way, because there were times when he was in real danger.

In fact, we can even make the argument that when Luke destroyed the first Death Star, he did it by being a good pilot and a good shot (and being very lucky that Han Solo joined the battle in the end). The Force may have helped him a little, but he certainly didn’t use the Force in the kind of “direct” way that a Jedi would use after sufficient training. Indeed, it wasn’t until Luke’s training with Yoda that he learned to harness the Force directly to manipulate physical objects, as well as to manipulate the actions of weak-minded fools.

Compare this with Rey, who goes from being a lowly scrap scavenger struggling to put food on the table, to doing all of the following in the course of a single movie:

  • Pilots and repairs the Millennium Falcon better than Han Solo ever could, having never touched it before.
  • Resists Kylo Ren’s mind probing, despite Kylo Ren having been trained by Snoke and presumably by Luke Skywalker.
  • Performs a Jedi mind trick on a stormtrooper without ever having heard that Jedi mind tricks are even a thing.
  • Wins against Kylo Ren in a tug-of-war to pull the lightsaber out of the snow, without ever learning that that’s possible.
  • Nearly defeats Kylo Ren in a lightsaber duel, having never used a lightsaber before. (Sure, admittedly Kylo Ren was weakened, but still: he’s a dark-side Force user, trained by Snoke and by Luke Skywalker!)

Because of all of these implausible outcomes, and a ton of other coincidences, we never get a sense that Rey is in any actual danger, which distances us from being able to relate to her. I compare all this to using cheat codes in a video game: “Just get to the boss fight! I don’t have time to go through the rest of this storyline…”

Anyway, once again, The Force Awakens is a great movie overall, and I look forward to watching it again many times. The shortcuts that J.J. Abrams took with the Rey character are certainly not enough to ruin the whole thing.  I just hope that the next installment (Episode VIII) feels more like a true sequel, rather than a sequel-reboot hybrid. I also hope that we get to delve much deeper into the stories and vulnerabilities of the new characters that we’ve met. I want to fall in love with them — but I haven’t yet.

On a completely different subject, one other nitpick I’ll mention is a “scientific” one:
When the Starkiller Base fires its weapon, it destroys five planets at once, and we see all five planets in a single frame! If five planets were that close together, they would gravitate towards each other, and eventually combine violently into a single larger planet. Speaking of which, are all the planets in the Star Wars universe inside a single solar system now? The Starkiller Base weapon took less than a minute to reach its targets, meaning either that the weapon travels faster than light, or that Starkiller Base is very close to the other planets. Did the citizens of Coruscant fail to notice the Starkiller Base being built next door?

A shot of nostalgia

I’m an avid appreciator of old (antique?) (vintage?) computers, and there’s nothing like the nostalgia that I get from occasionally stumbling upon an ancient computer (say, somebody’s old Commodore 64), and remembering a 10-year-old me learning to program in BASIC. That’s why, whenever I come across a really old computer, I’m compelled to tinker with it, and even try to turn in on, and see if it still functions.

So, you can imagine my excitement when a friend of mine presented me with something that was lying around in his attic: an original Compaq Portable Plus!

Now I know how Jean-Luc Picard must have felt when he was presented with a Kurlan Naiskos. But nothing could have prepared me for what happened when I flipped the power switch after dusting it off: the computer booted up successfully without any hiccups, and landed me at the MS-DOS (2.0) prompt, in all its green-screen glory.

Let me mention just a few of the features that make this computer a must-have companion for the modern business professional (of 1983):

  • At an unbeatable price of $3,600, it’s affordable for any tech-savvy business pro, and will easily pay for itself in terms of the productivity boost you’ll get from using it.
  • Weighing in at just under 30 pounds, it’s perfect for all your on-the-go computing needs.
  • The generous built-in 9-inch monochrome CRT display keeps you focused on the task at hand, and the integrated CGA adapter allows you to connect to an external display, with an astounding resolution of 640×200, with 16 colors!
  • Powered by an Intel 8088 processor, at a whopping 4.77 MHz, this beast will blaze through any modern game or office application, making you the envy of all your friends and colleagues.
  • With 256KB of RAM (expandable to 640KB), it will handle all your most memory-intensive applications, and should be enough for anybody.
  • The built-in Parallel and Serial ports, as well as the versatile ISA expansion bus, allow you to connect your computer to all your essential peripherals. Why not splurge on a 1200-baud modem for calling up your favorite BBS while you’re on the go?
  • It goes without saying that the computer comes with a 5-1/4” floppy drive, compatible with single- and double-sided disks.
  • Best of all, the computer comes with a built-in 10MB hard drive, giving you an unprecedented amount of storage for all your files, without the fuss of floppy disks!

The verdict: an all-around winner!




View 3D MPO photos with Google Cardboard

One thing that I’ve been meaning to get my hands on is Google Cardboard, which is an extraordinary bit of technology that transforms your smartphone into a virtual reality display, for the cost of just a few dollars! I love the simplicity of the concept, and I especially like how it repurposes existing features of the mobile device, specifically how it uses the magnetic field sensor to implement a sliding magnetic button. Anyway, I bought mine from Unofficial Cardboard:


While familiarizing myself with the Cardboard SDK, I realized that a perfect application for Cardboard would be to view .MPO photos taken by 3D cameras. So I created a minimal Android app that automatically searches your device for .MPO files, and displays them for viewing with Cardboard!  You can find the app on the Google Play Store, and the source code on GitHub.

A few notes about the app:

  • It automatically searches your phone’s internal memory and external SD card, but only up to two folder levels deep. For best results, place the .MPO files in the root directory of the memory card.
  • It creates a slide show out of all the MPO files that it finds. You may advance through the slide show by using the magnetic Cardboard slider control. It does not currently allow any customization of the slide show (excluding/including files, custom ordering, etc). Stay tuned…