From b01aac963e8c64d111e191955f5eeffcce9ff81c Mon Sep 17 00:00:00 2001 From: Soji Yamakawa Date: Sat, 4 Jan 2025 13:33:34 -0500 Subject: [PATCH] Changed audio state version to 2 to accommodate earlier-version state file. Changed FAST_SCSI_INTERVAL from 1us to 5us. --- src/towns/scsi/scsi.h | 2 +- src/towns/sound/sound.cpp | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/towns/scsi/scsi.h b/src/towns/scsi/scsi.h index 19bdecf8..0cf3f962 100644 --- a/src/towns/scsi/scsi.h +++ b/src/towns/scsi/scsi.h @@ -102,7 +102,7 @@ class TownsSCSI : public Device STATUS_DELAY=500000, IOTHREAD_WAIT_INTERVAL=100000, - FAST_SCSI_INTERVAL=1000, // 1us. + FAST_SCSI_INTERVAL=5000, // 5us. Changed 1us to 5us on request from BCC. 1us is too fast for Linux, but 5us looks ok. }; bool fastMode=false; diff --git a/src/towns/sound/sound.cpp b/src/towns/sound/sound.cpp index edb41f20..c0f6d758 100644 --- a/src/towns/sound/sound.cpp +++ b/src/towns/sound/sound.cpp @@ -800,12 +800,13 @@ void TownsSound::DeserializeRF5C68(const unsigned char *&data) /* virtual */ uint32_t TownsSound::SerializeVersion(void) const { - return 1; + // Version 2: Added audioFlag + return 2; } /* virtual */ void TownsSound::SpecificSerialize(std::vector &data,std::string stateFName) const { PushUint32(data,state.muteFlag); - PushUint32(data,state.audioFlag); + PushUint32(data,state.audioFlag); // Version 2 PushUint32(data,state.addrLatch[0]); PushUint32(data,state.addrLatch[1]); SerializeYM2612(data); @@ -814,7 +815,14 @@ void TownsSound::DeserializeRF5C68(const unsigned char *&data) /* virtual */ bool TownsSound::SpecificDeserialize(const unsigned char *&data,std::string stateFName,uint32_t version) { state.muteFlag=ReadUint32(data); - state.audioFlag=ReadUint32(data); + if(2<=version) + { + state.audioFlag=ReadUint32(data); + } + else + { + state.audioFlag=0x40; + } state.addrLatch[0]=ReadUint32(data); state.addrLatch[1]=ReadUint32(data); DeserializeYM2612(data,version);