Mario Kart 64
Loading...
Searching...
No Matches
kart_dma.c File Reference
#include <ultra64.h>
#include <macros.h>
#include "main.h"
#include "buffers.h"
#include <common_structs.h>
#include "kart_dma.h"
#include "defines.h"
Include dependency graph for kart_dma.c:

Macros

#define DECLARE_KART_GROUP(var)
 
#define DECLARE_KART_TABLE0(var)
 
#define DECLARE_KART_TABLE1(var)
 
#define DECLARE_KART_TUMBLE_TABLE(var)
 

Functions

void load_kart_texture (Player *player, s8 playerId, s8 screenId, s8 screenId2, s8 index)
 Place DMA mio0 compressed character textures in a buffer. Later, this data becomes decompressed.
 
void load_kart_texture_non_blocking (Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4)
 
void load_kart_palette (Player *player, s8 playerId, s8 screenId, s8 index)
 
void load_player_data (UNUSED Player *player, s32 arg1, void *vAddr, u16 size)
 
void load_player_data_non_blocking (UNUSED Player *player, s32 arg1, void *vAddr, u16 size)
 read data from ROM and write it to the given virtual address
 

Variables

u16 D_800DDEB0 []
 
u8 *** gKartTextureTable0 []
 
u8 *** gKartTextureTable1 []
 
u8 ** gKartTextureTumbles []
 
u8gKartPalettes []
 

Macro Definition Documentation

◆ DECLARE_KART_GROUP

#define DECLARE_KART_GROUP ( var)

◆ DECLARE_KART_TABLE0

#define DECLARE_KART_TABLE0 ( var)
Value:
u8** var##Table0[] = { \
var##Group8, var##Group7, var##Group6, var##Group5, var##Group4, \
var##Group3, var##Group2, var##Group1, var##Group0, \
};
unsigned char u8
Definition ultratypes.h:12

◆ DECLARE_KART_TABLE1

#define DECLARE_KART_TABLE1 ( var)
Value:
u8** var##Table1[] = { \
var##Group17, var##Group16, var##Group15, var##Group14, var##Group13, \
var##Group12, var##Group11, var##Group10, var##Group9, \
};

◆ DECLARE_KART_TUMBLE_TABLE

#define DECLARE_KART_TUMBLE_TABLE ( var)
Value:
u8* var##Tumble[] = { \
var##289, var##290, var##291, var##292, var##293, var##294, var##295, \
var##296, var##297, var##298, var##299, var##300, var##301, var##302, \
var##303, var##304, var##305, var##306, var##307, var##308, var##309, \
var##310, var##311, var##312, var##313, var##314, var##315, var##316, \
var##317, var##318, var##319, var##320 \
};

Function Documentation

◆ load_kart_palette()

void load_kart_palette ( Player * player,
s8 playerId,
s8 screenId,
s8 index )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture()

void load_kart_texture ( Player * player,
s8 playerId,
s8 screenId,
s8 screenId2,
s8 index )

Place DMA mio0 compressed character textures in a buffer. Later, this data becomes decompressed.

The player struct tracks the texture indices to load.

Parameters
player
playerIdPlayer ID.
screenIdRom buffer index appears to always be 0-3. Sometimes subtracted by 2.
screenId2Second buffer index appears to always be 0-3.
indexFirst buffer index always zero.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_kart_texture_non_blocking()

void load_kart_texture_non_blocking ( Player * player,
s8 arg1,
s8 arg2,
s8 arg3,
s8 arg4 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_player_data()

void load_player_data ( UNUSED Player * player,
s32 arg1,
void * vAddr,
u16 size )
Here is the call graph for this function:

◆ load_player_data_non_blocking()

void load_player_data_non_blocking ( UNUSED Player * player,
s32 arg1,
void * vAddr,
u16 size )

read data from ROM and write it to the given virtual address

Parameters
playerPlayer struct
arg1ROM offset
vAddrVirtual address
sizeSize of data to read
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ D_800DDEB0

u16 D_800DDEB0[]
Initial value:
= {
0x06c0, 0x06e0, 0x06e0, 0x0680, 0x07c0, 0x0700, 0x0680, 0x0910,
}

◆ gKartPalettes

u8* gKartPalettes[]
Initial value:
= {
}
u8 gKartWarioPalette[]
Definition kart_dma.h:229
u8 gKartToadPalette[]
Definition kart_dma.h:226
u8 gKartDKPalette[]
Definition kart_dma.h:231
u8 gKartLuigiPalette[]
Definition kart_dma.h:225
u8 gKartBowserPalette[]
Definition kart_dma.h:230
u8 gKartMarioPalette[]
Definition kart_dma.h:224
u8 gKartYoshiPalette[]
Definition kart_dma.h:227
u8 gKartPeachPalette[]
Definition kart_dma.h:228

◆ gKartTextureTable0

u8*** gKartTextureTable0[]
Initial value:
= {
}
u8 ** gKartYoshiTable0[]
u8 ** gKartWarioTable0[]
u8 ** gKartMarioTable0[]
u8 ** gKartBowserTable0[]
u8 ** gKartPeachTable0[]
u8 ** gKartDKTable0[]
u8 ** gKartToadTable0[]
u8 ** gKartLuigiTable0[]

◆ gKartTextureTable1

u8*** gKartTextureTable1[]
Initial value:
= {
}
u8 ** gKartMarioTable1[]
u8 ** gKartBowserTable1[]
u8 ** gKartYoshiTable1[]
u8 ** gKartLuigiTable1[]
u8 ** gKartWarioTable1[]
u8 ** gKartDKTable1[]
u8 ** gKartToadTable1[]
u8 ** gKartPeachTable1[]

◆ gKartTextureTumbles

u8** gKartTextureTumbles[]
Initial value:
= {
}
u8 * gKartLuigiTumble[]
u8 * gKartPeachTumble[]
u8 * gKartDKTumble[]
u8 * gKartYoshiTumble[]
u8 * gKartWarioTumble[]
u8 * gKartMarioTumble[]
u8 * gKartBowserTumble[]
u8 * gKartToadTumble[]