// **** include libraries and files #include // load standard libraries #include // load playstation library #include "pad.h" // load joypad reading // **** set up defines #define true (1) #define false (0) #define OTABLE_LENGTH (12) // define length of OTable #define MAX_PACKETS (248000) // define size of GPU scratchpad #define IS_PAL_USED (true) // true = PAL mode, false = NTSC mode #define PAL_WIDTH (320) // size of PAL screen #define PAL_HEIGHT (240) #define NTSC_WIDTH (320) // size of NTSC screen #define NTSC_HEIGHT (256) #define GROUND_OBJECTS (74) // total max number of ground objects #define GROUND_SIZE (1950) // X and Z dimensions of one road object #define CAR_MEM_ADDR (0x80090000) // location of car .TMD data #define ROAD_MEM_ADDR (0x80098000) // location of track .TMD data #define TUNN_MEM_ADDR (0x80099000) // location of track .TMD data #define TREE_MEM_ADDR (0x800A0000) #define CORN_MEM_ADDR (0x800A1000) #define TIM_NUMBERS (0x800A3000) #define TIM_DIAL (0x800A5000) #define TIM_POINTER (0x800A7000) #define TIM_BARR (0x800A9000) #define TIM_GRASS (0x800B1000) #define TIM_LBARR (0x800B3000) #define TIM_LOGO (0x800B5000) #define TIM_LROAD (0x800B7000) #define TIM_ROAD (0x800B9000) #define TIM_TREE (0x800C1000) #define FORWARD (0) #define LEFT (1) #define RIGHT (2) #define TUNNEL (3) #define TREE_L (4) #define TREE_R (5) #define TRACK (0) #define GRASS (1) #define SMASH (2) #define TREES (3) // **** create global variables, structures, headers and arrays (mostly system stuff) u_long TRANSPARENCY; GsSPRITE Numbers[12][7]; u_long CounterDigits[12][5]; u_long CurrentCounter; static u_long Running = true; // define program to be running static u_long VerticalSync = 0; // set up speed counter for processor GsOT OTable_Header[2]; // Header files holding OTable info GsOT_TAG OTable_Array[2][1<