diff --git a/Source/Core/Core/BootManager.cpp b/Source/Core/Core/BootManager.cpp index c5a526d262..ea26339e57 100644 --- a/Source/Core/Core/BootManager.cpp +++ b/Source/Core/Core/BootManager.cpp @@ -133,6 +133,21 @@ bool BootCore(Core::System& system, std::unique_ptr boot, if (!boot->riivolution_patches.empty()) Config::SetCurrent(Config::MAIN_FAST_DISC_SPEED, true); + if (system.IsTriforce()) + { + // Attach Triforce Baseboard hardware if not overridden in any layer. + // Users may set these in their GameConfig if they want them not automatically attached. + if (GetActiveLayerForConfig(Config::MAIN_SERIAL_PORT_1) == Config::LayerType::Base) + { + Config::SetCurrent(Config::MAIN_SERIAL_PORT_1, ExpansionInterface::EXIDeviceType::Baseboard); + } + if (GetActiveLayerForConfig(Config::GetInfoForSIDevice(0)) == Config::LayerType::Base) + { + Config::SetCurrent(Config::GetInfoForSIDevice(0), + SerialInterface::SIDevices::SIDEVICE_AM_BASEBOARD); + } + } + system.Initialize(); Core::UpdateWantDeterminism(system, /*initial*/ true);