mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Fix BSS for audio_spatial (#503)
* Do a little work to determine potential issues for assets in the future. * Format and fix warnings * Test move the bss to a new file. * Add missing line end in new bss file * Properly migrate the audio_spatial bss * Properly migrate the audio_spatial bss for all versions * Fix more bss stuff and rematch the other funcs * formatter * MAke func_80009968 NON_MATCHING again
This commit is contained in:
+38
-30
@@ -34,11 +34,15 @@ UNUSED const char D_800E4EDC[] = "Reverb line definition error (line=%d, vertex=
|
||||
|
||||
/************ .bss ************/
|
||||
|
||||
extern s8 gAudioLinesOff;
|
||||
extern SoundData *D_80119C40;
|
||||
extern unk80119C58 D_80119C58[];
|
||||
extern unk8011A6D8 D_8011A6D8[];
|
||||
extern SoundMask *gSoundMaskHeap;
|
||||
SoundData *D_80119C40;
|
||||
SoundMask **gSoundMaskHeapUsed;
|
||||
SoundMask *gSoundMaskHeap; // 0x24 struct size - 0x5A0 total size - should be 40 elements
|
||||
u8 gFreeMasks;
|
||||
SoundMask **gSoundMaskHeapFree;
|
||||
unk80119C58 D_80119C58[7];
|
||||
unk8011A6D8 D_8011A6D8[7]; // Reverb stuff
|
||||
s8 gAudioLinesOff;
|
||||
s32 D_8011AC1C;
|
||||
|
||||
#define SOUND_MASK_HEAP_COUNT 40
|
||||
|
||||
@@ -52,7 +56,7 @@ void audioline_init(void) {
|
||||
gSoundMaskHeapFree = mempool_alloc_safe(sizeof(uintptr_t) * SOUND_MASK_HEAP_COUNT, COLOUR_TAG_CYAN);
|
||||
gSoundMaskHeapUsed = mempool_alloc_safe(sizeof(uintptr_t) * SOUND_MASK_HEAP_COUNT, COLOUR_TAG_CYAN);
|
||||
gUsedMasks = 0;
|
||||
for (i = 0; i < 7; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_80119C58); i++) {
|
||||
D_80119C58[i].unk178 = NULL;
|
||||
}
|
||||
for (i = 0; i < SOUND_MASK_HEAP_COUNT; i++) {
|
||||
@@ -79,8 +83,8 @@ void audioline_on(void) {
|
||||
}
|
||||
|
||||
#ifdef NON_EQUIVALENT
|
||||
extern f32 D_80119C60[672];
|
||||
extern f32 D_8011A6E0[7][48];
|
||||
// extern f32 D_80119C60[672];
|
||||
// extern f32 D_8011A6E0[7][48];
|
||||
extern unk8011A6D8 **D_8011A6DC;
|
||||
extern unk80119C58 **D_80119C5C;
|
||||
// extern void sound_stop(u8 *arg0);
|
||||
@@ -104,7 +108,7 @@ void func_80008174(void) {
|
||||
}
|
||||
gUsedMasks = 0;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_80119C60); i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_80119C58); i++) {
|
||||
D_80119C58[i].soundID = 0;
|
||||
if (D_80119C58[i].unk178 != 0) {
|
||||
if (D_80119C58[i].unk0.unk0_02 == 0) {
|
||||
@@ -117,19 +121,19 @@ void func_80008174(void) {
|
||||
D_80119C58[i].unk17C = -1;
|
||||
D_80119C5C[i]->unk0.unk0_01 = -100000.0f;
|
||||
|
||||
D_80119C60[i] = -100000.0f;
|
||||
// D_80119C58[i] = -100000.0f;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_8011A6E0); i++) {
|
||||
D_8011A6D8[i].unkB8 = -1;
|
||||
D_8011A6D8[i].unk0.unk0_01 = 0.0f;
|
||||
D_8011A6D8[i].unkBC = 0.0f;
|
||||
D_8011A6DC[i]->unk0.unk0_01 = -100000.0f;
|
||||
D_8011A6E0[i][0] = -100000.0f;
|
||||
for (j = 0; j < ARRAY_COUNT(D_8011A6E0[0]); j++) {
|
||||
D_8011A6E0[i][j] = -100000.0f;
|
||||
}
|
||||
}
|
||||
// for (i = 0; i < ARRAY_COUNT(D_8011A6E0); i++) {
|
||||
// D_8011A6D8[i].unkB8 = -1;
|
||||
// D_8011A6D8[i].unk0.unk0_01 = 0.0f;
|
||||
// D_8011A6D8[i].unkBC = 0.0f;
|
||||
// D_8011A6DC[i]->unk0.unk0_01 = -100000.0f;
|
||||
// D_8011A6E0[i][0] = -100000.0f;
|
||||
// for (j = 0; j < ARRAY_COUNT(D_8011A6E0[0]); j++) {
|
||||
// D_8011A6E0[i][j] = -100000.0f;
|
||||
// }
|
||||
// }
|
||||
|
||||
gAudioLinesOff = 0;
|
||||
}
|
||||
@@ -355,6 +359,7 @@ s32 func_800099EC(u8 arg0) {
|
||||
ret = 1;
|
||||
temp_v0 = &D_80119C58[arg0];
|
||||
var_a2 = (f32 *) &temp_v0->unk4;
|
||||
|
||||
if (temp_v0->unk17C <= 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -372,22 +377,25 @@ s32 func_800099EC(u8 arg0) {
|
||||
|
||||
s32 func_80009AB4(u8 arg0) {
|
||||
s32 ret;
|
||||
f32 *var_a2;
|
||||
f32 temp_f0;
|
||||
s32 i;
|
||||
unk8011A6D8 *levelHeader;
|
||||
unk8011A6D8_04 *var_a2; // Probably a Vec3f
|
||||
unk8011A6D8 *temp_v0;
|
||||
|
||||
ret = 1;
|
||||
levelHeader = &D_8011A6D8[arg0];
|
||||
var_a2 = (unk8011A6D8_04 *) &levelHeader->unk4;
|
||||
temp_v0 = &D_8011A6D8[arg0];
|
||||
var_a2 = (f32 *) &temp_v0->unk4;
|
||||
|
||||
if (levelHeader->unkB8 <= 0) {
|
||||
if (temp_v0->unkB8 <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < levelHeader->unkB8; i++, var_a2++) {
|
||||
if ((var_a2->unk0 == -100000.0) || (var_a2->unk0 + 1 == -100000.0) || (var_a2->unk0 + 2 == -100000.0)) {
|
||||
for (i = 0; i < temp_v0->unkB8; i++) {
|
||||
temp_f0 = *var_a2;
|
||||
if (temp_f0 == -100000.0 || temp_f0 + 1 == -100000.0 || temp_f0 + 2 == -100000.0) {
|
||||
ret = 0;
|
||||
}
|
||||
var_a2 += 3;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -414,7 +422,7 @@ void func_80009B7C(s32 *soundState, f32 x, f32 y, f32 z) {
|
||||
levelSegmentIndex = get_level_segment_index_from_position(x, y, z);
|
||||
volume = 0;
|
||||
var_s6 = 400;
|
||||
for (i = 0; i < 7; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_8011A6D8); i++) {
|
||||
if (D_8011A6D8[i].unk0.unk0_02 != 0) {
|
||||
if (func_80009AB4(i) != 0) {
|
||||
for (j = 0; j < D_8011A6D8[i].unkB8; j++) {
|
||||
@@ -452,7 +460,7 @@ extern unk8011A6D8 **D_8011A6DC;
|
||||
void func_8000A184(Gfx **arg0, Vertex **arg1, Triangle **arg2) {
|
||||
s32 i, j;
|
||||
|
||||
for (i = 0; i < 7; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_80119C58); i++) {
|
||||
if (D_80119C58[i].soundID != 0) {
|
||||
for (j = 0; j < D_80119C58[i].unk17C; j++) {
|
||||
debug_render_line(arg0, arg1, arg2, (floatXYZVals *) &D_80119C5C[i], 0xFF, 0xFF, 0);
|
||||
@@ -460,7 +468,7 @@ void func_8000A184(Gfx **arg0, Vertex **arg1, Triangle **arg2) {
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 7; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_8011A6D8); i++) {
|
||||
if (D_8011A6D8[i].unk0.unk0_02 != 0) {
|
||||
for (j = 0; j < D_8011A6D8[i].unkB8; j++) {
|
||||
debug_render_line(arg0, arg1, arg2, (floatXYZVals *) &D_8011A6DC[i], 0xFF, 0xFF, 0);
|
||||
|
||||
@@ -25,20 +25,6 @@ s32 D_800DC6D8 = 1; // Currently unknown, might be a different type.
|
||||
VehicleSoundData *D_80119C30[2];
|
||||
VehicleSoundData *gRacerSound;
|
||||
Object_Racer *gSoundRacerObj;
|
||||
SoundData *D_80119C40; // This should be in audio_spatial?
|
||||
SoundMask **gSoundMaskHeapUsed;
|
||||
SoundMask **gSoundMaskHeap; // 0x24 struct size - 0x5A0 total size - should be 40 elements
|
||||
u8 gFreeMasks;
|
||||
SoundMask **gSoundMaskHeapFree;
|
||||
s32 D_80119C54; // Padding?
|
||||
unk80119C58 **D_80119C58; // Struct of size in func_8000A184 = 0x180 = 384 bytes | Ambient Sounds
|
||||
unk80119C58 **D_80119C5C; // Struct of size in func_8000A184 = 0x180 = 384 bytes Likely the same as above
|
||||
f32 D_80119C60[670]; // array size of 672 looks to be required for func_80008174
|
||||
unk8011A6D8 *D_8011A6D8; // unk8011A6D8[] | Reverb stuff
|
||||
unk8011A6D8 **D_8011A6DC; // Struct of size 0xC0
|
||||
f32 D_8011A6E0[334];
|
||||
s32 gAudioLinesOff;
|
||||
s32 D_8011AC1C;
|
||||
|
||||
/******************************/
|
||||
|
||||
|
||||
@@ -121,14 +121,6 @@ typedef struct unkAudioAsset {
|
||||
/* 0x4A */ u8 unk4A;
|
||||
} unkAudioAsset;
|
||||
|
||||
extern u8 gVehicleSounds;
|
||||
extern s32 D_800DC6D8;
|
||||
extern s32 D_800DC6DC;
|
||||
extern u16 gUsedMasks;
|
||||
extern SoundMask **gSoundMaskHeapUsed;
|
||||
extern SoundMask **gSoundMaskHeapFree;
|
||||
extern u8 gFreeMasks;
|
||||
|
||||
void racer_sound_update(Object *obj, u32 buttonsPressed, u32 buttonsHeld, s32 updateRate);
|
||||
void racer_sound_free(Object *);
|
||||
|
||||
|
||||
+3
-3
@@ -189,15 +189,15 @@ u16 func_800042CC(u16 *lastAllocListIndex, u16 *lastFreeListIndex) {
|
||||
nextAllocList = queue->unk8;
|
||||
prevFreeList = queue->prev;
|
||||
|
||||
for (freeListNextIndex = 0; nextFreeList != 0; freeListNextIndex++) {
|
||||
for (freeListNextIndex = 0; nextFreeList != NULL; freeListNextIndex++) {
|
||||
nextFreeList = nextFreeList->next;
|
||||
}
|
||||
|
||||
for (allocListNextIndex = 0; nextAllocList != 0; allocListNextIndex++) {
|
||||
for (allocListNextIndex = 0; nextAllocList != NULL; allocListNextIndex++) {
|
||||
nextAllocList = nextAllocList->next;
|
||||
}
|
||||
|
||||
for (freeListLastIndex = 0; prevFreeList != 0; freeListLastIndex++) {
|
||||
for (freeListLastIndex = 0; prevFreeList != NULL; freeListLastIndex++) {
|
||||
prevFreeList = prevFreeList->prev;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -2146,13 +2146,13 @@ s32 get_wave_properties(f32 yPos, f32 *waterHeight, Vec3f *rotation) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/tracks/func_8002B0F4.s")
|
||||
|
||||
s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3) {
|
||||
s32 func_8002B9BC(Object *obj, f32 *arg1, Vec3f *arg2, s32 arg3) {
|
||||
LevelModelSegment *seg;
|
||||
|
||||
if (arg2 != NULL) {
|
||||
arg2[0] = 0.0f;
|
||||
arg2[2] = 0.0f;
|
||||
arg2[1] = 1.0f;
|
||||
arg2->x = 0.0f;
|
||||
arg2->z = 0.0f;
|
||||
arg2->y = 1.0f;
|
||||
}
|
||||
if ((obj->segment.object.segmentID < 0) ||
|
||||
(obj->segment.object.segmentID >= gCurrentLevelModel->numberOfSegments)) {
|
||||
|
||||
+1
-1
@@ -156,7 +156,7 @@ LevelModelSegment *get_segment(s32 segmentID);
|
||||
LevelModelSegmentBoundingBox *get_segment_bounding_box(s32 segmentID);
|
||||
void func_8002ACC8(s32 arg0);
|
||||
s32 func_8002ACD4(f32 *arg0, f32 *arg1, f32 *arg2);
|
||||
s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3);
|
||||
s32 func_8002B9BC(Object *obj, f32 *arg1, Vec3f *arg2, s32 arg3);
|
||||
void func_8002C71C(LevelModelSegment *segment);
|
||||
LevelModel *get_current_level_model(void);
|
||||
void get_fog_settings(s32 playerID, s16 *near, s16 *far, u8 *r, u8 *g, u8 *b);
|
||||
|
||||
+23
-22
@@ -422,7 +422,7 @@ void func_800B8C04(s32 xPosition, s32 yPosition, s32 zPosition, s32 currentViewp
|
||||
s32 k;
|
||||
s32 var_t4;
|
||||
s32 tempXPosRatio;
|
||||
s32 var_t2;
|
||||
u32 var_t2;
|
||||
s32 var_v1;
|
||||
s32 xPosRatio;
|
||||
s32 zPosRatio;
|
||||
@@ -823,27 +823,27 @@ void func_800BA288(s32 arg0, s32 arg1) {
|
||||
f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
f32 spA4;
|
||||
f32 spA0;
|
||||
f32 var_f12; // sp9C
|
||||
f32 var_f2; // sp98
|
||||
f32 var_f12;
|
||||
f32 var_f2;
|
||||
f32 sp94;
|
||||
f32 sp90;
|
||||
f32 var_f16; // sp8C
|
||||
f32 arg3X; // sp8C
|
||||
f32 arg3Z; // sp84
|
||||
f32 arg3Y; // sp80
|
||||
f32 var_f16;
|
||||
f32 arg3X;
|
||||
f32 arg3Z;
|
||||
f32 arg3Y;
|
||||
s32 var_a0;
|
||||
f32 sp78;
|
||||
s32 var_v0;
|
||||
s32 sp70;
|
||||
s32 sp6C;
|
||||
s32 var_t0; // sp68
|
||||
s32 var_a3; // sp64
|
||||
s32 var_t0;
|
||||
s32 var_a3;
|
||||
s32 sp60;
|
||||
u8 *tempD_800E3178;
|
||||
s32 sp58;
|
||||
s32 pad;
|
||||
|
||||
if ((arg0 < 0) || (arg0 >= D_8012A0E0)) {
|
||||
if (arg0 < 0 || arg0 >= D_8012A0E0) {
|
||||
arg0 = 0;
|
||||
}
|
||||
|
||||
@@ -880,19 +880,19 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
sp6C = arg2 / sp90;
|
||||
arg1 -= sp70 * sp94;
|
||||
arg2 -= sp6C * sp90;
|
||||
|
||||
|
||||
var_t0 = D_800E30D8[arg0].unk12 + sp70;
|
||||
while (var_t0 >= D_80129FC8.unk4) {
|
||||
var_t0 -= D_80129FC8.unk4;
|
||||
}
|
||||
|
||||
|
||||
var_a3 = D_800E30D8[arg0].unk10 + sp6C;
|
||||
while (var_a3 >= D_80129FC8.unk4) {
|
||||
var_a3 -= D_80129FC8.unk4;
|
||||
}
|
||||
|
||||
|
||||
var_v0 = 0;
|
||||
if ((arg2 != sp90) && (arg1 < (((sp90 - arg2) / sp90) * sp94))) {
|
||||
if (arg2 != sp90 && arg1 < (((sp90 - arg2) / sp90) * sp94)) {
|
||||
var_v0 = 1;
|
||||
}
|
||||
|
||||
@@ -920,7 +920,8 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
var_f12 *= D_80129FC8.unk44 + (var_v0 * var_f16);
|
||||
}
|
||||
|
||||
var_a0 = (var_t0 + 1) >= D_80129FC8.unk4 ? var_a3 * D_80129FC8.unk4 : (var_t0 ^ 0) + var_a3 * D_80129FC8.unk4 + 1;
|
||||
var_a0 =
|
||||
(var_t0 + 1) >= D_80129FC8.unk4 ? var_a3 * D_80129FC8.unk4 : (var_t0 + 0) + var_a3 * D_80129FC8.unk4 + 1;
|
||||
var_f2 = (D_800E3040[D_800E3044[var_a0].s[0]] + D_800E3040[D_800E3044[var_a0].s[1]]) * D_80129FC8.magnitude;
|
||||
if (D_800E3188 > 0) {
|
||||
var_f2 += func_800BEFC4(arg0, sp70 + 1, sp6C);
|
||||
@@ -943,7 +944,8 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
arg3Z = sp90 * sp94;
|
||||
arg3Y = (spA0 - var_f12) * sp94;
|
||||
} else {
|
||||
var_a0 = (var_t0 + 1) >= D_80129FC8.unk4 ? var_a3 * D_80129FC8.unk4 : (var_t0 ^ 0) + (var_a3 * D_80129FC8.unk4) + 1;
|
||||
var_a0 =
|
||||
(var_t0 + 1) >= D_80129FC8.unk4 ? var_a3 * D_80129FC8.unk4 : (var_t0 + 0) + (var_a3 * D_80129FC8.unk4) + 1;
|
||||
spA0 = (D_800E3040[D_800E3044[var_a0].s[0]] + D_800E3040[D_800E3044[var_a0].s[1]]) * D_80129FC8.magnitude;
|
||||
if (D_800E3188 > 0) {
|
||||
spA0 += func_800BEFC4(arg0, sp70 + 1, sp6C);
|
||||
@@ -963,14 +965,14 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
var_a0 = sp58 + sp70 + ((sp6C + 1) * sp60);
|
||||
var_v0 = (tempD_800E3178 = D_800E3178)[var_a0];
|
||||
if (var_v0 < 0x7F) {
|
||||
var_f12 *= D_80129FC8.unk44 + (var_v0 * var_f16);
|
||||
var_f12 *= D_80129FC8.unk44 + (var_v0 * var_f16);
|
||||
}
|
||||
|
||||
var_a0 = (var_t0 + 1) >= D_80129FC8.unk4 ? 0 : (var_t0 + 1);
|
||||
if ((var_a3 + 1) < D_80129FC8.unk4) {
|
||||
var_a0 += (var_a3 + 1) * D_80129FC8.unk4;
|
||||
var_a0 += (var_a3 + 1) * D_80129FC8.unk4;
|
||||
}
|
||||
|
||||
|
||||
var_f2 = (D_800E3040[D_800E3044[var_a0].s[0]] + D_800E3040[D_800E3044[var_a0].s[1]]) * D_80129FC8.magnitude;
|
||||
if (D_800E3188 > 0) {
|
||||
var_f2 += func_800BEFC4(arg0, sp70 + 1, sp6C + 1);
|
||||
@@ -991,7 +993,7 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
spA4 = sp94;
|
||||
arg3X = sp90 * (var_f12 - var_f2);
|
||||
arg3Z = sp90 * sp94;
|
||||
arg3Y = sp94 * (spA0 - var_f2);
|
||||
arg3Y = sp94 * (spA0 - var_f2);
|
||||
}
|
||||
|
||||
var_f16 = sqrtf((arg3X * arg3X) + (arg3Z * arg3Z) + (arg3Y * arg3Y));
|
||||
@@ -1002,7 +1004,7 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
sp78 -= (((arg3X * arg1) + (arg3Y * arg2)) - ((spA4 * arg3X) + (spA0 * arg3Z))) / arg3Z;
|
||||
}
|
||||
|
||||
if (arg3) {
|
||||
if (arg3 != NULL) {
|
||||
arg3->x = arg3X;
|
||||
arg3->y = arg3Z;
|
||||
arg3->z = arg3Y;
|
||||
@@ -1011,7 +1013,6 @@ f32 func_800BB2F4(s32 arg0, f32 arg1, f32 arg2, Vec3f *arg3) {
|
||||
return sp78;
|
||||
}
|
||||
|
||||
|
||||
void func_800BBDDC(LevelModel *level, LevelHeader *header) {
|
||||
func_800BBE08(level, (unk800BBE08_arg1 *) header);
|
||||
func_800BBF78(level);
|
||||
|
||||
@@ -386,6 +386,7 @@ segments:
|
||||
- { type: .bss, vram: 0x80117A00, name: audiomgr }
|
||||
- { type: .bss, vram: 0x8011B640, name: audiosfx }
|
||||
- { type: .bss, vram: 0x8011B6A0, name: audio_vehicle }
|
||||
- { type: .bss, vram: 0x8011B6B0, name: audio_spatial }
|
||||
- { type: .bss, vram: 0x8011C690, name: objects }
|
||||
- { type: .bss, vram: 0x8011CB10, name: tracks }
|
||||
- { type: .bss, vram: 0x8011EF30, name: lights }
|
||||
|
||||
@@ -386,6 +386,7 @@ segments:
|
||||
- { type: .bss, vram: 0x80116020, name: audiomgr }
|
||||
- { type: .bss, vram: 0x80119C60, name: audiosfx }
|
||||
- { type: .bss, vram: 0x80119CC0, name: audio_vehicle }
|
||||
- { type: .bss, vram: 0x80119CD0, name: audio_spatial }
|
||||
- { type: .bss, vram: 0x8011ACB0, name: objects }
|
||||
- { type: .bss, vram: 0x8011B130, name: tracks }
|
||||
- { type: .bss, vram: 0x8011D550, name: lights }
|
||||
|
||||
@@ -386,6 +386,7 @@ segments:
|
||||
- { type: .bss, vram: 0x801165A0, name: audiomgr }
|
||||
- { type: .bss, vram: 0x8011A1E0, name: audiosfx }
|
||||
- { type: .bss, vram: 0x8011A240, name: audio_vehicle }
|
||||
- { type: .bss, vram: 0x8011A250, name: audio_spatial }
|
||||
- { type: .bss, vram: 0x8011B230, name: objects }
|
||||
- { type: .bss, vram: 0x8011B6B0, name: tracks }
|
||||
- { type: .bss, vram: 0x8011DAD0, name: lights }
|
||||
|
||||
@@ -386,6 +386,7 @@ segments:
|
||||
- { type: .bss, vram: 0x80115F90, name: audiomgr }
|
||||
- { type: .bss, vram: 0x80119BD0, name: audiosfx }
|
||||
- { type: .bss, vram: 0x80119C30, name: audio_vehicle }
|
||||
- { type: .bss, vram: 0x80119C40, name: audio_spatial }
|
||||
- { type: .bss, vram: 0x8011AC20, name: objects }
|
||||
- { type: .bss, vram: 0x8011B0A0, name: tracks }
|
||||
- { type: .bss, vram: 0x8011D4C0, name: lights }
|
||||
@@ -440,8 +441,21 @@ segments:
|
||||
- { type: .bss, vram: 0x8012D200, name: ../libultra/src/os/timerintr }
|
||||
- { type: .bss, vram: 0x8012D240, name: ../libultra/src/os/exceptasm }
|
||||
|
||||
# TODO: If we can split up the assets bin file to these two files, we can properly
|
||||
# define the symbol for __ASSETS_LUT_END even if it changes with custom assets
|
||||
# - name: assets_lut
|
||||
# type: bin
|
||||
# start: 0xECB60
|
||||
# follows_vram: main
|
||||
|
||||
# - name: assets
|
||||
# type: bin
|
||||
# start: 0xECC30
|
||||
# follows_vram: main
|
||||
|
||||
- name: assets
|
||||
type: bin
|
||||
start: 0xECB60
|
||||
follows_vram: main
|
||||
|
||||
- [0xAC9630]
|
||||
|
||||
@@ -386,6 +386,7 @@ segments:
|
||||
- { type: .bss, vram: 0x80116510, name: audiomgr }
|
||||
- { type: .bss, vram: 0x8011A150, name: audiosfx }
|
||||
- { type: .bss, vram: 0x8011A1B0, name: audio_vehicle }
|
||||
- { type: .bss, vram: 0x8011A1C0, name: audio_spatial }
|
||||
- { type: .bss, vram: 0x8011B1A0, name: objects }
|
||||
- { type: .bss, vram: 0x8011B620, name: tracks }
|
||||
- { type: .bss, vram: 0x8011DA40, name: lights }
|
||||
|
||||
@@ -3561,13 +3561,8 @@ gSoundMaskHeapUsed = 0x8011B6B4;
|
||||
gSoundMaskHeap = 0x8011B6B8;
|
||||
gFreeMasks = 0x8011B6BC;
|
||||
gSoundMaskHeapFree = 0x8011B6C0;
|
||||
D_80119C54 = 0x8011B6C4;
|
||||
D_80119C58 = 0x8011B6C8;
|
||||
D_80119C5C = 0x8011B6CC;
|
||||
D_80119C60 = 0x8011B6D0;
|
||||
D_8011A6D8 = 0x8011C148;
|
||||
D_8011A6DC = 0x8011C14C;
|
||||
D_8011A6E0 = 0x8011C150;
|
||||
D_80119C58 = 0x8011B6C8; // size:0xA80
|
||||
D_8011A6D8 = 0x8011C148; // size:0x540
|
||||
gAudioLinesOff = 0x8011C688;
|
||||
D_8011AC1C = 0x8011C68C;
|
||||
|
||||
|
||||
@@ -3310,13 +3310,8 @@ gSoundMaskHeapUsed = 0x80119CD4;
|
||||
gSoundMaskHeap = 0x80119CD8;
|
||||
gFreeMasks = 0x80119CDC;
|
||||
gSoundMaskHeapFree = 0x80119CE0;
|
||||
D_80119C54 = 0x80119CE4;
|
||||
D_80119C58 = 0x80119CE8;
|
||||
D_80119C5C = 0x80119CEC;
|
||||
D_80119C60 = 0x80119CF0;
|
||||
D_8011A6D8 = 0x8011A768;
|
||||
D_8011A6DC = 0x8011A76C;
|
||||
D_8011A6E0 = 0x8011A770;
|
||||
D_80119C58 = 0x80119CE8; // size:0xA80
|
||||
D_8011A6D8 = 0x8011A768; // size:0x540
|
||||
gAudioLinesOff = 0x8011ACA8;
|
||||
D_8011AC1C = 0x8011ACAC;
|
||||
D_8011AC20 = 0x8011ACB0; // size:0x100
|
||||
|
||||
@@ -3240,13 +3240,8 @@ gSoundMaskHeapUsed = 0x8011A254;
|
||||
gSoundMaskHeap = 0x8011A258;
|
||||
gFreeMasks = 0x8011A25C;
|
||||
gSoundMaskHeapFree = 0x8011A260;
|
||||
D_80119C54 = 0x8011A264;
|
||||
D_80119C58 = 0x8011A268;
|
||||
D_80119C5C = 0x8011A26C;
|
||||
D_80119C60 = 0x8011A270;
|
||||
D_8011A6D8 = 0x8011ACE8;
|
||||
D_8011A6DC = 0x8011ACEC;
|
||||
D_8011A6E0 = 0x8011ACF0;
|
||||
D_80119C58 = 0x8011A268; // size:0xA80
|
||||
D_8011A6D8 = 0x8011ACE8; // size:0x540
|
||||
gAudioLinesOff = 0x8011B228;
|
||||
D_8011AC1C = 0x8011B22C;
|
||||
D_8011AC20 = 0x8011B230; // size:0x100
|
||||
|
||||
@@ -3678,18 +3678,15 @@ gSoundChannelVolume = 0x80119C28;
|
||||
D_80119C30 = 0x80119C30;
|
||||
gRacerSound = 0x80119C38;
|
||||
gSoundRacerObj = 0x80119C3C;
|
||||
|
||||
// audio_spatial .bss
|
||||
D_80119C40 = 0x80119C40;
|
||||
gSoundMaskHeapUsed = 0x80119C44;
|
||||
gSoundMaskHeap = 0x80119C48;
|
||||
gFreeMasks = 0x80119C4C;
|
||||
gSoundMaskHeapFree = 0x80119C50;
|
||||
D_80119C54 = 0x80119C54;
|
||||
D_80119C58 = 0x80119C58;
|
||||
D_80119C5C = 0x80119C5C;
|
||||
D_80119C60 = 0x80119C60;
|
||||
D_8011A6D8 = 0x8011A6D8;
|
||||
D_8011A6DC = 0x8011A6DC;
|
||||
D_8011A6E0 = 0x8011A6E0;
|
||||
D_80119C58 = 0x80119C58; // size:0xA80
|
||||
D_8011A6D8 = 0x8011A6D8; // size:0x540
|
||||
gAudioLinesOff = 0x8011AC18;
|
||||
D_8011AC1C = 0x8011AC1C;
|
||||
|
||||
|
||||
@@ -3236,13 +3236,8 @@ gSoundMaskHeapUsed = 0x8011A1C4;
|
||||
gSoundMaskHeap = 0x8011A1C8;
|
||||
gFreeMasks = 0x8011A1CC;
|
||||
gSoundMaskHeapFree = 0x8011A1D0;
|
||||
D_80119C54 = 0x8011A1D4;
|
||||
D_80119C58 = 0x8011A1D8;
|
||||
D_80119C5C = 0x8011A1DC;
|
||||
D_80119C60 = 0x8011A1E0;
|
||||
D_8011A6D8 = 0x8011AC58;
|
||||
D_8011A6DC = 0x8011AC5C;
|
||||
D_8011A6E0 = 0x8011AC60;
|
||||
D_80119C58 = 0x8011A1D8; // size:0xA80
|
||||
D_8011A6D8 = 0x8011AC58; // size:0x540
|
||||
gAudioLinesOff = 0x8011B198;
|
||||
D_8011AC1C = 0x8011B19C;
|
||||
D_8011AC20 = 0x8011B1A0; // size:0x100
|
||||
|
||||
@@ -15,41 +15,22 @@ sins_2 = coss_2 + 0x4;
|
||||
D_B0000574 = 0xB0000574;
|
||||
D_B0000578 = 0xB0000578;
|
||||
|
||||
/* The symbols below are GFX commands where it uses OS_K0_TO_PHYSICAL */
|
||||
|
||||
/* US V1 */
|
||||
D_E1CA0 = dMenuHudDrawModes - 0x80000000;
|
||||
D_E1CB0 = D_E1CA0 + 0x10;
|
||||
D_E1CC0 = D_E1CB0 + 0x10;
|
||||
/* PAL V1 */
|
||||
D_E1D30 = dMenuHudDrawModes - 0x80000000;
|
||||
D_E1D40 = D_E1D30 + 0x10;
|
||||
D_E1D50 = D_E1D40 + 0x10;
|
||||
/* US V2 */
|
||||
D_E2220 = dMenuHudDrawModes - 0x80000000;
|
||||
D_E2230 = D_E2220 + 0x10;
|
||||
D_E2240 = D_E2230 + 0x10;
|
||||
/* PAL V2 */
|
||||
D_E22B0 = dMenuHudDrawModes - 0x80000000;
|
||||
D_E22C0 = D_E22B0 + 0x10;
|
||||
D_E22D0 = D_E22C0 + 0x10;
|
||||
/* JPN V1 */
|
||||
D_E3730 = dMenuHudDrawModes - 0x80000000;
|
||||
D_E3740 = D_E3730 + 0x10;
|
||||
D_E3750 = D_E3740 + 0x10;
|
||||
D_E51B8 = dDialogueBoxDrawModes - 0x80000000;
|
||||
D_E51C8 = D_E51B8 + 0x10;
|
||||
D_E51D8 = D_E51C8 + 0x10;
|
||||
|
||||
/* Symbols related to the end of the ROM */
|
||||
|
||||
gMainMemoryPool = main_BSS_END; /* This variable is just supposed to be available at the end of BSS for allocating memory to */
|
||||
__BSS_SECTION_START = main_BSS_START; /* Entrypoint addresses */
|
||||
__BSS_SECTION_SIZE = main_BSS_SIZE; /* Entrypoint addresses */
|
||||
__ASSETS_LUT_START = main_ROM_END; /* Required to have this in place to define where assets live */
|
||||
__ASSETS_LUT_END = main_ROM_END + 0xD0; /* Not truly sure how to determine the end location, but it's always 0xD0 after the start */
|
||||
__ASSETS_LUT_START = assets_ROM_START; /* Required to have this in place to define where assets live */
|
||||
__ASSETS_LUT_END = assets_ROM_START + 0xD0; /* TODO: __ASSETS_LUT_END = assets_lut_ROM_END; */
|
||||
__ROM_END = assets_ROM_END; /* Used for the ROM checksum calculation in cheatmenu_checksum */
|
||||
__RAM_TO_ROM = main_VRAM - 0x1000; /* Used in the calc_func_checksyms.py */
|
||||
__RAM_TO_ROM = main_VRAM - 0x1000; /* Used in the calc_func_checksums.py */
|
||||
|
||||
/**********
|
||||
# TODO: If we can split up the assets bin file to these two files, we can properly
|
||||
# define the symbol for __ASSETS_LUT_END even if it changes with custom assets
|
||||
__ASSETS_LUT_START = assets_lut_ROM_START;
|
||||
__ASSETS_LUT_END = assets_lut_ROM_END;
|
||||
************/
|
||||
|
||||
/* Just libultra stuff below */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user