1 // license:BSD-3-Clause
2 // copyright-holders:Aaron Giles
3 /***************************************************************************
4 
5     Incredible Technologies/Strata system
6     (8-bit blitter variant)
7 
8     driver by Aaron Giles
9 
10     Games supported:
11         * Strata Bowling [3 sets]
12         * Super Strike Bowling
13         * Wheel of Fortune [2 sets]
14         * Grudge Match
15         * Golden Tee Golf [4 sets]
16         * Golden Tee Golf II [3 sets]
17         * Golden Par Golf [2 sets]
18         * Slick Shot [3 sets]
19         * Dyno-Bop
20         * Arlington Horse Racing [2 sets]
21         * Neck & Neck
22         * Peggle [2 sets]
23         * Poker Dice
24         * Hot Shots Tennis [2 sets]
25         * Rim Rockin' Basketball [4 sets]
26         * Ninja Clowns
27 
28     Known issues:
29         * None
30 
31 ****************************************************************************
32 
33     Memory map
34 
35 ****************************************************************************
36 
37     ========================================================================
38     CPU #1 (6809 games)
39     ========================================================================
40     Note that many games have the regions 0000-0FFF and 1000-1FFF swapped.
41     Also, Golden Tee Golf II (V2.2) has most of the addresses in the
42     0000-0FFF range swizzled randomly.
43     ========================================================================
44     0100          W   xxxxxxxx    Unknown
45     0120          W   xxxxxxxx    Sound data
46     0140        R     xxxxxxxx    Input port
47     0140          W   xxxxxxxx    GROM blitter bank select
48     0160        R     xxxxxxxx    Input port
49     0160          W   xx------    Display page select
50                   W   x-------       (upper page select)
51                   W   -x------       (unknown)
52     0180        R     xxxxxxxx    Input port/DIP switches
53     0180          W   xxxxxxxx    Video RAM upper data latch
54     01A0          W   --------    NMI acknowledge (on some boards)
55     01C0-01C1   R/W   xxxxxxxx    Blitter chip address high
56     01C2-01C3   R/W   xxxxxxxx    Blitter chip address low
57     01C4-01C5   R/W   ---xxxxx    Blitter chip flags
58                 R/W   ---x----       (render transparent)
59                 R/W   ----x---       (expand RLE compressed data)
60                 R/W   -----x--       (flip vertically)
61                 R/W   ------x-       (flip horizontally)
62                 R/W   -------x       (shift data left 4 bits)
63     01C6-01C7   R     x-------    Blitter chip status (1=busy)
64     01C6-01C7     W   --------    Blitter chip trigger
65     01C8-01C9   R/W   xxxxxxxx    Blitter chip source width
66     01CA-01CB   R/W   xxxxxxxx    Blitter chip source height
67     01CC-01CD   R/W   xxxxxxxx    Blitter chip source data mask
68     01CE-01CF   R/W   xxxxxxxx    Blitter chip output port
69                   W   --x-----       (main program ROM bank select)
70     01D0-01D1   R/W   xxxxxxxx    Blitter chip X starting coordinate
71     01D2-01D3   R/W   xxxxxxxx    Blitter chip maximum scanline count
72     01D4-01D5   R/W   xxxxxxxx    Blitter chip X ending coordinate
73     01D6-01D7   R/W   xxxxxxxx    Blitter chip initial scanline skip
74     01D8-01DF   R     xxxxxxxx    Blitter chip input ports
75     01E0          W   xxxxxxxx    Palette address latch
76     01E2-01E3     W   --xxxxxx    Palette data latches
77     1000-11FF   R/W   xxxxxxxx    TMS34061 register access
78     1200-13FF   R/W   xxxxxxxx    TMS34061 XY addressing access
79     1400-15FF   R/W   xxxxxxxx    TMS34061 register access
80     1600-17FF   R/W   xxxxxxxx    TMS34061 direct access
81     1800-19FF   R/W   xxxxxxxx    TMS34061 shift register read
82     1A00-1BFF   R/W   xxxxxxxx    TMS34061 shift register write
83     2000-3FFF   R/W   xxxxxxxx    RAM (battery-backed)
84     4000-7FFF   R     xxxxxxxx    Banked program ROM
85     8000-FFFF   R     xxxxxxxx    Fixed program ROM
86     ========================================================================
87     Interrupts:
88         NMI generated by VBLANK
89         IRQ generated by TMS34061 scanline interrupt
90         FIRQ generated by blitter when finished
91     ========================================================================
92 
93     ========================================================================
94     CPU #1 (68000 games)
95     ========================================================================
96     000000-003FFF   R/W   xxxxxxxx xxxxxxxx   RAM (battery-backed)
97     004000-03FFFF   R     xxxxxxxx xxxxxxxx   Main program ROM
98     100080          W     xxxxxxxx --------   Sound data
99     100100          R     xxxxxxxx --------   Input port
100     100100            W   xxxxxxxx --------   GROM blitter bank select
101     100180          R     xxxxxxxx --------   Input port
102     100100            W   xx------ --------   Display page select
103                       W   x------- --------       (upper page select)
104                       W   -x------ --------       (unknown)
105     100240            W   xxxxxxxx --------   Video RAM upper data latch
106     100280          R     xxxxxxxx --------   Input port/DIP switches
107     100280            W   -------- --------   Unknown
108     100300-10031F   R/W   xxxxxxxx xxxxxxxx   Blitter chip (as above)
109     100380            W   xxxxxxxx --------   Palette address latch
110     1003a0            W   --xxxxxx --------   Palette data latches
111     110000-1101FF   R/W   xxxxxxxx xxxxxxxx   TMS34061 register access
112     110200-1103FF   R/W   xxxxxxxx xxxxxxxx   TMS34061 XY addressing access
113     110400-1105FF   R/W   xxxxxxxx xxxxxxxx   TMS34061 register access
114     110600-1107FF   R/W   xxxxxxxx xxxxxxxx   TMS34061 direct access
115     110800-1109FF   R/W   xxxxxxxx xxxxxxxx   TMS34061 shift register read
116     110A00-110BFF   R/W   xxxxxxxx xxxxxxxx   TMS34061 shift register write
117     ========================================================================
118     Interrupts:
119         INT 3 generated by VBLANK
120         INT 2 generated by blitter when finished
121         INT 1 generated by ???
122     ========================================================================
123 
124     ========================================================================
125     CPU #2
126     ========================================================================
127     0000          W   xxxxxxxx    Unknown
128     1000        R     xxxxxxxx    Sound command input
129     2000-2003   R/W   xxxxxxxx    Yamaha chip I/O
130     3000-37FF   R/W   xxxxxxxx    RAM
131     4000        R/W   xxxxxxxx    OKI 6295 I/O
132     5000-5003   R/W   xxxxxxxx    6521 PIA chip (on early YM3812 boards)
133     5000-500F   R/W   xxxxxxxx    6522 VIA chip (on later YM3812 boards)
134     8000-FFFF   R     xxxxxxxx    Program ROM
135     ========================================================================
136     Interrupts:
137         NMI not connected
138         IRQ generated by write to sound command input
139         FIRQ generated by Yamaha chip, or by 6522 VIA (if present)
140     ========================================================================
141 
142 ****************************************************************************
143 
144     PCB layouts
145 
146 ****************************************************************************
147 
148     Summary:
149 
150         There are 8 known variants of PCBs for these games. All the PCBs
151         have the following features in common:
152 
153             68B09 @ 2 MHz for the main CPU
154             8k RAM for the main CPU
155 
156             68B09 @ 2 MHz for the sound CPU
157             2k RAM for the sound CPU
158             YM2203C, YM2608B or YM3812 for music
159             OKI M6295 for speech (except for YM2608B-based system)
160 
161             TMS34061 for the video controller
162             ITV4400 custom blitter for rendering
163             6-bit RAMDAC for palette, or 2xTMS34070NL (Grudge Match only)
164             From 2-8 64k x 4-bit VRAM chips for frame buffers
165 
166         An overview of each style PCB is given below:
167 
168         Wheel Watcher (Wheel of Fortune)-style
169             * Single board
170             * YM2203C for music
171             * 2 VRAM chips for a single 8-bit 256x256 video page
172 
173         Grudge Match-style
174             * Single board
175             * YM2608B for music
176             * 4 VRAM chips for two 4-bit 512x256 layers
177 
178         Strata Bowling-style
179             * Single board
180             * YM2203C for music
181             * 3 VRAM chips for an 8-bit 256x256 video background
182               plus a 4-bit 256x256 video foreground layer
183 
184         Slick Shot-style
185             * Single board
186             * YM2203C for music
187             * 4 VRAM chips for two 8-bit 256x256 video pages
188             * additional Z80 and program ROM for sensor reading
189 
190         Hot Shots Tennis-style
191             * Single board
192             * YM3812 for music
193             * 8 VRAM chips for two 8-bit 512x256 video pages
194 
195         Rim Rockin' Basketball-style
196             * Separate main and sound boards
197             * HD63C09 @ 3MHz replaces 68B09 for main CPU
198             * YM3812 for music
199             * 8 VRAM chips for two 8-bit 512x256 video pages
200 
201         Ninja Clowns-style
202             * Separate main and sound boards
203             * 68000 @ 12MHz replaces 68B09 for main CPU
204             * YM3812 for music
205             * 8 VRAM chips for two 8-bit 512x256 video pages
206 
207         Golden Tee Golf II-style
208             * Separate main and sound boards
209             * YM3812 for music
210             * I haven't see one yet, so I can't provide additional details
211 
212 ****************************************************************************
213 
214     --------------------------------
215     Wheel Watcher (Wheel of Fortune)
216     --------------------------------
217 
218         +------------------------------------+-+
219         |    Bt476KP35                       | |
220         |      12MHz  DIPSW4                 | |
221         |(MT42C4064Z-10)                     | |
222         |(MT42C4064Z-10)                     | |
223         | MT42C4064Z-10                      | |
224         | MT42C4064Z-10                      | |
225         |                                    | |
226         |       TMS34061                     +-
227         |                                      |
228         |          ITV4400   ITVS              |
229         |                          YM2203C     |
230         |                              OKI6295 |
231         | (GROM4)  Battery                     |
232         |  GROM3    CDM6264LE12      SROM0     |
233         |  GROM2    WOF-PGM   HY6116           |
234         |  GROM1              WOFSND      8MHz |
235         |  GROM0                               |
236         |        MC68B09         MC68B09       |
237         +--------------------------------------+
238 
239         GROM0-3 = AM27C256
240         WOF-PGM = ???
241         WOFSND = AM27C256
242         SROM0 = AM27C010
243         ITVS = ???
244         MT42C4064Z = 64k x 4 VRAM (2 populated on Wheel of Fortune)
245         CDM6464 = 8k x 8 RAM
246         HY6116 = 2k x 8 RAM
247         Bt476 = 6-bit DAC
248         TMS34061 = video controller
249         ITV4400 = IT custom blitter
250 
251 
252     -------------
253     Grudge Match
254     ------------
255 
256         +------------------------------------+-+
257         | TMS34070NL                         | |
258         | TMS34070NL  DIPSW4                 | |
259         | TMS4461-15   8MHz                  | |
260         | TMS4461-15                         | |
261         | TMS4461-15                         | |
262         | TMS4461-15                         | |
263         |                                    | |
264         |       TMS34061                     +-
265         |                                      |
266         |          ITV4400                     |
267         |  GROM6                     SROM0     |
268         |  GROM5                               |
269         |  GROM4                               |
270         |  GROM3    MK40702B-20      YM2608B   |
271         |  GROM2    U5-PGM    MK6116           |
272         |  GROM1              U27-SND          |
273         |  GROM0                               |
274         |        MC68B09         MC68B09       |
275         +--------------------------------------+
276 
277         GROM0-6 = AM27C010-25
278         U5-PGM = D27512-25
279         U27-SND = 27C256-20
280         SROM0 = AM27C010-25
281         ITVS = ???
282         MT42C4064Z = 64k x 4 VRAM (2 populated on Wheel of Fortune)
283         MK40702B = zero-power RAM
284         MK6116 = 2k x 8 RAM
285         TMS34070NL = 16-color RAMDAC
286         TMS34061 = video controller
287         ITV4400 = IT custom blitter
288 
289 
290     ------------------------------
291     Strata Bowling/Golden Tee Golf
292     ------------------------------
293 
294         +---------------------------------+-+
295         |                       IMSG176   | |
296         | MT42C4064Z-10                   | |
297         | MT42C4064Z-10                   | |
298         | MT42C4064Z-10    12MHz          | |
299         |                                 | |
300         |       TMS34061         DIPSW4   | |
301         |                                 | |
302         |    ITV4400                      +-
303         |                                   |
304         |        Battery        ITVS        |
305         | (GROM5)                           |
306         | (GROM4)                           |
307         | (GROM3)   P5164                   |
308         |  GROM2   SBPROG   MS6516   SROM0  |
309         |  GROM1            SBSNDS          |
310         |  GROM0                      8MHz  |
311         |        MC68B09          MC68B09   |
312         +-----------------------------------+
313 
314         GROM0-3 = AM27C010
315         SBPROG = 27C256
316         SBSNDS = 27C256
317         SROM0 = AM27C010
318         ITVS = ???
319         MT42C4064Z = 64k x 4 VRAM
320         P5164 = 8k x 8 RAM
321         MS6516 = 2k x 8 RAM
322         IMSG176 = 6-bit DAC
323         TMS34061 = video controller
324         ITV4400 = IT custom blitter
325 
326 
327     ------------------------------
328     Slick Shot/Poker Dice/Dyno Bop
329     ------------------------------
330 
331         +------------------------------------+-+
332         |   Z80PGM   4Mhz      itvs5         | |
333         |            Z80       rev.1         | |
334         |                                    | |
335         | MT42C4064Z-10   MS176-50           | |
336         | MT42C4064Z-10                      | |
337         | MT42C4064Z-10   12MHz              | |
338         | MT42C4064Z-10           DIPSW4     | |
339         |                                    +-
340         |      TMS34061                        |
341         |                                      |
342         |         ITV4400    ITVS              |
343         |                          YM2203C     |
344         |                              OKI6295 |
345         | (GROM4)  Battery                     |
346         | (GROM3)   P5164S           SROM0     |
347         | (GROM2)   POOLPGM   P5116            |
348         |  GROM1             POOLSND      8MHz |
349         |  GROM0                               |
350         |        MC68B09         MC68B09       |
351         +--------------------------------------+
352 
353         (lower half is almost identical to Wheel of Fortune)
354         (top contains extra Z80 and logic)
355         (Z80 and ROM not populated on Poker Dice)
356 
357         GROM0-1 = AM27C010
358         POOLPGM = ???
359         POOLSND = AM27C256
360         SROM0 = 27C512
361         ITVS = ???
362         MT42C4064Z = 64k x 4 VRAM
363         P5164S = 8k x 8 RAM
364         P5116 = 2k x 8 RAM
365         MS176 = 6-bit DAC
366         TMS34061 = video controller
367         ITV4400 = IT custom blitter
368 
369 
370     -----------------------------------
371     Hot Shots Tennis/Peggle/Neck & Neck
372     -----------------------------------
373     (Likely Arlington Horse Racing as well)
374 
375         +------------------------------------------------+-+
376         | MT42C4064Z-10    8MHz     MS176-50             | |
377         | MT42C4064Z-10                                  | |
378         | MT42C4064Z-10                                  | |
379         | MT42C4064Z-10                                  | |
380         | MT42C4064Z-10                                  | |
381         | MT42C4064Z-10   TMS34061    DIPSW4             | |
382         | MT42C4064Z-10           12MHz                  +-
383         | MT42C4064Z-10                                    |
384         |                 ITV4400                          |
385         |  (GROM5)                        YM3812  OKI6295  |
386         |  (GROM4) Battery  ITVS-3        MS6516           |
387         |  (GROM3)   P5164              PEG-SND    SROM0   |
388         |   GROM2    PEGGLE.BIN                    6821    |
389         |   GROM1                                          |
390         |   GROM0                                          |
391         |         EF68B09     8MHz      EF68B09            |
392         +--------------------------------------------------+
393 
394         GROM0-5 = AM27C010
395         POOLPGM = ???
396         POOLSND = AM27C256
397         SROM0 = 27C512
398         ITVS = ???
399         MT42C4064Z = 64k x 4 VRAM
400         P5164S = 8k x 8 RAM
401         P5116 = 2k x 8 RAM
402         MS176 = 6-bit DAC
403         TMS34061 = video controller
404         ITV4400 = IT custom blitter
405 
406 
407     ----------------------
408     Rim Rockin' Basketball
409     ----------------------
410 
411         Lower board
412 
413         +--------------- --------------------------------+
414         |               |                                |
415         +---------------+   MT42C4064Z-10  MT42C4064Z-10 |
416         |                   MT42C4064Z-10  MT42C4064Z-10 |
417         |      IMSG176      MT42C4064Z-10  MT42C4064Z-10 |
418         |                   MT42C4064Z-10  MT42C4064Z-10 |
419         |  DIPSW4 8MHz ITBP-1                            |
420         |                                                |
421         |    MS6264-10                                   |
422         |     RRB.BIM          TM34061       ITV4400     |
423         |         ITVS-2                                 |
424         |                      GROM02        GROM00      |
425         |  Battery                                       |
426         |  HD63C09   12MHz     GROM03        GROM01      |
427         +------------------------------------------------+
428 
429         GROM0-3 =
430         RRB.BIM =
431         ITVS-2 = ???
432         MT42C4064Z-10 = 64k x 4 VRAM
433         MS6264 = 8k x 8 RAM
434         IMSG176 = 6-bit DAC
435         TMS34061 = video controller
436         ITV4400 = IT custom blitter
437 
438 
439         Sound board
440 
441         +---------------------------------+
442         |         YM3812  OKI6295  SROM0  |
443         | ITVS-4 MS6516-10                |
444         |         NCSND                   |
445         |                                 |
446         |  EF68B09                        |
447         |                                 |
448         |   6522                          |
449         | P/N 1038 REV2                   |
450         +---------------------------------+
451 
452         SROM0 = M27C2001
453         NCSND = AM27C256
454         MS6516-10 = 2k x 8 RAM
455         6522 = VIA
456 
457 
458     ------------
459     Ninja Clowns
460     ------------
461 
462         Lower board
463 
464         +-----------------------------------------------------+-+-
465         |  MS6264   PROM1  (PROM3)   DIPSW4                   | |
466         |  MS6264   PROM0  (PROM2)                            | |
467         |                                                     | |
468         |  Battery        MC68000P12                          | |
469         |                                                     | |
470         |           12MHz   ITVS-5  ITMP-1                    | |
471         |                                                     | |
472         |  (GROM7)                                            +-
473         |  (GROM6)          8MHz                                |
474         |   GROM5                                      MS176-50 |
475         |   GROM4                                               |
476         |   GROM3   TMS34061   MT42C4064Z-10  MT42C4064Z-10     |
477         |   GROM2              MT42C4064Z-10  MT42C4064Z-10     |
478         |   GROM1   ITV4400    MT42C4064Z-10  MT42C4064Z-10     |
479         |   GROM0              MT42C4064Z-10  MT42C4064Z-10     |
480         | P/N 1029 REV3A                                        |
481         +-------------------------------------------------------+
482 
483         GROM0-5 = M27C2001
484         PROM0-1 = AM27C010
485         ITVS-5 = PAL16L8
486         ITMP-1 = PAL20R4
487         MT42C4064Z = 64k x 4 VRAM
488         MS6264 = 8k x 8 RAM
489         MS176 = 6-bit DAC
490         TMS34061 = video controller
491         ITV4400 = IT custom blitter
492 
493 
494         Sound board - same as Rim Rockin' Basketball
495 
496 ***************************************************************************/
497 
498 
499 #include "emu.h"
500 #include "includes/itech8.h"
501 
502 #include "cpu/m68000/m68000.h"
503 #include "cpu/m6809/hd6309.h"
504 #include "cpu/m6809/m6809.h"
505 #include "cpu/z80/z80.h"
506 #include "machine/6522via.h"
507 #include "machine/6821pia.h"
508 #include "machine/nvram.h"
509 #include "sound/2203intf.h"
510 #include "sound/2608intf.h"
511 #include "sound/3812intf.h"
512 #include "sound/okim6295.h"
513 
514 #include "speaker.h"
515 
516 
517 #define FULL_LOGGING    0
518 
519 #define CLOCK_8MHz      (8000000)
520 #define CLOCK_12MHz     (12000000)
521 
522 
523 
524 /*************************************
525  *
526  *  Interrupt handling
527  *
528  *************************************/
529 
update_interrupts(int periodic,int tms34061,int blitter)530 void itech8_state::update_interrupts(int periodic, int tms34061, int blitter)
531 {
532 	device_type main_cpu_type = m_maincpu->type();
533 
534 	/* update the states */
535 	if (periodic != -1) m_periodic_int = periodic;
536 	if (tms34061 != -1) m_tms34061_int = tms34061;
537 	if (blitter != -1) m_blitter_int = blitter;
538 
539 	/* handle the 6809 case */
540 	if (main_cpu_type == MC6809 || main_cpu_type == HD6309)
541 	{
542 		/* just modify lines that have changed */
543 		if (periodic != -1) m_maincpu->set_input_line(INPUT_LINE_NMI, periodic ? ASSERT_LINE : CLEAR_LINE);
544 		if (tms34061 != -1) m_maincpu->set_input_line(M6809_IRQ_LINE, tms34061 ? ASSERT_LINE : CLEAR_LINE);
545 		if (blitter != -1) m_maincpu->set_input_line(M6809_FIRQ_LINE, blitter ? ASSERT_LINE : CLEAR_LINE);
546 	}
547 
548 	/* handle the 68000 case */
549 	else
550 	{
551 		m_maincpu->set_input_line(2, m_blitter_int ? ASSERT_LINE : CLEAR_LINE);
552 		m_maincpu->set_input_line(3, m_periodic_int ? ASSERT_LINE : CLEAR_LINE);
553 	}
554 }
555 
556 
557 
558 /*************************************
559  *
560  *  Interrupt generation
561  *
562  *************************************/
563 
TIMER_CALLBACK_MEMBER(itech8_state::irq_off)564 TIMER_CALLBACK_MEMBER(itech8_state::irq_off)
565 {
566 	update_interrupts(0, -1, -1);
567 }
568 
569 
WRITE_LINE_MEMBER(itech8_state::generate_nmi)570 WRITE_LINE_MEMBER(itech8_state::generate_nmi)
571 {
572 	if (state)
573 	{
574 		/* signal the NMI */
575 		update_interrupts(1, -1, -1);
576 		m_irq_off_timer->adjust(attotime::from_usec(1));
577 
578 		if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", m_screen->vpos());
579 	}
580 }
581 
WRITE_LINE_MEMBER(itech8_state::ninclown_irq)582 WRITE_LINE_MEMBER(itech8_state::ninclown_irq)
583 {
584 	// definitely doesn't like the generate_nmi code, so we just generate VBlank irq here instead
585 	if (state)
586 		m_maincpu->set_input_line(3, HOLD_LINE);
587 }
588 
589 
nmi_ack_w(uint8_t data)590 void itech8_state::nmi_ack_w(uint8_t data)
591 {
592 /* doesn't seem to hold for every game (e.g., hstennis) */
593 /*  m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);*/
594 }
595 
596 
597 
598 /*************************************
599  *
600  *  Machine initialization
601  *
602  *************************************/
603 
604 
605 
606 
MACHINE_START_MEMBER(itech8_state,sstrike)607 MACHINE_START_MEMBER(itech8_state,sstrike)
608 {
609 	/* we need to update behind the beam as well */
610 	m_behind_beam_update_timer = timer_alloc(TIMER_BEHIND_BEAM_UPDATE);
611 	m_behind_beam_update_timer->adjust(m_screen->time_until_pos(0), 32);
612 
613 	itech8_state::machine_start();
614 }
615 
machine_start()616 void itech8_state::machine_start()
617 {
618 	if (m_mainbank)
619 	{
620 		if (memregion("maincpu")->bytes() > 0x10000)
621 		{
622 			// rimrockn uses different banking address and more banks
623 			m_mainbank->configure_entries(0, 4, memregion("maincpu")->base() + 0x0000, 0x4000);
624 		}
625 		else
626 		{
627 			m_mainbank->configure_entries(0, 2, memregion("maincpu")->base() + 0x0000, 0x4000);
628 		}
629 	}
630 
631 	if (m_fixed)
632 	{
633 		uint8_t* fixedstart = memregion("maincpu")->base() + memregion("maincpu")->bytes() - 0x8000; // last 0x8000 bytes of the ROM
634 		m_fixed->configure_entry(0, fixedstart);
635 		m_fixed->set_entry(0);
636 	}
637 
638 	m_irq_off_timer = timer_alloc(TIMER_IRQ_OFF);
639 	m_blitter_done_timer = timer_alloc(TIMER_BLITTER_DONE);
640 
641 	save_item(NAME(m_grom_bank));
642 	save_item(NAME(m_blitter_int));
643 	save_item(NAME(m_tms34061_int));
644 	save_item(NAME(m_periodic_int));
645 	save_item(NAME(m_pia_porta_data));
646 	save_item(NAME(m_pia_portb_data));
647 }
648 
machine_start()649 void grmatch_state::machine_start()
650 {
651 	itech8_state::machine_start();
652 
653 	m_palette_timer = timer_alloc(TIMER_PALETTE);
654 }
655 
machine_reset()656 void itech8_state::machine_reset()
657 {
658 	/* make sure bank 0 is selected */
659 	if (m_mainbank)
660 	{
661 		m_mainbank->set_entry(0 ^ m_bankxor);
662 		m_maincpu->reset();
663 	}
664 
665 	/* set the visible area */
666 	if (m_visarea.width() > 1)
667 	{
668 		m_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y);
669 		m_visarea.set(0, 0, 0, 0);
670 	}
671 }
672 
machine_reset()673 void grmatch_state::machine_reset()
674 {
675 	itech8_state::machine_reset();
676 	m_palette_timer->adjust(m_screen->time_until_pos(m_screen->vpos()+1));
677 }
678 
device_timer(emu_timer & timer,device_timer_id id,int param,void * ptr)679 void itech8_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
680 {
681 	switch (id)
682 	{
683 	case TIMER_IRQ_OFF:
684 		irq_off(ptr, param);
685 		break;
686 	case TIMER_BEHIND_BEAM_UPDATE:
687 		behind_the_beam_update(ptr, param);
688 		break;
689 	case TIMER_BLITTER_DONE:
690 		blitter_done(ptr, param);
691 		break;
692 	case TIMER_DELAYED_Z80_CONTROL:
693 		delayed_z80_control_w(ptr, param);
694 		break;
695 	default:
696 		throw emu_fatalerror("Unknown id in itech8_state::device_timer");
697 	}
698 }
699 
700 
701 /*************************************
702  *
703  *  Bank switching
704  *
705  *************************************/
706 
TIMER_CALLBACK_MEMBER(itech8_state::behind_the_beam_update)707 TIMER_CALLBACK_MEMBER(itech8_state::behind_the_beam_update)
708 {
709 	int scanline = param >> 8;
710 	int interval = param & 0xff;
711 
712 	/* force a partial update to the current scanline */
713 	m_screen->update_partial(scanline);
714 
715 	/* advance by the interval, and wrap to 0 */
716 	scanline += interval;
717 	if (scanline >= 256) scanline = 0;
718 
719 	/* set a new timer */
720 	m_behind_beam_update_timer->adjust(m_screen->time_until_pos(scanline), (scanline << 8) + interval);
721 }
722 
723 
724 
725 /*************************************
726  *
727  *  Bank switching
728  *
729  *************************************/
730 
blitter_bank_w(offs_t offset,uint8_t data)731 void itech8_state::blitter_bank_w(offs_t offset, uint8_t data)
732 {
733 	/* bit 0x20 on address 7 controls CPU banking */
734 	if (offset / 2 == 7)
735 		m_mainbank->set_entry(((data >> 5) & 1) ^ m_bankxor);
736 
737 	/* the rest is handled by the video hardware */
738 	blitter_w(offset, data);
739 }
740 
741 
rimrockn_bank_w(uint8_t data)742 void itech8_state::rimrockn_bank_w(uint8_t data)
743 {
744 	/* banking is controlled here instead of by the blitter output */
745 	m_mainbank->set_entry(data & 3);
746 }
747 
748 
749 
750 /*************************************
751  *
752  *  Input handling
753  *
754  *************************************/
755 
READ_LINE_MEMBER(itech8_state::special_r)756 READ_LINE_MEMBER(itech8_state::special_r)
757 {
758 	return m_pia_portb_data & 0x01;
759 }
760 
761 
762 /*************************************
763  *
764  *  6821 PIA handling
765  *
766  *************************************/
767 
pia_porta_out(uint8_t data)768 void itech8_state::pia_porta_out(uint8_t data)
769 {
770 	logerror("PIA port A write = %02x\n", data);
771 	m_pia_porta_data = data;
772 }
773 
774 
pia_portb_out(uint8_t data)775 void itech8_state::pia_portb_out(uint8_t data)
776 {
777 	logerror("PIA port B write = %02x\n", data);
778 
779 	/* bit 0 provides feedback to the main CPU */
780 	/* bit 4 controls the ticket dispenser */
781 	/* bit 5 controls the coin counter */
782 	/* bit 6 controls the diagnostic sound LED */
783 	m_pia_portb_data = data;
784 	m_ticket->motor_w(BIT(data, 4));
785 	machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
786 }
787 
788 
ym2203_portb_out(uint8_t data)789 void itech8_state::ym2203_portb_out(uint8_t data)
790 {
791 	logerror("YM2203 port B write = %02x\n", data);
792 
793 	/* bit 0 provides feedback to the main CPU */
794 	/* bit 5 controls the coin counter */
795 	/* bit 6 controls the diagnostic sound LED */
796 	/* bit 7 controls the ticket dispenser */
797 	m_pia_portb_data = data;
798 	m_ticket->motor_w(BIT(data, 7));
799 	machine().bookkeeping().coin_counter_w(0, BIT(data, 5));
800 }
801 
802 
803 
804 /*************************************
805  *
806  *  Sound communication
807  *
808  *************************************/
809 
810 
gtg2_sound_data_w(uint8_t data)811 void itech8_state::gtg2_sound_data_w(uint8_t data)
812 {
813 	/* on the later GTG2 board, they swizzle the data lines */
814 	data = ((data & 0x80) >> 7) |
815 			((data & 0x5d) << 1) |
816 			((data & 0x20) >> 3) |
817 			((data & 0x02) << 5);
818 	m_soundlatch->write(data);
819 }
820 
821 
grom_bank_w(uint8_t data)822 void itech8_state::grom_bank_w(uint8_t data)
823 {
824 	m_grom_bank = data;
825 }
826 
827 
828 
829 /*************************************
830  *
831  *  16-bit-specific handlers
832  *
833  *************************************/
834 
rom_constant_r(offs_t offset)835 uint16_t itech8_state::rom_constant_r(offs_t offset)
836 {
837 //  Ninja Clowns reads this area for program ROM checksum
838 	logerror("Read ROM constant area %04x\n",offset*2+0x40000);
839 	return 0xd840;
840 }
841 
ninclown_palette_r(offs_t offset)842 uint8_t itech8_state::ninclown_palette_r(offs_t offset)
843 {
844 	return m_tlc34076->read(offset / 16);
845 }
846 
ninclown_palette_w(offs_t offset,uint8_t data)847 void itech8_state::ninclown_palette_w(offs_t offset, uint8_t data)
848 {
849 	m_tlc34076->write(offset / 16, data);
850 }
851 
852 
853 
854 /*************************************
855  *
856  *  Main CPU memory handlers
857  *
858  *************************************/
859 
860 /*------ common layout with TMS34061 at 0000 ------*/
common_lo_map(address_map & map)861 void itech8_state::common_lo_map(address_map &map)
862 {
863 	map(0x0000, 0x0fff).rw(FUNC(itech8_state::tms34061_r), FUNC(itech8_state::tms34061_w));
864 	map(0x1100, 0x1100).nopw();
865 	map(0x1120, 0x1120).w(m_soundlatch, FUNC(generic_latch_8_device::write));
866 	map(0x1140, 0x1140).portr("40").w(FUNC(itech8_state::grom_bank_w));
867 	map(0x1160, 0x1160).portr("60").w(FUNC(itech8_state::page_w));
868 	map(0x1180, 0x1180).portr("80").w(m_tms34061, FUNC(tms34061_device::latch_w));
869 	map(0x11a0, 0x11a0).w(FUNC(itech8_state::nmi_ack_w));
870 	map(0x11c0, 0x11df).rw(FUNC(itech8_state::blitter_r), FUNC(itech8_state::blitter_bank_w));
871 	map(0x11e0, 0x11ff).w(FUNC(itech8_state::palette_w));
872 	map(0x2000, 0x3fff).ram().share("nvram");
873 	map(0x4000, 0x7fff).bankr("mainbank");
874 	map(0x8000, 0xffff).bankr("fixed"); // non-banked area
875 }
876 
877 
878 /*------ common layout with TMS34061 at 1000 ------*/
common_hi_map(address_map & map)879 void itech8_state::common_hi_map(address_map &map)
880 {
881 	map(0x0100, 0x0100).nopw();
882 	map(0x0120, 0x0120).w(m_soundlatch, FUNC(generic_latch_8_device::write));
883 	map(0x0140, 0x0140).portr("40").w(FUNC(itech8_state::grom_bank_w));
884 	map(0x0160, 0x0160).portr("60").w(FUNC(itech8_state::page_w));
885 	map(0x0180, 0x0180).portr("80").w(m_tms34061, FUNC(tms34061_device::latch_w));
886 	map(0x01a0, 0x01a0).w(FUNC(itech8_state::nmi_ack_w));
887 	map(0x01c0, 0x01df).rw(FUNC(itech8_state::blitter_r), FUNC(itech8_state::blitter_bank_w));
888 	map(0x01e0, 0x01ff).w(FUNC(itech8_state::palette_w));
889 	map(0x1000, 0x1fff).rw(FUNC(itech8_state::tms34061_r), FUNC(itech8_state::tms34061_w));
890 	map(0x2000, 0x3fff).ram().share("nvram");
891 	map(0x4000, 0x7fff).bankr("mainbank");
892 	map(0x8000, 0xffff).bankr("fixed"); // non-banked area
893 }
894 
895 
896 /*------ Grudge Match layout ------*/
grmatch_map(address_map & map)897 void grmatch_state::grmatch_map(address_map &map)
898 {
899 	itech8_state::common_hi_map(map);
900 	map(0x0160, 0x0160).w(FUNC(grmatch_state::palette_w));
901 	map(0x0180, 0x0180).w(FUNC(grmatch_state::xscroll_w));
902 	map(0x01e0, 0x01ff).nopw();
903 }
904 
905 
906 /*------ Slick Shot layout ------*/
slikshot_map(address_map & map)907 void itech8_state::slikshot_map(address_map &map)
908 {
909 	common_hi_map(map);
910 	map(0x0180, 0x0180).r(FUNC(itech8_state::slikshot_z80_r));
911 	map(0x01cf, 0x01cf).rw(FUNC(itech8_state::slikshot_z80_control_r), FUNC(itech8_state::slikshot_z80_control_w));
912 }
913 
914 
915 /*------ Super Strike Bowling layout ------*/
sstrike_map(address_map & map)916 void itech8_state::sstrike_map(address_map &map)
917 {
918 	common_lo_map(map);
919 	map(0x1180, 0x1180).r(FUNC(itech8_state::slikshot_z80_r));
920 	map(0x11cf, 0x11cf).rw(FUNC(itech8_state::slikshot_z80_control_r), FUNC(itech8_state::slikshot_z80_control_w));
921 }
922 
923 
924 /*------ Rim Rockin' Basketball layout ------*/
rimrockn_map(address_map & map)925 void itech8_state::rimrockn_map(address_map &map)
926 {
927 	common_hi_map(map);
928 	map(0x0161, 0x0161).portr("161");
929 	map(0x0162, 0x0162).portr("162");
930 	map(0x0163, 0x0163).portr("163");
931 	map(0x0164, 0x0164).portr("164");
932 	map(0x0165, 0x0165).portr("165");
933 	map(0x01a0, 0x01a0).w(FUNC(itech8_state::rimrockn_bank_w));
934 	map(0x01c0, 0x01df).w(FUNC(itech8_state::blitter_w));
935 }
936 
937 
938 /*------ Golden Tee Golf II 1992 layout ------*/
gtg2_map(address_map & map)939 void itech8_state::gtg2_map(address_map &map)
940 {
941 	map(0x0100, 0x0100).portr("40").w(FUNC(itech8_state::nmi_ack_w));
942 	map(0x0120, 0x0120).portr("60").w(FUNC(itech8_state::page_w));
943 	map(0x0140, 0x015f).w(FUNC(itech8_state::palette_w));
944 	map(0x0140, 0x0140).portr("80");
945 	map(0x0160, 0x0160).w(FUNC(itech8_state::grom_bank_w));
946 	map(0x0180, 0x019f).rw(FUNC(itech8_state::blitter_r), FUNC(itech8_state::blitter_bank_w));
947 	map(0x01c0, 0x01c0).w(FUNC(itech8_state::gtg2_sound_data_w));
948 	map(0x01e0, 0x01e0).w(m_tms34061, FUNC(tms34061_device::latch_w));
949 	map(0x1000, 0x1fff).rw(FUNC(itech8_state::tms34061_r), FUNC(itech8_state::tms34061_w));
950 	map(0x2000, 0x3fff).ram().share("nvram");
951 	map(0x4000, 0x7fff).bankr("mainbank");
952 	map(0x8000, 0xffff).bankr("fixed"); // non-banked area
953 }
954 
955 /*------ Ninja Clowns layout ------*/
ninclown_map(address_map & map)956 void itech8_state::ninclown_map(address_map &map)
957 {
958 	map(0x000000, 0x00007f).ram().region("maincpu", 0);
959 	map(0x000080, 0x003fff).ram().share("nvram");
960 	map(0x004000, 0x03ffff).rom();
961 	map(0x040000, 0x07ffff).r(FUNC(itech8_state::rom_constant_r));
962 	map(0x100080, 0x100080).w(m_soundlatch, FUNC(generic_latch_8_device::write));
963 	map(0x100100, 0x100100).w(FUNC(itech8_state::grom_bank_w));
964 	map(0x100100, 0x100101).portr("40");
965 	map(0x100180, 0x100180).lw8(NAME([this](u8 data){ page_w(~data); }));
966 	map(0x100180, 0x100181).portr("60");
967 	map(0x100240, 0x100240).w(m_tms34061, FUNC(tms34061_device::latch_w));
968 	map(0x100280, 0x100281).portr("80").nopw();
969 	map(0x100300, 0x10031f).rw(FUNC(itech8_state::blitter_r), FUNC(itech8_state::blitter_w));
970 	map(0x100380, 0x1003ff).rw(FUNC(itech8_state::ninclown_palette_r), FUNC(itech8_state::ninclown_palette_w)).umask16(0xff00);
971 	map(0x110000, 0x110fff).rw(FUNC(itech8_state::tms34061_r), FUNC(itech8_state::tms34061_w));
972 }
973 
974 
975 
976 /*************************************
977  *
978  *  Sound CPU memory handlers
979  *
980  *************************************/
981 
982 /*------ YM2203-based sound ------*/
sound2203_map(address_map & map)983 void itech8_state::sound2203_map(address_map &map)
984 {
985 	map(0x0000, 0x0000).nopw();
986 	map(0x1000, 0x1000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
987 	map(0x2000, 0x2001).mirror(0x0002).rw("ymsnd", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
988 	map(0x3000, 0x37ff).ram();
989 	map(0x4000, 0x4000).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
990 	map(0x8000, 0xffff).rom();
991 }
992 
993 
994 /*------ YM2608B-based sound ------*/
sound2608b_map(address_map & map)995 void itech8_state::sound2608b_map(address_map &map)
996 {
997 	map(0x1000, 0x1000).nopw();
998 	map(0x2000, 0x2000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
999 	map(0x4000, 0x4003).rw("ymsnd", FUNC(ym2608_device::read), FUNC(ym2608_device::write));
1000 	map(0x6000, 0x67ff).ram();
1001 	map(0x8000, 0xffff).rom();
1002 }
1003 
1004 
1005 /*------ YM3812-based sound ------*/
sound3812_map(address_map & map)1006 void itech8_state::sound3812_map(address_map &map)
1007 {
1008 	map(0x0000, 0x0000).nopw();
1009 	map(0x1000, 0x1000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
1010 	map(0x2000, 0x2001).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
1011 	map(0x3000, 0x37ff).ram();
1012 	map(0x4000, 0x4000).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
1013 	map(0x5000, 0x5003).rw("pia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
1014 	map(0x8000, 0xffff).rom();
1015 }
1016 
1017 
1018 /*------ external YM3812-based sound board ------*/
sound3812_external_map(address_map & map)1019 void itech8_state::sound3812_external_map(address_map &map)
1020 {
1021 	map(0x0000, 0x0000).nopw();
1022 	map(0x1000, 0x1000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
1023 	map(0x2000, 0x2001).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
1024 	map(0x3000, 0x37ff).ram();
1025 	map(0x4000, 0x4000).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
1026 	map(0x5000, 0x500f).m("via6522_0", FUNC(via6522_device::map));
1027 	map(0x8000, 0xffff).rom();
1028 }
1029 
1030 
1031 
1032 /*************************************
1033  *
1034  *  Other CPU memory handlers
1035  *
1036  *************************************/
1037 
slikz80_mem_map(address_map & map)1038 void itech8_state::slikz80_mem_map(address_map &map)
1039 {
1040 	map(0x0000, 0x7ff).rom();
1041 }
1042 
1043 
slikz80_io_map(address_map & map)1044 void itech8_state::slikz80_io_map(address_map &map)
1045 {
1046 	map.global_mask(0xff);
1047 	map(0x00, 0x00).rw(FUNC(itech8_state::slikz80_port_r), FUNC(itech8_state::slikz80_port_w));
1048 }
1049 
1050 
1051 
1052 /*************************************
1053  *
1054  *  Port definitions
1055  *
1056  *************************************/
1057 
1058 static INPUT_PORTS_START( wfortune )
1059 	PORT_START("40")
PORT_READ_LINE_MEMBER(itech8_state,special_r)1060 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1061 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1062 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1063 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1064 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1065 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1066 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1067 
1068 	PORT_START("60")
1069 	PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN )
1070 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Blue Player") PORT_PLAYER(3)
1071 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Yellow Player") PORT_PLAYER(2)
1072 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Red Player") PORT_PLAYER(1)
1073 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
1074 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1075 
1076 	PORT_START("80")
1077 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1078 
1079 	PORT_START("AN_D")  /* analog D */
1080 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(75) PORT_KEYDELTA(10) PORT_PLAYER(1)
1081 
1082 	PORT_START("AN_F")  /* analog F */
1083 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(75) PORT_KEYDELTA(10) PORT_COCKTAIL PORT_PLAYER(2)
1084 INPUT_PORTS_END
1085 
1086 
1087 static INPUT_PORTS_START( grmatch )
1088 	PORT_START("40")
1089 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1090 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1091 	PORT_DIPNAME( 0x08, 0x08, "Adjustments Lockout" )
1092 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1093 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1094 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) )
1095 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
1096 	PORT_DIPSETTING(    0x10, DEF_STR( 1C_1C ) )
1097 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Difficulty ) )
1098 	PORT_DIPSETTING(    0x20, "1" )
1099 	PORT_DIPSETTING(    0x00, "3" )
1100 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
1101 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1102 
1103 	PORT_START("60")
1104 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1105 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1106 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1107 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1108 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1109 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1110 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
1111 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1112 
1113 	PORT_START("80")
1114 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1115 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1116 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1117 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1118 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1119 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1120 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1121 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1122 INPUT_PORTS_END
1123 
1124 
1125 static INPUT_PORTS_START( stratab )
1126 	PORT_START("40")
1127 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1128 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1129 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1130 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1131 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1132 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1133 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1134 
1135 	PORT_START("60")
1136 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Right Hook") PORT_COCKTAIL PORT_PLAYER(2)
1137 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Left Hook") PORT_COCKTAIL PORT_PLAYER(2)
1138 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Right Hook") PORT_PLAYER(1)
1139 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Left Hook") PORT_PLAYER(1)
1140 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1141 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1142 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1143 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1144 
1145 	PORT_START("80")
1146 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1147 
1148 	PORT_START("AN_C")  /* analog C */
1149 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1)
1150 
1151 	PORT_START("AN_D")  /* analog D */
1152 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1153 
1154 	PORT_START("AN_E")  /* analog E */
1155 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2)
1156 
1157 	PORT_START("AN_F")  /* analog F */
1158 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2)
1159 INPUT_PORTS_END
1160 
1161 static INPUT_PORTS_START( stratabs )
1162 	PORT_INCLUDE( stratab )
1163 
1164 	PORT_START("FAKEX") /* fake */
1165 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1)
1166 
1167 	PORT_START("FAKEY") /* fake */
1168 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1169 INPUT_PORTS_END
1170 
1171 
1172 
1173 CUSTOM_INPUT_MEMBER(itech8_state::gtg_mux)
1174 {
1175 	return m_p1->read() & m_p2->read();
1176 }
1177 
1178 static INPUT_PORTS_START( gtg )
1179 	PORT_START("40")
PORT_READ_LINE_MEMBER(itech8_state,special_r)1180 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1181 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1182 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1183 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1184 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1185 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1186 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1187 
1188 	PORT_START("60")
1189 	/* it is still unknown how the second player inputs are muxed in */
1190 	/* currently we map both sets of controls to the same inputs */
1191 	PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(itech8_state, gtg_mux)
1192 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1193 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1194 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1195 
1196 	PORT_START("80")
1197 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1198 
1199 	PORT_START("P1")
1200 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1201 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1202 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1203 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1204 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Swing") PORT_PLAYER(1)
1205 
1206 	PORT_START("P2")
1207 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_PLAYER(2)
1208 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_PLAYER(2)
1209 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_PLAYER(2)
1210 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_PLAYER(2)
1211 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Swing") PORT_COCKTAIL PORT_PLAYER(2)
1212 INPUT_PORTS_END
1213 
1214 
1215 static INPUT_PORTS_START( gtgt )
1216 	PORT_START("40")
1217 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1218 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1219 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1220 
1221 	PORT_START("60")
1222 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
1223 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1224 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Face Right") PORT_PLAYER(1)
1225 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Face Left") PORT_PLAYER(1)
1226 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1227 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1228 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1229 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1230 
1231 	PORT_START("80")
1232 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1233 
1234 	PORT_START("AN_C")  /* analog C */
1235 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1)
1236 
1237 	PORT_START("AN_D")  /* analog D */
1238 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1239 INPUT_PORTS_END
1240 
1241 
1242 static INPUT_PORTS_START( gtg2t )
1243 	PORT_START("40")
1244 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1245 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1246 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1247 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1248 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1249 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1250 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1251 
1252 	PORT_START("60")
1253 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Face Right") PORT_COCKTAIL PORT_PLAYER(2)
1254 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Face Left") PORT_COCKTAIL PORT_PLAYER(2)
1255 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Face Right") PORT_PLAYER(1)
1256 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Face Left") PORT_PLAYER(1)
1257 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1258 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
1259 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1260 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1261 
1262 	PORT_START("80")
1263 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1264 
1265 	PORT_START("AN_C")  /* analog C */
1266 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1)
1267 
1268 	PORT_START("AN_D")  /* analog D */
1269 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1270 
1271 	PORT_START("AN_E")  /* analog E */
1272 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2)
1273 
1274 	PORT_START("AN_F")  /* analog F */
1275 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2)
1276 INPUT_PORTS_END
1277 
1278 
1279 static INPUT_PORTS_START( slikshot )
1280 	PORT_START("40")
1281 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1282 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1283 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1284 
1285 	PORT_START("60")
1286 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1287 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1288 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )
1289 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow")
1290 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Red")
1291 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
1292 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Green")
1293 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1294 
1295 	PORT_START("80")
1296 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1297 
1298 	PORT_START("FAKEX") /* fake */
1299 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1)
1300 
1301 	PORT_START("FAKEY") /* fake */
1302 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1303 INPUT_PORTS_END
1304 
1305 
1306 static INPUT_PORTS_START( dynobop )
1307 	PORT_START("40")
1308 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1309 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1310 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1311 
1312 	PORT_START("60")
1313 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM )   /* ball gate */
1314 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1315 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )   /* ball detect */
1316 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
1317 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1318 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
1319 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
1320 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1321 
1322 	PORT_START("80")
1323 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1324 
1325 	PORT_START("FAKEX") /* fake */
1326 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1)
1327 
1328 	PORT_START("FAKEY") /* fake */
1329 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1330 INPUT_PORTS_END
1331 
1332 
1333 static INPUT_PORTS_START( sstrike )
1334 	PORT_START("40")
1335 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1336 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1337 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1338 
1339 	PORT_START("60")
1340 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1341 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1342 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )
1343 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Left Hook")
1344 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Hook")
1345 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
1346 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
1347 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1348 
1349 	PORT_START("80")
1350 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1351 
1352 	PORT_START("FAKEX") /* fake */
1353 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1)
1354 
1355 	PORT_START("FAKEY") /* fake */
1356 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1357 INPUT_PORTS_END
1358 
1359 
1360 static INPUT_PORTS_START( pokrdice )
1361 	PORT_START("40")
1362 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1363 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Lower Right") PORT_CODE(KEYCODE_3_PAD)
1364 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
1365 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1366 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1367 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1368 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1369 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1370 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1371 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED )
1372 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1373 
1374 	PORT_START("60")
1375 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Upper Right") PORT_CODE(KEYCODE_9_PAD)
1376 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1377 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Middle") PORT_CODE(KEYCODE_5_PAD)
1378 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Lower Left") PORT_CODE(KEYCODE_1_PAD)
1379 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Raise")
1380 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Upper Left") PORT_CODE(KEYCODE_7_PAD)
1381 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Play")
1382 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1383 
1384 	PORT_START("80")
1385 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1386 INPUT_PORTS_END
1387 
1388 
1389 static INPUT_PORTS_START( hstennis )
1390 	PORT_START("40")
1391 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1392 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1393 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
1394 	PORT_DIPSETTING(    0x08, DEF_STR( Upright ) )
1395 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1396 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )  /* see code at fbb5 */
1397 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1398 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1399 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED )
1400 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1401 
1402 	PORT_START("60")
1403 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1404 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Soft") PORT_PLAYER(1)
1405 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1406 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1407 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1408 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1409 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hard") PORT_PLAYER(1)
1410 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1411 
1412 	PORT_START("80")
1413 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1414 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Soft") PORT_PLAYER(2)
1415 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1416 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1417 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1418 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1419 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hard") PORT_PLAYER(2)
1420 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1421 INPUT_PORTS_END
1422 
1423 
1424 static INPUT_PORTS_START( arlingtn )
1425 	PORT_START("40")
1426 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1427 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1428 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )  /* see code at e23c */
1429 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1430 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1431 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1432 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1433 
1434 	PORT_START("60")
1435 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1436 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1437 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Place")
1438 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Win")
1439 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1440 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1441 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1442 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1443 
1444 	PORT_START("80")
1445 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1446 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNKNOWN )
1447 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Show")
1448 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Race")
1449 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Collect")
1450 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1451 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1452 INPUT_PORTS_END
1453 
1454 
1455 static INPUT_PORTS_START( peggle )
1456 	PORT_START("40")
1457 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1458 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED )
1459 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1460 
1461 	PORT_START("60")
1462 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1463 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1464 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1465 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1466 	PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN )
1467 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
1468 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1469 
1470 	PORT_START("80")
1471 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1472 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1473 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1474 INPUT_PORTS_END
1475 
1476 
1477 static INPUT_PORTS_START( pegglet )
1478 	PORT_START("40")
1479 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1480 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED )
1481 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1482 
1483 	PORT_START("60")
1484 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1485 	PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1486 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
1487 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1488 
1489 	PORT_START("80")
1490 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1491 	PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )
1492 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1493 
1494 	PORT_START("AN_D")      /* analog D */
1495 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1)
1496 INPUT_PORTS_END
1497 
1498 
1499 static INPUT_PORTS_START( neckneck )
1500 	PORT_START("40")
1501 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1502 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED )
1503 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )  /* see code at e23c */
1504 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1505 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1506 	PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED )
1507 	PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
1508 
1509 	PORT_START("60")
1510 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
1511 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1512 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Horse 3")
1513 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Horse 2")
1514 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1515 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Horse 1")
1516 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1517 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1518 
1519 	PORT_START("80")
1520 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 )
1521 	PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNKNOWN )
1522 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Horse 4")
1523 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Horse 6")
1524 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Horse 5")
1525 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1526 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1527 INPUT_PORTS_END
1528 
1529 
1530 static INPUT_PORTS_START( rimrockn )
1531 	PORT_START("40")
1532 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1533 
1534 	PORT_START("60")
1535 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
1536 	PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
1537 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1538 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1539 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 )
1540 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 )
1541 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1542 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(itech8_state, special_r) /* input from sound board */
1543 
1544 	PORT_START("80")
1545 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1546 
1547 	PORT_START("161")   /* special 161 */
1548 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1549 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Pass") PORT_PLAYER(1)
1550 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Shoot") PORT_PLAYER(1)
1551 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1552 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1553 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1554 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1555 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1556 
1557 	PORT_START("162")   /* special 162 */
1558 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1559 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Pass") PORT_PLAYER(2)
1560 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Shoot") PORT_PLAYER(2)
1561 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1562 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1563 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1564 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1565 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1566 
1567 	PORT_START("163")   /* special 163 */
1568 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P3 Shoot") PORT_PLAYER(3)
1569 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P3 Pass") PORT_PLAYER(3)
1570 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1571 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3)
1572 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3)
1573 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3)
1574 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3)
1575 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1576 
1577 	PORT_START("164")   /* special 164 */
1578 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Shoot") PORT_PLAYER(4)
1579 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P4 Pass") PORT_PLAYER(4)
1580 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1581 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
1582 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4)
1583 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
1584 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
1585 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1586 
1587 	PORT_START("165")   /* special 165 */
1588 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 )
1589 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )
1590 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 )
1591 	PORT_DIPNAME( 0x18, 0x00, DEF_STR( Cabinet ) )
1592 	PORT_DIPSETTING(    0x18, "1 player" )
1593 	PORT_DIPSETTING(    0x10, "2 players" )
1594 	PORT_DIPSETTING(    0x08, "3 players" )
1595 	PORT_DIPSETTING(    0x00, "4 players" )
1596 	PORT_DIPNAME( 0x20, 0x00, "Coin Slots" )
1597 	PORT_DIPSETTING(    0x04, "Common" )
1598 	PORT_DIPSETTING(    0x00, "Individual" )
1599 	PORT_DIPNAME( 0x40, 0x00, "Video Sync" )
1600 	PORT_DIPSETTING(    0x02, "Positive" )
1601 	PORT_DIPSETTING(    0x00, "Negative" )
1602 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1603 INPUT_PORTS_END
1604 
1605 
1606 static INPUT_PORTS_START( ninclown )
1607 	PORT_START("40")
1608 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 )
1609 	PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_LOW )
1610 	PORT_BIT( 0x0c00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1611 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN2 )
1612 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN1 )
1613 	PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1614 
1615 	PORT_START("60")
1616 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Throw") PORT_PLAYER(1)
1617 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START1 )
1618 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1619 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1620 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1621 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1622 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Kick") PORT_PLAYER(1)
1623 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Punch") PORT_PLAYER(1)
1624 
1625 	PORT_START("80")
1626 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Throw") PORT_PLAYER(2)
1627 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
1628 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1629 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1630 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1631 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1632 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Kick") PORT_PLAYER(2)
1633 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Punch") PORT_PLAYER(2)
1634 INPUT_PORTS_END
1635 
1636 
1637 static INPUT_PORTS_START( gtg2 )
1638 	PORT_START("40")
1639 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1640 	PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
1641 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1642 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1643 	PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
1644 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
1645 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
1646 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1647 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1648 
1649 	PORT_START("60")
1650 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
1651 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Face Right") PORT_PLAYER(1)
1652 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Face Left") PORT_PLAYER(1)
1653 	PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNUSED )
1654 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1655 
1656 	PORT_START("80")
1657 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
1658 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Face Right") PORT_COCKTAIL PORT_PLAYER(2)
1659 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Face Left") PORT_COCKTAIL PORT_PLAYER(2)
1660 	PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNUSED )
1661 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1662 
1663 	PORT_START("AN_C")  /* analog C */
1664 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1)
1665 
1666 	PORT_START("AN_D")  /* analog D */
1667 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
1668 
1669 	PORT_START("AN_E")  /* analog E */
1670 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2)
1671 
1672 	PORT_START("AN_F")  /* analog F */
1673 	PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2)
1674 INPUT_PORTS_END
1675 
1676 
1677 static INPUT_PORTS_START( gpgolf )
1678 	PORT_START("40")
1679 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1680 	PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
1681 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
1682 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
1683 	PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
1684 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
1685 	PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
1686 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
1687 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1688 
1689 	PORT_START("60")
1690 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
1691 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1692 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Swing") PORT_PLAYER(1)
1693 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1694 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1695 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1696 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1697 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1698 
1699 	PORT_START("80")
1700 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1701 INPUT_PORTS_END
1702 
1703 /*************************************
1704  *
1705  *  TMS34061 interfacing
1706  *
1707  *************************************/
1708 
1709 WRITE_LINE_MEMBER(itech8_state::generate_tms34061_interrupt)
1710 {
1711 	update_interrupts(-1, state, -1);
1712 
1713 	if (FULL_LOGGING && state) logerror("------------ DISPLAY INT (%d) --------------\n", m_screen->vpos());
1714 }
1715 
1716 /*************************************
1717  *
1718  *  Machine driver
1719  *
1720  *************************************/
1721 
1722 /************* core pieces ******************/
1723 
itech8_core_devices(machine_config & config)1724 void itech8_state::itech8_core_devices(machine_config &config)
1725 {
1726 	NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
1727 
1728 	TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
1729 
1730 	TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT);
1731 
1732 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1733 	m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
1734 	m_screen->set_refresh_hz(60);
1735 	m_screen->set_size(512, 263);
1736 	m_screen->screen_vblank().set(FUNC(itech8_state::generate_nmi));
1737 
1738 	TMS34061(config, m_tms34061, 0);
1739 	m_tms34061->set_rowshift(8);  /* VRAM address is (row << rowshift) | col */
1740 	m_tms34061->set_vram_size(itech8_state::VRAM_SIZE);
1741 	m_tms34061->int_callback().set(FUNC(itech8_state::generate_tms34061_interrupt));      /* interrupt gen callback */
1742 
1743 	SPEAKER(config, "mono").front_center();
1744 
1745 	GENERIC_LATCH_8(config, m_soundlatch, 0);
1746 	m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, M6809_IRQ_LINE);
1747 
1748 	via6522_device &via(VIA6522(config, "via6522_0", CLOCK_8MHz/4));
1749 	via.writepb_handler().set(FUNC(itech8_state::pia_portb_out));
1750 	via.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE);
1751 }
1752 
itech8_core_lo(machine_config & config)1753 void itech8_state::itech8_core_lo(machine_config &config)
1754 {
1755 	MC6809(config, m_maincpu, CLOCK_8MHz);
1756 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::common_lo_map);
1757 
1758 	itech8_core_devices(config);
1759 }
1760 
itech8_core_hi(machine_config & config)1761 void itech8_state::itech8_core_hi(machine_config &config)
1762 {
1763 	itech8_core_lo(config);
1764 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::common_hi_map);
1765 }
1766 
itech8_sound_ym2203(machine_config & config)1767 void itech8_state::itech8_sound_ym2203(machine_config &config)
1768 {
1769 	/* basic machine hardware */
1770 	MC6809(config, m_soundcpu, CLOCK_8MHz);
1771 	m_soundcpu->set_addrmap(AS_PROGRAM, &itech8_state::sound2203_map);
1772 
1773 	/* sound hardware */
1774 	ym2203_device &ymsnd(YM2203(config, "ymsnd", CLOCK_8MHz/2));
1775 	ymsnd.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE);
1776 	ymsnd.port_b_write_callback().set(FUNC(itech8_state::ym2203_portb_out));
1777 	ymsnd.add_route(0, "mono", 0.07);
1778 	ymsnd.add_route(1, "mono", 0.07);
1779 	ymsnd.add_route(2, "mono", 0.07);
1780 	ymsnd.add_route(3, "mono", 0.75);
1781 
1782 	okim6295_device &oki(OKIM6295(config, "oki", CLOCK_8MHz/8, okim6295_device::PIN7_HIGH)); // was /128, not /132, so unsure so pin 7 not verified
1783 	oki.add_route(ALL_OUTPUTS, "mono", 0.75);
1784 }
1785 
itech8_sound_ym2608b(machine_config & config)1786 void itech8_state::itech8_sound_ym2608b(machine_config &config)
1787 {
1788 	/* basic machine hardware */
1789 	MC6809(config, m_soundcpu, CLOCK_8MHz);
1790 	m_soundcpu->set_addrmap(AS_PROGRAM, &itech8_state::sound2608b_map);
1791 
1792 	/* sound hardware */
1793 	ym2608_device &ymsnd(YM2608(config, "ymsnd", CLOCK_8MHz));
1794 	ymsnd.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE);
1795 	ymsnd.port_b_write_callback().set(FUNC(itech8_state::ym2203_portb_out));
1796 	ymsnd.add_route(ALL_OUTPUTS, "mono", 0.75);
1797 }
1798 
itech8_sound_ym3812(machine_config & config)1799 void itech8_state::itech8_sound_ym3812(machine_config &config)
1800 {
1801 	/* basic machine hardware */
1802 	MC6809(config, m_soundcpu, CLOCK_8MHz);
1803 	m_soundcpu->set_addrmap(AS_PROGRAM, &itech8_state::sound3812_map);
1804 
1805 	pia6821_device &pia(PIA6821(config, "pia", 0));
1806 	pia.readpb_handler().set("ticket", FUNC(ticket_dispenser_device::line_r));
1807 	pia.writepa_handler().set(FUNC(itech8_state::pia_porta_out));
1808 	pia.writepb_handler().set(FUNC(itech8_state::pia_portb_out));
1809 
1810 	/* sound hardware */
1811 	ym3812_device &ymsnd(YM3812(config, "ymsnd", CLOCK_8MHz/2));
1812 	ymsnd.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE);
1813 	ymsnd.add_route(ALL_OUTPUTS, "mono", 0.75);
1814 
1815 	okim6295_device &oki(OKIM6295(config, "oki", CLOCK_8MHz/8, okim6295_device::PIN7_HIGH)); // was /128, not /132, so unsure so pin 7 not verified
1816 	oki.add_route(ALL_OUTPUTS, "mono", 0.75);
1817 }
1818 
itech8_sound_ym3812_external(machine_config & config)1819 void itech8_state::itech8_sound_ym3812_external(machine_config &config)
1820 {
1821 	/* basic machine hardware */
1822 	MC6809(config, m_soundcpu, CLOCK_8MHz);
1823 	m_soundcpu->set_addrmap(AS_PROGRAM, &itech8_state::sound3812_external_map);
1824 
1825 	/* sound hardware */
1826 	ym3812_device &ymsnd(YM3812(config, "ymsnd", CLOCK_8MHz/2));
1827 	ymsnd.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE);
1828 	ymsnd.add_route(ALL_OUTPUTS, "mono", 0.75);
1829 
1830 	okim6295_device &oki(OKIM6295(config, "oki", CLOCK_8MHz/8, okim6295_device::PIN7_HIGH)); // was /128, not /132, so unsure so pin 7 not verified
1831 	oki.add_route(ALL_OUTPUTS, "mono", 0.75);
1832 }
1833 
1834 
1835 /************* full drivers ******************/
1836 
wfortune(machine_config & config)1837 void itech8_state::wfortune(machine_config &config)
1838 {
1839 	itech8_core_hi(config);
1840 	itech8_sound_ym2203(config);
1841 
1842 	m_screen->set_visarea(0, 255, 0, 239);
1843 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2layer));
1844 }
1845 
grmatch(machine_config & config)1846 void grmatch_state::grmatch(machine_config &config)
1847 {
1848 	itech8_core_hi(config);
1849 	itech8_sound_ym2608b(config);
1850 
1851 	m_maincpu->set_addrmap(AS_PROGRAM, &grmatch_state::grmatch_map);
1852 
1853 	m_screen->set_visarea(0, 399, 0, 239);
1854 	m_screen->set_screen_update(FUNC(grmatch_state::screen_update));
1855 }
1856 
stratab_hi(machine_config & config)1857 void itech8_state::stratab_hi(machine_config &config)
1858 {
1859 	itech8_core_hi(config);
1860 	itech8_sound_ym2203(config);
1861 
1862 	m_screen->set_visarea(0, 255, 0, 239);
1863 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2layer));
1864 }
1865 
stratab_lo(machine_config & config)1866 void itech8_state::stratab_lo(machine_config &config)
1867 {
1868 	itech8_core_lo(config);
1869 	itech8_sound_ym2203(config);
1870 
1871 	m_screen->set_visarea(0, 255, 0, 239);
1872 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2layer));
1873 }
1874 
slikshot_hi(machine_config & config)1875 void itech8_state::slikshot_hi(machine_config &config)
1876 {
1877 	itech8_core_hi(config);
1878 	itech8_sound_ym2203(config);
1879 
1880 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::slikshot_map);
1881 
1882 	Z80(config, m_subcpu, CLOCK_8MHz/2);
1883 	m_subcpu->set_addrmap(AS_PROGRAM, &itech8_state::slikz80_mem_map);
1884 	m_subcpu->set_addrmap(AS_IO, &itech8_state::slikz80_io_map);
1885 
1886 	m_screen->set_visarea(0, 255, 0, 239);
1887 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_slikshot));
1888 	MCFG_VIDEO_START_OVERRIDE(itech8_state, slikshot)
1889 }
1890 
slikshot_lo(machine_config & config)1891 void itech8_state::slikshot_lo(machine_config &config)
1892 {
1893 	itech8_core_lo(config);
1894 	itech8_sound_ym2203(config);
1895 
1896 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::sstrike_map);
1897 
1898 	Z80(config, m_subcpu, CLOCK_8MHz/2);
1899 	m_subcpu->set_addrmap(AS_PROGRAM, &itech8_state::slikz80_mem_map);
1900 	m_subcpu->set_addrmap(AS_IO, &itech8_state::slikz80_io_map);
1901 
1902 	m_screen->set_visarea(0, 255, 0, 239);
1903 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_slikshot));
1904 	MCFG_VIDEO_START_OVERRIDE(itech8_state, slikshot)
1905 }
1906 
slikshot_lo_noz80(machine_config & config)1907 void itech8_state::slikshot_lo_noz80(machine_config &config)
1908 {
1909 	itech8_core_lo(config);
1910 	itech8_sound_ym2203(config);
1911 
1912 	m_screen->set_visarea(0, 255, 0, 239);
1913 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2page));
1914 }
1915 
sstrike(machine_config & config)1916 void itech8_state::sstrike(machine_config &config)
1917 {
1918 	slikshot_lo(config);
1919 	MCFG_MACHINE_START_OVERRIDE(itech8_state,sstrike)
1920 }
1921 
hstennis_hi(machine_config & config)1922 void itech8_state::hstennis_hi(machine_config &config)
1923 {
1924 	itech8_core_hi(config);
1925 	itech8_sound_ym3812(config);
1926 
1927 	m_screen->set_visarea(0, 399, 0, 239);
1928 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2page_large));
1929 }
1930 
hstennis_lo(machine_config & config)1931 void itech8_state::hstennis_lo(machine_config &config)
1932 {
1933 	itech8_core_lo(config);
1934 	itech8_sound_ym3812(config);
1935 
1936 	m_screen->set_visarea(0, 399, 0, 239);
1937 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2page_large));
1938 }
1939 
rimrockn(machine_config & config)1940 void itech8_state::rimrockn(machine_config &config)
1941 {
1942 	itech8_core_devices(config);
1943 	itech8_sound_ym3812_external(config);
1944 
1945 	HD6309(config, m_maincpu, CLOCK_12MHz);
1946 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::rimrockn_map);
1947 
1948 	m_screen->set_visarea(24, 375, 0, 239);
1949 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2page_large));
1950 }
1951 
ninclown(machine_config & config)1952 void itech8_state::ninclown(machine_config &config)
1953 {
1954 	itech8_core_devices(config);
1955 	itech8_sound_ym3812_external(config);
1956 
1957 	M68000(config, m_maincpu, CLOCK_12MHz);
1958 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::ninclown_map);
1959 
1960 	m_screen->set_visarea(64, 423, 0, 239);
1961 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2page_large));
1962 	m_screen->screen_vblank().set(FUNC(itech8_state::ninclown_irq));
1963 }
1964 
gtg2(machine_config & config)1965 void itech8_state::gtg2(machine_config &config)
1966 {
1967 	itech8_core_lo(config);
1968 	itech8_sound_ym3812_external(config);
1969 	m_maincpu->set_addrmap(AS_PROGRAM, &itech8_state::gtg2_map);
1970 
1971 	m_screen->set_visarea(0, 255, 0, 239);
1972 	m_screen->set_screen_update(FUNC(itech8_state::screen_update_2layer));
1973 }
1974 
1975 
1976 
1977 /*************************************
1978  *
1979  *  ROM definitions
1980  *
1981  *************************************/
1982 
1983 ROM_START( wfortune )
1984 	ROM_REGION( 0x10000, "maincpu", 0 )
CRC(bd984654)1985 	ROM_LOAD( "wofpgm.u5", 0x00000, 0x10000, CRC(bd984654) SHA1(8e16d2feb26e9a6f86c4a36bf0f03db80ded03f6) )
1986 
1987 	ROM_REGION( 0x10000, "soundcpu", 0 )
1988 	ROM_LOAD( "wof_snd-wof.u27", 0x08000, 0x8000, CRC(0a6aa5dc) SHA1(42eef40a4300d6d16d9e2af678432a02be05f104) )
1989 
1990 	ROM_REGION( 0xc0000, "grom", 0 )
1991 	ROM_LOAD( "grom0-wof.grom0", 0x00000, 0x10000, CRC(9a157b2c) SHA1(c349b41ba00cf6e2fec32872627c8cfdd8b5c1b9) )
1992 	ROM_LOAD( "grom1-wof.grom1", 0x10000, 0x10000, CRC(5064739b) SHA1(424e3f94333f8ca21ac39b64b684cf6b487164d3) )
1993 	ROM_LOAD( "grom2-wof.grom2", 0x20000, 0x10000, CRC(3d393b2b) SHA1(2c94d2dab7369c099c470cf96391b033f39add78) )
1994 	ROM_LOAD( "grom3-wof.grom3", 0x30000, 0x10000, CRC(117a2ce9) SHA1(8d601c1cf9f783a42617f13c6862a5835553ac4f) )
1995 
1996 	ROM_REGION( 0x40000, "oki", 0 )
1997 	ROM_LOAD( "wof_vr-sbom0.srom0", 0x00000, 0x20000, CRC(5c28c3fe) SHA1(eba64ede749fb26f9926f644d66860b54b4c76e7) ) /* Labeled as WOF VR-SBOM0  (yes it's actually "SBOM0") */
1998 ROM_END
1999 
2000 
2001 ROM_START( wfortunea )
2002 	ROM_REGION( 0x10000, "maincpu", 0 )
2003 	ROM_LOAD( "wof-pgm_r1.u5", 0x00000, 0x10000, CRC(c3d3eb21) SHA1(21137663afd19fba875e188640f0347fc8c5dcf0) ) /* Labeled as WOF-PGM R1 */
2004 
2005 	ROM_REGION( 0x10000, "soundcpu", 0 )
2006 	ROM_LOAD( "wof_snd-wof.u27", 0x08000, 0x8000, CRC(0a6aa5dc) SHA1(42eef40a4300d6d16d9e2af678432a02be05f104) )
2007 
2008 	ROM_REGION( 0xc0000, "grom", 0 )
2009 	ROM_LOAD( "grom0-wof.grom0", 0x00000, 0x10000, CRC(9a157b2c) SHA1(c349b41ba00cf6e2fec32872627c8cfdd8b5c1b9) )
2010 	ROM_LOAD( "grom1-wof.grom1", 0x10000, 0x10000, CRC(5064739b) SHA1(424e3f94333f8ca21ac39b64b684cf6b487164d3) )
2011 	ROM_LOAD( "grom2-wof.grom2", 0x20000, 0x10000, CRC(3d393b2b) SHA1(2c94d2dab7369c099c470cf96391b033f39add78) )
2012 	ROM_LOAD( "grom3-wof.grom3", 0x30000, 0x10000, CRC(117a2ce9) SHA1(8d601c1cf9f783a42617f13c6862a5835553ac4f) )
2013 
2014 	ROM_REGION( 0x40000, "oki", 0 )
2015 	ROM_LOAD( "wof_vr-sbom0.srom0", 0x00000, 0x20000, CRC(5c28c3fe) SHA1(eba64ede749fb26f9926f644d66860b54b4c76e7) ) /* Labeled as WOF VR-SBOM0  (yes it's actually "SBOM0") */
2016 ROM_END
2017 
2018 
2019 ROM_START( grmatch )
2020 	ROM_REGION( 0x10000, "maincpu", 0 )
2021 	ROM_LOAD( "grudgematch.u5", 0x00000, 0x10000, CRC(11cadec9) SHA1(e21df623d1311ea63bafa2d6d0d94eb7d13232da) )
2022 
2023 	ROM_REGION( 0x10000, "soundcpu", 0 )
2024 	ROM_LOAD( "grudgematch.u27", 0x08000, 0x8000, CRC(59c18e63) SHA1(0d00c9cc683ff17e3213ba343ae65d533b57a243) )
2025 
2026 	ROM_REGION( 0xe0000, "grom", 0 )
2027 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(9064eff9) SHA1(4c80432ef359266c43b4691b503f529ed018a655) )
2028 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(6919c314) SHA1(e4a7ca77ee27ea8e41a236806e689c964d981210) )
2029 	ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(36b1682c) SHA1(6098b8aa576522c3cea66b5ac8f9406bf4222008) )
2030 	ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(7bf05f61) SHA1(269e1cacf319d9f2a2b865ac6573e690f36827a1) )
2031 	ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(55bded89) SHA1(61e0c60e391327a5fdda704c7756fcd6e11253c5) )
2032 	ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(37b47b2e) SHA1(352204d3e95e6db556aacf053c42d0d5871245a7) )
2033 	ROM_LOAD( "grom6.bin", 0xc0000, 0x20000, CRC(860ee822) SHA1(2ca821c2fa220065b99b99b7487fe9666f338c75) )
2034 
2035 	ROM_REGION( 0x20000, "ymsnd", 0 )
2036 	ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(49bce954) SHA1(68a8b11c03722349d673f7383288c63054f0d6f6) )
2037 ROM_END
2038 
2039 
2040 ROM_START( stratab )
2041 	ROM_REGION( 0x8000, "maincpu", 0 )
2042 	ROM_LOAD( "sb_prog_v3_u5.u5", 0x00000, 0x8000, CRC(a5ae728f) SHA1(85098eef1614d5148e8082df4c936883662292ee) ) /* Labeled as SB PROG V3 (U5) */
2043 
2044 	ROM_REGION( 0x10000, "soundcpu", 0 )
2045 	ROM_LOAD( "sb_snds_u27.u27", 0x08000, 0x8000, CRC(b36c8f0a) SHA1(c4c3edf3352d95561f76705087338c1946137447) ) /* Labeled as SB SNDS (U27) */
2046 
2047 	ROM_REGION( 0xc0000, "grom", 0 )
2048 	ROM_LOAD( "sb_grom0_0.grom0", 0x00000, 0x20000, CRC(a915b0bd) SHA1(0955c7ebb48e97ccffc18c5deec6eccce1d68de8) )
2049 	ROM_LOAD( "sb_grom0_1.grom1", 0x20000, 0x20000, CRC(340c661f) SHA1(150f9158fa6d956d08051c67c17723b1d8c66867) )
2050 	ROM_LOAD( "sb_grom0_2.grom2", 0x40000, 0x20000, CRC(5df9f1cf) SHA1(cad87f63ac0e902dffeeaa42538fc73f792d87d9) )
2051 
2052 	ROM_REGION( 0x40000, "oki", 0 )
2053 	ROM_LOAD( "sb_srom0.srom0", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) )
2054 ROM_END
2055 
2056 
2057 ROM_START( stratab1 )
2058 	ROM_REGION( 0x8000, "maincpu", 0 )
2059 	ROM_LOAD( "sb_prog_v1_u5.u5",  0x00000, 0x8000, CRC(46d51604) SHA1(de7b6306fdcee4907b07667baf874bd195822e6a) ) /* Labeled as SB PROG V1 (U5) */
2060 
2061 	ROM_REGION( 0x10000, "soundcpu", 0 )
2062 	ROM_LOAD( "sb_snds_u27.u27", 0x08000, 0x8000, CRC(b36c8f0a) SHA1(c4c3edf3352d95561f76705087338c1946137447) ) /* Labeled as SB SNDS (U27) */
2063 
2064 	ROM_REGION( 0xc0000, "grom", 0 )
2065 	ROM_LOAD( "sb_grom0_0.grom0", 0x00000, 0x20000, CRC(a915b0bd) SHA1(0955c7ebb48e97ccffc18c5deec6eccce1d68de8) )
2066 	ROM_LOAD( "sb_grom0_1.grom1", 0x20000, 0x20000, CRC(340c661f) SHA1(150f9158fa6d956d08051c67c17723b1d8c66867) )
2067 	ROM_LOAD( "sb_grom0_2.grom2", 0x40000, 0x20000, CRC(5df9f1cf) SHA1(cad87f63ac0e902dffeeaa42538fc73f792d87d9) )
2068 
2069 	ROM_REGION( 0x40000, "oki", 0 )
2070 	ROM_LOAD( "sb_srom0.srom0", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) )
2071 ROM_END
2072 
2073 
2074 ROM_START( gtg )
2075 	ROM_REGION( 0x10000, "maincpu", 0 )
2076 	ROM_LOAD( "gtg_joy_3.3_u5.u5", 0x00000, 0x10000, CRC(983a5c0c) SHA1(245fd6b86e96ef57ea9a85c7a501d846e135cfc6) ) /* Joystick version - Labeled GTG JOY V3.3 (U5) */
2077 
2078 	ROM_REGION( 0x10000, "soundcpu", 0 )
2079 	ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(358d2440) SHA1(7b09350c89f9d2c86dc187d8812bbf26b576a38f) )
2080 
2081 	ROM_REGION( 0xc0000, "grom", 0 )
2082 	ROM_LOAD( "golf-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2083 	ROM_LOAD( "golf-grom1.grom1", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) )
2084 	ROM_LOAD( "golf-grom2.grom2", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) )
2085 	ROM_LOAD( "golf-grom3.grom3", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) )
2086 	ROM_LOAD( "golf-grom4.grom4", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) )
2087 	ROM_LOAD( "grom5.grom5",      0xa0000, 0x20000, CRC(c108c56c) SHA1(5c67b6479e093c34e7ee2b68d93eba07a96f72e4) )
2088 
2089 	ROM_REGION( 0x40000, "oki", 0 )
2090 	ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) )
2091 ROM_END
2092 
2093 
2094 ROM_START( gtgj31 )
2095 	ROM_REGION( 0x10000, "maincpu", 0 )
2096 	ROM_LOAD( "gtg_joy_3.1_u5.u5", 0x00000, 0x10000, CRC(61984272) SHA1(be735f8576fb2cccc0e9e6ea6f2fd54b6c0b3bb3) ) /* Joystick version - Labeled GTG JOY V3.1 (U5) */
2097 
2098 	ROM_REGION( 0x10000, "soundcpu", 0 )
2099 	ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(358d2440) SHA1(7b09350c89f9d2c86dc187d8812bbf26b576a38f) )
2100 
2101 	ROM_REGION( 0xc0000, "grom", 0 )
2102 	ROM_LOAD( "golf-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2103 	ROM_LOAD( "golf-grom1.grom1", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) )
2104 	ROM_LOAD( "golf-grom2.grom2", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) )
2105 	ROM_LOAD( "golf-grom3.grom3", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) )
2106 	ROM_LOAD( "golf-grom4.grom4", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) )
2107 	ROM_LOAD( "grom5.bin",        0xa0000, 0x20000, CRC(5b393314) SHA1(9e314a75ea52373369904915ec786f09eee725a9) )
2108 
2109 	ROM_REGION( 0x40000, "oki", 0 )
2110 	ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) )
2111 ROM_END
2112 
2113 
2114 ROM_START( gtgt )
2115 	ROM_REGION( 0x10000, "maincpu", 0 )
2116 	ROM_LOAD( "gtg.bin_2.0.u5", 0x0000, 0x10000, CRC(4c907166) SHA1(338a599645fa49c9fcbfbe5ba3431dafffddacc7) ) /* Trackball version */
2117 
2118 	ROM_REGION( 0x10000, "soundcpu", 0 )
2119 	ROM_LOAD( "golf-snd.u27", 0x08000, 0x8000, CRC(f6a7429b) SHA1(0fb378606c12c3543aa1ff603101e262acb9c692) )
2120 
2121 	ROM_REGION( 0xc0000, "grom", 0 )
2122 	ROM_LOAD( "golf-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2123 	ROM_LOAD( "golf-grom1.grom1", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) )
2124 	ROM_LOAD( "golf-grom2.grom2", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) )
2125 	ROM_LOAD( "golf-grom3.grom3", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) )
2126 	ROM_LOAD( "golf-grom4.grom4", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) )
2127 	ROM_LOAD( "golf-grom5.grom5", 0xa0000, 0x10000, CRC(62a523d2) SHA1(431f89fa044bf0ed3c197745d9c1a61f666da658) )
2128 
2129 	ROM_REGION( 0x40000, "oki", 0 )
2130 	ROM_LOAD( "golf-srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) )
2131 ROM_END
2132 
2133 
2134 ROM_START( gtgt1 )
2135 	ROM_REGION( 0x10000, "maincpu", 0 )
2136 	ROM_LOAD( "gtg.bin_1.0.u5", 0x00000, 0x10000, CRC(ec70b510) SHA1(318984d77eb1df6258b855781ae1c9a09aa74f15) ) /* Trackball version */
2137 
2138 	ROM_REGION( 0x10000, "soundcpu", 0 )
2139 	ROM_LOAD( "snd-u27.256", 0x08000, 0x8000, CRC(471da557) SHA1(32bfe450a42d9eb6c14edcfa2b4e33f65a11126e) )
2140 
2141 	ROM_REGION( 0xb0000, "grom", 0 )
2142 	ROM_LOAD( "golf-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2143 	ROM_LOAD( "golf-grom1.grom1", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) )
2144 	ROM_LOAD( "golf-grom2.grom2", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) )
2145 	ROM_LOAD( "golf-grom3.grom3", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) )
2146 	ROM_LOAD( "golf-grom4.grom4", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) )
2147 	ROM_LOAD( "grom5.512",        0xa0000, 0x10000, CRC(44b47015) SHA1(5dde4c932a697b51fe02eab8d948889b3fe7baff) )
2148 
2149 	ROM_REGION( 0x40000, "oki", 0 )
2150 	ROM_LOAD( "srom0.010", 0x00000, 0x20000, CRC(d041e0c9) SHA1(1d90f37071d92c714ff69ab2b0337c7c66147995) )
2151 ROM_END
2152 
2153 
2154 ROM_START( gtg2t )
2155 	ROM_REGION( 0x10000, "maincpu", 0 )
2156 	ROM_LOAD( "gtgii_tb_v1.1.u5", 0x00000, 0x10000, CRC(c7b3a9f3) SHA1(5edaca6fd6ee58bd1676dc9b2c86da4dd2f51687) ) /* Trackball version - labeled GTGII TB V1.1 (U5) */
2157 
2158 	ROM_REGION( 0x10000, "soundcpu", 0 )
2159 	ROM_LOAD( "gtgii_snd_v1_u27.u27", 0x08000, 0x8000, CRC(dd2a5905) SHA1(dc93f13de3953852a6757361eb9683a57d3ed326) ) /* labeled GTGII SND V1 (U27) */
2160 
2161 	ROM_REGION( 0xc0000, "grom", 0 )
2162 	ROM_LOAD( "gtgii-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2163 	ROM_LOAD( "gtgii-grom1.grom1", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) )
2164 	ROM_LOAD( "gtgii-grom2.grom2", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) )
2165 	ROM_LOAD( "gtgii-grom3.grom3", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) )
2166 	ROM_LOAD( "gtgii-grom4.grom4", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) )
2167 	ROM_LOAD( "gtgii-grom5.grom5", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) )
2168 
2169 	ROM_REGION( 0x40000, "oki", 0 )
2170 	ROM_LOAD( "gtgii_vr_srom0.srom0", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) ) /* labeled GTGII VR-SROM0 */
2171 
2172 	ROM_REGION( 0x0200, "plds", 0 )
2173 	ROM_LOAD( "tibpal16l8.u11", 0x0000, 0x0104, CRC(9bf5a75f) SHA1(79786f7ce656f30a33a92887a290b767a7cbbf31) )
2174 ROM_END
2175 
2176 
2177 ROM_START( gtg2j )
2178 	ROM_REGION( 0x10000, "maincpu", 0 )
2179 	ROM_LOAD( "gtg2.bin_1.0.u5", 0x00000, 0x10000, CRC(9c95ceaa) SHA1(d9fd2b2419c026822a07d2ba51d6ab40b7cd0d49) ) /* Joystick version */
2180 
2181 	ROM_REGION( 0x10000, "soundcpu", 0 )
2182 	ROM_LOAD( "gtgii_snd_v1_u27.u27", 0x08000, 0x8000, CRC(dd2a5905) SHA1(dc93f13de3953852a6757361eb9683a57d3ed326) ) /* labeled GTGII SND V1 (U27) */
2183 
2184 	ROM_REGION( 0xc0000, "grom", 0 )
2185 	ROM_LOAD( "gtgii-grom0.grom0", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2186 	ROM_LOAD( "gtgii-grom1.grom1", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) )
2187 	ROM_LOAD( "gtgii-grom2.grom2", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) )
2188 	ROM_LOAD( "gtgii-grom3.grom3", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) )
2189 	ROM_LOAD( "gtgii-grom4.grom4", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) )
2190 	ROM_LOAD( "gtgii-grom5.grom5", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) )
2191 
2192 	ROM_REGION( 0x40000, "oki", 0 )
2193 	ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) )
2194 
2195 	ROM_REGION( 0x0200, "plds", 0 )
2196 	ROM_LOAD( "tibpal16l8.u11", 0x0000, 0x0104, CRC(9bf5a75f) SHA1(79786f7ce656f30a33a92887a290b767a7cbbf31) )
2197 ROM_END
2198 
2199 
2200 ROM_START( slikshot )
2201 	ROM_REGION( 0x10000, "maincpu", 0 )
2202 	ROM_LOAD( "poolpgm-20.u5",  0x00000, 0x10000, CRC(370a00eb) SHA1(b2878f161f4931d9fc3979a84b29660941e2608f) )
2203 
2204 	ROM_REGION( 0x10000, "soundcpu", 0 )
2205 	ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) )
2206 
2207 	ROM_REGION( 0x10000, "sub", 0 )
2208 	ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) )
2209 	ROM_CONTINUE(        0x00000, 0x0800 )
2210 	ROM_CONTINUE(        0x00000, 0x0800 )
2211 	ROM_CONTINUE(        0x00000, 0x0800 )
2212 
2213 	ROM_REGION( 0xc0000, "grom", 0 )
2214 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(e60c2804) SHA1(e62d11b6c4439a70a2f32df72c8c64e2f110351e) )
2215 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(d764d542) SHA1(43fc0c9b627484a670d87da91e212741b137e995) )
2216 
2217 	ROM_REGION( 0x40000, "oki", 0 )
2218 	ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) )
2219 ROM_END
2220 
2221 
2222 ROM_START( slikshot17 )
2223 	ROM_REGION( 0x10000, "maincpu", 0 )
2224 	ROM_LOAD( "poolpgm-17.u5", 0x00000, 0x10000, CRC(09d70554) SHA1(a009cd3b22261c60f1028694baef51f61713154f) )
2225 
2226 	ROM_REGION( 0x10000, "soundcpu", 0 )
2227 	ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) )
2228 
2229 	ROM_REGION( 0x10000, "sub", 0 )
2230 	ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) )
2231 	ROM_CONTINUE(        0x00000, 0x0800 )
2232 	ROM_CONTINUE(        0x00000, 0x0800 )
2233 	ROM_CONTINUE(        0x00000, 0x0800 )
2234 
2235 	ROM_REGION( 0xc0000, "grom", 0 )
2236 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(e60c2804) SHA1(e62d11b6c4439a70a2f32df72c8c64e2f110351e) )
2237 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(d764d542) SHA1(43fc0c9b627484a670d87da91e212741b137e995) )
2238 
2239 	ROM_REGION( 0x40000, "oki", 0 )
2240 	ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) )
2241 ROM_END
2242 
2243 
2244 ROM_START( slikshot16 )
2245 	ROM_REGION( 0x10000, "maincpu", 0 )
2246 	ROM_LOAD( "poolpgm-16.u5", 0x00000, 0x10000, CRC(c0f17012) SHA1(5d466e058daf91b4f52e634498df9d2a03627aaa) )
2247 
2248 	ROM_REGION( 0x10000, "soundcpu", 0 )
2249 	ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) )
2250 
2251 	ROM_REGION( 0x10000, "sub", 0 )
2252 	ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) )
2253 	ROM_CONTINUE(        0x00000, 0x0800 )
2254 	ROM_CONTINUE(        0x00000, 0x0800 )
2255 	ROM_CONTINUE(        0x00000, 0x0800 )
2256 
2257 	ROM_REGION( 0xc0000, "grom", 0 )
2258 	ROM_LOAD( "pool-grom.0", 0x00000, 0x10000, CRC(e6d0edc6) SHA1(5287a31bbdde1e4291d8e9e6b99d3aa12bfb6e18) )
2259 	ROM_LOAD( "pool-grom.1", 0x10000, 0x10000, CRC(5a071aa2) SHA1(9c5506e37625d213429b1231d457d7ce8a7a81ff) )
2260 	ROM_LOAD( "pool-grom.2", 0x20000, 0x10000, CRC(c0bdf4e0) SHA1(3b7c635375c5e5fddcbc1bd1b186c960081ec37e) )
2261 	ROM_LOAD( "pool-grom.3", 0x30000, 0x10000, CRC(cb0bd9a3) SHA1(107ff127f9adad84a5f92077851423249fce8e30) )
2262 
2263 	ROM_REGION( 0x40000, "oki", 0 )
2264 	ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) )
2265 ROM_END
2266 
2267 
2268 ROM_START( dynobop )
2269 	ROM_REGION( 0x10000, "maincpu", 0 )
2270 	ROM_LOAD( "dyno_pgm_1.1_u5.u5", 0x00000, 0x10000, CRC(98452c40) SHA1(9b9316fc258792e0d825f16e0fadf8e0c35a864e) )
2271 
2272 	ROM_REGION( 0x10000, "soundcpu", 0 )
2273 	ROM_LOAD( "dyno_snd-u27.u27", 0x08000, 0x8000, CRC(a37d862b) SHA1(922eeae184df2c5c28040da27699dd55744f8dca) )
2274 
2275 	ROM_REGION( 0x10000, "sub", 0 )
2276 	ROM_LOAD( "dynobop.u53", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) )
2277 	ROM_CONTINUE(            0x00000, 0x0800 )
2278 	ROM_CONTINUE(            0x00000, 0x0800 )
2279 	ROM_CONTINUE(            0x00000, 0x0800 )
2280 
2281 	ROM_REGION( 0xc0000, "grom", 0 )
2282 	ROM_LOAD( "grom00-dyno.grom0", 0x00000, 0x20000, CRC(3525a7a3) SHA1(fe0b08203c135d55507506936dc34e1503e4906b) )
2283 	ROM_LOAD( "grom01-dyno.grom1", 0x20000, 0x20000, CRC(1544a232) SHA1(60bba76537c82887db8e38c6a87c528afdd385d0) )
2284 
2285 	ROM_REGION( 0x40000, "oki", 0 )
2286 	ROM_LOAD( "dyno_vr-srom0.srom0", 0x00000, 0x10000, CRC(b355bf1d) SHA1(c9745638feb33ec181b8d9a894421f9854286cd9) )
2287 ROM_END
2288 
2289 
2290 ROM_START( sstrike )
2291 	ROM_REGION( 0x8000, "maincpu", 0 )
2292 	ROM_LOAD( "sstrik_prg-v1_u5.u5", 0x00000, 0x8000, CRC(af00cddf) SHA1(b866e8dfce1449f7462a79efa385ea6b55cdc6e7) ) /* labeled SSTRIKE PRG-V1(U5) */
2293 
2294 	ROM_REGION( 0x10000, "soundcpu", 0 )
2295 	ROM_LOAD( "sstrik_snd1.4_u27.u27", 0x08000, 0x8000, CRC(efab7252) SHA1(eb3b2002531e551e3d67958ea3cc56a69fa660e2) ) /* labeled SSTRIKE SND1.4(U27) */
2296 
2297 	ROM_REGION( 0x10000, "sub", 0 )
2298 	ROM_LOAD( "spstku53.u53", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) )
2299 	ROM_CONTINUE(        0x00000, 0x0800 )
2300 	ROM_CONTINUE(        0x00000, 0x0800 )
2301 	ROM_CONTINUE(        0x00000, 0x0800 )
2302 
2303 	ROM_REGION( 0xc0000, "grom", 0 )
2304 	ROM_LOAD( "super_strike_grom0.grom0", 0x00000, 0x20000, CRC(9cfb9849) SHA1(5aa860c0c6e3916ebdb8898ee44f633bf3347ca8) )
2305 	ROM_LOAD( "super_strike_grom1.grom1", 0x20000, 0x20000, CRC(d9ea14e1) SHA1(4cddf3237c203b0a3f7ae770f85f1be35e9e1b78) )
2306 	ROM_LOAD( "super_strike_grom2.grom2", 0x40000, 0x20000, CRC(dcd97bf7) SHA1(95361222ac58bf74539f2a7e80574bcd848c615e) )
2307 
2308 	ROM_REGION( 0x40000, "oki", 0 )
2309 	ROM_LOAD( "super_strike_srom0.srom0", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) )
2310 ROM_END
2311 
2312 
2313 ROM_START( stratabs )
2314 	ROM_REGION( 0x8000, "maincpu", 0 )
2315 	ROM_LOAD( "sb_prog-v4t.u5",  0x00000, 0x8000, CRC(38ddae75) SHA1(71a9cbd36cf7b180a88bab3ab92a4dff93ce365f) )
2316 
2317 	ROM_REGION( 0x10000, "soundcpu", 0 )
2318 	ROM_LOAD( "sb_snds_1.4.u27", 0x08000, 0x8000, CRC(526ef093) SHA1(884f9149b3d5eb33e47258e466ad9cd9ce5ffddb) )
2319 
2320 	ROM_REGION( 0x10000, "sub", 0 )
2321 	ROM_LOAD( "z80_prg_v1.0t.u53", 0x00000, 0x0800, CRC(08203f9f) SHA1(be5044938c73bf6fc1a6130dc473997e8c219b24) )
2322 	ROM_CONTINUE(        0x00000, 0x0800 )
2323 	ROM_CONTINUE(        0x00000, 0x0800 )
2324 	ROM_CONTINUE(        0x00000, 0x0800 )
2325 
2326 	ROM_REGION( 0xc0000, "grom", 0 )
2327 	ROM_LOAD( "sb_grom00", 0x00000, 0x20000, CRC(22f6ce56) SHA1(8e423122384257d9c5d8f48192ff6fa1f544fd97) )
2328 	ROM_LOAD( "sb_grom01", 0x20000, 0x20000, CRC(6cc7ad6f) SHA1(d601b9bb81f26ad86e5cc053cab055831331ccde) )
2329 	ROM_LOAD( "sb_grom02", 0x40000, 0x20000, CRC(475134ef) SHA1(5920e7a211f1b2234e8a3f51e570303c3787d8fd) )
2330 
2331 	ROM_REGION( 0x40000, "oki", 0 )
2332 	ROM_LOAD( "sb_srom0", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) )
2333 ROM_END
2334 
2335 
2336 ROM_START( pokrdice )
2337 	ROM_REGION( 0x10000, "maincpu", 0 )
2338 	ROM_LOAD( "pd-v17.u5", 0x00000, 0x10000, CRC(5e24be82) SHA1(97e50cc023ff651fb09cc5e85a1bef1bc234ccb9) )
2339 
2340 	ROM_REGION( 0x10000, "soundcpu", 0 )
2341 	ROM_LOAD( "pd-snd.bin", 0x08000, 0x8000, CRC(4925401c) SHA1(e35983bec4a0dd4cb1d942fd909790b1adeb415d) )
2342 
2343 	ROM_REGION( 0xc0000, "grom", 0 )
2344 	ROM_LOAD( "pd-grom0.bin", 0x00000, 0x20000, CRC(7c2573e7) SHA1(d6a2a16277ad854c66927d88c5617d05eefe1057) )
2345 	ROM_LOAD( "pd-grom1.bin", 0x20000, 0x20000, CRC(e7c06aeb) SHA1(4be54b078d886359bf6ed376019cc1f6f04f52d6) )
2346 
2347 	ROM_REGION( 0x40000, "oki", 0 )
2348 	ROM_LOAD( "pd-srom.0", 0x00000, 0x10000, CRC(f85dbd6f) SHA1(fce53019432e4a84e52f0ae1996b2e0d94b32bc0) )
2349 ROM_END
2350 
2351 
2352 ROM_START( hstennis ) /* PCB  p/n 1030 */
2353 	ROM_REGION( 0x10000, "maincpu", 0 )
2354 	ROM_LOAD( "ten.bim_v1.1_u5.u5", 0x00000, 0x10000, CRC(faffab5c) SHA1(4de525f6adb16205c47788b78aecdebd57008295) ) /* labeled as TEN.BIM V1.1 (U5) */
2355 
2356 	ROM_REGION( 0x10000, "soundcpu", 0 )
2357 	ROM_LOAD( "tensnd.bim_v1_u27.u27", 0x08000, 0x8000, CRC(f034a694) SHA1(3540e2edff2ce47504260ec856bab9b638d9260d) ) /* labeled as TENSND.BIM V1 U27 */
2358 
2359 	ROM_REGION( 0xc0000, "grom", 0 )
2360 	ROM_LOAD( "t_grom0.bim.grom0", 0x00000, 0x20000, CRC(1e69ebae) SHA1(a32e2c2f4e4a527ae6b57adeccd2c4d2045ab5fe) ) /* labeled as T GROM0.BIM, ect... */
2361 	ROM_LOAD( "t_grom1.bim.grom1", 0x20000, 0x20000, CRC(4e6a22d5) SHA1(3c2d51dd874f61c0a557ea2c1968afa02d9bfc42) )
2362 	ROM_LOAD( "t_grom2.bim.grom2", 0x40000, 0x20000, CRC(c0b643a9) SHA1(d240f703a55c39ce4a969612fbb9cd76e4b849ac) )
2363 	ROM_LOAD( "t_grom3.bim.grom3", 0x60000, 0x20000, CRC(54afb456) SHA1(0a7f10b1a490825a85489ac3f678eb1e11a0ac65) )
2364 	ROM_LOAD( "t_grom4.bim.grom4", 0x80000, 0x20000, CRC(ee09d645) SHA1(8233cfbd17d9de548ae3ca5e30928061712e0781) )
2365 
2366 	ROM_REGION( 0x40000, "oki", 0 )
2367 	ROM_LOAD( "tennis.vr_srom0.srom0", 0x00000, 0x20000, CRC(d9ce58c3) SHA1(92574e60497d86b8608fba6278ccfc9036cb7f22) ) /* labeled as TENNIS.VR SROM0 */
2368 
2369 	ROM_REGION( 0x0200, "plds", 0 )
2370 	ROM_LOAD( "pal16l8-itvs.u11", 0x0000, 0x0104, CRC(fee03727) SHA1(e784ff18505cdccc1020dbe5cb0e7cc9efc068a4) )
2371 ROM_END
2372 
2373 
2374 ROM_START( hstennis10 ) /* PCB  p/n 1030 */
2375 	ROM_REGION( 0x10000, "maincpu", 0 )
2376 	ROM_LOAD( "ten.bim_v1.0_u5.u5", 0x00000, 0x10000, CRC(d108a6e0) SHA1(1041e1d95b10245fc50f6484e710803db2706f9a) ) /* labeled as TEN.BIM V1.0 (U5) */
2377 
2378 	ROM_REGION( 0x10000, "soundcpu", 0 )
2379 	ROM_LOAD( "tensnd.bim_v1_u27.u27", 0x08000, 0x8000, CRC(f034a694) SHA1(3540e2edff2ce47504260ec856bab9b638d9260d) ) /* labeled as TENSND.BIM V1 U27 */
2380 
2381 	ROM_REGION( 0xc0000, "grom", 0 )
2382 	ROM_LOAD( "t_grom0.bim.grom0", 0x00000, 0x20000, CRC(1e69ebae) SHA1(a32e2c2f4e4a527ae6b57adeccd2c4d2045ab5fe) ) /* labeled as T GROM0.BIM, ect... */
2383 	ROM_LOAD( "t_grom1.bim.grom1", 0x20000, 0x20000, CRC(4e6a22d5) SHA1(3c2d51dd874f61c0a557ea2c1968afa02d9bfc42) )
2384 	ROM_LOAD( "t_grom2.bim.grom2", 0x40000, 0x20000, CRC(c0b643a9) SHA1(d240f703a55c39ce4a969612fbb9cd76e4b849ac) )
2385 	ROM_LOAD( "t_grom3.bim.grom3", 0x60000, 0x20000, CRC(54afb456) SHA1(0a7f10b1a490825a85489ac3f678eb1e11a0ac65) )
2386 	ROM_LOAD( "t_grom4.bim.grom4", 0x80000, 0x20000, CRC(ee09d645) SHA1(8233cfbd17d9de548ae3ca5e30928061712e0781) )
2387 
2388 	ROM_REGION( 0x40000, "oki", 0 )
2389 	ROM_LOAD( "tennis.vr_srom0.srom0", 0x00000, 0x20000, CRC(d9ce58c3) SHA1(92574e60497d86b8608fba6278ccfc9036cb7f22) ) /* labeled as TENNIS.VR SROM0 */
2390 
2391 	ROM_REGION( 0x0200, "plds", 0 )
2392 	ROM_LOAD( "pal16l8-itvs.u11", 0x0000, 0x0104, CRC(fee03727) SHA1(e784ff18505cdccc1020dbe5cb0e7cc9efc068a4) )
2393 ROM_END
2394 
2395 
2396 ROM_START( arlingtn ) /* PCB  p/n 1030 rev. 1A */
2397 	ROM_REGION( 0x10000, "maincpu", 0 )
2398 	ROM_LOAD( "ahr-d_v_1.40_u5.u5", 0x00000, 0x10000, CRC(02338ddd) SHA1(8e8e0c319c0b7533511089aa7a671a112169a4a1) ) /* labeled AHR-D V 1.40 (U5) - service menu reports version as 1.40-D */
2399 
2400 	ROM_REGION( 0x10000, "soundcpu", 0 )
2401 	ROM_LOAD( "ahr_snd_v1.1_u27.u27", 0x08000, 0x8000, CRC(dec57dca) SHA1(21a8ead10b0434629f41f6b067c49b6622569a6c) ) /* labeled AHR SND V1.1 (U27) */
2402 
2403 	ROM_REGION( 0xc0000, "grom", 0 )
2404 	ROM_LOAD( "ahr_grom0.grom0", 0x00000, 0x20000, CRC(5ef57fe5) SHA1(e877979e034a61968b432037501e25a302a17a9a) )
2405 	ROM_LOAD( "ahr_grom1.grom1", 0x20000, 0x20000, CRC(6aca95c0) SHA1(da7a899bf0812a7af178e48b5a626ce56a836579) )
2406 	ROM_LOAD( "ahr_grom2.grom2", 0x40000, 0x10000, CRC(6d6fde1b) SHA1(aaabc45d4b566be42e8d28d767e4771a96d9caae) )
2407 	/* GROM3, GROM4 & GROM5 are unpopulated */
2408 
2409 	ROM_REGION( 0x40000, "oki", 0 )
2410 	ROM_LOAD( "ahr_srom0.srom0", 0x00000, 0x40000, CRC(56087f81) SHA1(1d4a1f396ee9d8ed51d0417ea94b0b379312d72f) )
2411 ROM_END
2412 
2413 
2414 ROM_START( arlingtna ) /* PCB  p/n 1030 rev. 1A */
2415 	ROM_REGION( 0x10000, "maincpu", 0 )
2416 	ROM_LOAD( "ahr-d_v_1.21_u5.u5", 0x00000, 0x10000, CRC(00aae02e) SHA1(3bcfbd256c34ae222dde24ba9544f19da70b698e) ) /* labeled AHR-D V 1.21 (U5) - service menu reports version as 1.21-D */
2417 
2418 	ROM_REGION( 0x10000, "soundcpu", 0 )
2419 	ROM_LOAD( "ahr_snd_v1.1_u27.u27", 0x08000, 0x8000, CRC(dec57dca) SHA1(21a8ead10b0434629f41f6b067c49b6622569a6c) ) /* labeled AHR SND V 1.1 (U27) */
2420 
2421 	ROM_REGION( 0xc0000, "grom", 0 )
2422 	ROM_LOAD( "ahr_grom0.grom0", 0x00000, 0x20000, CRC(5ef57fe5) SHA1(e877979e034a61968b432037501e25a302a17a9a) )
2423 	ROM_LOAD( "ahr_grom1.grom1", 0x20000, 0x20000, CRC(6aca95c0) SHA1(da7a899bf0812a7af178e48b5a626ce56a836579) )
2424 	ROM_LOAD( "ahr_grom2.grom2", 0x40000, 0x10000, CRC(6d6fde1b) SHA1(aaabc45d4b566be42e8d28d767e4771a96d9caae) )
2425 	/* GROM3, GROM4 & GROM5 are unpopulated */
2426 
2427 	ROM_REGION( 0x40000, "oki", 0 )
2428 	ROM_LOAD( "ahr_srom0.srom0", 0x00000, 0x40000, CRC(56087f81) SHA1(1d4a1f396ee9d8ed51d0417ea94b0b379312d72f) )
2429 ROM_END
2430 
2431 
2432 ROM_START( peggle )
2433 	ROM_REGION( 0x10000, "maincpu", 0 )
2434 	ROM_LOAD( "j-stick.u5", 0x00000, 0x10000, CRC(140d5a9c) SHA1(841e5f45c6f306d9bd286e7d3e3c75b169c932e1) )
2435 
2436 	ROM_REGION( 0x10000, "soundcpu", 0 )
2437 	ROM_LOAD( "sound.u27", 0x08000, 0x8000, CRC(b99beb70) SHA1(8d82c3b081a1afb236afa658abb3aa605c6c2264) )
2438 
2439 	ROM_REGION( 0xc0000, "grom", 0 )
2440 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(5c02348d) SHA1(c85352728d94b3a5ca78c2493e98bdb4b3206bed) )
2441 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(85a7a3a2) SHA1(7fb7be67c75867fcccf4272f1ce42f2af94c16e6) )
2442 	ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(bfe11f18) SHA1(5e8d36c6a86a8eb883f50620fbfcea3d8398faeb) )
2443 
2444 	ROM_REGION( 0x40000, "oki", 0 )
2445 	ROM_LOAD( "srom0", 0x00000, 0x20000, CRC(001846ea) SHA1(6a6b77f6d51c4a68105c935804b896aad9981719) )
2446 ROM_END
2447 
2448 
2449 ROM_START( pegglet )
2450 	ROM_REGION( 0x10000, "maincpu", 0 )
2451 	ROM_LOAD( "trakball.u5", 0x00000, 0x10000, CRC(d2694868) SHA1(9945a308550c9d89a647d80257e3ab14f793ac6f) )
2452 
2453 	ROM_REGION( 0x10000, "soundcpu", 0 )
2454 	ROM_LOAD( "sound.u27", 0x08000, 0x8000, CRC(b99beb70) SHA1(8d82c3b081a1afb236afa658abb3aa605c6c2264) )
2455 
2456 	ROM_REGION( 0xc0000, "grom", 0 )
2457 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(5c02348d) SHA1(c85352728d94b3a5ca78c2493e98bdb4b3206bed) )
2458 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(85a7a3a2) SHA1(7fb7be67c75867fcccf4272f1ce42f2af94c16e6) )
2459 	ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(bfe11f18) SHA1(5e8d36c6a86a8eb883f50620fbfcea3d8398faeb) )
2460 
2461 	ROM_REGION( 0x40000, "oki", 0 )
2462 	ROM_LOAD( "srom0", 0x00000, 0x20000, CRC(001846ea) SHA1(6a6b77f6d51c4a68105c935804b896aad9981719) )
2463 ROM_END
2464 
2465 
2466 ROM_START( neckneck )
2467 	ROM_REGION( 0x10000, "maincpu", 0 )
2468 	ROM_LOAD( "nn_prg12.u5", 0x00000, 0x10000, CRC(8e51734a) SHA1(c184af73670235a9245bfdeec2b58acfe93170e3) )
2469 
2470 	ROM_REGION( 0x10000, "soundcpu", 0 )
2471 	ROM_LOAD( "nn_snd10.u27", 0x08000, 0x8000, CRC(74771b2f) SHA1(0a963d2962699bb1b4d08bd486979151d0a228da) )
2472 
2473 	ROM_REGION( 0xc0000, "grom", 0 )
2474 	ROM_LOAD( "nn_grom0.bin", 0x00000, 0x20000, CRC(064d1464) SHA1(4ce5bcadad93586c9af2b0c499d7a7140b080cdb) )
2475 	ROM_LOAD( "nn_grom1.bin", 0x20000, 0x20000, CRC(622d9a0b) SHA1(f084dcf194cfc658f97f36972f2b2ff30e834fc5) )
2476 	ROM_LOAD( "nn_grom2.bin", 0x40000, 0x20000, CRC(e7eb4020) SHA1(29ceb535d1dfddf8c12cf78919ea10f6b956b8b3) )
2477 	ROM_LOAD( "nn_grom3.bin", 0x60000, 0x20000, CRC(765c8593) SHA1(a39d757a01d61b637b264bdb4449e090a1e90219) )
2478 
2479 	ROM_REGION( 0x40000, "oki", 0 )
2480 	ROM_LOAD( "nn_srom0.bin", 0x00000, 0x40000, CRC(33687201) SHA1(7c84d453fb7e59b0a27cd68a049d019ff65f6f19) )
2481 ROM_END
2482 
2483 
2484 ROM_START( rimrockn )
2485 	ROM_REGION( 0x20000, "maincpu", 0 )
2486 	ROM_LOAD( "rrb.bin_2.2.u5", 0x00000, 0x20000, CRC(97777683) SHA1(0998dde26daaa2d2b78e83647e03ba01b0ef31f2) )
2487 
2488 	ROM_REGION( 0x10000, "soundcpu", 0 )
2489 	ROM_LOAD( "rrbsndv11.u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) /* Labeled as RRBSND V1.1 U27 */
2490 
2491 	ROM_REGION( 0x100000, "grom", 0 )
2492 	ROM_LOAD( "rbb-grom00",   0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) )
2493 	ROM_LOAD( "rbb-grom01",   0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) )
2494 	ROM_LOAD( "rbb-grom02-2", 0x80000, 0x40000, CRC(47904233) SHA1(6a4d10e8f7b75582f706a74b37d59788613ffc61) )
2495 	ROM_LOAD( "rbb-grom03-2", 0xc0000, 0x40000, CRC(f005f118) SHA1(aa39f12d07827e21eceb286557e37973e519b433) )
2496 
2497 	ROM_REGION( 0x40000, "oki", 0 )
2498 	ROM_LOAD( "rbb-srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) )
2499 
2500 	ROM_REGION( 0x0600, "plds", 0 )
2501 	ROM_LOAD( "pal16l8.u14", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */
2502 	ROM_LOAD( "pal16r4.u45", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */
2503 	ROM_LOAD( "pal16l8.u29", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */
2504 ROM_END
2505 
2506 
2507 ROM_START( rimrockn20 )
2508 	ROM_REGION( 0x20000, "maincpu", 0 )
2509 	ROM_LOAD( "rrb.bin_2.0.u5", 0x00000, 0x20000, CRC(7e9d5545) SHA1(2aa028b3f5d05bec4ee289e7d39eaad30b3d4d5f) )
2510 
2511 	ROM_REGION( 0x10000, "soundcpu", 0 )
2512 	ROM_LOAD( "rrbsndv11.u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) /* Labeled as RRBSND V1.1 U27 */
2513 
2514 	ROM_REGION( 0x100000, "grom", 0 )
2515 	ROM_LOAD( "rbb-grom00",   0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) )
2516 	ROM_LOAD( "rbb-grom01",   0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) )
2517 	ROM_LOAD( "rbb-grom02-2", 0x80000, 0x40000, CRC(47904233) SHA1(6a4d10e8f7b75582f706a74b37d59788613ffc61) )
2518 	ROM_LOAD( "rbb-grom03-2", 0xc0000, 0x40000, CRC(f005f118) SHA1(aa39f12d07827e21eceb286557e37973e519b433) )
2519 
2520 	ROM_REGION( 0x40000, "oki", 0 )
2521 	ROM_LOAD( "rbb-srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) )
2522 ROM_END
2523 
2524 
2525 ROM_START( rimrockn16 )
2526 	ROM_REGION( 0x20000, "maincpu", 0 )
2527 	ROM_LOAD( "rrb.bin_1.6.u5",0x00000, 0x20000, CRC(999cd502) SHA1(8ad0d641a9f853eff27be1d4de04ab86b9275d57) )
2528 
2529 	ROM_REGION( 0x10000, "soundcpu", 0 )
2530 	ROM_LOAD( "rrbsndv11.u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) /* Labeled as RRBSND V1.1 U27 */
2531 
2532 	ROM_REGION( 0x100000, "grom", 0 )
2533 	ROM_LOAD( "rbb-grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) )
2534 	ROM_LOAD( "rbb-grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) )
2535 	ROM_LOAD( "rbb-grom02", 0x80000, 0x40000, CRC(34e567d5) SHA1(d0eb6fd0da8b9c3bfe7d4ecfb4bd903e4926b63a) )
2536 	ROM_LOAD( "rbb-grom03", 0xc0000, 0x40000, CRC(fd18045d) SHA1(a1b98e4a2aa6f3cd33a3e2f5744160e05cc9f8d1) )
2537 
2538 	ROM_REGION( 0x40000, "oki", 0 )
2539 	ROM_LOAD( "rbb-srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) )
2540 ROM_END
2541 
2542 
2543 ROM_START( rimrockn12 )
2544 	ROM_REGION( 0x20000, "maincpu", 0 )
2545 	ROM_LOAD( "rrb.bin_1.2.u5",0x00000, 0x20000, CRC(661761a6) SHA1(7224b1eac2fd0969d70657448ab241a433143df4) )
2546 
2547 	ROM_REGION( 0x10000, "soundcpu", 0 )
2548 	ROM_LOAD( "rrbsndv1.u27", 0x08000, 0x8000, CRC(8eda5f53) SHA1(f256544a8c87125587719460ed0fef14efef9015) )
2549 
2550 	ROM_REGION( 0x100000, "grom", 0 )
2551 	ROM_LOAD( "rbb-grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) )
2552 	ROM_LOAD( "rbb-grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) )
2553 	ROM_LOAD( "rbb-grom02", 0x80000, 0x40000, CRC(34e567d5) SHA1(d0eb6fd0da8b9c3bfe7d4ecfb4bd903e4926b63a) )
2554 	ROM_LOAD( "rbb-grom03", 0xc0000, 0x40000, CRC(fd18045d) SHA1(a1b98e4a2aa6f3cd33a3e2f5744160e05cc9f8d1) )
2555 
2556 	ROM_REGION( 0x40000, "oki", 0 )
2557 	ROM_LOAD( "rbb-srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) )
2558 ROM_END
2559 
2560 
2561 ROM_START( rimrockn12b )
2562 	ROM_REGION( 0x20000, "maincpu", 0 )
2563 	ROM_LOAD( "rbba-1.u5", 0x00000, 0x20000, CRC(f99561a8) SHA1(ee59b934839ef5599bb393e0860d54c95f6df1b0) ) // ZX2880JL
2564 
2565 	ROM_REGION( 0x10000, "soundcpu", 0 )
2566 	ROM_LOAD( "rrbsndv1.u27", 0x08000, 0x8000, CRC(8eda5f53) SHA1(f256544a8c87125587719460ed0fef14efef9015) ) // Found on a double-sized ROM (27C512) with its first half empty
2567 
2568 	ROM_REGION( 0x100000, "grom", 0 )
2569 	ROM_LOAD( "rbb-grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) )
2570 	ROM_LOAD( "rbb-grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) )
2571 	ROM_LOAD( "rbb-grom02", 0x80000, 0x40000, CRC(34e567d5) SHA1(d0eb6fd0da8b9c3bfe7d4ecfb4bd903e4926b63a) )
2572 	ROM_LOAD( "rbb-grom03", 0xc0000, 0x40000, CRC(fd18045d) SHA1(a1b98e4a2aa6f3cd33a3e2f5744160e05cc9f8d1) )
2573 
2574 	ROM_REGION( 0x40000, "oki", 0 )
2575 	ROM_LOAD( "rbb-srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) )
2576 
2577 	/* Unused */
2578 	ROM_REGION( 0x0096b, "plds", 0 )
2579 	ROM_LOAD( "a-palce16v8h.u53", 0x00000, 0x00117, NO_DUMP ) // Undumped (solderded)
2580 	ROM_LOAD( "a-palce16v8q.u45", 0x00117, 0x00117, NO_DUMP ) // Undumped (solderded)
2581 	ROM_LOAD( "a-palce16v8h.u14", 0x0022e, 0x00117, NO_DUMP ) // Undumped (solderded)
2582 	ROM_LOAD( "a-gal22v10.u55",   0x00345, 0x002e1, NO_DUMP ) // Undumped (solderded)
2583 	ROM_LOAD( "a-palce16v8h.u65", 0x00626, 0x00117, NO_DUMP ) // Undumped (solderded)
2584 	ROM_LOAD( "a-palce16v8h.u50", 0x0073d, 0x00117, NO_DUMP ) // Undumped (solderded)
2585 	ROM_LOAD( "b-palce16v8h.u29", 0x00854, 0x00117, NO_DUMP ) // Undumped (solderded)
2586 ROM_END
2587 
2588 
2589 ROM_START( ninclown )
2590 	ROM_REGION( 0x40000, "maincpu", 0 )
2591 	ROM_LOAD16_BYTE( "prog1", 0x00000, 0x20000, CRC(fabfdcd2) SHA1(7a9852838cf7772d8f8f956b03823c4222520a5a) )
2592 	ROM_LOAD16_BYTE( "prog0", 0x00001, 0x20000, CRC(eca63db5) SHA1(b86d75ee81e155a21de18c2e0fa898f15d61560d) )
2593 
2594 	ROM_REGION( 0x10000, "soundcpu", 0 )
2595 	ROM_LOAD( "nc-snd", 0x08000, 0x8000, CRC(f9d5b4e1) SHA1(e5c3774db349b60baf11baecf55ac432871e612c) )
2596 
2597 	ROM_REGION( 0x180000, "grom", 0 )
2598 	ROM_LOAD( "nc-grom0", 0x000000, 0x40000, CRC(532f7bff) SHA1(cc7a64ad1581f37ff4bcad78c11aad355a6e9aa8) )
2599 	ROM_LOAD( "nc-grom1", 0x040000, 0x40000, CRC(45640d4a) SHA1(1b59ae2a74fef535c646586422f17b39c9ae247b) )
2600 	ROM_LOAD( "nc-grom2", 0x080000, 0x40000, CRC(c8281d06) SHA1(f75d4e858f9bc19e5234f184b75818e448638c15) )
2601 	ROM_LOAD( "nc-grom3", 0x0c0000, 0x40000, CRC(2a6d33ac) SHA1(0773a53ece0b09e7c33f0e5beb4518059f76b7af) )
2602 	ROM_LOAD( "nc-grom4", 0x100000, 0x40000, CRC(910876ba) SHA1(d65d0a5043afe2239596ba76174a27fea60ffb35) )
2603 	ROM_LOAD( "nc-grom5", 0x140000, 0x40000, CRC(2533279b) SHA1(c21b218b11d20f2cdac2321ffcb1334ec9ec9ffc) )
2604 
2605 	ROM_REGION( 0x40000, "oki", 0 )
2606 	ROM_LOAD( "srom0.bin", 0x00000, 0x40000, CRC(f6b501e1) SHA1(0f1eb6f40f891d11822f1255c0a84975526b2b1b) )
2607 ROM_END
2608 
2609 
2610 ROM_START( gpgolf ) /* P/N 1047 REV. 1 main board + P/N 1038 REV2 sound board */
2611 	ROM_REGION( 0x10000, "maincpu", 0 )
2612 	ROM_LOAD( "gpgv1_1.bin", 0x00000, 0x10000, CRC(631e77e0) SHA1(847ba1e00d31441620a2a1f45a9aa58df84bde8b) ) /* Joystick version 1.1 */
2613 
2614 	ROM_REGION( 0x10000, "soundcpu", 0 )
2615 	ROM_LOAD( "sndv1.u27", 0x08000, 0x8000, CRC(55734876) SHA1(eb5ef816acbc6e35642749e38a2908b7ba359b9d) )
2616 
2617 	ROM_REGION( 0xc0000, "grom", 0 )
2618 	ROM_LOAD( "grom00.grom0", 0x00000, 0x40000, CRC(c3a7b54b) SHA1(414d693bc5337d578d2630817dd647cf7e5cbcf7) )
2619 	ROM_LOAD( "grom01.grom1", 0x40000, 0x40000, CRC(b7fe172d) SHA1(1ad0f3ce0f240ac1a23c0c5bdd9f99ec81bc14f1) )
2620 	ROM_LOAD( "grom02.grom2", 0x80000, 0x40000, CRC(aebe6c45) SHA1(15e64fcb36cb1064988ee5cd45699d501a6e7f01) )
2621 	/* GROM3 not socketted or populated */
2622 
2623 	ROM_REGION( 0x40000, "oki", 0 )
2624 	ROM_LOAD( "srom00.srom0", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) )
2625 ROM_END
2626 
2627 
2628 ROM_START( gpgolfa ) /* P/N 1047 REV. 1 main board + P/N 1038 REV2 sound board */
2629 	ROM_REGION( 0x10000, "maincpu", 0 )
2630 	ROM_LOAD( "gpar.bin.u5", 0x00000, 0x10000, CRC(bcb030b0) SHA1(6fbe0ccd50c3769050d86e2376950fd06ce2abdc) ) /* Joystick version 1.0 - handwritten label */
2631 
2632 	ROM_REGION( 0x10000, "soundcpu", 0 )
2633 	ROM_LOAD( "golf_sound_12-19-91_v.96.u27", 0x00000, 0x10000, CRC(f46b4300) SHA1(7be1878b72c55fb83b2cae3b79b1f65fe8825b4a) ) /* 27C512 with the first 0x8000 as 0xFF fill - handwritten label  GOLF SOUND  12/19/91  V.96 */
2634 //  ROM_LOAD( "golf_sound.u27", 0x08000, 0x8000, CRC(3183d7f3) SHA1(482411947aa3074cec7d4491f6ee64785894d27c) ) /* Different than sndv1.u27 */
2635 
2636 	ROM_REGION( 0xc0000, "grom", 0 )
2637 	ROM_LOAD( "grom00.grom0", 0x00000, 0x40000, CRC(c3a7b54b) SHA1(414d693bc5337d578d2630817dd647cf7e5cbcf7) )
2638 	ROM_LOAD( "grom01.grom1", 0x40000, 0x40000, CRC(b7fe172d) SHA1(1ad0f3ce0f240ac1a23c0c5bdd9f99ec81bc14f1) )
2639 	ROM_LOAD( "grom02.grom2", 0x80000, 0x40000, CRC(aebe6c45) SHA1(15e64fcb36cb1064988ee5cd45699d501a6e7f01) )
2640 	/* GROM3 not socketted or populated */
2641 
2642 	ROM_REGION( 0x40000, "oki", 0 )
2643 	ROM_LOAD( "golf_speech_12-19-91_v.96.srom0", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) ) /* == srom00.srom0 - handwritten label  GOLF SPEECh  12/19/91  V.96 */
2644 ROM_END
2645 
2646 
2647 ROM_START( gtg2 )
2648 	ROM_REGION( 0x10000, "maincpu", 0 )
2649 	ROM_LOAD( "gtg2_v2_2.u5", 0x00000, 0x10000, CRC(4a61580f) SHA1(7c64648d47418fbcc0f9b5bd91f88856209bc0f5) ) /* Trackball version */
2650 
2651 	ROM_REGION( 0x10000, "soundcpu", 0 )
2652 	ROM_LOAD( "sndv1.u27", 0x08000, 0x8000, CRC(55734876) SHA1(eb5ef816acbc6e35642749e38a2908b7ba359b9d) )
2653 
2654 	ROM_REGION( 0xc0000, "grom", 0 )
2655 	ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) )
2656 	ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) )
2657 	ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) )
2658 	ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) )
2659 	ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) )
2660 	ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) )
2661 
2662 	ROM_REGION( 0x40000, "oki", 0 )
2663 	ROM_LOAD( "srom00.bin", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) )
2664 
2665 	ROM_REGION( 0x0200, "plds", 0 )
2666 	ROM_LOAD( "tibpal16l8.u29", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */
2667 ROM_END
2668 
2669 
2670 
2671 /*************************************
2672  *
2673  *  Driver-specific init
2674  *
2675  *************************************/
2676 
2677 void itech8_state::init_invbank()
2678 {
2679 	m_bankxor = 1;
2680 }
2681 
driver_init()2682 void grmatch_state::driver_init()
2683 {
2684 	save_item(NAME(m_palcontrol));
2685 	save_item(NAME(m_xscroll));
2686 	save_item(NAME(m_palette));
2687 }
2688 
2689 
init_slikshot()2690 void itech8_state::init_slikshot()
2691 {
2692 	m_delayed_z80_control_timer = timer_alloc(TIMER_DELAYED_Z80_CONTROL);
2693 
2694 	save_item(NAME(m_z80_ctrl));
2695 	save_item(NAME(m_z80_port_val));
2696 	save_item(NAME(m_z80_clear_to_send));
2697 	save_item(NAME(m_sensor0));
2698 	save_item(NAME(m_sensor1));
2699 	save_item(NAME(m_sensor2));
2700 	save_item(NAME(m_sensor3));
2701 	save_item(NAME(m_curvx));
2702 	save_item(NAME(m_curvy));
2703 	save_item(NAME(m_curx));
2704 	save_item(NAME(m_xbuffer));
2705 	save_item(NAME(m_ybuffer));
2706 	save_item(NAME(m_ybuffer_next));
2707 	save_item(NAME(m_curxpos));
2708 	save_item(NAME(m_last_ytotal));
2709 	save_item(NAME(m_crosshair_vis));
2710 }
2711 
2712 
init_hstennis()2713 void itech8_state::init_hstennis()
2714 {
2715 	m_visarea.set(0, 375, 0, 239);
2716 }
2717 
2718 
init_arligntn()2719 void itech8_state::init_arligntn()
2720 {
2721 	init_invbank();
2722 	m_visarea.set(16, 389, 0, 239);
2723 }
2724 
2725 
init_peggle()2726 void itech8_state::init_peggle()
2727 {
2728 	m_visarea.set(18, 367, 0, 239);
2729 }
2730 
2731 
init_neckneck()2732 void itech8_state::init_neckneck()
2733 {
2734 	m_visarea.set(8, 375, 0, 239);
2735 }
2736 
2737 /*************************************
2738  *
2739  *  Game drivers
2740  *
2741  *************************************/
2742 
2743 /* Wheel of Fortune-style PCB */
2744 GAME( 1989, wfortune,   0,         wfortune,          wfortune, itech8_state, empty_init,    ROT0,   "GameTek", "Wheel Of Fortune (set 1)", 0 )
2745 GAME( 1989, wfortunea,  wfortune,  wfortune,          wfortune, itech8_state, empty_init,    ROT0,   "GameTek", "Wheel Of Fortune (set 2)", 0 ) /* program ROM label states "R1" */
2746 
2747 /* Grudge Match-style PCB */
2748 GAME( 1989, grmatch,    0,         grmatch,           grmatch,  grmatch_state, empty_init,   ROT0,   "Yankee Game Technology", "Grudge Match (Yankee Game Technology)", 0 )
2749 
2750 /* Strata Bowling-style PCB */
2751 GAME( 1990, stratab,    0,         stratab_hi,        stratab,  itech8_state, empty_init,    ROT270, "Strata/Incredible Technologies", "Strata Bowling (V3)", 0 ) // still says V1 in service mode?
2752 GAME( 1990, stratab1,   stratab,   stratab_hi,        stratab,  itech8_state, empty_init,    ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1)", 0 )
2753 GAME( 1990, gtg,        0,         stratab_hi,        gtg,      itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf (Joystick, v3.3)", 0 )
2754 GAME( 1990, gtgj31,     gtg,       stratab_hi,        gtg,      itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf (Joystick, v3.1)", 0 )
2755 GAME( 1989, gtgt,       gtg,       stratab_hi,        gtgt,     itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v2.0)", 0 )
2756 GAME( 1989, gtgt1,      gtg,       stratab_hi,        gtgt,     itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v1.0)", 0 )
2757 GAME( 1989, gtg2t,      gtg2,      stratab_hi,        gtg2t,    itech8_state, init_invbank,  ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V1.1)", 0 )
2758 GAME( 1991, gtg2j,      gtg2,      stratab_lo,        gtg,      itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf II (Joystick, V1.0)", 0 )
2759 
2760 /* Slick Shot-style PCB */
2761 GAME( 1990, slikshot,   0,         slikshot_hi,       slikshot, itech8_state, init_slikshot, ROT90,  "Grand Products/Incredible Technologies", "Slick Shot (V2.2)", MACHINE_MECHANICAL )
2762 GAME( 1990, slikshot17, slikshot,  slikshot_hi,       slikshot, itech8_state, init_slikshot, ROT90,  "Grand Products/Incredible Technologies", "Slick Shot (V1.7)", MACHINE_MECHANICAL )
2763 GAME( 1990, slikshot16, slikshot,  slikshot_hi,       slikshot, itech8_state, init_slikshot, ROT90,  "Grand Products/Incredible Technologies", "Slick Shot (V1.6)", MACHINE_MECHANICAL )
2764 GAME( 1990, dynobop,    0,         slikshot_hi,       dynobop,  itech8_state, init_slikshot, ROT90,  "Grand Products/Incredible Technologies", "Dyno Bop (V1.1)", MACHINE_MECHANICAL )
2765 GAME( 1990, sstrike,    0,         sstrike,           sstrike,  itech8_state, empty_init,    ROT270, "Strata/Incredible Technologies", "Super Strike Bowling (V1)", MACHINE_MECHANICAL )
2766 GAME( 1990, stratabs,   stratab,   sstrike,           stratabs, itech8_state, empty_init,    ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1 4T, Super Strike Bowling type PCB)", MACHINE_NOT_WORKING ) // need to figure out the control hookup for this set, service mode indicates it's still a trackball like stratab
2767 GAME( 1991, pokrdice,   0,         slikshot_lo_noz80, pokrdice, itech8_state, empty_init,    ROT90,  "Strata/Incredible Technologies", "Poker Dice (V1.7)", 0 )
2768 
2769 /* Hot Shots Tennis-style PCB */
2770 GAME( 1990, hstennis,   0,         hstennis_hi,       hstennis, itech8_state, init_hstennis, ROT90,  "Strata/Incredible Technologies", "Hot Shots Tennis (V1.1)", 0 )
2771 GAME( 1990, hstennis10, hstennis,  hstennis_hi,       hstennis, itech8_state, init_hstennis, ROT90,  "Strata/Incredible Technologies", "Hot Shots Tennis (V1.0)", 0 )
2772 GAME( 1991, arlingtn,   0,         hstennis_hi,       arlingtn, itech8_state, init_arligntn, ROT0,   "Strata/Incredible Technologies", "Arlington Horse Racing (v1.40-D)", 0 )
2773 GAME( 1991, arlingtna,  arlingtn,  hstennis_hi,       arlingtn, itech8_state, init_arligntn, ROT0,   "Strata/Incredible Technologies", "Arlington Horse Racing (v1.21-D)", 0 )
2774 GAME( 1991, peggle,     0,         hstennis_lo,       peggle,   itech8_state, init_peggle,   ROT90,  "Strata/Incredible Technologies", "Peggle (Joystick, v1.0)", 0 )
2775 GAME( 1991, pegglet,    peggle,    hstennis_lo,       pegglet,  itech8_state, init_peggle,   ROT90,  "Strata/Incredible Technologies", "Peggle (Trackball, v1.0)", 0 )
2776 GAME( 1992, neckneck,   0,         hstennis_lo,       neckneck, itech8_state, init_neckneck, ROT0,   "Bundra Games/Incredible Technologies", "Neck-n-Neck (v1.2)", 0 )
2777 
2778 /* Rim Rockin' Basketball-style PCB */
2779 GAME( 1991, rimrockn,    0,        rimrockn,          rimrockn, itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.2)", 0 )
2780 GAME( 1991, rimrockn20,  rimrockn, rimrockn,          rimrockn, itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.0)", 0 )
2781 GAME( 1991, rimrockn16,  rimrockn, rimrockn,          rimrockn, itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.6)", 0 )
2782 GAME( 1991, rimrockn12,  rimrockn, rimrockn,          rimrockn, itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.2)", 0 )
2783 GAME( 1991, rimrockn12b, rimrockn, rimrockn,          rimrockn, itech8_state, empty_init,    ROT0,   "bootleg",                        "Rim Rockin' Basketball (V1.2, bootleg)", 0 )
2784 
2785 /* Ninja Clowns-style PCB */
2786 GAME( 1991, ninclown,   0,         ninclown,          ninclown, itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Ninja Clowns (27 oct 91)", 0 )
2787 
2788 /* Golden Tee Golf II-style PCB */
2789 GAME( 1992, gpgolf,     0,         gtg2,              gpgolf,   itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Par Golf (Joystick, V1.1)", 0 ) /* Seems to stall during Demo Mode?? */
2790 GAME( 1991, gpgolfa,    gpgolf,    gtg2,              gpgolf,   itech8_state, empty_init,    ROT0,   "Strata/Incredible Technologies", "Golden Par Golf (Joystick, V1.0)", 0 ) /* Seems to stall during Demo Mode?? */
2791 GAME( 1992, gtg2,       0,         gtg2,              gtg2,     itech8_state, init_invbank,  ROT0,   "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V2.2)", 0 )
2792