### Nintendo Confidential

## Appendix 1: Flags

    /* Nintendo Intermediate File Format 2.0 Extension Flags */

    /* ShapeList -> Shape -> shape_type */

    SHAPE_TYPE_USE_VTX_ALPHA_FOR_FOG    0x00000100

    /* ObjList -> Obj -> obj_render_type* */

    /*********************************************************************
    NOTE

    The NIFF 1.0 manual describes the flag to set render mode
    in a way that may be difficult to understand, especially by
    designers. Below are new defintions of the N64 render mode
    types. Please set these with the "#define" macro in
    /usr/include/PR/gbi.h.

    *********************************************************************/

    /********************************************************************
     obj_render_type0 and obj_render_type0_for_fog

    31          22 21                         0
    [     0x4     |       render_macro        ]

    render_macro  bit     name

    OPA_SURF      0x100   Opaque Surface
    XLU_SURF      0x101   Transparent Surface
    OPA_DECAL     0x102   Opaque Decal(Only zbuffer using)
    XLU_DECAL     0x103   Transparent Decal(Only zbuffer using)
    OPA_INTER     0x104   Opaque Interpenetration(Only Anti-alias and zbuffer using)
    XLU_INTER     0x105   Transparent Interpenetration(Only Anti-aliasing and zbuffer using)
    TEX_EDGE      0x106   Texture Edge(Without Point sampling and zbuffer using)
    TEX_INTER     0x107   Texture Interpenetration(Only Anti-aliasing and zbuffer using)
    SUB_SURF      0x108   Subcutaneous Surface(Only Anti-aliasing)
    PCL_SURF      0x109   Particle Surface
    OPA_TERR      0x10a   Opaque Terrain(Only Anti-aliasing)
    TEX_TERR      0x10b   Texture Terrain(Only Anti-aliasing)
    SUB_TERR      0x10c   Subcutaneous Terrain(Only Anti-aliasing)
    CLD_SURF      0x10d   Cloud Surface(Only Point sampling)
    OVL_SURF      0x10e   Overlay Surface(Only Point sampling and zbuffer using)
    ADD	      0x10f   Add pixel color onto memory color
    NOOP	      0x110   Noop
    PASS	      0x111   Pass
    FOG_SHADE_A   0x112   Shading Fog
    FOG_PRIM_A    0x113   Primitive Fog

    ***************************************************************************/

    #define OBJ_RENDER_TYPE0_GBI_MODE     0x01000000

    #define OBJ_RENDER_TYPE0_OPA_SURF     0x100
    #define OBJ_RENDER_TYPE0_XLU_SURF     0x101
    #define OBJ_RENDER_TYPE0_OPA_DECAL    0x102
    #define OBJ_RENDER_TYPE0_XLU_DECAL    0x103
    #define OBJ_RENDER_TYPE0_OPA_INTER    0x104
    #define OBJ_RENDER_TYPE0_XLU_INTER    0x105
    #define OBJ_RENDER_TYPE0_TEX_EDGE     0x106
    #define OBJ_RENDER_TYPE0_TEX_INTER    0x107
    #define OBJ_RENDER_TYPE0_SUB_SURF     0x108
    #define OBJ_RENDER_TYPE0_PCL_SURF     0x109
    #define OBJ_RENDER_TYPE0_OPA_TERR     0x10a
    #define OBJ_RENDER_TYPE0_TEX_TERR     0x10b
    #define OBJ_RENDER_TYPE0_SUB_TERR     0x10c
    #define OBJ_RENDER_TYPE0_CLD_SURF     0x10d
    #define OBJ_RENDER_TYPE0_OVL_SURF     0x10e
    #define OBJ_RENDER_TYPE0_ADD          0x10f
    #define OBJ_RENDER_TYPE0_NOOP         0x110
    #define OBJ_RENDER_TYPE0_PASS         0x111
    #define OBJ_RENDER_TYPE0_FOG_SHADE_A  0x112
    #define OBJ_RENDER_TYPE0_FOG_PRIM_A   0x113

    /*********************************************************************
     obj_render_type1 and obj_render_type1_for_fog

    31          22 21                         0
    [     0x4     |       render_macro        ]

    render_macro  bit     name

    OPA_SURF      0x200   Opaque Surface
    XLU_SURF      0x201   Transparent Surface
    OPA_DECAL     0x202   Opaque Decal(Only zbuffer using)
    XLU_DECAL     0x203   Transparent Decal(Only zbuffer using)
    OPA_INTER     0x204   Opaque Interpenetration(Only Anti-alias and zbuffer using)
    XLU_INTER     0x205   Transparent Interpenetration(Only Anti-aliasing and zbuffer using)
    TEX_EDGE      0x206   Texture Edge(Without Point sampling and zbuffer using)
    TEX_INTER     0x207   Texture Interpenetration(Only Anti-aliasing and zbuffer using)
    SUB_SURF      0x208   Subcutaneous Surface(Only Anti-aliasing)
    PCL_SURF      0x209   Particle Surface
    OPA_TERR      0x20a   Opaque Terrain(Only Anti-aliasing)
    TEX_TERR      0x20b   Texture Terrain(Only Anti-aliasing)
    SUB_TERR      0x20c   Subcutaneous Terrain(Only Anti-aliasing)
    CLD_SURF      0x20d   Cloud Surface(Only Point sampling)
    OVL_SURF      0x20e   Overlay Surface(Only Point sampling and zbuffer using)
    ADD	      0x20f   Add pixel color onto memory color
    NOOP	      0x210   Noop

    ************************************************************************/

    #define OBJ_RENDER_TYPE1_GBI_MODE     0x01000000

    #define OBJ_RENDER_TYPE1_OPA_SURF     0x200
    #define OBJ_RENDER_TYPE1_XLU_SURF     0x201
    #define OBJ_RENDER_TYPE1_OPA_DECAL    0x202
    #define OBJ_RENDER_TYPE1_XLU_DECAL    0x203
    #define OBJ_RENDER_TYPE1_OPA_INTER    0x204
    #define OBJ_RENDER_TYPE1_XLU_INTER    0x205
    #define OBJ_RENDER_TYPE1_TEX_EDGE     0x206
    #define OBJ_RENDER_TYPE1_TEX_INTER    0x207
    #define OBJ_RENDER_TYPE1_SUB_SURF     0x208
    #define OBJ_RENDER_TYPE1_PCL_SURF     0x209
    #define OBJ_RENDER_TYPE1_OPA_TERR     0x20a
    #define OBJ_RENDER_TYPE1_TEX_TERR     0x20b
    #define OBJ_RENDER_TYPE1_SUB_TERR     0x20c
    #define OBJ_RENDER_TYPE1_CLD_SURF     0x20d
    #define OBJ_RENDER_TYPE1_OVL_SURF     0x20e
    #define OBJ_RENDER_TYPE1_ADD          0x20f
    #define OBJ_RENDER_TYPE1_NOOP         0x210

    /* TexList -> Tex -> tex_filter */

    #define NIFF2_TEX_FILTER_POINT                0x00000000
    #define NIFF2_TEX_FILTER_BILERP               0x00000001
    #define NIFF2_TEX_FILTER_AVERAGE              0x00000002

    /* TexList -> Tex -> use_perspective_correction */

    #define NIFF2_NO_PERSPECTIVE_CORRECTION       0x00000000
    #define NIFF2_PERSPECTIVE_CORRECTION          0x00000001

    /* TexList -> Tex -> mipmap_level */

    #define NIFF2_NO_MIPMAP                       0x00000000

    /* TexList -> Tex -> use_color_palette */

    #define NIFF2_NO_USE_COLOR_PALETTE            0x00000000
    #define NIFF2_USE_COLOR_PALETTE               0x00000001

    /* AnimList -> AnimGroup */

    #define NIFF2_ANIM_CHANNEL_NO_USE                       0x00000000
    #define NIFF2_ANIM_CHANNEL_ROTATE_AXIS                  0x00000001
    #define NIFF2_ANIM_CHANNEL_ROTATE_X                     0x00000002
    #define NIFF2_ANIM_CHANNEL_ROTATE_Y                     0x00000004
    #define NIFF2_ANIM_CHANNEL_ROTATE_Z                     0x00000008
    #define NIFF2_ANIM_CHANNEL_ORIENTATION_XY               0x00000010
    #define NIFF2_ANIM_CHANNEL_TRANSLATION                  0x00000020
    #define NIFF2_ANIM_CHANNEL_UNIQUE_SCALE              0x00000040
    #define NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE              0x00000080
    #define NIFF2_ANIM_CHANNEL_ORIENTATION_CONSTRAINT       0x00000100
    #define NIFF2_ANIM_CHANNEL_DIRECTION_CONSTRAINT         0x00000200
    #define NIFF2_ANIM_CHANNEL_UPVECTOR_CONSTRAINT          0x00000400
    #define NIFF2_ANIM_CHANNEL_POSITION_CONSTRAINT          0x00000800
    #define NIFF2_ANIM_CHANNEL_UNIQUE_SCALE_CONSTRAINT   0x00001000
    #define NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE_CONSTRAINT   0x00002000

    /* AnimList -> AnimGroup -> *** -> interpolation_type */

    #define NIFF2_INTERPOLATION_TYPE_CONST        0x00000000
    #define NIFF2_INTERPOLATION_TYPE_FULL         0x00000001
    #define NIFF2_INTERPOLATION_TYPE_LINEAR       0x00000002
    #define NIFF2_INTERPOLATION_TYPE_HERMITE      0x00000003

    /* CiImgList -> CiImg -> ci_img_pixel_depth */

    #define NIFF2_CI_PIXEL_DEPTH_4                0x00000004
    #define NIFF2_CI_PIXEL_DEPTH_8                0x00000008

    /* ColorPaletteList -> ColorPalette -> color_num */

    #define NIFF2_PALETTE_COLOR_16                0x00000010
    #define NIFF2_PALETTE_COLOR_256               0x00000100

    /* ColorPaletteList -> ColorPalette -> color_type */

    #define NIFF2_PALETTE_RGBA16                  0x00000000
    #define NIFF2_PALETTE_IA16                    0x00000001

    /* JointList -> Joint -> joint_type */

    #define NIFF2_1ST_JOINT                       0x00000000
    #define NIFF2_2ND_JOINT                       0x00000001
    #define NIFF2_JOINT_UP                        0x00000000
    #define NIFF2_JOINT_DOWN                      0x00010000

    /* JointList -> Joint -> joint_index */

    #define NIFF2_NO_LINK_TO_JOINT                0xffffffff

    /* JointList -> Joint -> effector_index */

    #define NIFF2_NO_LINK_TO_EFFECTOR             0xffffffff

Back to Index

Copyright 1998, 1999 NINTENDO Co., Ltd. All rights reserved.
Copyright 1998, 1999 MONEGI CORPORATION All rights reserved.