From 96e7fc45cf4ec06dc4fb56ecba097b8212b23d4f Mon Sep 17 00:00:00 2001 From: David Haywood Date: Wed, 27 Dec 2023 17:58:24 +0000 Subject: [PATCH] Epoch Cassette Vision software list holder --- hash/cassvisn_cart.xml | 185 ++++++++++++++++++++++++++++++++++++ src/mame/epoch/cassvisn.cpp | 51 ++++++++++ src/mame/mame.lst | 3 + 3 files changed, 239 insertions(+) create mode 100644 hash/cassvisn_cart.xml create mode 100644 src/mame/epoch/cassvisn.cpp diff --git a/hash/cassvisn_cart.xml b/hash/cassvisn_cart.xml new file mode 100644 index 0000000000000..964033d49ab7b --- /dev/null +++ b/hash/cassvisn_cart.xml @@ -0,0 +1,185 @@ + + + + + + + + + D777C002 + 1981 + Epoch + + + + + + + + + + + + D777C004 + 1981 + Epoch + + + + + + + + + + + + D777C005 + 1981 + Epoch + + + + + + + + + + + + D777C007 + 1981 + Epoch + + + + + + + + + + + + D777C008 + 1981 + Epoch + + + + + + + + + + + + D777C009 + 1981 + Epoch + + + + + + + + + + + + D777C010 + 1981 + Epoch + + + + + + + + + + + + D777C013 + 1981 + Epoch + + + + + + + + + + + + D777C015 + 1981 + Epoch + + + + + + + + + + + + D774C + 1981 + Epoch + + + + + + + + + + + + D778C + 1981 + Epoch + + + + + + + + + + + diff --git a/src/mame/epoch/cassvisn.cpp b/src/mame/epoch/cassvisn.cpp new file mode 100644 index 0000000000000..a53a6149d9f99 --- /dev/null +++ b/src/mame/epoch/cassvisn.cpp @@ -0,0 +1,51 @@ +// license:BSD-3-Clause +// copyright-holders: + +#include "emu.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "softlist_dev.h" + +namespace { + +class cassvisn_state : public driver_device +{ +public: + cassvisn_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_cart(*this, "cartslot") + { } + + void cassvisn(machine_config &config); +protected: + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + required_device m_cart; +}; + +static INPUT_PORTS_START( cassvisn ) +INPUT_PORTS_END + +DEVICE_IMAGE_LOAD_MEMBER(cassvisn_state::cart_load) +{ + uint32_t size = m_cart->common_get_size("rom"); + m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + return std::make_pair(std::error_condition(), std::string()); +} + +void cassvisn_state::cassvisn(machine_config &config) +{ + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "cassvisn_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(cassvisn_state::cart_load)); + m_cart->set_must_be_loaded(true); + + SOFTWARE_LIST(config, "cart_list").set_original("cassvisn_cart"); +} + +ROM_START( cassvisn ) +ROM_END + +} // anonymous namespace + +CONS( 1981, cassvisn, 0, 0, cassvisn, cassvisn, cassvisn_state, empty_init, "Epoch", "Cassette Vision", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 92ef9c7a8b359..2a13f3094ef10 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -17576,6 +17576,9 @@ touryuu // (c) 200? Yuki Enterprise @source:eolith/vegaeo.cpp crazywar // (c) 2002 Eolith +@source:epoch/cassvisn.cpp +cassvisn + @source:epoch/gamepock.cpp gamepock // Epoch Game Pocket Computer