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