mirror of
https://github.com/zeldaret/af.git
synced 2026-09-29 15:08:36 -04:00
a4d5910cdb
* 25 functions OK * 10 functions OK * Add block type and block kind enums/defines * Formatting/style pass * Move `FieldMakeBlockType` to `m_field_make` * Remove unused/duplicate defines * Split data out for `m_quest` and `m_random_field`; rename data symbols * Generate `m_random_field.c` and rename function symbols. * mRF_BlockTypeDirect2GateType, mRF_BlockTypeDirect2GateData OK * mRF_Type2BlockInfo, mRF_Info2BlockType, mRF_GateType2GateCount, mRF_SearchPond, mRF_Attr2BeastRoadAttr, mRF_CheckBeastRoad OK * mFI_GetUnitCol OK; mRF_PrintDebug and mRF_BlockInf2CheckBeastRoad OK (pending data import). * Fix `m_random_field` code split; all newly included functions OK * Fix mRF_Malloc return type; formatting pass * Name m_random_field_ovl * Rename data symbols (m_random_field_ovl). * Rename symbols (all functions named) * Import data * Declare overlay segment; rename symbols * mRF_MakeRandomField OK (all functions matching). * Extract asset `data_combi_table` * Clean up mRF_MakeRandomField; document m_field_make.h * Rename mCoBG_unkStruct->unk6 as unitAttribute * Misc cleanup and formatting. * Rename additional data symbols (m_random_field_ovl). * Formatting pass * Improve documentation of BackgroundAttribute enum. * Formatting pass; add omitted attribute.
149 lines
4.0 KiB
C
149 lines
4.0 KiB
C
#ifndef SEGMENT_SYMBOLS_H
|
|
#define SEGMENT_SYMBOLS_H
|
|
|
|
#include "ultra64.h"
|
|
#include "libc/stdint.h"
|
|
#include "other_types.h"
|
|
|
|
|
|
#define DECLARE_VRAM_SEGMENT(name) \
|
|
extern u8 name ## _VRAM[]; \
|
|
extern u8 name ## _VRAM_END[]
|
|
|
|
#define DECLARE_ROM_SEGMENT(name) \
|
|
extern u8 name ## _ROM_START[]; \
|
|
extern u8 name ## _ROM_END[]
|
|
|
|
#define DECLARE_DATA_SEGMENT(name) \
|
|
extern u8 name ## _DATA_START[]; \
|
|
extern u8 name ## _DATA_END[]; \
|
|
extern u8 name ## _DATA_SIZE[]
|
|
|
|
#define DECLARE_BSS_SEGMENT(name) \
|
|
extern u8 name ## _BSS_START[]; \
|
|
extern u8 name ## _BSS_END[]
|
|
|
|
#define DECLARE_SEGMENT(name) \
|
|
DECLARE_VRAM_SEGMENT(name); \
|
|
DECLARE_ROM_SEGMENT(name); \
|
|
DECLARE_DATA_SEGMENT(name); \
|
|
DECLARE_BSS_SEGMENT(name)
|
|
|
|
#define SEGMENT_VRAM_START(segment) (segment ## _VRAM)
|
|
#define SEGMENT_VRAM_END(segment) (segment ## _VRAM_END)
|
|
#define SEGMENT_VRAM_SIZE(segment) ((uintptr_t)SEGMENT_VRAM_END(segment) - (uintptr_t)SEGMENT_VRAM_START(segment))
|
|
#define SEGMENT_VRAM_RESOLVE_ADDR(segment, base, symbol) ((uintptr_t)(base) + (uintptr_t)&(symbol) - (uintptr_t)SEGMENT_VRAM_START(segment))
|
|
|
|
#define SEGMENT_ROM_START(segment) ((RomOffset)segment ## _ROM_START)
|
|
#define SEGMENT_ROM_END(segment) ((RomOffset)segment ## _ROM_END)
|
|
#define SEGMENT_ROM_SIZE(segment) (SEGMENT_ROM_END(segment) - SEGMENT_ROM_START(segment))
|
|
#define SEGMENT_ROM_SIZE_ALT(segment) ((size_t)(segment ## _ROM_END - segment ## _ROM_START))
|
|
|
|
#define SEGMENT_DATA_SIZE_CONST(segment) ((RomOffset)segment ## _DATA_SIZE)
|
|
|
|
#define SEGMENT_BSS_START(segment) (segment ## _BSS_START)
|
|
#define SEGMENT_BSS_END(segment) (segment ## _BSS_END)
|
|
#define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment))
|
|
|
|
DECLARE_SEGMENT(framebuffer);
|
|
|
|
DECLARE_SEGMENT(header);
|
|
|
|
DECLARE_SEGMENT(ipl3);
|
|
|
|
DECLARE_SEGMENT(entry);
|
|
|
|
DECLARE_SEGMENT(boot);
|
|
|
|
DECLARE_SEGMENT(dmadata);
|
|
|
|
DECLARE_SEGMENT(segment_027130);
|
|
|
|
DECLARE_SEGMENT(segment_13D9A0);
|
|
|
|
DECLARE_SEGMENT(code);
|
|
|
|
DECLARE_SEGMENT(buffers);
|
|
|
|
// TODO: the rest of segments
|
|
|
|
DECLARE_SEGMENT(segment_01136000);
|
|
|
|
DECLARE_SEGMENT(submenu_ovl);
|
|
DECLARE_SEGMENT(player_actor);
|
|
|
|
DECLARE_SEGMENT(tag_ovl);
|
|
DECLARE_SEGMENT(hand_ovl);
|
|
DECLARE_SEGMENT(haniwaPortrait_ovl);
|
|
DECLARE_SEGMENT(inventory_ovl);
|
|
DECLARE_SEGMENT(ovl__00789B60);
|
|
DECLARE_SEGMENT(ovl__0078A560);
|
|
DECLARE_SEGMENT(ovl__0078AE30);
|
|
DECLARE_SEGMENT(ledit_ovl);
|
|
DECLARE_SEGMENT(ovl__0078CB80);
|
|
DECLARE_SEGMENT(board_ovl);
|
|
DECLARE_SEGMENT(ovl__00792700);
|
|
DECLARE_SEGMENT(ovl__00794380);
|
|
DECLARE_SEGMENT(map_ovl);
|
|
DECLARE_SEGMENT(ovl__00797A50);
|
|
DECLARE_SEGMENT(ovl__00799580);
|
|
DECLARE_SEGMENT(ovl__0079A290);
|
|
DECLARE_SEGMENT(ovl__0079B120);
|
|
DECLARE_SEGMENT(ovl__0079C020);
|
|
DECLARE_SEGMENT(ovl__0079DA50);
|
|
DECLARE_SEGMENT(ovl__0079E430);
|
|
DECLARE_SEGMENT(ovl__0079F810);
|
|
DECLARE_SEGMENT(ovl__007A10E0);
|
|
DECLARE_SEGMENT(catalog_ovl);
|
|
|
|
DECLARE_SEGMENT(m_random_field_ovl);
|
|
|
|
DECLARE_SEGMENT(ac_set_ovl_insect);
|
|
DECLARE_SEGMENT(ac_set_ovl_gyoei);
|
|
|
|
DECLARE_SEGMENT(ac_weather_fine);
|
|
DECLARE_SEGMENT(ac_weather_rain);
|
|
DECLARE_SEGMENT(ac_weather_snow);
|
|
DECLARE_SEGMENT(ac_weather_sakura);
|
|
DECLARE_SEGMENT(ac_weather_leaf);
|
|
|
|
DECLARE_SEGMENT(m_mail_check_ovl);
|
|
|
|
DECLARE_SEGMENT(m_all_grow_ovl);
|
|
|
|
DECLARE_SEGMENT(locerrmsg);
|
|
|
|
DECLARE_SEGMENT(segment_00A58000);
|
|
|
|
DECLARE_SEGMENT(object_00D5B000);
|
|
DECLARE_SEGMENT(object_00D5D000);
|
|
DECLARE_SEGMENT(object_00D5E000);
|
|
DECLARE_SEGMENT(object_00DF4000);
|
|
DECLARE_SEGMENT(object_00DF5000);
|
|
DECLARE_SEGMENT(object_00E00000);
|
|
DECLARE_SEGMENT(segment_00E02000);
|
|
DECLARE_SEGMENT(segment_00E03000);
|
|
DECLARE_SEGMENT(segment_00E04000);
|
|
DECLARE_SEGMENT(segment_00E0D000);
|
|
|
|
DECLARE_SEGMENT(act_ball_b);
|
|
DECLARE_SEGMENT(act_ball_d);
|
|
DECLARE_SEGMENT(act_ball_s);
|
|
|
|
DECLARE_SEGMENT(segment_01408000);
|
|
DECLARE_SEGMENT(segment_01409000);
|
|
DECLARE_SEGMENT(segment_0140A000);
|
|
DECLARE_SEGMENT(segment_0140B000);
|
|
|
|
DECLARE_SEGMENT(object_017A1000);
|
|
DECLARE_SEGMENT(object_0182A000);
|
|
DECLARE_SEGMENT(segment_013E7000);
|
|
|
|
DECLARE_SEGMENT(int_sum_blue_bureau01);
|
|
|
|
DECLARE_SEGMENT(int_sum_hal_chest02);
|
|
|
|
DECLARE_SEGMENT(int_sum_clchest03);
|
|
|
|
#endif
|