From 31bec4a4a9412baa08147e09059d196b06bfde50 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 21 Sep 2024 21:05:48 +0200 Subject: New systems marked not working ------------------------------ Sensory Backgammon [hap, Sean Riddle] --- src/devices/cpu/arm7/arm7core.h | 5 +- src/mame/mame.lst | 3 + src/mame/saitek/ecbackg.cpp | 2 +- src/mame/saitek/sbackg.cpp | 135 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 src/mame/saitek/sbackg.cpp diff --git a/src/devices/cpu/arm7/arm7core.h b/src/devices/cpu/arm7/arm7core.h index 55e36ebfb97..88963ae0af4 100644 --- a/src/devices/cpu/arm7/arm7core.h +++ b/src/devices/cpu/arm7/arm7core.h @@ -29,10 +29,6 @@ #define ARM7_DEBUG_CORE 0 -/**************************************************************************************************** - * INTERRUPT LINES/EXCEPTIONS - ***************************************************************************************************/ - /**************************************************************************************************** * ARM7 CORE REGISTERS ***************************************************************************************************/ @@ -193,6 +189,7 @@ struct arm_state /**************************************************************************************************** * VARIOUS INTERNAL STRUCS/DEFINES/ETC.. ***************************************************************************************************/ + // Mode values come from bit 4-0 of CPSR, but we are ignoring bit 4 here, since bit 4 always = 1 for valid modes enum { diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b150b87513e..31c2664816a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38982,6 +38982,9 @@ montreux risc2500 risc2500a +@source:saitek/sbackg.cpp +sbackg + @source:saitek/schess.cpp schess diff --git a/src/mame/saitek/ecbackg.cpp b/src/mame/saitek/ecbackg.cpp index 07df9b88d20..c7a4b16aef8 100644 --- a/src/mame/saitek/ecbackg.cpp +++ b/src/mame/saitek/ecbackg.cpp @@ -539,7 +539,7 @@ ROM_START( ecbackg ) ROM_LOAD("saitek_89_gx4b_c12_31y0rm79p.u1", 0x0000, 0x4000, CRC(d7278545) SHA1(9ece31cdb237067aeec480c066e0917752697a4d) ) ROM_REGION( 109526, "screen", 0 ) - ROM_LOAD("ecbackg.svg", 0, 109526, CRC(b8149d74) SHA1(0cc6f1a2c50f53f8d2be73379019d275799d0546) ) + ROM_LOAD("sbackg.svg", 0, 109526, CRC(b8149d74) SHA1(0cc6f1a2c50f53f8d2be73379019d275799d0546) ) ROM_END } // anonymous namespace diff --git a/src/mame/saitek/sbackg.cpp b/src/mame/saitek/sbackg.cpp new file mode 100644 index 00000000000..a37c5abefee --- /dev/null +++ b/src/mame/saitek/sbackg.cpp @@ -0,0 +1,135 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Sean Riddle +/******************************************************************************* + +Saitek Sensory Backgammon + +TODO: +- skeleton driver + +Hardware notes: +- x + +*******************************************************************************/ + +#include "emu.h" + +#include "cpu/hmcs400/hmcs400.h" +#include "machine/sensorboard.h" +#include "sound/dac.h" +#include "video/pwm.h" + +#include "screen.h" +#include "speaker.h" + +// internal artwork +//#include "saitek_sbackg.lh" + + +namespace { + +class sbackg_state : public driver_device +{ +public: + sbackg_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_board(*this, "board"), + m_led_pwm(*this, "led_pwm"), + m_lcd_pwm(*this, "lcd_pwm"), + m_dac(*this, "dac"), + m_inputs(*this, "IN.%u", 0) + { } + + void sbackg(machine_config &config); + void granada(machine_config &config); + void supra(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(granada_change_cpu_freq); + +protected: + virtual void machine_start() override; + +private: + // devices/pointers + required_device m_maincpu; + required_device m_board; + required_device m_led_pwm; + required_device m_lcd_pwm; + required_device m_dac; + required_ioport_array<1> m_inputs; +}; + +void sbackg_state::machine_start() +{ +} + + + +/******************************************************************************* + Input Ports +*******************************************************************************/ + +static INPUT_PORTS_START( sbackg ) + PORT_START("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) +INPUT_PORTS_END + + + +/******************************************************************************* + Machine Configs +*******************************************************************************/ + +void sbackg_state::sbackg(machine_config &config) +{ + // basic machine hardware + HD614085(config, m_maincpu, 5'000'000); // approximation, no XTAL + + SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); + m_board->set_delay(attotime::from_msec(150)); + //m_board->set_nvram_enable(true); + + // video hardware + PWM_DISPLAY(config, m_lcd_pwm).set_size(2, 24); + + PWM_DISPLAY(config, m_led_pwm).set_size(6, 8); + //config.set_default_layout(layout_saitek_sbackg); + + // sound hardware + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); +} + + + +/******************************************************************************* + ROM Definitions +*******************************************************************************/ + +ROM_START( sbackg ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD("1988_gx2_saitek_614085sc72.u1", 0x0000, 0x4000, CRC(0e91d7a1) SHA1(fa147105fa99d01210b53389b8b70031cff6ad66) ) + + ROM_REGION( 109526, "screen", 0 ) + ROM_LOAD("sbackg.svg", 0, 109526, CRC(b8149d74) SHA1(0cc6f1a2c50f53f8d2be73379019d275799d0546) ) +ROM_END + +} // anonymous namespace + + + +/******************************************************************************* + Drivers +*******************************************************************************/ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +SYST( 1988, sbackg, 0, 0, sbackg, sbackg, sbackg_state, empty_init, "Saitek", "Sensory Backgammon", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -- cgit v1.2.3