Mario Kart 64
Loading...
Searching...
No Matches
memory.h
Go to the documentation of this file.
1#ifndef MEMORY_H
2#define MEMORY_H
3
4
8};
9
16
21
29
36
37#define MEMORY_POOL_LEFT 0
38#define MEMORY_POOL_RIGHT 1
39
40#define ALIGN4(val) (((val) + 0x3) & ~0x3)
41
42extern f32 vtxStretchY;
43
44void *get_next_available_memory_addr(uintptr_t);
45uintptr_t set_segment_base_addr(s32, void*);
47void *segmented_to_virtual(const void *);
49void initialize_memory_pool(uintptr_t, uintptr_t);
50void *decompress_segments(u8*, u8*);
51void *allocate_memory(size_t);
52void *load_data(uintptr_t, uintptr_t);
53void func_802A7D54(s32, s32);
54
55void main_pool_init(uintptr_t, uintptr_t);
56void *main_pool_alloc(uintptr_t, uintptr_t);
57uintptr_t main_pool_free(void*);
58void *main_pool_realloc(void*, uintptr_t);
59uintptr_t main_pool_available(void);
60uintptr_t main_pool_push_state(void);
61uintptr_t main_pool_pop_state(void);
62void *func_802A80B0(u8*, u8*, u8*);
63void func_802A81EC(void);
64struct AllocOnlyPool *alloc_only_pool_init(uintptr_t, uintptr_t);
65uintptr_t func_802A82AC(s32);
66uintptr_t func_802A8348(s32, s32, s32);
68uintptr_t MIO0_0F(u8*, uintptr_t, uintptr_t);
69void func_802A8844(void);
70void unpack_lights(Gfx*, u8*, s8);
71void unpack_displaylist(Gfx*, u8*, s8);
76void unpack_combine_mode1(Gfx*, u8*, uintptr_t);
77void unpack_combine_mode2(Gfx*, u8*, uintptr_t);
78void unpack_combine_mode_shade(Gfx*, u8*, uintptr_t);
79void unpack_combine_mode4(Gfx*, u8*, uintptr_t);
80void unpack_combine_mode5(Gfx*, u8*, uintptr_t);
81void unpack_render_mode_opaque(Gfx*, u8*, uintptr_t);
82void unpack_render_mode_tex_edge(Gfx*, u8*, uintptr_t);
83void unpack_render_mode_translucent(Gfx*, u8*, uintptr_t);
84void unpack_render_mode_opaque_decal(Gfx*, u8*, uintptr_t);
86void unpack_tile_sync(Gfx*, u8*, s8);
87void unpack_tile_load_sync(Gfx*, u8*, s8);
88void unpack_texture_on(Gfx*, u8*, s8);
89void unpack_texture_off(Gfx*, u8*, s8);
91
93
94#endif // MEMORY_H
void unpack_render_mode_translucent(Gfx *, u8 *, uintptr_t)
void * get_segment_base_addr(s32)
Returns the physical memory location of a segment.
Definition memory.c:63
void unpack_lights(Gfx *, u8 *, s8)
void unpack_combine_mode1(Gfx *, u8 *, uintptr_t)
void main_pool_init(uintptr_t, uintptr_t)
Definition memory.c:133
void func_802A8844(void)
Definition memory.c:475
void unpack_combine_mode4(Gfx *, u8 *, uintptr_t)
uintptr_t MIO0_0F(u8 *, uintptr_t, uintptr_t)
Definition memory.c:398
void * func_802A80B0(u8 *, u8 *, u8 *)
Definition memory.c:244
uintptr_t main_pool_pop_state(void)
Definition memory.c:236
uintptr_t set_segment_base_addr(s32, void *)
Stores the physical memory addr for segmented memory in gSegmentTable using the segment number as an ...
Definition memory.c:54
void unpack_texture_on(Gfx *, u8 *, s8)
void func_802A81EC(void)
Definition memory.c:286
void initialize_memory_pool(uintptr_t, uintptr_t)
Sets the starting location for allocating memory and calculates pool size.
Definition memory.c:90
u8 _other_texturesSegmentRomStart[]
struct AllocOnlyPool * alloc_only_pool_init(uintptr_t, uintptr_t)
Definition memory.c:303
void unpack_render_mode_opaque_decal(Gfx *, u8 *, uintptr_t)
void unpack_render_mode_translucent_decal(Gfx *, u8 *, uintptr_t)
void * decompress_segments(u8 *, u8 *)
Definition memory.c:1304
void * main_pool_alloc(uintptr_t, uintptr_t)
Definition memory.c:152
void * load_data(uintptr_t, uintptr_t)
Allocate and DMA.
Definition memory.c:122
uintptr_t main_pool_push_state(void)
Definition memory.c:218
void unpack_tile_sync(Gfx *, u8 *, s8)
Definition memory.c:606
void unpack_combine_mode5(Gfx *, u8 *, uintptr_t)
void unpack_set_geometry_mode(Gfx *, u8 *, s8)
void move_segment_table_to_dmem(void)
Definition memory.c:77
void unpack_clear_geometry_mode(Gfx *, u8 *, s8)
uintptr_t func_802A82AC(s32)
Definition memory.c:319
void * segmented_to_virtual(const void *)
converts an RSP segment + offset address to a normal memory address
Definition memory.c:70
void * get_next_available_memory_addr(uintptr_t)
Returns the address of the next available memory location and updates the memory pointer to reference...
Definition memory.c:36
void unpack_combine_mode_shade(Gfx *, u8 *, uintptr_t)
void unpack_texture_off(Gfx *, u8 *, s8)
void unpack_combine_mode2(Gfx *, u8 *, uintptr_t)
void unpack_render_mode_tex_edge(Gfx *, u8 *, uintptr_t)
void * main_pool_realloc(void *, uintptr_t)
Definition memory.c:203
void unpack_end_displaylist(Gfx *, u8 *, s8)
uintptr_t main_pool_free(void *)
Definition memory.c:181
u8 * load_course(s32)
Loads & DMAs course data. Vtx, textures, displaylists, etc.
Definition memory.c:1326
uintptr_t func_802A8348(s32, s32, s32)
Definition memory.c:347
u8 * dma_textures(u8 *, u32, u32)
void unpack_cull_displaylist(Gfx *, u8 *, s8)
f32 vtxStretchY
Definition code_800029B0.c:63
void * allocate_memory(size_t)
Allocates memory and adjusts gFreeMemorySize.
Definition memory.c:103
void func_802A7D54(s32, s32)
Definition memory.c:114
void unpack_tile_load_sync(Gfx *, u8 *, s8)
Definition memory.c:703
void unpack_displaylist(Gfx *, u8 *, s8)
void unpack_render_mode_opaque(Gfx *, u8 *, uintptr_t)
uintptr_t main_pool_available(void)
Definition memory.c:214
Definition memory.h:30
u8 * startPtr
Definition memory.h:33
s32 usedSpace
Definition memory.h:32
s32 totalSpace
Definition memory.h:31
u8 * freePtr
Definition memory.h:34
Definition memory.h:5
struct MainPoolBlock * prev
Definition memory.h:6
struct MainPoolBlock * next
Definition memory.h:7
Definition memory.h:10
struct MainPoolState * prev
Definition memory.h:14
uintptr_t freeSpace
Definition memory.h:11
struct MainPoolBlock * listHeadL
Definition memory.h:12
struct MainPoolBlock * listHeadR
Definition memory.h:13
Definition memory.h:17
s32 unk0
Definition memory.h:18
s32 unk4
Definition memory.h:19
Definition memory.h:22
s32 fill
Definition memory.h:27
s16 unk2
Definition memory.h:24
s32 unk8
Definition memory.h:26
s32 unk4
Definition memory.h:25
s16 unk0
Definition memory.h:23
signed int s32
Definition ultratypes.h:15
unsigned int u32
Definition ultratypes.h:16
signed char s8
Definition ultratypes.h:11
signed short int s16
Definition ultratypes.h:13
float f32
Definition ultratypes.h:34
unsigned char u8
Definition ultratypes.h:12