From 88bc1944e8da9f494d3bb625f9e27ee582ac66b1 Mon Sep 17 00:00:00 2001 From: ripsaw8080 Date: Mon, 4 Feb 2019 15:18:49 +0000 Subject: [PATCH] Reset followed by switch to UART mode should take some time; fixes MPU detection in F29 Retaliator and Hover Force. Also minimize reset delay, which helps with MPU detection at higher cycles in games that prefer less delay, such as Bureau 13. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4190 --- src/hardware/mpu401.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hardware/mpu401.cpp b/src/hardware/mpu401.cpp index c79338a1..c5a2a77f 100644 --- a/src/hardware/mpu401.cpp +++ b/src/hardware/mpu401.cpp @@ -38,7 +38,7 @@ static void MPU401_EOIHandlerDispatch(void); #define MPU401_REVISION 0x01 #define MPU401_QUEUE 32 #define MPU401_TIMECONSTANT (60000000/1000.0f) -#define MPU401_RESETBUSY 27.0f +#define MPU401_RESETBUSY 14.0f enum MpuMode { M_UART,M_INTELLIGENT }; enum MpuDataType {T_OVERFLOW,T_MARK,T_MIDI_SYS,T_MIDI_NORM,T_COMMAND}; @@ -124,7 +124,7 @@ static Bitu MPU401_ReadStatus(Bitu port,Bitu iolen) { static void MPU401_WriteCommand(Bitu port,Bitu val,Bitu iolen) { if (mpu.mode==M_UART && val!=0xff) return; if (mpu.state.reset) { - if (mpu.state.cmd_pending || (val!=0x3f && val!=0xff)) { + if (mpu.state.cmd_pending || val!=0xff) { mpu.state.cmd_pending=val+1; return; }