Added bss for unknown_001050, unknown_003260, and unknown_005740

This commit is contained in:
David Benepe
2021-06-10 01:13:22 -05:00
parent 8fcd1d03da
commit 2b19923238
9 changed files with 1411 additions and 141 deletions
+8 -4
View File
@@ -8,11 +8,15 @@
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
.section .text
# .word __BSS_SECTION_SIZE # Should equal 0x41490
glabel entrypoint
/* 001000 80000400 3C08800F */ lui $t0, %hi(D_800EBF60) # $t0, 0x800f
/* 001004 80000404 3C090004 */ lui $t1, (0x00041490 >> 16) # lui $t1, 4
/* 001008 80000408 2508BF60 */ addiu $t0, %lo(D_800EBF60) # addiu $t0, $t0, -0x40a0
/* 00100C 8000040C 35291490 */ ori $t1, (0x00041490 & 0xFFFF) # ori $t1, $t1, 0x1490
/* 001000 80000400 3C08800F */ lui $t0, %hi(gBssSectionStart) # $t0, 0x800f
/* 001004 80000404 3C090004 */ lui $t1, (0x41490 >> 16) # lui $t1, 4
/* 001008 80000408 2508BF60 */ addiu $t0, %lo(gBssSectionStart) # addiu $t0, $t0, -0x40a0
/* 00100C 8000040C 35291490 */ ori $t1, (0x41490 & 0xFFFF) # ori $t1, $t1, 0x1490
.L80000410:
/* 001010 80000410 2129FFF8 */ addi $t1, $t1, -8
/* 001014 80000414 AD000000 */ sw $zero, ($t0)
@@ -109,10 +109,10 @@ glabel audioNewThread
/* 0033F8 800027F8 3C028012 */ lui $v0, %hi(D_80119240) # $v0, 0x8012
/* 0033FC 800027FC 24429240 */ addiu $v0, %lo(D_80119240) # addiu $v0, $v0, -0x6dc0
/* 003400 80002800 3C128012 */ lui $s2, %hi(D_80119240) # $s2, 0x8012
/* 003404 80002804 3C108012 */ lui $s0, %hi(D_80119254) # $s0, 0x8012
/* 003404 80002804 3C108012 */ lui $s0, %hi(D_80119240+20) # $s0, 0x8012
/* 003408 80002808 AC400004 */ sw $zero, 4($v0)
/* 00340C 8000280C AC400000 */ sw $zero, ($v0)
/* 003410 80002810 26109254 */ addiu $s0, %lo(D_80119254) # addiu $s0, $s0, -0x6dac
/* 003410 80002810 26109254 */ addiu $s0, %lo(D_80119240+20) # addiu $s0, $s0, -0x6dac
/* 003414 80002814 26529240 */ addiu $s2, %lo(D_80119240) # addiu $s2, $s2, -0x6dc0
/* 003418 80002818 00008825 */ move $s1, $zero
.L8000281C:
@@ -203,9 +203,9 @@ glabel audioNewThread
/* 00355C 8000295C 0C01C3BE */ jal func_80070EF8
/* 003560 80002960 00801025 */ move $v0, $a0
/* 003564 80002964 3C108011 */ lui $s0, %hi(D_80115F98) # $s0, 0x8011
/* 003568 80002968 3C118011 */ lui $s1, %hi(D_80115FA4) # $s1, 0x8011
/* 003568 80002968 3C118011 */ lui $s1, %hi(D_80115FA0+4) # $s1, 0x8011
/* 00356C 8000296C 00401825 */ move $v1, $v0
/* 003570 80002970 26315FA4 */ addiu $s1, %lo(D_80115FA4) # addiu $s1, $s1, 0x5fa4
/* 003570 80002970 26315FA4 */ addiu $s1, %lo(D_80115FA0+4) # addiu $s1, $s1, 0x5fa4
/* 003574 80002974 26105F98 */ addiu $s0, %lo(D_80115F98) # addiu $s0, $s0, 0x5f98
.L80002978:
/* 003578 80002978 8E660014 */ lw $a2, 0x14($s3)
+1165
View File
File diff suppressed because it is too large Load Diff
+38 -36
View File
@@ -49,8 +49,12 @@ const char D_800E49BC[] = "Invalid midi sequence index\n";
/************ .bss ************/
u8 D_800EBF60;
extern ALHeap gALHeap;
#define AUDIO_HEAP_SIZE 0x29D88
// The audio heap is located at the start of the BSS section.
u8 gBssSectionStart[AUDIO_HEAP_SIZE];
ALHeap gALHeap;
/* Unknown size */
typedef struct unk80115CF8 {
@@ -58,16 +62,16 @@ typedef struct unk80115CF8 {
s16 unk2;
} unk80115CF8;
extern ALSeqFile *ALSeqFile_80115CF8;
extern void *D_80115CFC;
ALSeqFile *ALSeqFile_80115CF8;
void *D_80115CFC;
extern u8 D_80115D04;
extern u8 D_80115D05;
extern s32 musicTempo;
extern ALBankFile *ALBankFile_80115D10;
extern ALBankFile *ALBankFile_80115D14;
void *D_80115D00;
u8 D_80115D04;
u8 D_80115D05;
s32 musicTempo;
u32 *D_80115D0C;
ALBankFile *ALBankFile_80115D10;
ALBankFile *ALBankFile_80115D14;
/* Size: 0x0A bytes */
typedef struct unk80115D18 {
@@ -76,7 +80,7 @@ typedef struct unk80115D18 {
u8 pad8[2];
} unk80115D18;
extern unk80115D18* D_80115D18;
unk80115D18 *D_80115D18;
/* Size: 3 bytes */
typedef struct unk80115D1C {
@@ -84,26 +88,27 @@ typedef struct unk80115D1C {
u8 unk1;
u8 unk2;
} unk80115D1C;
extern void *D_80115D00;
extern u32 *D_80115D0C;
extern unk80115D1C* D_80115D1C;
extern s32 D_80115D20;
extern s32 D_80115D24;
extern u32 D_80115D28;
extern u32 D_80115D2C;
extern s16 D_80115D30;
extern s32 D_80115D38;
extern s32 D_80115D3C;
extern u8 D_80115D40;
extern u8 D_80115D41;
extern unk80115D48 D_80115D48[8];
extern ALCSeq D_80115D88;
extern ALCSeq D_80115E80;
extern u8 D_80115F78;
extern u8 D_80115F79;
extern s32 D_80115F7C;
extern u32 D_80115F84;
extern u32 D_80115F88;
unk80115D1C* D_80115D1C;
s32 D_80115D20;
s32 D_80115D24;
u32 D_80115D28;
u32 D_80115D2C;
s16 D_80115D30;
f32 D_80115D34;
s32 D_80115D38;
s32 D_80115D3C;
u8 D_80115D40;
u8 D_80115D41;
unk80115D48 D_80115D48[8];
ALCSeq D_80115D88;
ALCSeq D_80115E80;
u8 D_80115F78;
u8 D_80115F79;
s32 D_80115F7C;
s32 D_80115F80;
u32 D_80115F84;
u32 D_80115F88;
/******************************/
@@ -132,7 +137,7 @@ void audio_init(u32 arg0){
audioMgrConfig audConfig;
seq_max_len = 0;
alHeapInit(&gALHeap, &D_800EBF60, 0x00029D88);
alHeapInit(&gALHeap, gBssSectionStart, 0x00029D88);
reg_s2 = func_80076C58(38);
ALBankFile_80115D14 = (ALBankFile*) func_80070C9C(reg_s2[2] - reg_s2[1], 0x00FFFFFF);
@@ -559,9 +564,6 @@ u8 musicIsPlaying(void) {
return (alCSPGetState(gMusicPlayer) == AL_PLAYING);
}
extern f32 D_80115D34;
#if 1
GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015F8.s")
#else
+38 -14
View File
@@ -32,6 +32,21 @@ typedef union {
}ALSndpEvent;
/* Unknown Size */
typedef struct unk800DC6BC {
ALPlayer node;
ALEventQueue evtq;
ALEvent nextEvent;
ALSynth *drvr;
u32 unk3C;
unk800DC6BC_40 *unk40;
s32 unk44;
s32 unk48;
s32 frameTime;
ALMicroTime nextDelta;
ALMicroTime curTime;
} unk800DC6BC; //ALSndPlayer
typedef struct unk80119240
{
ALLink node;
@@ -99,20 +114,29 @@ const char D_800E4B80[] = "WARNING: Attempt to stop NULL sound aborted\n";
/************ .bss ************/
extern s32 D_80115F90;
extern ALHeap* D_80115F94;
extern OSThread audioThread;
extern OSMesgQueue OSMesgQueue_80116160;
extern OSMesg D_80116178;
extern OSMesgQueue D_80116198;
extern OSMesg D_801161B0;
extern ALGlobals ALGlobals_801161D0;
extern s32 D_80119230;
extern unk80119240 D_80119240[0x31];
extern s32 D_8011962C;
extern OSMesgQueue D_80119AF0;
extern OSMesg D_80119B08;
extern u16* D_80119C28;
s32 D_80115F90;
ALHeap* D_80115F94;
s32 D_80115F98[2];
s32 D_80115FA0[3];
OSThread audioThread;
OSMesgQueue OSMesgQueue_80116160;
OSMesg D_80116178[8];
OSMesgQueue D_80116198;
OSMesg D_801161B0[8];
ALGlobals ALGlobals_801161D0;
s32 D_80116220[3076];
s32 D_80119230[3];
unk80119240 D_80119240[50];
s32 D_80119628;
s32 D_8011962C;
s32 D_80119630;
s32 D_80119634;
s32 D_80119638[2];
s32 D_80119640[300];
OSMesgQueue D_80119AF0;
OSMesg D_80119B08[72];
u16* D_80119C28;
extern f32 D_80126170;
/******************************/
+22
View File
@@ -14,6 +14,28 @@ s32 D_800DC6D8 = 1; // Currently unknown, might be a different type.
/*******************************/
/************ .bss ************/
s32 D_80119C30[2];
s32 D_80119C38;
s32 D_80119C3C;
s32 D_80119C40;
s32 D_80119C44;
s32 D_80119C48;
s32 D_80119C4C;
s32 D_80119C50[2];
s32 D_80119C58;
s32 D_80119C5C;
s32 D_80119C60[670];
s32 D_8011A6D8;
s32 D_8011A6DC;
s32 D_8011A6E0[334];
s32 D_8011AC18;
s32 D_8011AC1C;
s32 D_8011AC20[64];
/******************************/
GLOBAL_ASM("asm/non_matchings/unknown_005740/func_80004B40.s")
GLOBAL_ASM("asm/non_matchings/unknown_005740/func_800050D0.s")
GLOBAL_ASM("asm/non_matchings/unknown_005740/func_80005254.s")
+11 -9
View File
@@ -116,8 +116,18 @@ class GenerateLD:
self.gen_line('romPos += SIZEOF(.rodata);')
self.gen_newline()
def gen_ucode_data_section(self):
self.gen_line('.ucodeData . : AT(romPos)')
self.gen_open_block()
self.gen_line(BUILD_DIR + '/asm/assets/ucode_data.o(.text);')
self.gen_close_block()
self.gen_line('romPos += SIZEOF(.ucodeData);')
self.gen_newline()
def gen_bss_section(self):
self.gen_line('.bss.noload (NOLOAD):')
self.gen_line('__BSS_SECTION_SIZE = SIZEOF(.bss.noload);')
self.gen_newline()
self.gen_line('.bss.noload . (NOLOAD): SUBALIGN(4)')
self.gen_open_block()
for file in self.files:
if file[0] not in LATE_DATA_FILES:
@@ -127,14 +137,6 @@ class GenerateLD:
self.gen_close_block()
self.gen_newline()
def gen_ucode_data_section(self):
self.gen_line('.ucodeData . : AT(romPos)')
self.gen_open_block()
self.gen_line(BUILD_DIR + '/asm/assets/ucode_data.o(.text);')
self.gen_close_block()
self.gen_line('romPos += SIZEOF(.ucodeData);')
self.gen_newline()
def gen_assets_section(self):
self.gen_line('__ASSETS_LUT_START = romPos;');
self.gen_line('__ASSETS_LUT_END = __ASSETS_LUT_START + ' + hex((((self.assets.numAssets + 2) * 4) + 15) & 0xFFFFFFF0) + ';');
+52 -2
View File
@@ -1,5 +1,6 @@
import subprocess
import sys
import re
import subprocess
import argparse
@@ -55,6 +56,55 @@ def fixDoubleLoads():
i += 1
save_syms(syms)
#fixBadLabel()
fixDoubleLoads()
def getMatches(string, regex):
out = []
matches = re.finditer(regex, string, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
start = match.start()
end = match.end()
out.append((string[start:end], match.groups(), (start, end)))
return out
FILE_REGEX = r"(?:lib/)?(?:(?:src/)|(?:asm/non_matchings/))([^/.]*)"
def getFiles(symbol):
command = subprocess.run(['fgrep', '-ri', symbol], capture_output=True)
outLines = command.stdout.decode("utf-8").split('\n')
fileNames = []
for outLine in outLines:
if 'src' in outLine or 'asm' in outLine:
match = getMatches(outLine, FILE_REGEX)[0][1][0]
if match not in fileNames:
fileNames.append(match)
return fileNames
def getBss():
currentFile = ''
out = []
syms = load_syms()
for sym in syms:
if ' = ' in sym:
symSplit = sym.split(' = ')
symbol = symSplit[0]
address = int(symSplit[1][2:-1], 16)
if address >= 0x80115CE8 and address <= 0x8012D3F0:
try:
files = getFiles(symbol)
if currentFile not in files:
if len(files) == 1:
if currentFile != '':
out.append('\n')
currentFile = files[0]
out.append(currentFile)
else:
print(symbol, files, 'Cannot tell which file to use!')
except IndexError:
print('Error with symbol: ' + symbol)
out.append(sym)
with open('bss.txt', 'w') as outFile:
outFile.write('\n'.join(out))
fixBadLabel()
#fixDoubleLoads()
#getBss()
+73 -72
View File
@@ -25,78 +25,79 @@ osAppNMIBuffer = 0x8000031C;
D_800E0001 = 0x800E0001;
eqpower = 0x800E37A0;
gALHeap = 0x80115CE8;
ALSeqFile_80115CF8 = 0x80115CF8;
D_80115CFC = 0x80115CFC;
D_80115D00 = 0x80115D00;
D_80115D04 = 0x80115D04;
D_80115D05 = 0x80115D05;
musicTempo = 0x80115D08;
D_80115D0C = 0x80115D0C;
ALBankFile_80115D10 = 0x80115D10;
ALBankFile_80115D14 = 0x80115D14;
D_80115D18 = 0x80115D18;
D_80115D1C = 0x80115D1C;
D_80115D20 = 0x80115D20;
D_80115D24 = 0x80115D24;
D_80115D28 = 0x80115D28;
D_80115D2C = 0x80115D2C;
D_80115D30 = 0x80115D30;
D_80115D34 = 0x80115D34;
D_80115D38 = 0x80115D38;
D_80115D3C = 0x80115D3C;
D_80115D40 = 0x80115D40;
D_80115D41 = 0x80115D41;
D_80115D48 = 0x80115D48;
D_80115D88 = 0x80115D88;
D_80115E80 = 0x80115E80;
D_80115F78 = 0x80115F78;
D_80115F79 = 0x80115F79;
D_80115F7C = 0x80115F7C;
D_80115F80 = 0x80115F80;
D_80115F84 = 0x80115F84;
D_80115F88 = 0x80115F88;
D_80115F90 = 0x80115F90;
D_80115F94 = 0x80115F94;
D_80115F98 = 0x80115F98;
D_80115FA0 = 0x80115FA0;
D_80115FA4 = 0x80115FA4;
audioThread = 0x80115FB0;
OSMesgQueue_80116160 = 0x80116160;
D_80116178 = 0x80116178;
D_80116198 = 0x80116198;
D_801161B0 = 0x801161B0;
ALGlobals_801161D0 = 0x801161D0;
D_80116220 = 0x80116220;
D_80119230 = 0x80119230;
D_80119240 = 0x80119240;
D_80119254 = 0x80119254;
D_80119628 = 0x80119628;
D_8011962C = 0x8011962C;
D_80119630 = 0x80119630;
D_80119634 = 0x80119634;
D_80119638 = 0x80119638;
D_80119640 = 0x80119640;
D_80119AF0 = 0x80119AF0;
D_80119B08 = 0x80119B08;
D_80119C28 = 0x80119C28;
D_80119C30 = 0x80119C30;
D_80119C38 = 0x80119C38;
D_80119C3C = 0x80119C3C;
D_80119C40 = 0x80119C40;
D_80119C44 = 0x80119C44;
D_80119C48 = 0x80119C48;
D_80119C4C = 0x80119C4C;
D_80119C50 = 0x80119C50;
D_80119C58 = 0x80119C58;
D_80119C5C = 0x80119C5C;
D_80119C60 = 0x80119C60;
D_8011A6D8 = 0x8011A6D8;
D_8011A6DC = 0x8011A6DC;
D_8011A6E0 = 0x8011A6E0;
D_8011AC18 = 0x8011AC18;
D_8011AC1C = 0x8011AC1C;
D_8011AC20 = 0x8011AC20;
/gALHeap = 0x80115CE8;
/ALSeqFile_80115CF8 = 0x80115CF8;
/D_80115CFC = 0x80115CFC;
/D_80115D00 = 0x80115D00;
/D_80115D04 = 0x80115D04;
/D_80115D05 = 0x80115D05;
/musicTempo = 0x80115D08;
/D_80115D0C = 0x80115D0C;
/ALBankFile_80115D10 = 0x80115D10;
/ALBankFile_80115D14 = 0x80115D14;
/D_80115D18 = 0x80115D18;
/D_80115D1C = 0x80115D1C;
/D_80115D20 = 0x80115D20;
/D_80115D24 = 0x80115D24;
/D_80115D28 = 0x80115D28;
/D_80115D2C = 0x80115D2C;
/D_80115D30 = 0x80115D30;
/D_80115D34 = 0x80115D34;
/D_80115D38 = 0x80115D38;
/D_80115D3C = 0x80115D3C;
/D_80115D40 = 0x80115D40;
/D_80115D41 = 0x80115D41;
/D_80115D48 = 0x80115D48;
/D_80115D88 = 0x80115D88;
/D_80115E80 = 0x80115E80;
/D_80115F78 = 0x80115F78;
/D_80115F79 = 0x80115F79;
/D_80115F7C = 0x80115F7C;
/D_80115F80 = 0x80115F80;
/D_80115F84 = 0x80115F84;
/D_80115F88 = 0x80115F88;
/D_80115F90 = 0x80115F90;
/D_80115F94 = 0x80115F94;
/D_80115F98 = 0x80115F98;
/D_80115FA0 = 0x80115FA0;
/audioThread = 0x80115FB0;
/OSMesgQueue_80116160 = 0x80116160;
/D_80116178 = 0x80116178;
/D_80116198 = 0x80116198;
/D_801161B0 = 0x801161B0;
/ALGlobals_801161D0 = 0x801161D0;
/D_80116220 = 0x80116220;
/D_80119230 = 0x80119230;
/D_80119240 = 0x80119240;
/D_80119628 = 0x80119628;
/D_8011962C = 0x8011962C;
/D_80119630 = 0x80119630;
/D_80119634 = 0x80119634;
/D_80119638 = 0x80119638;
/D_80119640 = 0x80119640;
/D_80119AF0 = 0x80119AF0;
/D_80119B08 = 0x80119B08;
/D_80119C28 = 0x80119C28;
/D_80119C30 = 0x80119C30;
/D_80119C38 = 0x80119C38;
/D_80119C3C = 0x80119C3C;
/D_80119C40 = 0x80119C40;
/D_80119C44 = 0x80119C44;
/D_80119C48 = 0x80119C48;
/D_80119C4C = 0x80119C4C;
/D_80119C50 = 0x80119C50;
/D_80119C58 = 0x80119C58;
/D_80119C5C = 0x80119C5C;
/D_80119C60 = 0x80119C60;
/D_8011A6D8 = 0x8011A6D8;
/D_8011A6DC = 0x8011A6DC;
/D_8011A6E0 = 0x8011A6E0;
/D_8011AC18 = 0x8011AC18;
/D_8011AC1C = 0x8011AC1C;
/D_8011AC20 = 0x8011AC20;
D_8011AD20 = 0x8011AD20;
D_8011AD21 = 0x8011AD21;
D_8011AD22 = 0x8011AD22;