diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 4567d6b0b60..5ecd6fcdc80 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -4691,6 +4691,7 @@ files { MAME_DIR .. "src/mame/drivers/trivrus.cpp", MAME_DIR .. "src/mame/drivers/crospuzl.cpp", MAME_DIR .. "src/mame/drivers/psattack.cpp", + MAME_DIR .. "src/mame/drivers/v0bowl.cpp", MAME_DIR .. "src/mame/drivers/cubeqst.cpp", MAME_DIR .. "src/mame/drivers/cybertnk.cpp", MAME_DIR .. "src/mame/drivers/daryde.cpp", diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index bdcef33125b..d86e094b299 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -1338,6 +1338,7 @@ unkpoker.cpp upscope.cpp usbilliards.cpp usgames.cpp +v0bowl.cpp vamphalf.cpp vaportra.cpp vastar.cpp diff --git a/src/mame/drivers/v0bowl.cpp b/src/mame/drivers/v0bowl.cpp new file mode 100644 index 00000000000..83025fef31a --- /dev/null +++ b/src/mame/drivers/v0bowl.cpp @@ -0,0 +1,162 @@ +// license:BSD-3-Clause +// copyright-holders:Angelo Salese +/*************************************************************************** + + "Unknown VRender0+ Bowling Game" (c) 200x A1 Amusement One + + TODO: + - checkout the actual SanDisk device + +***************************************************************************/ + +#include "emu.h" +#include "cpu/se3208/se3208.h" +#include "machine/vrender0.h" +#include "sound/vrender0.h" +#include "video/vrender0.h" +#include "emupal.h" +#include "screen.h" +#include "speaker.h" + +class v0bowl_state : public driver_device +{ +public: + v0bowl_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_vr0soc(*this, "vr0soc") + {} + + void v0bowl(machine_config &config); + +protected: + // driver_device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + void v0bowl_map(address_map &map); + + // devices + required_device m_maincpu; + required_device m_vr0soc; + + IRQ_CALLBACK_MEMBER(icallback); +}; + +IRQ_CALLBACK_MEMBER(v0bowl_state::icallback) +{ + return m_vr0soc->irq_callback(); +} + +void v0bowl_state::v0bowl_map(address_map &map) +{ + map(0x00000000, 0x00ffffff).rom().nopw().region("ipl", 0); + +// map(0x01500000, 0x01500003).portr("IN0"); +// map(0x01500004, 0x01500007).portr("IN1"); +// map(0x01500008, 0x0150000b).portr("IN2"); + + map(0x01800000, 0x01ffffff).m(m_vr0soc, FUNC(vrender0soc_device::regs_map)); + + map(0x02000000, 0x027fffff).ram().share("workram"); + + map(0x03000000, 0x04ffffff).m(m_vr0soc, FUNC(vrender0soc_device::audiovideo_map)); +// map(0x05000000, 0x0500000f) SanDisk +} + + +static INPUT_PORTS_START( v0bowl ) + /* dummy active high structure */ + PORT_START("SYSA") + PORT_DIPNAME( 0x01, 0x00, "SYSA" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + /* dummy active low structure */ + PORT_START("DSWA") + PORT_DIPNAME( 0x01, 0x01, "DSWA" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +void v0bowl_state::machine_start() +{ + // ... +} + +void v0bowl_state::machine_reset() +{ + // ... +} + +void v0bowl_state::v0bowl(machine_config &config) +{ + // TODO: clock to be tuned up + SE3208(config, m_maincpu, 14318180 * 3); + m_maincpu->set_addrmap(AS_PROGRAM, &v0bowl_state::v0bowl_map); + m_maincpu->set_irq_acknowledge_callback(FUNC(v0bowl_state::icallback)); + + VRENDER0_SOC(config, m_vr0soc, 14318180 * 3); + m_vr0soc->set_host_cpu_tag(m_maincpu); +} + + +/*************************************************************************** + + Machine driver(s) + +***************************************************************************/ + +ROM_START( v0bowl ) + ROM_REGION32_LE( 0x1000000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "bootrom.u16", 0x000000, 0x080000, CRC(f8f4cf22) SHA1(881d8eeb6f50b2e7933e7c3c93adcdd0c1e93e77) ) + + ROM_REGION32_LE( 0x20000000, "flash", ROMREGION_ERASEFF ) // SanDisk CF + // zipped FAT16, filesystem was made with DOS 3.31 but the folders have Windows Thumbs.db files as well. + ROM_LOAD( "bowling.001", 0x000000, 0x1e8be000, BAD_DUMP CRC(aebb2b01) SHA1(cd11f74f6512350ac10f822937b8769f552aabf3) ) +ROM_END + +GAME( 200?, v0bowl, 0, v0bowl, v0bowl, v0bowl_state, empty_init, ROT0, "A1 Amusement One", "Unknown VRender0+ Bowling Game", MACHINE_IS_SKELETON ) // Return Bowl? diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d631d92feb7..e0c21eadc70 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -39263,6 +39263,9 @@ ut88mini // @source:uzebox.cpp uzebox // +@source:v0bowl.cpp +v0bowl // + @source:v100.cpp v100 //