This is working great now for Hard Drivin' compact and Race Drivin' compact but that damn Hard Drivin's Airborne is being a pain in the ass!
April 25, 2024, 08:11:56 am
PORT_START("mainpcb:SW1") /* 60c002 */
// Virtual DIP switches here
PORT_DIPNAME( 0x700, 0x100, "Toggle Calibration Wheel or Game Wheel 1-2" )
PORT_DIPSETTING( 0x100, "Game Wheel 1" )
PORT_DIPSETTING( 0x300, "Game Wheel 2" )
PORT_DIPSETTING( 0x400, "Calibration Wheel" )
//Hardware DIP switches continue here
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("1st Gear")
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("2nd Gear")
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("3rd Gear")
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("4th Gear")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("1: Use DIP Switch & choose calibration wheel to calibrate wheel in test menu!")
PORT_BIT(0x10000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("2: Map Calibration Wheel Analogue Inc to Kbd Right!")
PORT_BIT(0x20000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("3: Hold down Kbd Right until you reach 4 turns!")
PORT_BIT(0x40000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("4: Let go of Kbd Right and turn key!")
PORT_BIT(0x80000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("5: Switch back to Game Wheel 1 or 2 after Test Menu calibration complete!")
PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 - steering wheel */
/* Game Steering Wheel 1 */
PORT_BIT(0xfff, 0x800, IPT_PADDLE) PORT_CONDITION("mainpcb:SW1", 0x700, EQUALS, 0x100) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(1) PORT_KEYDELTA(0) PORT_NAME("Game Wheel 1")
/* Game Steering Wheel 2 */
PORT_BIT(0xffff, 0x0800, IPT_PADDLE) PORT_CONDITION("mainpcb:SW1", 0x700, EQUALS, 0x300) PORT_MINMAX(0x0440, 0x0bc0) PORT_SENSITIVITY(1) PORT_KEYDELTA(0) PORT_NAME("Game Wheel 2")
/* Calibration Wheel */
PORT_BIT(0xffff, 0x0000, IPT_PADDLE) PORT_CONDITION("mainpcb:SW1", 0x700, EQUALS, 0x400) PORT_MINMAX(0x0000, 0x2800) PORT_SENSITIVITY(1) PORT_KEYDELTA(0) PORT_NAME("Calibration Wheel")
Looks really nice. I wish I had access to a 3D printer but if I bought one I know I'd only use it a couple of times a year, if that. It looks like it provides options for things that would be too difficult to make by hand. Opens up a lot of possibilities.