1-7 Basic Terminology (thread, message, etc)
In N64 game development, various technical terms appear. Here, we will describe some of the basic terms. In addition, the glossary is attached as a separate volume.
Thread
A thread is a single processing unit operating in the CPU. A thread at any one time can have any one of the following four states:
((state of thread))
*execution state
*ready state
*halt state
*queued state
![]() |
Figure 1-7-1 The thread is a process unit on CPU.
All threads execute in RDRAM under the management of the CPU.
In a standard game system, in addition to the threads created by game programmers, the following threads are reserved:
Message
Messages are sent from and received by threads for the purpose of synchronizing information throughput between threads. Messages are managed by the message queue.
![]() |
Figure 1-7-2 Messages provide synchronizion and information throughput between threads and is managed by the queue.
Task
A task is a single processing unit operating in the RSP. The RSP in the RCP executes graphics and audio processes. Each process is called a task.
![]() |
Figure 1-7-3 The task is the process provided by RSP
Scheduler
The Scheduler is a high-priority thread that manages all the other threads. It sends messages to registered threads to coordinate their efforts in the CPU. It can also pass control to another thread that manages or decides how to allocate tasks executed on the RCP.
![]() |
Figure 1-7-4 Scheduler manages threads
Event
A hardware interrupt is called an event. The application recognizes the event by sending messages to the threads to tell them which event has occurred. The following are the main events:
![]() |
Figure 1-7-5 The events manages the interruption or exceptions
Microcode
Microcode is executed by RSP concurrently (simultaneously) with CPU processing. There are two basic types of microcode, graphics microcode and audio microcode.
*Graphics Microcode
Graphics microcde executes the graphics.There is graphics microcode for 2D and for 3D graphics. Graphics microcode analyzes graphics instructions, GBI(Graphics Binary Interface) commands, in 64-bit format and executes them. Two graphics microcodes are provided for 3D. These are for polygon and for line types of graphics. They should be used as appropriate.
It also depends upon how precise the drawing is.
Figure1-7-6 Example of Graphics Microcode
*Audio microcode
Audio microcode executes the waveform synthesis.It analyzes audio instructions (ABI commands) in 64-bit format, and executes them.
Figure1-7-7 Example of Audio Microcode
GBI Command (Graphic Binary Interface Command)
A GBI command is the pseudo-instruction code for drawing graphics.
Display List
The display list is just another name for the graphics command list. It is a string of GBI commands.
![]() |
Figure1-7-8 GBI Command and Display List
An ABI command is the pseudo-instruction code for synthesizing waveforms.
Audio Command List
The audio command list is a string of ABI commands used to synthesize waveforms. (It is also called the ABI command list.)
![]() |
Figure1-7-9 ABI Command and Audio Command List
Z-Buffer
The Z-buffer stores the depth (z coordinate in an x,y,z coordinate system) information. By using the information in the Z-buffer, N64 can draw just those items that are in view; that is, all blocked views are not drawn. In N64, pixels are updated when the Z value is small. In the following illustration, because the Z value of the background is 9, the Z value of the letter B is 7, and the Z value of the letter A is 1, N64 knows that A is in front of (partially blocking) B.
![]() |
Figure1-7-10 Image of Z-buffer
(Note that this is just a conceptual illustration. In actual practice, the Z-buffer takes a value between -1.0 and 1.0.)
Pixel
A pixel is a dot on the screen. It is the minimum unit of drawing. A set of these dots becomes image data (the visual image).
Figure1-7-11 A pixel is the minium unit of drawing
DMA (Direct Memory Access)
DMA is used to directly transfer data from a device to memory (or from memory to a device) without using the CPU. It is an effective way to transfer a lot of data. The advantage of this is that after DMA starts, the CPU can do other processing until the data transfer ends.
![]() |
Figure 1-7-12 The flow of the DMA transfer