summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/nitedrvr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/nitedrvr.cpp')
-rw-r--r--src/mame/drivers/nitedrvr.cpp202
1 files changed, 0 insertions, 202 deletions
diff --git a/src/mame/drivers/nitedrvr.cpp b/src/mame/drivers/nitedrvr.cpp
deleted file mode 100644
index 297c33f45a3..00000000000
--- a/src/mame/drivers/nitedrvr.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Mike Balfour
-/***************************************************************************
-
- Atari Night Driver hardware
-
- driver by Mike Balfour
-
- Games supported:
- * Night Driver
-
- Known issues:
- * The road boxes in service mode are flipped horizontally and there
- is an extraneous box according to the service manual.
-
-****************************************************************************
-
- Memory Map:
- 0000-01FF R/W SCRAM (Scratchpad RAM)
- 0200-03FF W PFW (Playfield Write)
- 0400-05FF W HVC (Horiz/Vert/Char for Roadway)
- 0600-07FF R IN0
- 0800-09FF R IN1
- 0A00-0BFF W OUT0
- 0C00-0DFF W OUT1
- 0E00-0FFF - OUT2 (Not used)
- 8000-83FF R PFR (Playfield Read)
- 8400-87FF Steering Reset
- 8800-8FFF - Spare (Not used)
- 9000-97FF R Program ROM1
- 9800-9FFF R Program ROM2
- (F800-FFFF) R Program ROM2 - only needed for the 6502 vectors
-
- If you have any questions about how this driver works, don't hesitate to
- ask. - Mike Balfour (mab22@po.cwru.edu)
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/nitedrvr.h"
-
-#include "cpu/m6502/m6502.h"
-#include "machine/rescap.h"
-#include "machine/watchdog.h"
-#include "sound/discrete.h"
-#include "screen.h"
-#include "speaker.h"
-
-/* Memory Map */
-
-void nitedrvr_state::nitedrvr_map(address_map &map)
-{
- map(0x0000, 0x00ff).ram().mirror(0x100); // SCRAM
- map(0x0200, 0x027f).nopr().ram().mirror(0x180).share("videoram"); // PFW
- map(0x0400, 0x042f).nopr().writeonly().mirror(0x1c0).share("hvc"); // POSH, POSV, CHAR
- map(0x0430, 0x043f).w("watchdog", FUNC(watchdog_timer_device::reset_w)).mirror(0x1c0);
- map(0x0600, 0x07ff).r(FUNC(nitedrvr_state::nitedrvr_in0_r));
- map(0x0800, 0x09ff).r(FUNC(nitedrvr_state::nitedrvr_in1_r));
- map(0x0a00, 0x0bff).w(FUNC(nitedrvr_state::nitedrvr_out0_w));
- map(0x0c00, 0x0dff).w(FUNC(nitedrvr_state::nitedrvr_out1_w));
- map(0x8000, 0x807f).nopw().ram().mirror(0x380).share("videoram"); // PFR
- map(0x8400, 0x87ff).rw(FUNC(nitedrvr_state::nitedrvr_steering_reset_r), FUNC(nitedrvr_state::nitedrvr_steering_reset_w));
- map(0x9000, 0x9fff).rom(); // ROM1-ROM2
- map(0xfff0, 0xffff).rom(); // ROM2 for 6502 vectors
-}
-
-/* Input Ports */
-
-static INPUT_PORTS_START( nitedrvr )
- PORT_START("DSW0") // fake
- PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) )
- //PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) // not a typo
- PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0xc0, 0x80, "Playing Time" )
- PORT_DIPSETTING( 0x00, "50" )
- PORT_DIPSETTING( 0x40, "75" )
- PORT_DIPSETTING( 0x80, "100" )
- PORT_DIPSETTING( 0xC0, "125" )
-
- PORT_START("DSW1") // fake
- PORT_DIPNAME( 0x10, 0x00, "Track Set" )
- PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Reverse ) )
- PORT_DIPNAME( 0x20, 0x20, "Bonus Time" )
- PORT_DIPSETTING( 0x00, DEF_STR ( No ) )
- PORT_DIPSETTING( 0x20, "Score = 350" )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
- PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
-
- PORT_START("GEARS") // fake
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("1st Gear")
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("2nd Gear")
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("3rd Gear")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("4th Gear")
-
- PORT_START("DSW2") // fake
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // Spare
- PORT_DIPNAME( 0x20, 0x00, "Difficult Bonus" )
- PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Difficult ) )
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN0") // fake
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas")
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Novice Track")
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Expert Track")
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pro Track")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Alternating signal?
-
- PORT_START("STEER") // fake
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
-
- PORT_START("MOTOR")
- PORT_ADJUSTER( 60, "Motor RPM" )
-INPUT_PORTS_END
-
-/* Graphics Layouts */
-
-static const gfx_layout charlayout =
-{
- 8, 8,
- 64,
- 1,
- { 0 },
- { 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*8
-};
-
-/* Graphics Decode Information */
-
-static GFXDECODE_START( gfx_nitedrvr )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
-GFXDECODE_END
-
-/* Machine Driver */
-
-void nitedrvr_state::nitedrvr(machine_config &config)
-{
- /* basic machine hardware */
- M6502(config, m_maincpu, 12.096_MHz_XTAL / 12); // 1 MHz
- m_maincpu->set_addrmap(AS_PROGRAM, &nitedrvr_state::nitedrvr_map);
- m_maincpu->set_vblank_int("screen", FUNC(nitedrvr_state::irq0_line_hold));
-
- WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 3);
-
- TIMER(config, "crash_timer").configure_periodic(FUNC(nitedrvr_state::nitedrvr_crash_toggle_callback), PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1)));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(12.096_MHz_XTAL / 2, 384, 0, 256, 262, 0, 240);
- // PROM derives VRESET, VBLANK, VSYNC, IRQ from vertical scan count and last VBLANK
- screen.set_screen_update(FUNC(nitedrvr_state::screen_update_nitedrvr));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_nitedrvr);
-
- PALETTE(config, m_palette, palette_device::MONOCHROME);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- DISCRETE(config, m_discrete, nitedrvr_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-/* ROMs */
-
-/*
-ROM_START( nitedrvo ) // early revision has the program code stored in 8 chips
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "006560-01.h1", 0x9000, 0x0200, NO_DUMP ) // PROM 1
- ROM_LOAD( "006561-01.c1", 0x9200, 0x0200, NO_DUMP ) // PROM 2
- ROM_LOAD( "006562-01.j1", 0x9400, 0x0200, NO_DUMP ) // PROM 3
- ROM_LOAD( "006563-01.d1", 0x9600, 0x0200, NO_DUMP ) // PROM 4
- ROM_LOAD( "006564-01.k1", 0x9800, 0x0200, NO_DUMP ) // PROM 5
- ROM_LOAD( "006565-01.e1", 0x9a00, 0x0200, NO_DUMP ) // PROM 6
- ROM_LOAD( "006566-01.l1", 0x9c00, 0x0200, NO_DUMP ) // PROM 7
- ROM_LOAD( "006567-01.f1", 0x9e00, 0x0200, NO_DUMP ) // PROM 8
-ROM_END
-*/
-
-ROM_START( nitedrvr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "006569-01.d2", 0x9000, 0x0800, CRC(7afa7542) SHA1(81018e25ebdeae1daf1308676661063b6fd7fd22) ) // mask ROM 1
- ROM_LOAD( "006570-01.f2", 0x9800, 0x0800, CRC(bf5d77b1) SHA1(6f603f8b0973bd89e0e721b66944aac8e9f904d9) ) // mask ROM 2
- ROM_RELOAD( 0xf800, 0x0800 ) // vectors
-
- ROM_REGION( 0x200, "gfx1", 0 )
- ROM_LOAD( "006568-01.p2", 0x0000, 0x0200, CRC(f80d8889) SHA1(ca573543dcce1221459d5693c476cef14bfac4f4) ) // PROM, Alpha-Numeric
-
- ROM_REGION( 0x100, "proms", 0 )
- ROM_LOAD( "006559-01.h7", 0x0000, 0x0100, CRC(5a8d0e42) SHA1(772220c4c24f18769696ddba26db2bc2e5b0909d) ) // PROM, Sync
-ROM_END
-
-/* Game Drivers */
-
-GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, nitedrvr_state, empty_init, ROT0, "Atari", "Night Driver", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )