From 0a2abe6ba4e9555c5dd23eec9c84a155709977d2 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sat, 15 Mar 2025 12:19:38 -0400 Subject: [PATCH] match TRK with correct linker, uses Revo's notify func --- configure.py | 4 ++-- src/TRK_MINNOW_DOLPHIN/notify.c | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/configure.py b/configure.py index 3999eaad..1f1883bb 100644 --- a/configure.py +++ b/configure.py @@ -744,12 +744,12 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/serpoll.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c", mw_version="GC/1.3.2"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/support.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/notify.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mem_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), diff --git a/src/TRK_MINNOW_DOLPHIN/notify.c b/src/TRK_MINNOW_DOLPHIN/notify.c index 7dce4537..bd41e2f7 100644 --- a/src/TRK_MINNOW_DOLPHIN/notify.c +++ b/src/TRK_MINNOW_DOLPHIN/notify.c @@ -4,6 +4,19 @@ #include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" #include "PowerPC_EABI_Support/MetroTRK/trk.h" +inline DSError TRKDoNotifyStopped_Inline(TRKBuffer* msg, MessageCommandID cmd) { + DSError err; + + if (msg->position >= 0x880) { + err = DS_MessageBufferOverflow; + } else { + msg->data[msg->position++] = cmd; + msg->length+=1; + err = 0; + } + return err; +} + DSError TRKDoNotifyStopped(MessageCommandID cmd) { DSError err; @@ -13,13 +26,7 @@ DSError TRKDoNotifyStopped(MessageCommandID cmd) err = TRKGetFreeBuffer(&bufIdx, &msg); if (err == DS_NoError) { - if (msg->position >= 0x880) { - err = DS_MessageBufferOverflow; - } else { - msg->data[msg->position++] = cmd; - ++msg->length; - err = 0; - } + err = TRKDoNotifyStopped_Inline(msg, cmd); if (err == DS_NoError) { if (cmd == DSMSG_NotifyStopped) {