diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 13d1fade..2da07fce 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1156,5 +1156,91 @@ MSL_C.PPCEABI.bare.H/w_pow.c: MSL_C.PPCEABI.bare.H/math_ppc.c: .text start:0x800EBB00 end:0x800EBBB4 +TRK_MINNOW_DOLPHIN/mainloop.c: + .text start:0x800EBBB4 end:0x800EBCAC + +TRK_MINNOW_DOLPHIN/nubevent.c: + .text start:0x800EBCAC end:0x800EBED4 + .bss start:0x801A7730 end:0x801A7758 + +TRK_MINNOW_DOLPHIN/nubinit.c: + .text start:0x800EBED4 end:0x800EC054 + .rodata start:0x8011EA50 end:0x8011EA70 + .bss start:0x801A7758 end:0x801A7760 + +TRK_MINNOW_DOLPHIN/msg.c: + .text start:0x800EC054 end:0x800EC230 + +TRK_MINNOW_DOLPHIN/msgbuf.c: + .text start:0x800EC230 end:0x800ECC5C + .rodata start:0x8011EA70 end:0x8011EA90 + .bss start:0x801A7760 end:0x801A9110 + +TRK_MINNOW_DOLPHIN/serpoll.c: + .text start:0x800ECC5C end:0x800ED028 + .bss start:0x801A9110 end:0x801A9128 + +TRK_MINNOW_DOLPHIN/usrput.c: + .text start:0x800ED028 end:0x800ED0B4 + +TRK_MINNOW_DOLPHIN/dispatch.c: + .text start:0x800ED0B4 end:0x800ED150 + .data start:0x8013E998 end:0x8013EA20 + .bss start:0x801A9128 end:0x801A9130 + +TRK_MINNOW_DOLPHIN/msghndlr.c: + .text start:0x800ED150 end:0x800EF9B0 + .data start:0x8013EA20 end:0x8013EA58 + .bss start:0x801A9130 end:0x801A9138 + +TRK_MINNOW_DOLPHIN/support.c: + .text start:0x800EF9B0 end:0x800F0270 + +TRK_MINNOW_DOLPHIN/mutex_TRK.c: + .text start:0x800F0270 end:0x800F0288 + +TRK_MINNOW_DOLPHIN/notify.c: + .text start:0x800F0288 end:0x800F0360 + +TRK_MINNOW_DOLPHIN/flush_cache.c: + .text start:0x800F0360 end:0x800F0398 + +TRK_MINNOW_DOLPHIN/mem_TRK.c: + .init start:0x800034E0 end:0x80003534 + .text start:0x800F0398 end:0x800F0454 + +TRK_MINNOW_DOLPHIN/targimpl.c: + .text start:0x800F0454 end:0x800F1CF0 + .rodata start:0x8011EA90 end:0x8011EB18 + .data start:0x8013EA58 end:0x8013EA88 + .bss start:0x801A91E0 end:0x801A96B8 + +TRK_MINNOW_DOLPHIN/targsupp.c: + .text start:0x800F1CF0 end:0x800F1D10 + +TRK_MINNOW_DOLPHIN/dolphin_trk.c: + .text start:0x800F1D10 end:0x800F1E50 + .data start:0x8013EA88 end:0x8013EAC8 + .bss start:0x801A96B8 end:0x801A96C0 + +TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c: + .text start:0x800F1E50 end:0x800F21C8 + +TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c: + .text start:0x800F21C8 end:0x800F26B8 + .rodata start:0x8011EB18 end:0x8011EB60 + .data start:0x8013EAC8 end:0x8013EAE8 + .bss start:0x801A96C8 end:0x801AB8F0 + +TRK_MINNOW_DOLPHIN/targcont.c: + .text start:0x800F26B8 end:0x800F26EC + +TRK_MINNOW_DOLPHIN/target_options.c: + .text start:0x800F26EC end:0x800F2708 + .bss start:0x801AB8F0 end:0x801AB8F8 + +TRK_MINNOW_DOLPHIN/mslsupp.c: + .text start:0x800F2708 end:0x800F2880 + game/kerent.c: .text start:0x8011CCC4 end:0x8011DCA8 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 176c715a..bb4d4116 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4680,7 +4680,7 @@ atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local @62 = .rodata:0x8011EA50; // type:object size:0x1B scope:local data:string lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 -lbl_8011EA90 = .rodata:0x8011EA90; // type:object size:0x10 data:4byte +gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 data:4byte lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 data:4byte @@ -5368,13 +5368,13 @@ __lower_map = .data:0x8013E668; // type:object size:0x100 jumptable_8013E7EC = .data:0x8013E7EC; // type:object size:0x84 scope:local jumptable_8013E870 = .data:0x8013E870; // type:object size:0xE0 scope:local jumptable_8013E950 = .data:0x8013E950; // type:object size:0x44 scope:local -lbl_8013E998 = .data:0x8013E998; // type:object size:0x88 +gTRKDispatchTable = .data:0x8013E998; // type:object size:0x84 jumptable_8013EA20 = .data:0x8013EA20; // type:object size:0x1C scope:local jumptable_8013EA3C = .data:0x8013EA3C; // type:object size:0x1C scope:local gTRKRestoreFlags = .data:0x8013EA58; // type:object size:0x9 scope:global data:byte gTRKExceptionStatus = .data:0x8013EA64; // type:object size:0x10 scope:local data:4byte -TRK_ISR_OFFSETS = .data:0x8013EA74; // type:object size:0x14 data:4byte -lbl_8013EA88 = .data:0x8013EA88; // type:object size:0x40 data:4byte +gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 data:4byte +TRK_ISR_OFFSETS = .data:0x8013EA88; // type:object size:0x3C scope:local data:4byte gDBCommTable = .data:0x8013EAC8; // type:object size:0x1C scope:global data:4byte jumptable_8013EAE8 = .data:0x8013EAE8; // type:object size:0x50 scope:local lbl_8013EB38 = .data:0x8013EB38; // type:object size:0x1C @@ -5619,19 +5619,23 @@ gTRKEventQueue = .bss:0x801A7730; // type:object size:0x28 gTRKBigEndian = .bss:0x801A7758; // type:object size:0x4 scope:global data:4byte gTRKMsgBufs = .bss:0x801A7760; // type:object size:0x19B0 gTRKInputPendingPtr = .bss:0x801A9110; // type:object size:0x4 scope:global data:4byte -lbl_801A9114 = .bss:0x801A9114; // type:object size:0x14 data:4byte -lbl_801A9128 = .bss:0x801A9128; // type:object size:0x8 data:4byte -lbl_801A9130 = .bss:0x801A9130; // type:object size:0x8 data:4byte +gTRKFramingState = .bss:0x801A9114; // type:object size:0x14 scope:local data:4byte +gTRKDispatchTableSize = .bss:0x801A9128; // type:object size:0x4 data:4byte +IsTRKConnected = .bss:0x801A9130; // type:object size:0x4 scope:local data:4byte TRK_saved_exceptionID = .bss:0x801A9138; // type:object size:0x2 scope:local data:2byte gTRKState = .bss:0x801A913C; // type:object size:0xA4 scope:global data:4byte gTRKCPUState = .bss:0x801A91E0; // type:object size:0x430 scope:global gTRKSaveState = .bss:0x801A9610; // type:object size:0x94 scope:global data:4byte -lbl_801A96A4 = .bss:0x801A96A4; // type:object size:0x14 -lbl_801A96B8 = .bss:0x801A96B8; // type:object size:0x8 data:4byte +TRKvalue128_temp = .bss:0x801A96A4; // type:object size:0x10 +lc_base = .bss:0x801A96B8; // type:object size:0x4 scope:local data:4byte TRK_mainError = .bss:0x801A96C0; // type:object size:0x4 scope:local data:4byte -lbl_801A96C8 = .bss:0x801A96C8; // type:object size:0x111C data:4byte -lbl_801AA7E4 = .bss:0x801AA7E4; // type:object size:0x110C -lbl_801AB8F0 = .bss:0x801AB8F0; // type:object size:0x8 data:byte +gWritePos = .bss:0x801A96C8; // type:object size:0x4 scope:local data:4byte +gReadPos = .bss:0x801A96CC; // type:object size:0x4 scope:local data:4byte +gReadCount = .bss:0x801A96D0; // type:object size:0x4 scope:local data:4byte +_MetroTRK_Has_Framing = .bss:0x801A96D4; // type:object size:0x4 data:4byte +gReadBuf = .bss:0x801A96D8; // type:object size:0x110A scope:local +gWriteBuf = .bss:0x801AA7E4; // type:object size:0x110A scope:local +bUseSerialIO = .bss:0x801AB8F0; // type:object size:0x1 scope:local data:byte lbl_801AB8F8 = .bss:0x801AB8F8; // type:object size:0x1400 data:4byte lbl_801ACCF8 = .bss:0x801ACCF8; // type:object size:0xC340 lbl_801B9038 = .bss:0x801B9038; // type:object size:0x100 data:2byte diff --git a/configure.py b/configure.py index 348d18a2..648c807b 100644 --- a/configure.py +++ b/configure.py @@ -179,6 +179,17 @@ cflags_msl = [ "-inline auto,deferred", ] +# Metrowerks library flags +cflags_trk = [ + *cflags_base, + "-use_lmw_stmw on", + "-str reuse,pool,readonly", + "-common off", + "-sdata 0", + "-sdata2 0", + "-inline auto,deferred", +] + # REL flags cflags_rel = [ *cflags_base, @@ -559,6 +570,36 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/math_ppc.c"), ], }, + { + "lib": "TRK_MINNOW_DOLPHIN", + "mw_version": config.linker_version, + "cflags": cflags_trk, + "host": False, + "objects": [ + Object(NonMatching, "TRK_MINNOW_DOLPHIN/mainloop.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubevent.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubinit.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/msg.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/msgbuf.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/serpoll.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/usrput.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/msghndlr.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/support.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/flush_cache.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/targsupp.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/targcont.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/target_options.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/mslsupp.c"), + ], + }, { "lib": "REL", "mw_version": config.linker_version,