From df289f4acaf547acd81748dcd0d591e4449bd36d Mon Sep 17 00:00:00 2001 From: tomcw Date: Sun, 12 May 2024 20:15:38 +0100 Subject: [PATCH] A few minor fixes --- source/SSI263.cpp | 9 +++++---- source/SSI263.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/SSI263.cpp b/source/SSI263.cpp index e46abd90..6e401359 100644 --- a/source/SSI263.cpp +++ b/source/SSI263.cpp @@ -191,6 +191,7 @@ void SSI263::Write(BYTE nReg, BYTE nValue) } // Device out of power down / "standby" mode, so play phoneme + m_isVotraxPhoneme = false; Play(m_durationPhoneme & PHONEME_MASK); } @@ -742,7 +743,7 @@ void SSI263::UpdateIRQ(void) // Pre: m_isVotraxPhoneme, m_cardMode, m_device void SSI263::SetSpeechIRQ(void) { - if (!m_isVotraxPhoneme && ((m_ctrlArtAmp & CONTROL_MASK) == 0)) + if (!m_isVotraxPhoneme && (m_ctrlArtAmp & CONTROL_MASK) == 0) { if (m_currentMode.enableInts) { @@ -958,7 +959,7 @@ void SSI263::LoadSnapshot(YamlLoadHelper& yamlLoadHelper, PHASOR_MODE mode, UINT SetCardMode(mode); // Only need to directly assert IRQ for Phasor mode (for Mockingboard mode it's done via UpdateIFR() in parent) - if (m_cardMode == PH_Phasor && m_currentMode.enableInts && m_currentMode.D7 == 1) + if (m_cardMode == PH_Phasor && (m_ctrlArtAmp & CONTROL_MASK) == 0 && m_currentMode.enableInts && m_currentMode.D7 == 1) CpuIrqAssert(IS_SPEECH); if (IsPhonemeActive()) @@ -969,7 +970,7 @@ void SSI263::LoadSnapshot(YamlLoadHelper& yamlLoadHelper, PHASOR_MODE mode, UINT //============================================================================= -#define SS_YAML_KEY_SSI263 "SC01" +#define SS_YAML_KEY_SC01 "SC01" // NB. No version - this is determined by the parent "Mockingboard C" or "Phasor" unit #define SS_YAML_KEY_SC01_PHONEME "SC01 Phoneme" @@ -980,7 +981,7 @@ void SSI263::SC01_SaveSnapshot(YamlSaveHelper& yamlSaveHelper, bool hasSC01) if (!hasSC01) return; - YamlSaveHelper::Label label(yamlSaveHelper, "%s:\n", SS_YAML_KEY_SSI263); + YamlSaveHelper::Label label(yamlSaveHelper, "%s:\n", SS_YAML_KEY_SC01); yamlSaveHelper.SaveHexUint8(SS_YAML_KEY_SC01_PHONEME, m_votraxPhoneme); yamlSaveHelper.SaveBool(SS_YAML_KEY_SC01_ACTIVE_PHONEME, m_isVotraxPhoneme); diff --git a/source/SSI263.h b/source/SSI263.h index fe0147f5..9d18fe1d 100644 --- a/source/SSI263.h +++ b/source/SSI263.h @@ -143,7 +143,7 @@ private: PHASOR_MODE m_cardMode; short* m_pPhonemeData00; - int m_currentActivePhoneme; + int m_currentActivePhoneme; // -1 (if none) or SSI263 or SC01 phoneme bool m_isVotraxPhoneme; BYTE m_votraxPhoneme; UINT m_cyclesThisAudioFrame;