Monthly Archives: June 2011

Atari Jaguar Homebrew Project – Spring Semester SumUp 1

Well, the past two month or so have been very busy for me. I have been finishing up Project MDI with Dan Morrison (of which I will elaborate more on in a later post, continuing my research into the Atari Jaguar, and graduating from college. On top of all this I am now working at an internship ay Yost Engineering in Portsmouth, OH. Now that things have settled down for a bit, its time to catch up on these post. Now on to the Jaguar!

I would like to start my discussion of the Jaguar’s graphics system by providing a high level overview of the components of the system along with a brief description of what role each component plays. The graphics system on the Atari Jaguar is a unique one. All of the Jaguar’s graphics processors reside on a common chip nicknamed “Tom”. Tom houses three different processors:
– The Object Processor
– The Graphics Processor
– The Blitter

These processors are all connected on two different buses. The common 64-bit Processor Bus is controlled by the CPU when it is the bus master. The 32-bit (16-bit data/16-bit address) I/O bus is used for writing to internal registers and memory. Each of the three processors carry out specific tasks for producing images for the television.
The Object Processor acts as a Sprite Engine of sorts. Using an internal list of image “objects”, the Object Processor writes pixels to a line buffer. These objects represent chunks of video data in memory that may be scaled, translated, and even conditionally drawn. This processor is used predominately for displaying sprites on the screen. The structure of the “objects” the object processor may draw makes quickly drawing sprites to a variety of locations on the screen very simple and side steps the necessity of worrying about a screen buffer.
The Graphics Processor is a sophisticated math processor. With the ability to do dedicated matrix, multiplication, division, and some general computation operations, the Graphics Processor is the backbone of the Jaguar’s 3D capabilities. Some posts on the various Jaguar homebrew forums have indicated that software hacks are possible that allow the Graphics Processor to execute code in main system memory (as opposed to Tom’s dedicated memory space). Such a feat allows for much faster executing programs, as the Graphics Processor can perform complex math operations much more efficiently than the 68k and runs at twice the clock speed! This hack shall be a research topic for a future date.
The Blitter performs two crucial roles. Firstly, the Blitter handles any large, block data copying/modification operations needed for graphical effects. Filling in depth buffers, copying image buffers, and simple post process effects are examples of such tasks. The Blitter has several commands at its disposal for doing comparisons of pixel data and modifications to said data. The second task is partly due to the nature of the Blitter and partly a bug in the Jaguar’s hardware design. The Jaguar was originally designed to allow the DSP (“Jerry”) chip, Graphics Processor, and Blitter to all temporarily increase their system bus priority over all other processors on the system to allow for quick, high priority data transfers/operations. Sadly, this feature is bugged and when the necessary bits are set to allow for such an increase in priority, results are unpredictable. As such the Blitter, in its nature of copying large chunks of data, is the system’s only DMA. This can be potentially problematic as the Blitter has the 2nd lowest bus priority (with the CPU under normal operation having the lowest bus priority).

As stated before, the Blitter can be used for creating depth buffers. This feature when used in conjunction with the Graphics Processor makes 3D image generation on the Jaguar possible. One future research topic I have with the system is to design a simple engine to do real time 3D on the Jaguar. At such time, I will elaborate and dig deeper into how these processors accomplish this.
Well, that sums up my quick, 1,000 mile overview of the Atari Jaguar’s graphics system. Next time I will be discussing the Object Processor in detail. For now, cheers and take care internet!