Previous 199869 Revisions Next

r33350 Wednesday 12th November, 2014 at 05:48:27 UTC by Alex W. Jackson
line endings (nw)
[src/mame/drivers]tmaster.c

trunk/src/mame/drivers/tmaster.c
r241861r241862
1/***************************************************************************
2 
3                      -= Touch Master / Galaxy Games =-
4 
5         driver by Luca Elia (l.elia@tin.it) and Mariusz Wojcieszek
6 
7 
8CPU:    68000
9Video:  Blitter, double framebuffer
10Sound:  OKI6295
11 
12[Touch Master]
13 
14Input:  Microtouch touch screen
15Other:  Dallas NVRAM + optional RTC
16 
17To Do:
18 - Coin optics
19 - Correct sound banking
20 - Proper protection emulation in tm4k and later games
21 - Find cause and fix hang in Solitaire Erotic (all Touchmaster version hang in this game)
22 
23To be dumped and added:
24 
25Touch Master 6000 <-- There doesn't seem to be a "6000" version
26Touch Master 7000 *
27Touch Master 8000 *
28 
29* There are alternate region/state version with modifications due to legal issues
30  Touch Master (current set) is a Euro version, all other sets are "DOMESTIC" (AKA "Standard").
31  Is there a Touch Master 6000?  TM5K is version 7.10, then TM7K is version 8, TM8K is version 9.xx
32 
33- There are known regional versions like California, Minnesota and likely others.  The difference
34  between regional sets are not known at this time.
35 
36- Starting with Touch Master 2000, each later version is a chipswap for the mainboard.
37   IE: Touch Master 8000 chips can update any Touch Master mainboard 2000 through 7000
38  Each version (IE: 2000, 3000, 7000 ect) has different girls for Strip Poker ;-)
39 
40Touch Master 8000 part lists (from service bulletin):
41 
42A-5343-60194-3  U8  Sound
43A-5343-60194-2  U51 Program code
44A-5343-60194-1  U52 Program code
45A-5343-60194-6  U36 Graphics
46A-5343-60194-4  U37 Graphics
47A-5343-60194-7  U38 Graphics
48A-5343-60194-5  U39 Graphics
49A-5343-60194-8  U40 Graphics
50A-5343-60194-9  U41 Graphics
51A-21657-007     Security Key
52 
53The above set is an undumped alternate set, maybe a Euro or special version.
54 
55+---------------------------------------------------------------+
56|  W24257AK                          GRAPHICS.U37  GRAPHICS.U39 |
57|             SECURITY.J12                                      |
58| PROGRAM.U52          DS1232        GRAPHICS.U36  GRAPHICS.U38 |
59|                                                               |
60|  W24257AK                          GRAPHICS.U40  GRAPHICS.U41 |
61|               68HC000FN12                                     |
62| PROGRAM.U51                                                   |
63|                                                               |
64|  DS1225AB.U62                      XC3042A     W241024AJ (x2) |
65|                                                               |
66|   3.664MHZ  24MHz                              W241024AJ (x2) |
67| SCN68681       CY7C128A       SOUND.U8    32MHz               |
68|     LED2 LED1  CY7C128A                                       |
69|    U62                              M6295                     |
70-                                                               |
71 |Serial Port              LED3                               J8|
72-                                                            VOL|
73|  J11    J2      J5    J3       J10        J9          J6    J1|
74+---------------------------------------------------------------+
75 
76U62 is a 16 DIN for a RTC chip (optional)
77J Connectors used for all input/output and power. PCB is NON-JAMMA
78 
79Chips:
80   CPU: MC68HC000FN12
81 Video: XC3042A (Sigma Xilinx FPGA gate array)
82 Sound: OKI M6295
83   OSC: 32MHz, 24MHz & 8.664MHz
84 Other: SCN68681C1N40 (Serial controller chip)
85        DALLAS DS1225AB-85 Nonvolatile SRAM
86        DALLAS DS1204V (used for security)
87        DALLAS DS1232 (MicroMonitor Chip)
88   RAM: W24257AK-15 (x2 used for CPU data)
89        CY7C128A-55PC (x2 used for serial communication)
90        W241024AJ-15 (x4 used for blitter frame buffer)
91 
92******************************************************************
93 
94[Galaxy Games]
95 
96Input:  Trackballs and buttons
97Other:  EEPROM
98To Do:
99 
100- Coin optics
101 
102***************************************************************************/
103 
104#include "emu.h"
105#include "cpu/m68000/m68000.h"
106#include "sound/okim6295.h"
107#include "machine/eepromser.h"
108#include "machine/microtch.h"
109#include "machine/mc68681.h"
110#include "machine/nvram.h"
111#include "machine/ds1204.h"
112 
113/***************************************************************************
114 
115                                 General
116 
117***************************************************************************/
118 
119class tmaster_state : public driver_device
120{
121public:
122   tmaster_state(const machine_config &mconfig, device_type type, const char *tag)
123      : driver_device(mconfig, type, tag),
124      m_maincpu(*this,"maincpu"),
125      m_microtouch(*this,"microtouch"),
126      m_regs(*this, "regs"),
127      m_galgames_ram(*this, "galgames_ram"),
128      m_oki(*this, "oki"),
129      m_duart(*this, "duart68681"),
130      m_screen(*this, "screen"),
131      m_palette(*this, "palette") { }
132 
133   required_device<cpu_device> m_maincpu;
134   optional_device<microtouch_device> m_microtouch;
135   required_shared_ptr<UINT16> m_regs;
136   optional_shared_ptr<UINT16> m_galgames_ram;
137   required_device<okim6295_device> m_oki;
138   optional_device<mc68681_device> m_duart;
139   required_device<screen_device> m_screen;
140   required_device<palette_device> m_palette;
141 
142   int m_okibank;
143   UINT8 m_rtc_ram[8];
144   bitmap_ind16 m_bitmap[2][2];
145   UINT16 m_color;
146   UINT16 m_addr;
147   UINT32 m_gfx_offs;
148   UINT32 m_gfx_size;
149   int (tmaster_state::*m_compute_addr) (UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
150   UINT16 m_galgames_cart;
151   UINT32 m_palette_offset;
152   UINT8 m_palette_index;
153   UINT8 m_palette_data[3];
154 
155   DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
156   DECLARE_READ16_MEMBER(rtc_r);
157   DECLARE_WRITE16_MEMBER(rtc_w);
158   DECLARE_WRITE16_MEMBER(tmaster_color_w);
159   DECLARE_WRITE16_MEMBER(tmaster_addr_w);
160   DECLARE_WRITE16_MEMBER(tmaster_blitter_w);
161   DECLARE_READ16_MEMBER(tmaster_blitter_r);
162   DECLARE_READ_LINE_MEMBER(read_rand);
163   DECLARE_READ16_MEMBER(galgames_eeprom_r);
164   DECLARE_WRITE16_MEMBER(galgames_eeprom_w);
165   DECLARE_WRITE16_MEMBER(galgames_palette_offset_w);
166   DECLARE_WRITE16_MEMBER(galgames_palette_data_w);
167   DECLARE_READ16_MEMBER(galgames_okiram_r);
168   DECLARE_WRITE16_MEMBER(galgames_okiram_w);
169   DECLARE_WRITE16_MEMBER(galgames_cart_sel_w);
170   DECLARE_READ16_MEMBER(galgames_cart_clock_r);
171   DECLARE_WRITE16_MEMBER(galgames_cart_clock_w);
172   DECLARE_READ16_MEMBER(galgames_cart_data_r);
173   DECLARE_WRITE16_MEMBER(galgames_cart_data_w);
174   DECLARE_READ16_MEMBER(dummy_read_01);
175   DECLARE_WRITE_LINE_MEMBER(write_oki_bank0);
176   DECLARE_WRITE_LINE_MEMBER(write_oki_bank1);
177   DECLARE_DRIVER_INIT(galgames);
178   DECLARE_DRIVER_INIT(galgame2);
179   DECLARE_MACHINE_RESET(tmaster);
180   DECLARE_VIDEO_START(tmaster);
181   DECLARE_MACHINE_RESET(galgames);
182   DECLARE_VIDEO_START(galgames);
183   UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
184   TIMER_DEVICE_CALLBACK_MEMBER(tm3k_interrupt);
185   UINT8 binary_to_BCD(UINT8 data);
186   int tmaster_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
187   int galgames_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
188   void tmaster_draw();
189   void galgames_update_rombank(UINT32 cart);
190};
191 
192 
193/***************************************************************************
194 
195                                   Sound
196 
197***************************************************************************/
198 
199WRITE_LINE_MEMBER(tmaster_state::write_oki_bank0)
200{
201   if (state)
202      m_okibank |= 1;
203   else
204      m_okibank &= ~1;
205 
206   m_oki->set_bank_base(m_okibank * 0x40000);
207}
208 
209WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
210{
211   if (state)
212      m_okibank |= 2;
213   else
214      m_okibank &= ~2;
215 
216   m_oki->set_bank_base(m_okibank * 0x40000);
217}
218 
219/***************************************************************************
220 
221    68681 DUART <-> Microtouch touch screen controller communication
222 
223***************************************************************************/
224 
225WRITE_LINE_MEMBER(tmaster_state::duart_irq_handler)
226{
227   m_maincpu->set_input_line_and_vector(4, state, m_duart->get_irq_vector());
228};
229 
230/***************************************************************************
231 
232  DS1644 RTC
233 
234***************************************************************************/
235 
236 
237UINT8 tmaster_state::binary_to_BCD(UINT8 data)
238{
239   data %= 100;
240 
241   return ((data / 10) << 4) | (data %10);
242}
243 
244READ16_MEMBER(tmaster_state::rtc_r)
245{
246   system_time systime;
247 
248   machine().current_datetime(systime);
249   m_rtc_ram[0x1] = binary_to_BCD(systime.local_time.second);
250   m_rtc_ram[0x2] = binary_to_BCD(systime.local_time.minute);
251   m_rtc_ram[0x3] = binary_to_BCD(systime.local_time.hour);
252   m_rtc_ram[0x4] = binary_to_BCD(systime.local_time.weekday);
253   m_rtc_ram[0x5] = binary_to_BCD(systime.local_time.mday);
254   m_rtc_ram[0x6] = binary_to_BCD(systime.local_time.month+1);
255   m_rtc_ram[0x7] = binary_to_BCD(systime.local_time.year % 100);
256 
257   return m_rtc_ram[offset];
258}
259 
260WRITE16_MEMBER(tmaster_state::rtc_w)
261{
262   if ( offset == 0 )
263   {
264      m_rtc_ram[0x0] = data & 0xff;
265   }
266}
267 
268 
269/***************************************************************************
270 
271                                Video & Blitter
272 
273 
274    Offset:     Bits:                     Value:
275 
276        00
277 
278        02      fedc ba-- ---- ----
279                ---- --9- ---- ----       Layer 1 Buffer To Display
280                ---- ---8 ---- ----       Layer 0 Buffer To Display
281                ---- ---- 7654 3210
282 
283        04                                Width
284        06                                X
285 
286        08                                Height - 1
287        0A                                Y
288 
289        0C                                Source Address (low)
290        0E                                Source Address (mid)
291 
292        10      fedc ba98 ---- ----
293                ---- ---- 7--- ----       Layer
294                ---- ---- -6-- ----       Buffer
295                ---- ---- --5- ----       Solid Fill
296                ---- ---- ---4 ----       flipped by lev.3 interrupt routine
297                ---- ---- ---- 3---       flipped by lev.2 interrupt routine
298                ---- ---- ---- -2--       flipped by lev.1 interrupt routine
299                ---- ---- ---- --1-       Flip Y
300                ---- ---- ---- ---0       Flip X
301 
302    Addr Register:
303 
304                fedc ba98 ---- ----       Solid Fill Pen
305                ---- ---- 7654 3210       Source Address (high)
306 
307    Color Register:
308 
309                fedc ba98 ---- ----       Source Pen (Pen Replacement Mode)
310                ---- ---- 7654 3210       Palette (0-f) / Destination Pen (Pen Replacement Mode)
311 
312    A write to the source address (mid) triggers the blit.
313    A the end of the blit, a level 2 IRQ is issued.
314 
315***************************************************************************/
316 
317int tmaster_state::tmaster_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high)
318{
319   return (reg_low & 0xff) | ((reg_mid & 0x1ff) << 8) | (reg_high << 17);
320}
321 
322int tmaster_state::galgames_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high)
323{
324   return reg_low | (reg_mid << 16);
325}
326 
327VIDEO_START_MEMBER(tmaster_state,tmaster)
328{
329   int layer, buffer;
330   for (layer = 0; layer < 2; layer++)
331   {
332      for (buffer = 0; buffer < 2; buffer++)
333      {
334         m_screen->register_screen_bitmap(m_bitmap[layer][buffer]);
335         m_bitmap[layer][buffer].fill(0xff);
336      }
337   }
338 
339   m_compute_addr = &tmaster_state::tmaster_compute_addr;
340}
341 
342VIDEO_START_MEMBER(tmaster_state,galgames)
343{
344   VIDEO_START_CALL_MEMBER( tmaster );
345   m_compute_addr = &tmaster_state::galgames_compute_addr;
346}
347 
348UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
349{
350   int layers_ctrl = -1;
351 
352#ifdef MAME_DEBUG
353   if (machine().input().code_pressed(KEYCODE_Z))
354   {
355      int mask = 0;
356      if (machine().input().code_pressed(KEYCODE_Q))  mask |= 1;
357      if (machine().input().code_pressed(KEYCODE_W))  mask |= 2;
358      if (mask != 0) layers_ctrl &= mask;
359   }
360#endif
361 
362 
363   bitmap.fill(m_palette->black_pen(), cliprect);
364 
365   if (layers_ctrl & 1)    copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
366   if (layers_ctrl & 2)    copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
367 
368   return 0;
369}
370 
371WRITE16_MEMBER(tmaster_state::tmaster_color_w)
372{
373   COMBINE_DATA( &m_color );
374}
375 
376WRITE16_MEMBER(tmaster_state::tmaster_addr_w)
377{
378   COMBINE_DATA( &m_addr );
379}
380 
381void tmaster_state::tmaster_draw()
382{
383   int x,y,x0,x1,y0,y1,dx,dy,flipx,flipy,sx,sy,sw,sh, addr, mode, layer,buffer, color;
384 
385   UINT8 *gfxdata  =   memregion( "blitter" )->base() + m_gfx_offs;
386 
387   UINT16 pen;
388 
389   buffer  =   (m_regs[0x02/2] >> 8) & 3;   // 1 bit per layer, selects the currently displayed buffer
390   sw      =    m_regs[0x04/2];
391   sx      =    m_regs[0x06/2];
392   sh      =    m_regs[0x08/2] + 1;
393   sy      =    m_regs[0x0a/2];
394   addr    =   (this->*m_compute_addr)(
395               m_regs[0x0c/2],
396               m_regs[0x0e/2], m_addr);
397   mode    =    m_regs[0x10/2];
398 
399   layer   =   (mode >> 7) & 1;    // layer to draw to
400   buffer  =   ((mode >> 6) & 1) ^ ((buffer >> layer) & 1);    // bit 6 selects whether to use the opposite buffer to that displayed
401   bitmap_ind16 &bitmap    =   m_bitmap[layer][buffer];
402 
403   addr <<= 1;
404 
405#ifdef MAME_DEBUG
406#if 0
407   logerror("%s: blit w %03x, h %02x, x %03x, y %02x, src %06x, fill/addr %04x, repl/color %04x, mode %02x\n", machine().describe_context(),
408         sw,sh,sx,sy, addr, m_addr, m_color, mode
409   );
410#endif
411#endif
412 
413   flipx = mode & 1;
414   flipy = mode & 2;
415 
416   if (flipx)  { x0 = sw-1;    x1 = -1;    dx = -1;    sx -= sw-1; }
417   else        { x0 = 0;       x1 = sw;    dx = +1;    }
418 
419   if (flipy)  { y0 = sh-1;    y1 = -1;    dy = -1;    sy -= sh-1; }
420   else        { y0 = 0;       y1 = sh;    dy = +1;    }
421 
422   sx = (sx & 0x7fff) - (sx & 0x8000);
423   sy = (sy & 0x7fff) - (sy & 0x8000);
424 
425   color = (m_color & 0x0f) << 8;
426 
427   switch (mode & 0x20)
428   {
429      case 0x00:                          // blit with transparency
430         if (addr > m_gfx_size - sw*sh)
431         {
432            logerror("%s: blit error, addr %06x out of bounds\n", machine().describe_context(),addr);
433            addr = m_gfx_size - sw*sh;
434         }
435 
436         if ( mode & 0x200 )
437         {
438            // copy from ROM, replacing occurrences of src pen with dst pen
439 
440            UINT8 dst_pen = (m_color >> 8) & 0xff;
441            UINT8 src_pen = (m_color >> 0) & 0xff;
442 
443            for (y = y0; y != y1; y += dy)
444            {
445               for (x = x0; x != x1; x += dx)
446               {
447                  pen = gfxdata[addr++];
448 
449                  if (pen == src_pen)
450                     pen = dst_pen;
451 
452                  if ((pen != 0xff) && (sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
453                     bitmap.pix16(sy + y, sx + x) = pen + color;
454               }
455            }
456         }
457         else
458         {
459            // copy from ROM as is
460 
461            for (y = y0; y != y1; y += dy)
462            {
463               for (x = x0; x != x1; x += dx)
464               {
465                  pen = gfxdata[addr++];
466 
467                  if ((pen != 0xff) && (sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
468                     bitmap.pix16(sy + y, sx + x) = pen + color;
469               }
470            }
471         }
472         break;
473 
474      case 0x20:                          // solid fill
475         pen = ((m_addr >> 8) & 0xff) + color;
476 
477         if ((pen & 0xff) == 0xff)
478            pen = 0xff;
479 
480         for (y = y0; y != y1; y += dy)
481         {
482            for (x = x0; x != x1; x += dx)
483            {
484               if ((sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
485                  bitmap.pix16(sy + y, sx + x) = pen;
486            }
487         }
488         break;
489 
490   }
491}
492 
493WRITE16_MEMBER(tmaster_state::tmaster_blitter_w)
494{
495   COMBINE_DATA( m_regs + offset );
496   switch (offset*2)
497   {
498      case 0x0e:
499         tmaster_draw();
500         m_maincpu->set_input_line(2, HOLD_LINE);
501         break;
502   }
503}
504 
505READ16_MEMBER(tmaster_state::tmaster_blitter_r)
506{
507   return 0x0000;  // bit 7 = 1 -> blitter busy
508}
509 
510/***************************************************************************
511 
512                                Memory Maps
513 
514***************************************************************************/
515 
516/***************************************************************************
517                                Touch Master
518***************************************************************************/
519 
520READ_LINE_MEMBER(tmaster_state::read_rand)
521{
522   return machine().rand()&1;
523}
524 
525static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16, tmaster_state )
526   AM_RANGE( 0x000000, 0x1fffff ) AM_ROM
527   AM_RANGE( 0x200000, 0x27ffff ) AM_RAM
528   AM_RANGE( 0x280000, 0x28ffef ) AM_RAM AM_SHARE("nvram")
529   AM_RANGE( 0x28fff0, 0x28ffff ) AM_READWRITE(rtc_r, rtc_w )
530 
531   AM_RANGE( 0x300010, 0x300011 ) AM_READ_PORT("COIN")
532 
533   AM_RANGE( 0x300020, 0x30003f ) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
534 
535   AM_RANGE( 0x300040, 0x300041 ) AM_WRITE_PORT("OUT")
536 
537   AM_RANGE( 0x300070, 0x300071 ) AM_WRITE(tmaster_addr_w )
538 
539   AM_RANGE( 0x500000, 0x500011 ) AM_WRITE(tmaster_blitter_w ) AM_SHARE("regs")
540   AM_RANGE( 0x500010, 0x500011 ) AM_READ(tmaster_blitter_r )
541 
542   AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often
543 
544   AM_RANGE( 0x600000, 0x601fff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
545 
546   AM_RANGE( 0x800000, 0x800001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
547 
548   AM_RANGE( 0x800010, 0x800011 ) AM_WRITE(tmaster_color_w )
549ADDRESS_MAP_END
550 
551 
552/***************************************************************************
553                                Galaxy Games
554***************************************************************************/
555 
556// ROM/RAM Banking
557 
558#define GALGAMES_BANK_000000_R  "000000_r"
559#define GALGAMES_BANK_000000_W  "000000_w"
560#define GALGAMES_BANK_200000_R  "200000_r"
561#define GALGAMES_BANK_200000_W  "200000_w"
562#define GALGAMES_BANK_240000_R  "240000_r"
563 
564#define GALGAMES_RAM    0
565#define GALGAMES_ROM0   1
566#define GALGAMES_ROM1   2
567#define GALGAMES_ROM2   3
568#define GALGAMES_ROM3   4
569 
570 
571// NVRAM (5 x EEPROM)
572 
573#define GALGAMES_EEPROM_BIOS  "eeprom_bios"
574#define GALGAMES_EEPROM_CART1 "eeprom_cart1"
575#define GALGAMES_EEPROM_CART2 "eeprom_cart2"
576#define GALGAMES_EEPROM_CART3 "eeprom_cart3"
577#define GALGAMES_EEPROM_CART4 "eeprom_cart4"
578 
579static const char *const galgames_eeprom_names[5] = { GALGAMES_EEPROM_BIOS, GALGAMES_EEPROM_CART1, GALGAMES_EEPROM_CART2, GALGAMES_EEPROM_CART3, GALGAMES_EEPROM_CART4 };
580 
581READ16_MEMBER(tmaster_state::galgames_eeprom_r)
582{
583   eeprom_serial_93cxx_device *eeprom = machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[m_galgames_cart]);
584 
585   return eeprom->do_read() ? 0x80 : 0x00;
586}
587 
588WRITE16_MEMBER(tmaster_state::galgames_eeprom_w)
589{
590   if (data & ~0x0003)
591      logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",space.device().safe_pc(),data);
592 
593   if ( ACCESSING_BITS_0_7 )
594   {
595      eeprom_serial_93cxx_device *eeprom = machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[m_galgames_cart]);
596 
597      // latch the bit
598      eeprom->di_write(data & 0x0001);
599 
600      // clock line asserted: write latch or select next bit to read
601      eeprom->clk_write((data & 0x0002) ? ASSERT_LINE : CLEAR_LINE );
602   }
603}
604 
605// BT481A Palette RAMDAC
606 
607WRITE16_MEMBER(tmaster_state::galgames_palette_offset_w)
608{
609   if (ACCESSING_BITS_0_7)
610   {
611      m_palette_offset = data & 0xff;
612      m_palette_index = 0;
613   }
614}
615WRITE16_MEMBER(tmaster_state::galgames_palette_data_w)
616{
617   if (ACCESSING_BITS_0_7)
618   {
619      m_palette_data[m_palette_index] = data & 0xff;
620      if (++m_palette_index == 3)
621      {
622         int palette_base;
623         for (palette_base = 0; palette_base < 0x1000; palette_base += 0x100)
624            m_palette->set_pen_color(m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2]));
625         m_palette_index = 0;
626         m_palette_offset++;
627      }
628   }
629}
630 
631// Sound
632READ16_MEMBER(tmaster_state::galgames_okiram_r)
633{
634   return memregion("oki")->base()[offset] | 0xff00;
635}
636WRITE16_MEMBER(tmaster_state::galgames_okiram_w)
637{
638   if (ACCESSING_BITS_0_7)
639      memregion("oki")->base()[offset] = data & 0xff;
640}
641 
642// Carts (preliminary, PIC communication is not implemented)
643 
644void tmaster_state::galgames_update_rombank(UINT32 cart)
645{
646   m_galgames_cart = cart;
647 
648   m_gfx_offs = 0x200000 * cart;
649 
650   if (membank(GALGAMES_BANK_000000_R)->entry() == GALGAMES_RAM)
651      membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_ROM0 + m_galgames_cart);  // rom
652 
653   membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0 + m_galgames_cart);  // rom
654}
655 
656WRITE16_MEMBER(tmaster_state::galgames_cart_sel_w)
657{
658   // cart selection (0 1 2 3 4 7)
659 
660   if (ACCESSING_BITS_0_7)
661   {
662      int i;
663 
664      switch( data & 0xff )
665      {
666         case 0x07:      // 7 resets the eeprom
667            for (i = 0; i < 5; i++)
668               machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[i])->cs_write(CLEAR_LINE);
669            break;
670 
671         case 0x00:
672         case 0x01:
673         case 0x02:
674         case 0x03:
675         case 0x04:
676            machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[data & 0xff])->cs_write(ASSERT_LINE);
677            galgames_update_rombank(data & 0xff);
678            break;
679 
680         default:
681            machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[0])->cs_write(ASSERT_LINE);
682            galgames_update_rombank(0);
683            logerror("%06x: unknown cart sel = %04x\n", space.device().safe_pc(), data);
684            break;
685      }
686   }
687}
688 
689READ16_MEMBER(tmaster_state::galgames_cart_clock_r)
690{
691   return 0x0080;
692}
693 
694WRITE16_MEMBER(tmaster_state::galgames_cart_clock_w)
695{
696   if (ACCESSING_BITS_0_7)
697   {
698      // bit 3 = clock
699 
700      // ROM/RAM banking
701      if ((data & 0xf7) == 0x05)
702      {
703         membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_RAM);   // ram
704         galgames_update_rombank(m_galgames_cart);
705         logerror("%06x: romram bank = %04x\n", space.device().safe_pc(), data);
706      }
707      else
708      {
709         membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0);  // rom
710         membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM);   // ram
711         logerror("%06x: unknown romram bank = %04x\n", space.device().safe_pc(), data);
712      }
713   }
714}
715 
716READ16_MEMBER(tmaster_state::galgames_cart_data_r)
717{
718   return 0;
719}
720WRITE16_MEMBER(tmaster_state::galgames_cart_data_w)
721{
722}
723 
724 
725READ16_MEMBER(tmaster_state::dummy_read_01)
726{
727   return 0x3; // Pass the check at PC = 0xfae & a later one
728}
729 
730static ADDRESS_MAP_START( galgames_map, AS_PROGRAM, 16, tmaster_state )
731 
732   AM_RANGE( 0x000000, 0x03ffff ) AM_READ_BANK(GALGAMES_BANK_000000_R) AM_WRITE_BANK(GALGAMES_BANK_000000_W) AM_SHARE("galgames_ram")
733   AM_RANGE( 0x040000, 0x1fffff ) AM_ROM AM_REGION( "maincpu", 0x40000 )
734   AM_RANGE( 0x200000, 0x23ffff ) AM_READ_BANK(GALGAMES_BANK_200000_R) AM_WRITE_BANK(GALGAMES_BANK_200000_W)
735   AM_RANGE( 0x240000, 0x3fffff ) AM_READ_BANK(GALGAMES_BANK_240000_R)
736 
737   AM_RANGE( 0x400000, 0x400011 ) AM_WRITE(tmaster_blitter_w ) AM_SHARE("regs")
738   AM_RANGE( 0x400012, 0x400013 ) AM_WRITE(tmaster_addr_w )
739   AM_RANGE( 0x400014, 0x400015 ) AM_WRITE(tmaster_color_w )
740   AM_RANGE( 0x400020, 0x400021 ) AM_READ(tmaster_blitter_r )
741 
742   AM_RANGE( 0x600000, 0x600001 ) AM_READ(dummy_read_01 ) AM_WRITENOP
743   AM_RANGE( 0x700000, 0x700001 ) AM_READ(dummy_read_01 ) AM_WRITENOP
744   AM_RANGE( 0x800020, 0x80003f ) AM_NOP   // ?
745   AM_RANGE( 0x900000, 0x900001 ) AM_WRITE(watchdog_reset16_w )
746 
747   AM_RANGE( 0xa00000, 0xa00001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
748   AM_RANGE( 0xb00000, 0xb7ffff ) AM_READWRITE(galgames_okiram_r, galgames_okiram_w ) // (only low bytes tested) 4x N341024SJ-15
749 
750   AM_RANGE( 0xc00000, 0xc00001 ) AM_WRITE(galgames_palette_offset_w )
751   AM_RANGE( 0xc00002, 0xc00003 ) AM_WRITE(galgames_palette_data_w )
752 
753   AM_RANGE( 0xd00000, 0xd00001 ) AM_READ_PORT("TRACKBALL_1_X")
754   AM_RANGE( 0xd00000, 0xd00001 ) AM_WRITENOP
755   AM_RANGE( 0xd00002, 0xd00003 ) AM_READ_PORT("TRACKBALL_1_Y")
756   AM_RANGE( 0xd00004, 0xd00005 ) AM_READ_PORT("TRACKBALL_2_X")
757   AM_RANGE( 0xd00006, 0xd00007 ) AM_READ_PORT("TRACKBALL_2_Y")
758   AM_RANGE( 0xd00008, 0xd00009 ) AM_READ_PORT("P1")
759   AM_RANGE( 0xd0000a, 0xd0000b ) AM_READ_PORT("P2")
760   AM_RANGE( 0xd0000c, 0xd0000d ) AM_READ_PORT("SYSTEM") AM_WRITENOP
761 
762   AM_RANGE( 0xd0000e, 0xd0000f ) AM_WRITE(galgames_cart_sel_w )
763   AM_RANGE( 0xd00010, 0xd00011 ) AM_READWRITE(galgames_eeprom_r, galgames_eeprom_w )
764   AM_RANGE( 0xd00012, 0xd00013 ) AM_READWRITE(galgames_cart_data_r, galgames_cart_data_w )
765   AM_RANGE( 0xd00014, 0xd00015 ) AM_READWRITE(galgames_cart_clock_r, galgames_cart_clock_w )
766 
767ADDRESS_MAP_END
768 
769 
770/***************************************************************************
771 
772                                Input Ports
773 
774***************************************************************************/
775static INPUT_PORTS_START( tm )
776   PORT_START("COIN")
777   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN5 )    // "M. Coin 1 Input"
778   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN6 )    // "M. Coin 2 Input"
779   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BILL1 ) PORT_IMPULSE(2)    // "DBV Input"
780   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
781   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )  // service coin?
782   PORT_SERVICE_NO_TOGGLE( 0x0020, IP_ACTIVE_LOW )
783   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "Calibrate"
784   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
785   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
786   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
787   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
788   PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, read_rand )
789   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN1 )    // "E. Coin 1" (ECA?) tmaster defaults to e. coin,
790   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN2 )    // "E. Coin 2" (ECA?) rather than m. coin
791   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )    // "E. Coin 3" (ECA?) so they're coin1-coin4
792   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 )    // "E. Coin 4" (ECA?)
793 
794   PORT_START("OUT")
795   //0800?
796   PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, write_oki_bank1 )
797   PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, write_oki_bank0 )
798   //0002?
799INPUT_PORTS_END
800 
801static INPUT_PORTS_START( tm2k )
802   PORT_INCLUDE( tm )
803 
804   PORT_MODIFY("COIN")
805   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN3 )    // "E. Coin 1" (ECA mech) The rest of the tm games
806   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN4 )    // "E. Coin 2" (ECA mech) Default to m. coin
807   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN5 )    // "E. Coin 3" (ECA mech) So these are coin3-coin6
808   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN6 )    // "E. Coin 4" (ECA mech)
809INPUT_PORTS_END
810 
811static INPUT_PORTS_START( tm4k )
812   PORT_INCLUDE( tm2k )
813 
814   PORT_MODIFY("COIN")
815   PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, read_dq )
816 
817   PORT_MODIFY( "OUT" )
818   PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_rst )
819   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_dq )
820   PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_clk )
821INPUT_PORTS_END
822 
823static INPUT_PORTS_START( galgames )
824   PORT_START("P1")
825   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
826   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
827   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
828   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
829   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)   // Button A (right)
830   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)   // Button B (left)
831   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
832   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
833   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
834 
835   PORT_START("P2")
836   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
837   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
838   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
839   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
840   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)   // Button A (right)
841   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)   // Button B (left)
842   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1)          // DBA (coin)
843   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
844   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
845 
846   PORT_START("SYSTEM")
847   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )    // CS 1 (coin)
848   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )    // CS 2 (coin)
849   PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH )  // System Check
850   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
851   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
852   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
853   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
854   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
855   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
856 
857   PORT_START("TRACKBALL_1_X")
858   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(1) PORT_RESET
859 
860   PORT_START("TRACKBALL_1_Y")
861   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(1) PORT_RESET
862 
863   PORT_START("TRACKBALL_2_X")
864   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_RESET
865 
866   PORT_START("TRACKBALL_2_Y")
867   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_RESET
868INPUT_PORTS_END
869 
870 
871/***************************************************************************
872 
873                               Machine Drivers
874 
875***************************************************************************/
876 
877MACHINE_RESET_MEMBER(tmaster_state,tmaster)
878{
879   m_gfx_offs = 0;
880   m_gfx_size = memregion("blitter")->bytes();
881 
882}
883 
884TIMER_DEVICE_CALLBACK_MEMBER(tmaster_state::tm3k_interrupt)
885{
886   int scanline = param;
887 
888   if(scanline == 0) // vblank, FIXME
889      m_maincpu->set_input_line(3, HOLD_LINE);
890   else if((scanline % 16) == 0)
891      m_maincpu->set_input_line(1, HOLD_LINE);
892 
893   // lev 2 triggered at the end of the blit
894}
895 
896static MACHINE_CONFIG_START( tm, tmaster_state )
897   MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12MHz */
898   MCFG_CPU_PROGRAM_MAP(tmaster_map)
899   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, tm3k_interrupt, "screen", 0, 1)
900 
901   MCFG_MACHINE_RESET_OVERRIDE(tmaster_state,tmaster)
902 
903   MCFG_MC68681_ADD( "duart68681", XTAL_8_664MHz / 2 /*??*/)
904   MCFG_MC68681_IRQ_CALLBACK(WRITELINE(tmaster_state, duart_irq_handler))
905   MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("microtouch", microtouch_device, rx))
906 
907   MCFG_MICROTOUCH_ADD( "microtouch", 9600, DEVWRITELINE("duart68681", mc68681_device, rx_a_w) )
908 
909   MCFG_NVRAM_ADD_0FILL("nvram")
910 
911   MCFG_SCREEN_ADD("screen", RASTER)
912   MCFG_SCREEN_REFRESH_RATE(60)
913   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
914   MCFG_SCREEN_SIZE(400, 256)
915   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
916   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
917   MCFG_SCREEN_PALETTE("palette")
918 
919   MCFG_PALETTE_ADD("palette", 0x1000)
920   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
921 
922   MCFG_VIDEO_START_OVERRIDE(tmaster_state,tmaster)
923 
924   MCFG_SPEAKER_STANDARD_MONO("mono")
925 
926   MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
927   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
928MACHINE_CONFIG_END
929 
930static MACHINE_CONFIG_DERIVED( tm2k, tm )
931   MCFG_OKIM6295_REPLACE("oki", XTAL_32MHz / 16, OKIM6295_PIN7_HIGH)  /* 2MHz; clock frequency & pin 7 not verified */
932   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
933MACHINE_CONFIG_END
934 
935static MACHINE_CONFIG_DERIVED( tm4k, tm2k )
936   MCFG_DS1204_ADD("ds1204")
937MACHINE_CONFIG_END
938 
939MACHINE_RESET_MEMBER(tmaster_state,galgames)
940{
941   m_gfx_offs = 0;
942   m_gfx_size = 0x200000;
943 
944   membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0);  // rom
945   membank(GALGAMES_BANK_000000_W)->set_entry(GALGAMES_RAM);       // ram
946 
947   membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM);       // ram
948   membank(GALGAMES_BANK_200000_W)->set_entry(GALGAMES_RAM);       // ram
949 
950   membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0);  // rom
951 
952   galgames_update_rombank(0);
953 
954   m_maincpu->reset();
955}
956 
957static MACHINE_CONFIG_START( galgames, tmaster_state )
958   MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2)
959   MCFG_CPU_PROGRAM_MAP(galgames_map)
960   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, tm3k_interrupt, "screen", 0, 1)
961 
962   // 5 EEPROMs on the motherboard (for BIOS + 4 Carts)
963   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_BIOS)
964   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART1)
965   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART2)
966   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART3)
967   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART4)
968 
969   MCFG_MACHINE_RESET_OVERRIDE(tmaster_state, galgames )
970 
971   /* video hardware */
972   MCFG_SCREEN_ADD("screen", RASTER)
973   MCFG_SCREEN_REFRESH_RATE(60)
974   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
975   MCFG_SCREEN_SIZE(400, 256)
976   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
977   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
978   MCFG_SCREEN_PALETTE("palette")
979 
980   MCFG_PALETTE_ADD("palette", 0x1000) // only 0x100 used
981   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
982 
983   MCFG_VIDEO_START_OVERRIDE(tmaster_state,galgames)
984 
985   /* sound hardware */
986   MCFG_SPEAKER_STANDARD_MONO("mono")
987 
988   MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 8, OKIM6295_PIN7_LOW) // clock frequency & pin 7 not verified
989   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
990MACHINE_CONFIG_END
991 
992/*
993    Each cartridge contains a PIC, that should provide, among other things, the following header:
994 
995    4345 5331 3939 3700 0c10 ffb3 3c00 0000       "CES1997"
996    fffe f2f7 8557 c119 0000 0000 2340 188e
997*/
998static MACHINE_CONFIG_DERIVED( galgame2, galgames )
999//  MCFG_CPU_ADD("pic", PIC12C508, XTAL_24MHz / 2)
1000MACHINE_CONFIG_END
1001 
1002 
1003/***************************************************************************
1004 
1005                               ROMs Loading
1006 
1007***************************************************************************/
1008 
1009/***************************************************************************
1010 
1011Touch Master
10121996, Midway
1013 
101468000 @ 12MHz
1015u51 - u52 program code
1016u36 -> u39 gfx
1017u8 sound
1018OKI6295
1019NVSRAM DS1225a
1020Philips SCN68681
1021Xlinx XC3042a
1022 
1023***************************************************************************/
1024 
1025ROM_START( tm )
1026   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1027   ROM_LOAD16_BYTE( "tmaster_v3.00_euro.u51", 0x000000, 0x080000, CRC(edaa5874) SHA1(48b99bc7f5a6453def265967ca7d8eefdf9dc97b) ) /* Ver: 3.00 Euro 11-25-96 */
1028   ROM_LOAD16_BYTE( "tmaster_v3.00_euro.u52", 0x000001, 0x080000, CRC(e9fd30fc) SHA1(d91ea05d5f574603883336729fb9df705688945d) ) /* Ver: 3.00 Euro 11-25-96 */
1029 
1030   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1031   ROM_LOAD16_BYTE( "tmaster_v2.1.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1032   ROM_LOAD16_BYTE( "tmaster_v2.1.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
1033   // unused gap
1034   ROM_LOAD16_BYTE( "tmaster_v3.00.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Marked as Rev 3.00 */
1035   ROM_LOAD16_BYTE( "tmaster_v3.00.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Marked as Rev 3.00 */
1036 
1037   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1038   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1039   ROM_CONTINUE(           0xc0000, 0x040000 )
1040ROM_END
1041 
1042ROM_START( tmdo )
1043   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1044   ROM_LOAD16_BYTE( "tmaster_v2.2-01.u51", 0x000000, 0x080000, CRC(12e1b085) SHA1(b01325e0067204991a707db24e3e2036708ebccf) ) /* Ver: 2.2-01 Standard 10-17-96 */
1045   ROM_LOAD16_BYTE( "tmaster_v2.2-01.u52", 0x000001, 0x080000, CRC(6c2c643f) SHA1(8dd7930f4c499483ca46b0b97bde94cb8d6e06aa) ) /* Ver: 2.2-01 Standard 10-17-96 */
1046 
1047   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1048   ROM_LOAD16_BYTE( "tmaster_v2.1.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1049   ROM_LOAD16_BYTE( "tmaster_v2.1.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
1050   // unused gap
1051   ROM_LOAD16_BYTE( "tmaster_v2.1.u39", 0x300000, 0x080000, CRC(a4445260) SHA1(915347f69d7ea45f8f299a67d77ff437983495d2) ) /* Marked as Rev 2.1 */
1052   ROM_LOAD16_BYTE( "tmaster_v2.1.u37", 0x300001, 0x080000, CRC(0e140a3e) SHA1(10a34e3b95c0d36fe687fe8c1124ef244a93d720) ) /* Marked as Rev 2.1 */
1053 
1054   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1055   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1056   ROM_CONTINUE(           0xc0000, 0x040000 )
1057ROM_END
1058 
1059/***************************************************************************
1060 
1061Touchmaster 2000
1062by Midway (c) 1996
1063touchscreen game
1064 
1065All chips are ST M27C4001
1066---------------------------
1067 
1068Name_Board Location        Version               Use             Checksum
1069-------------------------------------------------------------------------
1070TM2K_v463.u51              4.63 Game Program & Cpu instructions   2342
1071TM2K_v463.u52              4.63 Game Program & Cpu instructions   4619
1072 
1073TM2K_v402.u51              4.02 Game Program & Cpu instructions   c517
1074TM2K_v402.u52              4.02 Game Program & Cpu instructions   e82c
1075 
1076TM2K_v400.u51              4.00 Game Program & Cpu instructions   a49b
1077TM2K_v400.u52              4.00 Game Program & Cpu instructions   7c2f
1078 
1079TM2K_graphic.u36           4.00 Video Images & Graphics           20cb
1080TM2K_graphic.u37           4.00 Video Images & Graphics           f5cf
1081TM2K_graphic.u38           4.00 Video Images & Graphics           14c7
1082TM2K_graphic.u39           4.00 Video Images & Graphics           043e
1083TM2K_graphic.u40           4.62 Video Images & Graphics           14c7
1084TM2K_graphic.u41           4.62 Video Images & Graphics           9334
1085TM2K_sound.u8              1.0  Audio Program & sounds            dbde
1086 
1087Does not require a security key
1088 
1089***************************************************************************/
1090 
1091ROM_START( tm2k )
1092   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1093   ROM_LOAD16_BYTE( "tm2k_v4.63.u51", 0x000000, 0x100000, CRC(f73fdb23) SHA1(d0a5e98d5de85fd3f29d1efe6b7aebe9e348c59b) ) /* Ver: 4.63 Standard 9-3-97 */
1094   ROM_LOAD16_BYTE( "tm2k_v4.63.u52", 0x000001, 0x100000, CRC(79ac719c) SHA1(7717362ea42fc36009e0fed430f07c946553bfd3) ) /* Ver: 4.63 Standard 9-3-97 */
1095 
1096   ROM_REGION( 0x600000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1097   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* First 4 graphic roms marked as Rev 4.00 */
1098   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1099   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1100   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1101   ROM_LOAD16_BYTE( "tm2k_graphic.u41", 0x500000, 0x080000, CRC(abac4ad3) SHA1(d3944a39b46f3e67ddb0ff7047685c6c716a393c) ) /* Last 2 graphics roms marked as Rev 4.62 */
1102   ROM_LOAD16_BYTE( "tm2k_graphic.u40", 0x500001, 0x080000, CRC(ca86b9a2) SHA1(bb639af4e0ee48c3231de5f0a0f14de20836216a) )
1103 
1104   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1105   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1106   ROM_CONTINUE(              0xc0000, 0x040000 )
1107ROM_END
1108 
1109ROM_START( tm2ka )
1110   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1111   ROM_LOAD16_BYTE( "tm2k_v4.02.u51", 0x000000, 0x080000, CRC(47269aeb) SHA1(6b7ebfde290f7d21a36a72b00dc6523490581edb) ) /* Ver: 4.02 Standard 5-30-97 */
1112   ROM_LOAD16_BYTE( "tm2k_v4.02.u52", 0x000001, 0x080000, CRC(2e3564ac) SHA1(9a71f38841bc17c291cb3f513b18ebe50fc18d9f) ) /* Ver: 4.02 Standard 5-30-97 */
1113 
1114   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1115   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* All 4 graphic roms marked as Rev 4.00 */
1116   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1117   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1118   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1119   /* Sockets U40 & U41 not populated with earlier Touchmaster 2000 sets */
1120 
1121   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1122   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1123   ROM_CONTINUE(              0xc0000, 0x040000 )
1124ROM_END
1125 
1126ROM_START( tm2kb )
1127   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1128   ROM_LOAD16_BYTE( "tm2k_v4.00.u51", 0x000000, 0x080000, CRC(c110502b) SHA1(e9415ed23b9bb0851548e75c208ebcbe6ac2a708) ) /* Ver: 4.00 Standard 5-16-97 */
1129   ROM_LOAD16_BYTE( "tm2k_v4.00.u52", 0x000001, 0x080000, CRC(a17c1d6e) SHA1(5ecb8f27f75469ab9600b3f640eb1acc7a3980e0) ) /* Ver: 4.00 Standard 5-16-97 */
1130 
1131   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1132   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* All 4 graphic roms marked as Rev 4.00 */
1133   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1134   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1135   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1136   /* Sockets U40 & U41 not populated with earlier Touchmaster 2000 sets */
1137 
1138   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1139   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1140   ROM_CONTINUE(              0xc0000, 0x040000 )
1141ROM_END
1142 
1143/***************************************************************************
1144 
1145Touchmaster 3000
1146by Midway (c) 1997
1147touchscreen game
1148 
1149All chips are SGS 27C801 (some kits/upgrades used mask roms)
1150---------------------------
1151 
1152Name_Board Location        Version               Use             Checksum
1153-------------------------------------------------------------------------
1154TM3K_v502.u51              5.02 Game Program & Cpu instructions   c308
1155TM3K_v502.u52              5.02 Game Program & Cpu instructions   4d5e
1156 
1157TM3K_v501.u51              5.01 Game Program & Cpu instructions   0c6c
1158TM3K_v501.u52              5.01 Game Program & Cpu instructions   b2d8
1159 
1160TM3K_graphic.u36           5.0  Video Images & Graphics           54f1
1161TM3K_graphic.u37           5.0  Video Images & Graphics           4856
1162TM3K_graphic.u38           5.0  Video Images & Graphics           5493
1163TM3K_graphic.u39           5.0  Video Images & Graphics           6029
1164TM3K_graphic.u40           5.0  Video Images & Graphics           ccb4
1165TM3K_graphic.u41           5.0  Video Images & Graphics           e9ab
1166TM3K_sound.u8              5.0  Audio Program & sounds            64d5
1167 
1168Does not require a security key
1169 
1170Box labeled as:
1171 
1172TMSTR 3000 UPGRADE KIT USA-DBV
117363373100870
1174 
1175***************************************************************************/
1176 
1177ROM_START( tm3k )
1178   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1179   ROM_LOAD16_BYTE( "tm3k_v5.02.u51", 0x000000, 0x100000, CRC(6267e2bd) SHA1(c81e5cd059a9ad2f6a36261738e39740a1a3a03f) ) /* TOUCHMASTER 3000 U51 DOMESTIC 5.02 (Standard 11-17-97) (yellow label) */
1180   ROM_LOAD16_BYTE( "tm3k_v5.02.u52", 0x000001, 0x100000, CRC(836fdf1e) SHA1(2ee9c0929950afb72f172b253d6c392e9a698037) ) /* TOUCHMASTER 3000 U52 DOMESTIC 5.02 (Standard 11-17-97) (yellow label) */
1181 
1182   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1183   ROM_LOAD16_BYTE( "tm3k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Labeled TOUCHMASTER U38 STANDARD 5.0 (pink label) */
1184   ROM_LOAD16_BYTE( "tm3k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Labeled TOUCHMASTER U36 STANDARD 5.0 (pink label) */
1185   ROM_LOAD16_BYTE( "tm3k_graphic.u39", 0x200000, 0x100000, CRC(206b56a6) SHA1(09e5e05bffd0a09abd24d668e2c59b56f2c79134) ) /* Labeled TOUCHMASTER U39 STANDARD 5.0 (pink label) */
1186   ROM_LOAD16_BYTE( "tm3k_graphic.u37", 0x200001, 0x100000, CRC(18f50eb3) SHA1(a7c9d3b24b5fd110380ec87d9200d55cad473efc) ) /* Labeled TOUCHMASTER U37 STANDARD 5.0 (pink label) */
1187   ROM_LOAD16_BYTE( "tm3k_graphic.u41", 0x400000, 0x100000, CRC(c35c0536) SHA1(a29fd88e8f3e124f6e84012c3573616f6447eeaa) ) /* Labeled TOUCHMASTER U41 STANDARD 5.0 (pink label) */
1188   ROM_LOAD16_BYTE( "tm3k_graphic.u40", 0x400001, 0x100000, CRC(353df7ca) SHA1(d6c5d5449af6b6a3acee219778583904c5b554b4) ) /* Labeled TOUCHMASTER U40 STANDARD 5.0 (pink label) */
1189 
1190   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1191   ROM_LOAD( "tm3k_sound.u8", 0x00000, 0x100000, CRC(d0ae33c1) SHA1(a079def9a086a091fcc4493a44fec756d2470415) ) /* Labeled TOUCHMASTER U8 5.0 (green label) */
1192ROM_END
1193 
1194ROM_START( tm3ka )
1195   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1196   ROM_LOAD16_BYTE( "tm3k_v5.01.u51", 0x000000, 0x100000, CRC(c9522279) SHA1(e613b791f831271722f05b7e96c35519fa9fc174) ) /* TOUCHMASTER 3000 U51 DOMESTIC 5.01 (Standard 11-4-97) (yellow label) */
1197   ROM_LOAD16_BYTE( "tm3k_v5.01.u52", 0x000001, 0x100000, CRC(8c6a0db7) SHA1(6b0eae60ea471cd8c4001749ac2677d8d4532567) ) /* TOUCHMASTER 3000 U52 DOMESTIC 5.01 (Standard 11-4-97) (yellow label) */
1198 
1199   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1200   ROM_LOAD16_BYTE( "tm3k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Labeled TOUCHMASTER U38 STANDARD 5.0 (pink label) */
1201   ROM_LOAD16_BYTE( "tm3k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Labeled TOUCHMASTER U36 STANDARD 5.0 (pink label) */
1202   ROM_LOAD16_BYTE( "tm3k_graphic.u39", 0x200000, 0x100000, CRC(206b56a6) SHA1(09e5e05bffd0a09abd24d668e2c59b56f2c79134) ) /* Labeled TOUCHMASTER U39 STANDARD 5.0 (pink label) */
1203   ROM_LOAD16_BYTE( "tm3k_graphic.u37", 0x200001, 0x100000, CRC(18f50eb3) SHA1(a7c9d3b24b5fd110380ec87d9200d55cad473efc) ) /* Labeled TOUCHMASTER U37 STANDARD 5.0 (pink label) */
1204   ROM_LOAD16_BYTE( "tm3k_graphic.u41", 0x400000, 0x100000, CRC(c35c0536) SHA1(a29fd88e8f3e124f6e84012c3573616f6447eeaa) ) /* Labeled TOUCHMASTER U41 STANDARD 5.0 (pink label) */
1205   ROM_LOAD16_BYTE( "tm3k_graphic.u40", 0x400001, 0x100000, CRC(353df7ca) SHA1(d6c5d5449af6b6a3acee219778583904c5b554b4) ) /* Labeled TOUCHMASTER U40 STANDARD 5.0 (pink label) */
1206 
1207   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1208   ROM_LOAD( "tm3k_sound.u8", 0x00000, 0x100000, CRC(d0ae33c1) SHA1(a079def9a086a091fcc4493a44fec756d2470415) ) /* Labeled TOUCHMASTER U8 5.0 (green label) */
1209ROM_END
1210 
1211/***************************************************************************
1212 
1213Touchmaster 4000
1214by Midway (c) 1998
1215touchscreen game
1216 
1217All chips are SGS 27C801 (some kits/upgrades used mask roms)
1218---------------------------
1219 
1220Name_Board Location        Version               Use                      Checksum
1221-----------------------------------------------------------------------------------
1222TM4K_v603.u51              6.03 Game Program & Cpu instructions 96B0
1223TM4K_v603.u52              6.03 Game Program & Cpu instructions 2842
1224 
1225TM4K_v602.u51              6.02 Game Program & Cpu instructions FEA0
1226TM4K_v602.u52              6.02 Game Program & Cpu instructions 9A71
1227 
1228TM4K_v601.u51              6.01 Game Program & Cpu instructions 6FF1
1229TM4K_v601.u52              6.01 Game Program & Cpu instructions 6643
1230 
1231TM4K_graphic.u36           6.0  Video Images & Graphics         54F1 (same as TM3K)
1232TM4K_graphic.u37           6.0  Video Images & Graphics         609E
1233TM4K_graphic.u38           6.0  Video Images & Graphics         5493 (same as TM3K)
1234TM4K_graphic.u39           6.0  Video Images & Graphics         CB90
1235TM4K_graphic.u40           6.0  Video Images & Graphics         208A
1236TM4K_graphic.u41           6.0  Video Images & Graphics         385D
1237TM4K_sound.u8              6.0  Audio Program & sounds          DE0B
1238 
1239J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-003
1240 
1241***************************************************************************/
1242 
1243ROM_START( tm4k )
1244   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1245   ROM_LOAD16_BYTE( "tm4k_v6.03.u51", 0x000000, 0x100000, CRC(0c88c856) SHA1(4c60c09812ab05f9dccef3038a5ddbd4632dbf4e) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.03 (Standard 6-23-98) */
1246   ROM_LOAD16_BYTE( "tm4k_v6.03.u52", 0x000001, 0x100000, CRC(9320bfe9) SHA1(cc3a51f439c139ca30efe28a817cf4f68679180e) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.03 (Standard 6-23-98) */
1247 
1248   ROM_REGION( 0x000022, "ds1204", 0 )
1249   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1250 
1251   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1252   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1253   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1254   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1255   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1256   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1257   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1258 
1259   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1260   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1261ROM_END
1262 
1263ROM_START( tm4knj ) /* New Jersey version only */
1264   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1265   ROM_LOAD16_BYTE( "tm4knj_v6.03.u51", 0x000000, 0x100000, CRC(fcaf10d2) SHA1(67bf584223c4bb7436bd9a03eb799895ecd26a26) ) /* TOUCHMASTER 4000 U51 NEW JERSEY  6.03 (New Jersey 3-23-98) */
1266   ROM_LOAD16_BYTE( "tm4knj_v6.03.u52", 0x000001, 0x100000, CRC(bed6f9e9) SHA1(695509a2b47e1d70cdbad765f581605b31065b8c) ) /* TOUCHMASTER 4000 U52 NEW JERSEY  6.03 (New Jersey 3-23-98) */
1267 
1268   ROM_REGION( 0x000022, "ds1204", 0 )
1269   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1270 
1271   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1272   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1273   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1274   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1275   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1276   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1277   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1278 
1279   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1280   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1281ROM_END
1282 
1283ROM_START( tm4ka )
1284   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1285   ROM_LOAD16_BYTE( "tm4k_v6.02.u51", 0x000000, 0x100000, CRC(3d8d7848) SHA1(31638f23cdd5e6cfbb2270e953f84fe1bd437950) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.02 (Standard 4-14-98) */
1286   ROM_LOAD16_BYTE( "tm4k_v6.02.u52", 0x000001, 0x100000, CRC(6d412871) SHA1(ae27c7723b292daf6682c53bafac22e4a3cd1ece) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.02 (Standard 4-14-98) */
1287 
1288   ROM_REGION( 0x000022, "ds1204", 0 )
1289   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1290 
1291   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1292   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1293   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1294   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1295   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1296   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1297   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1298 
1299   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1300   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1301ROM_END
1302 
1303ROM_START( tm4kca ) /* California version only */
1304   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1305   ROM_LOAD16_BYTE( "tm4k_v6.02ca.u51", 0x000000, 0x100000, CRC(b355e15e) SHA1(e6a6cd74d3439f589ac0a914ec66962ce2885c00) ) /* TOUCHMASTER 4000 U51 CALIFORNIA  6.02 (CA. 4-14-98) */
1306   ROM_LOAD16_BYTE( "tm4k_v6.02ca.u52", 0x000001, 0x100000, CRC(0adbbfc0) SHA1(4660bd95649bfc65d3e52975d168de4963bd27cb) ) /* TOUCHMASTER 4000 U52 CALIFORNIA  6.02 (CA. 4-14-98) */
1307 
1308   ROM_REGION( 0x000022, "ds1204", 0 )
1309   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1310 
1311   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1312   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1313   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1314   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1315   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1316   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1317   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1318 
1319   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1320   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1321ROM_END
1322 
1323ROM_START( tm4kb )
1324   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1325   ROM_LOAD16_BYTE( "tm4k_v6.01.u51", 0x000000, 0x100000, CRC(cdcfd064) SHA1(51f022d25411d119a5f16ff7f09f4bed59b937e1) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.01 (Standard 3-23-98) */
1326   ROM_LOAD16_BYTE( "tm4k_v6.01.u52", 0x000001, 0x100000, CRC(e0bf71a9) SHA1(8f5e70dee60cd95aceac4707ff73bdff578a6139) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.01 (Standard 3-23-98) */
1327 
1328   ROM_REGION( 0x000022, "ds1204", 0 )
1329   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1330 
1331   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1332   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1333   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1334   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1335   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1336   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1337   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1338 
1339   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1340   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1341ROM_END
1342 
1343ROM_START( tm4kmn ) /* Minnesota only version */
1344   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1345   ROM_LOAD16_BYTE( "tm4kmn_v6.01.u51", 0x000000, 0x100000, CRC(66b7f936) SHA1(7d13b24440f15bc29587b35d32f8a34019cc2462) ) /* TOUCHMASTER 4000 U51 MINNESOTA  6.01 (MN. 3-30-98) */
1346   ROM_LOAD16_BYTE( "tm4kmn_v6.01.u52", 0x000001, 0x100000, CRC(34fa24bb) SHA1(4c4f706f8f09bfd1f81fbf71b377c0eb2cbfa97d) ) /* TOUCHMASTER 4000 U52 MINNESOTA  6.01 (MN. 3-30-98) */
1347 
1348   ROM_REGION( 0x000022, "ds1204", 0 )
1349   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1350 
1351   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1352   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1353   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1354   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1355   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1356   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1357   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1358 
1359   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1360   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1361ROM_END
1362 
1363/***************************************************************************
1364 
1365Touchmaster 5000
1366by Midway (c) 1998
1367touchscreen game
1368 
1369All chips are ST M27C801 (some kits/upgrades used mask roms)
1370---------------------------
1371 
1372Name Board Location        Version               Use                      Checksum
1373-----------------------------------------------------------------------------------
1374tm5k_v7_10.u51             7.10 Game Program & Cpu instructions 1A51
1375tm5k_v7_10.u52             7.10 Game Program & Cpu instructions 5A01
1376tm5k_graphic.u36           7.0  Video Images & Graphics         DB7F
1377tm5k_graphic.u37           7.0  Video Images & Graphics         871B
1378tm5k_graphic.u38           7.0  Video Images & Graphics         EDCE
1379tm5k_graphic.u39           7.0  Video Images & Graphics         657F
1380tm5k_graphic.u40           7.0  Video Images & Graphics         93E0
1381tm5k_graphic.u41           7.0  Video Images & Graphics         FCA5
1382tm5k_sound.u8              7.0  Audio Program & sounds          F474
1383 
1384J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-004
1385-----------------------------------------------------------------------------------
1386 
1387* EPROM versions are labeled with white labels
1388 
1389***************************************************************************/
1390 
1391ROM_START( tm5k )
1392   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1393   ROM_LOAD16_BYTE( "tm5k_v7.10.u51", 0x000000, 0x100000, CRC(df0bd25e) SHA1(db1a197ed4c868743397f3823f3f1d42b9329f80) ) /* TOUCHMASTER 5000 U51 DOMESTIC 7.10 (Standard 10-9-98) (tan label) */
1394   ROM_LOAD16_BYTE( "tm5k_v7.10.u52", 0x000001, 0x100000, CRC(ddf9e8dc) SHA1(3228f2eba067bdf1bd639116bffc589585ea3e72) ) /* TOUCHMASTER 5000 U52 DOMESTIC 7.10 (Standard 10-9-98) (tan label) */
1395 
1396   ROM_REGION( 0x000022, "ds1204", 0 )
1397   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1398 
1399   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1400   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1401   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1402   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1403   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1404   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1405   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1406 
1407   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1408   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1409ROM_END
1410 
1411ROM_START( tm5kca ) /* California only version */
1412   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1413   ROM_LOAD16_BYTE( "tm5kca_v7.10.u51", 0x000000, 0x100000, CRC(7c03708f) SHA1(e1f8198bc03c1f9d2a00662b589fd66fdcc7a2de) ) /* TOUCHMASTER 5000 U51 CALIFORNIA 7.10 (CA. 10-9-98) (tan label) */
1414   ROM_LOAD16_BYTE( "tm5kca_v7.10.u52", 0x000001, 0x100000, CRC(f1413295) SHA1(ad6b57c590bdae063b0e4a1abcb3b13ee52cd6db) ) /* TOUCHMASTER 5000 U52 CALIFORNIA 7.10 (CA. 10-9-98) (tan label) */
1415 
1416   ROM_REGION( 0x000022, "ds1204", 0 )
1417   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1418 
1419   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1420   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1421   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1422   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1423   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1424   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1425   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1426 
1427   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1428   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1429ROM_END
1430 
1431ROM_START( tm5kmn ) /* Minnesota only version */
1432   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1433   ROM_LOAD16_BYTE( "tm5kmn_v7.10.u51", 0x000000, 0x100000, CRC(eb12e430) SHA1(48de1d49025cd3fc844d0399d58efc630c51ab28) ) /* TOUCHMASTER 5000 U51 MINNESOTA 7.10 (MN. 10-9-98) (tan label) */
1434   ROM_LOAD16_BYTE( "tm5kmn_v7.10.u52", 0x000001, 0x100000, CRC(6a4e75d9) SHA1(b0049b5d5f649aedb568d71aacfcb648320dd53b) ) /* TOUCHMASTER 5000 U52 MINNESOTA 7.10 (MN. 10-9-98) (tan label) */
1435 
1436   ROM_REGION( 0x000022, "ds1204", 0 )
1437   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1438 
1439   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1440   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1441   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1442   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1443   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1444   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1445   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1446 
1447   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1448   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1449ROM_END
1450 
1451ROM_START( tm5ka )
1452   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1453   ROM_LOAD16_BYTE( "tm5k_v7.01.u51", 0x000000, 0x100000, CRC(3ff68213) SHA1(ec4939899a69f56d2437c806fdd0a5b50e58ec6a) ) /* TOUCHMASTER 5000 U51 DOMESTIC 7.01 (Standard 8-21-98) (pink label) */
1454   ROM_LOAD16_BYTE( "tm5k_v7.01.u52", 0x000001, 0x100000, CRC(b3de607c) SHA1(4ede5b8c50177d1934a3b93d311a240ef354c450) ) /* TOUCHMASTER 5000 U52 DOMESTIC 7.01 (Standard 8-21-98) (pink label) */
1455 
1456   ROM_REGION( 0x000022, "ds1204", 0 )
1457   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1458 
1459   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1460   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1461   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1462   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1463   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1464   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1465   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1466 
1467   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1468   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1469ROM_END
1470 
1471/***************************************************************************
1472 
1473Touchmaster 7000
1474by Midway (c) 1999
1475touchscreen game
1476 
1477All chips are ST M27C801 (some kits/upgrades used mask roms)
1478---------------------------
1479 
1480Name Board Location        Version               Use                      Checksum
1481-----------------------------------------------------------------------------------
1482tm7k_v804.u51              8.04 Game Program & Cpu instructions 321B
1483tm7k_v804.u52              8.04 Game Program & Cpu instructions 2DED
1484 
1485tm7k_v800.u51              8.00 Game Program & Cpu instructions 82A5
1486tm7k_v800.u52              8.00 Game Program & Cpu instructions 81E1
1487 
1488tm7k_graphic.u36           8.0  Video Images & Graphics         DB7F (same as TM5K)
1489tm7k_graphic.u37           8.0  Video Images & Graphics         7461
1490tm7k_graphic.u38           8.0  Video Images & Graphics         EDCE (same as TM5K)
1491tm7k_graphic.u39           8.0  Video Images & Graphics         2BB6
1492tm7k_graphic.u40           8.0  Video Images & Graphics         B103
1493tm7k_graphic.u41           8.0  Video Images & Graphics         11CA
1494tm7k_sound.u8              8.0  Audio Program & sounds          F474 (same as TM5K)
1495 
1496J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-005
1497-----------------------------------------------------------------------------------
1498 
1499***************************************************************************/
1500 
1501ROM_START( tm7k )
1502   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1503   ROM_LOAD16_BYTE( "tm7k_v8.04.u51", 0x000000, 0x100000, CRC(2461af04) SHA1(9cf37c04db0297ff8f9f316fd476d6d5d1c39acf) ) /* TOUCHMASTER 7000 U51 DOMESTIC 8.04 (Standard 06/02/99) (orange label) */
1504   ROM_LOAD16_BYTE( "tm7k_v8.04.u52", 0x000001, 0x100000, CRC(5d39fad2) SHA1(85e8d110b88e1099117ab7963eaee47dc86ec7c5) ) /* TOUCHMASTER 7000 U52 DOMESTIC 8.04 (Standard 06/02/99) (orange label) */
1505 
1506   ROM_REGION( 0x000022, "ds1204", 0 )
1507   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1508 
1509   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1510   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1511   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1512   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1513   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1514   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1515   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1516 
1517   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1518   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1519ROM_END
1520 
1521ROM_START( tm7knj ) /* New Jersey version only - ABC Exception No. 27 */
1522   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1523   ROM_LOAD16_BYTE( "tm7knj_v8.05.u51", 0x000000, 0x100000, CRC(46a7ed33) SHA1(e9ceb5005a6e88bd179fca0b62477cea19b82443) ) /* TOUCHMASTER 7000 U51 NEW JERSEY 8.05 (Standard 07/22/99) (orange label) */
1524   ROM_LOAD16_BYTE( "tm7knj_v8.05.u52", 0x000001, 0x100000, CRC(127e8b09) SHA1(017d4cda6205f88256cbecabf0c94e71eef93bf9) ) /* TOUCHMASTER 7000 U52 NEW JERSEY 8.05 (Standard 07/22/99) (orange label) */
1525 
1526   ROM_REGION( 0x000022, "ds1204", 0 )
1527   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1528 
1529   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1530   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1531   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1532   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1533   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1534   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1535   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1536 
1537   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1538   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1539ROM_END
1540 
1541ROM_START( tm7kmn ) /* Minnesota only version */
1542   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1543   ROM_LOAD16_BYTE( "tm7kmn_v8.04.u51", 0x000000, 0x100000, CRC(c85b5adc) SHA1(418776917c1f419fd981deaab9754f4f03a2288f) ) /* TOUCHMASTER 7000 U51 MINNESOTA 8.04 (MN. 06/02/99) (orange label) */
1544   ROM_LOAD16_BYTE( "tm7kmn_v8.04.u52", 0x000001, 0x100000, CRC(542bc209) SHA1(b8314d695a36380f6be02b45eac83cfab857c258) ) /* TOUCHMASTER 7000 U52 MINNESOTA 8.04 (MN. 06/02/99) (orange label) */
1545 
1546   ROM_REGION( 0x000022, "ds1204", 0 )
1547   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1548 
1549   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1550   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1551   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1552   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1553   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1554   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1555   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1556 
1557   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1558   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1559ROM_END
1560 
1561ROM_START( tm7ka )
1562   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1563   ROM_LOAD16_BYTE( "tm7k_v8.00.u51", 0x000000, 0x100000, CRC(83ec3da7) SHA1(37fa7183e7acc2eab35ac431d99cbbfe4862979e) ) /* TOUCHMASTER 7000 U51 DOMESTIC 8.00 (Standard 03/26/99) (orange label) */
1564   ROM_LOAD16_BYTE( "tm7k_v8.00.u52", 0x000001, 0x100000, CRC(e2004282) SHA1(aa73029f31e2062cabedfcd778db97b314624ae8) ) /* TOUCHMASTER 7000 U52 DOMESTIC 8.00 (Standard 03/26/99) (orange label) */
1565 
1566   ROM_REGION( 0x000022, "ds1204", 0 )
1567   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1568 
1569   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1570   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Labeled GRAPHIC U38  8.0 (orange label) */
1571   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Labeled GRAPHIC U36  8.0 (orange label) */
1572   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Labeled GRAPHIC U39  8.0 (orange label) */
1573   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Labeled GRAPHIC U37  8.0 (orange label) */
1574   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Labeled GRAPHIC U41  8.0 (orange label) */
1575   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Labeled GRAPHIC U40  8.0 (orange label) */
1576 
1577   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1578   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Labeled SOUND U8  8.0 (orange label) */
1579ROM_END
1580 
1581ROM_START( tm7kmna ) /* Minnesota only version */
1582   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1583   ROM_LOAD16_BYTE( "tm7kmn_v8.00.u51", 0x000000, 0x100000, CRC(4bc423e9) SHA1(c9ba044b4bc8431281e174cddc8697324cbbf072) ) /* TOUCHMASTER 7000 U51 MINNESOTA 8.00 (MN. 03/26/99) (orange label) */
1584   ROM_LOAD16_BYTE( "tm7kmn_v8.00.u52", 0x000001, 0x100000, CRC(51968948) SHA1(f8b63df4480cafa453f970fb07f73103d39e2903) ) /* TOUCHMASTER 7000 U52 MINNESOTA 8.00 (MN. 03/26/99) (orange label) */
1585 
1586   ROM_REGION( 0x000022, "ds1204", 0 )
1587   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1588 
1589   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1590   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1591   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1592   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1593   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1594   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1595   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1596 
1597   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1598   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1599ROM_END
1600 
1601ROM_START( tm7keval ) /* FREEPLAY ONLY / NOT FOR RELEASE / FOR EVALUATION ONLY */
1602   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1603   ROM_LOAD16_BYTE( "tm7k_v8.1x.u51", 0x000000, 0x100000, CRC(57c88287) SHA1(1008bbcd137ede321be4cc2ad22e3982d880471b) ) /* TOUCHMASTER 7000 U51 8.1X (ASI Standard 03/08/99) (white label) */
1604   ROM_LOAD16_BYTE( "tm7k_v8.1x.u52", 0x000001, 0x100000, CRC(e45d69bb) SHA1(9e8a42924a9cd573cbd2f3164d0fb468eee7ff51) ) /* TOUCHMASTER 7000 U52 8.1X (ASI Standard 03/08/99) (white label) */
1605 
1606   ROM_REGION( 0x000022, "ds1204", 0 )
1607   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1608 
1609   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1610   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* TOUCHMASTER EDCE V8.X U38 (white label) */
1611   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* TOUCHMASTER DB7F V8.X U36 (white label) */
1612   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* TOUCHMASTER 2BB6 V8.X U39 (white label) */
1613   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* TOUCHMASTER 7461 V8.X U37 (white label) */
1614   ROM_LOAD16_BYTE( "tm7k_v8x.u41",     0x400000, 0x100000, CRC(d15757f0) SHA1(d09a83dc00812a4208d5684e8cfba1f5d1e3f097) ) /* TOUCHMASTER 335E V8.X U41 (white label) */
1615   ROM_LOAD16_BYTE( "tm7k_v8x.u40",     0x400001, 0x100000, CRC(d3596f63) SHA1(a2474bc1a73b5782f8169b0529a535269ea82440) ) /* TOUCHMASTER 7987 V8.X U40 (white label) */
1616 
1617   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1618   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Labeled SOUND U8  8.0 (orange label) */
1619ROM_END
1620 
1621/***************************************************************************
1622 
1623Touchmaster 8000
1624by Midway (c) 2000
1625touchscreen game
1626 
1627All chips are ST M27C801 (some kits/upgrades used mask roms)
1628---------------------------
1629 
1630Name Board Location        Version               Use                      Checksum
1631-----------------------------------------------------------------------------------
1632tm8k_v904.u51              9.04 Game Program & Cpu instructions D40F
1633tm8k_v904.u52              9.04 Game Program & Cpu instructions 53B2
1634 
1635tm8k_graphic.u36           9.0  Video Images & Graphics         AD8D
1636tm8k_graphic.u37           9.0  Video Images & Graphics         AF83
1637tm8k_graphic.u38           9.0  Video Images & Graphics         6BCF
1638tm8k_graphic.u39           9.0  Video Images & Graphics         C8A6
1639tm8k_graphic.u40           9.0  Video Images & Graphics         B8C7
1640tm8k_graphic.u41           9.0  Video Images & Graphics         EF93
1641tm8k_sound.u8              9.0  Audio Program & sounds          F474 (same as TM5K & TM7K)
1642 
1643J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-007
1644-----------------------------------------------------------------------------------
1645 
1646***************************************************************************/
1647 
1648/* According to the Distributor notice from Midway, the only thing updated for v9.04 was the "Power Cell" game to 'improve the performance'. */
1649ROM_START( tm8k )
1650   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1651   ROM_LOAD16_BYTE( "tm8k_v9.04.u51", 0x000000, 0x100000, CRC(28864ec8) SHA1(e703f9ee350dd915102e784bbd04445a95b7d0a5) ) /* TOUCHMASTER 8000 U51 DOMESTIC 9.04 (Standard 04/25/00) */
1652   ROM_LOAD16_BYTE( "tm8k_v9.04.u52", 0x000001, 0x100000, CRC(c123eec2) SHA1(3e9c84755b18a4fd900068f385ee47107771391d) ) /* TOUCHMASTER 8000 U52 DOMESTIC 9.04 (Standard 04/25/00) */
1653 
1654   ROM_REGION( 0x000022, "ds1204", 0 )
1655   ROM_LOAD( "a-21657-007", 0x000000, 0x000022, CRC(a1776e90) SHA1(40116d693b565fe472c278ea583b50e2b708630a) )
1656 
1657   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1658   ROM_LOAD16_BYTE( "tm8k_graphic.u38", 0x000000, 0x100000, CRC(2a971d46) SHA1(6ca4067e9fa40053df415e670b2e853915319dbb) ) /* Mask rom labeled 5341-16513-07 U38 VIDEO IMAGE */
1659   ROM_LOAD16_BYTE( "tm8k_graphic.u36", 0x000001, 0x100000, CRC(3bde285e) SHA1(87bf60034665542fb0240b7479adfffb7ba9fad7) ) /* Mask rom labeled 5341-16513-06 U36 VIDEO IMAGE */
1660   ROM_LOAD16_BYTE( "tm8k_graphic.u39", 0x200000, 0x100000, CRC(58c6c1d8) SHA1(cc11863c4ea46bde7ea4775075f4328be6d6c6d1) ) /* Mask rom labeled 5341-16513-05 U39 VIDEO IMAGE */
1661   ROM_LOAD16_BYTE( "tm8k_graphic.u37", 0x200001, 0x100000, CRC(c0992f7a) SHA1(e4e1ef2414f2f0a784c775f39123122c08950403) ) /* Mask rom labeled 5341-16513-04 U37 VIDEO IMAGE */
1662   ROM_LOAD16_BYTE( "tm8k_graphic.u41", 0x400000, 0x100000, CRC(d8bdb82e) SHA1(9bdee261591ccff8a57c5454644f84f8992f614f) ) /* Mask rom labeled 5341-16513-09 U41 VIDEO IMAGE */
1663   ROM_LOAD16_BYTE( "tm8k_graphic.u40", 0x400001, 0x100000, CRC(0c3d6347) SHA1(7ef19018c180abf412a8ff9f278b00c2b4321cc2) ) /* Mask rom labeled 5341-16513-08 U40 VIDEO IMAGE */
1664 
1665   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1666   ROM_LOAD( "tm8k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16513-03 U8 SOUND */
1667ROM_END
1668 
1669ROM_START( tm8k902 )
1670   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1671   ROM_LOAD16_BYTE( "tm8k_v9.02.u51", 0x000000, 0x100000, CRC(c0d95b2c) SHA1(2240d969047ada856ec2fac6cdf72db722753a6d) ) /* TOUCHMASTER 8000 U51 DOMESTIC 9.02 (Standard 03/17/00) */
1672   ROM_LOAD16_BYTE( "tm8k_v9.02.u52", 0x000001, 0x100000, CRC(5194c1b5) SHA1(28a91d12a022927bfe96afd62b30b268c0ced3ea) ) /* TOUCHMASTER 8000 U52 DOMESTIC 9.02 (Standard 03/17/00) */
1673 
1674   ROM_REGION( 0x000022, "ds1204", 0 )
1675   ROM_LOAD( "a-21657-007", 0x000000, 0x000022, CRC(a1776e90) SHA1(40116d693b565fe472c278ea583b50e2b708630a) )
1676 
1677   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1678   ROM_LOAD16_BYTE( "tm8k_graphic.u38", 0x000000, 0x100000, CRC(2a971d46) SHA1(6ca4067e9fa40053df415e670b2e853915319dbb) ) /* Mask rom labeled 5341-16513-07 U38 VIDEO IMAGE */
1679   ROM_LOAD16_BYTE( "tm8k_graphic.u36", 0x000001, 0x100000, CRC(3bde285e) SHA1(87bf60034665542fb0240b7479adfffb7ba9fad7) ) /* Mask rom labeled 5341-16513-06 U36 VIDEO IMAGE */
1680   ROM_LOAD16_BYTE( "tm8k_graphic.u39", 0x200000, 0x100000, CRC(58c6c1d8) SHA1(cc11863c4ea46bde7ea4775075f4328be6d6c6d1) ) /* Mask rom labeled 5341-16513-05 U39 VIDEO IMAGE */
1681   ROM_LOAD16_BYTE( "tm8k_graphic.u37", 0x200001, 0x100000, CRC(c0992f7a) SHA1(e4e1ef2414f2f0a784c775f39123122c08950403) ) /* Mask rom labeled 5341-16513-04 U37 VIDEO IMAGE */
1682   ROM_LOAD16_BYTE( "tm8k_graphic.u41", 0x400000, 0x100000, CRC(d8bdb82e) SHA1(9bdee261591ccff8a57c5454644f84f8992f614f) ) /* Mask rom labeled 5341-16513-09 U41 VIDEO IMAGE */
1683   ROM_LOAD16_BYTE( "tm8k_graphic.u40", 0x400001, 0x100000, CRC(0c3d6347) SHA1(7ef19018c180abf412a8ff9f278b00c2b4321cc2) ) /* Mask rom labeled 5341-16513-08 U40 VIDEO IMAGE */
1684 
1685   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1686   ROM_LOAD( "tm8k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16513-03 U8 SOUND */
1687ROM_END
1688 
1689/***************************************************************************
1690 
1691Galaxy Games BIOS v. 1.90
1692 
1693This is a multi-game cocktail cabinet released in 1998.  Namco seems to have
1694made some cartridges for it (or at least licensed their IP).
1695 
1696Trackball-based. 'BIOS' has 7 built-in games. There are two LEDs on the PCB.
1697 
1698More information here : http://www.cesgames.com/museum/galaxy/index.html
1699 
1700----
1701 
1702Board silkscreened  237-0211-00
1703                    REV.-D
1704 
1705Cartridge based mother board
1706Holds up to 4 cartridges
1707Chips labeled
1708    GALAXY U1 V1.90 12/1/98
1709    GALAXY U2 V1.90 12/1/98
1710 
1711Motorola MC68HC000FN12
171224 MHz oscillator
1713Xilinx XC5206
1714Xilinx XC5202
1715BT481AKPJ110 (Palette RAMDAC)
1716NKK N341024SJ-15    x8  (128kB RAM)
1717OKI M6295 8092352-2
1718 
1719PAL16V8H-15 @ U24   Blue dot on it
1720PAL16V8H-15 @ U25   Yellow dot on it
1721PAL16V8H-15 @ U26   Red dot on it
1722PAL16V8H-15 @ U27   Green dot on it
1723PAL16V8H-15 @ U45   red dot on it
1724 
1725***************************************************************************/
1726 
1727#define GALGAMES_BIOS_ROMS \
1728   ROM_SYSTEM_BIOS( 0, "0",   "v1.90" ) \
1729   ROMX_LOAD( "galaxy.u2", 0x000000, 0x100000, CRC(e51ff184) SHA1(aaa795f2c15ec29b3ceeb5c917b643db0dbb7083), ROM_SKIP(1) | ROM_BIOS(1) ) \
1730   ROMX_LOAD( "galaxy.u1", 0x000001, 0x100000, CRC(c6d7bc6d) SHA1(93c032f9aa38cbbdda59a8a25ff9f38f7ad9c760), ROM_SKIP(1) | ROM_BIOS(1) )
1731 
1732#define GALGAMES_MB_PALS \
1733   ROM_REGION( 0xa00, "pals", 0) \
1734   ROM_LOAD( "16v8h-blue.u24",    0x000, 0x117, NO_DUMP ) \
1735   ROM_LOAD( "16v8h-yellow.u25",  0x200, 0x117, NO_DUMP ) \
1736   ROM_LOAD( "16v8h-magenta.u26", 0x400, 0x117, NO_DUMP ) \
1737   ROM_LOAD( "16v8h-green.u27",   0x600, 0x117, NO_DUMP ) \
1738   ROM_LOAD( "16v8h-red.u45",     0x800, 0x117, NO_DUMP )
1739 
1740ROM_START( galgbios )
1741   ROM_REGION( 0x200000, "maincpu", 0 )
1742   GALGAMES_BIOS_ROMS
1743 
1744   ROM_REGION( 0x200000, "blitter", 0 )
1745   ROM_COPY( "maincpu", 0, 0, 0x200000 )
1746 
1747   ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
1748   // RAM, filled by the 68000 and fed to the OKI
1749 
1750   GALGAMES_MB_PALS
1751ROM_END
1752 
1753/***************************************************************************
1754 
1755Galaxy Games StarPak 2
1756 
1757NAMCO 307 Cartridge, has surface mount Flash chips in it:
1758 
1759.u1 am29f800BB
1760.u2 am29f800BB
1761.u4 pic 12c508
1762 
1763Board silkscreened  237-0209-00
1764                    REV.-C
1765 
1766***************************************************************************/
1767 
1768ROM_START( galgame2 )
1769   ROM_REGION( 0x200000 * 2, "maincpu", 0 )
1770   GALGAMES_BIOS_ROMS
1771   ROM_LOAD16_BYTE( "namco.u2",  0x200000, 0x100000, CRC(f43c0c54) SHA1(4a13946c3d173b0e4ab25b01849574fa3302b417) )
1772   ROM_LOAD16_BYTE( "namco.u1",  0x200001, 0x100000, CRC(b8c34a8b) SHA1(40d3b35f573d2bd2ae1c7d876c55fc436864fa3f) )
1773 
1774   ROM_REGION( 0x9db, "pic", 0 )
1775   ROM_LOAD( "namco.u4", 0x000, 0x9db, CRC(63ec1224) SHA1(2966b2aa431e6b8d46cbba18a6fc4de7395caa04) )
1776 
1777   ROM_REGION( 0x200000 * 2, "blitter", 0 )
1778   ROM_COPY( "maincpu", 0, 0, 0x200000 * 2 )
1779 
1780   ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
1781   // RAM, filled by the 68000 and fed to the OKI
1782 
1783   GALGAMES_MB_PALS
1784ROM_END
1785 
1786 
1787DRIVER_INIT_MEMBER(tmaster_state,galgames)
1788{
1789   UINT8 *ROM  =   memregion("maincpu")->base();
1790   int cart;
1791 
1792   // RAM bank at 0x000000-0x03ffff and 0x200000-0x23ffff
1793   // ROM bank at 0x000000-0x1fffff and 0x200000-0x3fffff (bios)
1794 
1795   membank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1796   membank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000);
1797 
1798   membank(GALGAMES_BANK_000000_W)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1799 
1800   membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1801   membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000);
1802 
1803   membank(GALGAMES_BANK_200000_W)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1804 
1805   membank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0, ROM+0x040000);
1806 
1807   // More ROM banks at 0x200000-0x3fffff (carts)
1808 
1809   for (cart = 1; cart <= 4; cart++)
1810   {
1811      UINT8 *CART = memregion("maincpu")->base();
1812 
1813      if  (0x200000 * (cart+1) <= memregion("maincpu")->bytes())
1814         CART += 0x200000 * cart;
1815 
1816      membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0+cart, CART);
1817      membank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0+cart, CART+0x040000);
1818   }
1819}
1820 
1821DRIVER_INIT_MEMBER(tmaster_state,galgame2)
1822{
1823   UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base();
1824 
1825   // Patch BIOS to see the game code as first cartridge (until the PIC therein is emulated)
1826   ROM[0x118da/2] = 0x4a06;
1827   ROM[0x118dc/2] = 0x6704;
1828   ROM[0x118de/2] = 0x7000;
1829   ROM[0x118e0/2] = 0x6002;
1830   ROM[0x118e2/2] = 0x7001;
1831   ROM[0x118e4/2] = 0x4e71;
1832   ROM[0x118e6/2] = 0x4e71;
1833   ROM[0x118e8/2] = 0x4e71;
1834 
1835   // Cartdridge check on game selection screen
1836   ROM[0x12da0/2] = 0x4e71;
1837 
1838   DRIVER_INIT_CALL(galgames);
1839}
1840 
1841GAME( 1996, tm,       0,        tm,       tm,       driver_device, 0,        ROT0, "Midway Games Inc. / CES Inc.",            "Touchmaster (v3.00 Euro)",               0 )
1842GAME( 1996, tmdo,     tm,       tm,       tm,       driver_device, 0,        ROT0, "Midway Games Inc. / CES Inc.",            "Touchmaster (v2.2-01 Standard)",         0 )
1843GAME( 1996, tm2k,     0,        tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 Plus (v4.63 Standard)", 0 )
1844GAME( 1996, tm2ka,    tm2k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 (v4.02 Standard)",      0 )
1845GAME( 1996, tm2kb,    tm2k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 (v4.00 Standard)",      0 )
1846GAME( 1997, tm3k,     0,        tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 3000 (v5.02 Standard)",      0 )
1847GAME( 1997, tm3ka,    tm3k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 3000 (v5.01 Standard)",      0 )
1848GAME( 1998, tm4k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.03 Standard)",      0 )
1849GAME( 1998, tm4knj,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.03 New Jersey)",    0 )
1850GAME( 1998, tm4ka,    tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.02 Standard)",      0 )
1851GAME( 1998, tm4kca,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.02 California)",    0 )
1852GAME( 1998, tm4kb,    tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.01 Standard)",      0 )
1853GAME( 1998, tm4kmn,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.01 Minnesota)",     0 )
1854GAME( 1998, tm5k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 Standard)",      0 )
1855GAME( 1998, tm5kca,   tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 California)",    0 )
1856GAME( 1998, tm5kmn,   tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 Minnesota)",     0 )
1857GAME( 1998, tm5ka,    tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.01 Standard)",      0 )
1858GAME( 1999, tm7k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.04 Standard)",      0 )
1859GAME( 1999, tm7knj,   tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.05 New Jersey)",    0 )
1860GAME( 1999, tm7kmn,   tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.04 Minnesota)",     0 )
1861GAME( 1999, tm7ka,    tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.00 Standard)",      0 )
1862GAME( 1999, tm7kmna,  tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.00 Minnesota)",     0 )
1863GAME( 1999, tm7keval, tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.1X Evaluation)",    0 )
1864GAME( 2000, tm8k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 8000 (v9.04 Standard)",      0 )
1865GAME( 2000, tm8k902,  tm8k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 8000 (v9.02 Standard)",      0 )
1866GAME( 1998, galgbios, 0,        galgames, galgames, tmaster_state, galgames, ROT0, "Creative Electronics & Software",         "Galaxy Games (BIOS v1.90)",              GAME_IS_BIOS_ROOT )
1867GAME( 1998, galgame2, galgbios, galgame2, galgames, tmaster_state, galgame2, ROT0, "Creative Electronics & Software / Namco", "Galaxy Games StarPak 2",                 0 )
1/***************************************************************************
2
3                      -= Touch Master / Galaxy Games =-
4
5         driver by Luca Elia (l.elia@tin.it) and Mariusz Wojcieszek
6
7
8CPU:    68000
9Video:  Blitter, double framebuffer
10Sound:  OKI6295
11
12[Touch Master]
13
14Input:  Microtouch touch screen
15Other:  Dallas NVRAM + optional RTC
16
17To Do:
18 - Coin optics
19 - Correct sound banking
20 - Proper protection emulation in tm4k and later games
21 - Find cause and fix hang in Solitaire Erotic (all Touchmaster version hang in this game)
22
23To be dumped and added:
24
25Touch Master 6000 <-- There doesn't seem to be a "6000" version
26Touch Master 7000 *
27Touch Master 8000 *
28
29* There are alternate region/state version with modifications due to legal issues
30  Touch Master (current set) is a Euro version, all other sets are "DOMESTIC" (AKA "Standard").
31  Is there a Touch Master 6000?  TM5K is version 7.10, then TM7K is version 8, TM8K is version 9.xx
32
33- There are known regional versions like California, Minnesota and likely others.  The difference
34  between regional sets are not known at this time.
35
36- Starting with Touch Master 2000, each later version is a chipswap for the mainboard.
37   IE: Touch Master 8000 chips can update any Touch Master mainboard 2000 through 7000
38  Each version (IE: 2000, 3000, 7000 ect) has different girls for Strip Poker ;-)
39
40Touch Master 8000 part lists (from service bulletin):
41
42A-5343-60194-3  U8  Sound
43A-5343-60194-2  U51 Program code
44A-5343-60194-1  U52 Program code
45A-5343-60194-6  U36 Graphics
46A-5343-60194-4  U37 Graphics
47A-5343-60194-7  U38 Graphics
48A-5343-60194-5  U39 Graphics
49A-5343-60194-8  U40 Graphics
50A-5343-60194-9  U41 Graphics
51A-21657-007     Security Key
52
53The above set is an undumped alternate set, maybe a Euro or special version.
54
55+---------------------------------------------------------------+
56|  W24257AK                          GRAPHICS.U37  GRAPHICS.U39 |
57|             SECURITY.J12                                      |
58| PROGRAM.U52          DS1232        GRAPHICS.U36  GRAPHICS.U38 |
59|                                                               |
60|  W24257AK                          GRAPHICS.U40  GRAPHICS.U41 |
61|               68HC000FN12                                     |
62| PROGRAM.U51                                                   |
63|                                                               |
64|  DS1225AB.U62                      XC3042A     W241024AJ (x2) |
65|                                                               |
66|   3.664MHZ  24MHz                              W241024AJ (x2) |
67| SCN68681       CY7C128A       SOUND.U8    32MHz               |
68|     LED2 LED1  CY7C128A                                       |
69|    U62                              M6295                     |
70-                                                               |
71 |Serial Port              LED3                               J8|
72-                                                            VOL|
73|  J11    J2      J5    J3       J10        J9          J6    J1|
74+---------------------------------------------------------------+
75
76U62 is a 16 DIN for a RTC chip (optional)
77J Connectors used for all input/output and power. PCB is NON-JAMMA
78
79Chips:
80   CPU: MC68HC000FN12
81 Video: XC3042A (Sigma Xilinx FPGA gate array)
82 Sound: OKI M6295
83   OSC: 32MHz, 24MHz & 8.664MHz
84 Other: SCN68681C1N40 (Serial controller chip)
85        DALLAS DS1225AB-85 Nonvolatile SRAM
86        DALLAS DS1204V (used for security)
87        DALLAS DS1232 (MicroMonitor Chip)
88   RAM: W24257AK-15 (x2 used for CPU data)
89        CY7C128A-55PC (x2 used for serial communication)
90        W241024AJ-15 (x4 used for blitter frame buffer)
91
92******************************************************************
93
94[Galaxy Games]
95
96Input:  Trackballs and buttons
97Other:  EEPROM
98To Do:
99
100- Coin optics
101
102***************************************************************************/
103
104#include "emu.h"
105#include "cpu/m68000/m68000.h"
106#include "sound/okim6295.h"
107#include "machine/eepromser.h"
108#include "machine/microtch.h"
109#include "machine/mc68681.h"
110#include "machine/nvram.h"
111#include "machine/ds1204.h"
112
113/***************************************************************************
114
115                                 General
116
117***************************************************************************/
118
119class tmaster_state : public driver_device
120{
121public:
122   tmaster_state(const machine_config &mconfig, device_type type, const char *tag)
123      : driver_device(mconfig, type, tag),
124      m_maincpu(*this,"maincpu"),
125      m_microtouch(*this,"microtouch"),
126      m_regs(*this, "regs"),
127      m_galgames_ram(*this, "galgames_ram"),
128      m_oki(*this, "oki"),
129      m_duart(*this, "duart68681"),
130      m_screen(*this, "screen"),
131      m_palette(*this, "palette") { }
132
133   required_device<cpu_device> m_maincpu;
134   optional_device<microtouch_device> m_microtouch;
135   required_shared_ptr<UINT16> m_regs;
136   optional_shared_ptr<UINT16> m_galgames_ram;
137   required_device<okim6295_device> m_oki;
138   optional_device<mc68681_device> m_duart;
139   required_device<screen_device> m_screen;
140   required_device<palette_device> m_palette;
141
142   int m_okibank;
143   UINT8 m_rtc_ram[8];
144   bitmap_ind16 m_bitmap[2][2];
145   UINT16 m_color;
146   UINT16 m_addr;
147   UINT32 m_gfx_offs;
148   UINT32 m_gfx_size;
149   int (tmaster_state::*m_compute_addr) (UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
150   UINT16 m_galgames_cart;
151   UINT32 m_palette_offset;
152   UINT8 m_palette_index;
153   UINT8 m_palette_data[3];
154
155   DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
156   DECLARE_READ16_MEMBER(rtc_r);
157   DECLARE_WRITE16_MEMBER(rtc_w);
158   DECLARE_WRITE16_MEMBER(tmaster_color_w);
159   DECLARE_WRITE16_MEMBER(tmaster_addr_w);
160   DECLARE_WRITE16_MEMBER(tmaster_blitter_w);
161   DECLARE_READ16_MEMBER(tmaster_blitter_r);
162   DECLARE_READ_LINE_MEMBER(read_rand);
163   DECLARE_READ16_MEMBER(galgames_eeprom_r);
164   DECLARE_WRITE16_MEMBER(galgames_eeprom_w);
165   DECLARE_WRITE16_MEMBER(galgames_palette_offset_w);
166   DECLARE_WRITE16_MEMBER(galgames_palette_data_w);
167   DECLARE_READ16_MEMBER(galgames_okiram_r);
168   DECLARE_WRITE16_MEMBER(galgames_okiram_w);
169   DECLARE_WRITE16_MEMBER(galgames_cart_sel_w);
170   DECLARE_READ16_MEMBER(galgames_cart_clock_r);
171   DECLARE_WRITE16_MEMBER(galgames_cart_clock_w);
172   DECLARE_READ16_MEMBER(galgames_cart_data_r);
173   DECLARE_WRITE16_MEMBER(galgames_cart_data_w);
174   DECLARE_READ16_MEMBER(dummy_read_01);
175   DECLARE_WRITE_LINE_MEMBER(write_oki_bank0);
176   DECLARE_WRITE_LINE_MEMBER(write_oki_bank1);
177   DECLARE_DRIVER_INIT(galgames);
178   DECLARE_DRIVER_INIT(galgame2);
179   DECLARE_MACHINE_RESET(tmaster);
180   DECLARE_VIDEO_START(tmaster);
181   DECLARE_MACHINE_RESET(galgames);
182   DECLARE_VIDEO_START(galgames);
183   UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
184   TIMER_DEVICE_CALLBACK_MEMBER(tm3k_interrupt);
185   UINT8 binary_to_BCD(UINT8 data);
186   int tmaster_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
187   int galgames_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high);
188   void tmaster_draw();
189   void galgames_update_rombank(UINT32 cart);
190};
191
192
193/***************************************************************************
194
195                                   Sound
196
197***************************************************************************/
198
199WRITE_LINE_MEMBER(tmaster_state::write_oki_bank0)
200{
201   if (state)
202      m_okibank |= 1;
203   else
204      m_okibank &= ~1;
205
206   m_oki->set_bank_base(m_okibank * 0x40000);
207}
208
209WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
210{
211   if (state)
212      m_okibank |= 2;
213   else
214      m_okibank &= ~2;
215
216   m_oki->set_bank_base(m_okibank * 0x40000);
217}
218
219/***************************************************************************
220
221    68681 DUART <-> Microtouch touch screen controller communication
222
223***************************************************************************/
224
225WRITE_LINE_MEMBER(tmaster_state::duart_irq_handler)
226{
227   m_maincpu->set_input_line_and_vector(4, state, m_duart->get_irq_vector());
228};
229
230/***************************************************************************
231
232  DS1644 RTC
233
234***************************************************************************/
235
236
237UINT8 tmaster_state::binary_to_BCD(UINT8 data)
238{
239   data %= 100;
240
241   return ((data / 10) << 4) | (data %10);
242}
243
244READ16_MEMBER(tmaster_state::rtc_r)
245{
246   system_time systime;
247
248   machine().current_datetime(systime);
249   m_rtc_ram[0x1] = binary_to_BCD(systime.local_time.second);
250   m_rtc_ram[0x2] = binary_to_BCD(systime.local_time.minute);
251   m_rtc_ram[0x3] = binary_to_BCD(systime.local_time.hour);
252   m_rtc_ram[0x4] = binary_to_BCD(systime.local_time.weekday);
253   m_rtc_ram[0x5] = binary_to_BCD(systime.local_time.mday);
254   m_rtc_ram[0x6] = binary_to_BCD(systime.local_time.month+1);
255   m_rtc_ram[0x7] = binary_to_BCD(systime.local_time.year % 100);
256
257   return m_rtc_ram[offset];
258}
259
260WRITE16_MEMBER(tmaster_state::rtc_w)
261{
262   if ( offset == 0 )
263   {
264      m_rtc_ram[0x0] = data & 0xff;
265   }
266}
267
268
269/***************************************************************************
270
271                                Video & Blitter
272
273
274    Offset:     Bits:                     Value:
275
276        00
277
278        02      fedc ba-- ---- ----
279                ---- --9- ---- ----       Layer 1 Buffer To Display
280                ---- ---8 ---- ----       Layer 0 Buffer To Display
281                ---- ---- 7654 3210
282
283        04                                Width
284        06                                X
285
286        08                                Height - 1
287        0A                                Y
288
289        0C                                Source Address (low)
290        0E                                Source Address (mid)
291
292        10      fedc ba98 ---- ----
293                ---- ---- 7--- ----       Layer
294                ---- ---- -6-- ----       Buffer
295                ---- ---- --5- ----       Solid Fill
296                ---- ---- ---4 ----       flipped by lev.3 interrupt routine
297                ---- ---- ---- 3---       flipped by lev.2 interrupt routine
298                ---- ---- ---- -2--       flipped by lev.1 interrupt routine
299                ---- ---- ---- --1-       Flip Y
300                ---- ---- ---- ---0       Flip X
301
302    Addr Register:
303
304                fedc ba98 ---- ----       Solid Fill Pen
305                ---- ---- 7654 3210       Source Address (high)
306
307    Color Register:
308
309                fedc ba98 ---- ----       Source Pen (Pen Replacement Mode)
310                ---- ---- 7654 3210       Palette (0-f) / Destination Pen (Pen Replacement Mode)
311
312    A write to the source address (mid) triggers the blit.
313    A the end of the blit, a level 2 IRQ is issued.
314
315***************************************************************************/
316
317int tmaster_state::tmaster_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high)
318{
319   return (reg_low & 0xff) | ((reg_mid & 0x1ff) << 8) | (reg_high << 17);
320}
321
322int tmaster_state::galgames_compute_addr(UINT16 reg_low, UINT16 reg_mid, UINT16 reg_high)
323{
324   return reg_low | (reg_mid << 16);
325}
326
327VIDEO_START_MEMBER(tmaster_state,tmaster)
328{
329   int layer, buffer;
330   for (layer = 0; layer < 2; layer++)
331   {
332      for (buffer = 0; buffer < 2; buffer++)
333      {
334         m_screen->register_screen_bitmap(m_bitmap[layer][buffer]);
335         m_bitmap[layer][buffer].fill(0xff);
336      }
337   }
338
339   m_compute_addr = &tmaster_state::tmaster_compute_addr;
340}
341
342VIDEO_START_MEMBER(tmaster_state,galgames)
343{
344   VIDEO_START_CALL_MEMBER( tmaster );
345   m_compute_addr = &tmaster_state::galgames_compute_addr;
346}
347
348UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
349{
350   int layers_ctrl = -1;
351
352#ifdef MAME_DEBUG
353   if (machine().input().code_pressed(KEYCODE_Z))
354   {
355      int mask = 0;
356      if (machine().input().code_pressed(KEYCODE_Q))  mask |= 1;
357      if (machine().input().code_pressed(KEYCODE_W))  mask |= 2;
358      if (mask != 0) layers_ctrl &= mask;
359   }
360#endif
361
362
363   bitmap.fill(m_palette->black_pen(), cliprect);
364
365   if (layers_ctrl & 1)    copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
366   if (layers_ctrl & 2)    copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
367
368   return 0;
369}
370
371WRITE16_MEMBER(tmaster_state::tmaster_color_w)
372{
373   COMBINE_DATA( &m_color );
374}
375
376WRITE16_MEMBER(tmaster_state::tmaster_addr_w)
377{
378   COMBINE_DATA( &m_addr );
379}
380
381void tmaster_state::tmaster_draw()
382{
383   int x,y,x0,x1,y0,y1,dx,dy,flipx,flipy,sx,sy,sw,sh, addr, mode, layer,buffer, color;
384
385   UINT8 *gfxdata  =   memregion( "blitter" )->base() + m_gfx_offs;
386
387   UINT16 pen;
388
389   buffer  =   (m_regs[0x02/2] >> 8) & 3;   // 1 bit per layer, selects the currently displayed buffer
390   sw      =    m_regs[0x04/2];
391   sx      =    m_regs[0x06/2];
392   sh      =    m_regs[0x08/2] + 1;
393   sy      =    m_regs[0x0a/2];
394   addr    =   (this->*m_compute_addr)(
395               m_regs[0x0c/2],
396               m_regs[0x0e/2], m_addr);
397   mode    =    m_regs[0x10/2];
398
399   layer   =   (mode >> 7) & 1;    // layer to draw to
400   buffer  =   ((mode >> 6) & 1) ^ ((buffer >> layer) & 1);    // bit 6 selects whether to use the opposite buffer to that displayed
401   bitmap_ind16 &bitmap    =   m_bitmap[layer][buffer];
402
403   addr <<= 1;
404
405#ifdef MAME_DEBUG
406#if 0
407   logerror("%s: blit w %03x, h %02x, x %03x, y %02x, src %06x, fill/addr %04x, repl/color %04x, mode %02x\n", machine().describe_context(),
408         sw,sh,sx,sy, addr, m_addr, m_color, mode
409   );
410#endif
411#endif
412
413   flipx = mode & 1;
414   flipy = mode & 2;
415
416   if (flipx)  { x0 = sw-1;    x1 = -1;    dx = -1;    sx -= sw-1; }
417   else        { x0 = 0;       x1 = sw;    dx = +1;    }
418
419   if (flipy)  { y0 = sh-1;    y1 = -1;    dy = -1;    sy -= sh-1; }
420   else        { y0 = 0;       y1 = sh;    dy = +1;    }
421
422   sx = (sx & 0x7fff) - (sx & 0x8000);
423   sy = (sy & 0x7fff) - (sy & 0x8000);
424
425   color = (m_color & 0x0f) << 8;
426
427   switch (mode & 0x20)
428   {
429      case 0x00:                          // blit with transparency
430         if (addr > m_gfx_size - sw*sh)
431         {
432            logerror("%s: blit error, addr %06x out of bounds\n", machine().describe_context(),addr);
433            addr = m_gfx_size - sw*sh;
434         }
435
436         if ( mode & 0x200 )
437         {
438            // copy from ROM, replacing occurrences of src pen with dst pen
439
440            UINT8 dst_pen = (m_color >> 8) & 0xff;
441            UINT8 src_pen = (m_color >> 0) & 0xff;
442
443            for (y = y0; y != y1; y += dy)
444            {
445               for (x = x0; x != x1; x += dx)
446               {
447                  pen = gfxdata[addr++];
448
449                  if (pen == src_pen)
450                     pen = dst_pen;
451
452                  if ((pen != 0xff) && (sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
453                     bitmap.pix16(sy + y, sx + x) = pen + color;
454               }
455            }
456         }
457         else
458         {
459            // copy from ROM as is
460
461            for (y = y0; y != y1; y += dy)
462            {
463               for (x = x0; x != x1; x += dx)
464               {
465                  pen = gfxdata[addr++];
466
467                  if ((pen != 0xff) && (sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
468                     bitmap.pix16(sy + y, sx + x) = pen + color;
469               }
470            }
471         }
472         break;
473
474      case 0x20:                          // solid fill
475         pen = ((m_addr >> 8) & 0xff) + color;
476
477         if ((pen & 0xff) == 0xff)
478            pen = 0xff;
479
480         for (y = y0; y != y1; y += dy)
481         {
482            for (x = x0; x != x1; x += dx)
483            {
484               if ((sx + x >= 0) && (sx + x < 400) && (sy + y >= 0) && (sy + y < 256))
485                  bitmap.pix16(sy + y, sx + x) = pen;
486            }
487         }
488         break;
489
490   }
491}
492
493WRITE16_MEMBER(tmaster_state::tmaster_blitter_w)
494{
495   COMBINE_DATA( m_regs + offset );
496   switch (offset*2)
497   {
498      case 0x0e:
499         tmaster_draw();
500         m_maincpu->set_input_line(2, HOLD_LINE);
501         break;
502   }
503}
504
505READ16_MEMBER(tmaster_state::tmaster_blitter_r)
506{
507   return 0x0000;  // bit 7 = 1 -> blitter busy
508}
509
510/***************************************************************************
511
512                                Memory Maps
513
514***************************************************************************/
515
516/***************************************************************************
517                                Touch Master
518***************************************************************************/
519
520READ_LINE_MEMBER(tmaster_state::read_rand)
521{
522   return machine().rand()&1;
523}
524
525static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16, tmaster_state )
526   AM_RANGE( 0x000000, 0x1fffff ) AM_ROM
527   AM_RANGE( 0x200000, 0x27ffff ) AM_RAM
528   AM_RANGE( 0x280000, 0x28ffef ) AM_RAM AM_SHARE("nvram")
529   AM_RANGE( 0x28fff0, 0x28ffff ) AM_READWRITE(rtc_r, rtc_w )
530
531   AM_RANGE( 0x300010, 0x300011 ) AM_READ_PORT("COIN")
532
533   AM_RANGE( 0x300020, 0x30003f ) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
534
535   AM_RANGE( 0x300040, 0x300041 ) AM_WRITE_PORT("OUT")
536
537   AM_RANGE( 0x300070, 0x300071 ) AM_WRITE(tmaster_addr_w )
538
539   AM_RANGE( 0x500000, 0x500011 ) AM_WRITE(tmaster_blitter_w ) AM_SHARE("regs")
540   AM_RANGE( 0x500010, 0x500011 ) AM_READ(tmaster_blitter_r )
541
542   AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often
543
544   AM_RANGE( 0x600000, 0x601fff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
545
546   AM_RANGE( 0x800000, 0x800001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
547
548   AM_RANGE( 0x800010, 0x800011 ) AM_WRITE(tmaster_color_w )
549ADDRESS_MAP_END
550
551
552/***************************************************************************
553                                Galaxy Games
554***************************************************************************/
555
556// ROM/RAM Banking
557
558#define GALGAMES_BANK_000000_R  "000000_r"
559#define GALGAMES_BANK_000000_W  "000000_w"
560#define GALGAMES_BANK_200000_R  "200000_r"
561#define GALGAMES_BANK_200000_W  "200000_w"
562#define GALGAMES_BANK_240000_R  "240000_r"
563
564#define GALGAMES_RAM    0
565#define GALGAMES_ROM0   1
566#define GALGAMES_ROM1   2
567#define GALGAMES_ROM2   3
568#define GALGAMES_ROM3   4
569
570
571// NVRAM (5 x EEPROM)
572
573#define GALGAMES_EEPROM_BIOS  "eeprom_bios"
574#define GALGAMES_EEPROM_CART1 "eeprom_cart1"
575#define GALGAMES_EEPROM_CART2 "eeprom_cart2"
576#define GALGAMES_EEPROM_CART3 "eeprom_cart3"
577#define GALGAMES_EEPROM_CART4 "eeprom_cart4"
578
579static const char *const galgames_eeprom_names[5] = { GALGAMES_EEPROM_BIOS, GALGAMES_EEPROM_CART1, GALGAMES_EEPROM_CART2, GALGAMES_EEPROM_CART3, GALGAMES_EEPROM_CART4 };
580
581READ16_MEMBER(tmaster_state::galgames_eeprom_r)
582{
583   eeprom_serial_93cxx_device *eeprom = machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[m_galgames_cart]);
584
585   return eeprom->do_read() ? 0x80 : 0x00;
586}
587
588WRITE16_MEMBER(tmaster_state::galgames_eeprom_w)
589{
590   if (data & ~0x0003)
591      logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",space.device().safe_pc(),data);
592
593   if ( ACCESSING_BITS_0_7 )
594   {
595      eeprom_serial_93cxx_device *eeprom = machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[m_galgames_cart]);
596
597      // latch the bit
598      eeprom->di_write(data & 0x0001);
599
600      // clock line asserted: write latch or select next bit to read
601      eeprom->clk_write((data & 0x0002) ? ASSERT_LINE : CLEAR_LINE );
602   }
603}
604
605// BT481A Palette RAMDAC
606
607WRITE16_MEMBER(tmaster_state::galgames_palette_offset_w)
608{
609   if (ACCESSING_BITS_0_7)
610   {
611      m_palette_offset = data & 0xff;
612      m_palette_index = 0;
613   }
614}
615WRITE16_MEMBER(tmaster_state::galgames_palette_data_w)
616{
617   if (ACCESSING_BITS_0_7)
618   {
619      m_palette_data[m_palette_index] = data & 0xff;
620      if (++m_palette_index == 3)
621      {
622         int palette_base;
623         for (palette_base = 0; palette_base < 0x1000; palette_base += 0x100)
624            m_palette->set_pen_color(m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2]));
625         m_palette_index = 0;
626         m_palette_offset++;
627      }
628   }
629}
630
631// Sound
632READ16_MEMBER(tmaster_state::galgames_okiram_r)
633{
634   return memregion("oki")->base()[offset] | 0xff00;
635}
636WRITE16_MEMBER(tmaster_state::galgames_okiram_w)
637{
638   if (ACCESSING_BITS_0_7)
639      memregion("oki")->base()[offset] = data & 0xff;
640}
641
642// Carts (preliminary, PIC communication is not implemented)
643
644void tmaster_state::galgames_update_rombank(UINT32 cart)
645{
646   m_galgames_cart = cart;
647
648   m_gfx_offs = 0x200000 * cart;
649
650   if (membank(GALGAMES_BANK_000000_R)->entry() == GALGAMES_RAM)
651      membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_ROM0 + m_galgames_cart);  // rom
652
653   membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0 + m_galgames_cart);  // rom
654}
655
656WRITE16_MEMBER(tmaster_state::galgames_cart_sel_w)
657{
658   // cart selection (0 1 2 3 4 7)
659
660   if (ACCESSING_BITS_0_7)
661   {
662      int i;
663
664      switch( data & 0xff )
665      {
666         case 0x07:      // 7 resets the eeprom
667            for (i = 0; i < 5; i++)
668               machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[i])->cs_write(CLEAR_LINE);
669            break;
670
671         case 0x00:
672         case 0x01:
673         case 0x02:
674         case 0x03:
675         case 0x04:
676            machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[data & 0xff])->cs_write(ASSERT_LINE);
677            galgames_update_rombank(data & 0xff);
678            break;
679
680         default:
681            machine().device<eeprom_serial_93cxx_device>(galgames_eeprom_names[0])->cs_write(ASSERT_LINE);
682            galgames_update_rombank(0);
683            logerror("%06x: unknown cart sel = %04x\n", space.device().safe_pc(), data);
684            break;
685      }
686   }
687}
688
689READ16_MEMBER(tmaster_state::galgames_cart_clock_r)
690{
691   return 0x0080;
692}
693
694WRITE16_MEMBER(tmaster_state::galgames_cart_clock_w)
695{
696   if (ACCESSING_BITS_0_7)
697   {
698      // bit 3 = clock
699
700      // ROM/RAM banking
701      if ((data & 0xf7) == 0x05)
702      {
703         membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_RAM);   // ram
704         galgames_update_rombank(m_galgames_cart);
705         logerror("%06x: romram bank = %04x\n", space.device().safe_pc(), data);
706      }
707      else
708      {
709         membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0);  // rom
710         membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM);   // ram
711         logerror("%06x: unknown romram bank = %04x\n", space.device().safe_pc(), data);
712      }
713   }
714}
715
716READ16_MEMBER(tmaster_state::galgames_cart_data_r)
717{
718   return 0;
719}
720WRITE16_MEMBER(tmaster_state::galgames_cart_data_w)
721{
722}
723
724
725READ16_MEMBER(tmaster_state::dummy_read_01)
726{
727   return 0x3; // Pass the check at PC = 0xfae & a later one
728}
729
730static ADDRESS_MAP_START( galgames_map, AS_PROGRAM, 16, tmaster_state )
731
732   AM_RANGE( 0x000000, 0x03ffff ) AM_READ_BANK(GALGAMES_BANK_000000_R) AM_WRITE_BANK(GALGAMES_BANK_000000_W) AM_SHARE("galgames_ram")
733   AM_RANGE( 0x040000, 0x1fffff ) AM_ROM AM_REGION( "maincpu", 0x40000 )
734   AM_RANGE( 0x200000, 0x23ffff ) AM_READ_BANK(GALGAMES_BANK_200000_R) AM_WRITE_BANK(GALGAMES_BANK_200000_W)
735   AM_RANGE( 0x240000, 0x3fffff ) AM_READ_BANK(GALGAMES_BANK_240000_R)
736
737   AM_RANGE( 0x400000, 0x400011 ) AM_WRITE(tmaster_blitter_w ) AM_SHARE("regs")
738   AM_RANGE( 0x400012, 0x400013 ) AM_WRITE(tmaster_addr_w )
739   AM_RANGE( 0x400014, 0x400015 ) AM_WRITE(tmaster_color_w )
740   AM_RANGE( 0x400020, 0x400021 ) AM_READ(tmaster_blitter_r )
741
742   AM_RANGE( 0x600000, 0x600001 ) AM_READ(dummy_read_01 ) AM_WRITENOP
743   AM_RANGE( 0x700000, 0x700001 ) AM_READ(dummy_read_01 ) AM_WRITENOP
744   AM_RANGE( 0x800020, 0x80003f ) AM_NOP   // ?
745   AM_RANGE( 0x900000, 0x900001 ) AM_WRITE(watchdog_reset16_w )
746
747   AM_RANGE( 0xa00000, 0xa00001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
748   AM_RANGE( 0xb00000, 0xb7ffff ) AM_READWRITE(galgames_okiram_r, galgames_okiram_w ) // (only low bytes tested) 4x N341024SJ-15
749
750   AM_RANGE( 0xc00000, 0xc00001 ) AM_WRITE(galgames_palette_offset_w )
751   AM_RANGE( 0xc00002, 0xc00003 ) AM_WRITE(galgames_palette_data_w )
752
753   AM_RANGE( 0xd00000, 0xd00001 ) AM_READ_PORT("TRACKBALL_1_X")
754   AM_RANGE( 0xd00000, 0xd00001 ) AM_WRITENOP
755   AM_RANGE( 0xd00002, 0xd00003 ) AM_READ_PORT("TRACKBALL_1_Y")
756   AM_RANGE( 0xd00004, 0xd00005 ) AM_READ_PORT("TRACKBALL_2_X")
757   AM_RANGE( 0xd00006, 0xd00007 ) AM_READ_PORT("TRACKBALL_2_Y")
758   AM_RANGE( 0xd00008, 0xd00009 ) AM_READ_PORT("P1")
759   AM_RANGE( 0xd0000a, 0xd0000b ) AM_READ_PORT("P2")
760   AM_RANGE( 0xd0000c, 0xd0000d ) AM_READ_PORT("SYSTEM") AM_WRITENOP
761
762   AM_RANGE( 0xd0000e, 0xd0000f ) AM_WRITE(galgames_cart_sel_w )
763   AM_RANGE( 0xd00010, 0xd00011 ) AM_READWRITE(galgames_eeprom_r, galgames_eeprom_w )
764   AM_RANGE( 0xd00012, 0xd00013 ) AM_READWRITE(galgames_cart_data_r, galgames_cart_data_w )
765   AM_RANGE( 0xd00014, 0xd00015 ) AM_READWRITE(galgames_cart_clock_r, galgames_cart_clock_w )
766
767ADDRESS_MAP_END
768
769
770/***************************************************************************
771
772                                Input Ports
773
774***************************************************************************/
775static INPUT_PORTS_START( tm )
776   PORT_START("COIN")
777   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN5 )    // "M. Coin 1 Input"
778   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN6 )    // "M. Coin 2 Input"
779   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BILL1 ) PORT_IMPULSE(2)    // "DBV Input"
780   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
781   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )  // service coin?
782   PORT_SERVICE_NO_TOGGLE( 0x0020, IP_ACTIVE_LOW )
783   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "Calibrate"
784   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
785   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
786   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
787   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
788   PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, read_rand )
789   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN1 )    // "E. Coin 1" (ECA?) tmaster defaults to e. coin,
790   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN2 )    // "E. Coin 2" (ECA?) rather than m. coin
791   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )    // "E. Coin 3" (ECA?) so they're coin1-coin4
792   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 )    // "E. Coin 4" (ECA?)
793
794   PORT_START("OUT")
795   //0800?
796   PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, write_oki_bank1 )
797   PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( DEVICE_SELF, tmaster_state, write_oki_bank0 )
798   //0002?
799INPUT_PORTS_END
800
801static INPUT_PORTS_START( tm2k )
802   PORT_INCLUDE( tm )
803
804   PORT_MODIFY("COIN")
805   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN3 )    // "E. Coin 1" (ECA mech) The rest of the tm games
806   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN4 )    // "E. Coin 2" (ECA mech) Default to m. coin
807   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN5 )    // "E. Coin 3" (ECA mech) So these are coin3-coin6
808   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN6 )    // "E. Coin 4" (ECA mech)
809INPUT_PORTS_END
810
811static INPUT_PORTS_START( tm4k )
812   PORT_INCLUDE( tm2k )
813
814   PORT_MODIFY("COIN")
815   PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, read_dq )
816
817   PORT_MODIFY( "OUT" )
818   PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_rst )
819   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_dq )
820   PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER( "ds1204", ds1204_device, write_clk )
821INPUT_PORTS_END
822
823static INPUT_PORTS_START( galgames )
824   PORT_START("P1")
825   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
826   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
827   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
828   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
829   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)   // Button A (right)
830   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)   // Button B (left)
831   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
832   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
833   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
834
835   PORT_START("P2")
836   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
837   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
838   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
839   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
840   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)   // Button A (right)
841   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)   // Button B (left)
842   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1)          // DBA (coin)
843   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
844   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
845
846   PORT_START("SYSTEM")
847   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )    // CS 1 (coin)
848   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )    // CS 2 (coin)
849   PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH )  // System Check
850   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
851   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
852   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
853   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
854   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
855   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
856
857   PORT_START("TRACKBALL_1_X")
858   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(1) PORT_RESET
859
860   PORT_START("TRACKBALL_1_Y")
861   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(1) PORT_RESET
862
863   PORT_START("TRACKBALL_2_X")
864   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_RESET
865
866   PORT_START("TRACKBALL_2_Y")
867   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_RESET
868INPUT_PORTS_END
869
870
871/***************************************************************************
872
873                               Machine Drivers
874
875***************************************************************************/
876
877MACHINE_RESET_MEMBER(tmaster_state,tmaster)
878{
879   m_gfx_offs = 0;
880   m_gfx_size = memregion("blitter")->bytes();
881
882}
883
884TIMER_DEVICE_CALLBACK_MEMBER(tmaster_state::tm3k_interrupt)
885{
886   int scanline = param;
887
888   if(scanline == 0) // vblank, FIXME
889      m_maincpu->set_input_line(3, HOLD_LINE);
890   else if((scanline % 16) == 0)
891      m_maincpu->set_input_line(1, HOLD_LINE);
892
893   // lev 2 triggered at the end of the blit
894}
895
896static MACHINE_CONFIG_START( tm, tmaster_state )
897   MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12MHz */
898   MCFG_CPU_PROGRAM_MAP(tmaster_map)
899   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, tm3k_interrupt, "screen", 0, 1)
900
901   MCFG_MACHINE_RESET_OVERRIDE(tmaster_state,tmaster)
902
903   MCFG_MC68681_ADD( "duart68681", XTAL_8_664MHz / 2 /*??*/)
904   MCFG_MC68681_IRQ_CALLBACK(WRITELINE(tmaster_state, duart_irq_handler))
905   MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("microtouch", microtouch_device, rx))
906
907   MCFG_MICROTOUCH_ADD( "microtouch", 9600, DEVWRITELINE("duart68681", mc68681_device, rx_a_w) )
908
909   MCFG_NVRAM_ADD_0FILL("nvram")
910
911   MCFG_SCREEN_ADD("screen", RASTER)
912   MCFG_SCREEN_REFRESH_RATE(60)
913   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
914   MCFG_SCREEN_SIZE(400, 256)
915   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
916   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
917   MCFG_SCREEN_PALETTE("palette")
918
919   MCFG_PALETTE_ADD("palette", 0x1000)
920   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
921
922   MCFG_VIDEO_START_OVERRIDE(tmaster_state,tmaster)
923
924   MCFG_SPEAKER_STANDARD_MONO("mono")
925
926   MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
927   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
928MACHINE_CONFIG_END
929
930static MACHINE_CONFIG_DERIVED( tm2k, tm )
931   MCFG_OKIM6295_REPLACE("oki", XTAL_32MHz / 16, OKIM6295_PIN7_HIGH)  /* 2MHz; clock frequency & pin 7 not verified */
932   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
933MACHINE_CONFIG_END
934
935static MACHINE_CONFIG_DERIVED( tm4k, tm2k )
936   MCFG_DS1204_ADD("ds1204")
937MACHINE_CONFIG_END
938
939MACHINE_RESET_MEMBER(tmaster_state,galgames)
940{
941   m_gfx_offs = 0;
942   m_gfx_size = 0x200000;
943
944   membank(GALGAMES_BANK_000000_R)->set_entry(GALGAMES_ROM0);  // rom
945   membank(GALGAMES_BANK_000000_W)->set_entry(GALGAMES_RAM);       // ram
946
947   membank(GALGAMES_BANK_200000_R)->set_entry(GALGAMES_RAM);       // ram
948   membank(GALGAMES_BANK_200000_W)->set_entry(GALGAMES_RAM);       // ram
949
950   membank(GALGAMES_BANK_240000_R)->set_entry(GALGAMES_ROM0);  // rom
951
952   galgames_update_rombank(0);
953
954   m_maincpu->reset();
955}
956
957static MACHINE_CONFIG_START( galgames, tmaster_state )
958   MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2)
959   MCFG_CPU_PROGRAM_MAP(galgames_map)
960   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, tm3k_interrupt, "screen", 0, 1)
961
962   // 5 EEPROMs on the motherboard (for BIOS + 4 Carts)
963   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_BIOS)
964   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART1)
965   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART2)
966   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART3)
967   MCFG_EEPROM_SERIAL_93C76_8BIT_ADD(GALGAMES_EEPROM_CART4)
968
969   MCFG_MACHINE_RESET_OVERRIDE(tmaster_state, galgames )
970
971   /* video hardware */
972   MCFG_SCREEN_ADD("screen", RASTER)
973   MCFG_SCREEN_REFRESH_RATE(60)
974   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
975   MCFG_SCREEN_SIZE(400, 256)
976   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
977   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
978   MCFG_SCREEN_PALETTE("palette")
979
980   MCFG_PALETTE_ADD("palette", 0x1000) // only 0x100 used
981   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
982
983   MCFG_VIDEO_START_OVERRIDE(tmaster_state,galgames)
984
985   /* sound hardware */
986   MCFG_SPEAKER_STANDARD_MONO("mono")
987
988   MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 8, OKIM6295_PIN7_LOW) // clock frequency & pin 7 not verified
989   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
990MACHINE_CONFIG_END
991
992/*
993    Each cartridge contains a PIC, that should provide, among other things, the following header:
994
995    4345 5331 3939 3700 0c10 ffb3 3c00 0000       "CES1997"
996    fffe f2f7 8557 c119 0000 0000 2340 188e
997*/
998static MACHINE_CONFIG_DERIVED( galgame2, galgames )
999//  MCFG_CPU_ADD("pic", PIC12C508, XTAL_24MHz / 2)
1000MACHINE_CONFIG_END
1001
1002
1003/***************************************************************************
1004
1005                               ROMs Loading
1006
1007***************************************************************************/
1008
1009/***************************************************************************
1010
1011Touch Master
10121996, Midway
1013
101468000 @ 12MHz
1015u51 - u52 program code
1016u36 -> u39 gfx
1017u8 sound
1018OKI6295
1019NVSRAM DS1225a
1020Philips SCN68681
1021Xlinx XC3042a
1022
1023***************************************************************************/
1024
1025ROM_START( tm )
1026   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1027   ROM_LOAD16_BYTE( "tmaster_v3.00_euro.u51", 0x000000, 0x080000, CRC(edaa5874) SHA1(48b99bc7f5a6453def265967ca7d8eefdf9dc97b) ) /* Ver: 3.00 Euro 11-25-96 */
1028   ROM_LOAD16_BYTE( "tmaster_v3.00_euro.u52", 0x000001, 0x080000, CRC(e9fd30fc) SHA1(d91ea05d5f574603883336729fb9df705688945d) ) /* Ver: 3.00 Euro 11-25-96 */
1029
1030   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1031   ROM_LOAD16_BYTE( "tmaster_v2.1.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1032   ROM_LOAD16_BYTE( "tmaster_v2.1.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
1033   // unused gap
1034   ROM_LOAD16_BYTE( "tmaster_v3.00.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Marked as Rev 3.00 */
1035   ROM_LOAD16_BYTE( "tmaster_v3.00.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Marked as Rev 3.00 */
1036
1037   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1038   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1039   ROM_CONTINUE(           0xc0000, 0x040000 )
1040ROM_END
1041
1042ROM_START( tmdo )
1043   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1044   ROM_LOAD16_BYTE( "tmaster_v2.2-01.u51", 0x000000, 0x080000, CRC(12e1b085) SHA1(b01325e0067204991a707db24e3e2036708ebccf) ) /* Ver: 2.2-01 Standard 10-17-96 */
1045   ROM_LOAD16_BYTE( "tmaster_v2.2-01.u52", 0x000001, 0x080000, CRC(6c2c643f) SHA1(8dd7930f4c499483ca46b0b97bde94cb8d6e06aa) ) /* Ver: 2.2-01 Standard 10-17-96 */
1046
1047   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1048   ROM_LOAD16_BYTE( "tmaster_v2.1.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1049   ROM_LOAD16_BYTE( "tmaster_v2.1.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
1050   // unused gap
1051   ROM_LOAD16_BYTE( "tmaster_v2.1.u39", 0x300000, 0x080000, CRC(a4445260) SHA1(915347f69d7ea45f8f299a67d77ff437983495d2) ) /* Marked as Rev 2.1 */
1052   ROM_LOAD16_BYTE( "tmaster_v2.1.u37", 0x300001, 0x080000, CRC(0e140a3e) SHA1(10a34e3b95c0d36fe687fe8c1124ef244a93d720) ) /* Marked as Rev 2.1 */
1053
1054   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1055   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1056   ROM_CONTINUE(           0xc0000, 0x040000 )
1057ROM_END
1058
1059/***************************************************************************
1060
1061Touchmaster 2000
1062by Midway (c) 1996
1063touchscreen game
1064
1065All chips are ST M27C4001
1066---------------------------
1067
1068Name_Board Location        Version               Use             Checksum
1069-------------------------------------------------------------------------
1070TM2K_v463.u51              4.63 Game Program & Cpu instructions   2342
1071TM2K_v463.u52              4.63 Game Program & Cpu instructions   4619
1072
1073TM2K_v402.u51              4.02 Game Program & Cpu instructions   c517
1074TM2K_v402.u52              4.02 Game Program & Cpu instructions   e82c
1075
1076TM2K_v400.u51              4.00 Game Program & Cpu instructions   a49b
1077TM2K_v400.u52              4.00 Game Program & Cpu instructions   7c2f
1078
1079TM2K_graphic.u36           4.00 Video Images & Graphics           20cb
1080TM2K_graphic.u37           4.00 Video Images & Graphics           f5cf
1081TM2K_graphic.u38           4.00 Video Images & Graphics           14c7
1082TM2K_graphic.u39           4.00 Video Images & Graphics           043e
1083TM2K_graphic.u40           4.62 Video Images & Graphics           14c7
1084TM2K_graphic.u41           4.62 Video Images & Graphics           9334
1085TM2K_sound.u8              1.0  Audio Program & sounds            dbde
1086
1087Does not require a security key
1088
1089***************************************************************************/
1090
1091ROM_START( tm2k )
1092   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1093   ROM_LOAD16_BYTE( "tm2k_v4.63.u51", 0x000000, 0x100000, CRC(f73fdb23) SHA1(d0a5e98d5de85fd3f29d1efe6b7aebe9e348c59b) ) /* Ver: 4.63 Standard 9-3-97 */
1094   ROM_LOAD16_BYTE( "tm2k_v4.63.u52", 0x000001, 0x100000, CRC(79ac719c) SHA1(7717362ea42fc36009e0fed430f07c946553bfd3) ) /* Ver: 4.63 Standard 9-3-97 */
1095
1096   ROM_REGION( 0x600000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1097   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* First 4 graphic roms marked as Rev 4.00 */
1098   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1099   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1100   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1101   ROM_LOAD16_BYTE( "tm2k_graphic.u41", 0x500000, 0x080000, CRC(abac4ad3) SHA1(d3944a39b46f3e67ddb0ff7047685c6c716a393c) ) /* Last 2 graphics roms marked as Rev 4.62 */
1102   ROM_LOAD16_BYTE( "tm2k_graphic.u40", 0x500001, 0x080000, CRC(ca86b9a2) SHA1(bb639af4e0ee48c3231de5f0a0f14de20836216a) )
1103
1104   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1105   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1106   ROM_CONTINUE(              0xc0000, 0x040000 )
1107ROM_END
1108
1109ROM_START( tm2ka )
1110   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1111   ROM_LOAD16_BYTE( "tm2k_v4.02.u51", 0x000000, 0x080000, CRC(47269aeb) SHA1(6b7ebfde290f7d21a36a72b00dc6523490581edb) ) /* Ver: 4.02 Standard 5-30-97 */
1112   ROM_LOAD16_BYTE( "tm2k_v4.02.u52", 0x000001, 0x080000, CRC(2e3564ac) SHA1(9a71f38841bc17c291cb3f513b18ebe50fc18d9f) ) /* Ver: 4.02 Standard 5-30-97 */
1113
1114   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1115   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* All 4 graphic roms marked as Rev 4.00 */
1116   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1117   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1118   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1119   /* Sockets U40 & U41 not populated with earlier Touchmaster 2000 sets */
1120
1121   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1122   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1123   ROM_CONTINUE(              0xc0000, 0x040000 )
1124ROM_END
1125
1126ROM_START( tm2kb )
1127   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1128   ROM_LOAD16_BYTE( "tm2k_v4.00.u51", 0x000000, 0x080000, CRC(c110502b) SHA1(e9415ed23b9bb0851548e75c208ebcbe6ac2a708) ) /* Ver: 4.00 Standard 5-16-97 */
1129   ROM_LOAD16_BYTE( "tm2k_v4.00.u52", 0x000001, 0x080000, CRC(a17c1d6e) SHA1(5ecb8f27f75469ab9600b3f640eb1acc7a3980e0) ) /* Ver: 4.00 Standard 5-16-97 */
1130
1131   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )  // Blitter gfx
1132   ROM_LOAD16_BYTE( "tm2k_graphic.u38", 0x100000, 0x080000, CRC(22bb6cc5) SHA1(fc6cfd4e1e6e1455d648a7b63f2c8e37cdfe86d6) ) /* All 4 graphic roms marked as Rev 4.00 */
1133   ROM_LOAD16_BYTE( "tm2k_graphic.u36", 0x100001, 0x080000, CRC(7f0840ac) SHA1(1c3af419d571579a3f2c561617d55914d28ef22b) )
1134   ROM_LOAD16_BYTE( "tm2k_graphic.u39", 0x300000, 0x080000, CRC(059e1bd8) SHA1(7451c1cfa0d090b0566e353738a1ffba732a8ad2) )
1135   ROM_LOAD16_BYTE( "tm2k_graphic.u37", 0x300001, 0x080000, CRC(4cf65950) SHA1(74d49166da19ecc4b8fc1e8e3f01361dfb645eea) )
1136   /* Sockets U40 & U41 not populated with earlier Touchmaster 2000 sets */
1137
1138   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1139   ROM_LOAD( "tm2k_sound.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
1140   ROM_CONTINUE(              0xc0000, 0x040000 )
1141ROM_END
1142
1143/***************************************************************************
1144
1145Touchmaster 3000
1146by Midway (c) 1997
1147touchscreen game
1148
1149All chips are SGS 27C801 (some kits/upgrades used mask roms)
1150---------------------------
1151
1152Name_Board Location        Version               Use             Checksum
1153-------------------------------------------------------------------------
1154TM3K_v502.u51              5.02 Game Program & Cpu instructions   c308
1155TM3K_v502.u52              5.02 Game Program & Cpu instructions   4d5e
1156
1157TM3K_v501.u51              5.01 Game Program & Cpu instructions   0c6c
1158TM3K_v501.u52              5.01 Game Program & Cpu instructions   b2d8
1159
1160TM3K_graphic.u36           5.0  Video Images & Graphics           54f1
1161TM3K_graphic.u37           5.0  Video Images & Graphics           4856
1162TM3K_graphic.u38           5.0  Video Images & Graphics           5493
1163TM3K_graphic.u39           5.0  Video Images & Graphics           6029
1164TM3K_graphic.u40           5.0  Video Images & Graphics           ccb4
1165TM3K_graphic.u41           5.0  Video Images & Graphics           e9ab
1166TM3K_sound.u8              5.0  Audio Program & sounds            64d5
1167
1168Does not require a security key
1169
1170Box labeled as:
1171
1172TMSTR 3000 UPGRADE KIT USA-DBV
117363373100870
1174
1175***************************************************************************/
1176
1177ROM_START( tm3k )
1178   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1179   ROM_LOAD16_BYTE( "tm3k_v5.02.u51", 0x000000, 0x100000, CRC(6267e2bd) SHA1(c81e5cd059a9ad2f6a36261738e39740a1a3a03f) ) /* TOUCHMASTER 3000 U51 DOMESTIC 5.02 (Standard 11-17-97) (yellow label) */
1180   ROM_LOAD16_BYTE( "tm3k_v5.02.u52", 0x000001, 0x100000, CRC(836fdf1e) SHA1(2ee9c0929950afb72f172b253d6c392e9a698037) ) /* TOUCHMASTER 3000 U52 DOMESTIC 5.02 (Standard 11-17-97) (yellow label) */
1181
1182   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1183   ROM_LOAD16_BYTE( "tm3k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Labeled TOUCHMASTER U38 STANDARD 5.0 (pink label) */
1184   ROM_LOAD16_BYTE( "tm3k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Labeled TOUCHMASTER U36 STANDARD 5.0 (pink label) */
1185   ROM_LOAD16_BYTE( "tm3k_graphic.u39", 0x200000, 0x100000, CRC(206b56a6) SHA1(09e5e05bffd0a09abd24d668e2c59b56f2c79134) ) /* Labeled TOUCHMASTER U39 STANDARD 5.0 (pink label) */
1186   ROM_LOAD16_BYTE( "tm3k_graphic.u37", 0x200001, 0x100000, CRC(18f50eb3) SHA1(a7c9d3b24b5fd110380ec87d9200d55cad473efc) ) /* Labeled TOUCHMASTER U37 STANDARD 5.0 (pink label) */
1187   ROM_LOAD16_BYTE( "tm3k_graphic.u41", 0x400000, 0x100000, CRC(c35c0536) SHA1(a29fd88e8f3e124f6e84012c3573616f6447eeaa) ) /* Labeled TOUCHMASTER U41 STANDARD 5.0 (pink label) */
1188   ROM_LOAD16_BYTE( "tm3k_graphic.u40", 0x400001, 0x100000, CRC(353df7ca) SHA1(d6c5d5449af6b6a3acee219778583904c5b554b4) ) /* Labeled TOUCHMASTER U40 STANDARD 5.0 (pink label) */
1189
1190   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1191   ROM_LOAD( "tm3k_sound.u8", 0x00000, 0x100000, CRC(d0ae33c1) SHA1(a079def9a086a091fcc4493a44fec756d2470415) ) /* Labeled TOUCHMASTER U8 5.0 (green label) */
1192ROM_END
1193
1194ROM_START( tm3ka )
1195   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1196   ROM_LOAD16_BYTE( "tm3k_v5.01.u51", 0x000000, 0x100000, CRC(c9522279) SHA1(e613b791f831271722f05b7e96c35519fa9fc174) ) /* TOUCHMASTER 3000 U51 DOMESTIC 5.01 (Standard 11-4-97) (yellow label) */
1197   ROM_LOAD16_BYTE( "tm3k_v5.01.u52", 0x000001, 0x100000, CRC(8c6a0db7) SHA1(6b0eae60ea471cd8c4001749ac2677d8d4532567) ) /* TOUCHMASTER 3000 U52 DOMESTIC 5.01 (Standard 11-4-97) (yellow label) */
1198
1199   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1200   ROM_LOAD16_BYTE( "tm3k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Labeled TOUCHMASTER U38 STANDARD 5.0 (pink label) */
1201   ROM_LOAD16_BYTE( "tm3k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Labeled TOUCHMASTER U36 STANDARD 5.0 (pink label) */
1202   ROM_LOAD16_BYTE( "tm3k_graphic.u39", 0x200000, 0x100000, CRC(206b56a6) SHA1(09e5e05bffd0a09abd24d668e2c59b56f2c79134) ) /* Labeled TOUCHMASTER U39 STANDARD 5.0 (pink label) */
1203   ROM_LOAD16_BYTE( "tm3k_graphic.u37", 0x200001, 0x100000, CRC(18f50eb3) SHA1(a7c9d3b24b5fd110380ec87d9200d55cad473efc) ) /* Labeled TOUCHMASTER U37 STANDARD 5.0 (pink label) */
1204   ROM_LOAD16_BYTE( "tm3k_graphic.u41", 0x400000, 0x100000, CRC(c35c0536) SHA1(a29fd88e8f3e124f6e84012c3573616f6447eeaa) ) /* Labeled TOUCHMASTER U41 STANDARD 5.0 (pink label) */
1205   ROM_LOAD16_BYTE( "tm3k_graphic.u40", 0x400001, 0x100000, CRC(353df7ca) SHA1(d6c5d5449af6b6a3acee219778583904c5b554b4) ) /* Labeled TOUCHMASTER U40 STANDARD 5.0 (pink label) */
1206
1207   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1208   ROM_LOAD( "tm3k_sound.u8", 0x00000, 0x100000, CRC(d0ae33c1) SHA1(a079def9a086a091fcc4493a44fec756d2470415) ) /* Labeled TOUCHMASTER U8 5.0 (green label) */
1209ROM_END
1210
1211/***************************************************************************
1212
1213Touchmaster 4000
1214by Midway (c) 1998
1215touchscreen game
1216
1217All chips are SGS 27C801 (some kits/upgrades used mask roms)
1218---------------------------
1219
1220Name_Board Location        Version               Use                      Checksum
1221-----------------------------------------------------------------------------------
1222TM4K_v603.u51              6.03 Game Program & Cpu instructions 96B0
1223TM4K_v603.u52              6.03 Game Program & Cpu instructions 2842
1224
1225TM4K_v602.u51              6.02 Game Program & Cpu instructions FEA0
1226TM4K_v602.u52              6.02 Game Program & Cpu instructions 9A71
1227
1228TM4K_v601.u51              6.01 Game Program & Cpu instructions 6FF1
1229TM4K_v601.u52              6.01 Game Program & Cpu instructions 6643
1230
1231TM4K_graphic.u36           6.0  Video Images & Graphics         54F1 (same as TM3K)
1232TM4K_graphic.u37           6.0  Video Images & Graphics         609E
1233TM4K_graphic.u38           6.0  Video Images & Graphics         5493 (same as TM3K)
1234TM4K_graphic.u39           6.0  Video Images & Graphics         CB90
1235TM4K_graphic.u40           6.0  Video Images & Graphics         208A
1236TM4K_graphic.u41           6.0  Video Images & Graphics         385D
1237TM4K_sound.u8              6.0  Audio Program & sounds          DE0B
1238
1239J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-003
1240
1241***************************************************************************/
1242
1243ROM_START( tm4k )
1244   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1245   ROM_LOAD16_BYTE( "tm4k_v6.03.u51", 0x000000, 0x100000, CRC(0c88c856) SHA1(4c60c09812ab05f9dccef3038a5ddbd4632dbf4e) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.03 (Standard 6-23-98) */
1246   ROM_LOAD16_BYTE( "tm4k_v6.03.u52", 0x000001, 0x100000, CRC(9320bfe9) SHA1(cc3a51f439c139ca30efe28a817cf4f68679180e) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.03 (Standard 6-23-98) */
1247
1248   ROM_REGION( 0x000022, "ds1204", 0 )
1249   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1250
1251   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1252   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1253   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1254   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1255   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1256   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1257   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1258
1259   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1260   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1261ROM_END
1262
1263ROM_START( tm4knj ) /* New Jersey version only */
1264   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1265   ROM_LOAD16_BYTE( "tm4knj_v6.03.u51", 0x000000, 0x100000, CRC(fcaf10d2) SHA1(67bf584223c4bb7436bd9a03eb799895ecd26a26) ) /* TOUCHMASTER 4000 U51 NEW JERSEY  6.03 (New Jersey 3-23-98) */
1266   ROM_LOAD16_BYTE( "tm4knj_v6.03.u52", 0x000001, 0x100000, CRC(bed6f9e9) SHA1(695509a2b47e1d70cdbad765f581605b31065b8c) ) /* TOUCHMASTER 4000 U52 NEW JERSEY  6.03 (New Jersey 3-23-98) */
1267
1268   ROM_REGION( 0x000022, "ds1204", 0 )
1269   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1270
1271   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1272   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1273   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1274   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1275   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1276   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1277   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1278
1279   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1280   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1281ROM_END
1282
1283ROM_START( tm4ka )
1284   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1285   ROM_LOAD16_BYTE( "tm4k_v6.02.u51", 0x000000, 0x100000, CRC(3d8d7848) SHA1(31638f23cdd5e6cfbb2270e953f84fe1bd437950) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.02 (Standard 4-14-98) */
1286   ROM_LOAD16_BYTE( "tm4k_v6.02.u52", 0x000001, 0x100000, CRC(6d412871) SHA1(ae27c7723b292daf6682c53bafac22e4a3cd1ece) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.02 (Standard 4-14-98) */
1287
1288   ROM_REGION( 0x000022, "ds1204", 0 )
1289   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1290
1291   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1292   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1293   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1294   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1295   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1296   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1297   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1298
1299   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1300   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1301ROM_END
1302
1303ROM_START( tm4kca ) /* California version only */
1304   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1305   ROM_LOAD16_BYTE( "tm4k_v6.02ca.u51", 0x000000, 0x100000, CRC(b355e15e) SHA1(e6a6cd74d3439f589ac0a914ec66962ce2885c00) ) /* TOUCHMASTER 4000 U51 CALIFORNIA  6.02 (CA. 4-14-98) */
1306   ROM_LOAD16_BYTE( "tm4k_v6.02ca.u52", 0x000001, 0x100000, CRC(0adbbfc0) SHA1(4660bd95649bfc65d3e52975d168de4963bd27cb) ) /* TOUCHMASTER 4000 U52 CALIFORNIA  6.02 (CA. 4-14-98) */
1307
1308   ROM_REGION( 0x000022, "ds1204", 0 )
1309   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1310
1311   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1312   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1313   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1314   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1315   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1316   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1317   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1318
1319   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1320   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1321ROM_END
1322
1323ROM_START( tm4kb )
1324   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1325   ROM_LOAD16_BYTE( "tm4k_v6.01.u51", 0x000000, 0x100000, CRC(cdcfd064) SHA1(51f022d25411d119a5f16ff7f09f4bed59b937e1) ) /* TOUCHMASTER 4000 U51 DOMESTIC  6.01 (Standard 3-23-98) */
1326   ROM_LOAD16_BYTE( "tm4k_v6.01.u52", 0x000001, 0x100000, CRC(e0bf71a9) SHA1(8f5e70dee60cd95aceac4707ff73bdff578a6139) ) /* TOUCHMASTER 4000 U52 DOMESTIC  6.01 (Standard 3-23-98) */
1327
1328   ROM_REGION( 0x000022, "ds1204", 0 )
1329   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1330
1331   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1332   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1333   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1334   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1335   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1336   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1337   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1338
1339   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1340   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1341ROM_END
1342
1343ROM_START( tm4kmn ) /* Minnesota only version */
1344   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1345   ROM_LOAD16_BYTE( "tm4kmn_v6.01.u51", 0x000000, 0x100000, CRC(66b7f936) SHA1(7d13b24440f15bc29587b35d32f8a34019cc2462) ) /* TOUCHMASTER 4000 U51 MINNESOTA  6.01 (MN. 3-30-98) */
1346   ROM_LOAD16_BYTE( "tm4kmn_v6.01.u52", 0x000001, 0x100000, CRC(34fa24bb) SHA1(4c4f706f8f09bfd1f81fbf71b377c0eb2cbfa97d) ) /* TOUCHMASTER 4000 U52 MINNESOTA  6.01 (MN. 3-30-98) */
1347
1348   ROM_REGION( 0x000022, "ds1204", 0 )
1349   ROM_LOAD( "a-21657-003", 0x0000, 0x000022, CRC(b9facb2a) SHA1(17157534f45ec6db78f952586bd98f1f7e7215c1) )
1350
1351   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1352   ROM_LOAD16_BYTE( "tm4k_graphic.u38", 0x000000, 0x100000, CRC(a6683899) SHA1(d05024390917cdb1871d030996da8e1eb6460918) ) /* Mask rom labeled 5341-15746-03 U38 VIDEO IMAGE */
1353   ROM_LOAD16_BYTE( "tm4k_graphic.u36", 0x000001, 0x100000, CRC(7bde520d) SHA1(77750b689e2f0d47804042456e54bbd9c28deeac) ) /* Mask rom labeled 5341-15746-01 U36 VIDEO IMAGE */
1354   ROM_LOAD16_BYTE( "tm4k_graphic.u39", 0x200000, 0x100000, CRC(bac88cfb) SHA1(26ed169296b890c5f5b50c418c15299355a6592f) ) /* Mask rom labeled 5341-15746-04 U39 VIDEO IMAGE */
1355   ROM_LOAD16_BYTE( "tm4k_graphic.u37", 0x200001, 0x100000, CRC(bf49fafa) SHA1(b400667bf654dc9cd01a85c8b99670459400fd60) ) /* Mask rom labeled 5341-15746-02 U37 VIDEO IMAGE */
1356   ROM_LOAD16_BYTE( "tm4k_graphic.u41", 0x400000, 0x100000, CRC(e97edb1e) SHA1(75510676cf1692ad03efd4ccd57d25af1cc8ef2a) ) /* Mask rom labeled 5341-15746-06 U41 VIDEO IMAGE */
1357   ROM_LOAD16_BYTE( "tm4k_graphic.u40", 0x400001, 0x100000, CRC(f6771a09) SHA1(74f71d5e910006c83a38170f24aa811c38a3e020) ) /* Mask rom labeled 5341-15746-05 U40 VIDEO IMAGE */
1358
1359   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1360   ROM_LOAD( "tm4k_sound.u8", 0x00000, 0x100000, CRC(48c3782b) SHA1(bfe105ddbde8bbbd84665dfdd565d6d41926834a) ) /* Mask rom labeled 5341-15746-07 U8 SOUND IMAGE */
1361ROM_END
1362
1363/***************************************************************************
1364
1365Touchmaster 5000
1366by Midway (c) 1998
1367touchscreen game
1368
1369All chips are ST M27C801 (some kits/upgrades used mask roms)
1370---------------------------
1371
1372Name Board Location        Version               Use                      Checksum
1373-----------------------------------------------------------------------------------
1374tm5k_v7_10.u51             7.10 Game Program & Cpu instructions 1A51
1375tm5k_v7_10.u52             7.10 Game Program & Cpu instructions 5A01
1376tm5k_graphic.u36           7.0  Video Images & Graphics         DB7F
1377tm5k_graphic.u37           7.0  Video Images & Graphics         871B
1378tm5k_graphic.u38           7.0  Video Images & Graphics         EDCE
1379tm5k_graphic.u39           7.0  Video Images & Graphics         657F
1380tm5k_graphic.u40           7.0  Video Images & Graphics         93E0
1381tm5k_graphic.u41           7.0  Video Images & Graphics         FCA5
1382tm5k_sound.u8              7.0  Audio Program & sounds          F474
1383
1384J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-004
1385-----------------------------------------------------------------------------------
1386
1387* EPROM versions are labeled with white labels
1388
1389***************************************************************************/
1390
1391ROM_START( tm5k )
1392   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1393   ROM_LOAD16_BYTE( "tm5k_v7.10.u51", 0x000000, 0x100000, CRC(df0bd25e) SHA1(db1a197ed4c868743397f3823f3f1d42b9329f80) ) /* TOUCHMASTER 5000 U51 DOMESTIC 7.10 (Standard 10-9-98) (tan label) */
1394   ROM_LOAD16_BYTE( "tm5k_v7.10.u52", 0x000001, 0x100000, CRC(ddf9e8dc) SHA1(3228f2eba067bdf1bd639116bffc589585ea3e72) ) /* TOUCHMASTER 5000 U52 DOMESTIC 7.10 (Standard 10-9-98) (tan label) */
1395
1396   ROM_REGION( 0x000022, "ds1204", 0 )
1397   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1398
1399   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1400   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1401   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1402   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1403   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1404   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1405   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1406
1407   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1408   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1409ROM_END
1410
1411ROM_START( tm5kca ) /* California only version */
1412   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1413   ROM_LOAD16_BYTE( "tm5kca_v7.10.u51", 0x000000, 0x100000, CRC(7c03708f) SHA1(e1f8198bc03c1f9d2a00662b589fd66fdcc7a2de) ) /* TOUCHMASTER 5000 U51 CALIFORNIA 7.10 (CA. 10-9-98) (tan label) */
1414   ROM_LOAD16_BYTE( "tm5kca_v7.10.u52", 0x000001, 0x100000, CRC(f1413295) SHA1(ad6b57c590bdae063b0e4a1abcb3b13ee52cd6db) ) /* TOUCHMASTER 5000 U52 CALIFORNIA 7.10 (CA. 10-9-98) (tan label) */
1415
1416   ROM_REGION( 0x000022, "ds1204", 0 )
1417   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1418
1419   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1420   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1421   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1422   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1423   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1424   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1425   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1426
1427   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1428   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1429ROM_END
1430
1431ROM_START( tm5kmn ) /* Minnesota only version */
1432   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1433   ROM_LOAD16_BYTE( "tm5kmn_v7.10.u51", 0x000000, 0x100000, CRC(eb12e430) SHA1(48de1d49025cd3fc844d0399d58efc630c51ab28) ) /* TOUCHMASTER 5000 U51 MINNESOTA 7.10 (MN. 10-9-98) (tan label) */
1434   ROM_LOAD16_BYTE( "tm5kmn_v7.10.u52", 0x000001, 0x100000, CRC(6a4e75d9) SHA1(b0049b5d5f649aedb568d71aacfcb648320dd53b) ) /* TOUCHMASTER 5000 U52 MINNESOTA 7.10 (MN. 10-9-98) (tan label) */
1435
1436   ROM_REGION( 0x000022, "ds1204", 0 )
1437   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1438
1439   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1440   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1441   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1442   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1443   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1444   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1445   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1446
1447   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1448   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1449ROM_END
1450
1451ROM_START( tm5ka )
1452   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1453   ROM_LOAD16_BYTE( "tm5k_v7.01.u51", 0x000000, 0x100000, CRC(3ff68213) SHA1(ec4939899a69f56d2437c806fdd0a5b50e58ec6a) ) /* TOUCHMASTER 5000 U51 DOMESTIC 7.01 (Standard 8-21-98) (pink label) */
1454   ROM_LOAD16_BYTE( "tm5k_v7.01.u52", 0x000001, 0x100000, CRC(b3de607c) SHA1(4ede5b8c50177d1934a3b93d311a240ef354c450) ) /* TOUCHMASTER 5000 U52 DOMESTIC 7.01 (Standard 8-21-98) (pink label) */
1455
1456   ROM_REGION( 0x000022, "ds1204", 0 )
1457   ROM_LOAD( "a-21657-004", 0x0000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1458
1459   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1460   ROM_LOAD16_BYTE( "tm5k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-15951-07 U38 VIDEO IMAGE */
1461   ROM_LOAD16_BYTE( "tm5k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-15951-06 U36 VIDEO IMAGE */
1462   ROM_LOAD16_BYTE( "tm5k_graphic.u39", 0x200000, 0x100000, CRC(1349fdc7) SHA1(5118983be584455320f0d6006133f38e6a8ee0d8) ) /* Mask rom labeled 5341-15951-05 U39 VIDEO IMAGE */
1463   ROM_LOAD16_BYTE( "tm5k_graphic.u37", 0x200001, 0x100000, CRC(8bcc376c) SHA1(0588f6f96090b26a3ce0eb3a933a5cc9d8ce742d) ) /* Mask rom labeled 5341-15951-04 U37 VIDEO IMAGE */
1464   ROM_LOAD16_BYTE( "tm5k_graphic.u41", 0x400000, 0x100000, CRC(c8717fef) SHA1(fbd13321db0f35b7bdf207468f28792a7666bb2e) ) /* Mask rom labeled 5341-15951-09 U41 VIDEO IMAGE */
1465   ROM_LOAD16_BYTE( "tm5k_graphic.u40", 0x400001, 0x100000, CRC(cff3f962) SHA1(2389d94ffa0eaf2d2f62315822273db031eea033) ) /* Mask rom labeled 5341-15951-08 U40 VIDEO IMAGE */
1466
1467   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1468   ROM_LOAD( "tm5k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-15951-03 U8 VIDEO IMAGE */
1469ROM_END
1470
1471/***************************************************************************
1472
1473Touchmaster 7000
1474by Midway (c) 1999
1475touchscreen game
1476
1477All chips are ST M27C801 (some kits/upgrades used mask roms)
1478---------------------------
1479
1480Name Board Location        Version               Use                      Checksum
1481-----------------------------------------------------------------------------------
1482tm7k_v804.u51              8.04 Game Program & Cpu instructions 321B
1483tm7k_v804.u52              8.04 Game Program & Cpu instructions 2DED
1484
1485tm7k_v800.u51              8.00 Game Program & Cpu instructions 82A5
1486tm7k_v800.u52              8.00 Game Program & Cpu instructions 81E1
1487
1488tm7k_graphic.u36           8.0  Video Images & Graphics         DB7F (same as TM5K)
1489tm7k_graphic.u37           8.0  Video Images & Graphics         7461
1490tm7k_graphic.u38           8.0  Video Images & Graphics         EDCE (same as TM5K)
1491tm7k_graphic.u39           8.0  Video Images & Graphics         2BB6
1492tm7k_graphic.u40           8.0  Video Images & Graphics         B103
1493tm7k_graphic.u41           8.0  Video Images & Graphics         11CA
1494tm7k_sound.u8              8.0  Audio Program & sounds          F474 (same as TM5K)
1495
1496J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-005
1497-----------------------------------------------------------------------------------
1498
1499***************************************************************************/
1500
1501ROM_START( tm7k )
1502   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1503   ROM_LOAD16_BYTE( "tm7k_v8.04.u51", 0x000000, 0x100000, CRC(2461af04) SHA1(9cf37c04db0297ff8f9f316fd476d6d5d1c39acf) ) /* TOUCHMASTER 7000 U51 DOMESTIC 8.04 (Standard 06/02/99) (orange label) */
1504   ROM_LOAD16_BYTE( "tm7k_v8.04.u52", 0x000001, 0x100000, CRC(5d39fad2) SHA1(85e8d110b88e1099117ab7963eaee47dc86ec7c5) ) /* TOUCHMASTER 7000 U52 DOMESTIC 8.04 (Standard 06/02/99) (orange label) */
1505
1506   ROM_REGION( 0x000022, "ds1204", 0 )
1507   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1508
1509   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1510   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1511   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1512   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1513   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1514   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1515   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1516
1517   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1518   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1519ROM_END
1520
1521ROM_START( tm7knj ) /* New Jersey version only - ABC Exception No. 27 */
1522   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1523   ROM_LOAD16_BYTE( "tm7knj_v8.05.u51", 0x000000, 0x100000, CRC(46a7ed33) SHA1(e9ceb5005a6e88bd179fca0b62477cea19b82443) ) /* TOUCHMASTER 7000 U51 NEW JERSEY 8.05 (Standard 07/22/99) (orange label) */
1524   ROM_LOAD16_BYTE( "tm7knj_v8.05.u52", 0x000001, 0x100000, CRC(127e8b09) SHA1(017d4cda6205f88256cbecabf0c94e71eef93bf9) ) /* TOUCHMASTER 7000 U52 NEW JERSEY 8.05 (Standard 07/22/99) (orange label) */
1525
1526   ROM_REGION( 0x000022, "ds1204", 0 )
1527   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1528
1529   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1530   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1531   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1532   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1533   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1534   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1535   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1536
1537   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1538   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1539ROM_END
1540
1541ROM_START( tm7kmn ) /* Minnesota only version */
1542   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1543   ROM_LOAD16_BYTE( "tm7kmn_v8.04.u51", 0x000000, 0x100000, CRC(c85b5adc) SHA1(418776917c1f419fd981deaab9754f4f03a2288f) ) /* TOUCHMASTER 7000 U51 MINNESOTA 8.04 (MN. 06/02/99) (orange label) */
1544   ROM_LOAD16_BYTE( "tm7kmn_v8.04.u52", 0x000001, 0x100000, CRC(542bc209) SHA1(b8314d695a36380f6be02b45eac83cfab857c258) ) /* TOUCHMASTER 7000 U52 MINNESOTA 8.04 (MN. 06/02/99) (orange label) */
1545
1546   ROM_REGION( 0x000022, "ds1204", 0 )
1547   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1548
1549   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1550   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1551   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1552   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1553   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1554   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1555   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1556
1557   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1558   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1559ROM_END
1560
1561ROM_START( tm7ka )
1562   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1563   ROM_LOAD16_BYTE( "tm7k_v8.00.u51", 0x000000, 0x100000, CRC(83ec3da7) SHA1(37fa7183e7acc2eab35ac431d99cbbfe4862979e) ) /* TOUCHMASTER 7000 U51 DOMESTIC 8.00 (Standard 03/26/99) (orange label) */
1564   ROM_LOAD16_BYTE( "tm7k_v8.00.u52", 0x000001, 0x100000, CRC(e2004282) SHA1(aa73029f31e2062cabedfcd778db97b314624ae8) ) /* TOUCHMASTER 7000 U52 DOMESTIC 8.00 (Standard 03/26/99) (orange label) */
1565
1566   ROM_REGION( 0x000022, "ds1204", 0 )
1567   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1568
1569   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1570   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Labeled GRAPHIC U38  8.0 (orange label) */
1571   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Labeled GRAPHIC U36  8.0 (orange label) */
1572   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Labeled GRAPHIC U39  8.0 (orange label) */
1573   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Labeled GRAPHIC U37  8.0 (orange label) */
1574   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Labeled GRAPHIC U41  8.0 (orange label) */
1575   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Labeled GRAPHIC U40  8.0 (orange label) */
1576
1577   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1578   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Labeled SOUND U8  8.0 (orange label) */
1579ROM_END
1580
1581ROM_START( tm7kmna ) /* Minnesota only version */
1582   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1583   ROM_LOAD16_BYTE( "tm7kmn_v8.00.u51", 0x000000, 0x100000, CRC(4bc423e9) SHA1(c9ba044b4bc8431281e174cddc8697324cbbf072) ) /* TOUCHMASTER 7000 U51 MINNESOTA 8.00 (MN. 03/26/99) (orange label) */
1584   ROM_LOAD16_BYTE( "tm7kmn_v8.00.u52", 0x000001, 0x100000, CRC(51968948) SHA1(f8b63df4480cafa453f970fb07f73103d39e2903) ) /* TOUCHMASTER 7000 U52 MINNESOTA 8.00 (MN. 03/26/99) (orange label) */
1585
1586   ROM_REGION( 0x000022, "ds1204", 0 )
1587   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(affa047b) SHA1(5a576ce3d0d0ec35994937c89daab4360f46690d) )
1588
1589   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1590   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* Mask rom labeled 5341-16262-07 U38 VIDEO IMAGE */
1591   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* Mask rom labeled 5341-16262-06 U36 VIDEO IMAGE */
1592   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* Mask rom labeled 5341-16262-05 U39 VIDEO IMAGE */
1593   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* Mask rom labeled 5341-16262-04 U37 VIDEO IMAGE */
1594   ROM_LOAD16_BYTE( "tm7k_graphic.u41", 0x400000, 0x100000, CRC(99b6edda) SHA1(c0ee2834fdbfbc1159a6d08c45552d4d9c1c4ea4) ) /* Mask rom labeled 5341-16262-09 U41 VIDEO IMAGE */
1595   ROM_LOAD16_BYTE( "tm7k_graphic.u40", 0x400001, 0x100000, CRC(a3925379) SHA1(74836325ab10466e23105a3b54fc706c0dd5f06c) ) /* Mask rom labeled 5341-16262-08 U40 VIDEO IMAGE */
1596
1597   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1598   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16262-03 U8 SOUND */
1599ROM_END
1600
1601ROM_START( tm7keval ) /* FREEPLAY ONLY / NOT FOR RELEASE / FOR EVALUATION ONLY */
1602   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1603   ROM_LOAD16_BYTE( "tm7k_v8.1x.u51", 0x000000, 0x100000, CRC(57c88287) SHA1(1008bbcd137ede321be4cc2ad22e3982d880471b) ) /* TOUCHMASTER 7000 U51 8.1X (ASI Standard 03/08/99) (white label) */
1604   ROM_LOAD16_BYTE( "tm7k_v8.1x.u52", 0x000001, 0x100000, CRC(e45d69bb) SHA1(9e8a42924a9cd573cbd2f3164d0fb468eee7ff51) ) /* TOUCHMASTER 7000 U52 8.1X (ASI Standard 03/08/99) (white label) */
1605
1606   ROM_REGION( 0x000022, "ds1204", 0 )
1607   ROM_LOAD( "a-21657-005", 0x000000, 0x000022, CRC(14b5d50a) SHA1(6c8d3f9a3b44ce5f8273a2f86a6c0f98423b7c7d) )
1608
1609   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1610   ROM_LOAD16_BYTE( "tm7k_graphic.u38", 0x000000, 0x100000, CRC(93038e7c) SHA1(448f69bf51ac992f6b35b471cba9675c67984cd7) ) /* TOUCHMASTER EDCE V8.X U38 (white label) */
1611   ROM_LOAD16_BYTE( "tm7k_graphic.u36", 0x000001, 0x100000, CRC(5453a44a) SHA1(094439a56336ca933b0b7ede8c057546d1d490b2) ) /* TOUCHMASTER DB7F V8.X U36 (white label) */
1612   ROM_LOAD16_BYTE( "tm7k_graphic.u39", 0x200000, 0x100000, CRC(26af8da8) SHA1(02555b1597a4962f1fd0c3ffc89e5c8338aa3085) ) /* TOUCHMASTER 2BB6 V8.X U39 (white label) */
1613   ROM_LOAD16_BYTE( "tm7k_graphic.u37", 0x200001, 0x100000, CRC(9a705043) SHA1(cffb31859544c1c4082be78b3bca5ad9cd0d2a45) ) /* TOUCHMASTER 7461 V8.X U37 (white label) */
1614   ROM_LOAD16_BYTE( "tm7k_v8x.u41",     0x400000, 0x100000, CRC(d15757f0) SHA1(d09a83dc00812a4208d5684e8cfba1f5d1e3f097) ) /* TOUCHMASTER 335E V8.X U41 (white label) */
1615   ROM_LOAD16_BYTE( "tm7k_v8x.u40",     0x400001, 0x100000, CRC(d3596f63) SHA1(a2474bc1a73b5782f8169b0529a535269ea82440) ) /* TOUCHMASTER 7987 V8.X U40 (white label) */
1616
1617   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1618   ROM_LOAD( "tm7k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Labeled SOUND U8  8.0 (orange label) */
1619ROM_END
1620
1621/***************************************************************************
1622
1623Touchmaster 8000
1624by Midway (c) 2000
1625touchscreen game
1626
1627All chips are ST M27C801 (some kits/upgrades used mask roms)
1628---------------------------
1629
1630Name Board Location        Version               Use                      Checksum
1631-----------------------------------------------------------------------------------
1632tm8k_v904.u51              9.04 Game Program & Cpu instructions D40F
1633tm8k_v904.u52              9.04 Game Program & Cpu instructions 53B2
1634
1635tm8k_graphic.u36           9.0  Video Images & Graphics         AD8D
1636tm8k_graphic.u37           9.0  Video Images & Graphics         AF83
1637tm8k_graphic.u38           9.0  Video Images & Graphics         6BCF
1638tm8k_graphic.u39           9.0  Video Images & Graphics         C8A6
1639tm8k_graphic.u40           9.0  Video Images & Graphics         B8C7
1640tm8k_graphic.u41           9.0  Video Images & Graphics         EF93
1641tm8k_sound.u8              9.0  Audio Program & sounds          F474 (same as TM5K & TM7K)
1642
1643J12 DALLAS DS1204V         N/A  Security Key (required for this Version) - Labeled A-21657-007
1644-----------------------------------------------------------------------------------
1645
1646***************************************************************************/
1647
1648/* According to the Distributor notice from Midway, the only thing updated for v9.04 was the "Power Cell" game to 'improve the performance'. */
1649ROM_START( tm8k )
1650   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1651   ROM_LOAD16_BYTE( "tm8k_v9.04.u51", 0x000000, 0x100000, CRC(28864ec8) SHA1(e703f9ee350dd915102e784bbd04445a95b7d0a5) ) /* TOUCHMASTER 8000 U51 DOMESTIC 9.04 (Standard 04/25/00) */
1652   ROM_LOAD16_BYTE( "tm8k_v9.04.u52", 0x000001, 0x100000, CRC(c123eec2) SHA1(3e9c84755b18a4fd900068f385ee47107771391d) ) /* TOUCHMASTER 8000 U52 DOMESTIC 9.04 (Standard 04/25/00) */
1653
1654   ROM_REGION( 0x000022, "ds1204", 0 )
1655   ROM_LOAD( "a-21657-007", 0x000000, 0x000022, CRC(a1776e90) SHA1(40116d693b565fe472c278ea583b50e2b708630a) )
1656
1657   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1658   ROM_LOAD16_BYTE( "tm8k_graphic.u38", 0x000000, 0x100000, CRC(2a971d46) SHA1(6ca4067e9fa40053df415e670b2e853915319dbb) ) /* Mask rom labeled 5341-16513-07 U38 VIDEO IMAGE */
1659   ROM_LOAD16_BYTE( "tm8k_graphic.u36", 0x000001, 0x100000, CRC(3bde285e) SHA1(87bf60034665542fb0240b7479adfffb7ba9fad7) ) /* Mask rom labeled 5341-16513-06 U36 VIDEO IMAGE */
1660   ROM_LOAD16_BYTE( "tm8k_graphic.u39", 0x200000, 0x100000, CRC(58c6c1d8) SHA1(cc11863c4ea46bde7ea4775075f4328be6d6c6d1) ) /* Mask rom labeled 5341-16513-05 U39 VIDEO IMAGE */
1661   ROM_LOAD16_BYTE( "tm8k_graphic.u37", 0x200001, 0x100000, CRC(c0992f7a) SHA1(e4e1ef2414f2f0a784c775f39123122c08950403) ) /* Mask rom labeled 5341-16513-04 U37 VIDEO IMAGE */
1662   ROM_LOAD16_BYTE( "tm8k_graphic.u41", 0x400000, 0x100000, CRC(d8bdb82e) SHA1(9bdee261591ccff8a57c5454644f84f8992f614f) ) /* Mask rom labeled 5341-16513-09 U41 VIDEO IMAGE */
1663   ROM_LOAD16_BYTE( "tm8k_graphic.u40", 0x400001, 0x100000, CRC(0c3d6347) SHA1(7ef19018c180abf412a8ff9f278b00c2b4321cc2) ) /* Mask rom labeled 5341-16513-08 U40 VIDEO IMAGE */
1664
1665   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1666   ROM_LOAD( "tm8k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16513-03 U8 SOUND */
1667ROM_END
1668
1669ROM_START( tm8k902 )
1670   ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 Code
1671   ROM_LOAD16_BYTE( "tm8k_v9.02.u51", 0x000000, 0x100000, CRC(c0d95b2c) SHA1(2240d969047ada856ec2fac6cdf72db722753a6d) ) /* TOUCHMASTER 8000 U51 DOMESTIC 9.02 (Standard 03/17/00) */
1672   ROM_LOAD16_BYTE( "tm8k_v9.02.u52", 0x000001, 0x100000, CRC(5194c1b5) SHA1(28a91d12a022927bfe96afd62b30b268c0ced3ea) ) /* TOUCHMASTER 8000 U52 DOMESTIC 9.02 (Standard 03/17/00) */
1673
1674   ROM_REGION( 0x000022, "ds1204", 0 )
1675   ROM_LOAD( "a-21657-007", 0x000000, 0x000022, CRC(a1776e90) SHA1(40116d693b565fe472c278ea583b50e2b708630a) )
1676
1677   ROM_REGION( 0x600000, "blitter", 0 )    // Blitter gfx
1678   ROM_LOAD16_BYTE( "tm8k_graphic.u38", 0x000000, 0x100000, CRC(2a971d46) SHA1(6ca4067e9fa40053df415e670b2e853915319dbb) ) /* Mask rom labeled 5341-16513-07 U38 VIDEO IMAGE */
1679   ROM_LOAD16_BYTE( "tm8k_graphic.u36", 0x000001, 0x100000, CRC(3bde285e) SHA1(87bf60034665542fb0240b7479adfffb7ba9fad7) ) /* Mask rom labeled 5341-16513-06 U36 VIDEO IMAGE */
1680   ROM_LOAD16_BYTE( "tm8k_graphic.u39", 0x200000, 0x100000, CRC(58c6c1d8) SHA1(cc11863c4ea46bde7ea4775075f4328be6d6c6d1) ) /* Mask rom labeled 5341-16513-05 U39 VIDEO IMAGE */
1681   ROM_LOAD16_BYTE( "tm8k_graphic.u37", 0x200001, 0x100000, CRC(c0992f7a) SHA1(e4e1ef2414f2f0a784c775f39123122c08950403) ) /* Mask rom labeled 5341-16513-04 U37 VIDEO IMAGE */
1682   ROM_LOAD16_BYTE( "tm8k_graphic.u41", 0x400000, 0x100000, CRC(d8bdb82e) SHA1(9bdee261591ccff8a57c5454644f84f8992f614f) ) /* Mask rom labeled 5341-16513-09 U41 VIDEO IMAGE */
1683   ROM_LOAD16_BYTE( "tm8k_graphic.u40", 0x400001, 0x100000, CRC(0c3d6347) SHA1(7ef19018c180abf412a8ff9f278b00c2b4321cc2) ) /* Mask rom labeled 5341-16513-08 U40 VIDEO IMAGE */
1684
1685   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1686   ROM_LOAD( "tm8k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16513-03 U8 SOUND */
1687ROM_END
1688
1689/***************************************************************************
1690
1691Galaxy Games BIOS v. 1.90
1692
1693This is a multi-game cocktail cabinet released in 1998.  Namco seems to have
1694made some cartridges for it (or at least licensed their IP).
1695
1696Trackball-based. 'BIOS' has 7 built-in games. There are two LEDs on the PCB.
1697
1698More information here : http://www.cesgames.com/museum/galaxy/index.html
1699
1700----
1701
1702Board silkscreened  237-0211-00
1703                    REV.-D
1704
1705Cartridge based mother board
1706Holds up to 4 cartridges
1707Chips labeled
1708    GALAXY U1 V1.90 12/1/98
1709    GALAXY U2 V1.90 12/1/98
1710
1711Motorola MC68HC000FN12
171224 MHz oscillator
1713Xilinx XC5206
1714Xilinx XC5202
1715BT481AKPJ110 (Palette RAMDAC)
1716NKK N341024SJ-15    x8  (128kB RAM)
1717OKI M6295 8092352-2
1718
1719PAL16V8H-15 @ U24   Blue dot on it
1720PAL16V8H-15 @ U25   Yellow dot on it
1721PAL16V8H-15 @ U26   Red dot on it
1722PAL16V8H-15 @ U27   Green dot on it
1723PAL16V8H-15 @ U45   red dot on it
1724
1725***************************************************************************/
1726
1727#define GALGAMES_BIOS_ROMS \
1728   ROM_SYSTEM_BIOS( 0, "0",   "v1.90" ) \
1729   ROMX_LOAD( "galaxy.u2", 0x000000, 0x100000, CRC(e51ff184) SHA1(aaa795f2c15ec29b3ceeb5c917b643db0dbb7083), ROM_SKIP(1) | ROM_BIOS(1) ) \
1730   ROMX_LOAD( "galaxy.u1", 0x000001, 0x100000, CRC(c6d7bc6d) SHA1(93c032f9aa38cbbdda59a8a25ff9f38f7ad9c760), ROM_SKIP(1) | ROM_BIOS(1) )
1731
1732#define GALGAMES_MB_PALS \
1733   ROM_REGION( 0xa00, "pals", 0) \
1734   ROM_LOAD( "16v8h-blue.u24",    0x000, 0x117, NO_DUMP ) \
1735   ROM_LOAD( "16v8h-yellow.u25",  0x200, 0x117, NO_DUMP ) \
1736   ROM_LOAD( "16v8h-magenta.u26", 0x400, 0x117, NO_DUMP ) \
1737   ROM_LOAD( "16v8h-green.u27",   0x600, 0x117, NO_DUMP ) \
1738   ROM_LOAD( "16v8h-red.u45",     0x800, 0x117, NO_DUMP )
1739
1740ROM_START( galgbios )
1741   ROM_REGION( 0x200000, "maincpu", 0 )
1742   GALGAMES_BIOS_ROMS
1743
1744   ROM_REGION( 0x200000, "blitter", 0 )
1745   ROM_COPY( "maincpu", 0, 0, 0x200000 )
1746
1747   ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
1748   // RAM, filled by the 68000 and fed to the OKI
1749
1750   GALGAMES_MB_PALS
1751ROM_END
1752
1753/***************************************************************************
1754
1755Galaxy Games StarPak 2
1756
1757NAMCO 307 Cartridge, has surface mount Flash chips in it:
1758
1759.u1 am29f800BB
1760.u2 am29f800BB
1761.u4 pic 12c508
1762
1763Board silkscreened  237-0209-00
1764                    REV.-C
1765
1766***************************************************************************/
1767
1768ROM_START( galgame2 )
1769   ROM_REGION( 0x200000 * 2, "maincpu", 0 )
1770   GALGAMES_BIOS_ROMS
1771   ROM_LOAD16_BYTE( "namco.u2",  0x200000, 0x100000, CRC(f43c0c54) SHA1(4a13946c3d173b0e4ab25b01849574fa3302b417) )
1772   ROM_LOAD16_BYTE( "namco.u1",  0x200001, 0x100000, CRC(b8c34a8b) SHA1(40d3b35f573d2bd2ae1c7d876c55fc436864fa3f) )
1773
1774   ROM_REGION( 0x9db, "pic", 0 )
1775   ROM_LOAD( "namco.u4", 0x000, 0x9db, CRC(63ec1224) SHA1(2966b2aa431e6b8d46cbba18a6fc4de7395caa04) )
1776
1777   ROM_REGION( 0x200000 * 2, "blitter", 0 )
1778   ROM_COPY( "maincpu", 0, 0, 0x200000 * 2 )
1779
1780   ROM_REGION( 0x40000, "oki", ROMREGION_ERASE )
1781   // RAM, filled by the 68000 and fed to the OKI
1782
1783   GALGAMES_MB_PALS
1784ROM_END
1785
1786
1787DRIVER_INIT_MEMBER(tmaster_state,galgames)
1788{
1789   UINT8 *ROM  =   memregion("maincpu")->base();
1790   int cart;
1791
1792   // RAM bank at 0x000000-0x03ffff and 0x200000-0x23ffff
1793   // ROM bank at 0x000000-0x1fffff and 0x200000-0x3fffff (bios)
1794
1795   membank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1796   membank(GALGAMES_BANK_000000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000);
1797
1798   membank(GALGAMES_BANK_000000_W)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1799
1800   membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1801   membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0, ROM+0x000000);
1802
1803   membank(GALGAMES_BANK_200000_W)->configure_entry(GALGAMES_RAM,  m_galgames_ram);
1804
1805   membank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0, ROM+0x040000);
1806
1807   // More ROM banks at 0x200000-0x3fffff (carts)
1808
1809   for (cart = 1; cart <= 4; cart++)
1810   {
1811      UINT8 *CART = memregion("maincpu")->base();
1812
1813      if  (0x200000 * (cart+1) <= memregion("maincpu")->bytes())
1814         CART += 0x200000 * cart;
1815
1816      membank(GALGAMES_BANK_200000_R)->configure_entry(GALGAMES_ROM0+cart, CART);
1817      membank(GALGAMES_BANK_240000_R)->configure_entry(GALGAMES_ROM0+cart, CART+0x040000);
1818   }
1819}
1820
1821DRIVER_INIT_MEMBER(tmaster_state,galgame2)
1822{
1823   UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base();
1824
1825   // Patch BIOS to see the game code as first cartridge (until the PIC therein is emulated)
1826   ROM[0x118da/2] = 0x4a06;
1827   ROM[0x118dc/2] = 0x6704;
1828   ROM[0x118de/2] = 0x7000;
1829   ROM[0x118e0/2] = 0x6002;
1830   ROM[0x118e2/2] = 0x7001;
1831   ROM[0x118e4/2] = 0x4e71;
1832   ROM[0x118e6/2] = 0x4e71;
1833   ROM[0x118e8/2] = 0x4e71;
1834
1835   // Cartdridge check on game selection screen
1836   ROM[0x12da0/2] = 0x4e71;
1837
1838   DRIVER_INIT_CALL(galgames);
1839}
1840
1841GAME( 1996, tm,       0,        tm,       tm,       driver_device, 0,        ROT0, "Midway Games Inc. / CES Inc.",            "Touchmaster (v3.00 Euro)",               0 )
1842GAME( 1996, tmdo,     tm,       tm,       tm,       driver_device, 0,        ROT0, "Midway Games Inc. / CES Inc.",            "Touchmaster (v2.2-01 Standard)",         0 )
1843GAME( 1996, tm2k,     0,        tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 Plus (v4.63 Standard)", 0 )
1844GAME( 1996, tm2ka,    tm2k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 (v4.02 Standard)",      0 )
1845GAME( 1996, tm2kb,    tm2k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 2000 (v4.00 Standard)",      0 )
1846GAME( 1997, tm3k,     0,        tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 3000 (v5.02 Standard)",      0 )
1847GAME( 1997, tm3ka,    tm3k,     tm2k,     tm2k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 3000 (v5.01 Standard)",      0 )
1848GAME( 1998, tm4k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.03 Standard)",      0 )
1849GAME( 1998, tm4knj,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.03 New Jersey)",    0 )
1850GAME( 1998, tm4ka,    tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.02 Standard)",      0 )
1851GAME( 1998, tm4kca,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.02 California)",    0 )
1852GAME( 1998, tm4kb,    tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.01 Standard)",      0 )
1853GAME( 1998, tm4kmn,   tm4k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 4000 (v6.01 Minnesota)",     0 )
1854GAME( 1998, tm5k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 Standard)",      0 )
1855GAME( 1998, tm5kca,   tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 California)",    0 )
1856GAME( 1998, tm5kmn,   tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.10 Minnesota)",     0 )
1857GAME( 1998, tm5ka,    tm5k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 5000 (v7.01 Standard)",      0 )
1858GAME( 1999, tm7k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.04 Standard)",      0 )
1859GAME( 1999, tm7knj,   tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.05 New Jersey)",    0 )
1860GAME( 1999, tm7kmn,   tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.04 Minnesota)",     0 )
1861GAME( 1999, tm7ka,    tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.00 Standard)",      0 )
1862GAME( 1999, tm7kmna,  tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.00 Minnesota)",     0 )
1863GAME( 1999, tm7keval, tm7k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 7000 (v8.1X Evaluation)",    0 )
1864GAME( 2000, tm8k,     0,        tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 8000 (v9.04 Standard)",      0 )
1865GAME( 2000, tm8k902,  tm8k,     tm4k,     tm4k,     driver_device, 0,        ROT0, "Midway Games Inc.",                       "Touchmaster 8000 (v9.02 Standard)",      0 )
1866GAME( 1998, galgbios, 0,        galgames, galgames, tmaster_state, galgames, ROT0, "Creative Electronics & Software",         "Galaxy Games (BIOS v1.90)",              GAME_IS_BIOS_ROOT )
1867GAME( 1998, galgame2, galgbios, galgame2, galgames, tmaster_state, galgame2, ROT0, "Creative Electronics & Software / Namco", "Galaxy Games StarPak 2",                 0 )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team