diff options
author | 2019-07-11 01:02:32 +0200 | |
---|---|---|
committer | 2019-07-11 01:03:07 +0200 | |
commit | 5eaac5e857176b56c990f6bb864a1a5c27b6cf6d (patch) | |
tree | 30a9478b3e6e6a42414eeb3d9c435a0b80fdc1ac | |
parent | 7804df982140d84144c119917804136a916efca4 (diff) |
New not working machine added
-----------
Talking Wrinkles [hap, David Viens]
-rw-r--r-- | scripts/target/mame/mess.lua | 1 | ||||
-rw-r--r-- | src/mame/drivers/wrinkles.cpp | 136 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 | ||||
-rw-r--r-- | src/mame/mess.flt | 1 |
4 files changed, 141 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 83b8b4986dd..e4e610ac7d0 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -1918,6 +1918,7 @@ files { MAME_DIR .. "src/mame/includes/coleco.h", MAME_DIR .. "src/mame/machine/coleco.cpp", MAME_DIR .. "src/mame/machine/coleco.h", + MAME_DIR .. "src/mame/drivers/wrinkles.cpp", } createMESSProjects(_target, _subtarget, "compugraphic") diff --git a/src/mame/drivers/wrinkles.cpp b/src/mame/drivers/wrinkles.cpp new file mode 100644 index 00000000000..170bc86f349 --- /dev/null +++ b/src/mame/drivers/wrinkles.cpp @@ -0,0 +1,136 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/****************************************************************************** + +Coleco Talking Wrinkles, a plushie dog handpuppet toy + +Hardware is a P80C31BH @ 11MHz and a 32KB ROM, RAM is in the MCU. +It also has a cartridge slot, but no known cartridges were released. +The speech technology is by Electronic Speech Systems. + +TODO: +- add sensors + +******************************************************************************/ + +#include "emu.h" +#include "cpu/mcs51/mcs51.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" +#include "speaker.h" + + +namespace { + +class wrinkles_state : public driver_device +{ +public: + wrinkles_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + void wrinkles(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + // devices/pointers + required_device<mcs51_cpu_device> m_maincpu; + + void main_map(address_map &map); + + // I/O handlers + DECLARE_WRITE8_MEMBER(sensor_w); + DECLARE_READ8_MEMBER(sensor_r); +}; + +void wrinkles_state::machine_start() +{ +} + + + +/****************************************************************************** + I/O +******************************************************************************/ + +WRITE8_MEMBER(wrinkles_state::sensor_w) +{ +} + +READ8_MEMBER(wrinkles_state::sensor_r) +{ + // sensors here + // d1: hold down for power-off? + // d7: mouth sensor? + // other: ? + return 0xff; +} + + + +/****************************************************************************** + Address Maps +******************************************************************************/ + +void wrinkles_state::main_map(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x7fff).rom(); +} + + + +/****************************************************************************** + Input Ports +******************************************************************************/ + +static INPUT_PORTS_START( wrinkles ) +INPUT_PORTS_END + + + +/****************************************************************************** + Machine Configs +******************************************************************************/ + +void wrinkles_state::wrinkles(machine_config &config) +{ + /* basic machine hardware */ + I80C31(config, m_maincpu, 11_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &wrinkles_state::main_map); + m_maincpu->port_in_cb<1>().set(FUNC(wrinkles_state::sensor_r)); + m_maincpu->port_out_cb<1>().set(FUNC(wrinkles_state::sensor_w)); + m_maincpu->port_out_cb<3>().set("dac", FUNC(dac_8bit_r2r_device::write)); + + /* sound hardware */ + SPEAKER(config, "speaker").front_center(); + DAC_8BIT_R2R(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.5); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} + + + +/****************************************************************************** + ROM Definitions +******************************************************************************/ + +ROM_START( wrinkles ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD("umua117_wrkl_dif4.u3", 0x0000, 0x8000, CRC(4ec8ddbf) SHA1(beb165d933659859a4f966168ca121843cd6642b) ) +ROM_END + +} // anonymous namespace + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +CONS( 1986, wrinkles, 0, 0, wrinkles, wrinkles, wrinkles_state, empty_init, "Coleco / Ganz", "Talking Wrinkles", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 313bbe34dfd..abb9ea2e4d4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -40164,6 +40164,9 @@ wrallya // (c) 1993 - Ref 930705 wrallyat // (c) 1993 - Ref 930217 wrallyb // (c) 1993 - Ref 930217 +@source:wrinkles.cpp +wrinkles + @source:wswan.cpp wscolor // Bandai WonderSwan Color Handheld wswan // Bandai WonderSwan Handheld diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 988c0c620aa..20fd3854b01 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -904,6 +904,7 @@ vtech2.cpp vtech_eu3a12.cpp wangpc.cpp wicat.cpp +wrinkles.cpp wswan.cpp wy100.cpp wy150.cpp |