From 933f60e452ec0bb6acebc7a458760a1ccda23d75 Mon Sep 17 00:00:00 2001 From: David Haywood <28625134+DavidHaywood@users.noreply.github.com> Date: Tue, 13 Sep 2022 18:07:24 +0100 Subject: [PATCH] Added skeleton driver for Nikko Entertainment/Grey Innovation digiBLAST (#10295) bus/centronics/digiblst.cpp: Changed device short name to make it more explicit. new NOT WORKING machine ------------- Nikko Entertainment B.V. / Grey Innovation digiBLAST [TeamEurope] new NOT WORKING software list items --------------- digiblast_cart.xml: Sonic X 1 (Italy / Spain) [Most-Student-5165] Sponge Bob Square Pants 1 (Italy / Spain) [Most-Student-5165] Totally Spies! 1 (Italy) [Most-Student-5165] Yu-Gi-Oh! (Italy / Spain) [Most-Student-5165] Winx Club 1 (Italy / Spain) [Most-Student-5165] Winx Club + 5 Atari Games (Italy / Spain) [Most-Student-5165] --- hash/digiblast_cart.xml | 78 +++++++++++++++ src/devices/bus/centronics/digiblst.cpp | 2 +- src/mame/mame.lst | 3 + src/mame/skeleton/digiblast.cpp | 127 ++++++++++++++++++++++++ 4 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 hash/digiblast_cart.xml create mode 100644 src/mame/skeleton/digiblast.cpp diff --git a/hash/digiblast_cart.xml b/hash/digiblast_cart.xml new file mode 100644 index 00000000000..54f6c1bda42 --- /dev/null +++ b/hash/digiblast_cart.xml @@ -0,0 +1,78 @@ + + + + + + + + + Sonic X 1 (Italy / Spain) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + + Sponge Bob Square Pants 1 (Italy / Spain) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + + Totally Spies! 1 (Italy) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + + Yu-Gi-Oh! (Italy / Spain) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + + Winx Club + 5 Atari Games (Italy / Spain) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + + Winx Club 1 (Italy / Spain) + 2005 + Nikko Entertainment B.V. / Grey Innovation + + + + + + + + diff --git a/src/devices/bus/centronics/digiblst.cpp b/src/devices/bus/centronics/digiblst.cpp index af02c153653..3b66d35b9df 100644 --- a/src/devices/bus/centronics/digiblst.cpp +++ b/src/devices/bus/centronics/digiblst.cpp @@ -15,7 +15,7 @@ //************************************************************************** // device type definition -DEFINE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device, "digiblst", "Digiblaster (DIY)") +DEFINE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device, "cpcdigiblst", "Digiblaster (DIY)") /*************************************************************************** diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5b940996ac0..0f240d941bf 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12505,6 +12505,9 @@ dietgou // MAY (c) 1993 digel804 // ep804 // +@source:skeleton/digiblast.cpp +digiblst + @source:skeleton/digilog320.cpp digilog320 // diff --git a/src/mame/skeleton/digiblast.cpp b/src/mame/skeleton/digiblast.cpp new file mode 100644 index 00000000000..ca5f6bc5edd --- /dev/null +++ b/src/mame/skeleton/digiblast.cpp @@ -0,0 +1,127 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + +// a generic looking s3c2410 SoC setup, with very little of note in the system, and a NAND ROM in the cartriges +// if you copy the NAND plumbing from ghosteo.cpp (and add the ID command) the software begins to boot, but +// the NAND should be included in the cartridge bus device, not the driver. + +#include "emu.h" + +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" +#include "machine/s3c2410.h" + +#include "emupal.h" +#include "screen.h" +#include "softlist_dev.h" +#include "speaker.h" + + +namespace { + +class digiblast_state : public driver_device +{ +public: + digiblast_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_s3c2410(*this, "s3c2410") + , m_system_memory(*this, "systememory") + , m_cart(*this, "cartslot") + { + } + + void digiblast(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + required_device m_maincpu; + required_device m_s3c2410; + required_shared_ptr m_system_memory; + + required_device m_cart; + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + + void digiblast_map(address_map &map); +}; + +void digiblast_state::digiblast_map(address_map &map) +{ + map(0x30000000, 0x31ffffff).ram().share("systememory").mirror(0x02000000); +} + +static INPUT_PORTS_START( digiblast ) +INPUT_PORTS_END + +void digiblast_state::machine_start() +{ +} + +void digiblast_state::machine_reset() +{ +} + +DEVICE_IMAGE_LOAD_MEMBER(digiblast_state::cart_load) +{ + uint32_t size = m_cart->common_get_size("rom"); + + m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + + +void digiblast_state::digiblast(machine_config &config) +{ + /* basic machine hardware */ + ARM9(config, m_maincpu, 200000000); + m_maincpu->set_addrmap(AS_PROGRAM, &digiblast_state::digiblast_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(455, 262); + screen.set_visarea(0, 320-1, 0, 256-1); + screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update)); + + PALETTE(config, "palette").set_entries(256); + + S3C2410(config, m_s3c2410, 12000000); + m_s3c2410->set_palette_tag("palette"); + m_s3c2410->set_screen_tag("screen"); + //m_s3c2410->core_pin_r_callback().set(FUNC(digiblast_state::s3c2410_core_pin_r)); + //m_s3c2410->gpio_port_r_callback().set(FUNC(digiblast_state::s3c2410_gpio_port_r)); + //m_s3c2410->gpio_port_w_callback().set(FUNC(digiblast_state::s3c2410_gpio_port_w)); + //m_s3c2410->i2c_scl_w_callback().set(FUNC(digiblast_state::s3c2410_i2c_scl_w)); + //m_s3c2410->i2c_sda_r_callback().set(FUNC(digiblast_state::s3c2410_i2c_sda_r)); + //m_s3c2410->i2c_sda_w_callback().set(FUNC(digiblast_state::s3c2410_i2c_sda_w)); + //m_s3c2410->nand_command_w_callback().set(FUNC(digiblast_state::s3c2410_nand_command_w)); + //m_s3c2410->nand_address_w_callback().set(FUNC(digiblast_state::s3c2410_nand_address_w)); + //m_s3c2410->nand_data_r_callback().set(FUNC(digiblast_state::s3c2410_nand_data_r)); + //m_s3c2410->nand_data_w_callback().set(FUNC(digiblast_state::s3c2410_nand_data_w)); + + /* sound hardware */ + SPEAKER(config, "front").front_center(); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "digiblast_cart"); + m_cart->set_width(GENERIC_ROM8_WIDTH); + m_cart->set_device_load(FUNC(digiblast_state::cart_load)); + + SOFTWARE_LIST(config, "cart_list").set_original("digiblast_cart"); + +} + +ROM_START( digiblst ) + //ROM_REGION( 0x4200000, "flash", ROMREGION_ERASEFF ) +ROM_END + +} // Anonymous namespace + +CONS( 2005, digiblst, 0, 0, digiblast, digiblast, digiblast_state, empty_init, "Nikko Entertainment B.V. / Grey Innovation", "digiBLAST", MACHINE_IS_SKELETON )