Atari Jaguar Homebrew Project – An Introduction

This being my first post regarding this project it seems appropriate to first discuss my goals, motivations, and guidelines for this project. My motivation for this project is two fold.

Firstly, being a child of the late 80’s and 90’s, I have a nostalgic interest in the 16-bit and 32-bit era home game consoles. I personally had grown up with a Super Nintendo and a Sega Genesis in my household. Many of those experiences are what led me to pursue game development in the first place. Anyhow, this nostalgic feeling towards that age of console gaming has always given me an itch to write software for one of these home consoles. I’ve wanted to write such software so I may 1. be able to say I had accomplished a task similar to that which has inspired me and 2. learn how these old consoles work. Programming predominately for a PC, using high level languages such as C++, Python, and Java, and having resources such as countless libraries, convenience functions, and a full featured operating system had left me with a lack of understanding as to how exactly code, assets, and content were loaded and utilized on these machines.

Secondly, I needed another class for my final semester at Shawnee State University in order to remain full time 🙂 Due to a combination of having recently acquired an Atari Jaguar, discovering a very active homebrew Jaguar community (along with numerous postings of the development documentation), and my shortage of classes it seems awful convenient to spend 3 credit hours researching the Atari Jaguar and seeing what I could get out of it. Thankfully my professor, Jason Witherell, is a very busy man and easy going. As such, he was more than willing to act as the faculty supervisor for this “independent study” and give me the space and freedom to define the “class” and set my own rules and deadlines.

In short, my overall goal for this study is to research how the Atari Jaguar operates, create an effective tool chain for writing/building software on a PC and executing the built binary on a live Jaguar console. As far as deadlines go, I have broken up the 15 week semester (plus one week of finals) into 4 main categories along with a comprehensive deliverable at the end of the semester.

Weeks 1 – 4: Establish the tool chain, research the assembler language used, learn the ins and outs of the Motorola 68000 processor (The main CPU of the Jaguar).
Weeks 5 – 7: Research how input is handled and write tested convenience functions for polling controller input.
Weeks 8 – 11: Research the graphics hardware and implement a variety of common 2D graphical effects (e.g.: sprite blitting, rotation, scaling, maybe scrolling).
Weeks 12 – 15: Research Audio on the system. Ultimately get an audio asset created on the PC to play on the system.
Week 16: Make a simple PONG game to pull all the concepts together. Also give a presentation of my conclusions and lessons learned.

Future post will detail my weekly progress along with any interesting topics I may run into along the way. For those that may be fantastically interested in any elaboration on this class, you may view the syllabus I wrote for it here:

Cheers and have a good one Internet,
Sam Bushman

Comments are closed.