summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-07-11 01:02:32 +0200
committer hap <happppp@users.noreply.github.com>2019-07-11 01:03:07 +0200
commit5eaac5e857176b56c990f6bb864a1a5c27b6cf6d (patch)
tree30a9478b3e6e6a42414eeb3d9c435a0b80fdc1ac
parent7804df982140d84144c119917804136a916efca4 (diff)
New not working machine added
----------- Talking Wrinkles [hap, David Viens]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/wrinkles.cpp136
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
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