Mario Kart 64
|
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#include <segments.h>
#include <PR/ultratypes.h>
#include <config.h>
#include <sounds.h>
#include "code_800029B0.h"
#include "code_80091750.h"
#include "code_80005FD0.h"
#include "code_8006E9C0.h"
#include "menus.h"
#include "save.h"
#include "code_80057C60.h"
#include "credits.h"
#include "data_segment2.h"
#include "code_800AF9B0.h"
#include "code_80281780.h"
#include "memory.h"
#include "audio/external.h"
#include "hud_renderer.h"
#include "staff_ghosts.h"
#include "common_textures.h"
#include "textures.h"
#include "math_util.h"
#include "save_data.h"
#include "podium_ceremony_actors.h"
#include "skybox_and_splitscreen.h"
#include "src/data/startup_logo.inc.h"
#include "buffers.h"
#include "racing/race_logic.h"
#include "ending/code_80281C40.h"
#include "spawn_players.h"
#include "render_player.h"
#include "main.h"
Macros | |
#define | FUNC_800ADF48DEF 60 |
#define FUNC_800ADF48DEF 60 |
s32 char_to_glyph_index | ( | char * | character | ) |
Gfx * draw_box | ( | Gfx * | displayListHead, |
s32 | ulx, | ||
s32 | uly, | ||
s32 | lrx, | ||
s32 | lry, | ||
s32 | red, | ||
s32 | green, | ||
s32 | blue, | ||
s32 | alpha ) |
Gfx * draw_box_fill | ( | Gfx * | displayListHead, |
s32 | ulx, | ||
s32 | uly, | ||
s32 | lrx, | ||
s32 | lry, | ||
s32 | red, | ||
s32 | green, | ||
s32 | blue, | ||
s32 | alpha ) |
Gfx * draw_flash_select_case | ( | UNUSED Gfx * | displayListHead, |
s32 | ulx, | ||
s32 | uly, | ||
s32 | lrx, | ||
s32 | lry, | ||
s32 | speed ) |
struct_8018D9E0_entry * find_8018D9E0_entry | ( | s32 | arg0 | ) |
struct_8018D9E0_entry * find_8018D9E0_entry_dupe | ( | s32 | arg0 | ) |
arg0
is the desired "type" of the 8018D9E0 entry to search for. If no entry with that "type" is found, this function will enter a while(1)
loop, hard-locking the game.
In practice this never appears to happen, but that is probably as much a matter of luck as it is good reasoning on the original author(s) part.
This function appears to multiply some value
by 2 ^ exponent
, even if that exponent is negative
Its unclear what exact purpose this function serves The function multiplies/divides arg0 by 2 until its in the range (0.5, 1.0]. arg2 appears to track the exponent in the power-of-2 that would undo the changes to arg0
s32 func_80092E1C | ( | char * | character | ) |
s32 func_80092EE4 | ( | char * | character | ) |
Gfx * func_800959F8 | ( | Gfx * | displayListHead, |
Vtx * | arg1 ) |
Gfx * func_80095BD0 | ( | Gfx * | displayListHead, |
u8 * | arg1, | ||
f32 | arg2, | ||
f32 | arg3, | ||
u32 | arg4, | ||
u32 | arg5, | ||
f32 | arg6, | ||
f32 | arg7 ) |
Gfx * func_80097A14 | ( | Gfx * | displayListHead, |
s8 | arg1, | ||
s32 | arg2, | ||
s32 | arg3, | ||
s32 | arg4, | ||
s32 | arg5, | ||
s32 | arg6, | ||
s32 | arg7, | ||
s32 | arg8, | ||
u32 | arg9, | ||
u32 | argA ) |
s32 func_8009A478 | ( | MkAnimation * | arg0, |
s32 | arg1 ) |
void func_8009A594 | ( | s32 | arg0, |
s32 | arg1, | ||
MkAnimation * | arg2 ) |
void func_8009A640 | ( | s32 | arg0, |
s32 | arg1, | ||
s32 | arg2, | ||
MkAnimation * | arg3 ) |
MkTexture * func_8009A878 | ( | struct_8018DEE0_entry * | arg0 | ) |
MkTexture * func_8009A944 | ( | struct_8018DEE0_entry * | arg0, |
s32 | arg1 ) |
Gfx * func_8009B9D0 | ( | Gfx * | displayListHead, |
MkTexture * | textures ) |
Gfx * func_8009BEF0 | ( | Gfx * | arg0, |
MkTexture * | arg1, | ||
f32 | arg2, | ||
f32 | arg3, | ||
s32 | arg4, | ||
f32 | arg5, | ||
f32 | arg6 ) |
Gfx * func_8009C434 | ( | Gfx * | arg0, |
struct_8018DEE0_entry * | arg1, | ||
s32 | arg2, | ||
s32 | arg3, | ||
s32 | arg4 ) |
void func_800A0AD0 | ( | UNUSED struct_8018D9E0_entry * | arg0 | ) |
void func_800A0EB8 | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1 ) |
void func_800A0FA4 | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1 ) |
void func_800A10CC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A11D0 | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1, | ||
s32 | arg2 ) |
void func_800A12BC | ( | struct_8018D9E0_entry * | arg0, |
MkTexture * | arg1 ) |
void func_800A1350 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A143C | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1 ) |
void func_800A1500 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A15EC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1780 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1924 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1A20 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1BE0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1DE0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A1F30 | ( | struct_8018D9E0_entry * | unused | ) |
void func_800A2D1C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A2EB8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A34A8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A3ADC | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1, | ||
s32 | arg2, | ||
s32 | characterId, | ||
s32 | arg4, | ||
s8 * | arg5 ) |
void func_800A3C84 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A3E60 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A4A24 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A4B38 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A4BC8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A4EF8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A5084 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A5360 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A6034 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A6154 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A638C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A69C8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A6BEC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A6CC0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A70E8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A7258 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A72FC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A7448 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A75A0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A761C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A7790 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A8270 | ( | s32 | arg0, |
struct_8018D9E0_entry * | arg1 ) |
void func_800A86E8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A874C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A890C | ( | s32 | arg0, |
struct_8018D9E0_entry * | arg1 ) |
void func_800A8A98 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A8CA4 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A8E14 | ( | UNUSED struct_8018D9E0_entry * | arg0 | ) |
void func_800A8EC0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A8F48 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A90D4 | ( | UNUSED s32 | arg0, |
struct_8018D9E0_entry * | arg1 ) |
void func_800A91D8 | ( | struct_8018D9E0_entry * | arg0, |
s32 | columnTarget, | ||
s32 | rowTarget ) |
void func_800A9208 | ( | struct_8018D9E0_entry * | arg0, |
s32 | columnTarget ) |
void func_800A9278 | ( | struct_8018D9E0_entry * | arg0, |
s32 | rowTarget ) |
void func_800A92E8 | ( | struct_8018D9E0_entry * | arg0, |
s32 | columnTarget ) |
UNUSED void func_800A939C | ( | struct_8018D9E0_entry * | arg0, |
s32 | rowTarget ) |
void func_800A940C | ( | struct_8018D9E0_entry * | arg0, |
s32 | columnTarget ) |
void func_800A94C8 | ( | struct_8018D9E0_entry * | arg0, |
s32 | columnTarget, | ||
s32 | arg2 ) |
void func_800A954C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9710 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9A98 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9B9C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9C40 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9D5C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800A9E58 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AA280 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AA2EC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AA5C8 | ( | struct_8018D9E0_entry * | arg0, |
s8 | arg1 ) |
void func_800AA69C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AAA9C | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AAB90 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AAC18 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AADD4 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AAE18 | ( | struct_8018D9E0_entry * | arg0 | ) |
struct_8018D9E0_entry * func_800AAE68 | ( | void | ) |
Similar to find_8018D9E0_entry_dupe, there is potential for a hard lock in the function if no appropriate D_8018D9E0 entry is found.
struct_8018D9E0_entry * func_800AAEB4 | ( | s32 | arg0 | ) |
Similar to find_8018D9E0_entry_dupe, there is potential for a hard lock in the function if no appropriate D_8018D9E0 entry is found.
void func_800AAF94 | ( | struct_8018D9E0_entry * | arg0, |
s32 | arg1 ) |
void func_800AB020 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB098 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB164 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB260 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB290 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB904 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AB9B0 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABAE8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABB24 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABBCC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABC38 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABCF4 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABEAC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ABF68 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AC128 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AC300 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AC324 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AC978 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ACA14 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ACC50 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ACF40 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AD1A4 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AD2E8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800ADF48 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AE218 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEC54 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEDBC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEE90 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEEBC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEEE8 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEF14 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AEF74 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF004 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF1AC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF270 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF480 | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF4DC | ( | struct_8018D9E0_entry * | arg0 | ) |
void func_800AF740 | ( | struct_8018D9E0_entry * | arg0 | ) |
s32 get_string_width | ( | char * | buffer | ) |
void print_text0 | ( | s32 | column, |
s32 | row, | ||
char * | text, | ||
s32 | tracking, | ||
f32 | x_scale, | ||
f32 | y_scale, | ||
s32 | arg6 ) |
void print_text1 | ( | s32 | column, |
s32 | row, | ||
char * | text, | ||
s32 | tracking, | ||
f32 | x_scale, | ||
f32 | y_scale, | ||
s32 | arg6 ) |
void print_text2 | ( | s32 | column, |
s32 | row, | ||
char * | text, | ||
s32 | tracking, | ||
f32 | x_scale, | ||
f32 | y_scale, | ||
s32 | arg6 ) |
Differs from memory.c with + 0x8
instead of | 0x8
addr |
void write_dashes | ( | char * | buffer | ) |
s32 code_80091750_bss_pad2 |
Unk_D_800E70A0 D_800E70A0[] |
Unk_D_800E70A0 D_800E70E8[] |
Unk_D_800E70A0 D_800E7108[][4] |
Unk_D_800E70A0 D_800E7148[] |
Unk_D_800E70A0 D_800E7168[] |
Unk_D_800E70A0 D_800E7188[] |
Unk_D_800E70A0 D_800E7208[][2] |
Unk_D_800E70A0 D_800E7248[] |
Unk_D_800E70A0 D_800E7258[] |
Unk_D_800E70A0 D_800E7268[] |
Unk_D_800E70A0 D_800E7278[] |
Unk_D_800E70A0 D_800E72F8 = { 0x140, 0x23, 0x00, 0x00 } |
Unk_D_800E70A0 D_800E7300[] |
Unk_D_800E70A0 D_800E7360[] |
Unk_D_800E70A0 D_800E7380[] |
Unk_D_800E70A0 D_800E7390[] |
Unk_D_800E70A0 D_800E73C0[] |
Unk_D_800E70A0 D_800E73D0[] |
Unk_D_800E70A0 D_800E73E0[] |
Unk_D_800E70A0 D_800E7410[] |
Unk_D_800E70A0 D_800E7420[] |
Unk_D_800E70A0 D_800E7430[] |
Unk_D_800E70A0 D_800E7458[] |
Unk_D_800E70A0 D_800E7480[] |
RGBA16 D_800E74A8[] |
RGBA16 D_800E74D0[] |
RGBA16 D_800E74E8[] |
char* D_800E7524[] |
char* D_800E7574[] |
char* D_800E75C4[] |
char* D_800E7678[] |
char* D_800E76A8[] |
char* D_800E76CC[] |
char* D_800E76DC[] |
char* D_800E7720[] |
char* D_800E7728[] |
char* D_800E7730 = "LAP TIME" |
char* D_800E7734[] |
char* D_800E7744[] |
char* D_800E775C[] |
char* D_800E7778[] |
char* D_800E77A0[] |
char* D_800E77A8[] |
char D_800E77D8[] = "distance" |
char* D_800E77E4[] |
char* D_800E7834[] |
char* D_800E7840[] |
char* D_800E7848[] |
char* D_800E7860[] |
char* D_800E7868[] |
char* D_800E7878[] |
char* D_800E7884[] |
char* D_800E7890[] |
char* D_800E78D0[] |
char* D_800E7900[] |
char* D_800E7918[] |
char* D_800E7920[] |
char* D_800E7928[] |
char* D_800E7930[] |
char* D_800E7938[] |
char* D_800E7940[] |
char* D_800E7980[] |
char* D_800E798C[] |
char* D_800E7A34[] |
char* D_800E7A3C[] |
char* D_800E7A44 = "NO DATA" |
char* D_800E7A48[] |
char* D_800E7A54[] |
char* D_800E7A60[] |
char* D_800E7A6C[] |
char* D_800E7A74[] |
char* D_800E7A80[] |
char* D_800E7A88[] |
char* D_800E7A9C[] |
char* D_800E7AA4[] |
RGBA16 D_800E7AC8[] |
RGBA16 D_800E7AE8[] |
MkTexture* D_800E7AF8[] |
MkTexture* D_800E7D0C[] |
MkAnimation* D_800E7D34[] |
MkTexture* D_800E7D4C[] |
MkTexture* D_800E7D54[] |
MkTexture* D_800E7D74[] |
MkTexture* D_800E7DC4[] |
MkAnimation* D_800E7E14[] |
MkAnimation* D_800E7E20[] |
MkAnimation* D_800E7E34[] |
MkTexture* D_800E7FF0[] |
MkTexture* D_800E80A0[] |
MkTexture* D_800E8114[] |
MkTexture* D_800E8174[] |
MkTexture* D_800E817C[] |
MkTexture* D_800E81E4[] |
MkTexture* D_800E822C[] |
MkTexture* D_800E8234[] |
MkTexture* D_800E824C[] |
MkTexture* D_800E8254[] |
MkTexture* D_800E8274[] |
MkTexture* D_800E8294[] |
MkTexture* D_800E82B4[] |
MkTexture* D_800E82C8[] |
MkTexture* D_800E82F4[] |
MkAnimation* D_800E8320[] |
MkAnimation* D_800E8340[] |
MkAnimation* D_800E8360[] |
MkAnimation* D_800E83A0[] |
s32 D_800E8440[] |
s32 D_800E8460[] |
s32 D_800E8480[] |
s32 D_800E84A0[] |
Vtx* D_800E84C0[] |
Gfx* D_800E84CC[] |
Gfx* D_800E84EC[] |
Gfx* D_800E850C[] |
s8 D_800E852C = 1 |
f32 D_800E8530 = 0.0f |
f32 D_800E8534 = 3.0f |
Unk_D_800E70A0 D_800E8538[] |
Unk_D_800E70A0 D_800E8540[] |
Unk_D_800E70A0 D_800E85C0[] |
Unk_D_800E70A0 D_800E8600[] |
u8* D_8018D9B4 |
u8* D_8018D9B8 |
u8* D_8018D9BC |
struct_8018EE10_entry_cont* D_8018D9C0 |
s8 D_8018D9D8 |
s8 D_8018D9D9 |
struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE] |
struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE] |
struct_8018E060_entry D_8018E060[D_8018E060_SIZE] |
struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE] |
struct_8018E118_entry D_8018E118[D_8018E118_SIZE] |
Gfx* D_8018E75C |
struct_8018E768_entry D_8018E768[D_8018E768_SIZE] |
s8 D_8018E7AC[4] |
s8 D_8018E7B0 |
s32 D_8018E7B8[4] |
u32 D_8018E7C8 |
u32 D_8018E7D0[4] |
s32 D_8018E7E0 |
struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE] |
struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE] |
s8 D_8018E838[4] |
s32 D_8018E83C |
s32 D_8018E840[4] |
s32 D_8018E850[2] |
s32 D_8018E858[2] |
s32 D_8018E864_pad |
u8 D_8018ED90 |
u8 D_8018ED91 |
f32 D_8018ED98 |
f32 D_8018ED9C |
f32 D_8018EDA0 |
f32 D_8018EDA4 |
f32 D_8018EDA8 |
f32 D_8018EDAC |
MkAnimation* gCharacterCelebrateAnimation[] |
MkAnimation* gCharacterDefeatAnimation[] |
MkAnimation* gCharacterDeselectAnimation[] |
MkAnimation* gCharacterDoubleBlinkAnimation[] |
s8 gCharacterIdByGPOverallRank[8] |
MkAnimation* gCharacterSingleBlinkAnimation[] |
OSPfs gControllerPak1FileHandle |
s32 gControllerPak1FileNote |
s32 gControllerPak1MaxWriteableFiles |
s32 gControllerPak1NumFilesUsed |
s32 gControllerPak1NumPagesFree |
OSPfs gControllerPak2FileHandle |
s32 gControllerPak2FileNote |
char* gCupNames[] |
s8 gCupSelectionByCourseId[] |
s32 gCycleFlashMenu |
s32 gD_8018E118TotalSize |
char* gDebugCharacterNames[] |
char* gDebugCourseNames[] |
char* gDebugScreenModeNames[] |
char* gDebugSoundModeNames[] |
MkTexture* gGlyphTextureLUT[] |
s8 gGPPointsByCharacterId[8] |
List of bytes indexed by character ID Indicates number of Grand Prix points that character has scored
s32 gNumD_8018E118Entries |
s32 gNumD_8018E768Entries |
SaveData gSaveData |
char* gSoundModeNames[NUM_SOUND_MODES] |
s8 gTextColor |
s32 pfsError[16] |
OSPfsState pfsState[16] |
s32 s8018ED94 |