diff --git a/common.py b/common.py index b98479a5..9d79de6e 100644 --- a/common.py +++ b/common.py @@ -452,6 +452,16 @@ JAUDIO_FUNC_ALIGN_32 = [ "-str readonly", "-inline off" ] +JAUDIO_USER = [ + "-O0", + "-char unsigned", + "-fp hard", + "-lang=c++", + "-sdata 8", + "-sdata2 8", + "-enum int", + "-common on" +] JSYSTEM_CFLAGS = ' '.join(JSYSTEM_BASE + LOCAL_CFLAGS) JSYSTEM_JGADGET_CFLAGS = ' '.join(JSYSTEM_JGADGET_BASE + LOCAL_CFLAGS) @@ -470,6 +480,7 @@ PREPROCESS_CFLAGS = ' '.join(PREPROCESSOR_CFLAGS) FAMICOM_CLFAGS = ' '.join(FAMICOM_BASE + LOCAL_CFLAGS) JAUDIO_CFLAGS = ' '.join(JAUDIO_BASE + LOCAL_CFLAGS) JAUDIO_FUNC_ALIGN_32_CFLAGS = ' '.join(JAUDIO_BASE + JAUDIO_FUNC_ALIGN_32 + LOCAL_CFLAGS) +JAUDIO_USER_CFLAGS = ' '.join(JAUDIO_USER + LOCAL_CFLAGS) DOL_LDFLAGS = ' '.join([ "-maxerrors 1", diff --git a/config/disasm_overrides.yml b/config/disasm_overrides.yml index 0a450474..c44ba20b 100644 --- a/config/disasm_overrides.yml +++ b/config/disasm_overrides.yml @@ -1,6 +1,7 @@ trim_ctors: true symbol_aligns: + 0x80008480: 32 0x80018920: 32 0x800190e0: 32 0x80019380: 32 diff --git a/config/dol_slices.yml b/config/dol_slices.yml index c4a73685..059e27a6 100644 --- a/config/dol_slices.yml +++ b/config/dol_slices.yml @@ -32,6 +32,11 @@ jaudio_NES/dummyprobe.c: .text: [0x800083f8, 0x80008400] jaudio_NES/audioheaders.c: .data: [0x800cca40, 0x800ce880] +jaudio_NES/verysimple.c: + .text: [0x80008400, 0x80008480] + .sdata: [0x80217b80, 0x80217b88] +# jaudio_NES/game64.c: # TODO: finish +# .rodata: [0x800a9938, 0x800a9b98] jaudio_NES/aictrl.c: .text: [0x80017e80, 0x80018640] .rodata: [0x800aa500, 0x800aa518] @@ -57,11 +62,6 @@ jaudio_NES/neosthread.c: .bss: [0x80180020, 0x80186440] .sdata: [0x80217be0, 0x80217be8] .sbss: [0x80218460, 0x80218478] -# jaudio_NES/game64.c: # TODO: finish -# .rodata: [0x800a9938, 0x800a9b98] -#jaudio_NES/verysimple.c: -# .text: [0x80008400, 0x80008480] -# .sdata: [0x80217b80, 0x80217b88] Famicom/famicom.cpp: .text: [0x80041614, 0x80046888] # TODO: get ~J2DOrthoGraph's dtor in here somehow? 0x800468fc, also add in JUTGamePad::getPortStatus when JUTGamePad is linked? .rodata: [0x800aa9a8, 0x800aaa30] diff --git a/configure.py b/configure.py index 74631980..ea52a201 100644 --- a/configure.py +++ b/configure.py @@ -632,6 +632,10 @@ JAUDIO_FUNC_ALIGN_32_TUS = [ "neosthread.c" ] +JAUDIO_USER_TUS = [ + "verysimple.c" +] + class CSource(Source): def __init__(self, ctx: c.SourceContext, path: str): if path.startswith("src/static/dolphin/"): @@ -640,6 +644,8 @@ class CSource(Source): elif path.startswith("src/static/jaudio_NES/"): if os.path.basename(path) in JAUDIO_FUNC_ALIGN_32_TUS: self.cflags = c.JAUDIO_FUNC_ALIGN_32_CFLAGS + elif os.path.basename(path) in JAUDIO_USER_TUS: + self.cflags = c.JAUDIO_USER_CFLAGS else: self.cflags = c.JAUDIO_CFLAGS self.cc = c.CC diff --git a/src/static/jaudio_NES/verysimple.c b/src/static/jaudio_NES/verysimple.c index f3d15873..f293e0a6 100644 --- a/src/static/jaudio_NES/verysimple.c +++ b/src/static/jaudio_NES/verysimple.c @@ -6,13 +6,14 @@ #include "jaudio_NES/connect.h" #include "jaudio_NES/jammain.h" -void Jac_Start(void *heap, u32 heap_size, u32 aram_size) { - StartAudioThread(heap,heap_size, aram_size, 7); +extern void Jac_Start(void* heap, u32 heap_size, u32 aram_size) { + StartAudioThread(heap, heap_size, aram_size, 7); Jac_WaveDirectorySet("/"); Jac_PlayInit(); Jac_Portcmd_Init(); } -void Jac_PlayInit(void) { // funcalign? + +extern void Jac_PlayInit(void) { Jaq_Reset(); Jac_ConnectTableInit(); Jam_InitRegistTrack();