From c1863a2e37e2e7ec64c3b1d32b45f2dc14e495f2 Mon Sep 17 00:00:00 2001 From: Prakxo Date: Thu, 16 Feb 2023 11:56:47 +0000 Subject: [PATCH] work on jaudio --- common.py | 5 +++++ config/dol_slices.yml | 9 +++++++-- config/rel_slices.yml | 12 ++++++------ configure.py | 5 +++-- include/jaudio_NES/aramcall.h | 6 ++++++ include/jaudio_NES/audiothread.h | 10 ++++++++++ include/jaudio_NES/cmdstack.h | 8 ++++++++ include/jaudio_NES/connect.h | 8 ++++++++ include/jaudio_NES/dummyprobe.h | 11 +++++++++++ include/jaudio_NES/jammain.h | 10 ++++++++++ include/jaudio_NES/seqsetup.h | 8 ++++++++ include/jaudio_NES/verysimple.h | 9 +++++++++ include/libultra/libultra.h | 5 +++-- include/zurumode.h | 1 - rel/zurumode/zerucheck_init.c | 2 +- rel/zurumode/zerucheck_key_check.c | 1 + rel/zurumode/zurumode_cleanup.c | 2 +- rel/zurumode/zurumode_init.c | 2 +- rel/zurumode/zurumode_update.c | 2 +- src/jaudio_NES/dummyprobe.c | 9 +++++++++ src/jaudio_NES/emusound.c | 2 ++ src/jaudio_NES/melody.c | 1 + src/jaudio_NES/verysimple.c | 19 +++++++++++++++++++ 23 files changed, 130 insertions(+), 17 deletions(-) create mode 100644 include/jaudio_NES/aramcall.h create mode 100644 include/jaudio_NES/audiothread.h create mode 100644 include/jaudio_NES/cmdstack.h create mode 100644 include/jaudio_NES/connect.h create mode 100644 include/jaudio_NES/dummyprobe.h create mode 100644 include/jaudio_NES/jammain.h create mode 100644 include/jaudio_NES/seqsetup.h create mode 100644 include/jaudio_NES/verysimple.h create mode 100644 src/jaudio_NES/dummyprobe.c create mode 100644 src/jaudio_NES/emusound.c create mode 100644 src/jaudio_NES/melody.c create mode 100644 src/jaudio_NES/verysimple.c diff --git a/common.py b/common.py index 4e29ef39..383582fd 100644 --- a/common.py +++ b/common.py @@ -297,6 +297,10 @@ REL_SDATA2_SIZE = 0 CFLAGS = [ "-O4", ] +CPLFLAGS =[ + "-lang=c++", + "-O0" +] BASE_DOL_CFLAGS = CFLAGS + [ "-inline all", "-sdata 4", @@ -332,6 +336,7 @@ ALIGN16_CFLAG = [ DOL_CFLAGS = ' '.join(BASE_DOL_CFLAGS + LOCAL_CFLAGS) SDK_FLAGS = ' '.join(SDK_CFLAG + LOCAL_CFLAGS) ALIGN16 = ' '.join(BASE_DOL_CFLAGS + LOCAL_CFLAGS + ALIGN16_CFLAG) +DOL_CPPFLAGS = ' '.join(CPLFLAGS + BASE_DOL_CFLAGS + LOCAL_CFLAGS) REL_CFLAGS = ' '.join(BASE_REL_CFLAGS + LOCAL_CFLAGS) EXTERNAL_DOL_CFLAGS = ' '.join(BASE_DOL_CFLAGS) EXTERNAL_REL_CFLAGS = ' '.join(BASE_REL_CFLAGS) diff --git a/config/dol_slices.yml b/config/dol_slices.yml index c4483733..2e1c13fa 100644 --- a/config/dol_slices.yml +++ b/config/dol_slices.yml @@ -22,7 +22,7 @@ dolphin/OS/OSRestoreInterrupts.c: MSL_C/rand.c: .text: [0x8009f46c, 0x8009f494] .sdata: [0x80218260, 0x80218268] -#libultra/ultra.c: +#libultra/ultra.c: won't link # .text: [0x8005d01c, 0x8005d15c] # .bss: [0x80206f60, 0x80206fa0] libultra/gu/sins.c: @@ -33,4 +33,9 @@ dolphin/odenotstub/odenotstub.c: dolphin/amcstubs/AmcExi2Stubs.c: .text: [0x800a8cc0, 0x800a8cf0] dolphin/gx/GXStubs.c: - .text: [0x800998d4, 0x800998d8] \ No newline at end of file + .text: [0x800998d4, 0x800998d8] +jaudio_NES/dummyprobe.c: + .text: [0x800083f8, 0x80008400] +#jaudio_NES/verysimple.c: +# .text: [0x80008400, 0x80008480] +# .sdata: [0x80217b80, 0x80217b88] \ No newline at end of file diff --git a/config/rel_slices.yml b/config/rel_slices.yml index 3c324ff4..7ddc0392 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -1,11 +1,11 @@ # ac_aprilfool_control/aPC_actor_dt.c: common_data is pure bs, # .text: [0x805153f0, 0x8051542C] -zurumode/zerucheck_init.c: - .text: [0x8040eb38, 0x8040EB50] -zurumode/zerucheck_key_check.c: - .text: [0x8040EB50, 0x8040EDA8] -zurumode/zurumode_cleanup.c: - .text: [0x8040efc4, 0x8040f008] +#zurumode/zerucheck_init.c: +# .text: [0x8040eb38, 0x8040EB50] +#zurumode/zerucheck_key_check.c: +# .text: [0x8040EB50, 0x8040EDA8] +#zurumode/zurumode_cleanup.c: +# .text: [0x8040efc4, 0x8040f008] # zurumode/zurumode_init.c: # .text: [0x8040ef58, 0x8040efc4] # .bss: [0x812f9670, 0x812f9680] diff --git a/configure.py b/configure.py index 754a7d8e..c96b5b34 100644 --- a/configure.py +++ b/configure.py @@ -97,6 +97,7 @@ n.newline() n.variable("asflags", c.ASFLAGS) n.variable("ldflags", c.LDFLAGS) n.variable("cppflags", c.CPPFLAGS) +n.variable("cplflags", c.CPLFLAGS) n.variable("ppcdis_analysis_flags", c.PPCDIS_ANALYSIS_FLAGS) n.newline() @@ -576,9 +577,9 @@ class CSource(Source): if path.startswith("src/dolphin/"): self.cflags = c.SDK_FLAGS self.cc = c.OCC - elif path.startswith("src/odenotstub"): + elif path.startswith("src/jaudio_NES"): self.cc = c.CC - self.cflags = c.ALIGN16 + self.cflags = c.DOL_CPPFLAGS else: self.cflags = ctx.cflags self.cc = c.CC diff --git a/include/jaudio_NES/aramcall.h b/include/jaudio_NES/aramcall.h new file mode 100644 index 00000000..654327a7 --- /dev/null +++ b/include/jaudio_NES/aramcall.h @@ -0,0 +1,6 @@ +#ifndef ARAMCALL_H +#define ARAMCALL_H +#include "types.h" +void Jac_WaveDirectorySet(char*); + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/audiothread.h b/include/jaudio_NES/audiothread.h new file mode 100644 index 00000000..afdbf0c5 --- /dev/null +++ b/include/jaudio_NES/audiothread.h @@ -0,0 +1,10 @@ +#ifndef AUDIOTHREAD_H +#define AUDIOTHREAD_H + + #include "types.h" + + extern "C"{ + void StartAudioThread(void*, u32, u32, u32); + } + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/cmdstack.h b/include/jaudio_NES/cmdstack.h new file mode 100644 index 00000000..f61614ee --- /dev/null +++ b/include/jaudio_NES/cmdstack.h @@ -0,0 +1,8 @@ +#ifndef CMDSTACK_H +#define CMDSTACK_H +#include "types.h" +extern "C"{ + void Jac_Portcmd_Init(void); +} + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/connect.h b/include/jaudio_NES/connect.h new file mode 100644 index 00000000..f21dab95 --- /dev/null +++ b/include/jaudio_NES/connect.h @@ -0,0 +1,8 @@ +#ifndef CONNECT_H +#define CONNECT_H + +#include "types.h" + +void Jac_ConnectTableInit(void); + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/dummyprobe.h b/include/jaudio_NES/dummyprobe.h new file mode 100644 index 00000000..95cb07b8 --- /dev/null +++ b/include/jaudio_NES/dummyprobe.h @@ -0,0 +1,11 @@ +#ifndef DUMMYPROBE_H +#define DUMMYPROBE_H + +#include "types.h" + +extern "C"{ + void Probe_Start(void); + void Probe_Finish(void); +} + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/jammain.h b/include/jaudio_NES/jammain.h new file mode 100644 index 00000000..5b17886a --- /dev/null +++ b/include/jaudio_NES/jammain.h @@ -0,0 +1,10 @@ +#ifndef JAMMAIN_H +#define JAMMAIN_H + +#include "types.h" + +extern "C"{ + void Jam_InitRegistTrack(void); +} + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/seqsetup.h b/include/jaudio_NES/seqsetup.h new file mode 100644 index 00000000..22ce9806 --- /dev/null +++ b/include/jaudio_NES/seqsetup.h @@ -0,0 +1,8 @@ +#ifndef SEQSETUP_H +#define SEQSETUP_H +#include "types.h" +extern "C"{ + void Jaq_Reset(void); +} + +#endif \ No newline at end of file diff --git a/include/jaudio_NES/verysimple.h b/include/jaudio_NES/verysimple.h new file mode 100644 index 00000000..46af9b0f --- /dev/null +++ b/include/jaudio_NES/verysimple.h @@ -0,0 +1,9 @@ +#ifndef VERYSIMPLE_H +#define VERYSIMPLE_H +#include "types.h" + +void Jac_Start(void*, u32, u32); +void Jac_PlayInit(void); + + +#endif diff --git a/include/libultra/libultra.h b/include/libultra/libultra.h index 3bf1e12a..2bafaea3 100644 --- a/include/libultra/libultra.h +++ b/include/libultra/libultra.h @@ -1,5 +1,6 @@ #ifndef LIBULTRA_H #define LIBULTRA_H + #include "types.h" #include "dolphin/OS/OSTime.h" #include "dolphin/OS/OSCache.h" @@ -12,6 +13,6 @@ void osWritebackDCache(void* vaddr, u32 nbytes); u32 osGetCount(void); OSTime osGetTime(void); -extern s32 osAppNMIBuffer[15]; +s32 osAppNMIBuffer[15]; -#endif \ No newline at end of file +#endif \ No newline at end of file diff --git a/include/zurumode.h b/include/zurumode.h index e2a8dd10..96da9d3f 100644 --- a/include/zurumode.h +++ b/include/zurumode.h @@ -4,7 +4,6 @@ #include "types.h" #include "dolphin/OS/os.h" -#include "libultra/libultra.h" //#include "JSystem/JUT/JUTAssertion.h" //#include "JSystem/JUT/JUTDbPrint.h" diff --git a/rel/zurumode/zerucheck_init.c b/rel/zurumode/zerucheck_init.c index a118b845..14379e41 100644 --- a/rel/zurumode/zerucheck_init.c +++ b/rel/zurumode/zerucheck_init.c @@ -1,5 +1,5 @@ #include "zurumode.h" - +#include "libultra/libultra.h" int zerucheck_init(zuru_keycheck* key_check) { key_check->zurumode_enabled = FALSE; key_check->state = ZURUMODE_STAGE_BEGIN_e; diff --git a/rel/zurumode/zerucheck_key_check.c b/rel/zurumode/zerucheck_key_check.c index f21f06bc..eb88c8fb 100644 --- a/rel/zurumode/zerucheck_key_check.c +++ b/rel/zurumode/zerucheck_key_check.c @@ -1,4 +1,5 @@ #include "zurumode.h" +#include "libultra/libultra.h" /** * @brief Checks that the current controller state is correct diff --git a/rel/zurumode/zurumode_cleanup.c b/rel/zurumode/zurumode_cleanup.c index 3c213677..e6fda217 100644 --- a/rel/zurumode/zurumode_cleanup.c +++ b/rel/zurumode/zurumode_cleanup.c @@ -1,5 +1,5 @@ #include "zurumode.h" - +#include "libultra/libultra.h" void zurumode_cleanup(void) { // Hm, this looks like PADMGR_UNSET_RETRACE_CALLBACK macro lol if ((padmgr_class.callback2 == &zurumode_callback) && (padmgr_class.callback2_param == &padmgr_class)) { padmgr_class.callback2 = NULL; diff --git a/rel/zurumode/zurumode_init.c b/rel/zurumode/zurumode_init.c index 1ef8cd96..0fd510d6 100644 --- a/rel/zurumode/zurumode_init.c +++ b/rel/zurumode/zurumode_init.c @@ -1,5 +1,5 @@ #include "zurumode.h" - +#include "libultra/libultra.h" void zurumode_init(void){ zurumode_flag = 0; zerucheck_init(&zuruKeyCheck); diff --git a/rel/zurumode/zurumode_update.c b/rel/zurumode/zurumode_update.c index b81a1836..127e6a4f 100644 --- a/rel/zurumode/zurumode_update.c +++ b/rel/zurumode/zurumode_update.c @@ -1,5 +1,5 @@ #include "zurumode.h" - +#include "libultra/libultra.h" s32 zurumode_update() { s32 flag_now; s32 zurumode_now; diff --git a/src/jaudio_NES/dummyprobe.c b/src/jaudio_NES/dummyprobe.c new file mode 100644 index 00000000..1308e37e --- /dev/null +++ b/src/jaudio_NES/dummyprobe.c @@ -0,0 +1,9 @@ +#include "jaudio_NES/dummyprobe.h" + +void Probe_Start(void){ + +} + +void Probe_Finish(void){ + +} \ No newline at end of file diff --git a/src/jaudio_NES/emusound.c b/src/jaudio_NES/emusound.c new file mode 100644 index 00000000..24695560 --- /dev/null +++ b/src/jaudio_NES/emusound.c @@ -0,0 +1,2 @@ +#include "emusound.h" + diff --git a/src/jaudio_NES/melody.c b/src/jaudio_NES/melody.c new file mode 100644 index 00000000..7a0cfc96 --- /dev/null +++ b/src/jaudio_NES/melody.c @@ -0,0 +1 @@ +#include "melody.h" \ No newline at end of file diff --git a/src/jaudio_NES/verysimple.c b/src/jaudio_NES/verysimple.c new file mode 100644 index 00000000..f3d15873 --- /dev/null +++ b/src/jaudio_NES/verysimple.c @@ -0,0 +1,19 @@ +#include "jaudio_NES/verysimple.h" +#include "jaudio_NES/audiothread.h" +#include "jaudio_NES/aramcall.h" +#include "jaudio_NES/cmdstack.h" +#include "jaudio_NES/seqsetup.h" +#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); + Jac_WaveDirectorySet("/"); + Jac_PlayInit(); + Jac_Portcmd_Init(); +} +void Jac_PlayInit(void) { // funcalign? + Jaq_Reset(); + Jac_ConnectTableInit(); + Jam_InitRegistTrack(); +}