mirror of
https://github.com/doldecomp/melee.git
synced 2024-11-26 23:00:28 +00:00
Clean up debug.c
nonsense (#1063)
This commit is contained in:
parent
e15469f056
commit
401969f0c4
@ -22,17 +22,10 @@ extabindex_ ALIGN(0x20):{}
|
||||
.sbss2 ALIGN(0x20):{}
|
||||
.stack ALIGN(0x100):{}
|
||||
} > text
|
||||
_stack_addr = (_f_sbss2 + SIZEOF(.sbss2) + 65536 + 0x7) & ~0x7;
|
||||
_stack_addr = (_f_sbss2 + SIZEOF(.sbss2) + 0x10000 + 0x7) & ~0x7;
|
||||
_stack_end = _f_sbss2 + SIZEOF(.sbss2);
|
||||
_db_stack_addr = (_stack_addr + 0x2000);
|
||||
_db_stack_end = _stack_addr;
|
||||
__ArenaLo = (_db_stack_addr + 0x1f) & ~0x1f;
|
||||
__ArenaHi = 0x81700000 ;
|
||||
}
|
||||
|
||||
/* #pragma force_active on is NOT working for this symbol for some reason. So the linker
|
||||
* gets to have a crowbar in its face to stop this symbol from being stripped. Don't you
|
||||
* just love Metrowerks bugs? */
|
||||
FORCEACTIVE {
|
||||
HSD_Debug_804C28D0
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "debug.h"
|
||||
|
||||
#include "synth.h"
|
||||
|
||||
#include <dolphin/os.h>
|
||||
#include <dolphin/os/OSContext.h>
|
||||
#include <baselib/debug.h>
|
||||
|
||||
struct UnkStruct80400430 {
|
||||
char filler0[0x52];
|
||||
@ -9,43 +12,15 @@ struct UnkStruct80400430 {
|
||||
int (*unk84)(s32, s32, s32*, s32);
|
||||
};
|
||||
|
||||
extern void (*HSD_Synth_804D7710)(s32, s32);
|
||||
extern void (*HSD_Synth_804D7714)(OSContext*, ...);
|
||||
extern int (*HSD_Synth_804D7718)(s32, s32, s32*, s32);
|
||||
|
||||
extern struct UnkStruct80400430 __files;
|
||||
|
||||
OSContext HSD_Debug_804C2608;
|
||||
struct DebugContext {
|
||||
OSContext context;
|
||||
u8 unk[0x10];
|
||||
} HSD_Debug_804C2608;
|
||||
|
||||
#ifdef MUST_MATCH
|
||||
/*
|
||||
* Unused symbol probably used by the myStrippedFunction below, but since it
|
||||
* got stripped there's no telling what it was for.
|
||||
*
|
||||
* Regarding the pragma, normally this works, but in this case the Metrowerks
|
||||
* toolchain is out for fuckin' blood or something. See the FORCEACTIVE section
|
||||
* we had to add in the LCF just to get the compiler to stop removing this.
|
||||
*/
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
extern char HSD_Debug_804C28D0[0x10];
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
char HSD_Debug_804C28D0[0x10]; // unk space. what is this?
|
||||
|
||||
static char HSD_Debug_804D6010[1] = "";
|
||||
|
||||
#ifdef MUST_MATCH
|
||||
// required stripped asm function to get the peephole off behavior in early
|
||||
// CW versions to occur.
|
||||
static void asm myStrippedFunction()
|
||||
{ // clang-format off
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
} // clang-format on
|
||||
#pragma peephole off
|
||||
#endif
|
||||
|
||||
int HSD_Debug_8038815C(s32 arg0, s32 arg1, s32* arg2, s32 arg3)
|
||||
@ -69,15 +44,15 @@ void HSD_Debug_803881E4(void)
|
||||
void __assert(char* str, u32 arg1, char* arg2)
|
||||
{
|
||||
OSReport("assertion \"%s\" failed", arg2);
|
||||
HSD_Panic(str, arg1, HSD_Debug_804D6010);
|
||||
HSD_Panic(str, arg1, "");
|
||||
}
|
||||
|
||||
void HSD_Panic(char* arg0, u32 line, char* arg2)
|
||||
{
|
||||
if (HSD_Synth_804D7714 != NULL) {
|
||||
OSSaveContext(&HSD_Debug_804C2608);
|
||||
OSSaveContext(&HSD_Debug_804C2608.context);
|
||||
OSReport("%s in %s on line %d.\n", arg2, arg0, line);
|
||||
HSD_Synth_804D7714(&HSD_Debug_804C2608);
|
||||
HSD_Synth_804D7714(&HSD_Debug_804C2608.context);
|
||||
}
|
||||
OSPanic(arg0, line, arg2);
|
||||
}
|
||||
|
@ -1,4 +1,10 @@
|
||||
#ifndef SYSDOLPHIN_BASELIB_SYNTH_H
|
||||
#define SYSDOLPHIN_BASELIB_SYNTH_H
|
||||
|
||||
#include <dolphin/os.h>
|
||||
|
||||
extern void (*HSD_Synth_804D7710)(s32, s32);
|
||||
extern void (*HSD_Synth_804D7714)(OSContext*, ...);
|
||||
extern int (*HSD_Synth_804D7718)(s32, s32, s32*, s32);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user