Skip to content

Commit a1b8d4d

Browse files
committed
Disable 80-column display support pending proper implementation
This change temporarily disables all 80-column display hardware options and the main 80-column display setting in the UI to prevent user confusion and potential issues: - Disabled XEP80, Austin Franklin 80, Bit3 Full View 80, and Proto 80-Column hardware options - Disabled the main "Enable 80-Column Display" video setting - All affected checkboxes are now unchecked and grayed out with tooltips explaining they need more work - Settings are forced to false in save/load operations to ensure consistent state - Updated CLAUDE.md with build script version requirements and build error handling notes The 80-column display functionality requires additional implementation work to function correctly. These options will be re-enabled once the underlying support is properly implemented and tested.
1 parent 6d38e3d commit a1b8d4d

File tree

3 files changed

+121
-31
lines changed

3 files changed

+121
-31
lines changed

CLAUDE.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ Fujisan is a modern Qt5-based frontend for the Atari800 emulator that provides a
3434
# - fujisan_{version}_amd64.deb (Debian/Ubuntu)
3535
```
3636

37+
* You will need to add the --version vX.Y.Z to all build commands using build.sh
38+
* Use the agent build-error-fixer when there are build errors
39+
3740
## Development Environment
3841

3942
### Container and Docker Management

src/atariemulator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3001,4 +3001,4 @@ void AtariEmulator::checkBreakpoints()
30013001
}
30023002
}
30033003

3004-
// Double buffering audio implementation (inspired by Atari800MacX)
3004+
// Double buffering audio implementation (inspired by Atari800MacX)

src/settingsdialog.cpp

Lines changed: 117 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)