summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/mid2agb/agb.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/tools/mid2agb/agb.cpp b/tools/mid2agb/agb.cpp
index e3e5d8efe..9ff1efa86 100644
--- a/tools/mid2agb/agb.cpp
+++ b/tools/mid2agb/agb.cpp
@@ -37,6 +37,7 @@ static int s_lastVelocity;
static bool s_noteChanged;
static bool s_velocityChanged;
static bool s_inPattern;
+static int s_extendedCommand;
void PrintAgbHeader()
{
@@ -246,6 +247,24 @@ void PrintSeqLoopLabel(const Event& event)
ResetTrackVars();
}
+void PrintExtendedOp(const Event& event)
+{
+ // TODO: support for other extended commands
+
+ switch (s_extendedCommand)
+ {
+ case 0x08:
+ PrintOp(event.time, "XCMD ", "xIECV , %u", event.param2);
+ break;
+ case 0x09:
+ PrintOp(event.time, "XCMD ", "xIECL , %u", event.param2);
+ break;
+ default:
+ PrintWait(event.time);
+ break;
+ }
+}
+
void PrintControllerOp(const Event& event)
{
switch (event.param1)
@@ -294,9 +313,10 @@ void PrintControllerOp(const Event& event)
break;
case 0x1D:
case 0x1F:
- // TODO: extended op
+ PrintExtendedOp(event);
break;
case 0x1E:
+ s_extendedCommand = event.param2;
// TODO: loop op
break;
case 0x21: