|
|
SDK Documentation |
Copyright © 1997-2001 |
February 23, 2001 |
This document provides an overview of the various libraries which are included with the NUON SDK. Additional "real" documentation is included elsewhere (look here), but this will give you a basic idea of what's what.
The linkable library files discussed here are all contained in the \VMLABS\LIB directory. The filenames take the form of LIBname.A, where name corresponds to the library name shown in the table below.
Source code for many of the libraries is included in the \VMLABS\LIB\SRC directory. Each library has its own subdirectory tree from that point down.
The tables below shows the name of each library and gives a brief description.
Library Name |
Description |
MML2D | This library contains a variety of 2D graphics functions for rendering
2D graphics primitives such as lines, boxes, ellipses, etc. Also contains a variety of functions for manipulating bitmapped images. Source code for most of the MML2D library is included. |
MLTXT | This is the scaleable outline font library licensed for NUON from Type Solutions. It's largely integrated into MML2D in many respects, including documentation, but is a separate library file. |
MML3D | This is a simple 3D graphics library. It is well suited for
applications where small code size and development speed are the main
consideration. Not as feature-packed as the other 3D library
choices available for NUON, so it's probably not the first choice for a
3D game engine.
Source code is included and is a good starting point for those considering writing their own 3D library for NUON. |
mGL | This is a 3D graphics library patterned after version 1.1 of the
popular OpenGL library.
The entire version 1.1 specification is not implemented. However, the implementation does include the majority of those functions which are typically used in game development. Source code is included for those who need to customize the functionality of mGL. |
M3DL | This is a 2D and 3D graphics library which is structured in similar
fashion to console game machine libraries. This is perhaps the most powerful graphics library currently available for NUON. The performance of mGL and M3DL is comparable, but the M3DL library has several features that are not available in the current version of mGL. The main feature you'll find in mGL that is missing in M3DL is better control over lighting. Source code is included for those who need to customize the functionality of M3DL. For more details, please see the library documentation. |
IMPULSE | Impulse is a 2D graphics and text output library licensed from AlphaMask. It is a C++ class library that offers a wide variety of 2D graphics capabilities. |
Library Name |
Description |
MUTIL | This contains a variety of utility routines which most large programs will find useful. It contains code for things like downloading code to other processors, |
If you find library files in \VMLABS\LIB that aren't described anywhere else, they probably belong in this table even if don't find them there either. These library files are most likely support files (like startup code) or else have something to do with the standard C or C++ libraries. |
Library Name |
Description |
LIBM | Floating point math library. The NUON supports floating point math only in software. While VM Labs does provide the usual FP math functions, we VERY STRONGLY RECOMMEND that fixed-point math be used in place of floating point in any time-critical code. |
LIBC | Standard C library. |
LIBG | Standard C++ library. |
Library Name |
Description |
JPEG | Standard JPEG image library |
Library Name |
Description |
SYNTH | NUON Synth. This is the NUON synthesizer library. This
library provides MIDI, low-level music synthesis, and memory-based PCM
functions.
Note that the Synth's Wavetable data takes up approximately 1.5mb of memory space when linked into your application. (ROM-based wavetable data only exists on development systems, not consumer machines) The SYNTH requires a single dedicated MPE to operate, and currently cannot co-exist on the same MPE as the mini-BIOS. This library replaces the LIBMAUD1.A library from older versions of the SDK. |
NISE | This library contains streaming and non-streaming PCM audio
functionality.
This function can play memory-based PCM audio data, or it can be directed to play PCM audio data that is streamed from a media device (normally a DVD disc). The NISE library coexists with the mini-BIOS, which is normally installed on MPE 0. This library replaces the LIBMAUD2.A library from older versions of the SDK. |
The NUON BIOS contains all of the code necessary to access hardware devices which are external to the NUON processor. Since such devices may be different from one implementation of a NUON player to another, the BIOS abstracts the differences and provides applications with a consistent API. |
BIOS Library Name |
Description |
BIOS | The first versions of the NUON BIOS were implemented as linkable
libraries which are linked into an application and loaded into RAM along
with the rest of the program.
When an application is linked to a version of the RAM-based BIOS, the resulting program file can only work 100% properly on the particular platform for which that version of the LIBBIOS.A file was intended. There were different flavors of LIBBIOS.A for different platforms. The LIBBIOS.A library is no longer supported or updated. |
ROMBIOS | As the BIOS code approached completion, it was moved into the system
ROM. In order to use the ROM BIOS, the LIBROMBIOS.A library is
used. This isn't a real library. Instead of the actual BIOS
code, it simply contains the information needed by the linker to direct
your application's BIOS function calls to the ROM.
Because the BIOS functions are no longer built-into the application itself, the resulting program file will run on any platform which has the ROM BIOS installed, even if there are differences in the hardware. The ROM-based BIOS should only be used by applications which are using MPE 3 as their main processor. |