Android‎ > ‎

C64 Emulators

I was and still am a huge Commodore 64 fan, perhaps to the point of unhealthy. C64 emulators are nothing new of course, but nowadays an average Android device seems capable of running our favourite old 8-bit games at full speed. If you have a Sony Ericsson Xperia Play like mine with its slide-out control pad, you've got yourself a C64-flavoured Gameboy of sorts.

There's just one problem. Not all the emulators you find in the Android Market work very well on the Xperia Play or similar modern handsets. I'm extraordinarily picky about the display, i.e. how smooth is the frame rate? How well is the screen is resized to fit the device and such. Why? Because I'm likely to play these games for hours on end. After playing through The Last Ninja a few times, this stuff really matters. Besides, I don't want to keep any further damage to my eyes to a minimum after 30 years of geeking out.

These are the emulators I've tried so far and the experience I've had with them on my device.

Frodo C64 (Arnaud Brochard)
Price: Free


Frodo feels more suited to older Android handsets, but seems to manage 50 FPS on the Xperia Play once the default frameskip has been turned off. It has a decent interface with its own on-screen keyboard, but this can be a nuisance in landscape mode as it almost completely covers the screen and you have to navigate through a menu to hide it. The on-screen joystick can also cause artefacts to appear on the screen even when disabled, but there is a work-around by choosing the "Old joystick" option in the "Settings" menu.

The emulator will stretch the screen but does not perform any filtering / antialiasing, which results in ugly graphics in full-screen mode unless you choose the "2x" option. This looks pretty good in landscape. Compatibility is not so good though, and the interface is buggy and in need of an update.


VICE (Pelya)
Price: Free

This is a free port of VICE, which offers better compatibility than Frodo. It has taken a lot of criticism for its lack of a "proper" Android interface, instead relying on a basic configuration tool at launch time for video options, on-screen controls, button mappings and such. Disks and tapes are managed through a built-in text interface, which tends to deter casual users. If you can get past this, it's actually a very good emulator.

Sadly, it's my opinion that the overall experience is let down by its weird, unconfigurable video modes. There is no portrait mode and the default layout crops the side borders, but keeps the top and bottom borders:


Most (all?) Android handsets and tablets have widescreen displays, so to keep the original 4:3 aspect ratio (or something like it) it would be necessary to do the opposite. Unless there's some major technical reason for doing it this way, cropping the top and bottom borders would have looked much better wouldn't it?

The initial SDL configuration tool provides an option named "Keep 4:3 screen aspect ratio". This is what the display looks like with this enabled:


How annoying. The side borders are still missing and the screen is not central. I know I shouldn't let stuff like this ruin my day, it's a free app after all. However, I would gladly part with some money have this fixed, especially something so trivial that would make a good emulator really great.


AnVICEx64 (Locnet)
Price: £1.99 ex. VAT

Another port of VICE, but this one is a paid app which stands out in the field of full-screen goodness. It also has a proper Android front end and makes good use of the device's default keyboard (a "Special Keys" menu provides the function keys, RUN/STOP and such). I found it fairly easy to write a few lines of BASIC just as easily as writing a text message, which is a big plus. It doesn't ship with any of the C64 ROM files though, which is presumably because it's a paid app and perhaps you can't really sell an emulator with ROMs. It's easy enough to get around, for example installing the above free version first, then pointing the emulator at /sdcard/app-data/org.viceteam.sdl/C64.


Compared to the Pelya version of VICE, AnVICEx64's aspect ratios aren't stupid so it's by far the best of the three. However, for some reason its engine appears to need more CPU to achieve the same FPS. Turning on the "Smooth Resize" option for some games or demos can cause the scrolling / blitting to become noticeably less smooth. It also uses more CPU in landscape mode than portrait mode. The Pelya version doesn't appear to suffer from this. However, AnVICEx64 manages 50 FPS most of the time with "Smooth Resize" enabled so most games look great and play perfectly.

The real advantage of this version for me is the option to turn off the border altogether. This will crop to the main screen area by default. Neither of the other two emulators do this, which I find rather baffling:


I contacted Locnet about the video performance, not expecting much of a response (how much service do you expect for a couple of quid?) but I was pleasantly surprised. The developer clearly wishes to continue improving the emulator and advised me that the screen update framework is throttled back to allow enough CPU time for the emulator itself. I was sent a beta version with an option to turn off this limit, which made the display a lot smoother with "Smooth Resize" enabled in most cases. I'm still not clear on why some emulators perform so much better than others with antialiasing enabled though. I assumed that emulators such as MAME4droid or MD.emu might be using a level of hardware acceleration that is not available through some engines, but I'm not sure now.

As I'd had such a good response from the developer, I raised a feature request for a 2x video mode, i.e. scale the screen by doubling the pixels like in Frodo. This would theoretically be free from aliasing and the "Smooth Resize" option would not be needed as much. Locnet said they would consider this feature for a future release.

What would be even better would be an option to crop to the main screen, with the side borders still emulated. No such option exists and the following screenshot is a mock-up:



I also suggested this mode as a potential new feature, but it is unlikely that this will be implemented. You can't have everything I suppose.