diff --git a/src/wpc/capcom.c b/src/wpc/capcom.c index c02b7e232..1b953e5c9 100644 --- a/src/wpc/capcom.c +++ b/src/wpc/capcom.c @@ -763,6 +763,15 @@ static MACHINE_INIT(cc) { coreGlobals.flipperCoils = 0xFFFFFFFFFFFF0908ull; core_set_pwm_output_type(CORE_MODOUT_SOL0 + 21 - 1, 11, CORE_MODOUT_BULB_89_20V_DC_WPC); } + // Defaults to 2 state legacy integrator for better backward compatibility + if ((options.usemodsol & (CORE_MODOUT_ENABLE_PHYSOUT_SOLENOIDS | CORE_MODOUT_ENABLE_MODSOL)) == 0) + for (int i = 0; i < coreGlobals.nSolenoids; i++) + if (coreGlobals.physicOutputState[i].type != CORE_MODOUT_SOL_2_STATE) + core_set_pwm_output_type(CORE_MODOUT_SOL0, 1, CORE_MODOUT_LEGACY_SOL_2_STATE); + if ((options.usemodsol & CORE_MODOUT_ENABLE_PHYSOUT_LAMPS) == 0) + core_set_pwm_output_type(CORE_MODOUT_LAMP0, 80 /*coreGlobals.nLamps*/, CORE_MODOUT_LEGACY_SOL_2_STATE); + if ((options.usemodsol & CORE_MODOUT_ENABLE_PHYSOUT_GI) == 0) + core_set_pwm_output_type(CORE_MODOUT_GI0, coreGlobals.nGI, CORE_MODOUT_LEGACY_SOL_2_STATE); //Init soundboard sndbrd_0_init(core_gameData->hw.soundBoard, CAPCOMS_CPUNO, memory_region(CAPCOMS_ROMREGION),NULL,NULL); diff --git a/src/wpc/sam.c b/src/wpc/sam.c index e420da692..625b6ba43 100644 --- a/src/wpc/sam.c +++ b/src/wpc/sam.c @@ -1444,6 +1444,15 @@ static MACHINE_INIT(sam) { core_set_pwm_output_type(CORE_MODOUT_SOL0 + 25 - 1, 1, CORE_MODOUT_BULB_89_20V_DC_WPC); core_set_pwm_output_type(CORE_MODOUT_SOL0 + 28 - 1, 5, CORE_MODOUT_BULB_89_20V_DC_WPC); } + // Defaults to 2 state legacy integrator for better backward compatibility + if ((options.usemodsol & (CORE_MODOUT_ENABLE_PHYSOUT_SOLENOIDS | CORE_MODOUT_ENABLE_MODSOL)) == 0) + for (int i = 0; i < coreGlobals.nSolenoids; i++) + if (coreGlobals.physicOutputState[i].type != CORE_MODOUT_SOL_2_STATE) + core_set_pwm_output_type(CORE_MODOUT_SOL0, 1, CORE_MODOUT_LEGACY_SOL_2_STATE); + if ((options.usemodsol & CORE_MODOUT_ENABLE_PHYSOUT_LAMPS) == 0) + core_set_pwm_output_type(CORE_MODOUT_LAMP0, 80 /*coreGlobals.nLamps*/, CORE_MODOUT_LEGACY_SOL_2_STATE); + if ((options.usemodsol & CORE_MODOUT_ENABLE_PHYSOUT_GI) == 0) + core_set_pwm_output_type(CORE_MODOUT_GI0, coreGlobals.nGI, CORE_MODOUT_LEGACY_SOL_2_STATE); } void sam_init(void)