From eb11f9c23f4b94e33716ea1442d891adc905b5fb Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sat, 15 Mar 2025 08:36:13 -0400 Subject: [PATCH] name audio.c, board/audio.c, board/basic_space, match files (#571) * name audio.c and board/audio.c * fix audio, complete board/basic_space, battle * revert changes that broke build * completely finish New and NewMore.cp, for some reason NewMore fails checksum * finally match NewMore.cp --- configure.py | 10 +++------- include/PowerPC_EABI_Support/Runtime/New.h | 1 + include/game/audio.h | 2 +- src/Runtime.PPCEABI.H/New.cp | 8 ++++++++ src/Runtime.PPCEABI.H/NewMore.cp | 15 +++++++++++++++ src/game/audio.c | 10 +++++----- src/game/board/basic_space.c | 18 +++++++++--------- 7 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 include/PowerPC_EABI_Support/Runtime/New.h create mode 100644 src/Runtime.PPCEABI.H/New.cp create mode 100644 src/Runtime.PPCEABI.H/NewMore.cp diff --git a/configure.py b/configure.py index 513b0305..f861ee4b 100644 --- a/configure.py +++ b/configure.py @@ -669,16 +669,12 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__va_arg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/global_destructor_chain.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), - Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), - Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/New.cp", extra_cflags=["-Cpp_exceptions on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NewMore.cp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cpp"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), - Object( - NonMatching, - "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", - extra_cflags=["-Cpp_exceptions on"] - ), + Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", extra_cflags=["-Cpp_exceptions on"]), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], }, diff --git a/include/PowerPC_EABI_Support/Runtime/New.h b/include/PowerPC_EABI_Support/Runtime/New.h new file mode 100644 index 00000000..1ae725b4 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/New.h @@ -0,0 +1 @@ +void operator delete(void* arg0); diff --git a/include/game/audio.h b/include/game/audio.h index f5ca39f0..3846ea73 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -53,7 +53,7 @@ void HuAudSStreamAllFadeOut(s32 speed); void HuAudSStreamAllStop(void); s32 HuAudSStreamStatGet(s32 seNo); void HuAudDllSndGrpSet(u16 ovl); -void HuAudSndGrpSetSet(s16 data_size); +void HuAudSndGrpSetSet(s16 dataSize); void HuAudSndGrpSet(s16 grpId); void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck); void HuAudAUXSet(s32 auxA, s32 auxB); diff --git a/src/Runtime.PPCEABI.H/New.cp b/src/Runtime.PPCEABI.H/New.cp new file mode 100644 index 00000000..c92b6c29 --- /dev/null +++ b/src/Runtime.PPCEABI.H/New.cp @@ -0,0 +1,8 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h" +#include "PowerPC_EABI_Support/Runtime/New.h" + +void operator delete(void* arg0) throw() { + if (arg0 != 0) { + free(arg0); + } +} diff --git a/src/Runtime.PPCEABI.H/NewMore.cp b/src/Runtime.PPCEABI.H/NewMore.cp new file mode 100644 index 00000000..c2ed6fe8 --- /dev/null +++ b/src/Runtime.PPCEABI.H/NewMore.cp @@ -0,0 +1,15 @@ +#include "PowerPC_EABI_Support/Runtime/New.h" + +namespace std { + class exception { + public: + virtual ~exception(); + virtual const char *what() const; + }; +} + +const char *std::exception::what() const { + return "exception"; +}; + +std::exception::~exception() {}; diff --git a/src/game/audio.c b/src/game/audio.c index 83f5f259..92794f6c 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -475,13 +475,13 @@ void HuAudDllSndGrpSet(u16 ovl) { } } -void HuAudSndGrpSetSet(s16 data_size) { +void HuAudSndGrpSetSet(s16 dataSize) { void *buf; OSTick osTick; s32 numPlay; s32 err; - if (sndGroupBak != data_size) { + if (sndGroupBak != dataSize) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); osTick = OSGetTick(); @@ -492,11 +492,11 @@ void HuAudSndGrpSetSet(s16 data_size) { numPlay = msmSeGetNumPlay(1); OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), numPlay); } - OSReport("GroupSet %d\n", data_size); - sndGroupBak = data_size; + OSReport("GroupSet %d\n", dataSize); + sndGroupBak = dataSize; err = msmSysDelGroupAll(); buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); - err = msmSysLoadGroupSet(data_size, buf); + err = msmSysLoadGroupSet(dataSize, buf);\ OSReport("***********GroupSet Error %d\n", err); HuMemDirectFree(buf); } diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index d7624381..abce562c 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -374,7 +374,7 @@ static void CoinChgSeparate(omObjData *object, coinChg *coin_chg) { } static void CoinChgShow(omObjData* object, coinChg* coin_chg) { - Vec sp8; + Vec pos; f32 angle; f32 y_pos; @@ -385,14 +385,14 @@ static void CoinChgShow(omObjData* object, coinChg* coin_chg) { } else { y_pos = (50.0f * angle) + object->trans.y; } - BoardModelPosGet(coin_chg->coin_model, &sp8); - BoardModelPosSet(coin_chg->coin_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->sign_model, &sp8); - BoardModelPosSet(coin_chg->sign_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->ones_model, &sp8); - BoardModelPosSet(coin_chg->ones_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->tens_model, &sp8); - BoardModelPosSet(coin_chg->tens_model, sp8.x, y_pos, sp8.z); + BoardModelPosGet(coin_chg->coin_model, &pos); + BoardModelPosSet(coin_chg->coin_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->sign_model, &pos); + BoardModelPosSet(coin_chg->sign_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->ones_model, &pos); + BoardModelPosSet(coin_chg->ones_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->tens_model, &pos); + BoardModelPosSet(coin_chg->tens_model, pos.x, y_pos, pos.z); if (coin_chg->angle < 90) { coin_chg->angle += 6; return;