You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
261 lines
9.5 KiB
C
261 lines
9.5 KiB
C
/**************************************************************************
|
|
* *
|
|
* Copyright (C) 1995, Silicon Graphics, Inc. *
|
|
* *
|
|
* These coded instructions, statements, and computer programs contain *
|
|
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
|
* are protected by Federal copyright law. They may not be disclosed *
|
|
* to third parties or copied or duplicated in any form, in whole or *
|
|
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
/**************************************************************************
|
|
*
|
|
* $Revision: 1.15 $
|
|
* $Date: 1998/03/31 07:58:57 $
|
|
* $Source: /exdisk2/cvs/N64OS/Master/cvsmdev2/PR/include/ucode.h,v $
|
|
*
|
|
**************************************************************************/
|
|
|
|
#ifndef _UCODE_H_
|
|
#define _UCODE_H_
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <PR/ultratypes.h>
|
|
|
|
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
|
|
|
/**************************************************************************
|
|
*
|
|
* Macro definitions
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* This is the recommended size of the SP DRAM stack area, used
|
|
* by the graphics ucode. This stack is used primarily for the
|
|
* matrix stack, so it needs to be AT LEAST (10 * 64bytes) in size.
|
|
*/
|
|
#define SP_DRAM_STACK_SIZE8 (1024)
|
|
#define SP_DRAM_STACK_SIZE64 (SP_DRAM_STACK_SIZE8 >> 3)
|
|
|
|
/*
|
|
* This is the size of the IMEM, which is also the size of the
|
|
* graphics microcode. (other ucode might be less)
|
|
* This value is used in apps to tell the OS how much ucode to
|
|
* load.
|
|
*/
|
|
#define SP_UCODE_SIZE 4096
|
|
|
|
/*
|
|
* This is 1/2 the size of DMEM, which is the maximum amount of
|
|
* initialized DMEM data any of the ucode tasks need to start up.
|
|
* This value is dependent on all of the task ucodes, and is therefore
|
|
* fixed per release.
|
|
*/
|
|
#define SP_UCODE_DATA_SIZE 2048
|
|
|
|
|
|
/**************************************************************************
|
|
*
|
|
* Extern variables
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* Symbols generated by "rsp2elf", included by "makerom" that indicate
|
|
* the location and size of the SP microcode objects. The ucode objects
|
|
* are loaded as part of the codesegment (arbitrary, could do other
|
|
* ways)
|
|
*
|
|
*/
|
|
|
|
/* standard boot ucode: */
|
|
extern u64 rspbootTextStart[], rspbootTextEnd[];
|
|
|
|
/* standard 3D ucode: */
|
|
extern u64 gspFast3DTextStart[], gspFast3DTextEnd[];
|
|
extern u64 gspFast3DDataStart[], gspFast3DDataEnd[];
|
|
|
|
/* 3D ucode with output to DRAM: */
|
|
extern u64 gspFast3D_dramTextStart[], gspFast3D_dramTextEnd[];
|
|
extern u64 gspFast3D_dramDataStart[], gspFast3D_dramDataEnd[];
|
|
|
|
/* 3D ucode with output through DRAM FIFO to RDP: */
|
|
extern u64 gspFast3D_fifoTextStart[], gspFast3D_fifoTextEnd[];
|
|
extern u64 gspFast3D_fifoDataStart[], gspFast3D_fifoDataEnd[];
|
|
|
|
/* 3D ucode without nearclip: */
|
|
extern u64 gspF3DNoNTextStart[], gspF3DNoNTextEnd[];
|
|
extern u64 gspF3DNoNDataStart[], gspF3DNoNDataEnd[];
|
|
|
|
/* 3D ucode without nearclip with output to DRAM: */
|
|
extern u64 gspF3DNoN_dramTextStart[];
|
|
extern u64 gspF3DNoN_dramTextEnd[];
|
|
extern u64 gspF3DNoN_dramDataStart[];
|
|
extern u64 gspF3DNoN_dramDataEnd[];
|
|
|
|
/* 3D ucode without nearclip with output through DRAM FIFO to RDP: */
|
|
extern u64 gspF3DNoN_fifoTextStart[];
|
|
extern u64 gspF3DNoN_fifoTextEnd[];
|
|
extern u64 gspF3DNoN_fifoDataStart[];
|
|
extern u64 gspF3DNoN_fifoDataEnd[];
|
|
|
|
/* 3D line ucode: */
|
|
extern u64 gspLine3DTextStart[], gspLine3DTextEnd[];
|
|
extern u64 gspLine3DDataStart[], gspLine3DDataEnd[];
|
|
|
|
/* 3D line ucode with output to DRAM: */
|
|
extern u64 gspLine3D_dramTextStart[], gspLine3D_dramTextEnd[];
|
|
extern u64 gspLine3D_dramDataStart[], gspLine3D_dramDataEnd[];
|
|
|
|
/* 3D line ucode with output through DRAM FIFO to RDP: */
|
|
extern u64 gspLine3D_fifoTextStart[], gspLine3D_fifoTextEnd[];
|
|
extern u64 gspLine3D_fifoDataStart[], gspLine3D_fifoDataEnd[];
|
|
|
|
/* super 3D ucode: */
|
|
extern u64 gspSuper3DTextStart[], gspSuper3DTextEnd[];
|
|
extern u64 gspSuper3DDataStart[], gspSuper3DDataEnd[];
|
|
|
|
/* 3D ucode with output to DRAM: */
|
|
extern u64 gspSuper3D_dramTextStart[], gspSuper3D_dramTextEnd[];
|
|
extern u64 gspSuper3D_dramDataStart[], gspSuper3D_dramDataEnd[];
|
|
|
|
/* 3D ucode with output through DRAM FIFO to RDP: */
|
|
extern u64 gspSuper3D_fifoTextStart[], gspSuper3D_fifoTextEnd[];
|
|
extern u64 gspSuper3D_fifoDataStart[], gspSuper3D_fifoDataEnd[];
|
|
|
|
|
|
/* 2D sprite ucode: */
|
|
extern u64 gspSprite2DTextStart[], gspSprite2DTextEnd[];
|
|
extern u64 gspSprite2DDataStart[], gspSprite2DDataEnd[];
|
|
|
|
/* 2D sprite ucode with output to DRAM: */
|
|
extern u64 gspSprite2D_dramTextStart[], gspSprite2D_dramTextEnd[];
|
|
extern u64 gspSprite2D_dramDataStart[], gspSprite2D_dramDataEnd[];
|
|
|
|
/* 2D sprite ucode with output through DRAM FIFO to RDP: */
|
|
extern u64 gspSprite2D_fifoTextStart[], gspSprite2D_fifoTextEnd[];
|
|
extern u64 gspSprite2D_fifoDataStart[], gspSprite2D_fifoDataEnd[];
|
|
|
|
/* basic audio ucode: */
|
|
extern u64 aspMainTextStart[], aspMainTextEnd[];
|
|
extern u64 aspMainDataStart[], aspMainDataEnd[];
|
|
|
|
/*========== F3DEX/F3DLX/F3DLP/L3DEX ==========*/
|
|
/* FIFO version only */
|
|
extern u64 gspF3DEX_fifoTextStart[], gspF3DEX_fifoTextEnd[];
|
|
extern u64 gspF3DEX_fifoDataStart[], gspF3DEX_fifoDataEnd[];
|
|
extern u64 gspF3DEX_NoN_fifoTextStart[], gspF3DEX_NoN_fifoTextEnd[];
|
|
extern u64 gspF3DEX_NoN_fifoDataStart[], gspF3DEX_NoN_fifoDataEnd[];
|
|
|
|
extern u64 gspF3DLX_fifoTextStart[], gspF3DLX_fifoTextEnd[];
|
|
extern u64 gspF3DLX_fifoDataStart[], gspF3DLX_fifoDataEnd[];
|
|
extern u64 gspF3DLX_NoN_fifoTextStart[], gspF3DLX_NoN_fifoTextEnd[];
|
|
extern u64 gspF3DLX_NoN_fifoDataStart[], gspF3DLX_NoN_fifoDataEnd[];
|
|
extern u64 gspF3DLX_Rej_fifoTextStart[], gspF3DLX_Rej_fifoTextEnd[];
|
|
extern u64 gspF3DLX_Rej_fifoDataStart[], gspF3DLX_Rej_fifoDataEnd[];
|
|
|
|
extern u64 gspF3DLP_Rej_fifoTextStart[], gspF3DLP_Rej_fifoTextEnd[];
|
|
extern u64 gspF3DLP_Rej_fifoDataStart[], gspF3DLP_Rej_fifoDataEnd[];
|
|
extern u64 gspL3DEX_fifoTextStart[], gspL3DEX_fifoTextEnd[];
|
|
extern u64 gspL3DEX_fifoDataStart[], gspL3DEX_fifoDataEnd[];
|
|
|
|
/*========== F3DEX2/F3DLX2/F3DLP2/L3DEX2 ==========*/
|
|
/* FIFO version */
|
|
extern u64 gspF3DEX2_fifoTextStart[], gspF3DEX2_fifoTextEnd[];
|
|
extern u64 gspF3DEX2_fifoDataStart[], gspF3DEX2_fifoDataEnd[];
|
|
extern u64 gspF3DEX2_NoN_fifoTextStart[],gspF3DEX2_NoN_fifoTextEnd[];
|
|
extern u64 gspF3DEX2_NoN_fifoDataStart[],gspF3DEX2_NoN_fifoDataEnd[];
|
|
extern u64 gspF3DEX2_Rej_fifoTextStart[],gspF3DEX2_Rej_fifoTextEnd[];
|
|
extern u64 gspF3DEX2_Rej_fifoDataStart[],gspF3DEX2_Rej_fifoDataEnd[];
|
|
extern u64 gspF3DLX2_Rej_fifoTextStart[],gspF3DLX2_Rej_fifoTextEnd[];
|
|
extern u64 gspF3DLX2_Rej_fifoDataStart[],gspF3DLX2_Rej_fifoDataEnd[];
|
|
extern u64 gspL3DEX2_fifoTextStart[], gspL3DEX2_fifoTextEnd[];
|
|
extern u64 gspL3DEX2_fifoDataStart[], gspL3DEX2_fifoDataEnd[];
|
|
|
|
/* XBUS version */
|
|
extern u64 gspF3DEX2_xbusTextStart[], gspF3DEX2_xbusTextEnd[];
|
|
extern u64 gspF3DEX2_xbusDataStart[], gspF3DEX2_xbusDataEnd[];
|
|
extern u64 gspF3DEX2_NoN_xbusTextStart[],gspF3DEX2_NoN_xbusTextEnd[];
|
|
extern u64 gspF3DEX2_NoN_xbusDataStart[],gspF3DEX2_NoN_xbusDataEnd[];
|
|
extern u64 gspF3DEX2_Rej_xbusTextStart[],gspF3DEX2_Rej_xbusTextEnd[];
|
|
extern u64 gspF3DEX2_Rej_xbusDataStart[],gspF3DEX2_Rej_xbusDataEnd[];
|
|
extern u64 gspF3DLX2_Rej_xbusTextStart[],gspF3DLX2_Rej_xbusTextEnd[];
|
|
extern u64 gspF3DLX2_Rej_xbusDataStart[],gspF3DLX2_Rej_xbusDataEnd[];
|
|
extern u64 gspL3DEX2_xbusTextStart[], gspL3DEX2_xbusTextEnd[];
|
|
extern u64 gspL3DEX2_xbusDataStart[], gspL3DEX2_xbusDataEnd[];
|
|
|
|
/*========== F3DZEX2/L3DZEX2 ==========*/
|
|
/* FIFO version */
|
|
extern u64 gspF3DZEX2_fifoTextStart[],
|
|
gspF3DZEX2_fifoTextEnd[];
|
|
extern u64 gspF3DZEX2_fifoDataStart[],
|
|
gspF3DZEX2_fifoDataEnd[];
|
|
extern u64 gspF3DZEX2_NoN_fifoTextStart[],
|
|
gspF3DZEX2_NoN_fifoTextEnd[];
|
|
extern u64 gspF3DZEX2_NoN_fifoDataStart[],
|
|
gspF3DZEX2_NoN_fifoDataEnd[];
|
|
extern u64 gspL3DZEX2_fifoTextStart[],
|
|
gspL3DZEX2_fifoTextEnd[];
|
|
extern u64 gspL3DZEX2_fifoDataStart[],
|
|
gspL3DZEX2_fifoDataEnd[];
|
|
/* XBUS version */
|
|
extern u64 gspF3DZEX2_xbusTextStart[],
|
|
gspF3DZEX2_xbusTextEnd[];
|
|
extern u64 gspF3DZEX2_xbusDataStart[],
|
|
gspF3DZEX2_xbusDataEnd[];
|
|
extern u64 gspF3DZEX2_NoN_xbusTextStart[],
|
|
gspF3DZEX2_NoN_xbusTextEnd[];
|
|
extern u64 gspF3DZEX2_NoN_xbusDataStart[],
|
|
gspF3DZEX2_NoN_xbusDataEnd[];
|
|
extern u64 gspL3DZEX2_xbusTextStart[],
|
|
gspL3DZEX2_xbusTextEnd[];
|
|
extern u64 gspL3DZEX2_xbusDataStart[],
|
|
gspL3DZEX2_xbusDataEnd[];
|
|
|
|
/*========== F3DZEX2/L3DZEX2 ==========*/
|
|
extern u64 gspF3DZEX2_PosLight_fifoTextStart[],
|
|
gspF3DZEX2_PosLight_fifoTextEnd[];
|
|
extern u64 gspF3DZEX2_PosLight_fifoDataStart[],
|
|
gspF3DZEX2_PosLight_fifoDataEnd[];
|
|
extern u64 gspF3DZEX2_NoN_PosLight_fifoTextStart[],
|
|
gspF3DZEX2_NoN_PosLight_fifoTextEnd[];
|
|
extern u64 gspF3DZEX2_NoN_PosLight_fifoDataStart[],
|
|
gspF3DZEX2_NoN_PosLight_fifoDataEnd[];
|
|
extern u64 gspL3DZEX2_PosLight_fifoTextStart[],
|
|
gspL3DZEX2_PosLight_fifoTextEnd[];
|
|
extern u64 gspL3DZEX2_PosLight_fifoDataStart[],
|
|
gspL3DZEX2_PosLight_fifoDataEnd[];
|
|
|
|
/**************************************************************************
|
|
*
|
|
* decomp ucode names
|
|
*
|
|
*/
|
|
|
|
// F3D ucode
|
|
extern u64 rspF3DStart[], rspF3DEnd[];
|
|
|
|
// F3D ucode data
|
|
extern u64 rspF3DDataStart[], rspF3DDataEnd[];
|
|
|
|
|
|
/**************************************************************************
|
|
*
|
|
* Function prototypes
|
|
*
|
|
*/
|
|
|
|
#endif /* _LANGUAGE_C */
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
}
|
|
#endif
|
|
|
|
#endif /* !_UCODE_H */
|