Category Archives: Tutorials

Building a £200 HTPC with OpenELEC

Zbox NanoTiny PCs like the Intel NUC are limited as replacements for the desktop, but they’ve come into their own in harnessing the media-decoding prowess of new chipsets to drive an HTPC. Coupled with free media centre software, it’s become possible to put together a powerful little set-top box that can compete with the behemoths of only a few years ago.

It’s actually feasible to do it even cheaper than that if you use a Raspberry Pi flavour of your chosen software, or even adapt an older PC that’s set for retirement, but my desired integration with my existing setup and a handful of esoteric requirements made this an appealing route.

  • Lossless HD audio over HDMI was a must, and many motherboards are finicky about this
  • Built-in wi-fi, SD card reader and IR saves a lot of messing with peripherals and USB hubs
  • I aim to rip Blu-rays to this thing without recompression, and I don’t fancy a £30 computer to handle those
The hardware

I spent £170 on a Zotac Zbox Nano AQ01, which nets you the box without RAM or internal storage. I recycled a 2GB RAM stick from when I upgraded my laptop – somewhat anaemic, but fine if media playback is all you’re planning – and dug out the old 60GB HDD that used to inhabit my PS3, which is more than capacious enough for the OS if you’re using external media storage. The box has seven USB ports (2x USB 3.0 and 5x 2.0), so you have plenty of scope to add capacity later.

If you don’t have the skeletons of various computers around to raid, you could plump for the more expensive Plus model, which includes 4GB RAM and a 500GB HDD. An even cheaper storage option if you’re relying on external or network storage and want a pure XBMC machine is a low-profile USB flash drive like a SanDisk Cruzer Fit, which can slot into the back and never have to be seen again. You’ll want at least 8GB as even though XBMC isn’t very large, the library of high-quality artwork it caches for your movies can be.

The Zbox AQ01 runs on AMD’s A4-5000 platform. That’s based on the same Jaguar architecture found inside the PS4 and Xbox One and has GPU-accelerated video decoding, ensuring smooth playback of high-quality video. It’s more than capable of general computing tasks if you install a full OS like Windows or Linux on it, but I’m not interested in that.

It has HDMI (also DisplayPort), optical audio, Wi-Fi (802.11ac), Bluetooth, gigabit Ethernet, a 7-in-1 memory card reader and, pleasingly, a built-in IR receiver. In short, it’s incredibly well-equipped considering the compromises I was looking at making in building my own, much physically bigger and more expensive, HTPC.

The software

For this project I’m sticking with what I know, which is XBMC. I first used it circa 2004 when it was Xbox Media Center, a staple of the modded Xbox scene, and since then it’s expanded to other platforms. I’ve opted for its OpenELEC form, a stripped down version of Linux bearing only what it needs to run XBMC. It’s fast, light on resources, and takes up very little space. A similar option is XBMCbuntu, which leans slightly more towards flexibility at the expense of hardware requirements.

XBMC also runs atop Windows and the Zbox will happily run it, but a licence costs almost half as much as the machine, so forget that.

The process of ripping DVDs and Blu-rays is handled on my main computer, using MakeMKV to generate a lossless rip and HandBrake to compress the DVDs. Using this, I can get a DVD movie into around 1.5GB with little quality loss. BDs are staying in all their 30GB+ glory, HD audio and all. I started with a 1TB USB drive that didn’t last me through a tenth of my collection before I had to move to bigger, more expensive network storage (a Synology DS214se with 2x 4TB HDDs), but it should suit most users.

Installation

With the Zbox all working and the OpenELEC installer on a flash drive, all that needs doing is popping that into a USB slot, turning it on, and running through the five-minute installation. I couldn’t get the Mac script to correctly create a bootable USB drive, but I ran the Windows version instead without issue. That’s really all there was to the setup, as things are basically ready to go from the start; run through the settings to get things configured how you want them, point XBMC at where your movies and TV shows are stored, and you’re off.

Skins and add-ons

I’ve frequently found that UI design isn’t a strong point of open source software, and the majority of XBMC skins I tried did indeed look like they were designed by teenage boys. The default skin, Confluence, is a solid choice, though. My only major complaint was that it lacked a library view that fulfilled my dual aims of putting the lovely artwork and metadata to good use and being usable with my large library. The ‘fanart’ view wastes a lot of space.

XBMC Confluence skin

I eventually settled on Aeon Nox. The more granular control over the main menu is nice, allowing me to drop options like sets, which I’m never likely to use, and create my own shortcuts to unwatched movies and similar filtered lists. A classy set of background images reins in the main menu − that open source design again − and the ‘infoview’ option allows me to see more movies at once without sacrificing the poster art and metadata:

XBMC Aeon Nox skin

An honourable mention goes to Quartz, which convincingly imitates the Apple TV interface. Very slick and would have been a contender for my skin of choice were it not for the lack of anything as good as the above view.

Issues

A niggle more than anything would be that programming my Harmony remote to perform anything but the most basic functions – anything not on a generic Windows Media Center remote – is a world of XML files and key listings that I frankly can’t be bothered to get into. I also can’t turn on the Zbox with the remote, though I sense that’s going to be a common limitation unless I fancy leaving the thing in hibernation 24/7. Shutting down that way works fine.

I’d also suggest Intel or Nvidia graphics hardware if bitstreaming HD audio is your intention. AMD’s Linux drivers are a bit naff, and although it’s not impossible to get it working, it’s a daunting process. For now I’m letting XBMC handle TrueHD and converting DTS-HD to FLAC during the ripping process. If a future OpenELEC update enables proper HD audio support, brilliant; if not, no big deal.

Should you be less finicky about such things, though, you’ll have no problems with this setup. It’s going to take me a good while to get everything ripped – 284 down, approximately 500 to go at the time of writing, not counting TV shows – but when it’s done I look forward to reclaiming some shelf space and having an on-demand box that, unlike Netflix and friends, actually has a library I’m interested in.

Converting Blu-ray HD audio to FLAC

As I mentioned in my first look at ripping Blu-rays, converting uncompressed PCM and lossless Dolby TrueHD and DTS-HD Master Audio to FLAC for use in XBMC carries a number of benefits.

  • It’s also lossless, so no quality difference.
  • FLAC is an open, well-documented format and so you’re not reliant on reverse-engineered implementations.
  • XBMC can decode FLAC to PCM and output it over HDMI, whereas it currently can’t for DTS-HD.
  • Hard drive space savings can be significant, especially for PCM soundtracks.

There’s little penalty in terms of the time taken to rip the disc either, as it’s unlikely that your BD drive can copy data from the disc fast enough for the conversion process to become a bottleneck.

What you need

This process still uses MakeMKV, with the feature enabled in by checking the advanced options box in the settings. TrueHD decoding is built in, but you’ll need to find a separate DTS module and point MakeMKV to that.

MakeMKV

All you then need to do it choose the ‘FLAC’ preset when ripping a disc. Otherwise the process is identical.

File sizes

I picked three movies representing the three HD audio formats supported on BD. All were ripped to an MKV file containing only the main video, the lossless main audio track, and no subtitles; file size recorded; then passed through MakeMKV again to convert the audio to FLAC. After conversion, MediaInfo was used to verify that the number of channels, sampling rate and bit depth (some versions of the DTS decoder have a bug that will change 24-bit audio to 16-bit, hence the use of 24-bit audio tracks below) were unaffected.

Movie Audio Original size New size Delta
2001: A Space Odyssey PCM 5.1 (48kHz, 24-bit) 20.10GB 16.38GB 3.72GB (18.5%)
Blade Runner Dolby TrueHD 5.1 (48kHz, 24-bit) 18.22GB 18.08GB 0.14GB (0.8%)
The Bourne Identity DTS-HD Master Audio 5.1 (48kHz, 24-bit) 25.96GB 25.42GB 0.54GB (2.1%)

I noted a few more, with all the data recorded in this spreadsheet. The range of formats reflects the predominance of DTS-HD on Blu-ray these days, but there’s a clear 2-3% gain on substituting FLAC there. It doesn’t sound like much, but it’s half a gig when you’re talking about files of 20GB and up.

Conclusion

According to my unscientific tests, then, converting to FLAC delivers a saving in file size over the untouched original track across the board, with a minimal reduction for TrueHD and a handy half-gig saved on DTS-HD. Obviously, since the others are already losslessly compressed, the biggest gains come over PCM, where FLAC can shave 3.72GB off the size of the 2001 MKV – enough for another couple of DVD rips on my HTPC’s hard drive.

Some notes on ripping Blu-rays

Owing to my current HTPC project, about which a more comprehensive post is on the way, I’ve spent many hours over the last week delving into the murky, unexplored realm of ripping Blu-rays. This being a more niche format, requiring more unusual hardware and scads of hard drive space, the tools required aren’t quite as polished and straightforward as ripping a DVD, but a bit of trial and error has taught me a few tricks.

Tools

The most important tool is MakeMKV, which is free while it’s in beta. It’s a great app that does one thing and does it very well: rips DVDs and Blu-rays from the disc to an MKV file. No conversion or compression – except for one exception, which I’ll come to shortly. DVDs get run through HandBrake since a heavily compressed source isn’t going to suffer too much and the file size can be cut by ~60%, but I want my BDs in their full glory.

MakeMKV

File sizes that this approach result in range wildly, but a single file with one HD audio track results in a 20-40GB file. Hope you have a lot of HDD space.

As far as Blu-ray hardware goes, I spent £39 on a Panasonic UJ-260 on eBay, which is a USB drive that can read and write Blu-rays all the way up to the 100GB BD-R XL discs. It can rip most movies in 40 minutes or so. A very decent no-frills BD drive that works fine on both my Mac and the HTPC.

Handling HD audio

One minefield in putting together an HTPC is that the capabilities of HDMI hardware vary wildly depending on hardware and driver support. A particular difficulty comes in the ability (or not) to output Dolby TrueHD and DTS-HD Master Audio as a bitstream, which allows an AV receiver to handle the decoding and processing. Most HTPC software can decode internally to some extent, however, but my choice uses a reverse-engineered open-source implementation, and I can’t help but suspect that it’s not going to do as good a job as my Denon.

As it happens, bitstreaming HD audio on AMD hardware in Linux is a new addition and doesn’t yet work reliably on my setup. TrueHD can be decoded to uncompressed PCM in XBMC, but DTS-HD leaves me only with the compressed DTS ‘core’, which is barely better than DVD. That won’t do.

Thankfully MakeMKV has the ability to convert the HD formats to the open-source FLAC, which is open and far better documented. What’s more, it actually creates smaller files, while still remaining lossless. And it’s a handy option for those releases with only PCM audio, as that can account for 8GB of audio alone.

There’s a separate post coming on this issue, complete with file size comparisons.

Subtitles

BD handles these slightly differently to DVD. Whereas DVD would have a separate, hidden subtitles for ‘forced’ subs (e.g. scenes in a foreign language in otherwise English movies), BD simply marks the appropriate lines in the main subtitle track as forced, meaning they should be shown even if subtitles are turned off.

MakeMKV has the ability to only add these forced subs to the output, but you still need to work out which track is the correct one – a movie can have separate English subtitle tracks for closed captions, commentaries, dubs vs original tracks (e.g. a direct transcription of the English dub and a more literal translation of the original audio, as on some anime releases), trivia, and more.

Handily, the community as AVS Forum has put together a spreadsheet that lists the correct subtitle tracks for various releases. It’s not comprehensive, but it has a lot of common movies. Worth bookmarking if you’re going to be doing a lot of this. Simply tick the ‘forced only’ box for the one you need.

More to come…

These are the results of my early experimentations. I’ve got a spreadsheet – when I say I’m experimenting, I mean it – on the go with the compression rates achieved by the above FLAC conversions and will share that data when I’ve converted my initial batch. Also, once this whole HTPC project is in a stable state, I’ll put together my tips on how one can be assembled for around £200. In the meantime, get a load of this…

XBMC movie library

Isn’t it beautiful?

Running classic PC games on a Mac with Wineskin

I’m in love with Good Old Games. They distribute classic PC titles, getting them running on modern operating systems, bundled with extras, and all without DRM.

What I like most about it, though, is that GOG is up there with Valve in its efforts to make Mac gaming less of a wasteland. When it comes to retro computer games, DOS isn’t too much of a hurdle because the hardware requirements are trivial and apps like Boxer make emulation simple, but the Windows ultra-dominance of the late 90s through late 2000s are a dark spot. If you have fond memories of a PC game of that era and it’s not from Blizzard or id, odds are it didn’t get a Mac release.

I recently noticed that GOG was offering Mac versions of PC-only Black Isle RPGs like Planescape: Torment. My curiosity over what witchcraft was enabling this led me to Wineskin, which now has me running stuff like RollerCoaster Tycoon natively in OS X. And it works with basically anything short of the latest and greatest. Here’s how it’s done.

You will need…
  • Your PC game
  • Wineskin Winery (download)
  • Enough hard drive space for the install plus about 150MB
A little background

I’m going to be doing this with the GOG version of RollerCoaster Tycoon. GOG makes it easier because the games are mostly a single installer and have no DRM to worry about, but disc-based games can be done too by copying the contents of the disc to a folder on your computer, so do that first. As long as the game doesn’t require anything newer than DirectX 9.0 or host particularly invasive DRM (e.g. StarForce), chances are it’ll work.

This all works using Wine, with Wineskin bundling the installed game and a Wine compatibility layer in one Mac app. It’s not emulation, strictly speaking, so what you’re getting is a Windows game running at native speed on OS X.

Wineskin WineryGetting started

Fire up Wineskin Winery. You’ll first need to download an appropriate engine for the game you’re running, but thankfully people will have done the legwork for you. The Wine Application Database is where users document their experiences of running software with different Wine engines, and its entry on Rollercoaster Tycoon notes that the GOG version runs with platinum compatibility (“flawlessly”) on 1.6.2. Therefore that’s the version I’m going to download.

With that downloaded and the latest wrapper downloaded, hit the ‘Create New Blank Wrapper’ button and give your new app a name. In this case, I creatively opt for ‘Rollercoaster Tycoon’.

Let the process run. It may ask you to download a version of Mono and/or the Gecko engine. Old games will almost certainly not need Mono but may use Gecko; use your own judgement, or just go ahead and install them since it’ll ensure a trouble-free conversion.

When it’s finished, click ‘Show Wrapper in Finder’ and you’ll be presented with a generic Wineskin app, ready to be turned into your chosen game.

Installation

Run this new app to be presented with the following window.

Wineskin

Click ‘Install Software’, then ‘Choose Setup Executable’, and point it at the installer from GOG. This is where things start to look interesting.

Wineskin installation

That looks suspiciously like a Windows installer on a Mac, doesn’t it?

Once the installation process is complete, resist the temptation to play the game for now and click ‘Exit’. You’ll see the following window, which lets you tell your Wineskin which executable it should run on launch. In this case it’s correct and I’ve never seen it need changing, so go ahead and click OK.

Wineskin executable

Wineskin iconThe Advanced menu that you can see mentioned can be accessed by right-clicking the newly created app in the Finder, clicking ‘Show Package Contents’, and then double-clicking the Wineskin icon in the resulting folder. Among other things, this allows you to change the app icon; find an appropriate ICNS file from a site like VeryIcon and select it in there to get things looking more official (see right).

Rollercoaster Tycoon on a Mac

Isn’t that a beautiful sight? You end up with a self-contained OS X app (by default located at ~/Applications/Wineskin), created through a process that works on basically any game. No fiddling with Boot Camp or Parallels to run an old favourite that hasn’t been ported, and none of the performance penalty that comes from emulation. Lovely.

360 Wi-Fi Without a £60 Adaptor

Since moving into a place where my gaming den – more on that in an upcoming post – is beyond the reach of an ethernet cable, I came to require a way to get my 360 online wirelessly, and although the official adaptor was the obvious choice, I didn’t want to pay the frankly shameful £60 RRP. I know that wireless hardware is dirt cheap and that one isn’t even fully featured, lacking the WPA2 support that every certified Wi-Fi device since 2006 has featured. Not to mention that it wouldn’t help me avoid my previous issues with the PS3’s built-in Wi-Fi.

It’s not often that I can provide genuinely useful advice, so listen up. I know enough about home networking to know that one way around this is an ethernet bridge, which are reasonably cheap and will work with any ethernet device. But even so, buying one for each console and possibly more for, say, a standalone Blu-ray player in the future could add up.

Linksys WRT54GLMy solution was to buy a Linksys WRT54GL, which can be had for less than £50 new. It’s a fairly basic router with one exception: it runs on Linux.

This being the Internet, it’s been taken apart by enthusiasts to add piles of features through third-party firmware. The free Tomato Firmware, which has a simple client mode as one of its key features, is exactly what you need. I put it in ethernet bridge mode and both consoles are online without a hitch, and the router has been going strong for two weeks now.

I should also point out that Tomato works with a number of other routers, which may even be cheaper. I just went with the Linksys because it was the original.

The official site has a video showing how to put it into client mode, which will be all that 99% of users want. There’s also an excellent tutorial here, which explains the difference between the two client modes – I went with bridge because I wanted everything on the same subnet for video streaming.

I know that I’m not the only one who is baffled by the fact that you can get an excellent router to do the job of the official adaptor and more for less money, but I’m not going to complain too much when open networking standards give us a relatively simple way around the problem. Alas, it’s not as easy to get around extortionate prices on other 360 peripherals like the larger hard drives or charging cables that cost comparatively nothing on a certain competing console, but maybe Microsoft will have a heart with the next iteration.

Then again, only one of those machines is actually making money. Maybe not…