kblitz: detect cold boot differently,

fidelity card: reduce duplicate port handlers
This commit is contained in:
hap 2025-01-13 17:07:24 +01:00
parent aa5cd150b3
commit dd1f5e032a
3 changed files with 68 additions and 62 deletions

View File

@ -388,68 +388,71 @@ void card_state::main_io(address_map &map)
Input Ports
*******************************************************************************/
#define SCAN_CHANGED(x) \
PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), x)
static INPUT_PORTS_START( scanner )
PORT_START("CARDS.0") // spades + jokers
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x6f) PORT_NAME("Scan: Spades A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x47) PORT_NAME("Scan: Spades 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xd7) PORT_NAME("Scan: Spades 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x27) PORT_NAME("Scan: Spades 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xb7) PORT_NAME("Scan: Spades 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x77) PORT_NAME("Scan: Spades 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xe7) PORT_NAME("Scan: Spades 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x0f) PORT_NAME("Scan: Spades 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x9f) PORT_NAME("Scan: Spades 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x5f) PORT_NAME("Scan: Spades 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xcf) PORT_NAME("Scan: Spades J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x3f) PORT_NAME("Scan: Spades Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xaf) PORT_NAME("Scan: Spades K")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xf9) PORT_NAME("Scan: Joker 1")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xed) PORT_NAME("Scan: Joker 2")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x6f) PORT_NAME("Scan: Spades A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x47) PORT_NAME("Scan: Spades 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xd7) PORT_NAME("Scan: Spades 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x27) PORT_NAME("Scan: Spades 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xb7) PORT_NAME("Scan: Spades 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x77) PORT_NAME("Scan: Spades 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xe7) PORT_NAME("Scan: Spades 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x0f) PORT_NAME("Scan: Spades 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x9f) PORT_NAME("Scan: Spades 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x5f) PORT_NAME("Scan: Spades 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xcf) PORT_NAME("Scan: Spades J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x3f) PORT_NAME("Scan: Spades Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xaf) PORT_NAME("Scan: Spades K")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xf9) PORT_NAME("Scan: Joker 1")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xed) PORT_NAME("Scan: Joker 2")
PORT_START("CARDS.1") // hearts
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x7b) PORT_NAME("Scan: Hearts A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x53) PORT_NAME("Scan: Hearts 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xc3) PORT_NAME("Scan: Hearts 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x33) PORT_NAME("Scan: Hearts 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xa3) PORT_NAME("Scan: Hearts 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x63) PORT_NAME("Scan: Hearts 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xf3) PORT_NAME("Scan: Hearts 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x1b) PORT_NAME("Scan: Hearts 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x8b) PORT_NAME("Scan: Hearts 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x4b) PORT_NAME("Scan: Hearts 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xdb) PORT_NAME("Scan: Hearts J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x2b) PORT_NAME("Scan: Hearts Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xbb) PORT_NAME("Scan: Hearts K")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x7b) PORT_NAME("Scan: Hearts A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x53) PORT_NAME("Scan: Hearts 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xc3) PORT_NAME("Scan: Hearts 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x33) PORT_NAME("Scan: Hearts 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xa3) PORT_NAME("Scan: Hearts 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x63) PORT_NAME("Scan: Hearts 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xf3) PORT_NAME("Scan: Hearts 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x1b) PORT_NAME("Scan: Hearts 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x8b) PORT_NAME("Scan: Hearts 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x4b) PORT_NAME("Scan: Hearts 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xdb) PORT_NAME("Scan: Hearts J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x2b) PORT_NAME("Scan: Hearts Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xbb) PORT_NAME("Scan: Hearts K")
PORT_START("CARDS.2") // clubs
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x69) PORT_NAME("Scan: Clubs A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x95) PORT_NAME("Scan: Clubs 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xd1) PORT_NAME("Scan: Clubs 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x93) PORT_NAME("Scan: Clubs 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xb1) PORT_NAME("Scan: Clubs 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x71) PORT_NAME("Scan: Clubs 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xe1) PORT_NAME("Scan: Clubs 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x87) PORT_NAME("Scan: Clubs 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x99) PORT_NAME("Scan: Clubs 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x59) PORT_NAME("Scan: Clubs 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xc9) PORT_NAME("Scan: Clubs J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x39) PORT_NAME("Scan: Clubs Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xa9) PORT_NAME("Scan: Clubs K")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x69) PORT_NAME("Scan: Clubs A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x95) PORT_NAME("Scan: Clubs 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xd1) PORT_NAME("Scan: Clubs 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x93) PORT_NAME("Scan: Clubs 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xb1) PORT_NAME("Scan: Clubs 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x71) PORT_NAME("Scan: Clubs 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xe1) PORT_NAME("Scan: Clubs 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x87) PORT_NAME("Scan: Clubs 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x99) PORT_NAME("Scan: Clubs 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x59) PORT_NAME("Scan: Clubs 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xc9) PORT_NAME("Scan: Clubs J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x39) PORT_NAME("Scan: Clubs Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xa9) PORT_NAME("Scan: Clubs K")
PORT_START("CARDS.3") // diamonds
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x7d) PORT_NAME("Scan: Diamonds A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x55) PORT_NAME("Scan: Diamonds 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xc5) PORT_NAME("Scan: Diamonds 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x35) PORT_NAME("Scan: Diamonds 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xa5) PORT_NAME("Scan: Diamonds 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x65) PORT_NAME("Scan: Diamonds 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xf5) PORT_NAME("Scan: Diamonds 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x1d) PORT_NAME("Scan: Diamonds 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x8d) PORT_NAME("Scan: Diamonds 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x4d) PORT_NAME("Scan: Diamonds 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xdd) PORT_NAME("Scan: Diamonds J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0x2d) PORT_NAME("Scan: Diamonds Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(card_state::start_scan), 0xbd) PORT_NAME("Scan: Diamonds K")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x7d) PORT_NAME("Scan: Diamonds A")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x55) PORT_NAME("Scan: Diamonds 2")
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xc5) PORT_NAME("Scan: Diamonds 3")
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x35) PORT_NAME("Scan: Diamonds 4")
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xa5) PORT_NAME("Scan: Diamonds 5")
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x65) PORT_NAME("Scan: Diamonds 6")
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xf5) PORT_NAME("Scan: Diamonds 7")
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x1d) PORT_NAME("Scan: Diamonds 8")
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x8d) PORT_NAME("Scan: Diamonds 9")
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x4d) PORT_NAME("Scan: Diamonds 10")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xdd) PORT_NAME("Scan: Diamonds J")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0x2d) PORT_NAME("Scan: Diamonds Q")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) SCAN_CHANGED(0xbd) PORT_NAME("Scan: Diamonds K")
INPUT_PORTS_END
static INPUT_PORTS_START( brc )

View File

@ -70,8 +70,8 @@ The Gambit hardware notes:
- PCB label: 510-1115A01
- rest is same as The Classic (model 6079)
The Gambit either has a black/white button panel color theme, or black/red/white,
which was more commonly seen on newer versions and Gambit Voice.
The Gambit either has a black/white button panel color theme, or black/red/white.
The latter was more commonly seen on newer versions and Gambit Voice.
Designer 1500 hardware notes:
- PCB label: 510.1131A01

View File

@ -73,7 +73,7 @@ public:
protected:
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD { m_power = true; }
virtual void machine_reset() override ATTR_COLD;
private:
// devices/pointers
@ -92,12 +92,12 @@ private:
u8 m_lcd_com = 0;
bool m_power = false;
u8 m_port1 = 0xff;
u8 m_port3 = 0xff;
u8 m_port6 = 0xff;
attotime m_board_init_time;
void init_board(u8 data);
bool board_active() { return machine().time() > m_board_init_time; }
// I/O handlers
@ -133,15 +133,18 @@ void blitz_state::machine_start()
save_item(NAME(m_lcd_segs));
save_item(NAME(m_lcd_com));
save_item(NAME(m_power));
save_item(NAME(m_port1));
save_item(NAME(m_port3));
save_item(NAME(m_port6));
save_item(NAME(m_board_init_time));
}
void blitz_state::init_board(u8 data)
void blitz_state::machine_reset()
{
m_power = true;
// briefly deactivate board after a cold boot to give it time to calibrate
if (~data & 1)
if (m_port1 & 0x40)
m_board_init_time = machine().time() + attotime::from_msec(1750);
}
@ -207,7 +210,8 @@ void blitz_state::p1_w(u8 data)
// P10-P15: board sensor strength (higher is more sensitive)
m_sensor_strength = bitswap<6>(data,0,1,2,3,4,5);
// P16: ext power (no need to emulate it)
// P16: ext power
m_port1 = data;
}
void blitz_state::p2_w(u8 data)
@ -317,7 +321,6 @@ void blitz_state::blitz(machine_config &config)
SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->init_cb().append(FUNC(blitz_state::init_board));
m_board->set_delay(attotime::from_msec(150));
m_board->set_nvram_enable(true);