The Kingdom Hearts series is such a tangled mess of semi-sequels, deviations from the main narrative and interweaving time-lines, that it's hard to explain exactly where Re:Coded fits into things. In simple terms, it's a DS follow-up to Kingdom Hearts 2 - but there's more to it than that. This is a remake of the episodic Coded games that hit Japanese mobile phones back in 2009; a re-jigged compilation of story arcs unified with gameplay borrowed from Birth By Sleep and 358/2 Days. It's probably worth pointing out that it's also very buggy - teeming with glitches, broken lines of code, and opportunities to 'exploit' the game. Interestingly, it's supposed to be like this. Allow me to explain.

The trouble begins with Jiminy Cricket - the little fellow in the top hat who sits on the shoulder of compulsive liar, Pinocchio. It transpires that, after the events of the first two games, he took it upon himself to chronicle the adventures of Sora, Donald and Goofy in his journals. On the fateful day Re:Coded picks up from, however, the words from one of these journals - the one that details the events of the first Kingdom Hearts - simply disappear, with a mysterious line of text appearing in their place. With the help of King Mickey, the pair digitise the journal, creating a virtual world based on the story, and also a virtual Sora to send in and sort the problem out. It's kind of like The Matrix, except without the bullet-time and wooden acting from Keanu Reeves.

The setup allows Sora (or, I should say, a virtual being that thinks he's Sora) to return to locations from the first Kingdom Hearts game, including Traverse Town, Wonderland and the Coliseum. Leaving aside the fact that the graphics have been scaled down to fit the comparatively small DS screen, each environment is slightly different to how it was back in the PS2 era. The beaches of Destiny Island, green gardens of Wonderland and streets of Agrabah are all littered with black and red blocks (or blox, as the game insists on calling them) which have appeared alongside the troublesome Heartless. These blox are in fact the 'bugs' I referred to at the start of the review. They're tangible glitches that must be purged from the code in order to save each world from the clutches of an unknown evil.

Your efforts in this regard mostly take the form of bashing Heartless over the head with your trusty Keyblade, although there have been some additions to combat since the original episodic offerings. Re:Coded employs the command deck system used in Birth By Sleep, allowing players to customise their roster of directives by mixing and matching techniques in the menu screens. This can be ignored for the most part, however. All you really need to do is hammer away on the A button to launch Sora into a flurry of furious swings, pressing X every now and again to roll out of harm's way. While the option for more depth is always available, it's rarely needed.

Most of the strategy comes from developing Sora himself. The fact that the game takes place in a simulated environment gives rise to a rather unusual progression mechanic. The Stat Matrix (think Sphere Grid, or Crystarium, if you're a Final Fantasy fan) offers an interesting slant on levelling and character growth. By placing 'Chips' you've collected in battle on a circuit board, you can improve your attributes and learn new abilities. After accumulating enough experience in battle, you'll acquire Level Up Chips, which must be fitted to the circuit board before they have any effect. I was particularly impressed by the dual processing chip, which allows you double the effect of chips on the board that are placed between two processors. Making sure all your strongest chips are used to connect one processor to another is vital for building a strong character.

It's not just the Stat Matrix that makes Re:Coded such an interesting game. Each new world offers a different gameplay mechanic, making the game as a whole a strange hodgepodge of genres, in a good way. Perhaps my favourite interlude takes place in the Coliseum, where real-time combat is replaced with some good old-fashioned, turn-based command-giving. It's a competent system, too, with magic, special attacks and combos all available from the menus. Other worlds feature side-scrolling platforming, whilst others still find Sora firing pulsating orbs of energy from his Keyblade in shoot-em-up sections. It can all feel at bit disjointed at times, but these sections offer a welcome break from normal combat.

But despite the impressive array of mechanics, most of your time will still be spent furiously bashing the A button to kill the countless Heartless that throw themselves in between you and your destination. In each world, you'll have to enter several special areas via holes in the code. In these raw, digital environments, the idea is simply to kill all the Heartless in the vicinity before proceeding to the next floor. Puzzles are introduced in the form of moving and pairing up blox, but these basic tasks quickly become choresome.

The higgledy-piggledy narrative is a cause for concern, too. Unless you've played every other game in the series, and have been fastidiously revising names, places and events in the gap between titles, the story will likely make little sense. That said, it's as satisfying as ever to see Cid babysitting Huey, Dewey and Louie, and Cloud pairing up with Hades. I seriously doubt that seeing Final Fantasy characters cavorting with Disney icons will ever lose its appeal.

Kingdom Hearts Re:Coded marries it's Matrix-esque concept to role playing mechanics in a very interesting way, and it's worth checking out on the strength of this merit alone. I largely aim this statement at the JRPG crowd and fans of the series; anybody else is likely to get quite irritated by the frequent repetition. When you're not indulging in the occasional departures from the formula, things can quickly slip into the realm of tedium. Be prepared to hit that A button a lot over the course of the adventure. But while this latest Kingdom Hearts has its fair share of problems, long-term fans shouldn't find it too hard to forgive and forget.