diff --git a/.vscode/settings.json b/.vscode/settings.json index 8b2e4ab0..ac4cca7f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,6 +13,7 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.associations": { + "*.cp": "cpp", "*.csv": "plaintext", "*.s": "plaintext", "*.json": "jsonc", @@ -64,7 +65,10 @@ "m427dll.h": "c", "sprite.h": "c", "gamework_data.h": "c", - "roll.h": "c" + "roll.h": "c", + "msghndlr.h": "c", + "dispatch.h": "c", + "trk.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/configure.py b/configure.py index 1f1883bb..5613bb0e 100644 --- a/configure.py +++ b/configure.py @@ -758,7 +758,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targcont.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/target_options.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mslsupp.c"), diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c index 9fbb6aeb..0b6947ed 100644 --- a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -95,8 +95,6 @@ int InitMetroTRKCommTable(int hwId) return result; } -void TRKUARTInterruptHandler() { } - DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, volatile u8** param_3) { @@ -106,15 +104,15 @@ DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, void EnableEXI2Interrupts(void) { gDBCommTable.init_interrupts_func(); } -int TRKPollUART(void) { return gDBCommTable.peek_func(); } +inline int TRKPollUART(void) { return gDBCommTable.peek_func(); } -UARTError TRKReadUARTN(void* bytes, u32 length) +inline UARTError TRKReadUARTN(void* bytes, u32 length) { int readErr = gDBCommTable.read_func(bytes, length); return readErr == 0 ? 0 : -1; } -UARTError TRKWriteUARTN(const void* bytes, u32 length) +inline UARTError TRKWriteUARTN(const void* bytes, u32 length) { int writeErr = gDBCommTable.write_func(bytes, length); return writeErr == 0 ? 0 : -1; @@ -141,28 +139,29 @@ UARTError WriteUART1(u8 arg0) return 0; } -UARTError TRKReadUARTPoll(u8* arg0) -{ - UARTError readErr = 4; +s32 TRKReadUARTPoll(u8* arg0) { + UARTError var_r29; + s32 cnt; + var_r29 = 4; if (gReadPos >= gReadCount) { gReadPos = 0; - gReadCount = TRKPollUART(); - if (gReadCount > 0) { - if (gReadCount > BUFF_LEN) { - gReadCount = BUFF_LEN; + cnt = gReadCount = TRKPollUART(); + if (cnt > 0) { + if (cnt > 0x110A) { + gReadCount = 0x110A; } - readErr = TRKReadUARTN(gReadBuf, gReadCount); - if (readErr != 0) { + var_r29 = TRKReadUARTN(gReadBuf, gReadCount); + if (var_r29 != 0) { gReadCount = 0; } } } if (gReadPos < gReadCount) { *arg0 = gReadBuf[gReadPos++]; - readErr = 0; + var_r29 = 0; } - return readErr; + return var_r29; } void ReserveEXI2Port(void) { gDBCommTable.open_func(); } @@ -170,3 +169,5 @@ void ReserveEXI2Port(void) { gDBCommTable.open_func(); } void UnreserveEXI2Port(void) { gDBCommTable.close_func(); } void TRK_board_display(char* str) { OSReport(str); } + +void TRKUARTInterruptHandler() { }