146
Advanced Information
guDumpGbiDL()
This library function can be called directly from the
game to dump the necessary pieces back out to the Indy. It
uses the
rmonPrintf()
and creates a (potentially very
large) ASCII file that can be read by
gbi2mem
.
guDumpGbiDL()
works by saving the
OSTask
structure,
the microcode, the display list, and traversing the display
list following any data (textures, matrices, vertices, etc.)
pointers to save that data also. This results in the minimum
amount of data to transfer back to the Indy in order to
simulate the RSP task.
gbi2mem
This tool takes the file dumped by
guDumpGbiDL()
and
creates the
.mem
and
.tsk
files, containing the DRAM
image and
OSTask
structure, respectively.
gbi2mem
works by reading the ASCII file and creating a
binary DRAM image, with all objects located at the proper
address.
Since
rmonPrintf()
writes to the terminal, the proper invocation is to pipe
the output of
gload
to
gbi2mem
:
% gload | gbi2mem -o <filename>
This method of dumping data from the hardware back to the Indy is not
terribly efficient; it works best if the display list is as minimal as possible
1
.
1
One obvious improvement would be to use the binary host I/O interface, rather than the ASCII
rmonPrintf()
.
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...