1 // license:BSD-3-Clause
2 // copyright-holders:Aaron Giles
3 /***************************************************************************
4 
5     Sega pre-System 16 & System 16A hardware
6 
7 ****************************************************************************
8 
9     Known bugs:
10         * some games are stuck after reset when i8751 is present
11 
12     DIP locations verified from manual for:
13         * aceattaca
14         * aliensyn
15         * aliensynj
16         * passsht16a
17         * quartet
18         * quart2
19         * shinobi
20         * tetris
21         * timescan
22         * wb3
23 
24 ***************************************************************************
25 
26 System16A Hardware Overview
27 ---------------------------
28 
29 The games on this system include... (there may be more??)
30 Action Fighter (C) Sega 1985
31 Alex Kidd      (C) Sega 1986
32 Fantasy Zone   (C) Sega 1986
33 SDI            (C) Sega 1987
34 Shinobi        (C) Sega 1987
35 Tetris         (C) Sega 1988
36 Passing Shot   (C) Sega 1988
37 
38 PCB Layout
39 ----------
40 
41 Top PCB
42 
43 171-5306 (number under PCB, no numbers on top)
44          |----------|     |-----------|     |-----------|
45   |------|----------|-----|-----------|-----|-----------|------|
46 |-|      16MHz    25.1478MHz                                   |
47 | |                                  315-5149                  |
48 |-|    YM3012 YM2151  ROM.IC24 ROM.IC41                        |
49   | VOL                                                        |
50   |                   ROM.IC25 ROM.IC42  MB3771                |
51 |-|         D8255                           315-5155           |
52 |                     ROM.IC26 ROM.IC43     315-5155  ROM.IC93 |
53 |S                                                             |
54 |E          Z80A      TC5565   TC5565       315-5155  ROM.IC94 |
55 |G                315-5141                  315-5155           |
56 |A         ROM.IC12                                   ROM.IC95 |
57 |5                                          315-5155           |
58 |6          2016                            315-5155           |
59 |                                                     2016     |
60 |-|                                       8751                 |
61   |        DSW2        |-------------|                2016     |
62 |-|                    |    68000    | 315-5244                |
63 |                      |-------------|       315-5142          |
64 |          DSW1                                                |
65 |                        10MHz                                 |
66 |--------------------------------------------------------------|
67 Notes:
68       68000    - running at 10.000MHz. Is replaced with a Hitachi FD1094 in some games.
69       Z80      - running at 4.000MHz [16/4]
70       YM2151   - running at 4.000MHz [16/4]
71       2016     - Fujitsu MB8128 2K x8 SRAM (DIP24)
72       TC5565   - Toshiba TC5565 8K x8 SRAM (DIP28)
73       8751     - Intel 8751 Microcontroller. It appears to be not used, and instead, games use a small plug-in board
74                  containing only one 74HC04 TTL IC. The daughterboard has Sega part number '837-0068' & '171-5468' stamped onto it.
75       315-5141 - Signetics CK2605 stamped '315-5141' (DIP20)
76       315-5149 - 82S153 Field Programmable Logic Array, sticker '315-5149'(DIP20)
77       315-5244 - 82S153 Field Programmable Logic Array, sticker '315-5244'(DIP20)
78       315-5142 - Signetics CK2605 stamped '315-5142' (DIP20)
79       315-5155 - Custom Sega IC (DIP20)
80 
81                          Sound     |---------------------- Main Program --------------------|  |---------- Tiles ---------|
82                          Program
83 Game           CPU       IC12      IC24      IC25      IC26      IC41      IC42      IC43      IC93      IC94      IC95
84 ---------------------------------------------------------------------------------------------------------------------------
85 Action Fighter 317-0018  EPR10284  EPR10353  EPR10351  EPR10349  EPR10352  EPR10350  EPR10348  EPR10283  EPR10282  EPR10281
86 Alex Kid       317-0021  EPR10434  -         EPR10428  EPR10427  -         EPR10429  EPR10430  EPR10433  EPR10432  EPR10431
87 Alex Kid (Alt) 317-0021  EPR10434  -         EPR10446  EPR10445  -         EPR10448  EPR10447  EPR10433  EPR10432  EPR10431
88 Fantasy Zone   68000     EPR7535   EPR7384   EPR7383   EPR7382   EPR7387   EPR7386   EPR7385   EPR7390   EPR7389   EPR7388
89 SDI            317-0027  EPR10759  EPR10752  EPR10969  EPR10968  EPR10755  EPR10971  EPR10970  EPR10758  EPR10757  EPR10756
90 Shinobi        317-0050  EPR11267  -         EPR11261  EPR11260  -         EPR11262  EPR11263  EPR11266  EPR11265  EPR11264
91 Tetris         317-0093  EPR12205  -         -         EPR12200  -         -         EPR12201  EPR12204  EPR12203  EPR12202
92 
93 
94 Bottom PCB
95 
96 171-5307 (number under PCB, no numbers on top)
97          |----------|     |-----------|     |-----------|
98 |--------|----------|-----|-----------|-----|-----------|------|
99 |                                           315-5144           |-|
100 |                                                              | |
101 |                                                              |-|
102 |        2148 2148 2148                                        |
103 |                              ROM.IC24    ROM.IC11            |
104 |        2148 2148 2148  ROM.IC30   ROM.IC18                   |
105 |                                                   D7751      |
106 |                                                        6MHz  |
107 |                              ROM.IC23    ROM.IC10     D8243C |
108 |            315-5049    ROM.IC29   ROM.IC17                   |
109 |                                                              |
110 |                  315-5106    315-5108                        |
111 |                        315-5107     2018  2018               |
112 |                                                              |
113 |            315-5049                                          |
114 |                                              ROM.IC5 ROM.IC2 |
115 |TC5565 TC5565                  315-5011                       |
116 |                                                              |
117 |               2016  315-5143       315-5012  ROM.IC4 ROM.IC1 |
118 |TC5565 TC5565  2016                                           |
119 |--------------------------------------------------------------|
120 Notes:
121       D7751    - NEC uPD7751C Microcontroller, running at 6.000MHz. This is a clone of an 8048 MCU
122       D8243C   - NEC D8243C (DIP24)
123       2016     - Fujitsu MB8128 2K x8 SRAM (DIP24)
124       2018     - Sony CXD5813 2K x8 SRAM
125       TC5565   - Toshiba TC5565 8K x8 SRAM (DIP28)
126       2148     - Fujitsu MBM2148 1K x4 SRAM (DIP18)
127       315-5144 - Signetics CK2605 stamped '315-5144' (DIP20)
128       315-5143 - Signetics CK2605 stamped '315-5143' (DIP20)
129       315-5106 - PAL16R6 stamped '315-5106' (DIP20)
130       315-5107 - PAL16R6 stamped '315-5107' (DIP20)
131       315-5108 - PAL16R6 stamped '315-5108' (DIP20)
132       315-5011 - Custom Sega IC (DIP40)
133       315-5012 - Custom Sega IC (DIP48)
134       315-5049 - Custom Sega IC (SDIP64)
135 
136                |---------- 7751 Sound Data ---------|  |--------------------------------- Sprites ----------------------------------|
137 
138 Game           IC1       IC2       IC4       IC5       IC10      IC11      IC17      IC18      IC23      IC24      IC29      IC30
139 -------------------------------------------------------------------------------------------------------------------------------------
140 Action Fighter -         -         -         -         EPR10285  EPR10289  EPR10286  EPR10290  EPR10287  EPR10291  EPR10288  EPR10292
141 Alex Kid       EPR10435  EPR10436  -         -         EPR10437  EPR10441  EPR10438  EPR10442  EPR10439  EPR10443  EPR10440  EPR10444
142 Fantasy Zone   -         -         -         -         EPR7392   EPR7396   EPR7393   EPR7397   EPR7394   EPR7398   -         -
143 SDI            -         -         -         -         EPR10760  EPR10763  EPR10761  EPR10764  EPR10762  EPR10765  -         -
144 Shinobi        EPR11268  -         -         -         EPR11290  EPR11294  EPR11291  EPR11295  EPR11292  EPR11296  EPR11293  EPR11297
145 Tetris         -         -         -         -         EPR12169  EPR12170  -         -         -         -         -         -
146 
147 ***************************************************************************/
148 
149 #include "emu.h"
150 #include "includes/segas16a.h"
151 #include "includes/segaipt.h"
152 
153 #include "machine/fd1089.h"
154 #include "machine/fd1094.h"
155 #include "machine/nvram.h"
156 #include "machine/segacrp2_device.h"
157 #include "sound/dac.h"
158 #include "speaker.h"
159 
160 
161 //**************************************************************************
162 //  PPI READ/WRITE CALLBACKS
163 //**************************************************************************
164 
165 //-------------------------------------------------
166 //  misc_control_w - miscellaneous video controls
167 //-------------------------------------------------
168 
misc_control_w(uint8_t data)169 void segas16a_state::misc_control_w(uint8_t data)
170 {
171 	//
172 	//  PPI port B
173 	//
174 	//  D7 : Screen flip (1= flip, 0= normal orientation)
175 	//  D6 : To 8751 pin 13 (/INT1)
176 	//  D5 : To 315-5149 pin 17.
177 	//  D4 : Screen enable (1= display, 0= blank)
178 	//  D3 : Lamp #2 (1= on, 0= off)
179 	//  D2 : Lamp #1 (1= on, 0= off)
180 	//  D1 : Coin meter #2
181 	//  D0 : Coin meter #1
182 	//
183 
184 	// bits 2 & 3: control the lamps, allowing for overrides
185 	if (((m_video_control ^ data) & 0x0c) && !m_lamp_changed_w.isnull())
186 		m_lamp_changed_w(m_video_control ^ data, data);
187 	m_lamps[1] = BIT(data, 3);
188 	m_lamps[0] = BIT(data, 2);
189 
190 	m_video_control = data;
191 
192 	// bit 7: screen flip
193 	m_segaic16vid->tilemap_set_flip(0, data & 0x80);
194 	m_sprites->set_flip(data & 0x80);
195 
196 	// bit 6: set 8751 interrupt line
197 	if (m_mcu != nullptr)
198 		m_mcu->set_input_line(MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
199 
200 	// bit 4: enable display
201 	m_segaic16vid->set_display_enable(data & 0x10);
202 
203 	// bits 0 & 1: update coin counters
204 	machine().bookkeeping().coin_counter_w(1, data & 0x02);
205 	machine().bookkeeping().coin_counter_w(0, data & 0x01);
206 }
207 
208 
209 //-------------------------------------------------
210 //  tilemap_sound_w - tilemap and sound control
211 //-------------------------------------------------
212 
tilemap_sound_w(uint8_t data)213 void segas16a_state::tilemap_sound_w(uint8_t data)
214 {
215 	//
216 	//  PPI port C
217 	//
218 	//  D7 : Port A handshaking signal /OBF
219 	//  D6 : Port A handshaking signal ACK
220 	//  D5 : Port A handshaking signal IBF
221 	//  D4 : Port A handshaking signal /STB
222 	//  D3 : Port A handshaking signal INTR
223 	//  D2 : To PAL 315-5107 pin 9 (SCONT1)
224 	//  D1 : To PAL 315-5108 pin 19 (SCONT0)
225 	//  D0 : To MUTE input on MB3733 amplifier.
226 	//       0= Sound is disabled
227 	//       1= sound is enabled
228 	//
229 	m_soundcpu->set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
230 	m_segaic16vid->tilemap_set_colscroll(0, ~data & 0x04);
231 	m_segaic16vid->tilemap_set_rowscroll(0, ~data & 0x02);
232 }
233 
234 
235 
236 //**************************************************************************
237 //  MAIN CPU READ/WRITE HANDLERS
238 //**************************************************************************
239 
240 //-------------------------------------------------
241 //  standard_io_r - default I/O handler for reads
242 //-------------------------------------------------
243 
standard_io_r(offs_t offset)244 uint16_t segas16a_state::standard_io_r(offs_t offset)
245 {
246 	offset &= 0x3fff/2;
247 	switch (offset & (0x3000/2))
248 	{
249 		case 0x0000/2:
250 			return m_i8255->read(offset & 3);
251 
252 		case 0x1000/2:
253 		{
254 			static const char *const sysports[] = { "SERVICE", "P1", "UNUSED", "P2" };
255 			return ioport(sysports[offset & 3])->read();
256 		}
257 
258 		case 0x2000/2:
259 			return ioport((offset & 1) ? "DSW2" : "DSW1")->read();
260 	}
261 	//logerror("%06X:standard_io_r - unknown read access to address %04X\n", m_maincpu->state_int(STATE_GENPC), offset * 2);
262 	return 0xffff;
263 }
264 
265 
266 //-------------------------------------------------
267 //  standard_io_r - default I/O handler for writes
268 //-------------------------------------------------
269 
standard_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)270 void segas16a_state::standard_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
271 {
272 	offset &= 0x3fff/2;
273 	switch (offset & (0x3000/2))
274 	{
275 		case 0x0000/2:
276 			// the port C handshaking signals control the Z80 NMI,
277 			// so we have to sync whenever we access this PPI
278 			if (ACCESSING_BITS_0_7)
279 				synchronize(TID_PPI_WRITE, ((offset & 3) << 8) | (data & 0xff));
280 			return;
281 	}
282 	//logerror("%06X:standard_io_w - unknown write access to address %04X = %04X & %04X\n", m_maincpu->state_int(STATE_GENPC), offset * 2, data, mem_mask);
283 }
284 
285 
286 //-------------------------------------------------
287 //  misc_io_r - miscellaneous I/O reads
288 //-------------------------------------------------
289 
misc_io_r(offs_t offset)290 uint16_t segas16a_state::misc_io_r(offs_t offset)
291 {
292 	// just call custom handler
293 	return m_custom_io_r(offset);
294 }
295 
296 
297 //-------------------------------------------------
298 //  misc_io_w - miscellaneous I/O writes
299 //-------------------------------------------------
300 
misc_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)301 void segas16a_state::misc_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
302 {
303 	// just call custom handler
304 	m_custom_io_w(offset, data, mem_mask);
305 }
306 
307 
308 
309 //**************************************************************************
310 //  Z80 SOUND CPU READ/WRITE HANDLERS
311 //**************************************************************************
312 
313 //-------------------------------------------------
314 //  sound_data_r - read data from the sound latch
315 //-------------------------------------------------
316 
sound_data_r()317 uint8_t segas16a_state::sound_data_r()
318 {
319 	// assert ACK
320 	m_i8255->pc6_w(CLEAR_LINE);
321 	return m_soundlatch->read();
322 }
323 
324 
325 //-------------------------------------------------
326 //  n7751_command_w - control the N7751
327 //-------------------------------------------------
328 
n7751_command_w(uint8_t data)329 void segas16a_state::n7751_command_w(uint8_t data)
330 {
331 	//
332 	//  Z80 7751 control port
333 	//
334 	//  D7-D5 = connected to 7751 port C
335 	//  D4    = /CS for ROM 3
336 	//  D3    = /CS for ROM 2
337 	//  D2    = /CS for ROM 1
338 	//  D1    = /CS for ROM 0
339 	//  D0    = A14 line to ROMs
340 	//
341 	int numroms = memregion("n7751data")->bytes() / 0x8000;
342 	m_n7751_rom_address &= 0x3fff;
343 	m_n7751_rom_address |= (data & 0x01) << 14;
344 	if (!(data & 0x02) && numroms >= 1) m_n7751_rom_address |= 0x00000;
345 	if (!(data & 0x04) && numroms >= 2) m_n7751_rom_address |= 0x08000;
346 	if (!(data & 0x08) && numroms >= 3) m_n7751_rom_address |= 0x10000;
347 	if (!(data & 0x10) && numroms >= 4) m_n7751_rom_address |= 0x18000;
348 	m_n7751_command = data >> 5;
349 }
350 
351 
352 //-------------------------------------------------
353 //  n7751_control_w - YM2151 output port callback
354 //-------------------------------------------------
355 
n7751_control_w(uint8_t data)356 void segas16a_state::n7751_control_w(uint8_t data)
357 {
358 	//
359 	//  YM2151 output port
360 	//
361 	//  D1 = /RESET line on 7751
362 	//  D0 = /IRQ line on 7751
363 	//
364 	m_n7751->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
365 	m_n7751->set_input_line(0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE);
366 	machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
367 }
368 
369 
370 //-------------------------------------------------
371 //  n7751_rom_offset_w - post expander callback
372 //-------------------------------------------------
373 
374 template<int Shift>
n7751_rom_offset_w(uint8_t data)375 void segas16a_state::n7751_rom_offset_w(uint8_t data)
376 {
377 	// P4 - address lines 0-3
378 	// P5 - address lines 4-7
379 	// P6 - address lines 8-11
380 	// P7 - address lines 12-13
381 	int mask = (0xf << Shift) & 0x3fff;
382 	int newdata = (data << Shift) & mask;
383 	m_n7751_rom_address = (m_n7751_rom_address & ~mask) | newdata;
384 }
385 
386 //**************************************************************************
387 //  N7751 SOUND GENERATOR CPU READ/WRITE HANDLERS
388 //**************************************************************************
389 
390 //-------------------------------------------------
391 //  n7751_rom_r - MCU reads from BUS
392 //-------------------------------------------------
393 
n7751_rom_r()394 uint8_t segas16a_state::n7751_rom_r()
395 {
396 	// read from BUS
397 	return memregion("n7751data")->base()[m_n7751_rom_address];
398 }
399 
400 
401 //-------------------------------------------------
402 //  n7751_p2_r - MCU reads from the P2 lines
403 //-------------------------------------------------
404 
n7751_p2_r()405 uint8_t segas16a_state::n7751_p2_r()
406 {
407 	// read from P2 - 8255's PC0-2 connects to 7751's S0-2 (P24-P26 on an 8048)
408 	// bit 0x80 is an alternate way to control the sample on/off; doesn't appear to be used
409 	return 0x80 | ((m_n7751_command & 0x07) << 4) | (m_n7751_i8243->p2_r() & 0x0f);
410 }
411 
412 
413 //-------------------------------------------------
414 //  n7751_p2_w - MCU writes to the P2 lines
415 //-------------------------------------------------
416 
n7751_p2_w(uint8_t data)417 void segas16a_state::n7751_p2_w(uint8_t data)
418 {
419 	// write to P2; low 4 bits go to 8243
420 	m_n7751_i8243->p2_w(data & 0x0f);
421 
422 	// output of bit $80 indicates we are ready (1) or busy (0)
423 	// no other outputs are used
424 }
425 
426 
427 
428 //**************************************************************************
429 //  I8751 MCU READ/WRITE HANDLERS
430 //**************************************************************************
431 
432 //-------------------------------------------------
433 //  mcu_control_w - control lines from the MCU
434 //-------------------------------------------------
435 
mcu_control_w(uint8_t data)436 void segas16a_state::mcu_control_w(uint8_t data)
437 {
438 	// if we have a fake i8751 handler, ignore writes by the actual 8751
439 	if (!m_i8751_vblank_hook.isnull())
440 		return;
441 
442 	// apply reset to the main CPU
443 	m_maincpu->set_input_line(INPUT_LINE_RESET, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
444 
445 	// apply IRQ bits to the main CPU
446 	for (int irqline = 1; irqline <= 7; irqline++)
447 		m_maincpu->set_input_line(irqline, ((~data & 7) == irqline) ? ASSERT_LINE : CLEAR_LINE);
448 
449 	// enable/disable the display
450 	if (data & 0x40)
451 		m_segaic16vid->set_display_enable(1);
452 
453 	// apply an extra boost if the main CPU is just waking up
454 	if ((m_mcu_control ^ data) & 0x40)
455 		machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
456 
457 	// remember the remaining bits, which control read/write access to main CPU space
458 	m_mcu_control = data;
459 }
460 
461 
462 //-------------------------------------------------
463 //  mcu_io_w - handle I/O space writes, which map
464 //  to the 68000's address space
465 //-------------------------------------------------
466 
mcu_io_w(offs_t offset,uint8_t data)467 void segas16a_state::mcu_io_w(offs_t offset, uint8_t data)
468 {
469 	//
470 	//  1.00 0... = work RAM (accessed @ $4000+x) or I/O (accessed @ $8000+x)
471 	//  1.00 1... = text RAM (accessed @ $8000+x)
472 	//  1.01 1... = palette RAM
473 	//  1.10 1... = checksum #0
474 	//  1.11 0... = checksum #1
475 	//  1.11 1... = checksum #2
476 	//
477 	switch ((m_mcu_control >> 3) & 7)
478 	{
479 		case 0:
480 			// access main work RAM
481 			if (offset >= 0x4000 && offset < 0x8000)
482 				m_maincpu->space(AS_PROGRAM).write_byte(0xc70001 ^ (offset & 0x3fff), data);
483 
484 			// access misc I/O space
485 			else if (offset >= 0x8000 && offset < 0xc000)
486 				m_maincpu->space(AS_PROGRAM).write_byte(0xc40001 ^ (offset & 0x3fff), data);
487 			else
488 				logerror("%03X: MCU movx write mode %02X offset %04X = %02X\n", m_mcu->pc(), m_mcu_control, offset, data);
489 			break;
490 
491 		// access text RAM
492 		case 1:
493 			if (offset >= 0x8000 && offset < 0x9000)
494 				m_maincpu->space(AS_PROGRAM).write_byte(0x410001 ^ (offset & 0xfff), data);
495 			else
496 				logerror("%03X: MCU movx write mode %02X offset %04X = %02X\n", m_mcu->pc(), m_mcu_control, offset, data);
497 			break;
498 
499 		// access palette RAM
500 		case 3:
501 			m_maincpu->space(AS_PROGRAM).write_byte(0x840001 ^ offset, data);
502 			break;
503 
504 		// access ROMs - fall through to logging
505 		case 5:
506 		case 6:
507 		case 7:
508 
509 		// log anything else
510 		default:
511 			logerror("%03X: MCU movx write mode %02X offset %04X = %02X\n", m_mcu->pc(), m_mcu_control, offset, data);
512 			break;
513 	}
514 }
515 
516 
517 //-------------------------------------------------
518 //  mcu_io_r - handle I/O space reads, which map
519 //  to the 68000's address space
520 //-------------------------------------------------
521 
mcu_io_r(address_space & space,offs_t offset)522 uint8_t segas16a_state::mcu_io_r(address_space &space, offs_t offset)
523 {
524 	switch ((m_mcu_control >> 3) & 7)
525 	{
526 		case 0:
527 			// access watchdog? (unsure about this one)
528 			if (                         offset < 0x3fff)
529 				return m_watchdog->reset_r(space);
530 
531 			// access main work RAM
532 			else if (offset >= 0x4000 && offset < 0x8000)
533 				return m_maincpu->space(AS_PROGRAM).read_byte(0xc70001 ^ (offset & 0x3fff));
534 
535 			// access misc I/O space
536 			else if (offset >= 0x8000 && offset < 0xc000)
537 				return m_maincpu->space(AS_PROGRAM).read_byte(0xc40001 ^ (offset & 0x3fff));
538 			logerror("%03X: MCU movx read mode %02X offset %04X\n", m_mcu->pc(), m_mcu_control, offset);
539 			return 0xff;
540 
541 		// access text RAM
542 		case 1:
543 			if (offset >= 0x8000 && offset < 0x9000)
544 				return m_maincpu->space(AS_PROGRAM).read_byte(0x410001 ^ (offset & 0xfff));
545 			logerror("%03X: MCU movx read mode %02X offset %04X\n", m_mcu->pc(), m_mcu_control, offset);
546 			return 0xff;
547 
548 		// access palette RAM
549 		case 3:
550 			return m_maincpu->space(AS_PROGRAM).read_byte(0x840001 ^ offset);
551 
552 		// access ROMs
553 		case 5:
554 			return memregion("maincpu")->base()[0x00000 + offset];
555 		case 6:
556 			return memregion("maincpu")->base()[0x10000 + offset];
557 		case 7:
558 			return memregion("maincpu")->base()[0x20000 + offset];
559 
560 		// log anything else
561 		default:
562 			logerror("%03X: MCU movx read mode %02X offset %04X\n", m_mcu->pc(), m_mcu_control, offset);
563 			return 0xff;
564 	}
565 }
566 
567 
568 
569 //**************************************************************************
570 //  I8751-RELATED VBLANK INTERRUPT HANDLERS
571 //**************************************************************************
572 
573 //-------------------------------------------------
574 //  i8751_main_cpu_vblank_w - if we have a fake
575 //  handler, we hook this to execute it
576 //-------------------------------------------------
577 
WRITE_LINE_MEMBER(segas16a_state::i8751_main_cpu_vblank_w)578 WRITE_LINE_MEMBER(segas16a_state::i8751_main_cpu_vblank_w)
579 {
580 	// if we have a fake 8751 handler, call it on VBLANK
581 	if (state && !m_i8751_vblank_hook.isnull())
582 		m_i8751_vblank_hook();
583 
584 	// if we have a 8751, toggle the INT0 line on the MCU
585 	if (m_mcu.found())
586 	{
587 		m_mcu->set_input_line(MCS51_INT0_LINE, state);
588 
589 		// boost interleave to ensure that the MCU can break the M68000 out of a STOP
590 		if (state)
591 			machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
592 	}
593 }
594 
595 
596 
597 //**************************************************************************
598 //  DRIVER OVERRIDES
599 //**************************************************************************
600 
601 //-------------------------------------------------
602 //  machine_reset - reset the state of the machine
603 //-------------------------------------------------
604 
machine_reset()605 void segas16a_state::machine_reset()
606 {
607 	// queue up a timer to either boost interleave or disable the MCU
608 	synchronize(TID_INIT_I8751);
609 	m_video_control = 0;
610 	m_mcu_control = 0x00;
611 	m_n7751_command = 0;
612 	m_n7751_rom_address = 0;
613 	m_last_buttons1 = 0;
614 	m_last_buttons2 = 0;
615 	m_read_port = 0;
616 	m_mj_input_num = 0;
617 }
618 
619 
620 //-------------------------------------------------
621 //  device_timer - handle device timers
622 //-------------------------------------------------
623 
device_timer(emu_timer & timer,device_timer_id id,int param,void * ptr)624 void segas16a_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
625 {
626 	switch (id)
627 	{
628 		// if we have a fake i8751 handler, disable the actual 8751, otherwise crank the interleave
629 		case TID_INIT_I8751:
630 			if (!m_i8751_vblank_hook.isnull())
631 				m_mcu->suspend(SUSPEND_REASON_DISABLE, 1);
632 			else if (m_mcu != nullptr)
633 				machine().scheduler().boost_interleave(attotime::zero, attotime::from_msec(10));
634 			break;
635 
636 		// synchronize writes to the 8255 PPI
637 		case TID_PPI_WRITE:
638 			m_i8255->write(param >> 8, param & 0xff);
639 			break;
640 	}
641 }
642 
643 
644 
645 //**************************************************************************
646 //  I8751 SIMULATIONS
647 //**************************************************************************
648 
649 //-------------------------------------------------
650 //  dumpmtmt_i8751_sim - simulate the I8751
651 //  from Dump Matsumoto
652 //-------------------------------------------------
653 
dumpmtmt_i8751_sim()654 void segas16a_state::dumpmtmt_i8751_sim()
655 {
656 	uint8_t flag = m_workram[0x200/2] >> 8;
657 	uint8_t tick = m_workram[0x200/2] & 0xff;
658 	uint8_t sec = m_workram[0x202/2] >> 8;
659 	uint8_t min = m_workram[0x202/2] & 0xff;
660 
661 	// signal a VBLANK to the main CPU
662 	m_maincpu->set_input_line(4, HOLD_LINE);
663 
664 	// out of time? set the flag
665 	if (tick == 0 && sec == 0 && min == 0)
666 		flag = 1;
667 	else
668 	{
669 		if (tick != 0)
670 			tick--;
671 		else
672 		{
673 			// the game counts 64 ticks per second
674 			tick = 0x40;
675 
676 			// seconds are counted in BCD
677 			if (sec != 0)
678 				sec = (sec & 0xf) ? sec - 1 : (sec - 0x10) + 9;
679 			else
680 			{
681 				sec = 0x59;
682 
683 				// minutes are counted normally
684 				if (min != 0)
685 					min--;
686 				else
687 				{
688 					flag = 1;
689 					tick = sec = min = 0;
690 				}
691 			}
692 		}
693 	}
694 	m_workram[0x200/2] = (flag << 8) + tick;
695 	m_workram[0x202/2] = (sec << 8) + min;
696 }
697 
698 
699 
700 //**************************************************************************
701 //  CUSTOM I/O HANDLERS
702 //**************************************************************************
703 
704 //-------------------------------------------------
705 //  aceattaca_custom_io_r - custom I/O read handler
706 //  for Ace Attacker
707 //-------------------------------------------------
708 
aceattaca_custom_io_r(offs_t offset)709 uint16_t segas16a_state::aceattaca_custom_io_r(offs_t offset)
710 {
711 	switch (offset & (0x3000/2))
712 	{
713 		case 0x1000/2:
714 			switch (offset & 3)
715 			{
716 				case 0x01:
717 				{
718 					switch (m_video_control & 0xf)
719 					{
720 						case 0x00: return ioport("P1")->read(); // "HANDX1"
721 						case 0x04: return ioport("TRACKX1")->read();
722 						case 0x08: return ioport("TRACKY1")->read();
723 						case 0x0c: return ioport("HANDY1")->read();
724 					}
725 					break;
726 				}
727 
728 				case 0x02:
729 					return ioport("DIAL1")->read() | (ioport("DIAL2")->read() << 4);
730 					// low nibble: Sega 56pin Edge "16"-"19" // rotary switch 10positions 4bit-binary-pinout
731 					// high nibble: Sega 56pin Edge "T"-"W"  // ditto
732 
733 				case 0x03:
734 				{
735 					switch (m_video_control & 0xf)
736 					{
737 						case 0x00: return ioport("P2")->read(); // "HANDX2"
738 						case 0x04: return ioport("TRACKX2")->read();
739 						case 0x08: return ioport("TRACKY2")->read();
740 						case 0x0c: return ioport("HANDY2")->read();
741 					}
742 					break;
743 				}
744 			}
745 			break;
746 
747 		case 0x3000/2:
748 			if (BIT(offset, 4))
749 				return m_cxdio->read(offset & 0x0f);
750 			break;
751 	}
752 	return standard_io_r(offset);
753 }
754 
aceattaca_custom_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)755 void segas16a_state::aceattaca_custom_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
756 {
757 	switch (offset & (0x3000/2))
758 	{
759 		case 0x3000/2:
760 			if (BIT(offset, 4))
761 			{
762 				m_cxdio->write(offset & 0x0f, data);
763 				return;
764 			}
765 			break;
766 	}
767 	standard_io_w(offset, data, mem_mask);
768 }
769 
770 
771 //-------------------------------------------------
772 //  mjleague_custom_io_r - custom I/O read handler
773 //  for Major League
774 //-------------------------------------------------
775 
mjleague_custom_io_r(offs_t offset)776 uint16_t segas16a_state::mjleague_custom_io_r(offs_t offset)
777 {
778 	switch (offset & (0x3000/2))
779 	{
780 		case 0x1000/2:
781 			switch (offset & 3)
782 			{
783 				// offset 0 contains the regular switches; the two upper bits map to the
784 				// upper bit of the trackball controls
785 				case 0:
786 				{
787 					uint8_t buttons = ioport("SERVICE")->read();
788 					uint8_t analog1 = ioport((m_video_control & 4) ? "ANALOGY1" : "ANALOGX1")->read();
789 					uint8_t analog2 = ioport((m_video_control & 4) ? "ANALOGY2" : "ANALOGX2")->read();
790 					buttons |= (analog1 & 0x80) >> 1;
791 					buttons |= (analog2 & 0x80);
792 					return buttons;
793 				}
794 
795 				// offset 1 contains the low 7 bits of player 1's trackballs, plus the
796 				// player 1 select switch mapped to bit 7
797 				case 1:
798 				{
799 					uint8_t buttons = ioport("BUTTONS1")->read();
800 					uint8_t analog = ioport((m_video_control & 4) ? "ANALOGY1" : "ANALOGX1")->read();
801 					return (buttons & 0x80) | (analog & 0x7f);
802 				}
803 
804 				// offset 2 contains either the batting control or the "stance" button state
805 				case 2:
806 				{
807 					if (m_video_control & 4)
808 						return (ioport("ANALOGZ1")->read() >> 4) | (ioport("ANALOGZ2")->read() & 0xf0);
809 					else
810 					{
811 						uint8_t buttons1 = ioport("BUTTONS1")->read();
812 						uint8_t buttons2 = ioport("BUTTONS2")->read();
813 
814 						if (!(buttons1 & 0x01))
815 							m_last_buttons1 = 0;
816 						else if (!(buttons1 & 0x02))
817 							m_last_buttons1 = 1;
818 						else if (!(buttons1 & 0x04))
819 							m_last_buttons1 = 2;
820 						else if (!(buttons1 & 0x08))
821 							m_last_buttons1 = 3;
822 
823 						if (!(buttons2 & 0x01))
824 							m_last_buttons2 = 0;
825 						else if (!(buttons2 & 0x02))
826 							m_last_buttons2 = 1;
827 						else if (!(buttons2 & 0x04))
828 							m_last_buttons2 = 2;
829 						else if (!(buttons2 & 0x08))
830 							m_last_buttons2 = 3;
831 
832 						return m_last_buttons1 | (m_last_buttons2 << 4);
833 					}
834 				}
835 
836 				// offset 2 contains the low 7 bits of player 2's trackballs, plus the
837 				// player 2 select switch mapped to bit 7
838 				case 3:
839 				{
840 					uint8_t buttons = ioport("BUTTONS2")->read();
841 					uint8_t analog = ioport((m_video_control & 4) ? "ANALOGY2" : "ANALOGX2")->read();
842 					return (buttons & 0x80) | (analog & 0x7f);
843 				}
844 			}
845 			break;
846 	}
847 	return standard_io_r(offset);
848 }
849 
850 
851 //-------------------------------------------------
852 //  passsht16a_custom_io_r - custom I/O read handler
853 //  for Passing Shot
854 //-------------------------------------------------
855 
passsht16a_custom_io_r(offs_t offset)856 uint16_t segas16a_state::passsht16a_custom_io_r(offs_t offset)
857 {
858 	switch (offset & (0x3000/2))
859 	{
860 		case 0x1000/2:
861 			switch (offset & 3)
862 			{
863 				case 0:
864 					m_read_port = 0;
865 					break;
866 
867 				case 1:
868 					switch ((m_read_port++) & 3)
869 					{
870 						case 0: return ioport("P1")->read();
871 						case 1: return ioport("P2")->read();
872 						case 2: return ioport("P3")->read();
873 						case 3: return ioport("P4")->read();
874 					}
875 
876 					break;
877 			}
878 			break;
879 	}
880 	return standard_io_r(offset);
881 }
882 
883 
884 //-------------------------------------------------
885 //  sdi_custom_io_r - custom I/O read handler
886 //  for SDI
887 //-------------------------------------------------
888 
sdi_custom_io_r(offs_t offset)889 uint16_t segas16a_state::sdi_custom_io_r(offs_t offset)
890 {
891 	switch (offset & (0x3000/2))
892 	{
893 		case 0x1000/2:
894 			switch (offset & 3)
895 			{
896 				case 1: return ioport((m_video_control & 4) ? "ANALOGY1" : "ANALOGX1")->read();
897 				case 3: return ioport((m_video_control & 4) ? "ANALOGY2" : "ANALOGX2")->read();
898 			}
899 			break;
900 	}
901 	return standard_io_r(offset);
902 }
903 
904 
905 //-------------------------------------------------
906 //  sjryuko_custom_io_r - custom I/O read handler
907 //  for Sukeban Jansi Ryuko
908 //-------------------------------------------------
909 
sjryuko_custom_io_r(offs_t offset)910 uint16_t segas16a_state::sjryuko_custom_io_r(offs_t offset)
911 {
912 	switch (offset & (0x3000/2))
913 	{
914 		case 0x1000/2:
915 			switch (offset & 3)
916 			{
917 				case 1:
918 					if (m_mj_inputs[m_mj_input_num].read_safe(0xff) != 0xff)
919 						return 0xff & ~(1 << m_mj_input_num);
920 					return 0xff;
921 
922 				case 2:
923 					return m_mj_inputs[m_mj_input_num].read_safe(0xff);
924 			}
925 			break;
926 	}
927 	return standard_io_r(offset);
928 }
929 
930 
sjryuko_lamp_changed_w(uint8_t changed,uint8_t newval)931 void segas16a_state::sjryuko_lamp_changed_w(uint8_t changed, uint8_t newval)
932 {
933 	if ((changed & 4) && (newval & 4))
934 		m_mj_input_num = (m_mj_input_num + 1) % 6;
935 }
936 
937 
938 
939 //**************************************************************************
940 //  MAIN CPU ADDRESS MAPS
941 //**************************************************************************
942 
system16a_map(address_map & map)943 void segas16a_state::system16a_map(address_map &map)
944 {
945 	map.unmap_value_high();
946 	map(0x000000, 0x03ffff).mirror(0x380000).rom();
947 	map(0x400000, 0x407fff).mirror(0xb88000).rw(m_segaic16vid, FUNC(segaic16_video_device::tileram_r), FUNC(segaic16_video_device::tileram_w)).share("tileram");
948 	map(0x410000, 0x410fff).mirror(0xb8f000).rw(m_segaic16vid, FUNC(segaic16_video_device::textram_r), FUNC(segaic16_video_device::textram_w)).share("textram");
949 	map(0x440000, 0x4407ff).mirror(0x3bf800).ram().share("sprites");
950 	map(0x840000, 0x840fff).mirror(0x3bf000).ram().w(FUNC(segas16a_state::paletteram_w)).share("paletteram");
951 	map(0xc40000, 0xc43fff).mirror(0x39c000).rw(FUNC(segas16a_state::misc_io_r), FUNC(segas16a_state::misc_io_w));
952 	map(0xc60000, 0xc6ffff).r(m_watchdog, FUNC(watchdog_timer_device::reset16_r));
953 	map(0xc70000, 0xc73fff).mirror(0x38c000).ram().share("nvram");
954 }
955 
decrypted_opcodes_map(address_map & map)956 void segas16a_state::decrypted_opcodes_map(address_map &map)
957 {
958 	map(0x00000, 0xfffff).bankr("fd1094_decrypted_opcodes");
959 }
960 
961 //**************************************************************************
962 //  SOUND CPU ADDRESS MAPS
963 //**************************************************************************
964 
sound_map(address_map & map)965 void segas16a_state::sound_map(address_map &map)
966 {
967 	map.unmap_value_high();
968 	map(0x0000, 0x7fff).rom();
969 	map(0xe800, 0xe800).r(FUNC(segas16a_state::sound_data_r));
970 	map(0xf800, 0xffff).ram();
971 }
972 
sound_decrypted_opcodes_map(address_map & map)973 void segas16a_state::sound_decrypted_opcodes_map(address_map &map)
974 {
975 	map(0x0000, 0x7fff).rom().share("sound_decrypted_opcodes");
976 }
977 
sound_portmap(address_map & map)978 void segas16a_state::sound_portmap(address_map &map)
979 {
980 	map.unmap_value_high();
981 	map.global_mask(0xff);
982 	map(0x00, 0x01).mirror(0x3e).rw(m_ymsnd, FUNC(ym2151_device::read), FUNC(ym2151_device::write));
983 	map(0x80, 0x80).mirror(0x3f).w(FUNC(segas16a_state::n7751_command_w));
984 	map(0xc0, 0xc0).mirror(0x3f).r(FUNC(segas16a_state::sound_data_r));
985 }
986 
sound_no7751_portmap(address_map & map)987 void segas16a_state::sound_no7751_portmap(address_map &map)
988 {
989 	map.unmap_value_high();
990 	map.global_mask(0xff);
991 	map(0x00, 0x01).mirror(0x3e).rw(m_ymsnd, FUNC(ym2151_device::read), FUNC(ym2151_device::write));
992 	map(0x80, 0x80).mirror(0x3f).noprw();
993 	map(0xc0, 0xc0).mirror(0x3f).r(FUNC(segas16a_state::sound_data_r));
994 }
995 
996 
997 
998 //**************************************************************************
999 //  I8751 MCU ADDRESS MAPS
1000 //**************************************************************************
1001 
mcu_io_map(address_map & map)1002 void segas16a_state::mcu_io_map(address_map &map)
1003 {
1004 	map(0x0000, 0xffff).rw(FUNC(segas16a_state::mcu_io_r), FUNC(segas16a_state::mcu_io_w));
1005 }
1006 
1007 
1008 
1009 //**************************************************************************
1010 //  GENERIC PORT DEFINITIONS
1011 //**************************************************************************
1012 
1013 static INPUT_PORTS_START( system16a_generic )
1014 	PORT_START("SERVICE")
1015 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1016 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1017 	PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
1018 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1019 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1020 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
1021 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1022 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1023 
1024 	PORT_START("P1")
1025 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 )
1026 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
1027 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 )
1028 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1029 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
1030 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
1031 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
1032 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
1033 
1034 	PORT_START("UNUSED")
1035 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1036 
1037 	PORT_START("P2")
1038 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
1039 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
1040 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
1041 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1042 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
1043 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
1044 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
1045 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
1046 
1047 	PORT_START("DSW1")
SEGA_COINAGE_LOC(SW1)1048 	SEGA_COINAGE_LOC(SW1)
1049 
1050 	PORT_START("DSW2")
1051 	PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:1" )
1052 	PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:2" )
1053 	PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:3" )
1054 	PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:4" )
1055 	PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" )
1056 	PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" )
1057 	PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" )
1058 	PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" )
1059 INPUT_PORTS_END
1060 
1061 
1062 
1063 //**************************************************************************
1064 //  GAME-SPECIFIC PORT DEFINITIONS
1065 //**************************************************************************
1066 
1067 static INPUT_PORTS_START( aceattaca )
1068 	#define TMP_PL1HAND 2
1069 	#define TMP_PL1BALL 1
1070 	#define TMP_PL2HAND 4
1071 	#define TMP_PL2BALL 3
1072 
1073 	PORT_INCLUDE( system16a_generic )
1074 
1075 	PORT_MODIFY("SERVICE")
1076 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )            // Block Switch
1077 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // Block Switch
1078 
1079 	PORT_MODIFY("P1") // "P1" multiplexer(1of4) // direction of "hand" device
1080 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL1HAND)
1081 
1082 	PORT_MODIFY("P2") // "P2" multiplexer(1of4) // direction of "hand" device
1083 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL2HAND)
1084 
1085 	PORT_MODIFY("DSW2")
1086 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
1087 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1088 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1089 	PORT_DIPNAME( 0x0e, 0x0e, "Starting Points" )  PORT_DIPLOCATION("SW2:2,3,4")
1090 	PORT_DIPSETTING(    0x06, "2000" )
1091 	PORT_DIPSETTING(    0x0a, "3000" )
1092 	PORT_DIPSETTING(    0x0c, "4000" )
1093 	PORT_DIPSETTING(    0x0e, "5000" )
1094 	PORT_DIPSETTING(    0x08, "6000" )
1095 	PORT_DIPSETTING(    0x04, "7000" )
1096 	PORT_DIPSETTING(    0x02, "8000" )
1097 	PORT_DIPSETTING(    0x00, "9000" )
1098 	PORT_DIPNAME( 0x30, 0x30, "Point Table" ) PORT_DIPLOCATION("SW2:5,6")
1099 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1100 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1101 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1102 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1103 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1104 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1105 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1106 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1107 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1108 
1109 	PORT_START("TRACKX1") // "P1" multiplexer(2of4)
1110 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL1BALL) PORT_REVERSE
1111 
1112 	PORT_START("TRACKY1") // "P1" multiplexer(3of4)
1113 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL1BALL)
1114 
1115 	PORT_START("HANDY1") // "P1" multiplexer(4of4) // power of "hand" device
1116 	PORT_BIT( 0x7f, 0x40, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(30) PORT_PLAYER(TMP_PL1HAND)
1117 	// maybe, read 8 bits, and masked 0x70
1118 
1119 	PORT_START("DIAL1") // toss formation
1120 	PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(10) PORT_WRAPS PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1) PORT_INVERT PORT_FULL_TURN_COUNT(10)
1121 	// AUTOMATIC 1 /  2  3  \ AUTOMATIC 2
1122 	// LEFT SIDE  / 1      4 \ RIGHT SIDE   // (out of range)
1123 	// B QUICK   | 0        5 |   D QUICK   // 10 A QUICK       13 A QUICK
1124 	// A QUICK    \ 9      6 /    C QUICK   // 11 (buggy blank) 14 B QUICK
1125 	// CENTER      \  8  7  / BACK ATTACK   // 12 A QUICK       15 A QUICK
1126 
1127 	PORT_START("TRACKX2") // "P2" multiplexer(2of4)
1128 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL2BALL) PORT_REVERSE
1129 
1130 	PORT_START("TRACKY2") // "P2" multiplexer(3of4)
1131 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(TMP_PL2BALL)
1132 
1133 	PORT_START("HANDY2") // "P2" multiplexer(4of4) // power of "hand" device
1134 	PORT_BIT( 0x7f, 0x40, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(30) PORT_PLAYER(TMP_PL2HAND)
1135 	// maybe, read 8 bits, and masked 0x70
1136 
1137 	PORT_START("DIAL2") // toss formation
1138 	PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(10) PORT_WRAPS PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_INVERT PORT_FULL_TURN_COUNT(10)
1139 
1140 	#undef TMP_PL1HAND
1141 	#undef TMP_PL1BALL
1142 	#undef TMP_PL2HAND
1143 	#undef TMP_PL2BALL
1144 INPUT_PORTS_END
1145 
1146 static INPUT_PORTS_START( afighter )
1147 	PORT_INCLUDE( system16a_generic )
1148 
1149 	PORT_MODIFY("DSW2")
1150 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
1151 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1152 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
1153 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1154 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1155 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1156 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1157 	PORT_DIPSETTING(    0x08, "2" )
1158 	PORT_DIPSETTING(    0x0c, "3" )
1159 	PORT_DIPSETTING(    0x04, "4" )
1160 	PORT_DIPSETTING(    0x00, DEF_STR( Infinite ) )
1161 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6")
1162 	PORT_DIPSETTING(    0x30, "10000 - 20000" )
1163 	PORT_DIPSETTING(    0x20, "20000 - 40000" )
1164 	PORT_DIPSETTING(    0x10, "30000 - 60000" )
1165 	PORT_DIPSETTING(    0x00, "40000 - 80000" )
1166 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7")
1167 	PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
1168 	PORT_DIPSETTING(    0x00, DEF_STR( Hard ) )
1169 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:8")
1170 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1171 	PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
1172 INPUT_PORTS_END
1173 
1174 
1175 CUSTOM_INPUT_MEMBER(afighter_16a_analog_state::afighter_accel_r)
1176 {
1177 	int accel = m_accel->read();
1178 
1179 	switch ((accel & 0xc0) >> 4)
1180 	{
1181 	case 0x00: return 0;
1182 	case 0x04: return (1 << 0);
1183 	case 0x08: return (1 << 1);
1184 	case 0x0c: return (1 << 2);
1185 	}
1186 
1187 	return 0;
1188 }
1189 
CUSTOM_INPUT_MEMBER(afighter_16a_analog_state::afighter_handl_left_r)1190 CUSTOM_INPUT_MEMBER(afighter_16a_analog_state::afighter_handl_left_r)
1191 {
1192 	int steer = m_steer->read();
1193 
1194 	switch ((steer & 0xf0) >> 4)
1195 	{
1196 	case 0x00: return (1<<7);
1197 	case 0x01: return (1<<6);
1198 	case 0x02: return (1<<5);
1199 	case 0x03: return (1<<4);
1200 	case 0x04: return (1<<3);
1201 	case 0x05: return (1<<2);
1202 	case 0x06: return (1<<1);
1203 	case 0x07: return (1<<0);
1204 	}
1205 	return 0x00;
1206 }
1207 
CUSTOM_INPUT_MEMBER(afighter_16a_analog_state::afighter_handl_right_r)1208 CUSTOM_INPUT_MEMBER(afighter_16a_analog_state::afighter_handl_right_r)
1209 {
1210 	int steer = m_steer->read();
1211 
1212 	switch ((steer & 0xf0)>>4)
1213 	{
1214 	case 0x0f: return (1<<7);
1215 	case 0x0e: return (1<<6);
1216 	case 0x0d: return (1<<5);
1217 	case 0x0c: return (1<<4);
1218 	case 0x0b: return (1<<3);
1219 	case 0x0a: return (1<<2);
1220 	case 0x09: return (1<<1);
1221 	case 0x08: return (1<<0);
1222 	}
1223 
1224 	return 0x00;
1225 }
1226 
1227 static INPUT_PORTS_START( afighter_analog )
PORT_INCLUDE(afighter)1228 	PORT_INCLUDE( afighter )
1229 
1230 	PORT_MODIFY("P1")
1231 	PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(afighter_16a_analog_state, afighter_accel_r)
1232 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1233 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // SHOT
1234 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // WEAPON1
1235 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // WEAPON2
1236 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) // WEAPON3
1237 
1238 	PORT_MODIFY("P2")
1239 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(afighter_16a_analog_state, afighter_handl_left_r)
1240 
1241 	PORT_MODIFY("UNUSED")
1242 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(afighter_16a_analog_state, afighter_handl_right_r)
1243 
1244 	PORT_START("STEER")  // steering
1245 	PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
1246 
1247 	PORT_START("ACCEL")  // gas pedal
1248 	PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
1249 INPUT_PORTS_END
1250 
1251 
1252 static INPUT_PORTS_START( alexkidd )
1253 	PORT_INCLUDE( system16a_generic )
1254 
1255 	PORT_MODIFY("DSW2")
1256 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Continues ) ) PORT_DIPLOCATION("SW2:1")
1257 	PORT_DIPSETTING(    0x01, "Only before level 5" )
1258 	PORT_DIPSETTING(    0x00, "Unlimited" )
1259 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1260 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1261 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1262 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1263 	PORT_DIPSETTING(    0x0c, "3" )
1264 	PORT_DIPSETTING(    0x08, "4" )
1265 	PORT_DIPSETTING(    0x04, "5" )
1266 	PORT_DIPSETTING(    0x00, "240 (Cheat)")
1267 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6")
1268 	PORT_DIPSETTING(    0x20, "10000" )
1269 	PORT_DIPSETTING(    0x30, "20000" )
1270 	PORT_DIPSETTING(    0x10, "40000" )
1271 	PORT_DIPSETTING(    0x00, DEF_STR( None ) )
1272 	PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" ) PORT_DIPLOCATION("SW2:7,8")
1273 	PORT_DIPSETTING(    0x80, "70" )
1274 	PORT_DIPSETTING(    0xc0, "60" )
1275 	PORT_DIPSETTING(    0x40, "50" )
1276 	PORT_DIPSETTING(    0x00, "40" )
1277 INPUT_PORTS_END
1278 
1279 
1280 static INPUT_PORTS_START( aliensyn )
1281 	PORT_INCLUDE( system16a_generic )
1282 
1283 	PORT_MODIFY("DSW2")
1284 	//"SW2:1" unused
1285 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1286 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1287 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1288 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1289 	PORT_DIPSETTING(    0x08, "2" )
1290 	PORT_DIPSETTING(    0x0c, "3" )
1291 	PORT_DIPSETTING(    0x04, "4" )
1292 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1293 	PORT_DIPNAME( 0x30, 0x30, "Timer" ) PORT_DIPLOCATION("SW2:5,6")
1294 	PORT_DIPSETTING(    0x00, "120" )
1295 	PORT_DIPSETTING(    0x10, "130" )
1296 	PORT_DIPSETTING(    0x20, "140" )
1297 	PORT_DIPSETTING(    0x30, "150" )
1298 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1299 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1300 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1301 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1302 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1303 INPUT_PORTS_END
1304 
1305 
1306 static INPUT_PORTS_START( aliensynj )
1307 	PORT_INCLUDE( system16a_generic )
1308 
1309 	PORT_MODIFY("DSW2")
1310 	//"SW2:1" unused
1311 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1312 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1313 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1314 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1315 	PORT_DIPSETTING(    0x08, "2" )
1316 	PORT_DIPSETTING(    0x0c, "3" )
1317 	PORT_DIPSETTING(    0x04, "4" )
1318 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1319 	PORT_DIPNAME( 0x30, 0x30, "Timer" ) PORT_DIPLOCATION("SW2:5,6")
1320 	PORT_DIPSETTING(    0x00, "150" )
1321 	PORT_DIPSETTING(    0x10, "160" )
1322 	PORT_DIPSETTING(    0x20, "170" )
1323 	PORT_DIPSETTING(    0x30, "180" )
1324 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1325 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1326 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1327 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1328 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1329 INPUT_PORTS_END
1330 
1331 
1332 static INPUT_PORTS_START( bodyslam )
1333 	PORT_INCLUDE( system16a_generic )
1334 
1335 	PORT_MODIFY("DSW2")
1336 	//"SW2:1" unused
1337 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1338 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1339 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1340 	PORT_DIPNAME( 0x0c, 0x0c, "Timer Speed" ) PORT_DIPLOCATION("SW2:3,4")
1341 	PORT_DIPSETTING(    0x0c, "Slowest" )
1342 	PORT_DIPSETTING(    0x08, "Slow" )
1343 	PORT_DIPSETTING(    0x04, "Fast" )
1344 	PORT_DIPSETTING(    0x00, "Fastest" )
1345 	//"SW2:5" unused
1346 	//"SW2:6" unused
1347 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1348 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1349 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1350 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1351 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1352 INPUT_PORTS_END
1353 
1354 
1355 static INPUT_PORTS_START( fantzone )
1356 	PORT_INCLUDE( system16a_generic )
1357 
1358 	PORT_MODIFY("DSW2")
1359 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
1360 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1361 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
1362 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1363 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1364 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1365 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1366 	PORT_DIPSETTING(    0x08, "2" )
1367 	PORT_DIPSETTING(    0x0c, "3" )
1368 	PORT_DIPSETTING(    0x04, "4" )
1369 	PORT_DIPSETTING(    0x00, "240 (Cheat)")
1370 	PORT_DIPNAME( 0x30, 0x30, "Extra Ship Cost" ) PORT_DIPLOCATION("SW2:5,6")
1371 	PORT_DIPSETTING(    0x30, "5000" )
1372 	PORT_DIPSETTING(    0x20, "10000" )
1373 	PORT_DIPSETTING(    0x10, "15000" )
1374 	PORT_DIPSETTING(    0x00, "20000" )
1375 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1376 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1377 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1378 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1379 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1380 INPUT_PORTS_END
1381 
1382 
1383 static INPUT_PORTS_START( mjleague )
1384 	PORT_INCLUDE( system16a_generic )
1385 
1386 	PORT_MODIFY("SERVICE")
1387 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM )   // upper bit of trackball
1388 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM )   // upper bit of trackball
1389 
1390 	PORT_MODIFY("P1")
1391 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM )
1392 
1393 	PORT_MODIFY("P2")
1394 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM )
1395 
1396 	PORT_MODIFY("DSW2")
1397 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
1398 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1399 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
1400 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1401 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1402 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1403 	PORT_DIPNAME( 0x0c, 0x00, "Starting Points" ) PORT_DIPLOCATION("SW2:3,4")
1404 	PORT_DIPSETTING(    0x0c, "2000" )
1405 	PORT_DIPSETTING(    0x08, "3000" )
1406 	PORT_DIPSETTING(    0x04, "5000" )
1407 	PORT_DIPSETTING(    0x00, "10000" )
1408 	PORT_DIPNAME( 0x10, 0x10, "Team Select" ) PORT_DIPLOCATION("SW2:5")
1409 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1410 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1411 	//"SW2:6" unused //??? something to do with cocktail mode?
1412 	//"SW2:7" unused
1413 	//"SW2:8" unused
1414 
1415 	PORT_START("ANALOGX1")
1416 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5)
1417 
1418 	PORT_START("ANALOGY1")
1419 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5)
1420 
1421 	PORT_START("ANALOGX2")
1422 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2)
1423 
1424 	PORT_START("ANALOGY2")
1425 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2)
1426 
1427 	PORT_START("ANALOGZ1")
1428 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(75) PORT_KEYDELTA(15)
1429 
1430 	PORT_START("ANALOGZ2")
1431 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(75) PORT_KEYDELTA(15) PORT_PLAYER(2)
1432 
1433 	PORT_START("BUTTONS1")
1434 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
1435 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
1436 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 )
1437 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 )
1438 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1439 
1440 	PORT_START("BUTTONS2")
1441 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1442 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1443 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
1444 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
1445 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1446 INPUT_PORTS_END
1447 
1448 
1449 static INPUT_PORTS_START( passsht16a )
1450 	PORT_INCLUDE( system16a_generic )
1451 
1452 	PORT_MODIFY("SERVICE")
1453 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 )
1454 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1455 
1456 	PORT_MODIFY("P1")
1457 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
1458 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
1459 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
1460 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
1461 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1462 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
1463 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
1464 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
1465 
1466 	PORT_MODIFY("P2")
1467 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1468 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1469 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1470 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1471 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1472 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1473 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1474 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
1475 
1476 	PORT_START("P3")
1477 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1478 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1479 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1480 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1481 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1482 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1483 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1484 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3)
1485 
1486 	PORT_START("P4")
1487 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1488 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1489 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1490 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1491 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1492 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1493 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1494 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4)
1495 
1496 	PORT_MODIFY("DSW2")
1497 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
1498 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1499 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1500 	PORT_DIPNAME( 0x0e, 0x0e, "Initial Point" ) PORT_DIPLOCATION("SW2:2,3,4")
1501 	PORT_DIPSETTING(    0x06, "2000" )
1502 	PORT_DIPSETTING(    0x0a, "3000" )
1503 	PORT_DIPSETTING(    0x0c, "4000" )
1504 	PORT_DIPSETTING(    0x0e, "5000" )
1505 	PORT_DIPSETTING(    0x08, "6000" )
1506 	PORT_DIPSETTING(    0x04, "7000" )
1507 	PORT_DIPSETTING(    0x02, "8000" )
1508 	PORT_DIPSETTING(    0x00, "9000" )
1509 	PORT_DIPNAME( 0x30, 0x30, "Point Table" ) PORT_DIPLOCATION("SW2:5,6")
1510 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1511 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1512 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1513 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1514 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
1515 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1516 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1517 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1518 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1519 INPUT_PORTS_END
1520 
1521 
1522 static INPUT_PORTS_START( quartet )
1523 	PORT_INCLUDE( system16a_generic )
1524 
1525 	PORT_MODIFY("SERVICE")
1526 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY
1527 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP  ) PORT_8WAY
1528 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
1529 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
1530 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1531 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
1532 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
1533 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
1534 
1535 	PORT_MODIFY("P1")
1536 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1537 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1538 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(2)
1539 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(2)
1540 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1541 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1542 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1543 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE2 )
1544 
1545 	PORT_MODIFY("UNUSED")
1546 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_PLAYER(3)
1547 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1548 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1549 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1550 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1551 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1552 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
1553 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE3 )
1554 
1555 	PORT_MODIFY("P2")
1556 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1557 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1558 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(4)
1559 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(4)
1560 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1561 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1562 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 )
1563 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
1564 
1565 	PORT_MODIFY("DSW2")
1566 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
1567 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1568 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1569 	PORT_DIPNAME( 0x06, 0x06, "Credit Power" ) PORT_DIPLOCATION("SW2:2,3")
1570 	PORT_DIPSETTING(    0x04, "500" )
1571 	PORT_DIPSETTING(    0x06, "1000" )
1572 	PORT_DIPSETTING(    0x02, "2000" )
1573 	PORT_DIPSETTING(    0x00, "9000" )
1574 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,5")
1575 	PORT_DIPSETTING(    0x10, DEF_STR( Easy ) )
1576 	PORT_DIPSETTING(    0x18, DEF_STR( Normal ) )
1577 	PORT_DIPSETTING(    0x08, DEF_STR( Hard ) )
1578 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1579 	PORT_DIPNAME( 0x20, 0x20, "Coin During Game" ) PORT_DIPLOCATION("SW2:6")
1580 	PORT_DIPSETTING(    0x20, "Power" )
1581 	PORT_DIPSETTING(    0x00, "Credit" )
1582 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:7")
1583 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1584 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1585 	PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "SW2:8" )
1586 INPUT_PORTS_END
1587 
1588 
1589 static INPUT_PORTS_START( quart2 )
1590 	PORT_INCLUDE( system16a_generic )
1591 
1592 	PORT_MODIFY("DSW2")
1593 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
1594 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1595 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1596 	PORT_DIPNAME( 0x06, 0x06, "Credit Power" ) PORT_DIPLOCATION("SW2:2,3")
1597 	PORT_DIPSETTING(    0x04, "500" )
1598 	PORT_DIPSETTING(    0x06, "1000" )
1599 	PORT_DIPSETTING(    0x02, "2000" )
1600 	PORT_DIPSETTING(    0x00, "9000" )
1601 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,5")
1602 	PORT_DIPSETTING(    0x10, DEF_STR( Easy ) )
1603 	PORT_DIPSETTING(    0x18, DEF_STR( Normal ) )
1604 	PORT_DIPSETTING(    0x08, DEF_STR( Hard ) )
1605 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1606 	//"SW2:6" unused
1607 	//"SW2:7" unused
1608 	//"SW2:8" unused
1609 INPUT_PORTS_END
1610 
1611 
1612 static INPUT_PORTS_START( sdi )
1613 	PORT_INCLUDE( system16a_generic )
1614 
1615 	PORT_MODIFY("SERVICE")
1616 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
1617 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1618 
1619 	PORT_MODIFY("P1")
1620 	PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
1621 
1622 	PORT_MODIFY("UNUSED")
1623 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN )  PORT_8WAY
1624 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP )    PORT_8WAY
1625 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY
1626 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT )  PORT_8WAY
1627 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN )  PORT_8WAY PORT_PLAYER(2)
1628 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP )    PORT_8WAY PORT_PLAYER(2)
1629 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1630 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT )  PORT_8WAY PORT_PLAYER(2)
1631 
1632 	PORT_MODIFY("P2")
1633 	PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
1634 
1635 	PORT_MODIFY("DSW2")
1636 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:1")
1637 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1638 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1639 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1640 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1641 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1642 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1643 	PORT_DIPSETTING(    0x08, "2" )
1644 	PORT_DIPSETTING(    0x0c, "3" )
1645 	PORT_DIPSETTING(    0x04, "4" )
1646 	PORT_DIPSETTING(    0x00, "Free")
1647 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,6")
1648 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1649 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1650 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1651 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1652 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:7,8")
1653 	PORT_DIPSETTING(    0x80, "Every 50000" )
1654 	PORT_DIPSETTING(    0xc0, "50000" )
1655 	PORT_DIPSETTING(    0x40, "100000" )
1656 	PORT_DIPSETTING(    0x00, DEF_STR( None ) )
1657 
1658 	PORT_START("ANALOGX1")
1659 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5)
1660 
1661 	PORT_START("ANALOGY1")
1662 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_REVERSE
1663 
1664 	PORT_START("ANALOGX2")
1665 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2)
1666 
1667 	PORT_START("ANALOGY2")
1668 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_REVERSE
1669 INPUT_PORTS_END
1670 
1671 
1672 static INPUT_PORTS_START( shinobi )
1673 	PORT_INCLUDE( system16a_generic )
1674 
1675 	PORT_MODIFY("DSW2")
1676 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
1677 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
1678 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
1679 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1680 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1681 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1682 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1683 	PORT_DIPSETTING(    0x08, "2" )
1684 	PORT_DIPSETTING(    0x0c, "3" )
1685 	PORT_DIPSETTING(    0x04, "5" )
1686 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1687 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,6")
1688 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1689 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1690 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1691 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1692 	PORT_DIPNAME( 0x40, 0x40, "Enemy's Bullet Speed" ) PORT_DIPLOCATION("SW2:7")
1693 	PORT_DIPSETTING(    0x40, "Slow" )
1694 	PORT_DIPSETTING(    0x00, "Fast" )
1695 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:8")
1696 	PORT_DIPSETTING(    0x80, DEF_STR( Japanese ) )
1697 	PORT_DIPSETTING(    0x00, DEF_STR( English ) )
1698 INPUT_PORTS_END
1699 
1700 
1701 static INPUT_PORTS_START( sjryuko )
1702 	PORT_INCLUDE( system16a_generic )
1703 
1704 	PORT_MODIFY("SERVICE")
1705 	PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
1706 
1707 	PORT_MODIFY("P1")
1708 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1709 
1710 	PORT_MODIFY("P2")
1711 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1712 
1713 	PORT_MODIFY("DSW1")
1714 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
1715 	PORT_DIPSETTING(    0x07, DEF_STR( 4C_1C ) )
1716 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
1717 	PORT_DIPSETTING(    0x09, DEF_STR( 2C_1C ) )
1718 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1719 	PORT_DIPSETTING(    0x00, " 1 Coin/1 Credit" )
1720 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_3C ) )
1721 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1722 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1723 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1724 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1725 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1726 	PORT_DIPSETTING(    0x05, DEF_STR( None ) )
1727 	PORT_DIPSETTING(    0x04, DEF_STR( None ) )
1728 	PORT_DIPSETTING(    0x03, DEF_STR( None ) )
1729 	PORT_DIPSETTING(    0x02, DEF_STR( None ) )
1730 	PORT_DIPSETTING(    0x01, DEF_STR( None ) )
1731 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
1732 	PORT_DIPSETTING(    0x70, DEF_STR( 4C_1C ) )
1733 	PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
1734 	PORT_DIPSETTING(    0x90, DEF_STR( 2C_1C ) )
1735 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1736 	PORT_DIPSETTING(    0x00, " 1 Coin/1 Credit" )
1737 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_3C ) )
1738 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1739 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1740 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1741 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1742 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1743 	PORT_DIPSETTING(    0x50, DEF_STR( None ) )
1744 	PORT_DIPSETTING(    0x40, DEF_STR( None ) )
1745 	PORT_DIPSETTING(    0x30, DEF_STR( None ) )
1746 	PORT_DIPSETTING(    0x20, DEF_STR( None ) )
1747 	PORT_DIPSETTING(    0x10, DEF_STR( None ) )
1748 
1749 	PORT_MODIFY("DSW2")
1750 	PORT_DIPNAME( 0x03, 0x03, "CPU Level" ) PORT_DIPLOCATION("SW2:1,2")
1751 	PORT_DIPSETTING(    0x03, "Weak" )
1752 	PORT_DIPSETTING(    0x02, "Medium Weak" )
1753 	PORT_DIPSETTING(    0x01, "Medium Strong" )
1754 	PORT_DIPSETTING(    0x00, "Strong" )
1755 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
1756 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1757 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1758 	//"SW2:4" unused
1759 	//"SW2:5" unused
1760 	//"SW2:6" unused
1761 	//"SW2:7" unused
1762 	//"SW2:8" unused
1763 
1764 	PORT_START("MJ0")
1765 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
1766 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B )
1767 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C )
1768 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_D )
1769 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
1770 	PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
1771 
1772 	PORT_START("MJ1")
1773 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_E )
1774 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
1775 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_G )
1776 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_H )
1777 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
1778 
1779 	PORT_START("MJ2")
1780 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_I )
1781 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_J )
1782 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
1783 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_L )
1784 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
1785 
1786 	PORT_START("MJ3")
1787 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_M )
1788 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_N )
1789 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
1790 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
1791 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP )
1792 	PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
1793 
1794 	PORT_START("MJ4")
1795 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE )
1796 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
1797 	PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
1798 
1799 	PORT_START("MJ5")
1800 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
1801 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
1802 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
1803 	PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
1804 INPUT_PORTS_END
1805 
1806 
1807 static INPUT_PORTS_START( tetris )
1808 	PORT_INCLUDE( system16a_generic )
1809 
1810 	PORT_MODIFY("P1")
1811 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
1812 
1813 	PORT_MODIFY("P2")
1814 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
1815 
1816 	PORT_MODIFY("DSW2")
1817 	// SW2:1,3,4,7,8 Unused according to manual.
1818 	// From the code SW2:3,4 looks like some kind of difficulty level,
1819 	// but all 4 levels points to the same place so it doesn't actually change anything!!
1820 	//"SW2:1" unused
1821 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1822 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1823 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1824 	//"SW2:3" unused
1825 	//"SW2:4" unused
1826 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,6")
1827 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1828 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1829 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1830 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1831 	//"SW2:7" unused
1832 	//"SW2:8" unused
1833 INPUT_PORTS_END
1834 
1835 
1836 static INPUT_PORTS_START( timescan )
1837 	PORT_INCLUDE( system16a_generic )
1838 
1839 	PORT_MODIFY("P1")
1840 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
1841 
1842 	PORT_MODIFY("UNUSED")
1843 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWE:1")
1844 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1845 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1846 	PORT_DIPNAME( 0x02, 0x02, "Out Lane Pin" ) PORT_DIPLOCATION("SWE:2") // Distance between out-lane-pins
1847 	PORT_DIPSETTING(    0x02, "Near" )
1848 	PORT_DIPSETTING(    0x00, "Far" )
1849 	PORT_DIPNAME( 0x0c, 0x0c, "Special" ) PORT_DIPLOCATION("SWE:3,4") // SPECIAL-stage clear bonus
1850 	PORT_DIPSETTING(    0x08, "3 Credits" )
1851 	PORT_DIPSETTING(    0x0c, "2 Credits" )
1852 	PORT_DIPSETTING(    0x04, "1 Credit" )
1853 	PORT_DIPSETTING(    0x00, "2000000 Points" )
1854 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWE:5")
1855 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1856 	PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
1857 	PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWE:6" ) // Listed as "Unused"
1858 	PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWE:7" ) // Listed as "Unused"
1859 	PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWE:8" ) // Listed as "Unused"
1860 	//"SWE:1" = "EXT.SW1" = Sega 56pin Edge "16"
1861 	//"SWE:2" = "EXT.SW2" =                 "17"
1862 	//"SWE:3" = "EXT.SW3" =                 "18"
1863 	//"SWE:4" = "EXT.SW4" =                 "19"
1864 	//"SWE:5" = "EXT.SW5" =                 "T"
1865 	//"SWE:6" = "EXT.SW6" =                 "U"
1866 	//"SWE:7" = "EXT.SW7" =                 "V"
1867 	//"SWE:8" = "EXT.SW8" =                 "W"
1868 
1869 	PORT_MODIFY("P2")
1870 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
1871 
1872 	PORT_MODIFY("DSW2")
1873 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1")
1874 	PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
1875 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1876 	PORT_DIPNAME( 0x1e, 0x1e, "Extended Score" ) PORT_DIPLOCATION("SW2:2,3,4,5")
1877 	PORT_DIPSETTING(    0x16, "Credit 1000000/2000000" )
1878 	PORT_DIPSETTING(    0x14, "Credit 1200000/2500000" )
1879 	PORT_DIPSETTING(    0x12, "Credit 1500000/3000000" )
1880 	PORT_DIPSETTING(    0x10, "Credit 2000000/4000000" )
1881 	PORT_DIPSETTING(    0x1c, "Credit 1000000" )
1882 	PORT_DIPSETTING(    0x1e, "Credit 1200000" )
1883 	PORT_DIPSETTING(    0x1a, "Credit 1500000" )
1884 	PORT_DIPSETTING(    0x18, "Credit 1800000" )
1885 	PORT_DIPSETTING(    0x0e, "Ball 100000" )
1886 	PORT_DIPSETTING(    0x0c, "Ball 200000" )
1887 	PORT_DIPSETTING(    0x0a, "Ball 300000" )
1888 	PORT_DIPSETTING(    0x08, "Ball 400000" )
1889 	PORT_DIPSETTING(    0x06, "Ball 500000" )
1890 	PORT_DIPSETTING(    0x04, "Ball 600000" )
1891 	PORT_DIPSETTING(    0x02, "Ball 700000" )
1892 	PORT_DIPSETTING(    0x00, DEF_STR( None ) )
1893 	PORT_DIPNAME( 0x20, 0x20, "Number Match" ) PORT_DIPLOCATION("SW2:6")
1894 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1895 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
1896 	PORT_DIPNAME( 0x40, 0x40, "Pin Rebound" ) PORT_DIPLOCATION("SW2:7") // Rebounding strength of out-lane-pins
1897 	PORT_DIPSETTING(    0x40, "Well" )
1898 	PORT_DIPSETTING(    0x00, "A Little" )
1899 	//
1900 	//  Pin Rebound = The Setting of "Well" or "A Little" signifies the
1901 	//  rebound strength and the resulting difficulty or ease in which the
1902 	//  ball goes out of play.
1903 	//
1904 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:8")
1905 	PORT_DIPSETTING(    0x80, "3" )
1906 	PORT_DIPSETTING(    0x00, "5" )
1907 INPUT_PORTS_END
1908 
1909 
1910 static INPUT_PORTS_START( wb3 )
1911 	PORT_INCLUDE( system16a_generic )
1912 
1913 	PORT_MODIFY("DSW2")
1914 	//"SW2:1" unused
1915 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
1916 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1917 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1918 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
1919 	PORT_DIPSETTING(    0x00, "2" )
1920 	PORT_DIPSETTING(    0x0c, "3" )
1921 	PORT_DIPSETTING(    0x08, "4" )
1922 	PORT_DIPSETTING(    0x04, "5" )
1923 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5")
1924 	PORT_DIPSETTING(    0x10, "50k/100k/180k/300k" )
1925 	PORT_DIPSETTING(    0x00, "50k/150k/300k" )
1926 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6")
1927 	PORT_DIPSETTING(    0x20, DEF_STR( Normal ) )
1928 	PORT_DIPSETTING(    0x00, DEF_STR( Hard ) )
1929 	PORT_DIPNAME( 0x40, 0x40, "Test Mode" ) PORT_DIPLOCATION("SW2:7")
1930 	PORT_DIPSETTING(    0x40, DEF_STR( No ) )   // Normal game
1931 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )  // Levels are selectable / Player is Invincible
1932 	//"SW2:8" unused
1933 	// Switches 1 & 8 are listed as "Always off"
1934 INPUT_PORTS_END
1935 
1936 
1937 
1938 //**************************************************************************
1939 //  GRAPHICS DECODING
1940 //**************************************************************************
1941 
1942 static GFXDECODE_START( gfx_segas16a )
1943 	GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x3_planar, 0, 1024 )
1944 GFXDECODE_END
1945 
1946 
1947 
1948 //**************************************************************************
1949 //  GENERIC MACHINE DRIVERS
1950 //**************************************************************************
1951 
1952 void segas16a_state::system16a(machine_config &config)
1953 {
1954 	// basic machine hardware
1955 	M68000(config, m_maincpu, 10000000);
1956 	m_maincpu->set_addrmap(AS_PROGRAM, &segas16a_state::system16a_map);
1957 	m_maincpu->set_vblank_int("screen", FUNC(segas16a_state::irq4_line_hold));
1958 
1959 	Z80(config, m_soundcpu, 4000000);
1960 	m_soundcpu->set_addrmap(AS_PROGRAM, &segas16a_state::sound_map);
1961 	m_soundcpu->set_addrmap(AS_IO, &segas16a_state::sound_portmap);
1962 
1963 	N7751(config, m_n7751, 6000000);
1964 	m_n7751->bus_in_cb().set(FUNC(segas16a_state::n7751_rom_r));
1965 	m_n7751->t1_in_cb().set_constant(0); // labelled as "TEST", connected to ground
1966 	m_n7751->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w));
1967 	m_n7751->p2_in_cb().set(FUNC(segas16a_state::n7751_p2_r));
1968 	m_n7751->p2_out_cb().set(FUNC(segas16a_state::n7751_p2_w));
1969 	m_n7751->prog_out_cb().set("n7751_8243", FUNC(i8243_device::prog_w));
1970 
1971 	I8243(config, m_n7751_i8243);
1972 	m_n7751_i8243->p4_out_cb().set(FUNC(segas16a_state::n7751_rom_offset_w<0>));
1973 	m_n7751_i8243->p5_out_cb().set(FUNC(segas16a_state::n7751_rom_offset_w<4>));
1974 	m_n7751_i8243->p6_out_cb().set(FUNC(segas16a_state::n7751_rom_offset_w<8>));
1975 	m_n7751_i8243->p7_out_cb().set(FUNC(segas16a_state::n7751_rom_offset_w<12>));
1976 
1977 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
1978 
1979 	WATCHDOG_TIMER(config, m_watchdog);
1980 
1981 	I8255(config, m_i8255);
1982 	m_i8255->out_pa_callback().set("soundlatch", FUNC(generic_latch_8_device::write));
1983 	m_i8255->out_pb_callback().set(FUNC(segas16a_state::misc_control_w));
1984 	m_i8255->out_pc_callback().set(FUNC(segas16a_state::tilemap_sound_w));
1985 
1986 	// video hardware
1987 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1988 	m_screen->set_refresh_hz(60);
1989 	m_screen->set_size(342, 262);   // to be verified
1990 	m_screen->set_visarea(0*8, 40*8-1, 0*8, 28*8-1);
1991 	m_screen->set_screen_update(FUNC(segas16a_state::screen_update));
1992 	m_screen->set_palette(m_palette);
1993 
1994 	SEGA_SYS16A_SPRITES(config, m_sprites, 0);
1995 	SEGAIC16VID(config, m_segaic16vid, 0, "gfxdecode");
1996 
1997 	GFXDECODE(config, "gfxdecode", m_palette, gfx_segas16a);
1998 	PALETTE(config, m_palette).set_entries(2048*2);
1999 
2000 	// sound hardware
2001 	SPEAKER(config, "speaker").front_center();
2002 
2003 	GENERIC_LATCH_8(config, m_soundlatch);
2004 
2005 	YM2151(config, m_ymsnd, 4000000);
2006 	m_ymsnd->port_write_handler().set(FUNC(segas16a_state::n7751_control_w));
2007 	m_ymsnd->add_route(ALL_OUTPUTS, "speaker", 0.43);
2008 
2009 	DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
2010 }
2011 
2012 
system16a_fd1089a(machine_config & config)2013 void segas16a_state::system16a_fd1089a(machine_config &config)
2014 {
2015 	system16a(config);
2016 	FD1089A(config.replace(), m_maincpu, 10000000);
2017 	m_maincpu->set_addrmap(AS_PROGRAM, &segas16a_state::system16a_map);
2018 	m_maincpu->set_vblank_int("screen", FUNC(segas16a_state::irq4_line_hold));
2019 }
2020 
system16a_fd1089b(machine_config & config)2021 void segas16a_state::system16a_fd1089b(machine_config &config)
2022 {
2023 	system16a(config);
2024 	FD1089B(config.replace(), m_maincpu, 10000000);
2025 	m_maincpu->set_addrmap(AS_PROGRAM, &segas16a_state::system16a_map);
2026 	m_maincpu->set_vblank_int("screen", FUNC(segas16a_state::irq4_line_hold));
2027 }
2028 
system16a_fd1094(machine_config & config)2029 void segas16a_state::system16a_fd1094(machine_config &config)
2030 {
2031 	system16a(config);
2032 	FD1094(config.replace(), m_maincpu, 10000000);
2033 	m_maincpu->set_addrmap(AS_PROGRAM, &segas16a_state::system16a_map);
2034 	m_maincpu->set_addrmap(AS_OPCODES, &segas16a_state::decrypted_opcodes_map);
2035 	m_maincpu->set_vblank_int("screen", FUNC(segas16a_state::irq4_line_hold));
2036 }
2037 
aceattaca_fd1094(machine_config & config)2038 void segas16a_state::aceattaca_fd1094(machine_config &config)
2039 {
2040 	system16a_fd1094(config);
2041 	CXD1095(config, "cxdio");
2042 }
2043 
system16a_i8751(machine_config & config)2044 void segas16a_state::system16a_i8751(machine_config &config)
2045 {
2046 	system16a(config);
2047 	m_maincpu->remove_vblank_int();
2048 
2049 	I8751(config, m_mcu, 8000000);
2050 	m_mcu->set_addrmap(AS_IO, &segas16a_state::mcu_io_map);
2051 	m_mcu->port_out_cb<1>().set(FUNC(segas16a_state::mcu_control_w));
2052 
2053 	m_screen->screen_vblank().set(FUNC(segas16a_state::i8751_main_cpu_vblank_w));
2054 }
2055 
system16a_no7751(machine_config & config)2056 void segas16a_state::system16a_no7751(machine_config &config)
2057 {
2058 	system16a(config);
2059 	m_soundcpu->set_addrmap(AS_IO, &segas16a_state::sound_no7751_portmap);
2060 
2061 	config.device_remove("n7751");
2062 	config.device_remove("n7751_8243");
2063 	config.device_remove("dac");
2064 
2065 	YM2151(config.replace(), m_ymsnd, 4000000);
2066 	m_ymsnd->add_route(ALL_OUTPUTS, "speaker", 1.0);
2067 }
2068 
system16a_no7751p(machine_config & config)2069 void segas16a_state::system16a_no7751p(machine_config &config)
2070 {
2071 	system16a_no7751(config);
2072 	segacrp2_z80_device &z80(SEGA_315_5177(config.replace(), m_soundcpu, 4000000));
2073 	z80.set_addrmap(AS_PROGRAM, &segas16a_state::sound_map);
2074 	z80.set_addrmap(AS_IO, &segas16a_state::sound_no7751_portmap);
2075 	z80.set_addrmap(AS_OPCODES, &segas16a_state::sound_decrypted_opcodes_map);
2076 	z80.set_decrypted_tag(m_sound_decrypted_opcodes);
2077 }
2078 
2079 /*
2080 void segas16a_state::system16a_i8751_no7751(machine_config &config)
2081 {
2082     system16a_i8751(config);
2083     config.device_remove("n7751");
2084     config.device_remove("dac");
2085     config.device_remove("vref");
2086 
2087     YM2151(config.replace(), "ymsnd", 4000000).add_route(ALL_OUTPUTS, "speaker", 1.0);
2088 }
2089 */
2090 
system16a_fd1089a_no7751(machine_config & config)2091 void segas16a_state::system16a_fd1089a_no7751(machine_config &config)
2092 {
2093 	system16a_fd1089a(config);
2094 	m_soundcpu->set_addrmap(AS_IO, &segas16a_state::sound_no7751_portmap);
2095 
2096 	config.device_remove("n7751");
2097 	config.device_remove("dac");
2098 
2099 	YM2151(config.replace(), m_ymsnd, 4000000);
2100 	m_ymsnd->add_route(ALL_OUTPUTS, "speaker", 1.0);
2101 }
2102 
system16a_fd1089b_no7751(machine_config & config)2103 void segas16a_state::system16a_fd1089b_no7751(machine_config &config)
2104 {
2105 	system16a_fd1089b(config);
2106 	m_soundcpu->set_addrmap(AS_IO, &segas16a_state::sound_no7751_portmap);
2107 
2108 	config.device_remove("n7751");
2109 	config.device_remove("dac");
2110 
2111 	YM2151(config.replace(), m_ymsnd, 4000000);
2112 	m_ymsnd->add_route(ALL_OUTPUTS, "speaker", 1.0);
2113 }
2114 
system16a_fd1094_no7751(machine_config & config)2115 void segas16a_state::system16a_fd1094_no7751(machine_config &config)
2116 {
2117 	system16a_fd1094(config);
2118 	m_soundcpu->set_addrmap(AS_IO, &segas16a_state::sound_no7751_portmap);
2119 
2120 	config.device_remove("n7751");
2121 	config.device_remove("dac");
2122 
2123 	YM2151(config.replace(), m_ymsnd, 4000000);
2124 	m_ymsnd->add_route(ALL_OUTPUTS, "speaker", 1.0);
2125 }
2126 
2127 
2128 
2129 //**************************************************************************
2130 //  ROM definitions
2131 //**************************************************************************
2132 
2133 
2134 //*************************************************************************************************************************
2135 //*************************************************************************************************************************
2136 //*************************************************************************************************************************
2137 //  Ace Attacker, Sega System 16A
2138 //  CPU: FD1094 317-0060
2139 //
2140 ROM_START( aceattaca )
2141 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
CRC(ca116367)2142 	ROM_LOAD16_BYTE( "epr-11573.43", 0x00000, 0x10000, CRC(ca116367) SHA1(ca09b01568dafec48354072267accb73a97a670f) )
2143 	ROM_LOAD16_BYTE( "epr-11571.26", 0x00001, 0x10000, CRC(5631d1d6) SHA1(08a2d375e3e4caf392cf2da2dc5497fd1142ab15) )
2144 	ROM_LOAD16_BYTE( "epr-11574.42", 0x20000, 0x10000, CRC(8d3ed7bd) SHA1(0cb947a796071b0b787638a85fce39135ad8d3cb) )
2145 	ROM_LOAD16_BYTE( "epr-11572.25", 0x20001, 0x10000, CRC(35c27c25) SHA1(ac983db30edb4c4b71f04359cd22c663940435f5) )
2146 
2147 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2148 	ROM_LOAD( "317-0060.key", 0x0000, 0x2000, CRC(f4ee940f) SHA1(13cca3f19bd9761d484185a3476bec3c8c18efcf) )
2149 
2150 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2151 	ROM_LOAD( "epr-11575.95", 0x00000, 0x10000, CRC(bab9fbf3) SHA1(53d78dfc003e04730c7679c830cc086cbf3e3548) )
2152 	ROM_LOAD( "epr-11576.94", 0x10000, 0x10000, CRC(067ed682) SHA1(13e2e1f812e5a3994a0f1d35eb210881645e74cd) )
2153 	ROM_LOAD( "epr-11577.93", 0x20000, 0x10000, CRC(f67cf331) SHA1(457b9e618dfa678ae374cdeb25488af3de2e8949) )
2154 
2155 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
2156 	ROM_LOAD16_BYTE( "epr-11501.10", 0x00001, 0x08000, CRC(09179ead) SHA1(3e6bf04e1e9ea867d087a47ff04ad0a064a8e299) )
2157 	ROM_CONTINUE(                    0x40001, 0x08000 )
2158 	ROM_LOAD16_BYTE( "epr-11505.11", 0x00000, 0x08000, CRC(b67f1ecf) SHA1(3a26cdf91e5a1a11c1a8857e713a9e00cc1bfce0) )
2159 	ROM_CONTINUE(                    0x40000, 0x08000 )
2160 	ROM_LOAD16_BYTE( "epr-11502.17", 0x10001, 0x08000, CRC(7464bae4) SHA1(c6b6ca240cee72e7fbd17bad5ca2d5cfe8e835c6) )
2161 	ROM_CONTINUE(                    0x50001, 0x08000 )
2162 	ROM_LOAD16_BYTE( "epr-11506.18", 0x10000, 0x08000, CRC(b0104def) SHA1(c81a66ec3a600c1d4c5d058caef15936c59b2574) )
2163 	ROM_CONTINUE(                    0x50000, 0x08000 )
2164 	ROM_LOAD16_BYTE( "epr-11503.23", 0x20001, 0x08000, CRC(344c0692) SHA1(3125701f6bb91d8f64515e214b571e169c30a444) )
2165 	ROM_CONTINUE(                    0x60001, 0x08000 )
2166 	ROM_LOAD16_BYTE( "epr-11507.24", 0x20000, 0x08000, CRC(a2af710a) SHA1(1c8b75b72797146c2eb788511f8cb1b367fc3e0d) )
2167 	ROM_CONTINUE(                    0x60000, 0x08000 )
2168 	ROM_LOAD16_BYTE( "epr-11504.29", 0x30001, 0x08000, CRC(42b4a5f8) SHA1(efb7beee7b45023861711f56b7cc907400cb266e) )
2169 	ROM_CONTINUE(                    0x70001, 0x08000 )
2170 	ROM_LOAD16_BYTE( "epr-11508.30", 0x30000, 0x08000, CRC(5cbb833c) SHA1(dc7041b6a4fa75d050bfc2176d0f9e242b55a0b8) )
2171 	ROM_CONTINUE(                    0x70000, 0x08000 )
2172 
2173 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
2174 	ROM_LOAD( "epr-11578.12", 0x0000, 0x8000, CRC(3d58e39a) SHA1(3e3591ac96903376698cf95d1b1a5f5db590db3c) )
2175 
2176 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2177 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2178 
2179 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2180 	ROM_LOAD( "epr-11579.1", 0x00000, 0x8000, CRC(1a994135) SHA1(f42444521a878d32b189876f8854f6363e1b353b) )
2181 	ROM_LOAD( "epr-11580.2", 0x08000, 0x8000, CRC(961646ed) SHA1(4c8f87a10ffd7035145dedba86deb373368b0e49) )
2182 	ROM_LOAD( "epr-11581.4", 0x10000, 0x8000, CRC(d271a6e5) SHA1(de303f70abfa28e599e5eb0c2b314f43faa1b484) )
2183 	ROM_LOAD( "epr-11582.5", 0x18000, 0x8000, CRC(bcbe3d8a) SHA1(2e4bb0ebffdd594b192c5b854ea425029d92fdb1) )
2184 ROM_END
2185 
2186 
2187 //*************************************************************************************************************************
2188 //*************************************************************************************************************************
2189 //*************************************************************************************************************************
2190 //  Action Fighter, Sega System 16A
2191 //  CPU: FD1089A 317-0018?@(dedicated cabinet version uses 317-0014)
2192 //
2193 
2194 ROM_START( afighter )
2195 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2196 	ROM_LOAD16_BYTE( "epr-10350", 0x00001, 0x08000, CRC(f2cd6b3f) SHA1(380f75b8c1696b388179641866cd1d23f78664e7) )
2197 	ROM_LOAD16_BYTE( "epr-10353", 0x00000, 0x08000, CRC(5a757dc9) SHA1(b0540844c8a09195f5d12312f8e27c334641d7b8) )
2198 	ROM_LOAD16_BYTE( "epr-10349", 0x10001, 0x08000, CRC(4b434c37) SHA1(5f3afbdb9cdb0762e56b702a195274f30193b472) )
2199 	ROM_LOAD16_BYTE( "epr-10352", 0x10000, 0x08000, CRC(f8abb143) SHA1(97e78291c15bdf95fd35adca6b9e002480137b12) )
2200 	ROM_LOAD16_BYTE( "epr-10348", 0x20001, 0x08000, CRC(e51e3012) SHA1(bb5522aacb55b5f04aa4cb7a642e202f0ddd7c84) )
2201 	ROM_LOAD16_BYTE( "epr-10351", 0x20000, 0x08000, CRC(ede21d8d) SHA1(b3e3944d706c606fd01e00d9511f020ce9aec9f0) )
2202 
2203 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2204 	ROM_LOAD( "epr-10281.95", 0x00000, 0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
2205 	ROM_LOAD( "epr-10282.94", 0x10000, 0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
2206 	ROM_LOAD( "epr-10283.93", 0x20000, 0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
2207 
2208 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2209 	ROM_LOAD16_BYTE( "epr-10285", 0x00001, 0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
2210 	ROM_LOAD16_BYTE( "epr-10286", 0x10001, 0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
2211 	ROM_LOAD16_BYTE( "epr-10287", 0x20001, 0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
2212 	ROM_LOAD16_BYTE( "epr-10288", 0x30001, 0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
2213 	ROM_LOAD16_BYTE( "epr-10289", 0x00000, 0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
2214 	ROM_LOAD16_BYTE( "epr-10290", 0x10000, 0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
2215 	ROM_LOAD16_BYTE( "epr-10291", 0x20000, 0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
2216 	ROM_LOAD16_BYTE( "epr-10292", 0x30000, 0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
2217 
2218 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2219 	ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
2220 
2221 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2222 	ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) )
2223 ROM_END
2224 
2225 ROM_START( afightera )
2226 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2227 	ROM_LOAD16_BYTE( "epr10315.bin", 0x00001, 0x08000, CRC(2ea55eae) SHA1(91d582eaa0483d547d1a37dedb8f029a0fccb526) ) // decrypted version of 10350
2228 	ROM_LOAD16_BYTE( "epr10318.bin", 0x00000, 0x08000, CRC(d05b240d) SHA1(aa4aa7b18b53ac7b533855a44f9a4a0c14e1da2a) )
2229 	ROM_LOAD16_BYTE( "epr10316.bin", 0x10001, 0x08000, CRC(07522474) SHA1(1a4bce4c04defab3516a90b9fa62fad1945a1176) ) // == epr10294.bin
2230 	ROM_LOAD16_BYTE( "epr10319.bin", 0x10000, 0x08000, CRC(e48c4d80) SHA1(9c40972f81e004de84db4199e7dc0ceb6a998e76) ) // == epr10297.bin
2231 	ROM_LOAD16_BYTE( "epr10317.bin", 0x20001, 0x08000, CRC(6e00db36) SHA1(5e3d03f7441515ad7dac411f492f2e159330a90a) )
2232 	ROM_LOAD16_BYTE( "epr10320.bin", 0x20000, 0x08000, CRC(5f97c2fa) SHA1(5fef94bc275d9132dde8b72bfb661f10efdc91b1) )
2233 
2234 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2235 	ROM_LOAD( "epr-10281.95", 0x00000, 0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
2236 	ROM_LOAD( "epr-10282.94", 0x10000, 0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
2237 	ROM_LOAD( "epr-10283.93", 0x20000, 0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
2238 
2239 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2240 	ROM_LOAD16_BYTE( "epr-10285", 0x00001, 0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
2241 	ROM_LOAD16_BYTE( "epr-10286", 0x10001, 0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
2242 	ROM_LOAD16_BYTE( "epr-10287", 0x20001, 0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
2243 	ROM_LOAD16_BYTE( "epr-10288", 0x30001, 0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
2244 	ROM_LOAD16_BYTE( "epr-10289", 0x00000, 0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
2245 	ROM_LOAD16_BYTE( "epr-10290", 0x10000, 0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
2246 	ROM_LOAD16_BYTE( "epr-10291", 0x20000, 0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
2247 	ROM_LOAD16_BYTE( "epr-10292", 0x30000, 0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
2248 
2249 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2250 	ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
2251 ROM_END
2252 
2253 ROM_START( afighterb )
2254 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2255 	ROM_LOAD16_BYTE( "epr10293.bin", 0x00001, 0x08000, CRC(186ae21a) SHA1(65bff753b7ed7b3b03cc70634df9f2ff0d233323) ) // == decrypted 10275
2256 	ROM_LOAD16_BYTE( "epr10296.bin", 0x00000, 0x08000, CRC(7370e889) SHA1(d240defae86e97467002e549d213359c3e23ec54) )
2257 	ROM_LOAD16_BYTE( "epr10294.bin", 0x10001, 0x08000, CRC(07522474) SHA1(1a4bce4c04defab3516a90b9fa62fad1945a1176) )
2258 	ROM_LOAD16_BYTE( "epr10297.bin", 0x10000, 0x08000, CRC(e48c4d80) SHA1(9c40972f81e004de84db4199e7dc0ceb6a998e76) )
2259 	ROM_LOAD16_BYTE( "epr10295.bin", 0x20001, 0x08000, CRC(a940fde6) SHA1(7b7c2b904ae83dfb9e9ac0855e30408234fe371f) )
2260 	ROM_LOAD16_BYTE( "epr10298.bin", 0x20000, 0x08000, CRC(f6bab36e) SHA1(1e7a0403de5ede8055507274bd43ea7ab1219f27) )
2261 
2262 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2263 	ROM_LOAD( "epr-10281.95", 0x00000, 0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
2264 	ROM_LOAD( "epr-10282.94", 0x10000, 0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
2265 	ROM_LOAD( "epr-10283.93", 0x20000, 0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
2266 
2267 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2268 	ROM_LOAD16_BYTE( "epr-10285", 0x00001, 0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
2269 	ROM_LOAD16_BYTE( "epr-10286", 0x10001, 0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
2270 	ROM_LOAD16_BYTE( "epr-10287", 0x20001, 0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
2271 	ROM_LOAD16_BYTE( "epr-10288", 0x30001, 0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
2272 	ROM_LOAD16_BYTE( "epr-10289", 0x00000, 0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
2273 	ROM_LOAD16_BYTE( "epr-10290", 0x10000, 0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
2274 	ROM_LOAD16_BYTE( "epr-10291", 0x20000, 0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
2275 	ROM_LOAD16_BYTE( "epr-10292", 0x30000, 0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
2276 
2277 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2278 	ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
2279 ROM_END
2280 
2281 ROM_START( afighterc )
2282 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2283 	ROM_LOAD16_BYTE( "epr10299.bin", 0x00001, 0x08000, CRC(d57b0955) SHA1(ce3bf962313cad25a4bff1348b52da12414c9182) ) // = encrypted 10315
2284 	ROM_LOAD16_BYTE( "epr10302.bin", 0x00000, 0x08000, CRC(e4ccefa2) SHA1(f8ec34fad2c290cc977b49326b3e27552718ddc2) )
2285 	ROM_LOAD16_BYTE( "epr10300.bin", 0x10001, 0x08000, CRC(1c91baa1) SHA1(338a7e56f47623c577dd77e2da56ca2f3e12027e) ) // missing (but probably == epr10276 as encryption seems the same and in the unencrypted sets they match)
2286 	ROM_LOAD16_BYTE( "epr10303.bin", 0x10000, 0x08000, CRC(fb67bdce) SHA1(29aba3eeee61a6aa8b695f3be211f5797479566d) ) // missing (but probably == epr10279 as encryption seems the same and in the unencrypted sets they match)
2287 	ROM_LOAD16_BYTE( "epr10301.bin", 0x20001, 0x08000, CRC(6b4ef29b) SHA1(3383a25f67b7a153637d0f81cf61d330f8236951) )
2288 	ROM_LOAD16_BYTE( "epr10304.bin", 0x20000, 0x08000, CRC(756f5472) SHA1(44e23fa4e17d4d7573adaaf3f1a14547359e2d06) )
2289 
2290 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2291 	ROM_LOAD( "epr-10281.95", 0x00000, 0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
2292 	ROM_LOAD( "epr-10282.94", 0x10000, 0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
2293 	ROM_LOAD( "epr-10283.93", 0x20000, 0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
2294 
2295 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2296 	ROM_LOAD16_BYTE( "epr-10285", 0x00001, 0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
2297 	ROM_LOAD16_BYTE( "epr-10286", 0x10001, 0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
2298 	ROM_LOAD16_BYTE( "epr-10287", 0x20001, 0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
2299 	ROM_LOAD16_BYTE( "epr-10288", 0x30001, 0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
2300 	ROM_LOAD16_BYTE( "epr-10289", 0x00000, 0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
2301 	ROM_LOAD16_BYTE( "epr-10290", 0x10000, 0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
2302 	ROM_LOAD16_BYTE( "epr-10291", 0x20000, 0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
2303 	ROM_LOAD16_BYTE( "epr-10292", 0x30000, 0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
2304 
2305 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2306 	ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
2307 
2308 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2309 	ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) )
2310 ROM_END
2311 
2312 ROM_START( afighterd )
2313 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2314 	ROM_LOAD16_BYTE( "epr10275.bin", 0x00001, 0x08000, CRC(964c1985) SHA1(cf3d15e6f6611bb5a5ef230a0b25828af776ca33) ) // = encrypted 10293
2315 	ROM_LOAD16_BYTE( "epr10278.bin", 0x00000, 0x08000, CRC(13c6bbad) SHA1(889ad10e27b1638372dbefdab4111488a7ef873c) )
2316 	ROM_LOAD16_BYTE( "epr10276.bin", 0x10001, 0x08000, CRC(1c91baa1) SHA1(338a7e56f47623c577dd77e2da56ca2f3e12027e) )
2317 	ROM_LOAD16_BYTE( "epr10279.bin", 0x10000, 0x08000, CRC(fb67bdce) SHA1(29aba3eeee61a6aa8b695f3be211f5797479566d) )
2318 	ROM_LOAD16_BYTE( "epr10277.bin", 0x20001, 0x08000, CRC(a1534a1b) SHA1(7d3423b2e74624b2ce2b4ad5077653dfcc0226ec) )
2319 	ROM_LOAD16_BYTE( "epr10280.bin", 0x20000, 0x08000, CRC(9bc5496c) SHA1(e7f529feaa4fe4c1d6bcec2cd447cba4b3267d62) )
2320 
2321 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2322 	ROM_LOAD( "epr-10281.95", 0x00000, 0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
2323 	ROM_LOAD( "epr-10282.94", 0x10000, 0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
2324 	ROM_LOAD( "epr-10283.93", 0x20000, 0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
2325 
2326 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2327 	ROM_LOAD16_BYTE( "epr-10285", 0x00001, 0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
2328 	ROM_LOAD16_BYTE( "epr-10286", 0x10001, 0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
2329 	ROM_LOAD16_BYTE( "epr-10287", 0x20001, 0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
2330 	ROM_LOAD16_BYTE( "epr-10288", 0x30001, 0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
2331 	ROM_LOAD16_BYTE( "epr-10289", 0x00000, 0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
2332 	ROM_LOAD16_BYTE( "epr-10290", 0x10000, 0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
2333 	ROM_LOAD16_BYTE( "epr-10291", 0x20000, 0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
2334 	ROM_LOAD16_BYTE( "epr-10292", 0x30000, 0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
2335 
2336 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2337 	ROM_LOAD( "epr-10284.12", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
2338 
2339 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2340 	ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) )
2341 ROM_END
2342 
2343 //*************************************************************************************************************************
2344 //*************************************************************************************************************************
2345 //*************************************************************************************************************************
2346 //  Alex Kidd, Sega System 16A
2347 //  CPU: 68000
2348 //
2349 ROM_START( alexkidd )
2350 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2351 	ROM_LOAD16_BYTE( "epr-10447.43", 0x000000, 0x10000, CRC(29e87f71) SHA1(af980e55c02b3de1121c144fee23af74d24042ac) )
2352 	ROM_LOAD16_BYTE( "epr-10445.26", 0x000001, 0x10000, CRC(25ce5b6f) SHA1(dfec64df7e8d145d30740808bc94bdbbe667c4e8) )
2353 	ROM_LOAD16_BYTE( "epr-10448.42", 0x020000, 0x10000, CRC(05baedb5) SHA1(fc15989bf3d850170e4e018d74f18553f0268576) )
2354 	ROM_LOAD16_BYTE( "epr-10446.25", 0x020001, 0x10000, CRC(cd61d23c) SHA1(c235c4fef28556e9f2d07e815ad213c308e85598) )
2355 
2356 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2357 	ROM_LOAD( "epr-10431.95", 0x00000, 0x08000, CRC(a7962c39) SHA1(c816fc5d9f21b2ba32b9841e64b634bce7ea78c8) )
2358 	ROM_LOAD( "epr-10432.94", 0x08000, 0x08000, CRC(db8cd24e) SHA1(656d98844ad9ccaa68e3f501137dddd0a27d999d) )
2359 	ROM_LOAD( "epr-10433.93", 0x10000, 0x08000, CRC(e163c8c2) SHA1(ac54c5ecedca5b1a2c550de32687ca57c4d3a411) )
2360 
2361 	ROM_REGION16_BE( 0x040000, "sprites", 0 ) // sprites
2362 	ROM_LOAD16_BYTE( "epr-10437.10", 0x00001, 0x8000, CRC(522f7618) SHA1(9a6bc857dfef1dd1b7bffa034523c1c4cd8b3f4c) )
2363 	ROM_LOAD16_BYTE( "epr-10441.11", 0x00000, 0x8000, CRC(74e3a35c) SHA1(26b980a0a3aee94ac38e0e0c7d305bb35a60d1c4) )
2364 	ROM_LOAD16_BYTE( "epr-10438.17", 0x10001, 0x8000, CRC(738a6362) SHA1(a3c5f10c263cb216d275875f6333484a1cca281b) )
2365 	ROM_LOAD16_BYTE( "epr-10442.18", 0x10000, 0x8000, CRC(86cb9c14) SHA1(42bd0ed985de61ff183eed0192257966caa01594) )
2366 	ROM_LOAD16_BYTE( "epr-10439.23", 0x20001, 0x8000, CRC(b391aca7) SHA1(ca9d80b67e5365f709f90a5342b5e3aa7c7126e1) )
2367 	ROM_LOAD16_BYTE( "epr-10443.24", 0x20000, 0x8000, CRC(95d32635) SHA1(788af2af1ae783128bcdc8cd44d17cd2f1542231) )
2368 	ROM_LOAD16_BYTE( "epr-10440.29", 0x30001, 0x8000, CRC(23939508) SHA1(68450a18fc7e35f5b0155632aa68cffd251be38c) )
2369 	ROM_LOAD16_BYTE( "epr-10444.30", 0x30000, 0x8000, CRC(82115823) SHA1(e4103003cda949bebe57815115a5028f4fe8e7d7) )
2370 
2371 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2372 	ROM_LOAD( "epr-10434.12", 0x0000, 0x8000, CRC(77141cce) SHA1(6c5e83527f7e11a5ff5cc4fa75d55618a55e1a58) )
2373 
2374 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2375 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2376 
2377 	ROM_REGION( 0x10000, "n7751data", 0 ) // 7751 sound data (not used yet)
2378 	ROM_LOAD( "epr-10435.1",  0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) )
2379 	ROM_LOAD( "epr-10436.2",  0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) )
2380 ROM_END
2381 
2382 //*************************************************************************************************************************
2383 //  Alex Kidd, Sega System 16A
2384 //  CPU: FD1089A 317-0021
2385 //
2386 ROM_START( alexkidd1 )
2387 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2388 	ROM_LOAD16_BYTE( "epr-10429.43", 0x000000, 0x10000, CRC(bdf49eca) SHA1(899bc2d346544e4a33de51b60e02ebf7ee82cea8) )
2389 	ROM_LOAD16_BYTE( "epr-10427.26", 0x000001, 0x10000, CRC(f6e3dd29) SHA1(bb94ebc062bb7c6c13b68579053b9cbe8b92417c) )
2390 	ROM_LOAD16_BYTE( "epr-10430.42", 0x020000, 0x10000, CRC(89e3439f) SHA1(7c751bb477584842d93fda6686b03e289140bd62) )
2391 	ROM_LOAD16_BYTE( "epr-10428.25", 0x020001, 0x10000, CRC(dbed3210) SHA1(1e2d22935a633641ff88967d67ec673ee25cbf55) )
2392 
2393 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2394 	ROM_LOAD( "epr-10431.95", 0x00000, 0x08000, CRC(a7962c39) SHA1(c816fc5d9f21b2ba32b9841e64b634bce7ea78c8) )
2395 	ROM_LOAD( "epr-10432.94", 0x08000, 0x08000, CRC(db8cd24e) SHA1(656d98844ad9ccaa68e3f501137dddd0a27d999d) )
2396 	ROM_LOAD( "epr-10433.93", 0x10000, 0x08000, CRC(e163c8c2) SHA1(ac54c5ecedca5b1a2c550de32687ca57c4d3a411) )
2397 
2398 	ROM_REGION16_BE( 0x040000, "sprites", 0 ) // sprites
2399 	ROM_LOAD16_BYTE( "epr-10437.10", 0x00001, 0x8000, CRC(522f7618) SHA1(9a6bc857dfef1dd1b7bffa034523c1c4cd8b3f4c) )
2400 	ROM_LOAD16_BYTE( "epr-10441.11", 0x00000, 0x8000, CRC(74e3a35c) SHA1(26b980a0a3aee94ac38e0e0c7d305bb35a60d1c4) )
2401 	ROM_LOAD16_BYTE( "epr-10438.17", 0x10001, 0x8000, CRC(738a6362) SHA1(a3c5f10c263cb216d275875f6333484a1cca281b) )
2402 	ROM_LOAD16_BYTE( "epr-10442.18", 0x10000, 0x8000, CRC(86cb9c14) SHA1(42bd0ed985de61ff183eed0192257966caa01594) )
2403 	ROM_LOAD16_BYTE( "epr-10439.23", 0x20001, 0x8000, CRC(b391aca7) SHA1(ca9d80b67e5365f709f90a5342b5e3aa7c7126e1) )
2404 	ROM_LOAD16_BYTE( "epr-10443.24", 0x20000, 0x8000, CRC(95d32635) SHA1(788af2af1ae783128bcdc8cd44d17cd2f1542231) )
2405 	ROM_LOAD16_BYTE( "epr-10440.29", 0x30001, 0x8000, CRC(23939508) SHA1(68450a18fc7e35f5b0155632aa68cffd251be38c) )
2406 	ROM_LOAD16_BYTE( "epr-10444.30", 0x30000, 0x8000, CRC(82115823) SHA1(e4103003cda949bebe57815115a5028f4fe8e7d7) )
2407 
2408 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2409 	ROM_LOAD( "epr-10434.12", 0x0000, 0x8000, CRC(77141cce) SHA1(6c5e83527f7e11a5ff5cc4fa75d55618a55e1a58) )
2410 
2411 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2412 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2413 
2414 	ROM_REGION( 0x10000, "n7751data", 0 ) // 7751 sound data (not used yet)
2415 	ROM_LOAD( "epr-10435.1",  0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) )
2416 	ROM_LOAD( "epr-10436.2",  0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) )
2417 
2418 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2419 	ROM_LOAD( "317-0021.key", 0x0000, 0x2000, BAD_DUMP CRC(504388a3) SHA1(20625e9e99c08a28b253676cc843ae5228ec9d5b) )
2420 	ROM_END
2421 
2422 
2423 //*************************************************************************************************************************
2424 //*************************************************************************************************************************
2425 //*************************************************************************************************************************
2426 //  Alien Syndrome, System 16A
2427 //  CPU: FD1089B 317-0037
2428 //
2429 ROM_START( aliensyn5 )
2430 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2431 	ROM_LOAD16_BYTE( "epr-10804.43", 0x00000, 0x8000, CRC(23f78b83) SHA1(76538663e8f7ffffeea4928e3ebe091dac954dc7) )
2432 	ROM_LOAD16_BYTE( "epr-10802.26", 0x00001, 0x8000, CRC(996768bd) SHA1(8c972f0f4120600ecd10ceb3456243d9614924b7) )
2433 	ROM_LOAD16_BYTE( "epr-10805.42", 0x10000, 0x8000, CRC(53d7fe50) SHA1(9a4e18f4d11c77ec04a817dca7b618297658113e) )
2434 	ROM_LOAD16_BYTE( "epr-10803.25", 0x10001, 0x8000, CRC(0536dd33) SHA1(f094ed25d81dadf15a47c15711e47c3cb5f33227) )
2435 	ROM_LOAD16_BYTE( "epr-10732.41", 0x20000, 0x8000, CRC(c5712bfc) SHA1(2f11570784c1fc83cb16dbd1d43e21cf104568ac) )
2436 	ROM_LOAD16_BYTE( "epr-10729.24", 0x20001, 0x8000, CRC(3e520e30) SHA1(8eac2640ff8c4944d6cd82421b565f506c480017) )
2437 
2438 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2439 	ROM_LOAD( "epr-10739.95", 0x00000, 0x10000, CRC(a29ec207) SHA1(c469d2689a7bdc2a59dfff56ce13d34e9fbac263) )
2440 	ROM_LOAD( "epr-10740.94", 0x10000, 0x10000, CRC(47f93015) SHA1(68247a6bffd1d4d1c450148dd46214d01ce1c668) )
2441 	ROM_LOAD( "epr-10741.93", 0x20000, 0x10000, CRC(4970739c) SHA1(5bdf4222209ec46e0015bfc0f90578dd9b30bdd1) )
2442 
2443 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
2444 	ROM_LOAD16_BYTE( "epr-10709.10", 0x00001, 0x08000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
2445 	ROM_CONTINUE(                    0x40001, 0x08000 )
2446 	ROM_LOAD16_BYTE( "epr-10713.11", 0x00000, 0x08000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
2447 	ROM_CONTINUE(                    0x40000, 0x08000 )
2448 	ROM_LOAD16_BYTE( "epr-10710.17", 0x10001, 0x08000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
2449 	ROM_CONTINUE(                    0x50001, 0x08000 )
2450 	ROM_LOAD16_BYTE( "epr-10714.18", 0x10000, 0x08000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
2451 	ROM_CONTINUE(                    0x50000, 0x08000 )
2452 	ROM_LOAD16_BYTE( "epr-10711.23", 0x20001, 0x08000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
2453 	ROM_CONTINUE(                    0x60001, 0x08000 )
2454 	ROM_LOAD16_BYTE( "epr-10715.24", 0x20000, 0x08000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
2455 	ROM_CONTINUE(                    0x60000, 0x08000 )
2456 	ROM_LOAD16_BYTE( "epr-10712.29", 0x30001, 0x08000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
2457 	ROM_CONTINUE(                    0x70001, 0x08000 )
2458 	ROM_LOAD16_BYTE( "epr-10716.30", 0x30000, 0x08000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
2459 	ROM_CONTINUE(                    0x70000, 0x08000 )
2460 
2461 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2462 	ROM_LOAD( "epr-10705.12", 0x00000, 0x8000, CRC(777b749e) SHA1(086b03100064a98228f95db7962b2671121c46ea) )
2463 
2464 	ROM_REGION( 0x1000, "n7751", 0 )  // 4k for 7751 onboard ROM
2465 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2466 
2467 	ROM_REGION( 0x18000, "n7751data", 0 ) // 7751 sound data
2468 	ROM_LOAD( "epr-10706.1",  0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
2469 	ROM_LOAD( "epr-10707.2",  0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
2470 	ROM_LOAD( "epr-10708.4",  0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
2471 
2472 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2473 	ROM_LOAD( "317-0037.key", 0x0000, 0x2000, CRC(68bb7745) SHA1(f0c60d8a503a90ba6a2443be856b18322e3ec759) )
2474 ROM_END
2475 
2476 //*************************************************************************************************************************
2477 //  Alien Syndrome, pre-System 16
2478 //  CPU: FD1089A 317-0033
2479 //
2480 ROM_START( aliensyn2 )
2481 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2482 	ROM_LOAD16_BYTE( "epr-10808.b9",  0x00000, 0x8000, CRC(e669929f) SHA1(b5ab41d6f31f0369f8c5f5eb6fc08e8c23312b96) )
2483 	ROM_LOAD16_BYTE( "epr-10806.b6",  0x00001, 0x8000, CRC(9f7f8fdd) SHA1(819e9c491b7d23deaef646d37319c38e75827d68) )
2484 	ROM_LOAD16_BYTE( "epr-10809.b10", 0x10000, 0x8000, CRC(9a424919) SHA1(a7be5d9bed329099df10ff5a0104cb832485bd0a) )
2485 	ROM_LOAD16_BYTE( "epr-10807.b7",  0x10001, 0x8000, CRC(3d2c3530) SHA1(567ed45c84b1d3d92371c4ad33fdb28f68cf29a3) )
2486 	ROM_LOAD16_BYTE( "epr-10701.b11", 0x20000, 0x8000, CRC(92171751) SHA1(69a282c01db7224f32386a6db25309e09e29a112) )
2487 	ROM_LOAD16_BYTE( "epr-10698.b8",  0x20001, 0x8000, CRC(c1e4fdc0) SHA1(65817a9336f7887d2bf14485bdff8352c960d2ab) )
2488 
2489 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2490 	ROM_LOAD( "epr-10739.c9",  0x00000, 0x10000, CRC(a29ec207) SHA1(c469d2689a7bdc2a59dfff56ce13d34e9fbac263) )
2491 	ROM_LOAD( "epr-10740.c10", 0x10000, 0x10000, CRC(47f93015) SHA1(68247a6bffd1d4d1c450148dd46214d01ce1c668) )
2492 	ROM_LOAD( "epr-10741.c11", 0x20000, 0x10000, CRC(4970739c) SHA1(5bdf4222209ec46e0015bfc0f90578dd9b30bdd1) )
2493 
2494 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
2495 	ROM_LOAD16_BYTE( "epr-10709.c5", 0x00001, 0x08000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
2496 	ROM_CONTINUE(                    0x40001, 0x08000 )
2497 	ROM_LOAD16_BYTE( "epr-10713.b2", 0x00000, 0x08000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
2498 	ROM_CONTINUE(                    0x40000, 0x08000 )
2499 	ROM_LOAD16_BYTE( "epr-10710.c6", 0x10001, 0x08000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
2500 	ROM_CONTINUE(                    0x50001, 0x08000 )
2501 	ROM_LOAD16_BYTE( "epr-10714.b3", 0x10000, 0x08000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
2502 	ROM_CONTINUE(                    0x50000, 0x08000 )
2503 	ROM_LOAD16_BYTE( "epr-10711.c7", 0x20001, 0x08000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
2504 	ROM_CONTINUE(                    0x60001, 0x08000 )
2505 	ROM_LOAD16_BYTE( "epr-10715.b4", 0x20000, 0x08000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
2506 	ROM_CONTINUE(                    0x60000, 0x08000 )
2507 	ROM_LOAD16_BYTE( "epr-10712.c8", 0x30001, 0x08000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
2508 	ROM_CONTINUE(                    0x70001, 0x08000 )
2509 	ROM_LOAD16_BYTE( "epr-10716.b5", 0x30000, 0x08000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
2510 	ROM_CONTINUE(                    0x70000, 0x08000 )
2511 
2512 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2513 	ROM_LOAD( "epr-10705.b1", 0x00000, 0x8000, CRC(777b749e) SHA1(086b03100064a98228f95db7962b2671121c46ea) )
2514 
2515 	ROM_REGION( 0x1000, "n7751", 0 )  // 4k for 7751 onboard ROM
2516 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2517 
2518 	ROM_REGION( 0x18000, "n7751data", 0 ) // 7751 sound data
2519 	ROM_LOAD( "epr-10706.c1", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
2520 	ROM_LOAD( "epr-10707.c2", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
2521 	ROM_LOAD( "epr-10708.c3", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
2522 
2523 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2524 	ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(68bb7745) SHA1(f0c60d8a503a90ba6a2443be856b18322e3ec759) )
2525 ROM_END
2526 
2527 //*************************************************************************************************************************
2528 //  Alien Syndrome (Japan, old), System 16
2529 //  CPU: FD1089A 317-0033
2530 //
2531 ROM_START( aliensynjo )
2532 	ROM_REGION( 0x40000, "maincpu", 0 ) // Custom 68000 code
2533 	ROM_LOAD16_BYTE( "epr-10699.43", 0x00000, 0x8000, CRC(3fd38d17) SHA1(538c1246121051a1af9ba2a4259eb1fe7e4952e1) )
2534 	ROM_LOAD16_BYTE( "epr-10696.26", 0x00001, 0x8000, CRC(d734f19f) SHA1(4a08c35084f7a9364ba0f058b9a9ffc30c8b5a78) )
2535 	ROM_LOAD16_BYTE( "epr-10700.42", 0x10000, 0x8000, CRC(3b04b252) SHA1(0e40e89e8feb7c98ee1da1c3fb3fe1d317c66842) )
2536 	ROM_LOAD16_BYTE( "epr-10697.25", 0x10001, 0x8000, CRC(f2bc123d) SHA1(7848529342495289e2d4f865767f3649cd85993b) )
2537 	ROM_LOAD16_BYTE( "epr-10701.41", 0x20000, 0x8000, CRC(92171751) SHA1(69a282c01db7224f32386a6db25309e09e29a112) )
2538 	ROM_LOAD16_BYTE( "epr-10698.24", 0x20001, 0x8000, CRC(c1e4fdc0) SHA1(65817a9336f7887d2bf14485bdff8352c960d2ab) )
2539 
2540 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2541 	ROM_LOAD( "epr-10739.95", 0x00000, 0x10000, CRC(a29ec207) SHA1(c469d2689a7bdc2a59dfff56ce13d34e9fbac263) )
2542 	ROM_LOAD( "epr-10740.94", 0x10000, 0x10000, CRC(47f93015) SHA1(68247a6bffd1d4d1c450148dd46214d01ce1c668) )
2543 	ROM_LOAD( "epr-10741.93", 0x20000, 0x10000, CRC(4970739c) SHA1(5bdf4222209ec46e0015bfc0f90578dd9b30bdd1) )
2544 
2545 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
2546 	ROM_LOAD16_BYTE( "epr-10709.10", 0x00001, 0x08000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
2547 	ROM_CONTINUE(                    0x40001, 0x08000 )
2548 	ROM_LOAD16_BYTE( "epr-10713.11", 0x00000, 0x08000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
2549 	ROM_CONTINUE(                    0x40000, 0x08000 )
2550 	ROM_LOAD16_BYTE( "epr-10710.17", 0x10001, 0x08000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
2551 	ROM_CONTINUE(                    0x50001, 0x08000 )
2552 	ROM_LOAD16_BYTE( "epr-10714.18", 0x10000, 0x08000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
2553 	ROM_CONTINUE(                    0x50000, 0x08000 )
2554 	ROM_LOAD16_BYTE( "epr-10711.23", 0x20001, 0x08000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
2555 	ROM_CONTINUE(                    0x60001, 0x08000 )
2556 	ROM_LOAD16_BYTE( "epr-10715.24", 0x20000, 0x08000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
2557 	ROM_CONTINUE(                    0x60000, 0x08000 )
2558 	ROM_LOAD16_BYTE( "epr-10712.29", 0x30001, 0x08000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
2559 	ROM_CONTINUE(                    0x70001, 0x08000 )
2560 	ROM_LOAD16_BYTE( "epr-10716.30", 0x30000, 0x08000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
2561 	ROM_CONTINUE(                    0x70000, 0x08000 )
2562 
2563 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2564 	ROM_LOAD( "epr-10705.12", 0x00000, 0x8000, CRC(777b749e) SHA1(086b03100064a98228f95db7962b2671121c46ea) )
2565 
2566 	ROM_REGION( 0x1000, "n7751", 0 )  // 4k for 7751 onboard ROM
2567 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2568 
2569 	ROM_REGION( 0x18000, "n7751data", 0 ) // 7751 sound data
2570 	ROM_LOAD( "epr-10706.1",  0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
2571 	ROM_LOAD( "epr-10707.2",  0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
2572 	ROM_LOAD( "epr-10708.4",  0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
2573 
2574 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2575 	ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(68bb7745) SHA1(f0c60d8a503a90ba6a2443be856b18322e3ec759) )
2576 ROM_END
2577 
2578 
2579 //*************************************************************************************************************************
2580 //*************************************************************************************************************************
2581 //*************************************************************************************************************************
2582 //  Body Slam, pre-System 16
2583 //  CPU: 68000
2584 //  i8751 317-0015
2585 //
2586 //  GAME NUMBER: 833-6072 BODY SLAM
2587 //
2588 ROM_START( bodyslam )
2589 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2590 	ROM_LOAD16_BYTE( "epr-10066.b9",  0x000000, 0x8000, CRC(6cd53290) SHA1(68ef83ad99a26a507d9bc4cd715462169f4ac41f) )
2591 	ROM_LOAD16_BYTE( "epr-10063.b6",  0x000001, 0x8000, CRC(dd849a16) SHA1(b8cb9f2685a739698a3ed18f76617fd4ac9cb424) )
2592 	ROM_LOAD16_BYTE( "epr-10067.b10", 0x010000, 0x8000, CRC(db22a5ce) SHA1(95c37d4913fa31d5edf02661681bc83deec731d9) )
2593 	ROM_LOAD16_BYTE( "epr-10064.b7",  0x010001, 0x8000, CRC(53d6b7e0) SHA1(00bfa1487479629f60e1cc1b98ced47e4cb07964) )
2594 	ROM_LOAD16_BYTE( "epr-10068.b11", 0x020000, 0x8000, CRC(15ccc665) SHA1(b088a9bcb1499854794b2dbf4c689f3ae3ce2808) )
2595 	ROM_LOAD16_BYTE( "epr-10065.b8",  0x020001, 0x8000, CRC(0e5fa314) SHA1(44e36fde102ba6aef2c3b4374ddc21690f2fe527) )
2596 
2597 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2598 	ROM_LOAD( "epr-10321.c9",  0x00000, 0x8000, CRC(cd3e7cba) SHA1(4d3cfc7346c6e63e2221193601f949162d0e4f90) )
2599 	ROM_LOAD( "epr-10322.c10", 0x08000, 0x8000, CRC(b53d3217) SHA1(baebf20925e9f8ab6660f041a24721716d5b7d92) )
2600 	ROM_LOAD( "epr-10323.c11", 0x10000, 0x8000, CRC(915a3e61) SHA1(6504a8b26b7b4880971cd69ac2c8aae30dcfa18c) )
2601 
2602 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2603 	ROM_LOAD16_BYTE( "epr-10012.c5",  0x00001, 0x08000, CRC(990824e8) SHA1(bd45f75d07cb4e17583c2d76050e5f819f4b7efe) )
2604 	ROM_LOAD16_BYTE( "epr-10016.b2",  0x00000, 0x08000, CRC(af5dc72f) SHA1(97bbb76940c702e642d8222dda71447b8f60b616) )
2605 	ROM_LOAD16_BYTE( "epr-10013.c6",  0x10001, 0x08000, CRC(9a0919c5) SHA1(e39e60c1e834b3b46bf2ef1c5952841bebe66ade) )
2606 	ROM_LOAD16_BYTE( "epr-10017.b3",  0x10000, 0x08000, CRC(62aafd95) SHA1(e1e3a95fd11cabf81f44ac2dd3f951d3094725e6) )
2607 	ROM_LOAD16_BYTE( "epr-10027.c7",  0x20001, 0x08000, CRC(3f1c57c7) SHA1(1336da8dc167a323f09534a2f62ae6f9c62290e4) )
2608 	ROM_LOAD16_BYTE( "epr-10028.b4",  0x20000, 0x08000, CRC(80d4946d) SHA1(d4c96a18ef6c2ac6bd9d153d8862a3af894642e8) )
2609 	ROM_LOAD16_BYTE( "epr-10015.c8",  0x30001, 0x08000, CRC(582d3b6a) SHA1(4f1d0060682e3fc1147082286e00e6a296a95da2) )
2610 	ROM_LOAD16_BYTE( "epr-10019.b5",  0x30000, 0x08000, CRC(e020c38b) SHA1(d13d38a64f2afa7df3cbccef2fe505a4421b73ad) )
2611 
2612 	ROM_REGION( 0x30000, "soundcpu", 0 ) // sound CPU
2613 	ROM_LOAD( "epr-10026.b1", 0x00000, 0x8000, CRC(123b69b8) SHA1(c0614a8c822991e257f7218908247df278056de8) )
2614 
2615 	ROM_REGION( 0x1000, "n7751", 0 )  // 4k for 7751 onboard ROM
2616 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2617 
2618 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2619 	ROM_LOAD( "epr-10029.c1", 0x00000, 0x8000, CRC(7e4aca83) SHA1(703486b96d493941ee87267e8363220a851f008e) )
2620 	ROM_LOAD( "epr-10030.c2", 0x08000, 0x8000, CRC(dcc1df0b) SHA1(a82a557fa48f4b3e1ab38f61b84d749cd417e80f) )
2621 	ROM_LOAD( "epr-10031.c3", 0x10000, 0x8000, CRC(ea3c4472) SHA1(ad8eac2d3d14fd6aba713f4d624861c17aabf757) )
2622 	ROM_LOAD( "epr-10032.c4", 0x18000, 0x8000, CRC(0aabebce) SHA1(fab12df8f4eab270be491c6c025d832c338e1e83) )
2623 
2624 	ROM_REGION( 0x1000, "mcu", 0 )  // Intel i8751 protection MCU
2625 	ROM_LOAD( "317-0015.bin", 0x0000, 0x1000, CRC(833869e2) SHA1(2675fda669351e958be28ca28de276abb2bbc99a) )
2626 ROM_END
2627 
2628 //*************************************************************************************************************************
2629 //  Dump Matsumoto, pre-System 16
2630 //  CPU: 68000
2631 //  i8751 317-0011A
2632 //
2633 ROM_START( dumpmtmt )
2634 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2635 	ROM_LOAD16_BYTE( "epr-7704a.b9",  0x000000, 0x8000, CRC(96de6c7b) SHA1(f23edf86c5044c151a8502957af7ca0de420d55e) )
2636 	ROM_LOAD16_BYTE( "epr-7701a.b6",  0x000001, 0x8000, CRC(786d1009) SHA1(c56ebd169c2792cde610a7130cffdc0363fca871) )
2637 	ROM_LOAD16_BYTE( "epr-7705a.b10", 0x010000, 0x8000, CRC(fc584391) SHA1(27238408fba2dda67f29094a6700b634b6fdaa58) )
2638 	ROM_LOAD16_BYTE( "epr-7702a.b7",  0x010001, 0x8000, CRC(2241a8fd) SHA1(d968ab57aa228dbb7ae6f17d7bf22991291e75ae) )
2639 	ROM_LOAD16_BYTE( "epr-7706a.b11", 0x020000, 0x8000, CRC(6bbcc9d0) SHA1(e8e0b85867f11eec6b280f3ad9e2746d3d97ab28) )
2640 	ROM_LOAD16_BYTE( "epr-7703a.b8",  0x020001, 0x8000, CRC(fcb0cd40) SHA1(999e107fe08fcb52729ddebc7714a85c47e748b1) )
2641 
2642 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2643 	ROM_LOAD( "epr-7707a.c9",  0x00000, 0x8000, CRC(45318738) SHA1(6885347321aec8c4829a71e4518d1742f939ea9c) )
2644 	ROM_LOAD( "epr-7708a.c10", 0x08000, 0x8000, CRC(411be9a4) SHA1(808a9c941d353f34c3491ca2cde984e73cc7a87d) )
2645 	ROM_LOAD( "epr-7709a.c11", 0x10000, 0x8000, CRC(74ceb5a8) SHA1(93ed6bb4a3c820f3a7ee5e9b2c2ce35d2bed8529) )
2646 
2647 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2648 	ROM_LOAD16_BYTE( "epr-7715.c5",  0x00001, 0x08000, CRC(bf47e040) SHA1(5aa1b9adaa2095844c10993402a0597bb5768efb) )
2649 	ROM_LOAD16_BYTE( "epr-7719.b2",  0x00000, 0x08000, CRC(fa5c5d6c) SHA1(6cac5d3fd705d1365348d57a18bbeb1eb9e412b8) )
2650 	ROM_LOAD16_BYTE( "epr-10013.c6", 0x10001, 0x08000, CRC(9a0919c5) SHA1(e39e60c1e834b3b46bf2ef1c5952841bebe66ade) )   // 7716
2651 	ROM_LOAD16_BYTE( "epr-10017.b3", 0x10000, 0x08000, CRC(62aafd95) SHA1(e1e3a95fd11cabf81f44ac2dd3f951d3094725e6) )   // 7720
2652 	ROM_LOAD16_BYTE( "epr-7717.c7",  0x20001, 0x08000, CRC(fa64c86d) SHA1(ada722dd6efbf466a719ee1fe34a36ce1ea20184) )
2653 	ROM_LOAD16_BYTE( "epr-7721.b4",  0x20000, 0x08000, CRC(62a9143e) SHA1(28f0dc0329163f0a6505dd34a24a843b35118c5e) )
2654 	ROM_LOAD16_BYTE( "epr-10015.c8", 0x30001, 0x08000, CRC(582d3b6a) SHA1(4f1d0060682e3fc1147082286e00e6a296a95da2) )   // 7718
2655 	ROM_LOAD16_BYTE( "epr-10019.b5", 0x30000, 0x08000, CRC(e020c38b) SHA1(d13d38a64f2afa7df3cbccef2fe505a4421b73ad) )   // 7722
2656 
2657 	ROM_REGION( 0x30000, "soundcpu", 0 ) // sound CPU
2658 	ROM_LOAD( "epr-7710a.b1", 0x00000, 0x8000, CRC(a19b8ba8) SHA1(21b628d4ecbe38a6d96a39ca4252ff1cb728343f) )
2659 
2660 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2661 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2662 
2663 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2664 	ROM_LOAD( "epr-7711.c1", 0x00000, 0x8000, CRC(efa9aabd) SHA1(b0928313b98159b95f3a6784c6279924774b9253) )
2665 	ROM_LOAD( "epr-7712.c2", 0x08000, 0x8000, CRC(7bcd85cf) SHA1(9acba6998327e1074d7311a9b6d06da9baf69aa0) )
2666 	ROM_LOAD( "epr-7713.c3", 0x10000, 0x8000, CRC(33f292e7) SHA1(4358cd3922a0dcbf109d2d697c7b8c4e090c3d52) )
2667 	ROM_LOAD( "epr-7714.c4", 0x18000, 0x8000, CRC(8fd48c47) SHA1(1cba63a9e7e0b477683b7758d124f4949558ba7a) )
2668 
2669 	ROM_REGION( 0x1000, "mcu", 0 )  // protection MCU
2670 	ROM_LOAD( "317-0011a.mcu", 0x00000, 0x1000, NO_DUMP )
2671 ROM_END
2672 
2673 
2674 //*************************************************************************************************************************
2675 //*************************************************************************************************************************
2676 //*************************************************************************************************************************
2677 //  Fantasy Zone, Sega System 16A
2678 //  CPU: 68000
2679 //
2680 ROM_START( fantzone )
2681 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2682 	ROM_LOAD16_BYTE( "epr-7385a.43", 0x000000, 0x8000, CRC(4091af42) SHA1(1d4fdd32db9f75e5ccaab5766a50249ad71a60af) )
2683 	ROM_LOAD16_BYTE( "epr-7382a.26", 0x000001, 0x8000, CRC(77d67bfd) SHA1(886ce4c2d779cedd81f85737ef55fce3c94baa18) )
2684 	ROM_LOAD16_BYTE( "epr-7386a.42", 0x010000, 0x8000, CRC(b0a67cd0) SHA1(2e2bf2b7306fc567f7d13f89977543b368c19027) )
2685 	ROM_LOAD16_BYTE( "epr-7383a.25", 0x010001, 0x8000, CRC(5f79b2a9) SHA1(de3125bbd0a126fc5a67ba3134cd3f4608ebdfce) )
2686 	ROM_LOAD16_BYTE( "epr-7387.41",  0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) )
2687 	ROM_LOAD16_BYTE( "epr-7384.24",  0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) )
2688 
2689 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2690 	ROM_LOAD( "epr-7388.95",  0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2691 	ROM_LOAD( "epr-7389.94",  0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2692 	ROM_LOAD( "epr-7390.93",  0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2693 
2694 	ROM_REGION16_BE( 0x30000, "sprites", 0 ) // sprites
2695 	ROM_LOAD16_BYTE( "epr-7392.10",  0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2696 	ROM_LOAD16_BYTE( "epr-7396.11",  0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2697 	ROM_LOAD16_BYTE( "epr-7393.17",  0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2698 	ROM_LOAD16_BYTE( "epr-7397.18",  0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2699 	ROM_LOAD16_BYTE( "epr-7394.23",  0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2700 	ROM_LOAD16_BYTE( "epr-7398.24",  0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2701 
2702 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2703 	ROM_LOAD( "epr-7535a.12", 0x0000, 0x8000, CRC(bc1374fa) SHA1(ed2c87ae024dc251e175239f1bccc728fc096548) )
2704 ROM_END
2705 
2706 // Sega game ID: 834-5939-01 FANTASY ZONE
2707 // Top board:    837-5941-01
2708 // Bottom board: 837-5942-01
2709 ROM_START( fantzone1 )
2710 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2711 	ROM_LOAD16_BYTE( "epr-7385.43",  0x000000, 0x8000, CRC(5cb64450) SHA1(5831405359975dd7d8c6614b20fd9b18a5d6410d) )
2712 	ROM_LOAD16_BYTE( "epr-7382.26",  0x000001, 0x8000, CRC(3fda7416) SHA1(91f34cc8afb4ad8bc783c31d25781a1359c44cfe) )
2713 	ROM_LOAD16_BYTE( "epr-7386.42",  0x010000, 0x8000, CRC(15810ace) SHA1(e61a258ab6601d359f6ad1f37a2b2801bf777d26) )
2714 	ROM_LOAD16_BYTE( "epr-7383.25",  0x010001, 0x8000, CRC(a001e10a) SHA1(04ebb012b10817db36997d0ee877104d512decf8) )
2715 	ROM_LOAD16_BYTE( "epr-7387.41",  0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) )
2716 	ROM_LOAD16_BYTE( "epr-7384.24",  0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) )
2717 
2718 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2719 	ROM_LOAD( "epr-7388.95",  0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2720 	ROM_LOAD( "epr-7389.94",  0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2721 	ROM_LOAD( "epr-7390.93",  0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2722 
2723 	ROM_REGION16_BE( 0x30000, "sprites", 0 ) // sprites
2724 	ROM_LOAD16_BYTE( "epr-7392.10",  0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2725 	ROM_LOAD16_BYTE( "epr-7396.11",  0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2726 	ROM_LOAD16_BYTE( "epr-7393.17",  0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2727 	ROM_LOAD16_BYTE( "epr-7397.18",  0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2728 	ROM_LOAD16_BYTE( "epr-7394.23",  0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2729 	ROM_LOAD16_BYTE( "epr-7398.24",  0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2730 
2731 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2732 	ROM_LOAD( "epr-7535.12",  0x0000, 0x8000, CRC(0cb2126a) SHA1(42b18a81bed58ef59eaad929007eef89ad273dbb) )
2733 ROM_END
2734 
2735 //*************************************************************************************************************************
2736 //  Fantasy Zone, Sega System 16A
2737 //  CPU: FD1089B 317-0016
2738 //
2739 ROM_START( fantzonee )
2740 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2741 	ROM_LOAD16_BYTE( "epr-10170.43", 0x000000, 0x8000, CRC(063c6d76) SHA1(02d52d776330c88d949b10fb715b00507dba1227) )
2742 	ROM_LOAD16_BYTE( "epr-10167.26", 0x000001, 0x8000, CRC(0ee190b0) SHA1(18c27046a523d73bccf733ecd956e454199a1ee8) )
2743 	ROM_LOAD16_BYTE( "epr-10171.42", 0x010000, 0x8000, CRC(2ca92d64) SHA1(2eea4d1ae38bba28b806824951a0df4c9f74af6f) )
2744 	ROM_LOAD16_BYTE( "epr-10168.25", 0x010001, 0x8000, CRC(850964ad) SHA1(bdf603b025b981cc5af47446526562c425990b89) )
2745 	ROM_LOAD16_BYTE( "epr-10172.41", 0x020000, 0x8000, CRC(b5b624f0) SHA1(a728582efdc9c1b0ed1a27975d6b4e1974339ab2) )
2746 	ROM_LOAD16_BYTE( "epr-10169.24", 0x020001, 0x8000, CRC(9c57d613) SHA1(cdfaf92b5f44a66ccd6267e0221e4d9ada924e2e) )
2747 
2748 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2749 	ROM_LOAD( "epr-7388.95",  0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2750 	ROM_LOAD( "epr-7389.94",  0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2751 	ROM_LOAD( "epr-7390.93",  0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2752 
2753 	ROM_REGION16_BE( 0x30000, "sprites", 0 ) // sprites
2754 	ROM_LOAD16_BYTE( "epr-7392.10",  0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2755 	ROM_LOAD16_BYTE( "epr-7396.11",  0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2756 	ROM_LOAD16_BYTE( "epr-7393.17",  0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2757 	ROM_LOAD16_BYTE( "epr-7397.18",  0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2758 	ROM_LOAD16_BYTE( "epr-7394.23",  0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2759 	ROM_LOAD16_BYTE( "epr-7398.24",  0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2760 
2761 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2762 	ROM_LOAD( "epr-7535a.12", 0x0000, 0x8000, CRC(bc1374fa) SHA1(ed2c87ae024dc251e175239f1bccc728fc096548) )
2763 
2764 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2765 	ROM_LOAD( "317-0016.key", 0x0000, 0x2000, BAD_DUMP CRC(16869a2c) SHA1(112b044d0b1b76620a7d75d6f4c4a16eca37e343) ) // hand-crafted needs a proper redump
2766 ROM_END
2767 
2768 //*************************************************************************************************************************
2769 //  Fantasy Zone, Sega System 16A
2770 //  CPU: 68000 + NEC 0317-5000 encrypted Z80
2771 //
2772 ROM_START( fantzonep )
2773 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2774 	ROM_LOAD16_BYTE( "epr-7385.43",  0x000000, 0x8000, CRC(5cb64450) SHA1(5831405359975dd7d8c6614b20fd9b18a5d6410d) )
2775 	ROM_LOAD16_BYTE( "epr-7382.26",  0x000001, 0x8000, CRC(3fda7416) SHA1(91f34cc8afb4ad8bc783c31d25781a1359c44cfe) )
2776 	ROM_LOAD16_BYTE( "epr-7386.42",  0x010000, 0x8000, CRC(15810ace) SHA1(e61a258ab6601d359f6ad1f37a2b2801bf777d26) )
2777 	ROM_LOAD16_BYTE( "epr-7383.25",  0x010001, 0x8000, CRC(a001e10a) SHA1(04ebb012b10817db36997d0ee877104d512decf8) )
2778 	ROM_LOAD16_BYTE( "epr-7387.41",  0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) )
2779 	ROM_LOAD16_BYTE( "epr-7384.24",  0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) )
2780 
2781 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2782 	ROM_LOAD( "epr-7388.95",  0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2783 	ROM_LOAD( "epr-7389.94",  0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2784 	ROM_LOAD( "epr-7390.93",  0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2785 
2786 	ROM_REGION16_BE( 0x30000, "sprites", 0 ) // sprites
2787 	ROM_LOAD16_BYTE( "epr-7392.10",  0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2788 	ROM_LOAD16_BYTE( "epr-7396.11",  0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2789 	ROM_LOAD16_BYTE( "epr-7393.17",  0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2790 	ROM_LOAD16_BYTE( "epr-7397.18",  0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2791 	ROM_LOAD16_BYTE( "epr-7394.23",  0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2792 	ROM_LOAD16_BYTE( "epr-7398.24",  0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2793 
2794 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2795 	ROM_LOAD( "epr-7391.12",  0x0000, 0x8000, CRC(c03e155e) SHA1(6bbdf308c47b96ba622329520b70fa0ea47248a4) ) // Original encrypted sound code
2796 ROM_END
2797 
2798 ROM_START( fantzonepr )
2799 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2800 	ROM_LOAD16_BYTE( "ic43-prg-dd2c.bin",   0x000000, 0x8000, CRC(895436e1) SHA1(5cf294fc4fcbacab5d2696aa4f536a8f48d4c4ce) ) // different
2801 	ROM_LOAD16_BYTE( "ic26-prg20-658q.bin", 0x000001, 0x8000, CRC(a0d53b86) SHA1(02b8ba869c226d929b6b761982efc262467baafc) ) // different
2802 	ROM_LOAD16_BYTE( "ic42-prg13-eb1f.bin", 0x010000, 0x8000, CRC(a08e9d65) SHA1(e3f8b4f1dcdd7bcdd57ae295d721131b7cc33500) ) // different
2803 	ROM_LOAD16_BYTE( "ic25-prg15-2b8c.bin", 0x010001, 0x8000, CRC(7e6fdae0) SHA1(c00e7e4e78505ce731483275cfcad285999bbaf3) ) // different
2804 	ROM_LOAD16_BYTE( "epr-7387.41",         0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) ) // missing - assumed to be the same because the ROM below is
2805 	ROM_LOAD16_BYTE( "ic24-prg20-2f57.bin", 0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) ) // MATCH
2806 
2807 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2808 	ROM_LOAD( "ic95-1413.bin",  0x00000, 0x08000, CRC(158af770) SHA1(a02c500920770a987c9d8c78e0313cb3434c1873) ) // 96.661377%
2809 	ROM_LOAD( "ic94-3e96.bin",  0x08000, 0x08000, CRC(2fea4fe7) SHA1(891dbf163378e9ef55b97b4cb8ac02dab05f206c) ) // 96.710205%
2810 	ROM_LOAD( "ic93-de1b.bin",  0x10000, 0x08000, BAD_DUMP CRC(335fe57a) SHA1(93cfcfd1d06daa03b1b000460c4e0ff54aa9f317) ) // 72.341919%
2811 	ROM_LOAD( "epr-7390.93",  0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) ) // loading this because above is bad, should have differences tho :-(
2812 
2813 	ROM_REGION16_BE( 0x80000, "sprites", ROMREGION_ERASEFF ) // sprites
2814 	ROM_LOAD16_BYTE( "epr-7392.10",  0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) ) // missing (assumed the same because of match below)
2815 	ROM_LOAD16_BYTE( "ic11-6235.bin",  0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) ) // MATCH
2816 
2817 	ROM_LOAD16_BYTE( "ic17-5f7c.bin",  0x10001, 0x8000, CRC(9d5b5be8) SHA1(c54a6686e8d08525bafad24d40a17dae4b856e6c) ) // no match (seems bad) - ignore
2818 	ROM_LOAD16_BYTE( "epr-7393.17",  0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) ) // (assumed the same because of match below)
2819 	ROM_LOAD16_BYTE( "ic18-2614.bin",  0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) ) // MATCH
2820 
2821 	// these were missing, but it seems like they should be different?
2822 	ROM_LOAD16_BYTE( "ic23",  0x20001, 0x8000, BAD_DUMP CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) ) // missing
2823 	ROM_LOAD16_BYTE( "ic24",  0x20000, 0x8000, BAD_DUMP CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) ) // missing
2824 
2825 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2826 	ROM_LOAD( "ic12-sound-56-5.bin", 0x0000, 0x8000, CRC(e62ddff6) SHA1(bd601f1e43d96b8bfae0a880d031b418e6c953b0) )
2827 
2828 	ROM_REGION( 0x1000, "mcu", 0 )  // Intel i8751 protection MCU (doesn't seem to be used?)
2829 	ROM_LOAD( "8751.bin", 0x00000, 0x1000, CRC(c0d325e6) SHA1(dbce2ebfab704e70b9b4a0ba442b09c5d137c878) )
2830 ROM_END
2831 
2832 
2833 
2834 //*************************************************************************************************************************
2835 //*************************************************************************************************************************
2836 //*************************************************************************************************************************
2837 //  Major League, pre-System 16
2838 //  CPU: 68000 (version uses i8751(315-5158C) known to be exist)
2839 //
2840 ROM_START( mjleague )
2841 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2842 	ROM_LOAD16_BYTE( "epr-7404.9b",   0x000000, 0x8000, CRC(ec1655b5) SHA1(5c1df364fa9733daa4478c5f88298089e4963c33) )
2843 	ROM_LOAD16_BYTE( "epr-7401.6b",   0x000001, 0x8000, CRC(2befa5e0) SHA1(0a1681a4c7d62a5754ba6f3845436b4d08324246) )
2844 	ROM_LOAD16_BYTE( "epr-7405.10b",  0x010000, 0x8000, CRC(7a4f4e38) SHA1(65a22097dd933e83f326bd64b3863915897780a6) )
2845 	ROM_LOAD16_BYTE( "epr-7402.7b",   0x010001, 0x8000, CRC(b7bef762) SHA1(214450e0b094f99ef38dec2a3e5cbdb0b30e917d) )
2846 	ROM_LOAD16_BYTE( "epr-7406a.11b", 0x020000, 0x8000, CRC(bb743639) SHA1(5d99638a79f02ce14374d3b1f3d9fbfc5c13c6e1) )
2847 	ROM_LOAD16_BYTE( "epr-7403a.8b",  0x020001, 0x8000, CRC(0a39a4d0) SHA1(ff6c579a69fe20c4ebe8672f1a57a6efa9982fb6) )
2848 
2849 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2850 	ROM_LOAD( "epr-7051.9a",  0x00000, 0x08000, CRC(10ca255a) SHA1(ccf58ffcac2f7fbdbfbdf32601a1b97f359cbd91) )
2851 	ROM_LOAD( "epr-7052.10a", 0x08000, 0x08000, CRC(2550db0e) SHA1(28f8d68f43d26f12793fe295c205cc86adc4e96a) )
2852 	ROM_LOAD( "epr-7053.11a", 0x10000, 0x08000, CRC(5bfea038) SHA1(01dc6e14cc7bba9f7930e68573c441fa2841f49a) )
2853 
2854 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
2855 	ROM_LOAD16_BYTE( "epr-7055.5a", 0x00001, 0x8000, CRC(1fb860bd) SHA1(4a4155d0352dfae9e402a2b2f1558ef17b1303b4) )
2856 	ROM_LOAD16_BYTE( "epr-7059.2b", 0x00000, 0x8000, CRC(3d14091d) SHA1(36208415b2012b6e948fefa15b0f7041748066be) )
2857 	ROM_LOAD16_BYTE( "epr-7056.6a", 0x10001, 0x8000, CRC(b35dd968) SHA1(e306b5e38acf583d7b2089302622ad25ae5564b0) )
2858 	ROM_LOAD16_BYTE( "epr-7060.3b", 0x10000, 0x8000, CRC(61bb3757) SHA1(5c87cf23be22b84e3dae746527ca057d870d6397) )
2859 	ROM_LOAD16_BYTE( "epr-7057.7a", 0x20001, 0x8000, CRC(3e5a2b6f) SHA1(d3dbafb4acb916e02c978a156008bd75ba122fb7) )
2860 	ROM_LOAD16_BYTE( "epr-7061.4b", 0x20000, 0x8000, CRC(c808dad5) SHA1(9b65acc8dc23b16e56327298188d1a6ab48b2b5d) )
2861 	ROM_LOAD16_BYTE( "epr-7058.8a", 0x30001, 0x8000, CRC(b543675f) SHA1(35ffc9295a8849a18fabe156fdbc9801ea2179cd) )
2862 	ROM_LOAD16_BYTE( "epr-7062.5b", 0x30000, 0x8000, CRC(9168eb47) SHA1(daaa7836e627a0679e65373d8f20a9383ba4c905) )
2863 
2864 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
2865 	ROM_LOAD( "epr-7054c.1b", 0x00000, 0x8000, CRC(4443b744) SHA1(73359a6e9d62b382dee47fea31b9e17eb26a0321) )
2866 
2867 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2868 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2869 
2870 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2871 	ROM_LOAD( "epr-7063.1a", 0x00000, 0x8000, CRC(45d8908a) SHA1(e61f81f953c1a744ded36fed3b55774e4747af29) )
2872 	ROM_LOAD( "epr-7065.2a", 0x08000, 0x8000, CRC(8c8f8cff) SHA1(fca5a916a8b25800ee5e8771e2ced0ed9bd737f4) )
2873 	ROM_LOAD( "epr-7064.3a", 0x10000, 0x8000, CRC(159f6636) SHA1(66fa3f3e95a6ef3d3ff4ded09c05ab1131d9fbbb) )
2874 	ROM_LOAD( "epr-7066.4a", 0x18000, 0x8000, CRC(f5cfa91f) SHA1(c85d68cbcd03fe1436bed12235c033610acc11ee) )
2875 ROM_END
2876 
2877 
2878 //*************************************************************************************************************************
2879 //*************************************************************************************************************************
2880 //*************************************************************************************************************************
2881 //  Passing Shot (Japan, 4 Players), Sega System 16A
2882 //  CPU: FD1094 (317-0071)
2883 //
2884 ROM_START( passsht16a )
2885 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2886 	ROM_LOAD16_BYTE( "epr-11833.43", 0x000000, 0x10000, CRC(5eb1405c) SHA1(0a68d3fcc074475d38f999c93082d4a9dff0f19a) )
2887 	ROM_LOAD16_BYTE( "epr-11832.26", 0x000001, 0x10000, CRC(718a3fe4) SHA1(bd6844c53ce3b64b113795360175df92d095b467) )
2888 
2889 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2890 	ROM_LOAD( "317-0071.key", 0x0000, 0x2000, CRC(c69949ec) SHA1(1c63f42404ee1d8333e734e892b1c4cac0cb440e) )
2891 
2892 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2893 	ROM_LOAD( "epr-11834.95", 0x00000, 0x10000, CRC(df4e18ab) SHA1(ac9b424eded18f128e6cc743bbddf9afd869c8c4) )
2894 	ROM_LOAD( "epr-11835.94", 0x10000, 0x10000, CRC(6a07acc0) SHA1(218071612ee6fa89b16a47a77325a962ba38926d) )
2895 	ROM_LOAD( "epr-11836.93", 0x20000, 0x10000, CRC(93c74928) SHA1(43ea7855d5d4dcc4921b3a7b814acc75c5cfde15) )
2896 
2897 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
2898 	ROM_LOAD16_BYTE( "epr-11842.10", 0x00001, 0x08000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
2899 	ROM_CONTINUE(                    0x40001, 0x08000 )
2900 	ROM_LOAD16_BYTE( "epr-11845.11", 0x00000, 0x08000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
2901 	ROM_CONTINUE(                    0x40000, 0x08000 )
2902 	ROM_LOAD16_BYTE( "epr-11843.17", 0x10001, 0x08000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
2903 	ROM_CONTINUE(                    0x50001, 0x08000 )
2904 	ROM_LOAD16_BYTE( "epr-11846.18", 0x10000, 0x08000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
2905 	ROM_CONTINUE(                    0x50000, 0x08000 )
2906 	ROM_LOAD16_BYTE( "epr-11844.23", 0x20001, 0x08000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
2907 	ROM_CONTINUE(                    0x60001, 0x08000 )
2908 	ROM_LOAD16_BYTE( "epr-11847.24", 0x20000, 0x08000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
2909 	ROM_CONTINUE(                    0x60000, 0x08000 )
2910 
2911 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
2912 	ROM_LOAD( "epr-11837.12", 0x0000, 0x8000, CRC(74d11552) SHA1(5a0f0c3fb858ed2bad8002fce4e29d730f102bcd) )
2913 
2914 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2915 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2916 
2917 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2918 	ROM_LOAD( "epr-11838.1",  0x00000, 0x8000, CRC(a465cd69) SHA1(25da3809824fb3df1f93bbfa88355a7c50e44211) )
2919 	ROM_LOAD( "epr-11839.2",  0x08000, 0x8000, CRC(99de6197) SHA1(f7de6a34fa185754c12276a94b1513234d352f3f) )
2920 	ROM_LOAD( "epr-11840.4",  0x10000, 0x8000, CRC(9854e8b3) SHA1(bc9d8a17ff96cf03f9a955223c11d9f1fb0309c5) )
2921 	ROM_LOAD( "epr-11841.5",  0x18000, 0x8000, CRC(1e89877e) SHA1(bbceb4f3cafae40d1e256f4336d3ee0bcdf8d077) )
2922 ROM_END
2923 
2924 
2925 //*************************************************************************************************************************
2926 //*************************************************************************************************************************
2927 //*************************************************************************************************************************
2928 //  Quartet, pre-System 16
2929 //  CPU: 68000
2930 //  i8751 315-5194
2931 //
2932 //  CPU/Video/Sound Board: 171-5335
2933 //  ROM Board:             171-5336
2934 //  Sega game ID: 833-5973 QUARTET (with an additional sticker "REV A")
2935 //     ROM board: 834-5974
2936 //
2937 ROM_START( quartet )
2938 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2939 	ROM_LOAD16_BYTE( "epr-7458a.9b",  0x000000, 0x8000, CRC(42e7b23e) SHA1(9df3b1b915723f9a927ef03d80ae7983a8c91a21) )
2940 	ROM_LOAD16_BYTE( "epr-7455a.6b",  0x000001, 0x8000, CRC(01631ab2) SHA1(2d613d23fe79072f850ccc9020830dea54312b23) )
2941 	ROM_LOAD16_BYTE( "epr-7459a.10b", 0x010000, 0x8000, CRC(6b540637) SHA1(4b2e9ba06b80f8fb502310ab770805f8c6a47567) )
2942 	ROM_LOAD16_BYTE( "epr-7456a.7b",  0x010001, 0x8000, CRC(31ca583e) SHA1(8ade8f7e42ae3e171b138410374e4c090fdc4ecb) )
2943 	ROM_LOAD16_BYTE( "epr-7460.11b",  0x020000, 0x8000, CRC(a444ea13) SHA1(884ed22d606e3bd30d8401fe1750687e54674e82) )
2944 	ROM_LOAD16_BYTE( "epr-7457.8b",   0x020001, 0x8000, CRC(3b282c23) SHA1(95de41a97f50f6169887c6d9724d5c42a41bb264) )
2945 
2946 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2947 	ROM_LOAD( "epr-7461.9c",  0x00000, 0x08000, CRC(f6af07f2) SHA1(546fabbda936d61a90d2395d033fd4d6bb0bc38a) )
2948 	ROM_LOAD( "epr-7462.10c", 0x08000, 0x08000, CRC(7914af28) SHA1(4bf59fe4a0b0aa5d4cc0b6f9375ffab3c96e8a2b) )
2949 	ROM_LOAD( "epr-7463.11c", 0x10000, 0x08000, CRC(827c5603) SHA1(8db3bd6eae5aeeb229e017471049ef5347974df5) )
2950 
2951 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites  - the same as quartet 2
2952 	ROM_LOAD16_BYTE( "epr-7465.5c",  0x00001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
2953 	ROM_LOAD16_BYTE( "epr-7469.2b",  0x00000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
2954 	ROM_LOAD16_BYTE( "epr-7466.6c",  0x10001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
2955 	ROM_LOAD16_BYTE( "epr-7470.3b",  0x10000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
2956 	ROM_LOAD16_BYTE( "epr-7467.7c",  0x20001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
2957 	ROM_LOAD16_BYTE( "epr-7471.4b",  0x20000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
2958 	ROM_LOAD16_BYTE( "epr-7468.8c",  0x30001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
2959 	ROM_LOAD16_BYTE( "epr-7472.5b",  0x30000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
2960 
2961 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2962 	ROM_LOAD( "epr-7464.1b",  0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
2963 
2964 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
2965 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
2966 
2967 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
2968 	ROM_LOAD( "epr-7473.1c",  0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
2969 	ROM_LOAD( "epr-7475.2c",  0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
2970 	ROM_LOAD( "epr-7474.3c",  0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
2971 	ROM_LOAD( "epr-7476.4c",  0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
2972 
2973 	ROM_REGION( 0x1000, "mcu", 0 )  // Intel i8751 protection MCU
2974 	ROM_LOAD( "315-5194.mcu", 0x00000, 0x1000, CRC(b7298f66) SHA1(9c579903bcf48a72ad9dfe7bf3962729dabe2d34) )
2975 
2976 	ROM_REGION( 0x0500, "plds", 0 ) // Unknown & undumped PAL 315-5202 @ 8L, 315-5107 @ 22G & 315-5141 @ 3C
2977 	ROM_LOAD( "315-5147.pal16r6a.23g", 0x0000, 0x0104, NO_DUMP ) // PAL is read protected
2978 	ROM_LOAD( "315-5143.pal16r6a.24g", 0x0200, 0x0104, NO_DUMP ) // PAL is read protected
2979 	ROM_LOAD( "315-5193.pls153.8j",    0x0400, 0x00eb, CRC(0fe1eefd) SHA1(38ba6f57006af8c0d4d7f74aa4778ac1ee2a21fc) )
2980 ROM_END
2981 
2982 //*************************************************************************************************************************
2983 //  Quartet, pre-System 16
2984 //  CPU: 68000
2985 //  i8751 315-5194
2986 //
2987 //  CPU/Video/Sound Board: 171-5335
2988 //  ROM Board:             171-5336
2989 //  Sega game ID: 833-5973 QUARTET
2990 //     ROM board: 834-5974
2991 //
2992 ROM_START( quarteta )
2993 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
2994 	ROM_LOAD16_BYTE( "epr-7458.9b",  0x000000, 0x8000, CRC(0096499f) SHA1(dcf8e33513ce7c6660ea546c8e1c574fde629a22) )
2995 	ROM_LOAD16_BYTE( "epr-7455.6b",  0x000001, 0x8000, CRC(da934390) SHA1(d40eb65b6a36a4c1ebeadb76e47a61bd8b2e4b89) )
2996 	ROM_LOAD16_BYTE( "epr-7459.10b", 0x010000, 0x8000, CRC(d130cf61) SHA1(3a065f5c296b10b97c78d49aa285ae7afb16e881) )
2997 	ROM_LOAD16_BYTE( "epr-7456.7b",  0x010001, 0x8000, CRC(7847149f) SHA1(fc8ad669f2bc426cb7af78d92ea147cbd1e181af) )
2998 	ROM_LOAD16_BYTE( "epr-7460.11b", 0x020000, 0x8000, CRC(a444ea13) SHA1(884ed22d606e3bd30d8401fe1750687e54674e82) )
2999 	ROM_LOAD16_BYTE( "epr-7457.8b",  0x020001, 0x8000, CRC(3b282c23) SHA1(95de41a97f50f6169887c6d9724d5c42a41bb264) )
3000 
3001 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
3002 	ROM_LOAD( "epr-7461.9c",  0x00000, 0x08000, CRC(f6af07f2) SHA1(546fabbda936d61a90d2395d033fd4d6bb0bc38a) )
3003 	ROM_LOAD( "epr-7462.10c", 0x08000, 0x08000, CRC(7914af28) SHA1(4bf59fe4a0b0aa5d4cc0b6f9375ffab3c96e8a2b) )
3004 	ROM_LOAD( "epr-7463.11c", 0x10000, 0x08000, CRC(827c5603) SHA1(8db3bd6eae5aeeb229e017471049ef5347974df5) )
3005 
3006 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites  - the same as quartet 2
3007 	ROM_LOAD16_BYTE( "epr-7465.5c",  0x00001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
3008 	ROM_LOAD16_BYTE( "epr-7469.2b",  0x00000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
3009 	ROM_LOAD16_BYTE( "epr-7466.6c",  0x10001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
3010 	ROM_LOAD16_BYTE( "epr-7470.3b",  0x10000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
3011 	ROM_LOAD16_BYTE( "epr-7467.7c",  0x20001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
3012 	ROM_LOAD16_BYTE( "epr-7471.4b",  0x20000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
3013 	ROM_LOAD16_BYTE( "epr-7468.8c",  0x30001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
3014 	ROM_LOAD16_BYTE( "epr-7472.5b",  0x30000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
3015 
3016 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3017 	ROM_LOAD( "epr-7464.1b",  0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
3018 
3019 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3020 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3021 
3022 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
3023 	ROM_LOAD( "epr-7473.1c",  0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
3024 	ROM_LOAD( "epr-7475.2c",  0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
3025 	ROM_LOAD( "epr-7474.3c",  0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
3026 	ROM_LOAD( "epr-7476.4c",  0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
3027 
3028 	ROM_REGION( 0x1000, "mcu", 0 )  // Intel i8751 protection MCU
3029 	ROM_LOAD( "315-5194.mcu", 0x00000, 0x1000, CRC(b7298f66) SHA1(9c579903bcf48a72ad9dfe7bf3962729dabe2d34) )
3030 
3031 	ROM_REGION( 0x0500, "plds", 0 ) // Unknown & undumped PAL 315-5202 @ 8L, 315-5107 @ 22G & 315-5141 @ 3C
3032 	ROM_LOAD( "315-5147.pal16r6a.23g", 0x0000, 0x0104, NO_DUMP ) // PAL is read protected
3033 	ROM_LOAD( "315-5143.pal16r6a.24g", 0x0200, 0x0104, NO_DUMP ) // PAL is read protected
3034 	ROM_LOAD( "315-5193.pls153.8j",    0x0400, 0x00eb, CRC(0fe1eefd) SHA1(38ba6f57006af8c0d4d7f74aa4778ac1ee2a21fc) )
3035 ROM_END
3036 
3037 
3038 //*************************************************************************************************************************
3039 //*************************************************************************************************************************
3040 //*************************************************************************************************************************
3041 //  Quartet 2, pre-System 16
3042 //  CPU: 68000
3043 //  i8751 317-0010
3044 //
3045 //  CPU/Video/Sound Board: 171-5335
3046 //  ROM Board:             171-5336
3047 //  Sega game ID: 837-5934
3048 //     ROM board: 837-5935
3049 //
3050 ROM_START( quartet2 )
3051 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3052 	ROM_LOAD16_BYTE( "epr-7695.b9",  0x000000, 0x8000, CRC(67177cd8) SHA1(c4ea001dfbeeb29a09d597fb50d71f54e4e9572a) )
3053 	ROM_LOAD16_BYTE( "epr-7692.b6",  0x000001, 0x8000, CRC(50f50b08) SHA1(646c0d545150b95e5d8d47bf63360f7326add08f) )
3054 	ROM_LOAD16_BYTE( "epr-7696.b10", 0x010000, 0x8000, CRC(4273c3b7) SHA1(4cae221678a6d2b7806487becd4ba09b520f9fa0) )
3055 	ROM_LOAD16_BYTE( "epr-7693.b7",  0x010001, 0x8000, CRC(0aa337bb) SHA1(f31f8f294fccd866eadebfafee067bfae44b3184) )
3056 	ROM_LOAD16_BYTE( "epr-7697.b11", 0x020000, 0x8000, CRC(3a6a375d) SHA1(8ebea6b7f1208438b47e887b46cb569725c4042a) )
3057 	ROM_LOAD16_BYTE( "epr-7694.b8",  0x020001, 0x8000, CRC(d87b2ca2) SHA1(58adf0900e41036b1b78a931ab94b30ce601909d) )
3058 
3059 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
3060 	ROM_LOAD( "epr-7698.c9",  0x00000, 0x08000, CRC(547a6058) SHA1(5248e974c8d12183c996b1fc8fda09e8a4bf0d2d) )
3061 	ROM_LOAD( "epr-7699.c10", 0x08000, 0x08000, CRC(77ec901d) SHA1(b5961895473c16a8f4a111185cce48b05ab66885) )
3062 	ROM_LOAD( "epr-7700.c11", 0x10000, 0x08000, CRC(7e348cce) SHA1(82bba65280faaf3280208c85caef48ec8baeade8) )
3063 
3064 	ROM_REGION16_BE( 0x040000, "sprites", 0 ) // sprites
3065 	ROM_LOAD16_BYTE( "epr-7465.5c",  0x00001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
3066 	ROM_LOAD16_BYTE( "epr-7469.2b",  0x00000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
3067 	ROM_LOAD16_BYTE( "epr-7466.6c",  0x10001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
3068 	ROM_LOAD16_BYTE( "epr-7470.3b",  0x10000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
3069 	ROM_LOAD16_BYTE( "epr-7467.7c",  0x20001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
3070 	ROM_LOAD16_BYTE( "epr-7471.4b",  0x20000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
3071 	ROM_LOAD16_BYTE( "epr-7468.8c",  0x30001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
3072 	ROM_LOAD16_BYTE( "epr-7472.5b",  0x30000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
3073 
3074 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3075 	ROM_LOAD( "epr-7464.1b",  0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
3076 
3077 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3078 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3079 
3080 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
3081 	ROM_LOAD( "epr-7473.1c",  0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
3082 	ROM_LOAD( "epr-7475.2c",  0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
3083 	ROM_LOAD( "epr-7474.3c",  0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
3084 	ROM_LOAD( "epr-7476.4c",  0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
3085 
3086 	ROM_REGION( 0x1000, "mcu", 0 )  // Intel i8751 protection MCU
3087 	ROM_LOAD( "317-0010.bin", 0x00000, 0x1000, CRC(8c2033ea) SHA1(4a60d141517a5d5d065f40f71be4d2ee3be18384) )
3088 ROM_END
3089 
3090 //*************************************************************************************************************************
3091 //  Quartet 2, pre-System 16
3092 //  CPU: 68000
3093 //
3094 ROM_START( quartet2a )
3095 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3096 	ROM_LOAD16_BYTE( "epr-7728.b9",  0x000000, 0x8000, CRC(56a8c88e) SHA1(33eaca5272f3588058952ca0b1fa298b89418e81) )
3097 	ROM_LOAD16_BYTE( "epr-7725.b6",  0x000001, 0x8000, CRC(ee15fcc9) SHA1(70d9755145245537f6aeb0d39abeda7811749b8c) )
3098 	ROM_LOAD16_BYTE( "epr-7729.b10", 0x010000, 0x8000, CRC(bc242123) SHA1(8e58dd89b70ba06d12437010a7375464647262f5) )
3099 	ROM_LOAD16_BYTE( "epr-7726.b7",  0x010001, 0x8000, CRC(9d1c48e7) SHA1(e11a358895c7809cdf7241ff9317c2b162e4040e) )
3100 	ROM_LOAD16_BYTE( "epr-7697.b11", 0x020000, 0x8000, CRC(3a6a375d) SHA1(8ebea6b7f1208438b47e887b46cb569725c4042a) )
3101 	ROM_LOAD16_BYTE( "epr-7694.b8",  0x020001, 0x8000, CRC(d87b2ca2) SHA1(58adf0900e41036b1b78a931ab94b30ce601909d) )
3102 
3103 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
3104 	ROM_LOAD( "epr-7698.c9",  0x00000, 0x08000, CRC(547a6058) SHA1(5248e974c8d12183c996b1fc8fda09e8a4bf0d2d) )
3105 	ROM_LOAD( "epr-7699.c10", 0x08000, 0x08000, CRC(77ec901d) SHA1(b5961895473c16a8f4a111185cce48b05ab66885) )
3106 	ROM_LOAD( "epr-7700.c11", 0x10000, 0x08000, CRC(7e348cce) SHA1(82bba65280faaf3280208c85caef48ec8baeade8) )
3107 
3108 	ROM_REGION16_BE( 0x040000, "sprites", 0 ) // sprites
3109 	ROM_LOAD16_BYTE( "epr-7465.5c",  0x00001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
3110 	ROM_LOAD16_BYTE( "epr-7469.2b",  0x00000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
3111 	ROM_LOAD16_BYTE( "epr-7466.6c",  0x10001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
3112 	ROM_LOAD16_BYTE( "epr-7470.3b",  0x10000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
3113 	ROM_LOAD16_BYTE( "epr-7467.7c",  0x20001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
3114 	ROM_LOAD16_BYTE( "epr-7471.4b",  0x20000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
3115 	ROM_LOAD16_BYTE( "epr-7468.8c",  0x30001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
3116 	ROM_LOAD16_BYTE( "epr-7472.5b",  0x30000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
3117 
3118 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3119 	ROM_LOAD( "epr-7464.1b",  0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
3120 
3121 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3122 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3123 
3124 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
3125 	ROM_LOAD( "epr-7473.1c",  0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
3126 	ROM_LOAD( "epr-7475.2c",  0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
3127 	ROM_LOAD( "epr-7474.3c",  0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
3128 	ROM_LOAD( "epr-7476.4c",  0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
3129 ROM_END
3130 
3131 
3132 //*************************************************************************************************************************
3133 //*************************************************************************************************************************
3134 //*************************************************************************************************************************
3135 //  SDI, Sega System 16A
3136 //  CPU: FD1089B (317-0027)
3137 //
3138 ROM_START( sdi )
3139 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3140 	ROM_LOAD16_BYTE( "epr-10970.43", 0x000000, 0x8000, CRC(b8fa4a2c) SHA1(06b448bbee0a2b2809d9af7a2a22c5847343c079) )
3141 	ROM_LOAD16_BYTE( "epr-10968.26", 0x000001, 0x8000, CRC(a3f97793) SHA1(0f924fae0d13b3387a0e5171482f6d413432ddb3) )
3142 	ROM_LOAD16_BYTE( "epr-10971.42", 0x010000, 0x8000, CRC(c44a0328) SHA1(3736bb83e728bb0e15ea58bc2a6c2fe66a1a4885) )
3143 	ROM_LOAD16_BYTE( "epr-10969.25", 0x010001, 0x8000, CRC(455d15bd) SHA1(be679ecb1687b0675614ad27973c20808ad53797) )
3144 	ROM_LOAD16_BYTE( "epr-10755.41", 0x020000, 0x8000, CRC(405e3969) SHA1(6d8c3bd06d35c971f7db005dffa2e83cae1378f8) )
3145 	ROM_LOAD16_BYTE( "epr-10752.24", 0x020001, 0x8000, CRC(77453740) SHA1(9032463e5e14c3c610c31e2eb6e2c962df9adf46) )
3146 
3147 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3148 	ROM_LOAD( "epr-10756.95", 0x00000, 0x10000, CRC(44d8a506) SHA1(363d49dcb65ac0093f3ed3b259b1bc45f0291e9d) )
3149 	ROM_LOAD( "epr-10757.94", 0x10000, 0x10000, CRC(497e1740) SHA1(95b166a9db46a27087e417c1b2cbb76bee2e64a7) )
3150 	ROM_LOAD( "epr-10758.93", 0x20000, 0x10000, CRC(61d61486) SHA1(d48ff87216947b78903cd98a10436babdf8b75a0) )
3151 
3152 	ROM_REGION16_BE( 0x70000, "sprites", 0 ) // sprites
3153 	ROM_LOAD16_BYTE( "epr-10760.10", 0x00001, 0x08000, CRC(30e2c50a) SHA1(1fb9e69d4cb97fdcb0f98c2a7ede246aaa4ac382) )
3154 	ROM_CONTINUE(                    0x40001, 0x08000 )
3155 	ROM_LOAD16_BYTE( "epr-10763.11", 0x00000, 0x08000, CRC(794e3e8b) SHA1(91ca1cb9aabf99adc8426feed4494a992afb8c4a) )
3156 	ROM_CONTINUE(                    0x40000, 0x08000 )
3157 	ROM_LOAD16_BYTE( "epr-10761.17", 0x10001, 0x08000, CRC(6a8b3fd0) SHA1(a122d3cb0b3263714f026e57d85b0dbf6cb110d7) )
3158 	ROM_CONTINUE(                    0x50001, 0x08000 )
3159 	ROM_LOAD16_BYTE( "epr-10764.18", 0x10000, 0x08000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
3160 	ROM_CONTINUE(                    0x50000, 0x08000 )
3161 	ROM_LOAD16_BYTE( "epr-10762.23", 0x20001, 0x08000, CRC(b9de3aeb) SHA1(2f7a55a8377e831338a884f8962d6ab2757e8c9b) )
3162 	ROM_CONTINUE(                    0x60001, 0x08000 )
3163 	ROM_LOAD16_BYTE( "epr-10765.24", 0x20000, 0x08000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
3164 	ROM_CONTINUE(                    0x60000, 0x08000 )
3165 
3166 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3167 	ROM_LOAD( "epr-10759.12", 0x0000, 0x8000, CRC(d7f9649f) SHA1(ce4abe7dd7e33da048569d7817063345fab75ea7) )
3168 
3169 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
3170 	ROM_LOAD( "317-0027.key", 0x0000, 0x2000, CRC(7bdeed05) SHA1(d5fc1dbafdafdc6ff27fa208cad6f488ae4a8b39) )
3171 ROM_END
3172 
3173 //*************************************************************************************************************************
3174 //  SDI, Sega System 16A
3175 //  CPU: FD1089B (317-0027)
3176 //
3177 //  ROM board: 834-6284-03 SDI
3178 //
3179 ROM_START( sdia )
3180 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3181 	ROM_LOAD16_BYTE( "epr-10881.43", 0x000000, 0x8000, CRC(3455a6a0) SHA1(2cf32da891424caf95ec93bf572993c1031e1aa8) )
3182 	ROM_LOAD16_BYTE( "epr-10879.26", 0x000001, 0x8000, CRC(3ec416de) SHA1(245b9436e42170322a38424dc176801d25653e3e) )
3183 	ROM_LOAD16_BYTE( "epr-10882.42", 0x010000, 0x8000, CRC(f2ac1cec) SHA1(e174ec9bc175d2e914c40b9ae2217627aee8c78e) )
3184 	ROM_LOAD16_BYTE( "epr-10880.25", 0x010001, 0x8000, CRC(67e088a2) SHA1(8f6d26141b1ae99cdab4f66ad8b4ef2c96912dce) )
3185 	ROM_LOAD16_BYTE( "epr-10755.41", 0x020000, 0x8000, CRC(405e3969) SHA1(6d8c3bd06d35c971f7db005dffa2e83cae1378f8) )
3186 	ROM_LOAD16_BYTE( "epr-10752.24", 0x020001, 0x8000, CRC(77453740) SHA1(9032463e5e14c3c610c31e2eb6e2c962df9adf46) )
3187 
3188 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3189 	ROM_LOAD( "epr-10756.95", 0x00000, 0x10000, CRC(44d8a506) SHA1(363d49dcb65ac0093f3ed3b259b1bc45f0291e9d) )
3190 	ROM_LOAD( "epr-10757.94", 0x10000, 0x10000, CRC(497e1740) SHA1(95b166a9db46a27087e417c1b2cbb76bee2e64a7) )
3191 	ROM_LOAD( "epr-10758.93", 0x20000, 0x10000, CRC(61d61486) SHA1(d48ff87216947b78903cd98a10436babdf8b75a0) )
3192 
3193 	ROM_REGION16_BE( 0x70000, "sprites", 0 ) // sprites
3194 	ROM_LOAD16_BYTE( "epr-10760.10", 0x00001, 0x08000, CRC(30e2c50a) SHA1(1fb9e69d4cb97fdcb0f98c2a7ede246aaa4ac382) )
3195 	ROM_CONTINUE(                    0x40001, 0x08000 )
3196 	ROM_LOAD16_BYTE( "epr-10763.11", 0x00000, 0x08000, CRC(794e3e8b) SHA1(91ca1cb9aabf99adc8426feed4494a992afb8c4a) )
3197 	ROM_CONTINUE(                    0x40000, 0x08000 )
3198 	ROM_LOAD16_BYTE( "epr-10761.17", 0x10001, 0x08000, CRC(6a8b3fd0) SHA1(a122d3cb0b3263714f026e57d85b0dbf6cb110d7) )
3199 	ROM_CONTINUE(                    0x50001, 0x08000 )
3200 	ROM_LOAD16_BYTE( "epr-10764.18", 0x10000, 0x08000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
3201 	ROM_CONTINUE(                    0x50000, 0x08000 )
3202 	ROM_LOAD16_BYTE( "epr-10762.23", 0x20001, 0x08000, CRC(b9de3aeb) SHA1(2f7a55a8377e831338a884f8962d6ab2757e8c9b) )
3203 	ROM_CONTINUE(                    0x60001, 0x08000 )
3204 	ROM_LOAD16_BYTE( "epr-10765.24", 0x20000, 0x08000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
3205 	ROM_CONTINUE(                    0x60000, 0x08000 )
3206 
3207 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3208 	ROM_LOAD( "epr-10759.12", 0x0000, 0x8000, CRC(d7f9649f) SHA1(ce4abe7dd7e33da048569d7817063345fab75ea7) )
3209 
3210 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
3211 	ROM_LOAD( "317-0027.key", 0x0000, 0x2000, CRC(7bdeed05) SHA1(d5fc1dbafdafdc6ff27fa208cad6f488ae4a8b39) )
3212 ROM_END
3213 
3214 
3215 //*************************************************************************************************************************
3216 //*************************************************************************************************************************
3217 //*************************************************************************************************************************
3218 //  Shinobi, Sega System 16A
3219 //  CPU: 68000 (unprotected)
3220 //
3221 ROM_START( shinobi )
3222 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3223 	ROM_LOAD16_BYTE( "epr-12010.43", 0x000000, 0x10000, CRC(7df7f4a2) SHA1(86ac00a3a8ecc1a7fcb00533ea12a6cb6d59089b) )
3224 	ROM_LOAD16_BYTE( "epr-12008.26", 0x000001, 0x10000, CRC(f5ae64cd) SHA1(33c9f25fcaff80b03d074d9d44d94976162411bf) )
3225 	ROM_LOAD16_BYTE( "epr-12011.42", 0x020000, 0x10000, CRC(9d46e707) SHA1(37ab25b3b37365c9f45837bfb6ec80652691dd4c) ) // == epr-11283
3226 	ROM_LOAD16_BYTE( "epr-12009.25", 0x020001, 0x10000, CRC(7961d07e) SHA1(38cbdab35f901532c0ad99ad0083513abd2ff182) ) // == epr-11281
3227 
3228 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3229 	ROM_LOAD( "epr-11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
3230 	ROM_LOAD( "epr-11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
3231 	ROM_LOAD( "epr-11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
3232 
3233 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
3234 	ROM_LOAD16_BYTE( "epr-11290.10", 0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
3235 	ROM_CONTINUE(                    0x40001, 0x08000 )
3236 	ROM_LOAD16_BYTE( "epr-11294.11", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
3237 	ROM_CONTINUE(                    0x40000, 0x08000 )
3238 	ROM_LOAD16_BYTE( "epr-11291.17", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
3239 	ROM_CONTINUE(                    0x50001, 0x08000 )
3240 	ROM_LOAD16_BYTE( "epr-11295.18", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
3241 	ROM_CONTINUE(                    0x50000, 0x08000 )
3242 	ROM_LOAD16_BYTE( "epr-11292.23", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
3243 	ROM_CONTINUE(                    0x60001, 0x08000 )
3244 	ROM_LOAD16_BYTE( "epr-11296.24", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
3245 	ROM_CONTINUE(                    0x60000, 0x08000 )
3246 	ROM_LOAD16_BYTE( "epr-11293.29", 0x30001, 0x08000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
3247 	ROM_CONTINUE(                    0x70001, 0x08000 )
3248 	ROM_LOAD16_BYTE( "epr-11297.30", 0x30000, 0x08000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
3249 	ROM_CONTINUE(                    0x70000, 0x08000 )
3250 
3251 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3252 	ROM_LOAD( "epr-11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
3253 
3254 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3255 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3256 
3257 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3258 	ROM_LOAD( "epr-11268.1",  0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
3259 ROM_END
3260 
3261 //*************************************************************************************************************************
3262 // Shinobi bootleg by 'Star' (decrypted version on original HW?, has the 7751 samples etc.)
3263 //
3264 ROM_START( shinobls )
3265 	ROM_REGION( 0x040000, "maincpu", 0 ) // 68000 code
3266 	ROM_LOAD16_BYTE( "b3", 0x000000, 0x10000, CRC(38e59646) SHA1(6a13015a93260ab99811b95950bb122eade01c27) )
3267 	ROM_LOAD16_BYTE( "b1", 0x000001, 0x10000, CRC(8529d192) SHA1(202b912d20a2d82abe055b4a5e8c509ab7d69ff8) )
3268 	ROM_LOAD16_BYTE( "b4", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
3269 	ROM_LOAD16_BYTE( "b2", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
3270 
3271 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3272 	ROM_LOAD( "b5", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
3273 	ROM_LOAD( "b6", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
3274 	ROM_LOAD( "b7", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
3275 
3276 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
3277 	ROM_LOAD16_BYTE( "b10", 0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
3278 	ROM_CONTINUE(           0x40001, 0x08000 )
3279 	ROM_LOAD16_BYTE( "b14", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
3280 	ROM_CONTINUE(           0x40000, 0x08000 )
3281 	ROM_LOAD16_BYTE( "b11", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
3282 	ROM_CONTINUE(           0x50001, 0x08000 )
3283 	ROM_LOAD16_BYTE( "b15", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
3284 	ROM_CONTINUE(           0x50000, 0x08000 )
3285 	ROM_LOAD16_BYTE( "b12", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
3286 	ROM_CONTINUE(           0x60001, 0x08000 )
3287 	ROM_LOAD16_BYTE( "b16", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
3288 	ROM_CONTINUE(           0x60000, 0x08000 )
3289 	// It's possible that the modifications to these ROMs are meant to stop the Sega logo from appearing,
3290 	// however, with the current system 16a emulation this doesn't happen, maybe it isn't actually running
3291 	// on a genuine Sega board?
3292 	ROM_LOAD16_BYTE( "b13", 0x30001, 0x08000, CRC(7e98bd36) SHA1(069c51478af7567e704fc9e25c9e327f02db171d) )
3293 	ROM_CONTINUE(           0x70001, 0x08000 )
3294 	ROM_LOAD16_BYTE( "b17", 0x30000, 0x08000, CRC(0315cf42) SHA1(2d129171aece883cb9c2805f894b3867ec98332b) )
3295 	ROM_CONTINUE(           0x70000, 0x08000 )
3296 
3297 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3298 	ROM_LOAD( "b8", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
3299 
3300 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3301 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3302 
3303 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3304 	ROM_LOAD( "b9", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
3305 ROM_END
3306 
3307 //*************************************************************************************************************************
3308 // Shinobi bootleg by 'Beta' (7751 replaced by what? Sample ROM is different, but no extra sound CPU ROM present, missing?)
3309 // otherwise it seems to run fine on System 16A
3310 //
3311 // note fron any:
3312 // on YM3012 and YM2151 sockets a sub pcb is attached
3313 // on that pcb there are 2x YM2203, 2 Y3014 and 3 ttl chips
3314 
3315 ROM_START( shinoblb )
3316 	ROM_REGION( 0x040000, "maincpu", 0 ) // 68000 code
3317 	ROM_LOAD16_BYTE( "4.3k", 0x000000, 0x10000, CRC(c178a39c) SHA1(05ff1679cdfc3618df8b3fabdeab64b1f2299aa3) )
3318 	ROM_LOAD16_BYTE( "2.3n", 0x000001, 0x10000, CRC(5ad8ebf2) SHA1(b22e0c8d4b27c553abface17c625e207d19417ab) )
3319 	ROM_LOAD16_BYTE( "5.2k", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
3320 	ROM_LOAD16_BYTE( "3.2n", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
3321 
3322 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3323 	ROM_LOAD( "8.3b", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
3324 	ROM_LOAD( "7.4b", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
3325 	ROM_LOAD( "6.5b", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
3326 
3327 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
3328 	ROM_LOAD16_BYTE( "9.6r",  0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
3329 	ROM_CONTINUE(             0x40001, 0x08000 )
3330 	ROM_LOAD16_BYTE( "13.8r", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
3331 	ROM_CONTINUE(             0x40000, 0x08000 )
3332 	ROM_LOAD16_BYTE( "10.6q", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
3333 	ROM_CONTINUE(             0x50001, 0x08000 )
3334 	ROM_LOAD16_BYTE( "14.8q", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
3335 	ROM_CONTINUE(             0x50000, 0x08000 )
3336 	ROM_LOAD16_BYTE( "11.6p", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
3337 	ROM_CONTINUE(             0x60001, 0x08000 )
3338 	ROM_LOAD16_BYTE( "15.8p", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
3339 	ROM_CONTINUE(             0x60000, 0x08000 )
3340 	ROM_LOAD16_BYTE( "12.6n", 0x30001, 0x08000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
3341 	ROM_CONTINUE(             0x70001, 0x08000 )
3342 	ROM_LOAD16_BYTE( "16.8n", 0x30000, 0x08000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
3343 	ROM_CONTINUE(             0x70000, 0x08000 )
3344 
3345 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3346 	ROM_LOAD( "1.5s", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
3347 
3348 	// these 2 n7751 ROMs weren't present in this set, it's possible it didn't have them
3349 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3350 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3351 
3352 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3353 	ROM_LOAD( "b9", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
3354 
3355 	ROM_REGION( 0x08000, "samples", 0 )
3356 	// sound samples (played by what?, not the same as the original)
3357 	// marked as 'bad dump' pending investigation, we might actually be missing a cpu ROM to play them
3358 	ROM_LOAD( "17.6u", 0x0000, 0x8000, BAD_DUMP CRC(b7a6890c) SHA1(6431df82c7dbe454cabc6084c1a677ebb42ae4b3) )
3359 ROM_END
3360 
3361 //*************************************************************************************************************************
3362 //  Shinobi, Sega System 16A
3363 //  CPU: FD1094 (317-0050)
3364 //
3365 ROM_START( shinobi1 )
3366 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3367 	ROM_LOAD16_BYTE( "epr-11262.42", 0x000000, 0x10000, CRC(d4b8df12) SHA1(64bfa2dd8a3d99728d9eeb114887272d9590d0b8) )
3368 	ROM_LOAD16_BYTE( "epr-11260.27", 0x000001, 0x10000, CRC(2835c95d) SHA1(b5b42af265d3a16183e02d58b053ec2894072679) )
3369 	ROM_LOAD16_BYTE( "epr-11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
3370 	ROM_LOAD16_BYTE( "epr-11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
3371 
3372 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3373 	ROM_LOAD( "317-0050.key", 0x0000, 0x2000, CRC(82c39ced) SHA1(5490237ff7f20f9ebfa3e46eedd5afd4f1c28548) )
3374 
3375 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3376 	ROM_LOAD( "epr-11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
3377 	ROM_LOAD( "epr-11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
3378 	ROM_LOAD( "epr-11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
3379 
3380 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
3381 	ROM_LOAD16_BYTE( "epr-11290.10", 0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
3382 	ROM_CONTINUE(                    0x40001, 0x08000 )
3383 	ROM_LOAD16_BYTE( "epr-11294.11", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
3384 	ROM_CONTINUE(                    0x40000, 0x08000 )
3385 	ROM_LOAD16_BYTE( "epr-11291.17", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
3386 	ROM_CONTINUE(                    0x50001, 0x08000 )
3387 	ROM_LOAD16_BYTE( "epr-11295.18", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
3388 	ROM_CONTINUE(                    0x50000, 0x08000 )
3389 	ROM_LOAD16_BYTE( "epr-11292.23", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
3390 	ROM_CONTINUE(                    0x60001, 0x08000 )
3391 	ROM_LOAD16_BYTE( "epr-11296.24", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
3392 	ROM_CONTINUE(                    0x60000, 0x08000 )
3393 	ROM_LOAD16_BYTE( "epr-11293.29", 0x30001, 0x08000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
3394 	ROM_CONTINUE(                    0x70001, 0x08000 )
3395 	ROM_LOAD16_BYTE( "epr-11297.30", 0x30000, 0x08000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
3396 	ROM_CONTINUE(                    0x70000, 0x08000 )
3397 
3398 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3399 	ROM_LOAD( "epr-11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
3400 
3401 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3402 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3403 
3404 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3405 	ROM_LOAD( "epr-11268.1",  0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
3406 ROM_END
3407 
3408 ROM_START( shinobi1d )
3409 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3410 	ROM_LOAD16_BYTE( "bootleg_epr-11262.42", 0x000000, 0x10000, CRC(9a54a498) SHA1(34413767d09178f715be4147dfe48e3b1ef95021) )
3411 	ROM_LOAD16_BYTE( "bootleg_epr-11260.27", 0x000001, 0x10000, CRC(8f571c5f) SHA1(6264fad35ca7e6ae38a0a4c49a7aba16ddb8a0e2) )
3412 	ROM_LOAD16_BYTE( "epr-11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
3413 	ROM_LOAD16_BYTE( "epr-11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
3414 
3415 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3416 	ROM_LOAD( "epr-11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
3417 	ROM_LOAD( "epr-11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
3418 	ROM_LOAD( "epr-11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
3419 
3420 	ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
3421 	ROM_LOAD16_BYTE( "epr-11290.10", 0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
3422 	ROM_CONTINUE(                    0x40001, 0x08000 )
3423 	ROM_LOAD16_BYTE( "epr-11294.11", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
3424 	ROM_CONTINUE(                    0x40000, 0x08000 )
3425 	ROM_LOAD16_BYTE( "epr-11291.17", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
3426 	ROM_CONTINUE(                    0x50001, 0x08000 )
3427 	ROM_LOAD16_BYTE( "epr-11295.18", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
3428 	ROM_CONTINUE(                    0x50000, 0x08000 )
3429 	ROM_LOAD16_BYTE( "epr-11292.23", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
3430 	ROM_CONTINUE(                    0x60001, 0x08000 )
3431 	ROM_LOAD16_BYTE( "epr-11296.24", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
3432 	ROM_CONTINUE(                    0x60000, 0x08000 )
3433 	ROM_LOAD16_BYTE( "epr-11293.29", 0x30001, 0x08000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
3434 	ROM_CONTINUE(                    0x70001, 0x08000 )
3435 	ROM_LOAD16_BYTE( "epr-11297.30", 0x30000, 0x08000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
3436 	ROM_CONTINUE(                    0x70000, 0x08000 )
3437 
3438 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3439 	ROM_LOAD( "epr-11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
3440 
3441 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3442 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3443 
3444 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3445 	ROM_LOAD( "epr-11268.1",  0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
3446 ROM_END
3447 
3448 
3449 //*************************************************************************************************************************
3450 //*************************************************************************************************************************
3451 //*************************************************************************************************************************
3452 //  Sukeban Jansi Ryuko, Sega System 16A
3453 //  CPU: FD1089B (317-5021, also 317-5018 known to be exist)
3454 //
3455 //   (JPN Ver.)
3456 //  (c)1988 White Boar
3457 //
3458 //  Sega System 16A/16B
3459 //
3460 //  IC61:   839-0068 (16A)
3461 //  IC69:   315-5150 (16A)
3462 //
3463 //  CPU:    317-5021 (16A/16B)
3464 //
3465 ROM_START( sjryuko1 )
3466 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3467 	ROM_LOAD16_BYTE( "epr-12251.43",  0x000000, 0x08000, CRC(1af3cd0b) SHA1(a14907bf8da8010bacaf35893037310f1bb8d375) )
3468 	ROM_LOAD16_BYTE( "epr-12249.26",  0x000001, 0x08000, CRC(743d467d) SHA1(0eaccd3fd5c64513a86d23928a1469557c972f57) )
3469 	ROM_LOAD16_BYTE( "epr-12252.42",  0x010000, 0x08000, CRC(7ae309d6) SHA1(399c2a4d8b64df03e02b95cc635ee041254b7683) )
3470 	ROM_LOAD16_BYTE( "epr-12250.25",  0x010001, 0x08000, CRC(52c40f19) SHA1(0606943248b2433b70a7e4ad3408d4d3957756c9) )
3471 
3472 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
3473 	ROM_LOAD( "12224-95.b9",  0x00000, 0x08000, CRC(eac17ba1) SHA1(6dfea3383b7c9c47bc0943a8d86fc89efcb85ae2) )
3474 	ROM_LOAD( "12225-94.b10", 0x08000, 0x08000, CRC(2310fc98) SHA1(c40ca62edbe5cfa2f84811426233412cd5bd398c) )
3475 	ROM_LOAD( "12226-93.b11", 0x10000, 0x08000, CRC(210e6999) SHA1(5707cc613060b0070a822850b9afab8293f64dd7) )
3476 	//(epr- xxxxx - S16a location . S16b location
3477 
3478 	ROM_REGION16_BE( 0x80000, "sprites", ROMREGION_ERASE00 ) // sprites
3479 	ROM_LOAD16_BYTE( "12232-10.b1", 0x00001, 0x08000, CRC(0adec62b) SHA1(cd798a7994cea73bffe78feac4e692d755074b1d) )
3480 	ROM_CONTINUE(                   0x40001, 0x08000 )
3481 	ROM_LOAD16_BYTE( "12236-11.b5", 0x00000, 0x08000, CRC(286b9af8) SHA1(085251b8ce8b7fadf15b8ebd5872f0337adf142b) )
3482 	ROM_CONTINUE(                   0x40000, 0x08000 )
3483 	ROM_LOAD16_BYTE( "12233-17.b2", 0x10001, 0x08000, CRC(3e45969c) SHA1(804f3714c97877c6f0caf458f8af38e8d8179d73) )
3484 	ROM_CONTINUE(                   0x50001, 0x08000 )
3485 	ROM_LOAD16_BYTE( "12237-18.b6", 0x10000, 0x08000, CRC(e5058e96) SHA1(4a1f663c7c87fe7177a52017da3f2f55568bd863) )
3486 	ROM_CONTINUE(                   0x50000, 0x08000 )
3487 	ROM_LOAD16_BYTE( "12234-23.b3", 0x20001, 0x08000, CRC(8c8d54ef) SHA1(a8adee4f6ad8079af88cf471af42ace8ac8d093e) )
3488 	ROM_CONTINUE(                   0x60001, 0x08000 )
3489 	ROM_LOAD16_BYTE( "12238-24.b7", 0x20000, 0x08000, CRC(7ada3304) SHA1(e402442e73d93a1b174e3fcab6a97fb2d450994c) )
3490 	ROM_CONTINUE(                   0x60000, 0x08000 )
3491 	ROM_LOAD16_BYTE( "12235-29.b4", 0x30001, 0x08000, CRC(fa45d511) SHA1(41e343b039e8633b2469a5eaf5e4196b682f0d01) )
3492 	ROM_CONTINUE(                   0x70001, 0x08000 )
3493 	ROM_LOAD16_BYTE( "12239-30.b8", 0x30000, 0x08000, CRC(91f70c8b) SHA1(c3ac9cf248540d948f7845eb17ec95e1be8d00bb) )
3494 	ROM_CONTINUE(                   0x70000, 0x08000 )
3495 	//(epr- xxxxx - S16a location . S16b location
3496 
3497 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3498 	ROM_LOAD( "epr-12227.12", 0x0000, 0x8000, CRC(5b12409d) SHA1(b25d6fa004461426f6358ab70fd071239c78e949) )
3499 
3500 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3501 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3502 
3503 	ROM_REGION( 0x20000, "n7751data", 0 ) // 7751 sound data
3504 	ROM_LOAD( "epr-12228.1", 0x00000, 0x8000, CRC(6b2e6aef) SHA1(64ae6ec327c32cdb877a493ebfe11af15e2388ac) )
3505 	ROM_LOAD( "epr-12229.2", 0x08000, 0x8000, CRC(b7aa015c) SHA1(0ef023f73722e27180c271b207a5097220f40b5e) )
3506 	ROM_LOAD( "epr-12230.4", 0x10000, 0x8000, CRC(d0f61fd4) SHA1(e6f29459d7395122f26957f56e38926aebd9004c) )
3507 	ROM_LOAD( "epr-12231.5", 0x18000, 0x8000, CRC(780bdc57) SHA1(8c859043bba389292604385b88c743728180f9a9) )
3508 
3509 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
3510 	ROM_LOAD( "317-5021.key", 0x0000, 0x2000, CRC(8e40b2ab) SHA1(f3e2d70a17ac5270bec586cc67b2b8ba14bf53cf) )
3511 ROM_END
3512 
3513 
3514 //*************************************************************************************************************************
3515 //*************************************************************************************************************************
3516 //*************************************************************************************************************************
3517 //  Tetris, Sega System 16A
3518 //  CPU: FD1094 (317-0093)
3519 //
3520 //  Top board
3521 //
3522 //  Pos.   Label       Part        Notes
3523 //
3524 //  D4     EPR-12205   27C256      Z80 program
3525 //  D8     EPR-12200   27C256      68000 program
3526 //  C8     Unused                  68000 program
3527 //  B8     Unused                  68000 program
3528 //  D11    EPR-12201   27C256      68000 program
3529 //  C11    Unused                  68000 program
3530 //  B11    Unused                  68000 program
3531 //  C18    EPR-12204   27C512      Tile data
3532 //  D18    EPR-12203   27C512      Tile data
3533 //  E18    EPR-12202   27C512      Tile data
3534 //
3535 //  Bottom board
3536 //
3537 //  Pos.   Label       Part        Notes
3538 //
3539 //  D3     EPR-12169   27C256      Sprite data
3540 //  D4     Unused                  Sprite data
3541 //  D5     Unused                  Sprite data
3542 //  D6     Unused                  Sprite data
3543 //  F3     EPR-12170   27C256      Sprite data
3544 //  F4     Unused                  Sprite data
3545 //  F5     Unused                  Sprite data
3546 //  F6     Unused                  Sprite data
3547 //
3548 ROM_START( tetris )
3549 	ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
3550 	ROM_LOAD16_BYTE( "epr-12201.rom", 0x000000, 0x8000, CRC(338e9b51) SHA1(f56a1124c963d4ad72a806b26f9aa906aaa37d2b) )
3551 	ROM_LOAD16_BYTE( "epr-12200.rom", 0x000001, 0x8000, CRC(fb058779) SHA1(0045985ea943ebc7e44bd95127c5e5212c2821e8) )
3552 
3553 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3554 	ROM_LOAD( "317-0093.key",  0x0000, 0x2000, CRC(e0064442) SHA1(cc70b1a2c66729c4540dabd6a24a5f5615beedcd) )
3555 
3556 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3557 	ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
3558 	ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
3559 	ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
3560 
3561 	ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
3562 	ROM_LOAD16_BYTE( "epr-12169.b1",  0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
3563 	ROM_LOAD16_BYTE( "epr-12170.b5",  0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
3564 
3565 	ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
3566 	ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
3567 ROM_END
3568 
3569 ROM_START( tetrisd )
3570 	ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
3571 	ROM_LOAD16_BYTE( "bootleg_epr-12201.rom", 0x000000, 0x8000, CRC(0b694740) SHA1(c480e14c36f063851732d0a5985a6c744fa96062) )
3572 	ROM_LOAD16_BYTE( "bootleg_epr-12200.rom", 0x000001, 0x8000, CRC(343c0670) SHA1(cc0b7eeea411d533e973e71fe3121285e24869b0) )
3573 
3574 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3575 	ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
3576 	ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
3577 	ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
3578 
3579 	ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
3580 	ROM_LOAD16_BYTE( "epr-12169.b1",  0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
3581 	ROM_LOAD16_BYTE( "epr-12170.b5",  0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
3582 
3583 	ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
3584 	ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
3585 ROM_END
3586 
3587 
3588 //*************************************************************************************************************************
3589 //  Tetris, Sega System 16A
3590 //  CPU: FD1094 (317-0093a)
3591 //
3592 ROM_START( tetris3 )
3593 	ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
3594 	ROM_LOAD16_BYTE( "epr-12201a.43", 0x000000, 0x8000, CRC(9250e5cf) SHA1(e848a8279ce35f516754eec33b3b443d2e819eaa) )
3595 	ROM_LOAD16_BYTE( "epr-12200a.26", 0x000001, 0x8000, CRC(85d4b0ff) SHA1(f9d8e1ebb0c02a6c3c0b0acc78a6bea081ffc6f7) )
3596 
3597 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
3598 	ROM_LOAD( "317-0093a.key", 0x0000, 0x2000, CRC(7ca4a8ee) SHA1(c85763b7c5d606ee72181d9baba7de5e2c457fd8) )
3599 
3600 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3601 	ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
3602 	ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
3603 	ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
3604 
3605 	ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
3606 	ROM_LOAD16_BYTE( "epr-12169.b1",  0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
3607 	ROM_LOAD16_BYTE( "epr-12170.b5",  0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
3608 
3609 	ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
3610 	ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
3611 ROM_END
3612 
3613 ROM_START( tetris3d )
3614 	ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
3615 	ROM_LOAD16_BYTE( "bootleg_epr-12201a.43", 0x000000, 0x8000, CRC(1d88bd84) SHA1(ddb05a131dea2df70abe197675175c231eb35b03) )
3616 	ROM_LOAD16_BYTE( "bootleg_epr-12200a.26", 0x000001, 0x8000, CRC(1ba35f78) SHA1(2405597ad169d1cd0ef06e9c2c28e63e18e1f1b7) )
3617 
3618 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3619 	ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
3620 	ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
3621 	ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
3622 
3623 	ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
3624 	ROM_LOAD16_BYTE( "epr-12169.b1",  0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
3625 	ROM_LOAD16_BYTE( "epr-12170.b5",  0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
3626 
3627 	ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
3628 	ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
3629 ROM_END
3630 
3631 //*************************************************************************************************************************
3632 //*************************************************************************************************************************
3633 //*************************************************************************************************************************
3634 //  Time Scanner, Sega System 16A
3635 //  CPU: FD1089B (317-0024)
3636 //
3637 //  GAME NUMBER: 834-6207 TIME SCANNER
3638 //  CPU: FD1089B 6J2 317-0024
3639 //
3640 //  BOARD: SYSTEM 16B
3641 //
3642 //  GAME NUMBER: ???-????-??
3643 //  CPU: MC68000
3644 //
3645 //  IC POSITIONS    EPROMS      EPROMS
3646 //  S16A    S16B    NUMBERS     FUNCTIONS
3647 //
3648 //  26  -   EPR10537A   PROGRAM 317-0024
3649 //  25  -   EPR10538    "
3650 //  24  -   EPR10539    "
3651 //  43  -   EPR10540A   "
3652 //  42  -   EPR10541    "
3653 //  41  -   EPR10542    "
3654 //
3655 //  95  B9  EPR10543    SCREEN
3656 //  94  B10 EPR10544    "
3657 //  93  B11 EPR10545    "
3658 //
3659 //  12  -   EPR10546    SOUND PROGRAM
3660 //  1   -   EPR10547    SPEECH
3661 //
3662 //  10  B1  EPR10548    OBJECT
3663 //  17  B2  EPR10549    "
3664 //  23  B3  EPR10550    "
3665 //  29  B4  EPR10551    "
3666 //  11  B5  EPR10552    "
3667 //  18  B6  EPR10553    "
3668 //  24  B7  EPR10554    "
3669 //  30  B8  EPR10555    "
3670 //
3671 //  -   A7  EPR10562    SOUND PROGRAM
3672 //  -   A8  EPR10563    SPEECH
3673 //
3674 //  -   A1  EPR10850    PROGRAM MC68000
3675 //  -   A2  EPR10851    "
3676 //  -   A3  EPR10852    "
3677 //  -   A4  EPR10853    "
3678 //  -   A5  EPR10854    "
3679 //  -   A6  EPR10855    "
3680 //
3681 ROM_START( timescan1 )
3682 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3683 	ROM_LOAD16_BYTE( "epr-10540a.43", 0x00000, 0x8000, CRC(76848b0b) SHA1(a7755898c2b3212d80034c47760440db6dcde83c) )
3684 	ROM_LOAD16_BYTE( "epr-10537a.26", 0x00001, 0x8000, CRC(4ddc434a) SHA1(54908654f1445f2d3a3b1496015f3347ad603225) )
3685 	ROM_LOAD16_BYTE( "epr-10541.42",  0x10000, 0x8000, CRC(cc6d945e) SHA1(0ace2a8fddc27da4c8c3efb16f245f6325f02ed5) )
3686 	ROM_LOAD16_BYTE( "epr-10538.25",  0x10001, 0x8000, CRC(68379473) SHA1(7f6e0b3fb29ef5dd1023625ef7a7270fc230d40f) )
3687 	ROM_LOAD16_BYTE( "epr-10542.41",  0x20000, 0x8000, CRC(10217dfa) SHA1(845ea0483dca0aae042da52fbd7bc07e7e2f026d) )
3688 	ROM_LOAD16_BYTE( "epr-10539.24",  0x20001, 0x8000, CRC(10943b2e) SHA1(a297ed455062a3d39b9eecfe2b92474d47ce758f) )
3689 
3690 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
3691 	ROM_LOAD( "epr-10543.95", 0x00000, 0x8000, CRC(07dccc37) SHA1(544cc6a3b3ef64727ecf5098b84ade2dd5330614) )
3692 	ROM_LOAD( "epr-10544.94", 0x08000, 0x8000, CRC(84fb9a3a) SHA1(efde54cc9582f68e58cae05f717a4fc8f620c0fc) )
3693 	ROM_LOAD( "epr-10545.93", 0x10000, 0x8000, CRC(c8694bc0) SHA1(e48fc349ef454ded86141937f70b006e64da6b6b) )
3694 
3695 	ROM_REGION16_BE( 0x40000, "sprites", 0 ) // sprites
3696 	ROM_LOAD16_BYTE( "epr-10548.10",  0x00001, 0x8000, CRC(aa150735) SHA1(b6e6ff9229c641e196fc7a0a2cf7aa362f554676) )
3697 	ROM_LOAD16_BYTE( "epr-10552.11",  0x00000, 0x8000, CRC(6fcbb9f7) SHA1(0a0fab930477d8b79e500263bbc80d3bf73778f8) )
3698 	ROM_LOAD16_BYTE( "epr-10549.17",  0x10001, 0x8000, CRC(2f59f067) SHA1(1fb64cce2f98ddcb5ecb662e63ea636a8da08bcd) )
3699 	ROM_LOAD16_BYTE( "epr-10553.18",  0x10000, 0x8000, CRC(8a220a9f) SHA1(c17547d85721fa19e5f445b5be30b3fbf5e8cc6e) )
3700 	ROM_LOAD16_BYTE( "epr-10550.23",  0x20001, 0x8000, CRC(f05069ff) SHA1(bd95761036c2fad8ddf4e169d899b173822ee4b0) )
3701 	ROM_LOAD16_BYTE( "epr-10554.24",  0x20000, 0x8000, CRC(dc64f809) SHA1(ea85eefa98ec55e9e872940821a959ff4eb1bd1c) )
3702 	ROM_LOAD16_BYTE( "epr-10551.29",  0x30001, 0x8000, CRC(435d811f) SHA1(b28eb09620113cd7578387c4d96029f2acb8ec06) )
3703 	ROM_LOAD16_BYTE( "epr-10555.30",  0x30000, 0x8000, CRC(2143c471) SHA1(d413aa216349ddf773a39d2826c3a940b4149229) )
3704 
3705 	ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
3706 	ROM_LOAD( "epr-10546.12", 0x0000, 0x8000, CRC(1ebee5cc) SHA1(5e24ee25e770068a1292e657307cf53f6a8ae1c9) )
3707 
3708 	ROM_REGION( 0x1000, "n7751", 0 )      // 4k for 7751 onboard ROM
3709 	ROM_LOAD( "7751.bin",     0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
3710 
3711 	ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
3712 	ROM_LOAD( "epr-10547.1",  0x0000, 0x8000, CRC(d24ffc4b) SHA1(3b250e1f026664f7a37f65d1c1a07381e88f11e8) )
3713 
3714 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
3715 	ROM_LOAD( "317-0024.key", 0x0000, 0x2000, CRC(dcd41d24) SHA1(2bd96bc7467ad40f4d981d767f9685ec142d6d87) )
3716 ROM_END
3717 
3718 
3719 //*************************************************************************************************************************
3720 //*************************************************************************************************************************
3721 //*************************************************************************************************************************
3722 //  Wonder Boy III, Sega System 16A
3723 //  CPU: FD1094 (317-0084)
3724 //
3725 ROM_START( wb31 )
3726 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3727 	ROM_LOAD16_BYTE( "epr-12084.bin", 0x000000, 0x10000, CRC(b6deb654) SHA1(37066cc63902233bb8b56d3171c42bf8a8f82e58) )
3728 	ROM_LOAD16_BYTE( "epr-12082.bin", 0x000001, 0x10000, CRC(38dc5b15) SHA1(b25bf60d269a87f9d8dbc1a3787c8ff9a6e7482c) )
3729 	ROM_LOAD16_BYTE( "epr-12085.bin", 0x020000, 0x10000, CRC(0962098b) SHA1(150fc439dd5e773bef706f058abdb4d2ec44e355) )
3730 	ROM_LOAD16_BYTE( "epr-12083.bin", 0x020001, 0x10000, CRC(3d631a8e) SHA1(4940ff6cf380fb914876ade39ea37f42b79bf11d) )
3731 
3732 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3733 	ROM_LOAD( "317-0084.key",  0x0000, 0x2000, CRC(2c58dafa) SHA1(24d06970eda896fdd5e3486132bd19834f7d3659) )
3734 
3735 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3736 	ROM_LOAD( "epr-12086.bin", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
3737 	ROM_LOAD( "epr-12087.bin", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
3738 	ROM_LOAD( "epr-12088.bin", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
3739 
3740 	ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
3741 	ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
3742 	ROM_CONTINUE(                    0x40001, 0x008000 )
3743 	ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
3744 	ROM_CONTINUE(                    0x40000, 0x008000 )
3745 	ROM_LOAD16_BYTE( "epr-12091.b2", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
3746 	ROM_CONTINUE(                    0x50001, 0x008000 )
3747 	ROM_LOAD16_BYTE( "epr-12095.b6", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
3748 	ROM_CONTINUE(                    0x50000, 0x008000 )
3749 	ROM_LOAD16_BYTE( "epr-12092.b3", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
3750 	ROM_CONTINUE(                    0x60001, 0x008000 )
3751 	ROM_LOAD16_BYTE( "epr-12096.b7", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
3752 	ROM_CONTINUE(                    0x60000, 0x008000 )
3753 	ROM_LOAD16_BYTE( "epr-12093.b4", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
3754 	ROM_CONTINUE(                    0x70001, 0x008000 )
3755 	ROM_LOAD16_BYTE( "epr-12097.b8", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
3756 	ROM_CONTINUE(                    0x70000, 0x008000 )
3757 
3758 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3759 	ROM_LOAD( "epr-12089.bin", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
3760 ROM_END
3761 
3762 ROM_START( wb31d )
3763 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3764 	ROM_LOAD16_BYTE( "bootleg_epr12084.bin", 0x000000, 0x10000, CRC(0cfe1b00) SHA1(b4e50bb0d677647a71c1d3adac9f955774e3fa0e) )
3765 	ROM_LOAD16_BYTE( "bootleg_epr12082.bin", 0x000001, 0x10000, CRC(9e324162) SHA1(49cbec212bec832722b4816e2186e6cb1c204b0e) )
3766 	ROM_LOAD16_BYTE( "epr-12085.bin", 0x020000, 0x10000, CRC(0962098b) SHA1(150fc439dd5e773bef706f058abdb4d2ec44e355) )
3767 	ROM_LOAD16_BYTE( "epr-12083.bin", 0x020001, 0x10000, CRC(3d631a8e) SHA1(4940ff6cf380fb914876ade39ea37f42b79bf11d) )
3768 
3769 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3770 	ROM_LOAD( "epr-12086.bin", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
3771 	ROM_LOAD( "epr-12087.bin", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
3772 	ROM_LOAD( "epr-12088.bin", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
3773 
3774 	ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
3775 	ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
3776 	ROM_CONTINUE(                    0x40001, 0x008000 )
3777 	ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
3778 	ROM_CONTINUE(                    0x40000, 0x008000 )
3779 	ROM_LOAD16_BYTE( "epr-12091.b2", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
3780 	ROM_CONTINUE(                    0x50001, 0x008000 )
3781 	ROM_LOAD16_BYTE( "epr-12095.b6", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
3782 	ROM_CONTINUE(                    0x50000, 0x008000 )
3783 	ROM_LOAD16_BYTE( "epr-12092.b3", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
3784 	ROM_CONTINUE(                    0x60001, 0x008000 )
3785 	ROM_LOAD16_BYTE( "epr-12096.b7", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
3786 	ROM_CONTINUE(                    0x60000, 0x008000 )
3787 	ROM_LOAD16_BYTE( "epr-12093.b4", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
3788 	ROM_CONTINUE(                    0x70001, 0x008000 )
3789 	ROM_LOAD16_BYTE( "epr-12097.b8", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
3790 	ROM_CONTINUE(                    0x70000, 0x008000 )
3791 
3792 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3793 	ROM_LOAD( "epr-12089.bin", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
3794 ROM_END
3795 
3796 //*************************************************************************************************************************
3797 //  Wonder Boy III, Sega System 16A
3798 //  CPU: FD1089A (317-0086)
3799 //
3800 ROM_START( wb35 )
3801 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3802 	ROM_LOAD16_BYTE( "epr-12120.43", 0x000000, 0x10000, CRC(cbd8c99b) SHA1(2401aab80293bbe3b603a0b6af33ebc8834915e9) )
3803 	ROM_LOAD16_BYTE( "epr-12118.26", 0x000001, 0x10000, CRC(e9a3280c) SHA1(b7725171286915f8e1039d8063ba9e9f6ab40b56) )
3804 	ROM_LOAD16_BYTE( "epr-12121.42", 0x020000, 0x10000, CRC(5e44c0a9) SHA1(4d4c9575a6cd571a7cf635164e92afd92d4b63fe) )
3805 	ROM_LOAD16_BYTE( "epr-12119.25", 0x020001, 0x10000, CRC(01ed3ef9) SHA1(29491a81a735198393f1cc2f06940cf40168ff59) )
3806 
3807 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3808 	ROM_LOAD( "epr-12086.95", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
3809 	ROM_LOAD( "epr-12087.94", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
3810 	ROM_LOAD( "epr-12088.83", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
3811 
3812 	ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
3813 	ROM_LOAD16_BYTE( "epr-12090.10", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
3814 	ROM_CONTINUE(                    0x40001, 0x008000 )
3815 	ROM_LOAD16_BYTE( "epr-12094.11", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
3816 	ROM_CONTINUE(                    0x40000, 0x008000 )
3817 	ROM_LOAD16_BYTE( "epr-12091.17", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
3818 	ROM_CONTINUE(                    0x50001, 0x008000 )
3819 	ROM_LOAD16_BYTE( "epr-12095.18", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
3820 	ROM_CONTINUE(                    0x50000, 0x008000 )
3821 	ROM_LOAD16_BYTE( "epr-12092.23", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
3822 	ROM_CONTINUE(                    0x60001, 0x008000 )
3823 	ROM_LOAD16_BYTE( "epr-12096.24", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
3824 	ROM_CONTINUE(                    0x60000, 0x008000 )
3825 	ROM_LOAD16_BYTE( "epr-12093.29", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
3826 	ROM_CONTINUE(                    0x70001, 0x008000 )
3827 	ROM_LOAD16_BYTE( "epr-12097.30", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
3828 	ROM_CONTINUE(                    0x70000, 0x008000 )
3829 
3830 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3831 	ROM_LOAD( "epr-12089.12", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
3832 
3833 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key - Software decrypt, still need an actual hardware dump!
3834 	ROM_LOAD( "317-0086.key", 0x0000, 0x2000, BAD_DUMP CRC(5b8e7076) SHA1(387d6446266c32668a5182f825bb60b059d67f10) )
3835 ROM_END
3836 
3837 ROM_START( wb35d )
3838 	ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
3839 	ROM_LOAD16_BYTE( "bootleg_epr-12120.43", 0x000000, 0x10000, CRC(47e62031) SHA1(842e7aac5d2ed2b38c68e70b65494b6511900ee0) )
3840 	ROM_LOAD16_BYTE( "bootleg_epr-12118.26", 0x000001, 0x10000, CRC(d2f74be8) SHA1(83414365b921b617406535f387e6722c14ad8e09) )
3841 	ROM_LOAD16_BYTE( "bootleg_epr-12121.42", 0x020000, 0x10000, CRC(0962098b) SHA1(150fc439dd5e773bef706f058abdb4d2ec44e355) )
3842 	ROM_LOAD16_BYTE( "bootleg_epr-12119.25", 0x020001, 0x10000, CRC(3d631a8e) SHA1(4940ff6cf380fb914876ade39ea37f42b79bf11d) )
3843 
3844 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3845 	ROM_LOAD( "epr-12086.95", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
3846 	ROM_LOAD( "epr-12087.94", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
3847 	ROM_LOAD( "epr-12088.83", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
3848 
3849 	ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
3850 	ROM_LOAD16_BYTE( "epr-12090.10", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
3851 	ROM_CONTINUE(                    0x40001, 0x008000 )
3852 	ROM_LOAD16_BYTE( "epr-12094.11", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
3853 	ROM_CONTINUE(                    0x40000, 0x008000 )
3854 	ROM_LOAD16_BYTE( "epr-12091.17", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
3855 	ROM_CONTINUE(                    0x50001, 0x008000 )
3856 	ROM_LOAD16_BYTE( "epr-12095.18", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
3857 	ROM_CONTINUE(                    0x50000, 0x008000 )
3858 	ROM_LOAD16_BYTE( "epr-12092.23", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
3859 	ROM_CONTINUE(                    0x60001, 0x008000 )
3860 	ROM_LOAD16_BYTE( "epr-12096.24", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
3861 	ROM_CONTINUE(                    0x60000, 0x008000 )
3862 	ROM_LOAD16_BYTE( "epr-12093.29", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
3863 	ROM_CONTINUE(                    0x70001, 0x008000 )
3864 	ROM_LOAD16_BYTE( "epr-12097.30", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
3865 	ROM_CONTINUE(                    0x70000, 0x008000 )
3866 
3867 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3868 	ROM_LOAD( "epr-12089.12", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
3869 ROM_END
3870 
3871 
3872 //**************************************************************************
3873 //  CONFIGURATION
3874 //**************************************************************************
3875 
3876 //-------------------------------------------------
3877 //  init_generic - common initialization
3878 //-------------------------------------------------
3879 
3880 void segas16a_state::init_generic()
3881 {
3882 	// configure the NVRAM to point to our workram
3883 	m_nvram->set_base(m_workram, m_workram.bytes());
3884 
3885 	// create default read/write handlers
3886 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::standard_io_r));
3887 	m_custom_io_w = write16s_delegate(*this, FUNC(segas16a_state::standard_io_w));
3888 
3889 	// save state
3890 	save_item(NAME(m_video_control));
3891 	save_item(NAME(m_mcu_control));
3892 	save_item(NAME(m_n7751_command));
3893 	save_item(NAME(m_n7751_rom_address));
3894 	save_item(NAME(m_last_buttons1));
3895 	save_item(NAME(m_last_buttons2));
3896 	save_item(NAME(m_read_port));
3897 	save_item(NAME(m_mj_input_num));
3898 }
3899 
3900 
3901 //-------------------------------------------------
3902 //  init_* - game-specific initialization
3903 //-------------------------------------------------
3904 
init_aceattaca()3905 void segas16a_state::init_aceattaca()
3906 {
3907 	init_generic();
3908 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_r));
3909 	m_custom_io_w = write16s_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_w));
3910 }
3911 
init_dumpmtmt()3912 void segas16a_state::init_dumpmtmt()
3913 {
3914 	init_generic();
3915 	m_i8751_vblank_hook = i8751_sim_delegate(&segas16a_state::dumpmtmt_i8751_sim, this);
3916 }
3917 
init_mjleague()3918 void segas16a_state::init_mjleague()
3919 {
3920 	init_generic();
3921 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::mjleague_custom_io_r));
3922 }
3923 
init_passsht16a()3924 void segas16a_state::init_passsht16a()
3925 {
3926 	init_generic();
3927 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::passsht16a_custom_io_r));
3928 }
3929 
init_sdi()3930 void segas16a_state::init_sdi()
3931 {
3932 	init_generic();
3933 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::sdi_custom_io_r));
3934 }
3935 
init_sjryukoa()3936 void segas16a_state::init_sjryukoa()
3937 {
3938 	init_generic();
3939 	m_custom_io_r = read16sm_delegate(*this, FUNC(segas16a_state::sjryuko_custom_io_r));
3940 	m_lamp_changed_w = lamp_changed_delegate(&segas16a_state::sjryuko_lamp_changed_w, this);
3941 }
3942 
3943 
3944 
3945 //**************************************************************************
3946 //  GAME DRIVERS
3947 //**************************************************************************
3948 
3949 //    YEAR, NAME,       PARENT,   MACHINE,                  INPUT,      INIT,                            MONITOR,COMPANY,FULLNAME,FLAGS
3950 // "Pre-System 16"
3951 GAME( 1986, bodyslam,   0,        system16a_i8751,          bodyslam,        segas16a_state,            init_generic,     ROT0,   "Sega", "Body Slam (8751 317-0015)", MACHINE_SUPPORTS_SAVE )
3952 GAME( 1986, dumpmtmt,   bodyslam, system16a_i8751,          bodyslam,        segas16a_state,            init_dumpmtmt,    ROT0,   "Sega", "Dump Matsumoto (Japan, 8751 317-0011a)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
3953 
3954 GAME( 1985, mjleague,   0,        system16a,                mjleague,        segas16a_state,            init_mjleague,    ROT270, "Sega", "Major League", MACHINE_SUPPORTS_SAVE )
3955 
3956 GAME( 1986, quartet,    0,        system16a_i8751,          quartet,         segas16a_state,            init_generic,     ROT0,   "Sega", "Quartet (Rev A, 8751 315-5194)", MACHINE_SUPPORTS_SAVE )
3957 GAME( 1986, quarteta,   quartet,  system16a_i8751,          quartet,         segas16a_state,            init_generic,     ROT0,   "Sega", "Quartet (8751 315-5194)", MACHINE_SUPPORTS_SAVE )
3958 GAME( 1986, quartet2,   quartet,  system16a_i8751,          quart2,          segas16a_state,            init_generic,     ROT0,   "Sega", "Quartet 2 (8751 317-0010)", MACHINE_SUPPORTS_SAVE )
3959 GAME( 1986, quartet2a,  quartet,  system16a,                quart2,          segas16a_state,            init_generic,     ROT0,   "Sega", "Quartet 2 (unprotected)", MACHINE_SUPPORTS_SAVE )
3960 
3961 // System 16A
3962 GAME( 1987, aliensyn5,  aliensyn, system16a_fd1089b,        aliensyn,        segas16a_state,            init_generic,     ROT0,   "Sega", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", MACHINE_SUPPORTS_SAVE )
3963 GAME( 1987, aliensyn2,  aliensyn, system16a_fd1089a,        aliensyn,        segas16a_state,            init_generic,     ROT0,   "Sega", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", MACHINE_SUPPORTS_SAVE )
3964 GAME( 1987, aliensynjo, aliensyn, system16a_fd1089a,        aliensynj,       segas16a_state,            init_generic,     ROT0,   "Sega", "Alien Syndrome (set 1, Japan, old, System 16A, FD1089A 317-0033)", MACHINE_SUPPORTS_SAVE )
3965 
3966 GAME( 1988, aceattaca,  aceattac, aceattaca_fd1094,         aceattaca,       segas16a_state,            init_aceattaca,   ROT270, "Sega", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", MACHINE_SUPPORTS_SAVE )
3967 
3968 GAME( 1986, afighter,   0,        system16a_fd1089a_no7751, afighter,        segas16a_state,            init_generic,     ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", MACHINE_SUPPORTS_SAVE )
3969 GAME( 1986, afightera,  afighter, system16a_no7751,         afighter,        segas16a_state,            init_generic,     ROT270, "Sega", "Action Fighter (unprotected)", MACHINE_SUPPORTS_SAVE )
3970 GAME( 1986, afighterb,  afighter, system16a_no7751,         afighter_analog, afighter_16a_analog_state, init_generic,     ROT270, "Sega", "Action Fighter (unprotected, analog controls)", MACHINE_SUPPORTS_SAVE )
3971 GAME( 1986, afighterc,  afighter, system16a_fd1089b_no7751, afighter,        segas16a_state,            init_generic,     ROT270, "Sega", "Action Fighter (FD1089B 317-unknown)", MACHINE_SUPPORTS_SAVE ) // encrypted version of afightera (maybe 317-0017)
3972 GAME( 1986, afighterd,  afighter, system16a_fd1089b_no7751, afighter_analog, afighter_16a_analog_state, init_generic,     ROT270, "Sega", "Action Fighter (FD1089B 317-unknown, analog controls)", MACHINE_SUPPORTS_SAVE ) // encrypted version of afighterb
3973 
3974 GAME( 1986, alexkidd,   0,        system16a,                alexkidd,        segas16a_state,            init_generic,     ROT0,   "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", MACHINE_SUPPORTS_SAVE )
3975 GAME( 1986, alexkidd1,  alexkidd, system16a_fd1089a,        alexkidd,        segas16a_state,            init_generic,     ROT0,   "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", MACHINE_SUPPORTS_SAVE )
3976 
3977 GAME( 1986, fantzone,   0,        system16a_no7751,         fantzone,        segas16a_state,            init_generic,     ROT0,   "Sega", "Fantasy Zone (Rev A, unprotected)", MACHINE_SUPPORTS_SAVE )
3978 GAME( 1986, fantzone1,  fantzone, system16a_no7751,         fantzone,        segas16a_state,            init_generic,     ROT0,   "Sega", "Fantasy Zone (unprotected)", MACHINE_SUPPORTS_SAVE )
3979 GAME( 1986, fantzonep,  fantzone, system16a_no7751p,        fantzone,        segas16a_state,            init_generic,     ROT0,   "Sega", "Fantasy Zone (317-5000)", MACHINE_SUPPORTS_SAVE )
3980 GAME( 1986, fantzonee,  fantzone, system16a_fd1089b_no7751, fantzone,        segas16a_state,            init_generic,     ROT0,   "Sega", "Fantasy Zone (FD1089B 317-0016)", MACHINE_SUPPORTS_SAVE )
3981 GAME( 1986, fantzonepr, fantzone, system16a_no7751,         fantzone,        segas16a_state,            init_generic,     ROT0,   "Sega", "Fantasy Zone (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // bad / missing gfx ROMs
3982 
3983 GAME( 1988, passsht16a, passsht,  system16a_fd1094,         passsht16a,      segas16a_state,            init_passsht16a,  ROT270, "Sega", "Passing Shot (Japan, 4 Players, System 16A) (FD1094 317-0071)", MACHINE_SUPPORTS_SAVE )
3984 
3985 GAME( 1987, sdi,        0,        system16a_fd1089b_no7751, sdi,             segas16a_state,            init_sdi,         ROT0,   "Sega", "SDI - Strategic Defense Initiative (Japan, newer, System 16A, FD1089B 317-0027)", MACHINE_SUPPORTS_SAVE )
3986 GAME( 1987, sdia,       sdi,      system16a_fd1089b_no7751, sdi,             segas16a_state,            init_sdi,         ROT0,   "Sega", "SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027)", MACHINE_SUPPORTS_SAVE )
3987 
3988 GAME( 1987, shinobi,    0,        system16a,                shinobi,         segas16a_state,            init_generic,     ROT0,   "Sega", "Shinobi (set 6, System 16A) (unprotected)", MACHINE_SUPPORTS_SAVE )
3989 GAME( 1987, shinobi1,   shinobi,  system16a_fd1094,         shinobi,         segas16a_state,            init_generic,     ROT0,   "Sega", "Shinobi (set 1, System 16A) (FD1094 317-0050)", MACHINE_SUPPORTS_SAVE )
3990 GAME( 1987, shinobls,   shinobi,  system16a,                shinobi,         segas16a_state,            init_generic,     ROT0,   "bootleg (Star)", "Shinobi (Star bootleg, System 16A)", MACHINE_SUPPORTS_SAVE )
3991 GAME( 1987, shinoblb,   shinobi,  system16a,                shinobi,         segas16a_state,            init_generic,     ROT0,   "bootleg (Beta)", "Shinobi (Beta bootleg)", MACHINE_SUPPORTS_SAVE ) // should have different sound hw? using original ATM
3992 
3993 GAME( 1987, sjryuko1,   sjryuko,  system16a_fd1089b,        sjryuko,         segas16a_state,            init_sjryukoa,    ROT0,   "White Board", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", MACHINE_SUPPORTS_SAVE )
3994 
3995 GAME( 1988, tetris,     0,        system16a_fd1094_no7751,  tetris,          segas16a_state,            init_generic,     ROT0,   "Sega", "Tetris (set 4, Japan, System 16A) (FD1094 317-0093)", MACHINE_SUPPORTS_SAVE )
3996 GAME( 1988, tetris3,    tetris,   system16a_fd1094_no7751,  tetris,          segas16a_state,            init_generic,     ROT0,   "Sega", "Tetris (set 3, Japan, System 16A) (FD1094 317-0093a)", MACHINE_SUPPORTS_SAVE )
3997 
3998 GAME( 1987, timescan1,  timescan, system16a_fd1089b,        timescan,        segas16a_state,            init_generic,     ROT270, "Sega", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", MACHINE_SUPPORTS_SAVE )
3999 
4000 GAME( 1988, wb31,       wb3,      system16a_fd1094_no7751,  wb3,             segas16a_state,            init_generic,     ROT0,   "Sega / Westone", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A) (FD1094 317-0084)", MACHINE_SUPPORTS_SAVE )
4001 GAME( 1988, wb35,       wb3,      system16a_fd1089a_no7751, wb3,             segas16a_state,            init_generic,     ROT0,   "Sega / Westone", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A) (FD1089A 317-0086)", MACHINE_SUPPORTS_SAVE )
4002 
4003 
4004 GAME( 1988, wb31d,      wb3,      system16a_no7751,         wb3,             segas16a_state,            init_generic,     ROT0,   "bootleg", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A) (bootleg of FD1094 317-0084 set)", MACHINE_SUPPORTS_SAVE )
4005 GAME( 1988, wb35d,      wb3,      system16a_no7751,         wb3,             segas16a_state,            init_generic,     ROT0,   "bootleg", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A) (bootleg of FD1089A 317-0086 set)", MACHINE_SUPPORTS_SAVE )
4006 GAME( 1987, shinobi1d,  shinobi,  system16a,                shinobi,         segas16a_state,            init_generic,     ROT0,   "bootleg", "Shinobi (set 1, System 16A) (bootleg of FD1094 317-0050 set)", MACHINE_SUPPORTS_SAVE )
4007 GAME( 1988, tetrisd,    tetris,   system16a_no7751,         tetris,          segas16a_state,            init_generic,     ROT0,   "bootleg", "Tetris (set 4, Japan, System 16A) (bootleg of FD1094 317-0093 set)", MACHINE_SUPPORTS_SAVE )
4008 GAME( 1988, tetris3d,   tetris,   system16a_no7751,         tetris,          segas16a_state,            init_generic,     ROT0,   "bootleg", "Tetris (set 3, Japan, System 16A) (bootleg of FD1094 317-0093a set)", MACHINE_SUPPORTS_SAVE )
4009