zelda_rainfinall.gifThe TI-83 series of graphical calculators from Texas Instruments was first released in 1996, and was the first in the TI series to support assembly language. It was later superseded by the TI-83+ in 1999, which included a flash ROM. The calculator is probably best known to anyone who took – or is in the process of taking – a high level maths in secondary school.

Spencer Putt has been programming games for the TI-83+ for a number of years. His first public release was a port of Harvest Moon in 2004 – an astounding effort, considering that most people familiar with the unit wouldn’t have played anything more complex than Lemonade Stand. In early July he announced his latest project would be a Zelda game, complete with accelerating scrolling camera, rain effects, and wavy camera effects (for lack of better term).

GameSetWatch spoke to Putt via email about his interest in the TI-83+, and exactly how you make a Zelda game for it.

What's your background with programming?

I started off with TI-BASIC in middle school, moved to JavaScript when I was into web development, then to C (not understanding it), to z80 assembly, then back to C (really understanding it this time around). I've been writing games since I started programming.

What is your fascination with the TI-83?

I never had gaming consoles growing up, so when I saw that my brother's calculator had games, it just stuck in the back of my mind, lingering. Poisoning my thoughts.

What inspired you to attempt converting Zelda and Harvest Moon for the TI-83?

Harvest Moon for SNES and N64, and any and all Zelda games. Link's Awakening is a true testament to what can be done on a limited system. Ocarina of Time is simply the best game of all time. My goal was to recreate the feel of the games on this crappy little system that every student has.

Is the Zelda you're working on a conversion of any game in particular?

Nope. Though I'm using the Link from Link's Awakening (and if you've seen some of the videos, many other characters as well), all of the tiles are new, the dungeons and puzzles are new, and story is new.

How is this possible on a TI-83+? My understanding has always been; the more your try and do graphically, the slower it's going to be, but the videos suggested things were moving exceptionally smoothly - especially the camera movement, which was amazing.

zelda_witches.gifYes, it is programmed for the lowest common denominator: the black [standard] TI-83+. Most people have dabbled in the built in TI-BASIC, which gives them an impression that the calculator is slow. While it's astounding that TI has made such a complete language on such a weak device, when you get down to the assembly level things are a lot faster. The video you saw was recorded on an emulator, a copy of a TI-83+ running on a computer. The game will run faster on the real calculator.

Well, that said, what problems have you encountered?

Managing an assembly project this large has been difficult. I'll go a few months and totally forget how a particular section of the game works. It's currently hovering around 25,000 lines separated into 30 some files
As the project got bigger, the assembler most people use began to slow down, it took around 10 seconds to build the project. It was getting the point where it was annoying waiting to test, since sometimes I'd only change a byte or two between assemblies. I wrote a new assembler which can build the project in far less than a second.

What advantages does the system have?

Unlike programming for a PC, with a calculator you have complete control over the system. Any code that runs while Zelda is open is mine. It makes errors easy to track down because you know whose fault it is.
Of course, the biggest advantage is audience. Even if it is just middle schoolers, a lot of people will play this.

What exactly is inside the TI-83+?

The black edition has a 6 MHz Zilog Z80 CPU, 32k of RAM and a 96x64 pixel B&W LCD display. There's also 512k flash, of which Zelda uses 64k, or four pages.

How do you go about writing a game for the TI-83+?

zelda_wavy.gif It isn't hard! I encourage anyone interested to get started -- it's a very cheap hobby. I write in symbol machine code, known as z80 assembly language. An assembler converts it straight to binary that the processor understands, unlike higher level languages, like Java, which filters down through several levels before being run by the processor. While assembly language is more difficult to grasp at first, it becomes so straight forward that it’s very easy to write.

How far into the process of producing the game are you?

I'm in the scenario stage. Dungeon and story work is all that's left, with the game well over half complete. I've been working on in gradually over the…holy hell...past two and a half years. I won't stop until it no longer entertains me.