The Retina MacBook Pro

I got me one of them there new “retina” MacBook Pros. It’s the stock 2.3GHz 15” model with 8GB of RAM and a 256GB SSD. Here’s a miniature review. Disclaimer: it’s a work-supplied computer, so I’m using it exclusively for development and didn’t have to pay for it myself.

First off, the bad. Finder won’t start with my Acer monitor plugged into the HDMI socket; the screen turns blue and the computer hangs. This is odd, as the monitor works fine with my previous 2009 MacBook Pro, and works fine with the retina model if I plug it in once the computer has finished booting.

It occasionally does weird things to the iPhone simulator. This may or may not be related to the new hardware. Xcode is so relentlessly buggy that it is difficult to tell. However, I haven’t experienced these particular problems on any of the other 3 Macs I use for development, so that narrows it down a little. The iPhone-style surrounding skin sometimes disappears, leaving me with a title bar informing me of the simulator’s build number. It also has a habit of placing the iPhone’s screen about 100 pixels below and to the right of where it’s supposed to be, which looks odd when the surround does actually appear. In Xcode itself, hovering over a keyword results in the tooltip floating somewhere near the top of the screen instead of next to the mouse.

The lack of an eject button means the Ctrl-Shift-Eject shortcut I’ve used for the past year or so no longer puts the display to sleep, so I’m forced to use the keychain app to lock the computer instead.

The massive resolution seems to tax the GPU when it has to throw a lot of pixels around. Scrolling a webpage within a large Safari window is noticeably jerkier than doing the same on either my personal 2011 13” MacBook Pro or the 2009 15” MacBook Pro I was previously using at work.

The keyboard is somehow different. I’m not sure if it’s that the keys have a different texture than my previous Macs or if they have an even lower profile, but I’m finding it a little awkward to type on.

Now the good!

This computer is fast, mostly due to the SSD. It boots in seconds, and apps typically load before their icons have finished their first bounce. It compiles my current project in half a dozen seconds, compared with roughly a minute on the 2009 laptop. VMWare resumes a suspended Windows session in no time at all. This is the first SSD I’ve owned and the performance is really stunning. I’ve held off from buying one because I’m tired of being an early adopter and getting hardware that’s unreliable or overhyped, but seeing this drive in action has convinced me to get one for myself.

The screen is gorgeous. I was concerned that non-retina apps would look horrible on the upscaled display, but although there’s a difference it isn’t one that bothers me. It manages to make the Xcode storyboarding system even more awesome than it was before, by making it possible to see each iOS view clearly even when zoomed out to 25%. Text is amazingly crisp, which is marvellous when you spend 8 hours a day in front of a text editor.

It’s now possible to use the iPhone simulator in retina mode and have it appear on-screen at the same size as the standard mode. Dragging it over to a standard-resolution second monitor causes it to automatically halve its resolution but stay at the same physical size. Handy. If the simulator starts up on the second monitor it adopts the same enormous proportions as it would on a non-retina Mac.

And now for the indifferent.

The built-in HDMI port means I’ve ditched the DisplayPort to HDMI adaptor that I was using previously. However, as the new model doesn’t include an ethernet port I’ve got a Thunderbolt ethernet adaptor plugged in instead.

As it’s a work machine I’ve no use for the USB3 or other updated sockets, so I can’t comment on whether they’re an improvement or not. Ditto for new speaker design; I don’t use them. The same goes for the new lightweight form factor, too. I prefer the 13” models, so for me a 15” laptop is oversized no matter how thin it is (and it is very thin). When Apple get around to releasing a 13” Pro with a retina screen I’ll probably end up getting one for myself.

Is it worth buying over the standard resolution model? Yes. Being able to test websites and apps on the latest displays is definitely worthwhile. You’ll lose the optical drive, but that’s mostly worthless now anyway. You can always get an external drive if you really need one. You’ll also lose the ability to upgrade the RAM or replace the battery. I’m not concerned about the battery life - I’ve treated my 2006 white MacBook’s battery well and it’s still working after 6 years - but the RAM might be more of an issue. I got the 8GB retina model, which runs Windows 7 x64 and Visual Studio 2010 in VMWare and Xcode with no issues at all. However, if I were stumping up my own money for the laptop I’d have opted for the 16GB model. I’ve had to upgrade the RAM in all of the Macs that I’ve owned in order to keep the hardware viable over time, so the extra is undoubtedly worth it.

Is it worth it if you’ve already got a decent Mac that doesn’t waste too much of your time while it compiles? Honestly, not really. The most impressive difference between the new model and my own laptop is the I/O performance, which is solely down to the SSD. My next Mac will have a retina display, but for the moment I’m just going to fit an SSD to my current laptop.


GP2X Wiz

I suffer from a weakness for handheld videogame consoles. I’ve got most of the iterations of the Game Boy, the three iterations of the DS, all but one of Game Park’s GPxx series and a variety of other handhelds, from Game & Watches to the Atari Lynx. From the GBA onwards, I’ve mainly been buying these things to run homebrew on them. Two consoles released recently, the GP2X Wiz and the Dingoo A320, have homebrew as their focus and I found that I simply couldn’t resist the urge to buy them. I’ll discuss the Dingoo in another post, whilst the Wiz is reviewed below.

First of all, some history. The Wiz is the successor to Game Park Holding’s GP2X, which was itself the successor to the GP32. Whilst the GP32 was designed to be a platform for commercial games, albeit wacky Korean commercial games, it quickly found a niche as the homebrewer’s console of choice. This can primarily be attributed to its use of SMC memory cards as its storage media and its freely available SDK. Its successor was the GP2X, which was created by a splinter group from the original company. They realised that the homebrew aspect of the original console made it much more popular than the ropey commercial offerings ever did. (Meanwhile, the original company followed the commercial route and quickly went bust without releasing any new hardware.) The GP2X was faster than the GP32, used Linux as its operating system, had more memory, more buttons, and used SD cards instead of SMC.

Both consoles had advantages over their mainstream rivals. Both had relatively large screens, were easy for homebrewers to develop for, and used cheap, generic memory cards for storage. Most importantly, amateur developers did not have to contend with a constant stream of firmware updates designed to stop them enjoying themselves. This freedom resulted in the phenomenal amount of homebrew available for both systems, including a number of superb emulators. The GP2X even did a credible impersonation of an Amiga 500.

That is not to say that the consoles were perfect, however - far from it. The GP32 shipped in at least 4 versions, each of which was designed to make the screen slightly less invisible than the last. Subsequent versions were improvements, but the first hardware iteration had an unlit screen and was unusable in most lighting conditions. All of the GP32 models featured a ridiculous, tiny joystick instead of a d-pad, cunningly designed to make it difficult to activate diagonals, making entire genres of games utterly unplayable.

The GP2X also came in multiple models, each featuring its own unique set of problems. The original model, the “F100 First Edition”, featured a joystick that managed to be even less useful than the GP32’s - GPH outdid themselves by using a cheap joystick mounted the wrong way around, and produced a stick that could hit diagonals but none of the other directions, making virtually all genres of games unplayable. At the time, many people wondered if the problem could be fixed in firmware, but if the hardware is broken, software can’t really help. The second version crippled the USB hardware making it impossible to debug from the system itself. The final version, the “F200”, finally replaced the joystick with a d-pad, but it had such a bizarre, outsized design that using it quickly led to blistered thumbs. It also featured a touch screen, which I have discussed before. In brief, it was so twitchy, inaccurate and unreliable that I gave up on the idea of a Woopsi port pretty much as soon as I got a test version to compile.

This brings us, in a roundabout way, to the GP2X Wiz, which is the latest in the line. The Wiz is essentially the GBA Micro of the GP2X world, but with added improvements. GPH have slimmed down the hardware (it’s now slightly smaller than a closed DS Lite) but bumped the specs. They’ve replaced the two 200MHz ARM CPUs with a 533MHz ARM9 with 3D hardware, replaced the USB1.1 port with USB2.0, swapped the TFT screen for AMOLED, and added an excellent built-in battery instead of space for two AAs. Amazingly for a GPH device, it features a d-pad that actually works, and I can play Street Fighter 2 and Thunderforce 4 without wanting to throw the console across the room. It feels sturdy and well-made, and boots a good deal faster than the GP2X ever did.

In fact, the only downside to the hardware thus far is the screen. It is a touch screen, but it suffers from the same problems as the GP2X F200 - the values reported by the touch screen bear only passing resemblance to the actual location of the stylus, and each subsequent poll will return entirely different values regardless of whether or not the stylus has moved. Even worse, GPH have managed to add a deadzone to the screen, either by using even cheaper components or by fitting the screen improperly and squashing the edges. The deadzone seems to vary in size amongst Wiz consoles. Unfortunately, this means there is absolutely no point whatsoever in porting Woopsi to the Wiz.

To make matters worse, GPH have used a 240x320 screen instead of a 320x240 screen. This results in the same sideways VRAM arrangement last seen in the GP32. Not too big of a problem in itself, but it is also thought to be the reason for a screen tearing effect that causes half of the screen to update before the other half. The two halves are separated by a diagonal line from the top-right corner of the screen to the bottom-left. It is not too distracting, though, and if screen tearing is the price I have to pay for a d-pad that works, I’ll gladly pay it.

Typically, GPH’s response to both of these issues is to insist that they will be fixed in new releases of the firmware, but as with the GP2X F100’s joystick, if the hardware is broken, software can’t really help.

As the Wiz has been available for less than a month, software support is lacking. Notable software currently includes a C64 emulator (Vice, seems pretty capable), a Mega Drive emulator (PicoDrive, superb) and a SNES emulator (PocketSNES, 50fps except when dealing with Mode 7). No official libraries or an SDK have yet been released, so developers are currently relying on mostly undocumented, unofficial, Linux-only toolchains designed for the GP2X.

Despite the hardware problems, the Wiz is actually a pretty good console. Its improved specs and usable d-pad represent a significant improvement over the GP2X. The new form factor makes it more portable, and it looks and feels so much more professionally made. For me, the only disappointment is the hopeless touchscreen, but to be perfectly honest I was expecting nothing more.

However, I am not sure that the Wiz will ever amass a development community as large as the GP2X’s. The lack of an SDK is a big problem at the moment (I have the OpenWiz toolchain installed in an Ubuntu VM, but a lack of documentation and libraries is preventing me from using it for anything), but the real issue is the impending release of the Pandora. Designed by people who clearly have a better grasp of videogames and homebrew than GPH, the Pandora will inevitably lure programmers away from Wiz development and reduce the amount of software that gets produced for the console.

To summarise: Pros:

  • D-pad is pretty much perfect.
  • Great battery life.
  • Good size.
  • Boots faster than the GP2X.


  • Screen tearing can be distracting.
  • Touchscreen is useless.
  • Not much software yet.
  • No official SDK yet.


Nintendo DSi - First Impressions

I gave in and bought a new DSi when EmuBoards posted a news item about a new, DSi-compatible version of the R4, the SDHC-capable R4 Upgrade. As soon as it turns up I’ll be able to play with Woopsi on the new hardware.

A big part of the reason for buying it is the current state of my DS Lite. The hinge has cracked (good design, Nintendo!), it’s got a dead pixel on one of the screens (good job, Nintendo!) and the touch screen is becoming increasingly inaccurate (well done all around, Nintendo!). The other reason is the DSiWare shop, which would be great for homebrewers if only Nintendo would open it up in the same way that Microsoft did with the XBLA Community Games system.

Anyhoo, some first impressions. The new wireless capabilities are great. The DSi works with my Airport Extreme, which is nice, but only with DSi titles, which is a bit crap. Getting it connected to the online store was more difficult than it should have been. To connect for the first time, the DSi needs to download a system update, which refuses to download with the default internet settings - the DSi throws a 034310 error and switches off. The cause turned out to be the MTU setting, which is set to 1400 but should be set to 576.

The screen is bigger than the Lite’s, but the DSi’s resolution has remained the same. The bigger screen is definitely appreciated, but it looks like an LCD monitor or laptop set to the wrong resolution. All of the pixels seem to be blurred or filtered to stretch them. EDIT: Now that I can test the DSi with Woopsi, it seems that this isn’t the case. I was misled by the initial bootup screen, which now has antialiasing applied.

Reboots can now be performed by tapping the power button, which is great. The Start and Select buttons are larger and easier to push.

Lastly, I had a quick play with the DSi Browser. I bought the original, which was painfully slow and essentially useless; it was really just a curiosity. The DSi version, though, takes advantage of the new hardware features and is actually - or so it seems, after a few minutes of playing with it - a usable, useful browser.