diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 13d1fade..5eb5121d 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1156,5 +1156,121 @@ 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 + +musyx/runtime/seq.c: + .text start:0x800F2880 end:0x800F67F0 + .data start:0x8013EAE8 end:0x8013EB38 + .bss start:0x801AB8F8 end:0x801B9138 + .sbss start:0x801D4788 end:0x801D47A8 + .sdata2 start:0x801D6988 end:0x801D69A8 + +musyx/runtime/synth.c: + .text start:0x800F67F0 end:0x800F9B4C + .bss start:0x801B9138 end:0x801BA720 + .sbss start:0x801D47A8 end:0x801D47F0 + .sdata2 start:0x801D69A8 end:0x801D69E8 + +musyx/runtime/seq_api.c: + .text start:0x800F9B4C end:0x800F9DCC + +musyx/runtime/snd_synthapi.c: + .text start:0x800F9DCC end:0x800FA54C + +musyx/runtime/stream.c: + .text start:0x800FA54C end:0x800FE0B8 + .bss start:0x801BA720 end:0x801BC020 + .sbss start:0x801D47F0 end:0x801D47F8 + .sdata2 start:0x801D69E8 end:0x801D6A00 + +musyx/runtime/synthdata.c: + .text start:0x800FE0B8 end:0x800FFE48 + .bss start:0x801BC020 end:0x801C6658 + .sbss start:0x801D47F8 end:0x801D4840 + game/kerent.c: .text start:0x8011CCC4 end:0x8011DCA8 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 176c715a..24c6c0ca 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3087,118 +3087,118 @@ GetUseSerialIO = .text:0x800F26EC; // type:function size:0x10 SetUseSerialIO = .text:0x800F26FC; // type:function size:0xC __TRK_write_console = .text:0x800F2708; // type:function size:0xBC __read_console = .text:0x800F27C4; // type:function size:0xBC -fn_800F2880 = .text:0x800F2880; // type:function size:0x68 -fn_800F28E8 = .text:0x800F28E8; // type:function size:0xAC4 -fn_800F33AC = .text:0x800F33AC; // type:function size:0x64 -fn_800F3410 = .text:0x800F3410; // type:function size:0x27C -fn_800F368C = .text:0x800F368C; // type:function size:0x2B0 -fn_800F393C = .text:0x800F393C; // type:function size:0x90 -fn_800F39CC = .text:0x800F39CC; // type:function size:0xE4 -fn_800F3AB0 = .text:0x800F3AB0; // type:function size:0x108 -fn_800F3BB8 = .text:0x800F3BB8; // type:function size:0xBC -fn_800F3C74 = .text:0x800F3C74; // type:function size:0x1CC -fn_800F3E40 = .text:0x800F3E40; // type:function size:0xB58 -fn_800F4998 = .text:0x800F4998; // type:function size:0x218 -fn_800F4BB0 = .text:0x800F4BB0; // type:function size:0xA94 -fn_800F5644 = .text:0x800F5644; // type:function size:0x174 -fn_800F57B8 = .text:0x800F57B8; // type:function size:0x49C -fn_800F5C54 = .text:0x800F5C54; // type:function size:0x9F4 -fn_800F6648 = .text:0x800F6648; // type:function size:0x1A8 -fn_800F67F0 = .text:0x800F67F0; // type:function size:0x44 -fn_800F6834 = .text:0x800F6834; // type:function size:0x34 -fn_800F6868 = .text:0x800F6868; // type:function size:0x78 -fn_800F68E0 = .text:0x800F68E0; // type:function size:0x2A0 -fn_800F6B80 = .text:0x800F6B80; // type:function size:0x3C0 -fn_800F6F40 = .text:0x800F6F40; // type:function size:0x25C -fn_800F719C = .text:0x800F719C; // type:function size:0x45C -fn_800F75F8 = .text:0x800F75F8; // type:function size:0x744 -fn_800F7D3C = .text:0x800F7D3C; // type:function size:0x6FC -fn_800F8438 = .text:0x800F8438; // type:function size:0x150 -fn_800F8588 = .text:0x800F8588; // type:function size:0x64 -fn_800F85EC = .text:0x800F85EC; // type:function size:0x44 -fn_800F8630 = .text:0x800F8630; // type:function size:0x28 -fn_800F8658 = .text:0x800F8658; // type:function size:0x510 -fn_800F8B68 = .text:0x800F8B68; // type:function size:0x34 -fn_800F8B9C = .text:0x800F8B9C; // type:function size:0xC8 -fn_800F8C64 = .text:0x800F8C64; // type:function size:0xE4 -fn_800F8D48 = .text:0x800F8D48; // type:function size:0xE4 -fn_800F8E2C = .text:0x800F8E2C; // type:function size:0x84 -fn_800F8EB0 = .text:0x800F8EB0; // type:function size:0x88 -fn_800F8F38 = .text:0x800F8F38; // type:function size:0x530 -fn_800F9468 = .text:0x800F9468; // type:function size:0x54 -fn_800F94BC = .text:0x800F94BC; // type:function size:0x28 -fn_800F94E4 = .text:0x800F94E4; // type:function size:0xD0 -fn_800F95B4 = .text:0x800F95B4; // type:function size:0x574 -fn_800F9B28 = .text:0x800F9B28; // type:function size:0x24 -fn_800F9B4C = .text:0x800F9B4C; // type:function size:0x30 -fn_800F9B7C = .text:0x800F9B7C; // type:function size:0x38 -fn_800F9BB4 = .text:0x800F9BB4; // type:function size:0x38 -fn_800F9BEC = .text:0x800F9BEC; // type:function size:0x48 -fn_800F9C34 = .text:0x800F9C34; // type:function size:0x38 -fn_800F9C6C = .text:0x800F9C6C; // type:function size:0x58 -fn_800F9CC4 = .text:0x800F9CC4; // type:function size:0x68 -fn_800F9D2C = .text:0x800F9D2C; // type:function size:0x84 -fn_800F9DB0 = .text:0x800F9DB0; // type:function size:0x1C -fn_800F9DCC = .text:0x800F9DCC; // type:function size:0x60 -fn_800F9E2C = .text:0x800F9E2C; // type:function size:0x60 -fn_800F9E8C = .text:0x800F9E8C; // type:function size:0x40 -fn_800F9ECC = .text:0x800F9ECC; // type:function size:0xE0 -fn_800F9FAC = .text:0x800F9FAC; // type:function size:0x40 -fn_800F9FEC = .text:0x800F9FEC; // type:function size:0x50 -fn_800FA03C = .text:0x800FA03C; // type:function size:0x60 -fn_800FA09C = .text:0x800FA09C; // type:function size:0x94 -fn_800FA130 = .text:0x800FA130; // type:function size:0xEC -fn_800FA21C = .text:0x800FA21C; // type:function size:0x158 -fn_800FA374 = .text:0x800FA374; // type:function size:0xA8 -fn_800FA41C = .text:0x800FA41C; // type:function size:0xF0 -fn_800FA50C = .text:0x800FA50C; // type:function size:0x20 -fn_800FA52C = .text:0x800FA52C; // type:function size:0x20 -fn_800FA54C = .text:0x800FA54C; // type:function size:0xBC -fn_800FA608 = .text:0x800FA608; // type:function size:0x8C -fn_800FA694 = .text:0x800FA694; // type:function size:0x8AC -fn_800FAF40 = .text:0x800FAF40; // type:function size:0x4 -fn_800FAF44 = .text:0x800FAF44; // type:function size:0x84 -fn_800FAFC8 = .text:0x800FAFC8; // type:function size:0x160 -fn_800FB128 = .text:0x800FB128; // type:function size:0x2C4 -fn_800FB3EC = .text:0x800FB3EC; // type:function size:0x34 -fn_800FB420 = .text:0x800FB420; // type:function size:0x44 -fn_800FB464 = .text:0x800FB464; // type:function size:0x130 -fn_800FB594 = .text:0x800FB594; // type:function size:0x458 -fn_800FB9EC = .text:0x800FB9EC; // type:function size:0x44 -fn_800FBA30 = .text:0x800FBA30; // type:function size:0x6E8 -fn_800FC118 = .text:0x800FC118; // type:function size:0x560 -fn_800FC678 = .text:0x800FC678; // type:function size:0x654 -fn_800FCCCC = .text:0x800FCCCC; // type:function size:0x6B8 -fn_800FD384 = .text:0x800FD384; // type:function size:0x634 -fn_800FD9B8 = .text:0x800FD9B8; // type:function size:0x700 -fn_800FE0B8 = .text:0x800FE0B8; // type:function size:0x1F0 -fn_800FE2A8 = .text:0x800FE2A8; // type:function size:0x17C -fn_800FE424 = .text:0x800FE424; // type:function size:0x248 -fn_800FE66C = .text:0x800FE66C; // type:function size:0x1C4 -fn_800FE830 = .text:0x800FE830; // type:function size:0x204 -fn_800FEA34 = .text:0x800FEA34; // type:function size:0x17C -fn_800FEBB0 = .text:0x800FEBB0; // type:function size:0x188 -fn_800FED38 = .text:0x800FED38; // type:function size:0x2C8 -fn_800FF000 = .text:0x800FF000; // type:function size:0xD8 -fn_800FF0D8 = .text:0x800FF0D8; // type:function size:0x98 -fn_800FF170 = .text:0x800FF170; // type:function size:0x11C -fn_800FF28C = .text:0x800FF28C; // type:function size:0x15C -fn_800FF3E8 = .text:0x800FF3E8; // type:function size:0x304 -fn_800FF6EC = .text:0x800FF6EC; // type:function size:0x284 -fn_800FF970 = .text:0x800FF970; // type:function size:0x10 -fn_800FF980 = .text:0x800FF980; // type:function size:0x8C -fn_800FFA0C = .text:0x800FFA0C; // type:function size:0x10 -fn_800FFA1C = .text:0x800FFA1C; // type:function size:0x128 -fn_800FFB44 = .text:0x800FFB44; // type:function size:0x10 -fn_800FFB54 = .text:0x800FFB54; // type:function size:0x5C -fn_800FFBB0 = .text:0x800FFBB0; // type:function size:0x5C -fn_800FFC0C = .text:0x800FFC0C; // type:function size:0x10 -fn_800FFC1C = .text:0x800FFC1C; // type:function size:0x7C -fn_800FFC98 = .text:0x800FFC98; // type:function size:0x10 -fn_800FFCA8 = .text:0x800FFCA8; // type:function size:0x9C -fn_800FFD44 = .text:0x800FFD44; // type:function size:0xE4 -fn_800FFE28 = .text:0x800FFE28; // type:function size:0x20 -fn_800FFE48 = .text:0x800FFE48; // type:function size:0x2F0 +seqGetPrivateId = .text:0x800F2880; // type:function size:0x68 +seqStartPlay = .text:0x800F28E8; // type:function size:0xAC4 +StartPause = .text:0x800F33AC; // type:function size:0x64 +seqPause = .text:0x800F3410; // type:function size:0x27C +seqStop = .text:0x800F368C; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F393C; // type:function size:0x90 +seqSpeed = .text:0x800F39CC; // type:function size:0xE4 +seqContinue = .text:0x800F3AB0; // type:function size:0x108 +seqMute = .text:0x800F3BB8; // type:function size:0xBC +seqVolume = .text:0x800F3C74; // type:function size:0x1CC +seqCrossFade = .text:0x800F3E40; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F4998; // type:function size:0x218 scope:local +HandleEvent = .text:0x800F4BB0; // type:function size:0xA94 scope:local +InitTrackEvents = .text:0x800F5644; // type:function size:0x174 scope:local +HandleTrackEvents = .text:0x800F57B8; // type:function size:0x49C scope:local +seqHandle = .text:0x800F5C54; // type:function size:0x9F4 +seqInit = .text:0x800F6648; // type:function size:0x1A8 +synthSetBpm = .text:0x800F67F0; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6834; // type:function size:0x34 +synthInitPortamento = .text:0x800F6868; // type:function size:0x78 +do_voice_portamento = .text:0x800F68E0; // type:function size:0x2A0 scope:local +StartLayer = .text:0x800F6B80; // type:function size:0x3C0 scope:local +StartKeymap = .text:0x800F6F40; // type:function size:0x25C scope:local +synthStartSound = .text:0x800F719C; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F75F8; // type:function size:0x744 scope:local +ZeroOffsetHandler = .text:0x800F7D3C; // type:function size:0x6FC scope:local +synthAddJob = .text:0x800F8438; // type:function size:0x150 scope:local +synthStartSynthJobHandling = .text:0x800F8588; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F85EC; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8630; // type:function size:0x28 +synthHandle = .text:0x800F8658; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8B68; // type:function size:0x34 +synthFXStart = .text:0x800F8B9C; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8C64; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8D48; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8E2C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8EB0; // type:function size:0x88 +synthVolume = .text:0x800F8F38; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9468; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F94BC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F94E4; // type:function size:0xD0 +synthInit = .text:0x800F95B4; // type:function size:0x574 +synthExit = .text:0x800F9B28; // type:function size:0x24 +sndSeqGetValid = .text:0x800F9B4C; // type:function size:0x30 +sndSeqPause = .text:0x800F9B7C; // type:function size:0x38 +sndSeqStop = .text:0x800F9BB4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F9BEC; // type:function size:0x48 +sndSeqContinue = .text:0x800F9C34; // type:function size:0x38 +sndSeqMute = .text:0x800F9C6C; // type:function size:0x58 +sndSeqVolume = .text:0x800F9CC4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F9D2C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F9DB0; // type:function size:0x1C +sndFXCtrl = .text:0x800F9DCC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9E2C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9E8C; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9ECC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9FAC; // type:function size:0x40 +sndSendMessage = .text:0x800F9FEC; // type:function size:0x50 +sndVolume = .text:0x800FA03C; // type:function size:0x60 +sndMasterVolume = .text:0x800FA09C; // type:function size:0x94 +sndOutputMode = .text:0x800FA130; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800FA21C; // type:function size:0x158 +synthActivateStudio = .text:0x800FA374; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA41C; // type:function size:0xF0 +synthChangeStudioMasterMix = .text:0x800FA50C; // type:function size:0x20 +sndAddStudioInput = .text:0x800FA52C; // type:function size:0x20 +streamInit = .text:0x800FA54C; // type:function size:0xBC +SetHWMix = .text:0x800FA608; // type:function size:0x8C scope:local +streamHandle = .text:0x800FA694; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAF40; // type:function size:0x4 +streamKill = .text:0x800FAF44; // type:function size:0x84 +GetPrivateIndex = .text:0x800FAFC8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FB128; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FB3EC; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB420; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB464; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB594; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB9EC; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FBA30; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FC118; // type:function size:0x560 +sndStreamFrq = .text:0x800FC678; // type:function size:0x654 +sndStreamFree = .text:0x800FCCCC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FD384; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD9B8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FE0B8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FE2A8; // type:function size:0x17C +dataInsertLayer = .text:0x800FE424; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE66C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE830; // type:function size:0x204 +dataRemoveCurve = .text:0x800FEA34; // type:function size:0x17C +dataInsertSDir = .text:0x800FEBB0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FED38; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FF000; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FF0D8; // type:function size:0x98 +dataInsertFX = .text:0x800FF170; // type:function size:0x11C +dataRemoveFX = .text:0x800FF28C; // type:function size:0x15C +dataInsertMacro = .text:0x800FF3E8; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF6EC; // type:function size:0x284 +maccmp = .text:0x800FF970; // type:function size:0x10 scope:local +dataGetMacro = .text:0x800FF980; // type:function size:0x8C +smpcmp = .text:0x800FFA0C; // type:function size:0x10 scope:local +dataGetSample = .text:0x800FFA1C; // type:function size:0x128 +curvecmp = .text:0x800FFB44; // type:function size:0x10 scope:local +dataGetCurve = .text:0x800FFB54; // type:function size:0x5C +dataGetKeymap = .text:0x800FFBB0; // type:function size:0x5C +layercmp = .text:0x800FFC0C; // type:function size:0x10 scope:local +dataGetLayer = .text:0x800FFC1C; // type:function size:0x7C +fxcmp = .text:0x800FFC98; // type:function size:0x10 scope:local +dataGetFX = .text:0x800FFCA8; // type:function size:0x9C +dataInit = .text:0x800FFD44; // type:function size:0xE4 +dataExit = .text:0x800FFE28; // type:function size:0x20 +mcmdWait = .text:0x800FFE48; // type:function size:0x2F0 fn_80100138 = .text:0x80100138; // type:function size:0xD0 fn_80100208 = .text:0x80100208; // type:function size:0x154 fn_8010035C = .text:0x8010035C; // type:function size:0x18C @@ -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,49 +5619,50 @@ 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 -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 -lbl_801B9138 = .bss:0x801B9138; // type:object size:0x240 -lbl_801B9378 = .bss:0x801B9378; // type:object size:0x214 data:4byte -lbl_801B958C = .bss:0x801B958C; // type:object size:0x600 data:float -lbl_801B9B8C = .bss:0x801B9B8C; // type:object size:0x40 data:byte -lbl_801B9BCC = .bss:0x801B9BCC; // type:object size:0x180 -lbl_801B9D4C = .bss:0x801B9D4C; // type:object size:0x20 data:4byte -lbl_801B9D6C = .bss:0x801B9D6C; // type:object size:0x20 data:4byte -lbl_801B9D8C = .bss:0x801B9D8C; // type:object size:0x20 data:4byte -lbl_801B9DAC = .bss:0x801B9DAC; // type:object size:0x20 data:4byte -lbl_801B9DCC = .bss:0x801B9DCC; // type:object size:0x10 data:byte -lbl_801B9DDC = .bss:0x801B9DDC; // type:object size:0x40 data:4byte -lbl_801B9E1C = .bss:0x801B9E1C; // type:object size:0x480 -lbl_801BA29C = .bss:0x801BA29C; // type:object size:0x484 -lbl_801BA720 = .bss:0x801BA720; // type:object size:0x337 -lbl_801BAA57 = .bss:0x801BAA57; // type:object size:0x15C9 -lbl_801BC020 = .bss:0x801BC020; // type:object size:0x800 -lbl_801BC820 = .bss:0x801BC820; // type:object size:0xC00 -lbl_801BD420 = .bss:0x801BD420; // type:object size:0x4000 -lbl_801C1420 = .bss:0x801C1420; // type:object size:0x600 data:4byte -lbl_801C1A20 = .bss:0x801C1A20; // type:object size:0x1EF -lbl_801C1C0F = .bss:0x801C1C0F; // type:object size:0x10 -lbl_801C1C1F = .bss:0x801C1C1F; // type:object size:0x201 -lbl_801C1E20 = .bss:0x801C1E20; // type:object size:0x800 data:2byte -lbl_801C2620 = .bss:0x801C2620; // type:object size:0x4000 -lbl_801C6620 = .bss:0x801C6620; // type:object size:0x20 data:2byte -lbl_801C6640 = .bss:0x801C6640; // type:object size:0xC -lbl_801C664C = .bss:0x801C664C; // type:object size:0xC data:2byte +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 +seqNote = .bss:0x801AB8F8; // type:object size:0x1400 scope:local data:4byte +seqInstance = .bss:0x801ACCF8; // type:object size:0xC340 +seqMIDIPriority = .bss:0x801B9038; // type:object size:0x100 scope:local data:2byte +synthTicksPerSecond = .bss:0x801B9138; // type:object size:0x240 scope:local +synthInfo = .bss:0x801B9378; // type:object size:0x214 data:4byte +synthMasterFader = .bss:0x801B958C; // type:object size:0x600 data:float +synthTrackVolume = .bss:0x801B9B8C; // type:object size:0x40 data:byte +synthJobTable = .bss:0x801B9BCC; // type:object size:0x180 scope:local +synthAuxAUser = .bss:0x801B9D4C; // type:object size:0x20 data:4byte +synthAuxACallback = .bss:0x801B9D6C; // type:object size:0x20 data:4byte +synthAuxBUser = .bss:0x801B9D8C; // type:object size:0x20 data:4byte +synthAuxBCallback = .bss:0x801B9DAC; // type:object size:0x20 data:4byte +synthITDDefault = .bss:0x801B9DCC; // type:object size:0x10 data:byte +synthGlobalVariable = .bss:0x801B9DDC; // type:object size:0x40 data:4byte +inpAuxB = .bss:0x801B9E1C; // type:object size:0x480 +inpAuxA = .bss:0x801BA29C; // type:object size:0x480 +streamInfo = .bss:0x801BA720; // type:object size:0x1900 data:4byte +dataKeymapTab = .bss:0x801BC020; // type:object size:0x800 scope:local +dataLayerTab = .bss:0x801BC820; // type:object size:0xC00 scope:local +dataCurveTab = .bss:0x801BD420; // type:object size:0x4000 scope:local +dataSmpSDirs = .bss:0x801C1420; // type:object size:0x600 scope:local data:4byte +dataFXGroups = .bss:0x801C1A20; // type:object size:0x400 scope:local data:2byte +dataMacMainTab = .bss:0x801C1E20; // type:object size:0x800 scope:local data:2byte +dataMacSubTabmem = .bss:0x801C2620; // type:object size:0x4000 scope:local +key$787 = .bss:0x801C6620; // type:object size:0x20 scope:local data:2byte +key$836 = .bss:0x801C6640; // type:object size:0xC scope:local +key$850 = .bss:0x801C664C; // type:object size:0xA scope:local data:2byte lbl_801C6658 = .bss:0x801C6658; // type:object size:0x20 data:4byte lbl_801C6678 = .bss:0x801C6678; // type:object size:0xB4F lbl_801C71C7 = .bss:0x801C71C7; // type:object size:0x3B1 @@ -6752,48 +6753,47 @@ __console_exit = .sbss:0x801D476C; // type:object size:0x4 scope:global data:4by init$193 = .sbss:0x801D4770; // type:object size:0x1 scope:local data:byte errno = .sbss:0x801D4778; // type:object size:0x4 data:4byte initialized$16 = .sbss:0x801D4780; // type:object size:0x4 scope:local data:4byte -lbl_801D4788 = .sbss:0x801D4788; // type:object size:0x4 data:4byte -lbl_801D478C = .sbss:0x801D478C; // type:object size:0x1 data:byte -lbl_801D4790 = .sbss:0x801D4790; // type:object size:0x4 data:4byte -lbl_801D4794 = .sbss:0x801D4794; // type:object size:0x4 data:4byte -lbl_801D4798 = .sbss:0x801D4798; // type:object size:0x4 data:4byte -lbl_801D479C = .sbss:0x801D479C; // type:object size:0x4 data:4byte -lbl_801D47A0 = .sbss:0x801D47A0; // type:object size:0x4 data:4byte -lbl_801D47A4 = .sbss:0x801D47A4; // type:object size:0x4 data:4byte -lbl_801D47A8 = .sbss:0x801D47A8; // type:object size:0x1 data:byte -lbl_801D47A9 = .sbss:0x801D47A9; // type:object size:0x1 data:byte -lbl_801D47AC = .sbss:0x801D47AC; // type:object size:0x8 data:byte -lbl_801D47B4 = .sbss:0x801D47B4; // type:object size:0x8 data:byte -lbl_801D47BC = .sbss:0x801D47BC; // type:object size:0x8 data:byte -lbl_801D47C4 = .sbss:0x801D47C4; // type:object size:0x8 data:byte -lbl_801D47CC = .sbss:0x801D47CC; // type:object size:0x4 data:4byte -lbl_801D47D0 = .sbss:0x801D47D0; // type:object size:0x4 data:4byte -lbl_801D47D4 = .sbss:0x801D47D4; // type:object size:0x4 data:4byte -lbl_801D47D8 = .sbss:0x801D47D8; // type:object size:0x4 data:4byte -lbl_801D47DC = .sbss:0x801D47DC; // type:object size:0x4 data:4byte -lbl_801D47E0 = .sbss:0x801D47E0; // type:object size:0x8 data:byte -lbl_801D47E8 = .sbss:0x801D47E8; // type:object size:0x4 data:4byte -lbl_801D47EC = .sbss:0x801D47EC; // type:object size:0x4 data:4byte -lbl_801D47F0 = .sbss:0x801D47F0; // type:object size:0x4 data:4byte -lbl_801D47F4 = .sbss:0x801D47F4; // type:object size:0x1 data:byte -lbl_801D47F5 = .sbss:0x801D47F5; // type:object size:0x1 data:byte -lbl_801D47F8 = .sbss:0x801D47F8; // type:object size:0x4 data:4byte -lbl_801D47FC = .sbss:0x801D47FC; // type:object size:0x4 data:4byte -lbl_801D4800 = .sbss:0x801D4800; // type:object size:0x8 -lbl_801D4808 = .sbss:0x801D4808; // type:object size:0x4 data:4byte -lbl_801D480C = .sbss:0x801D480C; // type:object size:0x8 -lbl_801D4814 = .sbss:0x801D4814; // type:object size:0x4 data:4byte -lbl_801D4818 = .sbss:0x801D4818; // type:object size:0x4 data:4byte -lbl_801D481C = .sbss:0x801D481C; // type:object size:0x4 data:4byte -lbl_801D4820 = .sbss:0x801D4820; // type:object size:0x8 -lbl_801D4828 = .sbss:0x801D4828; // type:object size:0x4 data:4byte -lbl_801D482C = .sbss:0x801D482C; // type:object size:0x4 data:4byte -lbl_801D4830 = .sbss:0x801D4830; // type:object size:0x2 data:2byte -lbl_801D4832 = .sbss:0x801D4832; // type:object size:0x2 data:2byte -lbl_801D4834 = .sbss:0x801D4834; // type:object size:0x2 data:2byte -lbl_801D4836 = .sbss:0x801D4836; // type:object size:0x2 data:2byte -lbl_801D4838 = .sbss:0x801D4838; // type:object size:0x2 data:2byte -lbl_801D483A = .sbss:0x801D483A; // type:object size:0x6 data:2byte +seq_next_id = .sbss:0x801D4788; // type:object size:0x4 scope:local data:4byte +curFadeOutState = .sbss:0x801D478C; // type:object size:0x1 scope:local data:byte +curSeqId = .sbss:0x801D4790; // type:object size:0x4 scope:local data:4byte +noteFree = .sbss:0x801D4794; // type:object size:0x4 scope:local data:4byte +cseq = .sbss:0x801D4798; // type:object size:0x4 scope:local data:4byte +seqFreeRoot = .sbss:0x801D479C; // type:object size:0x4 data:4byte +seqPausedRoot = .sbss:0x801D47A0; // type:object size:0x4 data:4byte +seqActiveRoot = .sbss:0x801D47A4; // type:object size:0x4 data:4byte +sndActive = .sbss:0x801D47A8; // type:object size:0x1 data:byte +synthJobTableIndex = .sbss:0x801D47A9; // type:object size:0x1 scope:local data:byte +synthAuxBMIDISet = .sbss:0x801D47AC; // type:object size:0x8 data:byte +synthAuxBMIDI = .sbss:0x801D47B4; // type:object size:0x8 data:byte +synthAuxAMIDISet = .sbss:0x801D47BC; // type:object size:0x8 data:byte +synthAuxAMIDI = .sbss:0x801D47C4; // type:object size:0x8 data:byte +synthMasterFaderPauseActiveFlags = .sbss:0x801D47CC; // type:object size:0x4 data:4byte +synthMasterFaderActiveFlags = .sbss:0x801D47D0; // type:object size:0x4 data:4byte +synthFlags = .sbss:0x801D47D4; // type:object size:0x4 data:4byte +synthVoice = .sbss:0x801D47D8; // type:object size:0x4 data:4byte +synthMessageCallback = .sbss:0x801D47DC; // type:object size:0x4 data:4byte +synthIdleWaitActive = .sbss:0x801D47E0; // type:object size:0x1 data:byte +synthRealTime = .sbss:0x801D47E8; // type:object size:0x8 align:8 data:4byte +nextPublicID = .sbss:0x801D47F0; // type:object size:0x4 scope:local data:4byte +streamCallDelay = .sbss:0x801D47F4; // type:object size:0x1 scope:local data:byte +streamCallCnt = .sbss:0x801D47F5; // type:object size:0x1 scope:local data:byte +result$837 = .sbss:0x801D47F8; // type:object size:0x4 data:4byte +result$823 = .sbss:0x801D47FC; // type:object size:0x4 data:4byte +key$822 = .sbss:0x801D4800; // type:object size:0x8 +result$815 = .sbss:0x801D4808; // type:object size:0x4 data:4byte +key$814 = .sbss:0x801D480C; // type:object size:0x8 +sheader$789 = .sbss:0x801D4814; // type:object size:0x4 data:4byte +result$788 = .sbss:0x801D4818; // type:object size:0x4 data:4byte +result$770 = .sbss:0x801D481C; // type:object size:0x4 data:4byte +key$769 = .sbss:0x801D4820; // type:object size:0x8 +main$768 = .sbss:0x801D4828; // type:object size:0x4 data:4byte +base$767 = .sbss:0x801D482C; // type:object size:0x4 data:4byte +dataFXGroupNum = .sbss:0x801D4830; // type:object size:0x2 data:2byte +dataMacTotal = .sbss:0x801D4832; // type:object size:0x2 data:2byte +dataLayerNum = .sbss:0x801D4834; // type:object size:0x2 data:2byte +dataKeymapNum = .sbss:0x801D4836; // type:object size:0x2 data:2byte +dataCurveNum = .sbss:0x801D4838; // type:object size:0x2 data:2byte +dataSmpSDirNum = .sbss:0x801D483A; // type:object size:0x2 data:2byte lbl_801D4840 = .sbss:0x801D4840; // type:object size:0x8 data:4byte lbl_801D4848 = .sbss:0x801D4848; // type:object size:0x4 data:4byte lbl_801D484C = .sbss:0x801D484C; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 348d18a2..da612bdb 100644 --- a/configure.py +++ b/configure.py @@ -179,6 +179,32 @@ 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", +] + +cflags_musyx = [ + "-proc gekko", + "-nodefaults", + "-nosyspath", + "-i include", + "-inline auto", + "-O4,p", + "-fp hard", + "-enum int", + "-Cpp_exceptions off", + "-str reuse,pool,readonly", + "-fp_contract off", + "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", +] + # REL flags cflags_rel = [ *cflags_base, @@ -215,6 +241,21 @@ def DolphinLib(lib_name, objects): "objects": objects, } +def MusyX(objects, mw_version="GC/2.6", debug=False, major=2, minor=0, patch=0): + cflags = cflags_musyx if not debug else cflags_musyx_debug + return { + "lib": "musyx", + "mw_version": mw_version, + "src_dir": "extern/musyx/src", + "host": False, + "cflags": [ + *cflags, + f"-DMUSY_VERSION_MAJOR={major}", + f"-DMUSY_VERSION_MINOR={minor}", + f"-DMUSY_VERSION_PATCH={patch}", + ], + "objects": objects, + } # Helper function for REL script objects def Rel(lib_name, objects): @@ -559,6 +600,56 @@ 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"), + ], + }, + MusyX( + objects={ + Object(NonMatching, "musyx/runtime/seq.c"), + Object(NonMatching, "musyx/runtime/synth.c"), + Object(NonMatching, "musyx/runtime/seq_api.c"), + Object(NonMatching, "musyx/runtime/snd_synthapi.c"), + Object(NonMatching, "musyx/runtime/stream.c"), + Object(NonMatching, "musyx/runtime/synthdata.c"), + } + ), + { + "lib": "musyx", + "mw_version": config.linker_version, + "cflags": cflags_rel, + "host": False, + "objects": [ + Object(Matching, "REL/executor.c"), + Object(Matching, "REL/empty.c"), # Must be marked as matching + ], + }, { "lib": "REL", "mw_version": config.linker_version,