59
55
extern VIDEO_START( nitedrvr );
60
56
extern VIDEO_UPDATE( nitedrvr );
63
/*************************************
67
*************************************/
69
static unsigned short colortable_source[] =
75
static PALETTE_INIT( nitedrvr )
77
palette_set_color(0,0x00,0x00,0x00); /* BLACK */
78
palette_set_color(1,0xff,0xff,0xff); /* WHITE */
79
palette_set_color(2,0x55,0x55,0x55); /* DK GREY - for MAME text only */
80
palette_set_color(3,0x80,0x80,0x80); /* LT GREY - for MAME text only */
81
memcpy(colortable,colortable_source,sizeof(colortable_source));
85
static MACHINE_INIT( nitedrvr )
87
timer_pulse(TIME_IN_SEC(0.693 * (180000 + (2 * 330)) * 1e-6), 0, nitedrvr_crash_toggle);
92
/*************************************
94
* Main CPU memory handlers
96
*************************************/
98
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
99
AM_RANGE(0x0000, 0x00ff) AM_READ(nitedrvr_ram_r) /* SCRAM */
100
AM_RANGE(0x0100, 0x01ff) AM_READ(nitedrvr_ram_r) /* SCRAM */
60
static ADDRESS_MAP_START( nitedrvr_map, ADDRESS_SPACE_PROGRAM, 8 )
61
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100) /* SCRAM */
62
AM_RANGE(0x0200, 0x027f) AM_RAM AM_MIRROR(0x180) AM_WRITE(nitedrvr_videoram_w) AM_BASE(&videoram) /* PFW */
63
AM_RANGE(0x0400, 0x05ff) AM_WRITE(nitedrvr_hvc_w) AM_BASE(&nitedrvr_hvc) /* POSH, POSV, CHAR, Watchdog */
101
64
AM_RANGE(0x0600, 0x07ff) AM_READ(nitedrvr_in0_r)
102
65
AM_RANGE(0x0800, 0x09ff) AM_READ(nitedrvr_in1_r)
103
AM_RANGE(0x8000, 0x807f) AM_READ(videoram_r) /* PFR */
104
AM_RANGE(0x8080, 0x80ff) AM_READ(videoram_r) /* PFR */
105
AM_RANGE(0x8100, 0x817f) AM_READ(videoram_r) /* PFR */
106
AM_RANGE(0x8180, 0x81ff) AM_READ(videoram_r) /* PFR */
107
AM_RANGE(0x8200, 0x827f) AM_READ(videoram_r) /* PFR */
108
AM_RANGE(0x8280, 0x82ff) AM_READ(videoram_r) /* PFR */
109
AM_RANGE(0x8300, 0x837f) AM_READ(videoram_r) /* PFR */
110
AM_RANGE(0x8380, 0x83ff) AM_READ(videoram_r) /* PFR */
111
AM_RANGE(0x8400, 0x87ff) AM_READ(nitedrvr_steering_reset_r)
112
AM_RANGE(0x9000, 0x9fff) AM_READ(MRA8_ROM) /* ROM1-ROM2 */
113
AM_RANGE(0xfff0, 0xffff) AM_READ(MRA8_ROM) /* ROM2 for 6502 vectors */
117
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
118
AM_RANGE(0x0000, 0x00ff) AM_WRITE(nitedrvr_ram_w) AM_BASE(&nitedrvr_ram) /* SCRAM */
119
AM_RANGE(0x0100, 0x01ff) AM_WRITE(nitedrvr_ram_w) /* SCRAM */
120
AM_RANGE(0x0200, 0x027f) AM_WRITE(nitedrvr_videoram_w) AM_BASE(&videoram) /* PFW */
121
AM_RANGE(0x0280, 0x02ff) AM_WRITE(nitedrvr_videoram_w) /* PFW */
122
AM_RANGE(0x0300, 0x037f) AM_WRITE(nitedrvr_videoram_w) /* PFW */
123
AM_RANGE(0x0380, 0x03ff) AM_WRITE(nitedrvr_videoram_w) /* PFW */
124
AM_RANGE(0x0400, 0x05ff) AM_WRITE(nitedrvr_hvc_w) AM_BASE(&nitedrvr_hvc) /* POSH, POSV, CHAR, Watchdog */
125
66
AM_RANGE(0x0a00, 0x0bff) AM_WRITE(nitedrvr_out0_w)
126
67
AM_RANGE(0x0c00, 0x0dff) AM_WRITE(nitedrvr_out1_w)
127
AM_RANGE(0x8400, 0x87ff) AM_WRITE(nitedrvr_steering_reset_w)
128
AM_RANGE(0x9000, 0x9fff) AM_WRITE(MWA8_ROM) /* ROM1-ROM2 */
68
AM_RANGE(0x8000, 0x807f) AM_RAM AM_MIRROR(0x380) AM_BASE(&videoram) /* PFR */
69
AM_RANGE(0x8400, 0x87ff) AM_READWRITE(nitedrvr_steering_reset_r, nitedrvr_steering_reset_w)
70
AM_RANGE(0x9000, 0x9fff) AM_ROM /* ROM1-ROM2 */
71
AM_RANGE(0xfff0, 0xffff) AM_ROM /* ROM2 for 6502 vectors */
133
/*************************************
137
*************************************/
139
76
INPUT_PORTS_START( nitedrvr )
140
PORT_START /* fake port, gets mapped to Night Driver ports */
141
78
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) )
142
79
PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) )
143
/*PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) not a typo */
80
/*PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) // not a typo */
144
81
PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
145
82
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
146
PORT_DIPNAME( 0xC0, 0x80, "Playing Time" )
83
PORT_DIPNAME( 0xc0, 0x80, "Playing Time" )
147
84
PORT_DIPSETTING( 0x00, "50" )
148
85
PORT_DIPSETTING( 0x40, "75" )
149
86
PORT_DIPSETTING( 0x80, "100" )
150
87
PORT_DIPSETTING( 0xC0, "125" )
152
PORT_START /* fake port, gets mapped to Night Driver ports */
153
90
PORT_DIPNAME( 0x10, 0x00, "Track Set" )
154
91
PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
155
92
PORT_DIPSETTING( 0x10, DEF_STR( Reverse ) )
156
93
PORT_DIPNAME( 0x20, 0x20, "Bonus Time" )
157
94
PORT_DIPSETTING( 0x00, DEF_STR ( No ) )
158
95
PORT_DIPSETTING( 0x20, "Score = 350" )
159
PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_VBLANK )
160
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Self Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE
162
PORT_START /* fake port, gets mapped to Night Driver ports */
163
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("1st gear") PORT_PLAYER(2)
164
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("2nd gear") PORT_PLAYER(2)
165
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("3rd gear") PORT_PLAYER(2)
166
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("4th gear") PORT_PLAYER(2)
168
PORT_START /* fake port, gets mapped to Night Driver ports */
169
PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Spare */
96
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK )
97
PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
100
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("1st Gear")
101
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("2nd Gear")
102
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("3rd Gear")
103
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("4th Gear")
105
PORT_START /* fake */
106
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Spare */
170
107
PORT_DIPNAME( 0x20, 0x00, "Difficult Bonus" )
171
108
PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
172
109
PORT_DIPSETTING( 0x20, "Difficult" )
173
PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
174
PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
176
PORT_START /* fake port, gets mapped to Night Driver ports */
177
PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_COIN1 )
178
PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_COIN2 )
179
PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_START1 )
180
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas")
181
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Novice Track")
182
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Expert Track")
183
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pro Track")
184
PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Alternating signal? */
186
PORT_START /* fake port used for steering */
110
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
112
PORT_START /* fake */
113
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
114
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
115
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
116
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas")
117
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Novice Track")
118
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Expert Track")
119
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pro Track")
120
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Alternating signal? */
122
PORT_START /* fake */
187
123
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
190
126
PORT_ADJUSTER( 60, "Motor RPM" )
195
/*************************************
197
* Graphics definitions
199
*************************************/
201
static struct GfxLayout charlayout =
129
/* Graphics Layouts */
131
static const gfx_layout charlayout =
213
static struct GfxDecodeInfo gfxdecodeinfo[] =
215
{ REGION_GFX1, 0, &charlayout, 0x00, 0x02 }, /* offset into colors, # of colors */
216
{ -1 } /* end of array */
220
/************************************************************************/
221
/* nitedrvr Sound System Analog emulation */
222
/************************************************************************/
224
const struct discrete_lfsr_desc nitedrvr_lfsr = {
227
0, /* Use Bit 0 as XOR input 0 */
228
14, /* Use Bit 14 as XOR input 1 */
229
DISC_LFSR_XNOR, /* Feedback stage1 is XNOR */
230
DISC_LFSR_OR, /* Feedback stage2 is just stage 1 output OR with external feed */
231
DISC_LFSR_REPLACE, /* Feedback stage3 replaces the shifted register contents */
232
0x000001, /* Everything is shifted into the first bit only */
233
0, /* Output is already inverted by XNOR */
238
#define NITEDRVR_BANG_DATA NODE_01
239
#define NITEDRVR_SKID1_EN NODE_02
240
#define NITEDRVR_SKID2_EN NODE_03
241
#define NITEDRVR_MOTOR_DATA NODE_04
242
#define NITEDRVR_CRASH_EN NODE_05
243
#define NITEDRVR_ATTRACT_EN NODE_06
245
#define NITEDRVR_NOISE NODE_10
246
#define NITEDRVR_BANG_SND NODE_11
247
#define NITEDRVR_MOTOR_SND NODE_12
248
#define NITEDRVR_SCREECH1_SND NODE_13
249
#define NITEDRVR_SCREECH2_SND NODE_14
251
static DISCRETE_SOUND_START(nitedrvr_sound_interface)
252
/************************************************/
253
/* nitedrvr Effects Relataive Gain Table */
255
/* Effect V-ampIn Gain ratio Relative */
256
/* Bang 3.8 5/(5+6.8) 1000.0 */
257
/* Motor 3.8 5/(5+10) 786.7 */
258
/* Screech1 3.8 5/(5+47) 226.9 */
259
/* Screech2 3.8 5/(5+47) 226.9 */
260
/************************************************/
262
/************************************************/
263
/* Input register mapping for nitedrvr */
264
/************************************************/
265
/* NODE ADDR MASK GAIN OFFSET INIT */
266
DISCRETE_INPUTX(NITEDRVR_BANG_DATA, 0x00, 0x000f, 1000.0/15, 0.0, 0.0)
267
DISCRETE_INPUT (NITEDRVR_SKID1_EN, 0x01, 0x000f, 0.0)
268
DISCRETE_INPUT (NITEDRVR_SKID2_EN, 0x02, 0x000f, 0.0)
269
DISCRETE_INPUT (NITEDRVR_MOTOR_DATA, 0x03, 0x000f, 0.0)
270
DISCRETE_INPUT (NITEDRVR_CRASH_EN, 0x04, 0x000f, 0.0)
271
DISCRETE_INPUT (NITEDRVR_ATTRACT_EN, 0x05, 0x000f, 0.0)
273
/************************************************/
274
/* NOTE: Motor circuit is a rip from Sprint for */
275
/* now. This will have to be converted to 566. */
277
/* Motor sound circuit is based on a 556 VCO */
278
/* with the input frequency set by the MotorSND */
279
/* latch (4 bit). This freqency is then used to */
280
/* driver a modulo 12 counter, with div6, 4 & 3 */
281
/* summed as the output of the circuit. */
282
/* VCO Output is Sq wave = 27-382Hz */
283
/* F1 freq - (Div6) */
284
/* F2 freq = (Div4) */
285
/* F3 freq = (Div3) 33.3% duty, 33.3 deg phase */
286
/* To generate the frequency we take the freq. */
287
/* diff. and /15 to get all the steps between */
288
/* 0 - 15. Then add the low frequency and send */
289
/* that value to a squarewave generator. */
290
/* Also as the frequency changes, it ramps due */
291
/* to a 2.2uf capacitor on the R-ladder. */
292
/* Note the VCO freq. is controlled by a 250k */
293
/* pot. The freq. used here is for the pot set */
294
/* to 125k. The low freq is allways the same. */
295
/* This adjusts the high end. */
296
/* 0k = 214Hz. 250k = 4416Hz */
297
/************************************************/
298
DISCRETE_RCFILTER(NODE_20, 1, NITEDRVR_MOTOR_DATA, 123037, 2.2e-6)
299
DISCRETE_ADJUSTMENT(NODE_21, 1, (214.0-27.0)/12/31, (4416.0-27.0)/12/31, DISC_LOGADJ, 6)
300
DISCRETE_MULTIPLY(NODE_22, 1, NODE_20, NODE_21)
302
DISCRETE_MULTADD(NODE_23, 1, NODE_22, 2, 27.0/6) /* F1 = /12*2 = /6 */
303
DISCRETE_SQUAREWAVE(NODE_24, 1, NODE_23, (786.7/3), 50.0, 0, 0)
304
DISCRETE_RCFILTER(NODE_25, 1, NODE_24, 10000, 1e-7)
306
DISCRETE_MULTADD(NODE_26, 1, NODE_22, 3, 27.0/4) /* F2 = /12*3 = /4 */
307
DISCRETE_SQUAREWAVE(NODE_27, 1, NODE_26, (786.7/3), 50.0, 0, 0)
308
DISCRETE_RCFILTER(NODE_28, 1, NODE_27, 10000, 1e-7)
310
DISCRETE_MULTADD(NODE_29, 1, NODE_22, 4, 27.0/3) /* F3 = /12*4 = /3 */
311
DISCRETE_SQUAREWAVE(NODE_30, 1, NODE_29, (786.7/3), 100.0/3, 0, 360.0/3)
312
DISCRETE_RCFILTER(NODE_31, 1, NODE_30, 10000, 1e-7)
314
DISCRETE_ADDER3(NITEDRVR_MOTOR_SND, NITEDRVR_ATTRACT_EN, NODE_25, NODE_28, NODE_31)
316
/************************************************/
317
/* Bang circuit is built around a noise */
318
/* generator built from 2 shift registers that */
319
/* are clocked by the 4V signal. */
322
/* Output is integrated to apply decay. */
323
/************************************************/
324
DISCRETE_LFSR_NOISE(NITEDRVR_NOISE, NITEDRVR_CRASH_EN, NITEDRVR_CRASH_EN, 15750.0/2/4, 1.0, 0, 0, &nitedrvr_lfsr)
326
DISCRETE_MULTIPLY(NODE_62, 1, NITEDRVR_NOISE, NITEDRVR_BANG_DATA)
327
DISCRETE_RCFILTER(NITEDRVR_BANG_SND, 1, NODE_62, 545.6, 3.3e-7)
329
/************************************************/
330
/* Skid circuits ripped from other drivers */
333
/* Skid circuits takes the noise output from */
334
/* the crash circuit and applies +ve feedback */
335
/* to cause oscillation. There is also an RC */
336
/* filter on the input to the feedback cct. */
337
/* RC is 1K & 10uF */
338
/* Feedback cct is modelled by using the RC out */
339
/* as the frequency input on a VCO, */
340
/* breadboarded freq range as: */
341
/* 0 = 940Hz, 34% duty */
342
/* 1 = 630Hz, 29% duty */
343
/* the duty variance is so small we ignore it */
344
/************************************************/
345
DISCRETE_INVERT(NODE_70, NITEDRVR_NOISE)
346
DISCRETE_RCFILTER(NODE_71, 1, NODE_70, 1000, 1e-5)
347
DISCRETE_MULTADD(NODE_72, 1, NODE_71, 940.0-630.0, ((940.0-630.0)/2)+630.0)
348
DISCRETE_SQUAREWAVE(NITEDRVR_SCREECH1_SND, NITEDRVR_SKID1_EN, NODE_72, 226.9, 31.5, 0, 0.0)
350
DISCRETE_MULTADD(NODE_75, 1, NODE_71, 1380.0-626.0, 626.0+((1380.0-626.0)/2)) /* Frequency */
351
DISCRETE_MULTADD(NODE_76, 1, NODE_71, 32.0-13.0, 13.0+((32.0-13.0)/2)) /* Duty */
352
DISCRETE_SQUAREWAVE(NITEDRVR_SCREECH2_SND, NITEDRVR_SKID2_EN, NODE_75, 226.9, NODE_76, 0, 0.0)
354
/************************************************/
355
/* Combine all sound sources. */
356
/* Add some final gain to get to a good sound */
358
/************************************************/
359
DISCRETE_ADDER4(NODE_90, 1, NITEDRVR_MOTOR_SND, NITEDRVR_BANG_SND, NITEDRVR_SCREECH1_SND, NITEDRVR_SCREECH2_SND)
360
DISCRETE_GAIN(NODE_91, NODE_90, 65534.0/(786.7+1000.0+226.9))
362
DISCRETE_OUTPUT(NODE_91, 100)
367
/*************************************
371
*************************************/
142
/* Graphics Decode Information */
144
static const gfx_decode gfxdecodeinfo[] =
146
{ REGION_GFX1, 0, &charlayout, 0, 1 },
150
/* Machine Initialization */
152
static MACHINE_RESET( nitedrvr )
154
timer_pulse(TIME_IN_SEC(0.693 * (180000 + (2 * 330)) * 1e-6), 0, nitedrvr_crash_toggle);
155
nitedrvr_register_machine_vars();
373
160
static MACHINE_DRIVER_START( nitedrvr )
375
161
/* basic machine hardware */
376
MDRV_CPU_ADD(M6502,1000000) /* 1 MHz ???? */
377
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
378
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
162
MDRV_CPU_ADD(M6502, 12096000/12) /* 1 MHz */
163
MDRV_CPU_PROGRAM_MAP(nitedrvr_map, 0)
164
MDRV_CPU_VBLANK_INT(irq0_line_hold, 1)
165
MDRV_WATCHDOG_VBLANK_INIT(3)
380
MDRV_FRAMES_PER_SECOND(57)
167
MDRV_FRAMES_PER_SECOND(57) /* how is this derived? */
381
168
MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
383
MDRV_MACHINE_INIT(nitedrvr)
170
MDRV_MACHINE_RESET(nitedrvr)
385
172
/* video hardware */
386
173
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
387
174
MDRV_SCREEN_SIZE(32*8, 32*8)
388
175
MDRV_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
389
176
MDRV_GFXDECODE(gfxdecodeinfo)
390
MDRV_PALETTE_LENGTH(4)
391
MDRV_COLORTABLE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
393
MDRV_PALETTE_INIT(nitedrvr)
177
MDRV_PALETTE_LENGTH(2)
179
MDRV_PALETTE_INIT(black_and_white)
394
180
MDRV_VIDEO_START(nitedrvr)
395
181
MDRV_VIDEO_UPDATE(nitedrvr)
397
183
/* sound hardware */
398
MDRV_SOUND_ADD_TAG("discrete", DISCRETE, nitedrvr_sound_interface)
184
MDRV_SPEAKER_STANDARD_MONO("mono")
186
MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0)
187
MDRV_SOUND_CONFIG(nitedrvr_discrete_interface)
188
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
399
189
MACHINE_DRIVER_END
403
/*************************************
407
*************************************/
194
ROM_START( nitedrvo ) // early revision has the program code stored in 8 chips
195
ROM_REGION( 0x10000, REGION_CPU1, 0 )
196
ROM_LOAD( "006560-01.h1", 0x9000, 0x0200, NO_DUMP ) // PROM 1
197
ROM_LOAD( "006561-01.c1", 0x9200, 0x0200, NO_DUMP ) // PROM 2
198
ROM_LOAD( "006562-01.j1", 0x9400, 0x0200, NO_DUMP ) // PROM 3
199
ROM_LOAD( "006563-01.d1", 0x9600, 0x0200, NO_DUMP ) // PROM 4
200
ROM_LOAD( "006564-01.k1", 0x9800, 0x0200, NO_DUMP ) // PROM 5
201
ROM_LOAD( "006565-01.e1", 0x9a00, 0x0200, NO_DUMP ) // PROM 6
202
ROM_LOAD( "006566-01.l1", 0x9c00, 0x0200, NO_DUMP ) // PROM 7
203
ROM_LOAD( "006567-01.f1", 0x9e00, 0x0200, NO_DUMP ) // PROM 8
409
207
ROM_START( nitedrvr )
410
ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
411
ROM_LOAD( "6569-01.d2", 0x9000, 0x0800, CRC(7afa7542) SHA1(81018e25ebdeae1daf1308676661063b6fd7fd22) )
412
ROM_LOAD( "6570-01.f2", 0x9800, 0x0800, CRC(bf5d77b1) SHA1(6f603f8b0973bd89e0e721b66944aac8e9f904d9) )
413
ROM_RELOAD( 0xf800, 0x0800 )
415
ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE )
416
ROM_LOAD( "6568-01.p2", 0x0000, 0x0200, CRC(f80d8889) SHA1(ca573543dcce1221459d5693c476cef14bfac4f4) )
418
ROM_REGION( 0x0100, REGION_PROMS, 0 )
419
ROM_LOAD( "6559-01.h7", 0x0000, 0x0100, CRC(5a8d0e42) SHA1(772220c4c24f18769696ddba26db2bc2e5b0909d) ) /* unknown */
208
ROM_REGION( 0x10000, REGION_CPU1, 0 )
209
ROM_LOAD( "006569-01.d2", 0x9000, 0x0800, CRC(7afa7542) SHA1(81018e25ebdeae1daf1308676661063b6fd7fd22) ) /* MASK ROM 1 */
210
ROM_LOAD( "006570-01.f2", 0x9800, 0x0800, CRC(bf5d77b1) SHA1(6f603f8b0973bd89e0e721b66944aac8e9f904d9) ) /* MASK ROM 2 */
211
ROM_RELOAD( 0xf800, 0x0800 ) /* vectors */
213
ROM_REGION( 0x200, REGION_GFX1, ROMREGION_DISPOSE )
214
ROM_LOAD( "006568-01.p2", 0x0000, 0x0200, CRC(f80d8889) SHA1(ca573543dcce1221459d5693c476cef14bfac4f4) ) /* PROM, Alpha-Numeric */
216
ROM_REGION( 0x100, REGION_PROMS, 0 )
217
ROM_LOAD( "006559-01.h7", 0x0000, 0x0100, CRC(5a8d0e42) SHA1(772220c4c24f18769696ddba26db2bc2e5b0909d) ) /* PROM, Sync */
424
/*************************************
428
*************************************/
430
GAMEX( 1976, nitedrvr, 0, nitedrvr, nitedrvr, 0, ROT0, "Atari", "Night Driver", GAME_IMPERFECT_SOUND )
222
GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, 0, ROT0, "Atari", "Night Driver", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)