mirror of
https://github.com/AppleWin/AppleWin.git
synced 2026-04-20 15:17:50 +00:00
Support these new cards in slots 3, 4 or 5; based on code from Lukazi. - extend Configuration's Input prop sheet page. - add save/load snapshot for both cards. - add command line switch for alt controller type (for SNES MAX card). Change to using Registry's 'Configuration\Slot 3' for slot 3 cards (Uthernet, 4Play & SNES MAX). Update help doc.
This commit is contained in:
@@ -336,21 +336,33 @@ void CPropertySheetHelper::ApplyNewConfig(const CConfigNeedingRestart& ConfigNew
|
||||
SaveCpuType(ConfigNew.m_CpuType);
|
||||
}
|
||||
|
||||
UINT slot = 4;
|
||||
UINT slot = SLOT3;
|
||||
if (CONFIG_CHANGED_LOCAL(m_Slot[slot]))
|
||||
{
|
||||
SetSlot(slot, ConfigNew.m_Slot[slot]);
|
||||
|
||||
if (ConfigNew.m_Slot[slot] == CT_Uthernet) // TODO: move this to UthernetCard object
|
||||
{
|
||||
std::string& regSection = RegGetConfigSlotSection(slot);
|
||||
RegSaveString(regSection.c_str(), REGVALUE_UTHERNET_INTERFACE, 1, ConfigNew.m_tfeInterface);
|
||||
}
|
||||
}
|
||||
|
||||
slot = SLOT4;
|
||||
if (CONFIG_CHANGED_LOCAL(m_Slot[slot]))
|
||||
SetSlot(slot, ConfigNew.m_Slot[slot]);
|
||||
|
||||
slot = 5;
|
||||
slot = SLOT5;
|
||||
if (CONFIG_CHANGED_LOCAL(m_Slot[slot]))
|
||||
SetSlot(slot, ConfigNew.m_Slot[slot]);
|
||||
|
||||
// slot = 7;
|
||||
// slot = SLOT7;
|
||||
// if (CONFIG_CHANGED_LOCAL(m_Slot[slot]))
|
||||
// SetSlot(slot, ConfigNew.m_Slot[slot]);
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_bEnableHDD))
|
||||
{
|
||||
REGSAVE(TEXT(REGVALUE_HDD_ENABLED), ConfigNew.m_bEnableHDD ? 1 : 0); // TODO: Change to REGVALUE_SLOT7
|
||||
REGSAVE(TEXT(REGVALUE_HDD_ENABLED), ConfigNew.m_bEnableHDD ? 1 : 0);
|
||||
}
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_bEnableTheFreezesF8Rom))
|
||||
@@ -362,17 +374,6 @@ void CPropertySheetHelper::ApplyNewConfig(const CConfigNeedingRestart& ConfigNew
|
||||
{
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_REFRESH_RATE), ConfigNew.m_videoRefreshRate);
|
||||
}
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_tfeEnabled))
|
||||
{
|
||||
REGSAVE(TEXT(REGVALUE_UTHERNET_ACTIVE), ConfigNew.m_tfeEnabled);
|
||||
}
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_tfeInterface))
|
||||
{
|
||||
RegSaveString(TEXT(REG_CONFIG), TEXT(REGVALUE_UTHERNET_INTERFACE), 1, ConfigNew.m_tfeInterface);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CPropertySheetHelper::ApplyNewConfig(void)
|
||||
@@ -385,13 +386,13 @@ void CPropertySheetHelper::SaveCurrentConfig(void)
|
||||
// NB. clone-type is encoded in g_Apple2Type
|
||||
m_ConfigOld.m_Apple2Type = GetApple2Type();
|
||||
m_ConfigOld.m_CpuType = GetMainCpu();
|
||||
m_ConfigOld.m_Slot[SLOT3] = GetCardMgr().QuerySlot(SLOT3);
|
||||
m_ConfigOld.m_Slot[SLOT4] = GetCardMgr().QuerySlot(SLOT4);
|
||||
m_ConfigOld.m_Slot[SLOT5] = GetCardMgr().QuerySlot(SLOT5);
|
||||
m_ConfigOld.m_Slot[SLOT6] = GetCardMgr().QuerySlot(SLOT6); // CPageDisk::HandleFloppyDriveCombo() needs this to be CT_Disk2 (temp, as will replace with PR #955)
|
||||
m_ConfigOld.m_bEnableHDD = HD_CardIsEnabled();
|
||||
m_ConfigOld.m_bEnableTheFreezesF8Rom = GetPropertySheet().GetTheFreezesF8Rom();
|
||||
m_ConfigOld.m_videoRefreshRate = GetVideo().GetVideoRefreshRate();
|
||||
m_ConfigOld.m_tfeEnabled = get_tfe_enabled();
|
||||
m_ConfigOld.m_tfeInterface = get_tfe_interface();
|
||||
|
||||
// Reset flags each time:
|
||||
@@ -407,6 +408,7 @@ void CPropertySheetHelper::RestoreCurrentConfig(void)
|
||||
// NB. clone-type is encoded in g_Apple2Type
|
||||
SetApple2Type(m_ConfigOld.m_Apple2Type);
|
||||
SetMainCpu(m_ConfigOld.m_CpuType);
|
||||
SetSlot(SLOT3, m_ConfigOld.m_Slot[SLOT3]);
|
||||
SetSlot(SLOT4, m_ConfigOld.m_Slot[SLOT4]);
|
||||
SetSlot(SLOT5, m_ConfigOld.m_Slot[SLOT5]);
|
||||
HD_SetEnabled(m_ConfigOld.m_bEnableHDD);
|
||||
@@ -465,20 +467,20 @@ bool CPropertySheetHelper::HardwareConfigChanged(HWND hWnd)
|
||||
if (CONFIG_CHANGED(m_videoRefreshRate))
|
||||
strMsgMain += ". Video refresh rate has changed\n";
|
||||
|
||||
if (CONFIG_CHANGED(m_Slot[4]))
|
||||
strMsgMain += GetSlot(4);
|
||||
if (CONFIG_CHANGED(m_Slot[SLOT3]))
|
||||
strMsgMain += GetSlot(SLOT3);
|
||||
|
||||
if (CONFIG_CHANGED(m_Slot[5]))
|
||||
strMsgMain += GetSlot(5);
|
||||
if (CONFIG_CHANGED(m_Slot[SLOT4]))
|
||||
strMsgMain += GetSlot(SLOT4);
|
||||
|
||||
if (CONFIG_CHANGED(m_Slot[SLOT5]))
|
||||
strMsgMain += GetSlot(SLOT5);
|
||||
|
||||
if (CONFIG_CHANGED(m_bEnableHDD))
|
||||
strMsgMain += ". Harddisk(s) have been plugged/unplugged\n";
|
||||
|
||||
if (CONFIG_CHANGED(m_bEnableTheFreezesF8Rom))
|
||||
strMsgMain += ". F8 ROM changed (The Freeze's F8 Rom)\n";
|
||||
|
||||
if (CONFIG_CHANGED(m_tfeEnabled) || CONFIG_CHANGED(m_tfeInterface))
|
||||
strMsgMain += ". Ethernet (TFE) Options\n";
|
||||
}
|
||||
|
||||
std::string strMsgPost("\n");
|
||||
@@ -559,6 +561,12 @@ std::string CPropertySheetHelper::GetCardName(const SS_CARDTYPE CardType)
|
||||
return "Echo";
|
||||
case CT_SAM: // Soundcard: Software Automated Mouth
|
||||
return "SAM";
|
||||
case CT_Uthernet:
|
||||
return "Uthernet";
|
||||
case CT_FourPlay:
|
||||
return "4Play";
|
||||
case CT_SNESMAX:
|
||||
return "SNES MAX";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user