From feb25dba565fb7b7ca029003e572e12465d4ff0c Mon Sep 17 00:00:00 2001 From: Andreas Zdziarstek Date: Thu, 6 May 2021 22:16:35 +0200 Subject: [PATCH] Timing fix for intelligent MPU401s (Issue #2) --- dos_bin/MT32-PI.EXE | Bin 16318 -> 16316 bytes dos_src/midi_dev.c | 7 +++++++ 2 files changed, 7 insertions(+) diff --git a/dos_bin/MT32-PI.EXE b/dos_bin/MT32-PI.EXE index 08178954a5cc8c79669e466c78e8071aec4f19e0..c5333fc0d6c67d136fcbd67347bde5284845c9f2 100644 GIT binary patch delta 15935 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̞pAa^IcP>AKKBZQ{zD~p;L#lkG0P?*Hek}h30 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 P|DuPa{_{|GLE`@hgBjF8 delta 15908 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 diff --git a/dos_src/midi_dev.c b/dos_src/midi_dev.c index 18789ba..f6c0e6b 100644 --- a/dos_src/midi_dev.c +++ b/dos_src/midi_dev.c @@ -5,6 +5,7 @@ #include "midi_dev.h" #include "getopt.h" #include "mpu401.h" +#include "delay.h" static int mpubase = 0x330; @@ -16,6 +17,12 @@ int mididev_init(void) { return -1; } mpu401_uart(mpubase); + + /* + * Wait for 100ms, some intelligent MPU-401s seem to need this. + * (should fix github.com/gmcn42/mt32-pi-control/issues/2) + */ + delay_ms(100); return 0; }