@@ -443,15 +443,21 @@ void SettingsDialog::createHardwareTab()
443443 QVBoxLayout* displayLayout = new QVBoxLayout (displayGroup);
444444
445445 m_xep80Enabled = new QCheckBox (" XEP80" );
446- m_xep80Enabled->setToolTip (" Enable XEP80 80-column display interface" );
446+ m_xep80Enabled->setToolTip (" Enable XEP80 80-column display interface (Currently disabled - needs more work)" );
447+ m_xep80Enabled->setChecked (false );
448+ m_xep80Enabled->setEnabled (false );
447449 displayLayout->addWidget (m_xep80Enabled);
448450
449451 m_af80Enabled = new QCheckBox (" Austin Franklin 80" );
450- m_af80Enabled->setToolTip (" Enable Austin Franklin 80-column display board" );
452+ m_af80Enabled->setToolTip (" Enable Austin Franklin 80-column display board (Currently disabled - needs more work)" );
453+ m_af80Enabled->setChecked (false );
454+ m_af80Enabled->setEnabled (false );
451455 displayLayout->addWidget (m_af80Enabled);
452456
453457 m_bit3Enabled = new QCheckBox (" Bit3 Full View 80" );
454- m_bit3Enabled->setToolTip (" Enable Bit3 Full View 80-column display board" );
458+ m_bit3Enabled->setToolTip (" Enable Bit3 Full View 80-column display board (Currently disabled - needs more work)" );
459+ m_bit3Enabled->setChecked (false );
460+ m_bit3Enabled->setEnabled (false );
455461 displayLayout->addWidget (m_bit3Enabled);
456462
457463 rightColumn->addWidget (displayGroup);
@@ -469,7 +475,9 @@ void SettingsDialog::createHardwareTab()
469475 pbiLayout->addWidget (m_atari1450Enabled);
470476
471477 m_proto80Enabled = new QCheckBox (" Proto 80-Column" );
472- m_proto80Enabled->setToolTip (" Enable prototype 80-column board for 1090" );
478+ m_proto80Enabled->setToolTip (" Enable prototype 80-column board for 1090 (Currently disabled - needs more work)" );
479+ m_proto80Enabled->setChecked (false );
480+ m_proto80Enabled->setEnabled (false );
473481 pbiLayout->addWidget (m_proto80Enabled);
474482
475483 // Voice Synthesis
@@ -725,7 +733,9 @@ void SettingsDialog::createVideoDisplayTab()
725733 displayCol3->addLayout (fitScreenRow);
726734
727735 m_show80Column = new QCheckBox (" Enable 80-Column Display" );
728- m_show80Column->setToolTip (" Show 80-column text mode (requires compatible software)" );
736+ m_show80Column->setToolTip (" Show 80-column text mode (Currently disabled - needs more work)" );
737+ m_show80Column->setChecked (false );
738+ m_show80Column->setEnabled (false );
729739 displayCol3->addWidget (m_show80Column);
730740
731741 m_vSyncEnabled = new QCheckBox (" Enable Vertical Sync" );
@@ -2047,15 +2057,25 @@ void SettingsDialog::loadSettings()
20472057 m_stereoPokey->setChecked (settings.value (" hardware/stereoPokey" , false ).toBool ());
20482058 m_sioAcceleration->setChecked (settings.value (" hardware/sioAcceleration" , true ).toBool ());
20492059
2050- // 80-Column Cards
2051- m_xep80Enabled->setChecked (settings.value (" hardware/xep80" , false ).toBool ());
2052- m_af80Enabled->setChecked (settings.value (" hardware/af80" , false ).toBool ());
2053- m_bit3Enabled->setChecked (settings.value (" hardware/bit3" , false ).toBool ());
2060+ // 80-Column Cards - Disabled until properly implemented
2061+ // m_xep80Enabled->setChecked(settings.value("hardware/xep80", false).toBool());
2062+ // m_af80Enabled->setChecked(settings.value("hardware/af80", false).toBool());
2063+ // m_bit3Enabled->setChecked(settings.value("hardware/bit3", false).toBool());
2064+ // Always keep them unchecked and disabled
2065+ m_xep80Enabled->setChecked (false );
2066+ m_xep80Enabled->setEnabled (false );
2067+ m_af80Enabled->setChecked (false );
2068+ m_af80Enabled->setEnabled (false );
2069+ m_bit3Enabled->setChecked (false );
2070+ m_bit3Enabled->setEnabled (false );
20542071
20552072 // PBI Extensions
20562073 m_atari1400Enabled->setChecked (settings.value (" hardware/atari1400" , false ).toBool ());
20572074 m_atari1450Enabled->setChecked (settings.value (" hardware/atari1450" , false ).toBool ());
2058- m_proto80Enabled->setChecked (settings.value (" hardware/proto80" , false ).toBool ());
2075+ // m_proto80Enabled->setChecked(settings.value("hardware/proto80", false).toBool());
2076+ // Always keep proto80 unchecked and disabled
2077+ m_proto80Enabled->setChecked (false );
2078+ m_proto80Enabled->setEnabled (false );
20592079
20602080 // Load Audio Configuration
20612081 m_soundEnabled->setChecked (settings.value (" audio/enabled" , true ).toBool ());
@@ -2133,7 +2153,10 @@ void SettingsDialog::loadSettings()
21332153 }
21342154 }
21352155
2136- m_show80Column->setChecked (settings.value (" video/show80Column" , false ).toBool ());
2156+ // m_show80Column->setChecked(settings.value("video/show80Column", false).toBool());
2157+ // Always keep 80-column display unchecked and disabled
2158+ m_show80Column->setChecked (false );
2159+ m_show80Column->setEnabled (false );
21372160 m_vSyncEnabled->setChecked (settings.value (" video/vSyncEnabled" , false ).toBool ());
21382161
21392162 QString palBlending = settings.value (" video/palBlending" , " simple" ).toString ();
@@ -2399,15 +2422,21 @@ void SettingsDialog::saveSettings()
23992422 settings.setValue (" hardware/stereoPokey" , m_stereoPokey->isChecked ());
24002423 settings.setValue (" hardware/sioAcceleration" , m_sioAcceleration->isChecked ());
24012424
2402- // 80-Column Cards
2403- settings.setValue (" hardware/xep80" , m_xep80Enabled->isChecked ());
2404- settings.setValue (" hardware/af80" , m_af80Enabled->isChecked ());
2405- settings.setValue (" hardware/bit3" , m_bit3Enabled->isChecked ());
2425+ // 80-Column Cards - Disabled until properly implemented
2426+ // settings.setValue("hardware/xep80", m_xep80Enabled->isChecked());
2427+ // settings.setValue("hardware/af80", m_af80Enabled->isChecked());
2428+ // settings.setValue("hardware/bit3", m_bit3Enabled->isChecked());
2429+ // Always save as false
2430+ settings.setValue (" hardware/xep80" , false );
2431+ settings.setValue (" hardware/af80" , false );
2432+ settings.setValue (" hardware/bit3" , false );
24062433
24072434 // PBI Extensions
24082435 settings.setValue (" hardware/atari1400" , m_atari1400Enabled->isChecked ());
24092436 settings.setValue (" hardware/atari1450" , m_atari1450Enabled->isChecked ());
2410- settings.setValue (" hardware/proto80" , m_proto80Enabled->isChecked ());
2437+ // settings.setValue("hardware/proto80", m_proto80Enabled->isChecked());
2438+ // Always save as false
2439+ settings.setValue (" hardware/proto80" , false );
24112440
24122441 // Save Audio Configuration
24132442 settings.setValue (" audio/enabled" , m_soundEnabled->isChecked ());
@@ -2435,7 +2464,9 @@ void SettingsDialog::saveSettings()
24352464 settings.setValue (" video/horizontalShift" , m_horizontalShift->value ());
24362465 settings.setValue (" video/verticalShift" , m_verticalShift->value ());
24372466 settings.setValue (" video/fitScreen" , m_fitScreen->currentData ().toString ());
2438- settings.setValue (" video/show80Column" , m_show80Column->isChecked ());
2467+ // settings.setValue("video/show80Column", m_show80Column->isChecked());
2468+ // Always save as false
2469+ settings.setValue (" video/show80Column" , false );
24392470 settings.setValue (" video/vSyncEnabled" , m_vSyncEnabled->isChecked ());
24402471 settings.setValue (" video/palBlending" , m_palBlending->currentData ().toString ());
24412472 // FUTURE: Save universal scanlines settings (commented out - not working)
@@ -2685,12 +2716,44 @@ void SettingsDialog::applySettings()
26852716 saveSettings ();
26862717
26872718 if (needsRestart) {
2719+ // Update emulator properties with new values BEFORE restart
2720+ QString machineType = m_machineTypeCombo->currentData ().toString ();
2721+ QString videoSystem = m_videoSystemCombo->currentData ().toString ();
2722+ bool basicEnabled = m_basicEnabledCheck->isChecked ();
2723+ bool altirraOSEnabled = m_altirraOSCheck->isChecked ();
2724+ bool altirraBASICEnabled = m_altirraBASICCheck->isChecked ();
2725+
2726+ // Get the OS ROM path for the current machine type
2727+ QString osRomKey = QString (" machine/osRom_%1" ).arg (machineType.mid (1 )); // Remove the '-' prefix
2728+ QSettings settings (" 8bitrelics" , " Fujisan" );
2729+ QString osRomPath = settings.value (osRomKey, " " ).toString ();
2730+ QString basicRomPath = settings.value (" machine/basicRom" , " " ).toString ();
2731+
2732+ // Set all the new values on the emulator object
2733+ m_emulator->setMachineType (machineType);
2734+ m_emulator->setVideoSystem (videoSystem);
2735+ m_emulator->setBasicEnabled (basicEnabled);
2736+ m_emulator->setAltirraOSEnabled (altirraOSEnabled);
2737+ m_emulator->setAltirraBASICEnabled (altirraBASICEnabled);
2738+ m_emulator->setOSRomPath (osRomPath);
2739+ m_emulator->setBasicRomPath (basicRomPath);
2740+
2741+ qDebug () << " Updated emulator properties before restart:" ;
2742+ qDebug () << " Machine type:" << machineType;
2743+ qDebug () << " Video system:" << videoSystem;
2744+ qDebug () << " Basic enabled:" << basicEnabled;
2745+ qDebug () << " Altirra OS:" << altirraOSEnabled;
2746+ qDebug () << " Altirra BASIC:" << altirraBASICEnabled;
2747+ qDebug () << " OS ROM path:" << osRomPath;
2748+ qDebug () << " BASIC ROM path:" << basicRomPath;
2749+
26882750 // Full restart needed for machine/video/OS settings
26892751 m_emulator->shutdown ();
26902752
26912753 // Get artifact settings from UI
26922754 QString artifactMode = m_artifactingMode->currentData ().toString ();
26932755
2756+ // Now initialize with the updated values from the emulator object
26942757 if (m_emulator->initializeWithInputConfig (
26952758 m_emulator->isBasicEnabled (),
26962759 m_emulator->getMachineType (),
@@ -2752,7 +2815,8 @@ void SettingsDialog::triggerNetSIORestart(bool netSIOEnabled)
27522815 int horizontalShift = m_horizontalShift->value ();
27532816 int verticalShift = m_verticalShift->value ();
27542817 QString fitScreen = m_fitScreen->currentData ().toString ();
2755- bool show80Column = m_show80Column->isChecked ();
2818+ // bool show80Column = m_show80Column->isChecked();
2819+ bool show80Column = false ; // Always false until properly implemented
27562820 bool vSyncEnabled = m_vSyncEnabled->isChecked ();
27572821 bool kbdJoy0Enabled = m_emulator->isKbdJoy0Enabled ();
27582822 bool kbdJoy1Enabled = m_emulator->isKbdJoy1Enabled ();
@@ -2839,15 +2903,19 @@ void SettingsDialog::restoreDefaults()
28392903 m_stereoPokey->setChecked (false );
28402904 m_sioAcceleration->setChecked (true );
28412905
2842- // 80-Column Cards defaults
2906+ // 80-Column Cards defaults - Disabled until properly implemented
28432907 m_xep80Enabled->setChecked (false );
2908+ m_xep80Enabled->setEnabled (false );
28442909 m_af80Enabled->setChecked (false );
2910+ m_af80Enabled->setEnabled (false );
28452911 m_bit3Enabled->setChecked (false );
2912+ m_bit3Enabled->setEnabled (false );
28462913
28472914 // PBI Extensions defaults
28482915 m_atari1400Enabled->setChecked (false );
28492916 m_atari1450Enabled->setChecked (false );
28502917 m_proto80Enabled->setChecked (false );
2918+ m_proto80Enabled->setEnabled (false );
28512919
28522920 // Audio Configuration defaults
28532921 m_soundEnabled->setChecked (true );
@@ -2876,7 +2944,8 @@ void SettingsDialog::restoreDefaults()
28762944 m_horizontalShift->setValue (0 ); // No shift
28772945 m_verticalShift->setValue (0 ); // No shift
28782946 m_fitScreen->setCurrentIndex (2 ); // Fit Both
2879- m_show80Column->setChecked (false ); // Standard display
2947+ m_show80Column->setChecked (false ); // Standard display - Disabled until properly implemented
2948+ m_show80Column->setEnabled (false );
28802949 m_vSyncEnabled->setChecked (false ); // VSync off (for performance)
28812950
28822951 m_palBlending->setCurrentIndex (1 ); // Simple
@@ -3057,7 +3126,8 @@ ConfigurationProfile SettingsDialog::getCurrentUIState() const
30573126 profile.horizontalShift = m_horizontalShift->value ();
30583127 profile.verticalShift = m_verticalShift->value ();
30593128 profile.fitScreen = m_fitScreen->currentData ().toString ();
3060- profile.show80Column = m_show80Column->isChecked ();
3129+ // profile.show80Column = m_show80Column->isChecked();
3130+ profile.show80Column = false ; // Always false until properly implemented
30613131 profile.vSyncEnabled = m_vSyncEnabled->isChecked ();
30623132
30633133 // Color Settings
@@ -3135,12 +3205,17 @@ ConfigurationProfile SettingsDialog::getCurrentUIState() const
31353205 profile.printer .printerType = " Generic" ;
31363206
31373207 // Hardware Extensions
3138- profile.xep80Enabled = m_xep80Enabled->isChecked ();
3139- profile.af80Enabled = m_af80Enabled->isChecked ();
3140- profile.bit3Enabled = m_bit3Enabled->isChecked ();
3208+ // 80-column options disabled until properly implemented
3209+ // profile.xep80Enabled = m_xep80Enabled->isChecked();
3210+ // profile.af80Enabled = m_af80Enabled->isChecked();
3211+ // profile.bit3Enabled = m_bit3Enabled->isChecked();
3212+ profile.xep80Enabled = false ;
3213+ profile.af80Enabled = false ;
3214+ profile.bit3Enabled = false ;
31413215 profile.atari1400Enabled = m_atari1400Enabled->isChecked ();
31423216 profile.atari1450Enabled = m_atari1450Enabled->isChecked ();
3143- profile.proto80Enabled = m_proto80Enabled->isChecked ();
3217+ // profile.proto80Enabled = m_proto80Enabled->isChecked();
3218+ profile.proto80Enabled = false ;
31443219 profile.voiceboxEnabled = m_voiceboxEnabled->isChecked ();
31453220 profile.sioAcceleration = m_sioAcceleration->isChecked ();
31463221
@@ -3247,7 +3322,10 @@ void SettingsDialog::loadProfileToUI(const ConfigurationProfile& profile)
32473322 }
32483323 }
32493324
3250- m_show80Column->setChecked (profile.show80Column );
3325+ // m_show80Column->setChecked(profile.show80Column);
3326+ // Always keep disabled until properly implemented
3327+ m_show80Column->setChecked (false );
3328+ m_show80Column->setEnabled (false );
32513329 m_vSyncEnabled->setChecked (profile.vSyncEnabled );
32523330
32533331 // Color Settings - block individual slider signals to prevent visual bouncing
@@ -3376,12 +3454,21 @@ void SettingsDialog::loadProfileToUI(const ConfigurationProfile& profile)
33763454 onNetSIOToggled (m_netSIOEnabled->isChecked ());
33773455
33783456 // Hardware Extensions
3379- m_xep80Enabled->setChecked (profile.xep80Enabled );
3380- m_af80Enabled->setChecked (profile.af80Enabled );
3381- m_bit3Enabled->setChecked (profile.bit3Enabled );
3457+ // 80-column options disabled until properly implemented
3458+ // m_xep80Enabled->setChecked(profile.xep80Enabled);
3459+ // m_af80Enabled->setChecked(profile.af80Enabled);
3460+ // m_bit3Enabled->setChecked(profile.bit3Enabled);
3461+ m_xep80Enabled->setChecked (false );
3462+ m_xep80Enabled->setEnabled (false );
3463+ m_af80Enabled->setChecked (false );
3464+ m_af80Enabled->setEnabled (false );
3465+ m_bit3Enabled->setChecked (false );
3466+ m_bit3Enabled->setEnabled (false );
33823467 m_atari1400Enabled->setChecked (profile.atari1400Enabled );
33833468 m_atari1450Enabled->setChecked (profile.atari1450Enabled );
3384- m_proto80Enabled->setChecked (profile.proto80Enabled );
3469+ // m_proto80Enabled->setChecked(profile.proto80Enabled);
3470+ m_proto80Enabled->setChecked (false );
3471+ m_proto80Enabled->setEnabled (false );
33853472 m_voiceboxEnabled->setChecked (profile.voiceboxEnabled );
33863473 m_sioAcceleration->setChecked (profile.sioAcceleration );
33873474
0 commit comments