diff --git a/src/CxbxKrnl/EmuXapi.cpp b/src/CxbxKrnl/EmuXapi.cpp index 189879d59..59a765531 100644 --- a/src/CxbxKrnl/EmuXapi.cpp +++ b/src/CxbxKrnl/EmuXapi.cpp @@ -191,26 +191,7 @@ BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges) LOG_FUNC_END; BOOL ret = FALSE; - - if(!DeviceType->ChangeConnected) - { - *pdwInsertions = 0; - *pdwRemovals = 0; - } - else - { - *pdwInsertions = (DeviceType->CurrentConnected & ~DeviceType->PreviousConnected); - *pdwRemovals = (DeviceType->PreviousConnected & ~DeviceType->CurrentConnected); - ULONG RemoveInsert = DeviceType->ChangeConnected & - DeviceType->CurrentConnected & - DeviceType->PreviousConnected; - *pdwRemovals |= RemoveInsert; - *pdwInsertions |= RemoveInsert; - DeviceType->ChangeConnected = 0; - DeviceType->PreviousConnected = DeviceType->CurrentConnected; - ret = (*pdwInsertions | *pdwRemovals) ? TRUE : FALSE; - } - /* + // JSRF Hack: Always return no device changes // Without this, JSRF hard crashes sometime after calling this function // I HATE game specific hacks, but I've wasted three weeks trying to solve this already @@ -233,7 +214,27 @@ BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges) } *pdwRemovals = 0; - */ + +/* + if(!DeviceType->ChangeConnected) + { + *pdwInsertions = 0; + *pdwRemovals = 0; + } + else + { + *pdwInsertions = (DeviceType->CurrentConnected & ~DeviceType->PreviousConnected); + *pdwRemovals = (DeviceType->PreviousConnected & ~DeviceType->CurrentConnected); + ULONG RemoveInsert = DeviceType->ChangeConnected & + DeviceType->CurrentConnected & + DeviceType->PreviousConnected; + *pdwRemovals |= RemoveInsert; + *pdwInsertions |= RemoveInsert; + DeviceType->ChangeConnected = 0; + DeviceType->PreviousConnected = DeviceType->CurrentConnected; + ret = (*pdwInsertions | *pdwRemovals) ? TRUE : FALSE; + } +*/ RETURN(ret); }