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:
Ryan Myers
2025-04-08 13:04:50 -04:00
committed by GitHub
parent dc45ff2b33
commit 8bd6f4248c
18 changed files with 109 additions and 146 deletions
+38 -30
View File
@@ -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);
-14
View File
@@ -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;
/******************************/
-8
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
+1
View File
@@ -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 }
+1
View File
@@ -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 }
+1
View File
@@ -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 }
+14
View File
@@ -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]
+1
View File
@@ -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 }
+2 -7
View File
@@ -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;
+2 -7
View File
@@ -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
+2 -7
View File
@@ -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
+4 -7
View File
@@ -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;
+2 -7
View File
@@ -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
+10 -29
View File
@@ -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 */