SpaghettiKart
Loading...
Searching...
No Matches
defines.h File Reference

Go to the source code of this file.

Macros

#define EXTERN_C   extern
 
#define EXTERN_C_START
 
#define EXTERN_C_END
 
#define OK   1
 Options for Controller Pak state.
 
#define BAD   0
 
#define DEBUG_MODE   1
 Enable debug mode.
 
#define DEBUG_MENU   2
 
#define HOLD_ALL_DPAD_AND_C_BUTTONS    (U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
 
#define ALL_BUTTONS
 
#define REPLAY_A_BUTTON   (1 << 31)
 
#define REPLAY_B_BUTTON   (1 << 30)
 
#define REPLAY_Z_TRIG   (1 << 29)
 
#define REPLAY_R_TRIG   (1 << 28)
 
#define REPLAY_FRAME_COUNTER   0xFF0000
 
#define REPLAY_CLEAR_FRAME_COUNTER   (0xFFFFFFFF & ~REPLAY_FRAME_COUNTER)
 
#define REPLAY_STICK_Y   0xFF00
 
#define REPLAY_STICK_X   0xFF
 
#define REPLAY_FRAME_INCREMENT   0x10000
 
#define DEMO_MODE_ACTIVE   1
 Jump to demo mode from the debug menu using L and A.
 
#define DEMO_MODE_INACTIVE   0
 
#define TRACK_TIMER_ITER   0.01666666
 
#define TRACK_TIMER_ITER_f   0.01666666f
 
#define V_BlANK_TIMER_ITER   0.01666666
 
#define PLAYER_INACTIVE   0
 
#define PLAYER_UNKNOWN_0x10   (1 << 4)
 
#define PLAYER_UNKNOWN_0x40   (1 << 6)
 
#define PLAYER_UNKNOWN_0x80   (1 << 7)
 
#define PLAYER_INVISIBLE_OR_BOMB   (1 << 8)
 
#define PLAYER_STAGING   (1 << 9)
 
#define PLAYER_UNKNOWN   (1 << 10)
 
#define PLAYER_CINEMATIC_MODE   (1 << 11)
 
#define PLAYER_CPU   (1 << 12)
 
#define PLAYER_START_SEQUENCE   (1 << 13)
 
#define PLAYER_HUMAN   (1 << 14)
 
#define PLAYER_EXISTS   (1 << 15)
 
#define PLAYER_HUMAN_AND_CPU   PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_CPU | PLAYER_START_SEQUENCE
 
#define ZERO_PLAYERS_SELECTED   0
 
#define ONE_PLAYERS_SELECTED   1
 
#define TWO_PLAYERS_SELECTED   2
 
#define THREE_PLAYERS_SELECTED   3
 
#define FOUR_PLAYERS_SELECTED   4
 
#define SELECTED_PLAYER_DEFINES_TOTAL   5
 
#define NUM_PLAYERS   8
 
#define MARIO_SIZE   0.75f
 
#define LUIGI_SIZE   0.75f
 
#define YOSHI_SIZE   0.75f
 
#define TOAD_SIZE   0.75f
 
#define DK_SIZE   0.75f
 
#define WARIO_SIZE   0.75f
 
#define PEACH_SIZE   0.75f
 
#define BOWSER_SIZE   0.75f
 
#define MAX_NUM_MAIN_MENU_GAME_TYPES   3
 
#define GRAND_PRIX   0
 Options for gModeSelection.
 
#define TIME_TRIALS   1
 
#define VERSUS   2
 
#define BATTLE   3
 
#define CC_50   0
 Options for gCCSelection CC stands for cubic-centimetres. It measures engine displacement composed from cylinder volume. Generally, the main determiner of horsepower output.
 
#define CC_100   1
 
#define CC_150   2
 
#define CC_EXTRA   3
 
#define CC_BATTLE   4
 
#define NUM_COURSES_PER_CUP   4
 
#define MARIO   0
 Character IDs Note that these are not the same as the values found in gCharacterGridSelections as those are ordered by table.
 
#define LUIGI   1
 
#define YOSHI   2
 
#define TOAD   3
 
#define DK   4
 
#define WARIO   5
 
#define PEACH   6
 
#define BOWSER   7
 
#define OPTIONS_MENU   5
 Options for gMenuSelection.
 
#define DATA_MENU   6
 
#define COURSE_DATA_MENU   7
 
#define LOGO_INTRO_MENU   8
 
#define CONTROLLER_PAK_MENU   9
 
#define START_MENU   10
 
#define MAIN_MENU   11
 
#define CHARACTER_SELECT_MENU   12
 
#define COURSE_SELECT_MENU   13
 
#define RACING_DUPLICATE   14
 
#define HARBOUR_MASTERS_MENU   15
 
#define START_MENU_FROM_QUIT   0
 Options for gGameState gGotoMode and gGotoMenu.
 
#define MAIN_MENU_FROM_QUIT   1
 
#define PLAYER_SELECT_MENU_FROM_QUIT   2
 
#define COURSE_SELECT_MENU_FROM_QUIT   3
 
#define RACING   4
 
#define ENDING   5
 
#define CREDITS_SEQUENCE   9
 
#define RACE_INIT   0
 Options for gRaceState.
 
#define RACE_SETUP   1
 
#define RACE_STAGING   2
 
#define RACE_IN_PROGRESS   3
 
#define RACE_CALCULATE_RANKS   4
 
#define RACE_FINISHED   5
 
#define RACE_UNK   6
 
#define RACE_EXIT   7
 
#define SCREEN_MODE_1P   0
 Options for gScreenModeSelection and gActiveScreenMode.
 
#define SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL   1
 
#define SCREEN_MODE_2P_SPLITSCREEN_VERTICAL   2
 
#define SCREEN_MODE_3P_4P_SPLITSCREEN   3
 
#define NUM_SCREEN_MODES   4
 
#define TIME_TRIAL_3LAP_RECORD_1   0
 Indexes for accessing Time Trial records.
 
#define TIME_TRIAL_3LAP_RECORD_2   1
 
#define TIME_TRIAL_3LAP_RECORD_3   2
 
#define TIME_TRIAL_3LAP_RECORD_4   3
 
#define TIME_TRIAL_3LAP_RECORD_5   4
 
#define TIME_TRIAL_1LAP_RECORD   5
 
#define SOUND_STEREO   0
 Sound mode options.
 
#define SOUND_HEADPHONES   1
 
#define SOUND_SURROUND   2
 
#define SOUND_MONO   3
 
#define NUM_SOUND_MODES   4
 
#define DEMO_ONE   0
 Title screen demo options All demos use 100 CC.
 
#define DEMO_TWO   1
 
#define DEMO_THREE   2
 
#define DEMO_FOUR   3
 
#define DEMO_FIVE   4
 
#define DEMO_SIX   5
 
#define NUM_DEMOS   6
 
#define BALLOON_STATUS_GONE   0
 Balloon status.
 
#define BALLOON_STATUS_PRESENT   1
 
#define BALLOON_STATUS_DEPARTING   2
 
#define NUM_PODIUMS   3
 
#define MAX_TIME   0x927C0
 Max representable time, 100 minutes measured in centiseconds.
 
#define DEGREES_CONVERSION_FACTOR   182
 
#define UNDER_OOB_OR_FLUID_LEVEL   0x1
 
#define PASS_OOB_OR_FLUID_LEVEL   0x2
 
#define UNDER_FLUID_LEVEL   0x4
 
#define UNDER_OOB_LEVEL   0x8
 
#define CHANGING_ANIMATION   0x1
 
#define UNK_002_UNKNOWN_0x2   0x2
 
#define UNK_002_UNKNOWN_0x4
 
#define SIDE_OF_KART   0x8
 
#define WHISTLE   0x20
 
#define CRASH   0x40
 
#define WHIRRR   0x80
 
#define POOMP   0x100
 
#define BOING   0x800
 
#define EXPLOSION   0x1000
 
#define LAKITU_RETRIEVAL   0x1
 
#define HELD_BY_LAKITU   0x2
 
#define LAKITU_FIZZLE   0x4
 
#define LAKITU_SCENE   0x8
 
#define FRIGID_EFFECT   0x10
 
#define THAWING_EFFECT   0x20
 
#define FROZEN_EFFECT   0x80
 
#define WENT_OVER_OOB   0x100
 
#define LAKITU_LAVA   0x1000
 
#define LAKITU_WATER   0x2000
 
#define BACK_UP   0x1
 
#define RIGHT_TURN   0x2
 
#define LEFT_TURN   0x4
 
#define MOVE_BACKWARDS   0x8
 
#define LOSE_GP_RACE   0x10
 
#define THROTTLE   0x20
 
#define EARLY_SPINOUT_RIGHT   0x40
 
#define EARLY_SPINOUT_LEFT   0x80
 
#define POST_TUMBLE_GAS   0x100
 
#define BECOME_INVISIBLE   0x200
 
#define UNUSED_0x400   0x400
 
#define UNUSED_0x800   0x800
 
#define UNUSED_0x1000   0x1000
 
#define UNUSED_0x2000   0x2000
 
#define DRIVING_SPINOUT   0x4000
 
#define UNKNOWN_BATTLE_VAR   0x8000
 
#define HIT_BANANA_TRIGGER   0x1
 triggers indicating that an effect should be applied to a kart
 
#define HIGH_TUMBLE_TRIGGER   0x2
 
#define LOW_TUMBLE_TRIGGER   0x4
 
#define DRIVING_SPINOUT_TRIGGER   0x80
 
#define THWOMP_SQUISH_TRIGGER   0x100
 
#define SHROOM_TRIGGER   0x200
 
#define BOO_TRIGGER   0x800
 
#define UNUSED_TRIGGER_0x1000   0x1000
 
#define STAR_TRIGGER   0x2000
 
#define LIGHTNING_STRIKE_TRIGGER   0x4000
 
#define BOOST_RAMP_WOOD_TRIGGER   0x8000
 
#define UNUSED_TRIGGER_0x20000   0x20000
 
#define DRAG_ITEM_EFFECT   0x40000
 
#define HIT_PADDLE_BOAT_TRIGGER   0x80000
 
#define UNUSED_TRIGGER_0x10000   0x100000
 
#define SPINOUT_TRIGGER   0x200000
 
#define VERTICAL_TUMBLE_TRIGGER   0x400000
 
#define BOOST_RAMP_ASPHALT_TRIGGER   0x800000
 
#define HIT_BY_STAR_TRIGGER   0x1000000
 
#define START_BOOST_TRIGGER   0x2000000
 
#define LOSE_BATTLE_EFFECT   0x4000000
 
#define BECOME_BOMB_EFFECT   0x8000000
 
#define START_SPINOUT_TRIGGER   0x10000000
 
#define ALL_TRIGGERS   (0xFFFFFFFF)
 
#define RACING_SPINOUT_TRIGGERS   (SPINOUT_TRIGGER | DRIVING_SPINOUT_TRIGGER | HIT_BANANA_TRIGGER)
 
#define RAMP_BOOST_TRIGGERS   (BOOST_RAMP_ASPHALT_TRIGGER | BOOST_RAMP_WOOD_TRIGGER)
 
#define ANY_BOOST_TRIGGERS   (RAMP_BOOST_TRIGGERS | SHROOM_TRIGGER)
 
#define STATE_TRANSITION_TRIGGERS   (STAR_TRIGGER | BOO_TRIGGER | UNUSED_TRIGGER_0x1000 | UNUSED_TRIGGER_0x20000)
 
#define HIT_TRIGGERS
 
#define UNKNOWN_EFFECT_0x1   0x1
 effect of player's for effects
 
#define BOOST_RAMP_WOOD_EFFECT   0x4
 
#define DRIFTING_EFFECT   0x10
 
#define UNKNOWN_EFFECT_0x40   0x40
 
#define UNKNOWN_EFFECT_0x80   0x80
 
#define UNKNOWN_EFFECT_0xC   0xC
 
#define UNKNOWN_EFFECT_0x100   0x100
 
#define UNKNOWN_EFFECT_0x1000   0x1000
 
#define STAR_EFFECT   0x200
 
#define BOOST_EFFECT   0x2000
 
#define UNKNOWN_EFFECT_0x10000   0x10000
 
#define BOOST_RAMP_ASPHALT_EFFECT   0x100000
 
#define UNKNOWN_EFFECT_0x200000   0x200000
 
#define REVERSE_EFFECT   0x400000
 
#define UNKNOWN_EFFECT_0x1000000   0x1000000
 
#define HIT_BY_ITEM_EFFECT   0x2000000
 
#define HIT_EFFECT   0x4000000
 
#define UNKNOWN_EFFECT_0x10000000   0x10000000
 
#define LIGHTNING_EFFECT   0x40000000
 
#define BOO_EFFECT   0x80000000
 
#define STAR_EFFECT_DURATION   0xA
 durations of effects
 
#define BOO_EFFECT_DURATION   0x7
 
#define ALPHA_MAX   0xFF
 alpha relates values
 
#define ALPHA_MIN   0x0
 
#define ALPHA_BOO_EFFECT   0x60
 
#define STAR_EFFECT_DURATION   0xA
 durations of effects
 
#define BOO_EFFECT_DURATION   0x7
 
#define ALPHA_MAX   0xFF
 alpha relates values
 
#define ALPHA_MIN   0x0
 
#define ALPHA_BOO_EFFECT   0x60
 
#define ALPHA_CHANGE_LARGE   8
 
#define ALPHA_CHANGE_MEDIUM   4
 
#define ALPHA_CHANGE_SMALL   2
 
#define SPAWN_FIRST_SHELL   0
 shell state
 
#define SPAWN_SECOND_SHELL   1
 
#define SPAWN_THIRD_SHELL   2
 
#define SHELL_COLLISION   3
 
#define ORBIT_PLAYER   4
 
#define GPACK_RGB888(r, g, b)
 
#define COLOR_LIGHT   GPACK_RGB888(0x1C, 0x00, 0x00)
 
#define COLOR_LAVA   GPACK_RGB888(0x34, 0x00, 0x00)
 
#define COLOR_BLACK   GPACK_RGB888(0, 0, 0)
 
#define GRID_SIZE   32
 
#define FACING_Y_AXIS   0x4000
 
#define FACING_X_AXIS   0x8000
 
#define FACING_Z_AXIS   0x2000
 
#define MIN_LAPS   0
 
#define MAX_LAPS   3
 

Enumerations

enum  PlayerId {
  PLAYER_NONE = -1 , PLAYER_ONE = 0 , PLAYER_TWO = 1 , PLAYER_THREE = 2 ,
  PLAYER_FOUR = 3 , PLAYER_FIVE = 4 , PLAYER_SIX = 5 , PLAYER_SEVEN = 6 ,
  PLAYER_EIGHT = 7
}
 
enum  {
  MUSHROOM_CUP , FLOWER_CUP , STAR_CUP , SPECIAL_CUP ,
  BATTLE_CUP , NUM_CUPS
}
 Options for gCupSelection There is a "cup" for battle mode, probably so that the battle courses could be displayed in the same way race courses are. More...
 
enum  { TRACK_ONE , TRACK_TWO , TRACK_THREE , TRACK_FOUR }
 Options for gCourseIndexInCup. More...
 
enum  COLOR_ID {
  TEXT_BLUE , TEXT_GREEN , TEXT_RED , TEXT_YELLOW ,
  TEXT_BLUE_GREEN_RED_CYCLE_1 , TEXT_BLUE_GREEN_RED_CYCLE_2
}
 Text color options The 2 cycling options cycle through Blue -> Green -> Red Cycle 2 appears to be one step ahead of Cycle 1 Other values like 6 and 7 sort of work, they cause rapid flashing between 2 colors, but also cause individual characters to be cutoff on their right side. More...
 
enum  ITEMS {
  ITEM_NONE = 0 , ITEM_BANANA , ITEM_BANANA_BUNCH , ITEM_GREEN_SHELL ,
  ITEM_TRIPLE_GREEN_SHELL , ITEM_RED_SHELL , ITEM_TRIPLE_RED_SHELL , ITEM_BLUE_SPINY_SHELL ,
  ITEM_THUNDERBOLT , ITEM_FAKE_ITEM_BOX , ITEM_STAR , ITEM_BOO ,
  ITEM_MUSHROOM , ITEM_DOUBLE_MUSHROOM , ITEM_TRIPLE_MUSHROOM , ITEM_SUPER_MUSHROOM ,
  ITEM_MAX
}
 Item IDs. More...
 
enum  CPU_BEHAVIOURS {
  BEHAVIOUR_NONE = 0 , BEHAVIOUR_1 , BEHAVIOUR_HOP , BEHAVIOUR_DRIVE_CENTER ,
  BEHAVIOUR_DRIVE_LEFT , BEHAVIOUR_DRIVE_OUTER , BEHAVIOUR_NORMAL_SPEED , BEHAVIOUR_FAST_SPEED ,
  BEHAVIOUR_SLOW_SPEED , BEHAVIOUR_9 , BEHAVIOUR_10 , BEHAVIOUR_MAX_SPEED
}
 
enum  DIRECTION { NORTH , EAST , SOUTH , WEST }
 
enum  PLACE { FIRST_PLACE , SECOND_PLACE , THIRD_PLACE , FOURTH_PLACE }
 

Macro Definition Documentation

◆ ALL_BUTTONS

#define ALL_BUTTONS
Value:
(A_BUTTON | B_BUTTON | L_TRIG | R_TRIG | Z_TRIG | START_BUTTON | U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | \
L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)

◆ ALL_TRIGGERS

#define ALL_TRIGGERS   (0xFFFFFFFF)

◆ ALPHA_BOO_EFFECT [1/2]

#define ALPHA_BOO_EFFECT   0x60

◆ ALPHA_BOO_EFFECT [2/2]

#define ALPHA_BOO_EFFECT   0x60

◆ ALPHA_CHANGE_LARGE

#define ALPHA_CHANGE_LARGE   8

◆ ALPHA_CHANGE_MEDIUM

#define ALPHA_CHANGE_MEDIUM   4

◆ ALPHA_CHANGE_SMALL

#define ALPHA_CHANGE_SMALL   2

◆ ALPHA_MAX [1/2]

#define ALPHA_MAX   0xFF

alpha relates values

alpha related values

◆ ALPHA_MAX [2/2]

#define ALPHA_MAX   0xFF

alpha relates values

alpha related values

◆ ALPHA_MIN [1/2]

#define ALPHA_MIN   0x0

◆ ALPHA_MIN [2/2]

#define ALPHA_MIN   0x0

◆ ANY_BOOST_TRIGGERS

#define ANY_BOOST_TRIGGERS   (RAMP_BOOST_TRIGGERS | SHROOM_TRIGGER)

◆ BACK_UP

#define BACK_UP   0x1

◆ BAD

#define BAD   0

◆ BALLOON_STATUS_DEPARTING

#define BALLOON_STATUS_DEPARTING   2

◆ BALLOON_STATUS_GONE

#define BALLOON_STATUS_GONE   0

Balloon status.

◆ BALLOON_STATUS_PRESENT

#define BALLOON_STATUS_PRESENT   1

◆ BATTLE

#define BATTLE   3

◆ BECOME_BOMB_EFFECT

#define BECOME_BOMB_EFFECT   0x8000000

◆ BECOME_INVISIBLE

#define BECOME_INVISIBLE   0x200

◆ BOING

#define BOING   0x800

◆ BOO_EFFECT

#define BOO_EFFECT   0x80000000

◆ BOO_EFFECT_DURATION [1/2]

#define BOO_EFFECT_DURATION   0x7

◆ BOO_EFFECT_DURATION [2/2]

#define BOO_EFFECT_DURATION   0x7

◆ BOO_TRIGGER

#define BOO_TRIGGER   0x800

◆ BOOST_EFFECT

#define BOOST_EFFECT   0x2000

◆ BOOST_RAMP_ASPHALT_EFFECT

#define BOOST_RAMP_ASPHALT_EFFECT   0x100000

◆ BOOST_RAMP_ASPHALT_TRIGGER

#define BOOST_RAMP_ASPHALT_TRIGGER   0x800000

◆ BOOST_RAMP_WOOD_EFFECT

#define BOOST_RAMP_WOOD_EFFECT   0x4

◆ BOOST_RAMP_WOOD_TRIGGER

#define BOOST_RAMP_WOOD_TRIGGER   0x8000

◆ BOWSER

#define BOWSER   7

◆ BOWSER_SIZE

#define BOWSER_SIZE   0.75f

◆ CC_100

#define CC_100   1

◆ CC_150

#define CC_150   2

◆ CC_50

#define CC_50   0

Options for gCCSelection CC stands for cubic-centimetres. It measures engine displacement composed from cylinder volume. Generally, the main determiner of horsepower output.

◆ CC_BATTLE

#define CC_BATTLE   4

◆ CC_EXTRA

#define CC_EXTRA   3

◆ CHANGING_ANIMATION

#define CHANGING_ANIMATION   0x1

◆ CHARACTER_SELECT_MENU

#define CHARACTER_SELECT_MENU   12

◆ COLOR_BLACK

#define COLOR_BLACK   GPACK_RGB888(0, 0, 0)

◆ COLOR_LAVA

#define COLOR_LAVA   GPACK_RGB888(0x34, 0x00, 0x00)

◆ COLOR_LIGHT

#define COLOR_LIGHT   GPACK_RGB888(0x1C, 0x00, 0x00)

◆ CONTROLLER_PAK_MENU

#define CONTROLLER_PAK_MENU   9

◆ COURSE_DATA_MENU

#define COURSE_DATA_MENU   7

◆ COURSE_SELECT_MENU

#define COURSE_SELECT_MENU   13

◆ COURSE_SELECT_MENU_FROM_QUIT

#define COURSE_SELECT_MENU_FROM_QUIT   3

◆ CRASH

#define CRASH   0x40

◆ CREDITS_SEQUENCE

#define CREDITS_SEQUENCE   9

◆ DATA_MENU

#define DATA_MENU   6

◆ DEBUG_MENU

#define DEBUG_MENU   2

◆ DEBUG_MODE

#define DEBUG_MODE   1

Enable debug mode.

Press start to skip through menus

Toggle resource meters by holding R and tapping B. L must not be held.

Reset to start screen by holding A, B, R, and L.

View player direction and currentPathPoint in a single player race during staging tap L while holding A and B. Turn off this UI by tapping R while holding A and B.

Bug
This looks like it should work at any point in the race.

Set player 1 to the final lap by tapping D-pad up. Set player 1 and player 2 to the final lap by tapping D-pad right. Set player all players to the final lap by tapping D-pad down.

Immediately start the race if any controller presses Z.

As the ceremony cutscene starts hold a C or D-pad to switch characters. C UP = LUIGI C LEFT = YOSHI C RIGHT = TOAD C DOWN = DK D-pad UP = WARIO D-pad LEFT = PEACH D-pad RIGHT = BOWSER D-pad DOWN = MARIO

◆ DEGREES_CONVERSION_FACTOR

#define DEGREES_CONVERSION_FACTOR   182

◆ DEMO_FIVE

#define DEMO_FIVE   4

◆ DEMO_FOUR

#define DEMO_FOUR   3

◆ DEMO_MODE_ACTIVE

#define DEMO_MODE_ACTIVE   1

Jump to demo mode from the debug menu using L and A.

◆ DEMO_MODE_INACTIVE

#define DEMO_MODE_INACTIVE   0

◆ DEMO_ONE

#define DEMO_ONE   0

Title screen demo options All demos use 100 CC.

◆ DEMO_SIX

#define DEMO_SIX   5

◆ DEMO_THREE

#define DEMO_THREE   2

◆ DEMO_TWO

#define DEMO_TWO   1

◆ DK

#define DK   4

◆ DK_SIZE

#define DK_SIZE   0.75f

◆ DRAG_ITEM_EFFECT

#define DRAG_ITEM_EFFECT   0x40000

◆ DRIFTING_EFFECT

#define DRIFTING_EFFECT   0x10

◆ DRIVING_SPINOUT

#define DRIVING_SPINOUT   0x4000

◆ DRIVING_SPINOUT_TRIGGER

#define DRIVING_SPINOUT_TRIGGER   0x80

◆ EARLY_SPINOUT_LEFT

#define EARLY_SPINOUT_LEFT   0x80

◆ EARLY_SPINOUT_RIGHT

#define EARLY_SPINOUT_RIGHT   0x40

◆ ENDING

#define ENDING   5

◆ EXPLOSION

#define EXPLOSION   0x1000

◆ EXTERN_C

#define EXTERN_C   extern

◆ EXTERN_C_END

#define EXTERN_C_END

◆ EXTERN_C_START

#define EXTERN_C_START

◆ FACING_X_AXIS

#define FACING_X_AXIS   0x8000

◆ FACING_Y_AXIS

#define FACING_Y_AXIS   0x4000

◆ FACING_Z_AXIS

#define FACING_Z_AXIS   0x2000

◆ FOUR_PLAYERS_SELECTED

#define FOUR_PLAYERS_SELECTED   4

◆ FRIGID_EFFECT

#define FRIGID_EFFECT   0x10

◆ FROZEN_EFFECT

#define FROZEN_EFFECT   0x80

◆ GPACK_RGB888

#define GPACK_RGB888 ( r,
g,
b )
Value:
(((r) << 16) | ((g) << 8) | (b))

◆ GRAND_PRIX

#define GRAND_PRIX   0

Options for gModeSelection.

◆ GRID_SIZE

#define GRID_SIZE   32

Collision mesh flags

◆ HARBOUR_MASTERS_MENU

#define HARBOUR_MASTERS_MENU   15

◆ HELD_BY_LAKITU

#define HELD_BY_LAKITU   0x2

◆ HIGH_TUMBLE_TRIGGER

#define HIGH_TUMBLE_TRIGGER   0x2

◆ HIT_BANANA_TRIGGER

#define HIT_BANANA_TRIGGER   0x1

triggers indicating that an effect should be applied to a kart

◆ HIT_BY_ITEM_EFFECT

#define HIT_BY_ITEM_EFFECT   0x2000000

◆ HIT_BY_STAR_TRIGGER

#define HIT_BY_STAR_TRIGGER   0x1000000

◆ HIT_EFFECT

#define HIT_EFFECT   0x4000000

◆ HIT_PADDLE_BOAT_TRIGGER

#define HIT_PADDLE_BOAT_TRIGGER   0x80000

◆ HIT_TRIGGERS

#define HIT_TRIGGERS
Value:
#define HIT_BY_STAR_TRIGGER
Definition defines.h:437
#define THWOMP_SQUISH_TRIGGER
Definition defines.h:423
#define LOW_TUMBLE_TRIGGER
Definition defines.h:421
#define LIGHTNING_STRIKE_TRIGGER
Definition defines.h:428
#define VERTICAL_TUMBLE_TRIGGER
Definition defines.h:435
#define HIGH_TUMBLE_TRIGGER
Definition defines.h:420

◆ HOLD_ALL_DPAD_AND_C_BUTTONS

#define HOLD_ALL_DPAD_AND_C_BUTTONS    (U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)

◆ LAKITU_FIZZLE

#define LAKITU_FIZZLE   0x4

◆ LAKITU_LAVA

#define LAKITU_LAVA   0x1000

◆ LAKITU_RETRIEVAL

#define LAKITU_RETRIEVAL   0x1

◆ LAKITU_SCENE

#define LAKITU_SCENE   0x8

◆ LAKITU_WATER

#define LAKITU_WATER   0x2000

◆ LEFT_TURN

#define LEFT_TURN   0x4

◆ LIGHTNING_EFFECT

#define LIGHTNING_EFFECT   0x40000000

◆ LIGHTNING_STRIKE_TRIGGER

#define LIGHTNING_STRIKE_TRIGGER   0x4000

◆ LOGO_INTRO_MENU

#define LOGO_INTRO_MENU   8

◆ LOSE_BATTLE_EFFECT

#define LOSE_BATTLE_EFFECT   0x4000000

◆ LOSE_GP_RACE

#define LOSE_GP_RACE   0x10

◆ LOW_TUMBLE_TRIGGER

#define LOW_TUMBLE_TRIGGER   0x4

◆ LUIGI

#define LUIGI   1

◆ LUIGI_SIZE

#define LUIGI_SIZE   0.75f

◆ MAIN_MENU

#define MAIN_MENU   11

◆ MAIN_MENU_FROM_QUIT

#define MAIN_MENU_FROM_QUIT   1

◆ MARIO

#define MARIO   0

Character IDs Note that these are not the same as the values found in gCharacterGridSelections as those are ordered by table.

◆ MARIO_SIZE

#define MARIO_SIZE   0.75f

◆ MAX_LAPS

#define MAX_LAPS   3

◆ MAX_NUM_MAIN_MENU_GAME_TYPES

#define MAX_NUM_MAIN_MENU_GAME_TYPES   3

◆ MAX_TIME

#define MAX_TIME   0x927C0

Max representable time, 100 minutes measured in centiseconds.

◆ MIN_LAPS

#define MIN_LAPS   0

Laps

◆ MOVE_BACKWARDS

#define MOVE_BACKWARDS   0x8

◆ NUM_COURSES_PER_CUP

#define NUM_COURSES_PER_CUP   4

◆ NUM_DEMOS

#define NUM_DEMOS   6

◆ NUM_PLAYERS

#define NUM_PLAYERS   8

◆ NUM_PODIUMS

#define NUM_PODIUMS   3

Number of podiums in podium ceremony

◆ NUM_SCREEN_MODES

#define NUM_SCREEN_MODES   4

◆ NUM_SOUND_MODES

#define NUM_SOUND_MODES   4

◆ OK

#define OK   1

Options for Controller Pak state.

◆ ONE_PLAYERS_SELECTED

#define ONE_PLAYERS_SELECTED   1

◆ OPTIONS_MENU

#define OPTIONS_MENU   5

Options for gMenuSelection.

◆ ORBIT_PLAYER

#define ORBIT_PLAYER   4

◆ PASS_OOB_OR_FLUID_LEVEL

#define PASS_OOB_OR_FLUID_LEVEL   0x2

◆ PEACH

#define PEACH   6

◆ PEACH_SIZE

#define PEACH_SIZE   0.75f

◆ PLAYER_CINEMATIC_MODE

#define PLAYER_CINEMATIC_MODE   (1 << 11)

◆ PLAYER_CPU

#define PLAYER_CPU   (1 << 12)

◆ PLAYER_EXISTS

#define PLAYER_EXISTS   (1 << 15)

◆ PLAYER_HUMAN

#define PLAYER_HUMAN   (1 << 14)

◆ PLAYER_HUMAN_AND_CPU

#define PLAYER_HUMAN_AND_CPU   PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_CPU | PLAYER_START_SEQUENCE

◆ PLAYER_INACTIVE

#define PLAYER_INACTIVE   0

Racing terms: Staging means aligning a racecar to the starting line. Start sequence means waiting for the light to turn green. Used in the Player struct's 'type' member: player->type

◆ PLAYER_INVISIBLE_OR_BOMB

#define PLAYER_INVISIBLE_OR_BOMB   (1 << 8)

◆ PLAYER_SELECT_MENU_FROM_QUIT

#define PLAYER_SELECT_MENU_FROM_QUIT   2

◆ PLAYER_STAGING

#define PLAYER_STAGING   (1 << 9)

◆ PLAYER_START_SEQUENCE

#define PLAYER_START_SEQUENCE   (1 << 13)

◆ PLAYER_UNKNOWN

#define PLAYER_UNKNOWN   (1 << 10)

◆ PLAYER_UNKNOWN_0x10

#define PLAYER_UNKNOWN_0x10   (1 << 4)

◆ PLAYER_UNKNOWN_0x40

#define PLAYER_UNKNOWN_0x40   (1 << 6)

◆ PLAYER_UNKNOWN_0x80

#define PLAYER_UNKNOWN_0x80   (1 << 7)

◆ POOMP

#define POOMP   0x100

◆ POST_TUMBLE_GAS

#define POST_TUMBLE_GAS   0x100

◆ RACE_CALCULATE_RANKS

#define RACE_CALCULATE_RANKS   4

◆ RACE_EXIT

#define RACE_EXIT   7

◆ RACE_FINISHED

#define RACE_FINISHED   5

◆ RACE_IN_PROGRESS

#define RACE_IN_PROGRESS   3

◆ RACE_INIT

#define RACE_INIT   0

Options for gRaceState.

◆ RACE_SETUP

#define RACE_SETUP   1

◆ RACE_STAGING

#define RACE_STAGING   2

◆ RACE_UNK

#define RACE_UNK   6

◆ RACING

#define RACING   4

◆ RACING_DUPLICATE

#define RACING_DUPLICATE   14

◆ RACING_SPINOUT_TRIGGERS

#define RACING_SPINOUT_TRIGGERS   (SPINOUT_TRIGGER | DRIVING_SPINOUT_TRIGGER | HIT_BANANA_TRIGGER)

◆ RAMP_BOOST_TRIGGERS

#define RAMP_BOOST_TRIGGERS   (BOOST_RAMP_ASPHALT_TRIGGER | BOOST_RAMP_WOOD_TRIGGER)

◆ REPLAY_A_BUTTON

#define REPLAY_A_BUTTON   (1 << 31)

Replay controller buttons Used for time trial replays (including staff and player ghosts) Each entry is converted to a u32 value This allows access to the button struct member

◆ REPLAY_B_BUTTON

#define REPLAY_B_BUTTON   (1 << 30)

◆ REPLAY_CLEAR_FRAME_COUNTER

#define REPLAY_CLEAR_FRAME_COUNTER   (0xFFFFFFFF & ~REPLAY_FRAME_COUNTER)

◆ REPLAY_FRAME_COUNTER

#define REPLAY_FRAME_COUNTER   0xFF0000

◆ REPLAY_FRAME_INCREMENT

#define REPLAY_FRAME_INCREMENT   0x10000

◆ REPLAY_R_TRIG

#define REPLAY_R_TRIG   (1 << 28)

◆ REPLAY_STICK_X

#define REPLAY_STICK_X   0xFF

◆ REPLAY_STICK_Y

#define REPLAY_STICK_Y   0xFF00

◆ REPLAY_Z_TRIG

#define REPLAY_Z_TRIG   (1 << 29)

◆ REVERSE_EFFECT

#define REVERSE_EFFECT   0x400000

◆ RIGHT_TURN

#define RIGHT_TURN   0x2

◆ SCREEN_MODE_1P

#define SCREEN_MODE_1P   0

Options for gScreenModeSelection and gActiveScreenMode.

◆ SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL

#define SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL   1

◆ SCREEN_MODE_2P_SPLITSCREEN_VERTICAL

#define SCREEN_MODE_2P_SPLITSCREEN_VERTICAL   2

◆ SCREEN_MODE_3P_4P_SPLITSCREEN

#define SCREEN_MODE_3P_4P_SPLITSCREEN   3

◆ SELECTED_PLAYER_DEFINES_TOTAL

#define SELECTED_PLAYER_DEFINES_TOTAL   5

◆ SHELL_COLLISION

#define SHELL_COLLISION   3

◆ SHROOM_TRIGGER

#define SHROOM_TRIGGER   0x200

◆ SIDE_OF_KART

#define SIDE_OF_KART   0x8

◆ SOUND_HEADPHONES

#define SOUND_HEADPHONES   1

◆ SOUND_MONO

#define SOUND_MONO   3

◆ SOUND_STEREO

#define SOUND_STEREO   0

Sound mode options.

◆ SOUND_SURROUND

#define SOUND_SURROUND   2

◆ SPAWN_FIRST_SHELL

#define SPAWN_FIRST_SHELL   0

shell state

◆ SPAWN_SECOND_SHELL

#define SPAWN_SECOND_SHELL   1

◆ SPAWN_THIRD_SHELL

#define SPAWN_THIRD_SHELL   2

◆ SPINOUT_TRIGGER

#define SPINOUT_TRIGGER   0x200000

◆ STAR_EFFECT

#define STAR_EFFECT   0x200

◆ STAR_EFFECT_DURATION [1/2]

#define STAR_EFFECT_DURATION   0xA

durations of effects

◆ STAR_EFFECT_DURATION [2/2]

#define STAR_EFFECT_DURATION   0xA

durations of effects

◆ STAR_TRIGGER

#define STAR_TRIGGER   0x2000

◆ START_BOOST_TRIGGER

#define START_BOOST_TRIGGER   0x2000000

◆ START_MENU

#define START_MENU   10

◆ START_MENU_FROM_QUIT

#define START_MENU_FROM_QUIT   0

Options for gGameState gGotoMode and gGotoMenu.

◆ START_SPINOUT_TRIGGER

#define START_SPINOUT_TRIGGER   0x10000000

◆ STATE_TRANSITION_TRIGGERS

#define STATE_TRANSITION_TRIGGERS   (STAR_TRIGGER | BOO_TRIGGER | UNUSED_TRIGGER_0x1000 | UNUSED_TRIGGER_0x20000)

◆ THAWING_EFFECT

#define THAWING_EFFECT   0x20

◆ THREE_PLAYERS_SELECTED

#define THREE_PLAYERS_SELECTED   3

◆ THROTTLE

#define THROTTLE   0x20

◆ THWOMP_SQUISH_TRIGGER

#define THWOMP_SQUISH_TRIGGER   0x100

◆ TIME_TRIAL_1LAP_RECORD

#define TIME_TRIAL_1LAP_RECORD   5

◆ TIME_TRIAL_3LAP_RECORD_1

#define TIME_TRIAL_3LAP_RECORD_1   0

Indexes for accessing Time Trial records.

◆ TIME_TRIAL_3LAP_RECORD_2

#define TIME_TRIAL_3LAP_RECORD_2   1

◆ TIME_TRIAL_3LAP_RECORD_3

#define TIME_TRIAL_3LAP_RECORD_3   2

◆ TIME_TRIAL_3LAP_RECORD_4

#define TIME_TRIAL_3LAP_RECORD_4   3

◆ TIME_TRIAL_3LAP_RECORD_5

#define TIME_TRIAL_3LAP_RECORD_5   4

◆ TIME_TRIALS

#define TIME_TRIALS   1

◆ TOAD

#define TOAD   3

◆ TOAD_SIZE

#define TOAD_SIZE   0.75f

◆ TRACK_TIMER_ITER

#define TRACK_TIMER_ITER   0.01666666

◆ TRACK_TIMER_ITER_f

#define TRACK_TIMER_ITER_f   0.01666666f

◆ TWO_PLAYERS_SELECTED

#define TWO_PLAYERS_SELECTED   2

◆ UNDER_FLUID_LEVEL

#define UNDER_FLUID_LEVEL   0x4

◆ UNDER_OOB_LEVEL

#define UNDER_OOB_LEVEL   0x8

◆ UNDER_OOB_OR_FLUID_LEVEL

#define UNDER_OOB_OR_FLUID_LEVEL   0x1

◆ UNK_002_UNKNOWN_0x2

#define UNK_002_UNKNOWN_0x2   0x2

◆ UNK_002_UNKNOWN_0x4

#define UNK_002_UNKNOWN_0x4
Value:
0x4 /* Unclear, but has to do with viewing the side of player. At least tends to change if target
player spins. Something with avoding rollover of aniamation frame data? */

◆ UNKNOWN_BATTLE_VAR

#define UNKNOWN_BATTLE_VAR   0x8000

◆ UNKNOWN_EFFECT_0x1

#define UNKNOWN_EFFECT_0x1   0x1

effect of player's for effects

◆ UNKNOWN_EFFECT_0x100

#define UNKNOWN_EFFECT_0x100   0x100

◆ UNKNOWN_EFFECT_0x1000

#define UNKNOWN_EFFECT_0x1000   0x1000

◆ UNKNOWN_EFFECT_0x10000

#define UNKNOWN_EFFECT_0x10000   0x10000

◆ UNKNOWN_EFFECT_0x1000000

#define UNKNOWN_EFFECT_0x1000000   0x1000000

◆ UNKNOWN_EFFECT_0x10000000

#define UNKNOWN_EFFECT_0x10000000   0x10000000

◆ UNKNOWN_EFFECT_0x200000

#define UNKNOWN_EFFECT_0x200000   0x200000

◆ UNKNOWN_EFFECT_0x40

#define UNKNOWN_EFFECT_0x40   0x40

◆ UNKNOWN_EFFECT_0x80

#define UNKNOWN_EFFECT_0x80   0x80

◆ UNKNOWN_EFFECT_0xC

#define UNKNOWN_EFFECT_0xC   0xC

◆ UNUSED_0x1000

#define UNUSED_0x1000   0x1000

◆ UNUSED_0x2000

#define UNUSED_0x2000   0x2000

◆ UNUSED_0x400

#define UNUSED_0x400   0x400

◆ UNUSED_0x800

#define UNUSED_0x800   0x800

◆ UNUSED_TRIGGER_0x1000

#define UNUSED_TRIGGER_0x1000   0x1000

◆ UNUSED_TRIGGER_0x10000

#define UNUSED_TRIGGER_0x10000   0x100000

◆ UNUSED_TRIGGER_0x20000

#define UNUSED_TRIGGER_0x20000   0x20000

◆ V_BlANK_TIMER_ITER

#define V_BlANK_TIMER_ITER   0.01666666

◆ VERSUS

#define VERSUS   2

◆ VERTICAL_TUMBLE_TRIGGER

#define VERTICAL_TUMBLE_TRIGGER   0x400000

◆ WARIO

#define WARIO   5

◆ WARIO_SIZE

#define WARIO_SIZE   0.75f

◆ WENT_OVER_OOB

#define WENT_OVER_OOB   0x100

◆ WHIRRR

#define WHIRRR   0x80

◆ WHISTLE

#define WHISTLE   0x20

◆ YOSHI

#define YOSHI   2

◆ YOSHI_SIZE

#define YOSHI_SIZE   0.75f

◆ ZERO_PLAYERS_SELECTED

#define ZERO_PLAYERS_SELECTED   0

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Options for gCourseIndexInCup.

Enumerator
TRACK_ONE 
TRACK_TWO 
TRACK_THREE 
TRACK_FOUR 

◆ anonymous enum

anonymous enum

Options for gCupSelection There is a "cup" for battle mode, probably so that the battle courses could be displayed in the same way race courses are.

Enumerator
MUSHROOM_CUP 
FLOWER_CUP 
STAR_CUP 
SPECIAL_CUP 
BATTLE_CUP 
NUM_CUPS 

◆ COLOR_ID

enum COLOR_ID

Text color options The 2 cycling options cycle through Blue -> Green -> Red Cycle 2 appears to be one step ahead of Cycle 1 Other values like 6 and 7 sort of work, they cause rapid flashing between 2 colors, but also cause individual characters to be cutoff on their right side.

Enumerator
TEXT_BLUE 
TEXT_GREEN 
TEXT_RED 
TEXT_YELLOW 
TEXT_BLUE_GREEN_RED_CYCLE_1 
TEXT_BLUE_GREEN_RED_CYCLE_2 

◆ CPU_BEHAVIOURS

Enumerator
BEHAVIOUR_NONE 
BEHAVIOUR_1 
BEHAVIOUR_HOP 
BEHAVIOUR_DRIVE_CENTER 
BEHAVIOUR_DRIVE_LEFT 
BEHAVIOUR_DRIVE_OUTER 
BEHAVIOUR_NORMAL_SPEED 
BEHAVIOUR_FAST_SPEED 
BEHAVIOUR_SLOW_SPEED 
BEHAVIOUR_9 
BEHAVIOUR_10 
BEHAVIOUR_MAX_SPEED 

◆ DIRECTION

enum DIRECTION
Enumerator
NORTH 
EAST 
SOUTH 
WEST 

◆ ITEMS

enum ITEMS

Item IDs.

Enumerator
ITEM_NONE 
ITEM_BANANA 
ITEM_BANANA_BUNCH 
ITEM_GREEN_SHELL 
ITEM_TRIPLE_GREEN_SHELL 
ITEM_RED_SHELL 
ITEM_TRIPLE_RED_SHELL 
ITEM_BLUE_SPINY_SHELL 
ITEM_THUNDERBOLT 
ITEM_FAKE_ITEM_BOX 
ITEM_STAR 
ITEM_BOO 
ITEM_MUSHROOM 
ITEM_DOUBLE_MUSHROOM 
ITEM_TRIPLE_MUSHROOM 
ITEM_SUPER_MUSHROOM 
ITEM_MAX 

◆ PLACE

enum PLACE
Enumerator
FIRST_PLACE 
SECOND_PLACE 
THIRD_PLACE 
FOURTH_PLACE 

◆ PlayerId

enum PlayerId
Enumerator
PLAYER_NONE 
PLAYER_ONE 
PLAYER_TWO 
PLAYER_THREE 
PLAYER_FOUR 
PLAYER_FIVE 
PLAYER_SIX 
PLAYER_SEVEN 
PLAYER_EIGHT