1
0
Fork 0

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
This commit is contained in:
ripsaw8080 2019-02-04 15:18:49 +00:00
parent 4d35f0ef27
commit 88bc1944e8

View file

@ -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;
}