Explanation of Simple example
-----------------------------

1. Files provided

   code required :
        main.c       your ninja program
        njloop.c     simple control loop for calling your ninja program
        global32.src assembler code to declare space for matrix/vbuf
        sbinit.c     contains shinobi initialization function

   application specific :
        model.c      model c file which includes..
        cube.nja     ninja format model

2. Simple example demonstrates a simple non-textured cube rotating under
   ninja - also makes use of peripherial input from the maple bus.
   Possibly the simplest file I could think of.

3. Execute the sample makefile.


Running on Codescape
--------------------

1. Using .elf files - simply select "Load Program File" from File
   menu. Select .elf file, wait and then "Run All" (or CTRL-F9)

2. Using .bin files - select "Load Binary", select .bin file, and set load
   address to build setting (normally 0x8C010000).
   Open "New Window", select "Register" window type.
   Edit PC register to match jump point of your code (normally 0x8C010000)
   "Run All" (CTRL-F9)


Steps required to convert ninja/shinobi
---------------------------------------

1. Replace ninja.h includes with shinobi.h

2. Change njInitSystem() call to sbInitSystem(), parameters remain same

3. Change njExitSystem() call to sbExitSystem(), parameters remain same

4. Use the sections above to get your program compiling


Peripherial Input
-----------------

Peripheral input is handled by pd library so functions start pd prefix.
Other than that it is very similar to ninja functionality.

njloop.c file provided calls peripheral server function therefore you
just need to call in njUserMain loop.
  per = pdGetPeripheral( <port you want to read> );

Maple/Saturn device contains 12 ports, numbered A0,A1,A2,B0,B1,B2,
C0,C1,C2,D0,D1, and D2. Saturn compatible ports are always port 0.

Definition names have changed - see source code example.

