Mario Kart 64
Loading...
Searching...
No Matches
mk64.h
Go to the documentation of this file.
1#ifndef MK64_H
2#define MK64_H
3
9#include <config.h>
10
11/*=======================
12 Configuration
13=======================*/
14
15#define AUDIO_HEAP_SIZE 0x48C00
16#define AUDIO_HEAP_INIT_SIZE 0x2600
17
18#define DOUBLE_SIZE_ON_64_BIT(size) ((size) * (sizeof(void*) / 4))
19
20#define SCREEN_WIDTH 320
21#define SCREEN_HEIGHT 240
22
23#define STACKSIZE 0x2000
24
25// Border Height Define for NTSC Versions
26#define BORDER_HEIGHT 1
27
28#define COURSE_NULL 0xFF
29
49
54 /* -0x1 */ SURFACE_DEFAULT = -1,
55 /* 0x00 */ AIRBORNE,
56 /* 0x01 */ ASPHALT, // Luigi's Raceway, Toad's Turnpike, Koopa Troop beach shortcut tunnel, Mario Raceway, Royal
57 // Raceway, Rainbow Road, Block Fort, Double Deck, Skyscraper
58 /* 0x02 */ DIRT, // Luigi's Raceway, Moo Moo Farm, Kalimiari Desert on course, Choco Mountain, Wario Stadium, DK
59 // Jungle on course, Yoshi Valley
60 /* 0x03 */ SAND, // Koopa Troopa Beach light color, Royal Raceway
61 /* 0x04 */ STONE, // Royal Raceway castle entrance, Bowser's Castle
62 /* 0x05 */ SNOW, // Frappe Snowland on course, Sherber Land tunnel
63 /* 0x06 */ BRIDGE, // Royal Raceway castle bridges (even the wooden one), Banshee's Boardwalk, Big Donut
64 /* 0x07 */ SAND_OFFROAD, // Mario Raceway
65 /* 0x08 */ GRASS, // Luigi's Raceway, Mario Raceway, Royal Raceway, Bowser's Castle, DK Jungle, Yoshi Valley
66 /* 0x09 */ ICE, // Sherbert Land
67 /* 0x0A */ WET_SAND, // Koop Troopa Beach dark color
68 /* 0x0B */ SNOW_OFFROAD, // Frappe Snowland off course
69 /* 0x0C */ CLIFF, // Koopa Troopa Beach, Choco Mountain
70 /* 0x0D */ DIRT_OFFROAD, // Kalimari Desert off course
71 /* 0x0E */ TRAIN_TRACK, // Kalimari Desert
72 /* 0x0F */ CAVE, // DK Jungle cave
73 /* 0x10 */ ROPE_BRIDGE, // Bowser's Castle bridge 2, DK Jungle bridge
74 /* 0x11 */ WOOD_BRIDGE, // Frappe Snowland bridge, Bowser's Castle bridge 1,3, Yoshi Valley bridge 2
75 /* 0xFC */ BOOST_RAMP_WOOD = 0xFC, // DK Jungle
76 /* 0xFD */ OUT_OF_BOUNDS, // DK Jungle river island
77 /* 0xFE */ BOOST_RAMP_ASPHALT, // Royal Raceway
78 /* 0xFF */ RAMP // Koopa Troopa beach
79};
80
81#define GFX_GET_OPCODE(var) ((s32) ((var) & 0xFF000000))
82
83// Pointer casting is technically UB, and avoiding it gets rid of endian issues
84// as well as a nice side effect.
85#ifdef AVOID_UB
86#define GET_HIGH_U16_OF_32(var) ((u16) ((var) >> 16))
87#define GET_HIGH_S16_OF_32(var) ((s16) ((var) >> 16))
88#define GET_LOW_U16_OF_32(var) ((u16) ((var) & 0xFFFF))
89#define GET_LOW_S16_OF_32(var) ((s16) ((var) & 0xFFFF))
90#define SET_HIGH_U16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
91#define SET_HIGH_S16_OF_32(var, x) ((var) = ((var) & 0xFFFF) | ((x) << 16))
92#else
93#define GET_HIGH_U16_OF_32(var) (((u16*) &(var))[0])
94#define GET_HIGH_S16_OF_32(var) (((s16*) &(var))[0])
95#define GET_LOW_U16_OF_32(var) (((u16*) &(var))[1])
96#define GET_LOW_S16_OF_32(var) (((s16*) &(var))[1])
97#define SET_HIGH_U16_OF_32(var, x) ((((u16*) &(var))[0]) = (x))
98#define SET_HIGH_S16_OF_32(var, x) ((((s16*) &(var))[0]) = (x))
99#endif
100
101#define MACRO_COLOR_FLAG(r, g, b, flag) (r & ~0x3) | (flag & 0x3), (g & ~0x3) | ((flag >> 2) & 0x3), b
102
103#endif // MK64_H
SURFACE_TYPE
The different types of surface in the game.
Definition mk64.h:53
@ STONE
Definition mk64.h:61
@ RAMP
Definition mk64.h:78
@ WOOD_BRIDGE
Definition mk64.h:74
@ WET_SAND
Definition mk64.h:67
@ BRIDGE
Definition mk64.h:63
@ ICE
Definition mk64.h:66
@ ASPHALT
Definition mk64.h:56
@ ROPE_BRIDGE
Definition mk64.h:73
@ SAND_OFFROAD
Definition mk64.h:64
@ BOOST_RAMP_WOOD
Definition mk64.h:75
@ DIRT_OFFROAD
Definition mk64.h:70
@ CAVE
Definition mk64.h:72
@ SNOW
Definition mk64.h:62
@ SNOW_OFFROAD
Definition mk64.h:68
@ BOOST_RAMP_ASPHALT
Definition mk64.h:77
@ OUT_OF_BOUNDS
Definition mk64.h:76
@ SAND
Definition mk64.h:60
@ SURFACE_DEFAULT
Definition mk64.h:54
@ AIRBORNE
Definition mk64.h:55
@ TRAIN_TRACK
Definition mk64.h:71
@ CLIFF
Definition mk64.h:69
@ DIRT
Definition mk64.h:58
@ GRASS
Definition mk64.h:65
TIME_TRIAL_DATA_INDEX
Definition mk64.h:30
@ TIME_TRIAL_DATA_BANSHEE_BOARDWALK
Definition mk64.h:45
@ TIME_TRIAL_DATA_ROYAL_RACEWAY
Definition mk64.h:41
@ TIME_TRIAL_DATA_SHERBET_LAND
Definition mk64.h:40
@ TIME_TRIAL_DATA_KOOPA_BEACH
Definition mk64.h:33
@ TIME_TRIAL_DATA_YOSHI_VALLEY
Definition mk64.h:44
@ TIME_TRIAL_DATA_KALAMARI_DESERT
Definition mk64.h:34
@ TIME_TRIAL_DATA_WARIO_STADIUM
Definition mk64.h:39
@ TIME_TRIAL_DATA_BOWSER_CASTLE
Definition mk64.h:42
@ TIME_TRIAL_DATA_CHOCO_MOUNTAIN
Definition mk64.h:37
@ TIME_TRIAL_DATA_FRAPPE_SNOWLAND
Definition mk64.h:36
@ NUM_TIME_TRIAL_DATA
Definition mk64.h:47
@ TIME_TRIAL_DATA_RAINBOW_ROAD
Definition mk64.h:46
@ TIME_TRIAL_DATA_TOADS_TURNPIKE
Definition mk64.h:35
@ TIME_TRIAL_DATA_MARIO_RACEWAY
Definition mk64.h:38
@ TIME_TRIAL_DATA_LUIGI_RACEWAY
Definition mk64.h:31
@ TIME_TRIAL_DATA_DK_JUNGLE
Definition mk64.h:43
@ TIME_TRIAL_DATA_MOO_MOO_FARM
Definition mk64.h:32