// license:BSD-3-Clause // copyright-holders: /* Rally Point 2 (1999 I.M.S. / Atlus) FHPC-RP01C2 PCB with FHCP-RP02A riser board for the CPU Main components: 1x H8/3337 HDS64F337F16 (9M1) main CPU with undumped internal ROM 1x YMZ280B-F sound chip with YAC516-M DAC 1x TC55257DFL-85L SRAM 1x 32.000 MHz XTAL 2x 8-dip banks */ #include "emu.h" #include "cpu/h8/h83337.h" #include "sound/ymz280b.h" #include "speaker.h" namespace { class rallypnt_state : public driver_device { public: rallypnt_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu") { } void rallypnt(machine_config &config); private: required_device m_maincpu; void main_map(address_map &map); }; void rallypnt_state::main_map(address_map &map) { map(0x00000000, 0x00003fff).rom(); } static INPUT_PORTS_START( rallypnt ) PORT_START("IN0") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("DSW1") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") PORT_START("DSW2") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1") PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2") PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3") PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW2:4") PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW2:5") PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW2:6") PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7") PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8") INPUT_PORTS_END void rallypnt_state::rallypnt(machine_config &config) { // basic machine hardware H83337(config, m_maincpu, 32_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &rallypnt_state::main_map); // no video, only lamps // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ymz280b_device &ymz(YMZ280B(config, "ymz", 32_MHz_XTAL / 2)); // divider unknown (or 16.9344 MHz internal?) ymz.add_route(0, "lspeaker", 1.0); ymz.add_route(1, "rspeaker", 1.0); } ROM_START( rallypnt2 ) ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "fhcpu-0001a", 0x00000, 0x4000, NO_DUMP ) // on riser board, internal ROM not dumped ROM_REGION( 0x200000, "ymz", ROMREGION_ERASEFF ) ROM_LOAD( "fhep-0010.rom0.u36", 0x000000, 0x80000, CRC(5f9a123d) SHA1(96e24d9360b32227ddaa4bb655876e819f8171e3) ) ROM_LOAD( "fhep-0011.rom1.u37", 0x080000, 0x80000, CRC(2526f2a7) SHA1(613d02eb14e0f2e773ed24ab71cdddc71dbca8eb) ) ROM_LOAD( "fhep-0012.rom2.u39", 0x100000, 0x80000, CRC(7499a6da) SHA1(09f2bf1703dc6f394f9af1a3713b23acdda79a5c) ) // rom3.u40 not populated ROM_END } // anonymous namespace GAME( 1999, rallypnt2, 0, rallypnt, rallypnt, rallypnt_state, empty_init, ROT0, "Atlus", "Rally Point 2", MACHINE_IS_SKELETON_MECHANICAL )