Controlling The Rdp; How To Control The Rdp Command Fifo - Nintendo Ultra64 Programmer's Manual

Rsp
Table of Contents

Advertisement

RSP Coprocessor 0

Controlling the RDP

100
The RDP has an independent DMA engine which reads commands from
DMEM or DRAM into the command buffer. The RDP command buffer
registers are programmed to direct the RDP from where to read the
command data.

How to Control the RDP Command FIFO

RDP commands are transferred from memory to the command buffer by the
RDP's DMA engine.
The RDP command buffer logic examines the CMD_CURRENT and
CMD_END registers and will transfer data, 8 bytes (64 bits) at a time,
advancing CMD_CURRENT, until CMD_CURRENT = CMD_END.
CMD_START and CMD_END registers are double buffered, so they can be
updated asynchronously by the RSP or CPU while the RDP is transferring
data. Writing to these registers will set the START_VALID and/or
END_VALID bits in the RDP status register, signaling the RDP to use the new
pointers once the current transfer is complete.
When a new CMD_START pointer is used, CMD_CURRENT is reset to
CMD_START.
Algorithm to program the RDP Command FIFO:
start with CMD_START and CMD_END set to the same initial
value.
write RDP commands to memory, beginning at CMD_START.
when an integral number of RDP commands have been stored to
memory, advance CMD_END (CMD_END should point to the
byte after the RDP command).
keep advancing CMD_END as subsequent RDP commands are
stored to memory.
next

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents