Previous 199869 Revisions Next

r24013 Sunday 30th June, 2013 at 08:42:53 UTC by Barry Rodewald
de_3: implemented DECO DMD Type 1 (128x16) display.  There are various issues with communication to and from this DMD, so some games have issues, or won't even start properly.
[src/mame]mame.mak
[src/mame/drivers]de_3.c
[src/mame/video]decodmd1.c* decodmd1.h* decodmd2.c decodmd2.h

trunk/src/mame/mame.mak
r24012r24013
18931893   $(DRIVERS)/capcom.o  \
18941894   $(DRIVERS)/de_2.o  \
18951895   $(DRIVERS)/de_3.o  \
1896   $(VIDEO)/decodmd1.o \
18961897   $(VIDEO)/decodmd2.o \
18971898   $(DRIVERS)/de_3b.o  \
18981899   $(DRIVERS)/flicker.o  \
trunk/src/mame/video/decodmd1.c
r0r24013
1/*
2 *   Data East Pinball Dot Matrix Display
3 *
4 *    Type 1: 128x16
5 *    Z80 @ 4MHz
6 */
7
8#include "decodmd1.h"
9#include "rendlay.h"
10
11const device_type DECODMD1 = &device_creator<decodmd_type1_device>;
12
13READ8_MEMBER( decodmd_type1_device::latch_r )
14{
15   return 0;
16}
17
18WRITE8_MEMBER( decodmd_type1_device::data_w )
19{
20   m_latch = data;
21}
22
23READ8_MEMBER( decodmd_type1_device::busy_r )
24{
25   return m_status;
26}
27
28
29WRITE8_MEMBER( decodmd_type1_device::ctrl_w )
30{
31   if(!(m_ctrl & 0x01) && (data & 0x01))
32   {
33      m_command = m_latch;
34      m_busy = 1;
35      m_cpu->set_input_line(INPUT_LINE_IRQ0,ASSERT_LINE);
36   }
37   if((m_ctrl & 0x02) && !(data & 0x02))
38   {
39      m_rombank1->set_entry(0);
40      m_bank = 0;
41      m_busy = 0;
42      m_rowselect = 0;
43      m_blank = 0;
44      m_frameswap = false;
45      m_cpu->set_input_line(INPUT_LINE_RESET,PULSE_LINE);
46   }
47   m_ctrl = data;
48}
49
50READ8_MEMBER( decodmd_type1_device::ctrl_r )
51{
52   return m_ctrl;
53}
54
55READ8_MEMBER( decodmd_type1_device::status_r )
56{
57   return (m_busy & 0x01) | ((m_ctrl) << 1);
58}
59
60WRITE8_MEMBER( decodmd_type1_device::status_w )
61{
62   m_status = data;
63}
64
65// Z80 I/O ports not fully decoded.
66// if bit 7 = 0, then when bit 2 is 0 selects COCLK, and when bit 2 is 1 selects CLATCH
67READ8_MEMBER( decodmd_type1_device::dmd_port_r )
68{
69   if((offset & 0x84) == 0x80)
70   {
71      // IDAT (read only)
72      m_busy = 0;
73      m_ctrl &= ~0x01;
74      m_cpu->set_input_line(INPUT_LINE_IRQ0,CLEAR_LINE);
75      return m_latch;
76   }
77   return 0xff;
78}
79
80WRITE8_MEMBER( decodmd_type1_device::dmd_port_w )
81{
82   UINT8 bit;
83
84   switch(offset & 0x84)
85   {
86   case 0x00:  // COCLK
87      bit = (data >> ((offset & 0x03)*2));  // selects pair of bits depending on port used (0x00-0x03)
88      m_pxdata1 = (m_pxdata1 >> 1) | ((bit & 0x01) ? 0x80000000 : 0x00000000);
89      m_pxdata2 = (m_pxdata2 >> 1) | ((bit & 0x02) ? 0x80000000 : 0x00000000);
90      break;
91   case 0x04:  // CLATCH
92      m_pxdata1_latched = m_pxdata1;
93      m_pxdata2_latched = m_pxdata2;
94      if(m_blank)
95         output_data();
96      break;
97   case 0x80:  // IDAT (ignored)
98      break;
99   case 0x84:
100      bit = data & 0x01;
101      switch(offset & 0xdc)
102      {
103      case 0x84:  // Bank bit 0
104         m_bank = (m_bank & ~0x01) | (~bit & 0x01);
105         m_rombank1->set_entry(m_bank);
106         break;
107      case 0x8c:  // Bank bit 1
108         m_bank = (m_bank & ~0x02) | ((~bit & 0x01) << 1);
109         m_rombank1->set_entry(m_bank);
110         break;
111      case 0x94:  // Bank bit 2
112         m_bank = (m_bank & ~0x04) | ((~bit & 0x01) << 2);
113         m_rombank1->set_entry(m_bank);
114         break;
115      case 0x9c:  // Blanking
116         m_blank = bit;
117         if(bit)
118            output_data();
119         break;
120      case 0xc4:  // Status
121         m_status = bit;
122         break;
123      case 0xcc:  // Row data
124         m_rowdata = bit;
125         break;
126      case 0xd4:  // Row clock
127         if(~bit & m_rowclock)  // on negative edge
128            m_rowselect = (m_rowselect << 1) | m_rowdata;
129         m_rowclock = bit;
130         break;
131      case 0xdc:  // Test
132         m_busy_set = bit;
133         //check_busy();
134         break;
135      }
136      break;
137   }
138}
139
140void decodmd_type1_device::output_data()
141{
142   UINT8 ptr = 0;
143   UINT32 row = m_rowselect;
144
145   if(row == 0)
146      m_frameswap = !m_frameswap;
147
148   if(!m_frameswap)
149      ptr = 0x80;
150
151   while(row != 0)
152   {
153      if(row & 0x01)
154      {
155         m_pixels[ptr] = m_pxdata2_latched;
156         m_pixels[ptr+1] = m_pxdata1_latched;
157      }
158      ptr += 2;
159      row >>= 1;
160   }
161}
162
163void decodmd_type1_device::check_busy()
164{
165   if(m_busy_clr)
166   {
167      m_busy = 0;
168      m_cpu->set_input_line(INPUT_LINE_IRQ0,CLEAR_LINE);
169   }
170   else if(!m_busy_set)
171   {
172      m_busy = 1;
173      m_cpu->set_input_line(INPUT_LINE_IRQ0,ASSERT_LINE);
174   }
175   else
176   {
177      if(!m_busy_clk)
178      {
179         m_busy = 1;
180         m_cpu->set_input_line(INPUT_LINE_IRQ0,ASSERT_LINE);
181      }
182   }
183
184}
185
186TIMER_DEVICE_CALLBACK_MEMBER(decodmd_type1_device::dmd_nmi)
187{
188   m_cpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
189}
190
191static ADDRESS_MAP_START( decodmd1_map, AS_PROGRAM, 8, decodmd_type1_device )
192   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("dmdbank2") // last 16k of ROM
193   AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("dmdbank1") //AM_WRITE(status_w)
194   AM_RANGE(0x8000, 0x9fff) AM_RAMBANK("dmdram")
195ADDRESS_MAP_END
196
197static ADDRESS_MAP_START( decodmd1_io_map, AS_IO, 8, decodmd_type1_device )
198   ADDRESS_MAP_GLOBAL_MASK(0xff)
199   AM_RANGE(0x00, 0xff) AM_READWRITE(dmd_port_r, dmd_port_w)
200ADDRESS_MAP_END
201
202static MACHINE_CONFIG_FRAGMENT( decodmd1 )
203   /* basic machine hardware */
204   MCFG_CPU_ADD("dmdcpu", Z80, XTAL_4MHz)
205   MCFG_CPU_PROGRAM_MAP(decodmd1_map)
206   MCFG_CPU_IO_MAP(decodmd1_io_map)
207
208   MCFG_QUANTUM_TIME(attotime::from_hz(60))
209
210   MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer",decodmd_type1_device,dmd_nmi,attotime::from_hz(2000))  // seems a lot
211
212   MCFG_DEFAULT_LAYOUT(layout_lcd)
213
214   MCFG_SCREEN_ADD("dmd",LCD)
215   MCFG_SCREEN_SIZE(128, 16)
216   MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 16-1)
217   MCFG_SCREEN_UPDATE_DRIVER(decodmd_type1_device,screen_update)
218   MCFG_SCREEN_REFRESH_RATE(60)
219
220   MCFG_RAM_ADD(RAM_TAG)
221   MCFG_RAM_DEFAULT_SIZE("8K")
222
223MACHINE_CONFIG_END
224
225machine_config_constructor decodmd_type1_device::device_mconfig_additions() const
226{
227   return MACHINE_CONFIG_NAME( decodmd1 );
228}
229
230decodmd_type1_device::decodmd_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
231   : device_t(mconfig, DECODMD1, "Data East Pinball Dot Matrix Display Type 1", tag, owner, clock, "decodmd1", __FILE__),
232     m_cpu(*this,"dmdcpu"),
233     m_rombank1(*this,"dmdbank1"),
234     m_rombank2(*this,"dmdbank2"),
235     m_ram(*this,RAM_TAG)
236{}
237
238void decodmd_type1_device::device_start()
239{
240   save_pointer(m_pixels,"DMD Video data",0x100);
241}
242
243void decodmd_type1_device::device_reset()
244{
245   UINT8* ROM;
246   UINT8* RAM = m_ram->pointer();
247   m_rom = memregion(m_romregion);
248
249   memset(RAM,0,0x2000);
250
251   ROM = m_rom->base();
252   m_rombank1->configure_entries(0, 8, &ROM[0x0000], 0x4000);
253   m_rombank2->configure_entry(0, &ROM[0x1c000]);
254   m_rombank1->set_entry(0);
255   m_rombank2->set_entry(0);
256   m_bank = 0;
257   m_busy = 0;
258   m_rowselect = 0;
259   m_blank = 0;
260   m_frameswap = false;
261}
262
263void decodmd_type1_device::device_config_complete()
264{
265   // inherit a copy of the static data
266   const decodmd_type1_intf *intf = reinterpret_cast<const decodmd_type1_intf *>(static_config());
267   if (intf != NULL)
268      *static_cast<decodmd_type1_intf *>(this) = *intf;
269
270   // or initialize to defaults if none provided
271   else
272   {
273      m_romregion = NULL;
274   }
275}
276
277UINT32 decodmd_type1_device::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
278{
279   UINT8 ptr = 0;
280   UINT8 x,y,dot;
281   UINT32 data1,data2;
282
283   if(m_frameswap)
284      ptr = 0x80;
285
286   for(y=0;y<16;y++)  // scanline
287   {
288      for(x=0;x<128;x+=64)
289      {
290         data1 = m_pixels[ptr];
291         data2 = m_pixels[ptr+1];
292         for(dot=0;dot<64;dot+=2)
293         {
294            bitmap.pix32(y,x+dot) = (data1 & 0x01) ? MAKE_RGB(0xff,0xaa,0x00) : RGB_BLACK;
295            bitmap.pix32(y,x+dot+1) = (data2 & 0x01) ? MAKE_RGB(0xff,0xaa,0x00) : RGB_BLACK;
296            data1 >>= 1;
297            data2 >>= 1;
298         }
299         ptr+=2;
300      }
301   }
302
303   return 0;
304}
Property changes on: trunk/src/mame/video/decodmd1.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/video/decodmd1.h
r0r24013
1/*
2 * Data East Pinball DMD Type 1 display
3 */
4
5#ifndef DECODMD1_H_
6#define DECODMD1_H_
7
8#include "emu.h"
9#include "cpu/z80/z80.h"
10#include "machine/ram.h"
11
12#define MCFG_DECODMD_TYPE1_ADD(_tag, _intrf) \
13   MCFG_DEVICE_ADD(_tag, DECODMD1, 0) \
14   MCFG_DEVICE_CONFIG(_intrf)
15
16struct decodmd_type1_intf
17{
18   const char* m_romregion;  // region containing display ROM
19};
20
21class decodmd_type1_device : public device_t,
22                      public decodmd_type1_intf
23{
24public:
25   decodmd_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
26   required_device<cpu_device> m_cpu;
27   required_memory_bank m_rombank1;
28   required_memory_bank m_rombank2;
29   required_device<ram_device> m_ram;
30   memory_region* m_rom;
31
32   UINT32 screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect );
33
34   DECLARE_WRITE8_MEMBER(bank_w);
35   DECLARE_READ8_MEMBER(latch_r);
36   DECLARE_WRITE8_MEMBER(data_w);
37   DECLARE_READ8_MEMBER(busy_r);
38   DECLARE_WRITE8_MEMBER(ctrl_w);
39   DECLARE_READ8_MEMBER(ctrl_r);
40   DECLARE_READ8_MEMBER(status_r);
41   DECLARE_WRITE8_MEMBER(status_w);
42   DECLARE_READ8_MEMBER(dmd_port_r);
43   DECLARE_WRITE8_MEMBER(dmd_port_w);
44   TIMER_DEVICE_CALLBACK_MEMBER(dmd_nmi);
45
46protected:
47   virtual machine_config_constructor device_mconfig_additions() const;
48   virtual void device_start();
49   virtual void device_reset();
50   virtual void device_config_complete();
51
52private:
53   UINT8 m_latch;
54   UINT8 m_status;
55   UINT8 m_ctrl;
56   UINT8 m_busy;
57   UINT8 m_command;
58   UINT8 m_bank;
59   UINT8 m_rowclock;
60   UINT8 m_rowdata;
61   UINT32 m_rowselect;
62   UINT8 m_blank;
63   UINT32 m_pxdata1;
64   UINT32 m_pxdata2;
65   UINT32 m_pxdata1_latched;
66   UINT32 m_pxdata2_latched;
67   bool m_frameswap;
68   UINT32 m_pixels[0x100];
69   bool m_busy_clr;
70   bool m_busy_set;
71   bool m_busy_clk;
72
73   void output_data();
74   void check_busy();
75};
76
77extern const device_type DECODMD1;
78
79
80#endif /* DECODMD1_H_ */
Property changes on: trunk/src/mame/video/decodmd1.h
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/mame/video/decodmd2.c
r24012r24013
204204void decodmd_type2_device::device_config_complete()
205205{
206206   // inherit a copy of the static data
207   const decodmd_intf *intf = reinterpret_cast<const decodmd_intf *>(static_config());
207   const decodmd_type2_intf *intf = reinterpret_cast<const decodmd_type2_intf *>(static_config());
208208   if (intf != NULL)
209      *static_cast<decodmd_intf *>(this) = *intf;
209      *static_cast<decodmd_type2_intf *>(this) = *intf;
210210
211211   // or initialize to defaults if none provided
212212   else
trunk/src/mame/video/decodmd2.h
r24012r24013
1616
1717#define START_ADDRESS       (((m_crtc_reg[0x0c]<<8) & 0x3f00) | (m_crtc_reg[0x0d] & 0xff))
1818
19struct decodmd_intf
19struct decodmd_type2_intf
2020{
2121   const char* m_romregion;  // region containing display ROM
2222};
2323
2424class decodmd_type2_device : public device_t,
25                      public decodmd_intf
25                      public decodmd_type2_intf
2626{
2727public:
2828   decodmd_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
trunk/src/mame/drivers/de_3.c
r24012r24013
88#include "cpu/m6809/m6809.h"
99#include "machine/6821pia.h"
1010#include "audio/decobsmt.h"
11#include "video/decodmd1.h"
1112#include "video/decodmd2.h"
1213#include "machine/genpin.h"
1314#include "machine/nvram.h"
r24012r24013
3839      m_pia2c(*this, "pia2c"),
3940      m_pia30(*this, "pia30"),
4041      m_pia34(*this, "pia34"),
41      m_dmdtype2(*this, "decodmd"),
42      m_dmdtype1(*this, "decodmd1"),
43      m_dmdtype2(*this, "decodmd2"),
4244      m_decobsmt(*this, "decobsmt")
4345   { }
4446
r24012r24013
5052   required_device<pia6821_device> m_pia2c;
5153   required_device<pia6821_device> m_pia30;
5254   required_device<pia6821_device> m_pia34;
55   optional_device<decodmd_type1_device> m_dmdtype1;
5356   optional_device<decodmd_type2_device> m_dmdtype2;
5457
5558   // driver_device overrides
r24012r24013
288291WRITE8_MEMBER( de_3_state::sound_w )
289292{
290293   m_sound_data = data;
291   m_decobsmt->bsmt_comms_w(space,offset,m_sound_data);
294   if(m_sound_data != 0xfe)
295      m_decobsmt->bsmt_comms_w(space,offset,m_sound_data);
292296}
293297
294298WRITE_LINE_MEMBER( de_3_state::pia21_ca2_w )
r24012r24013
383387      m_dmdtype2->data_w(space,offset,data);
384388      logerror("DMD: Data write %02x\n", data);
385389   }
390   else if(m_dmdtype1)
391   {
392      m_dmdtype1->data_w(space,offset,data);
393      logerror("DMD: Data write %02x\n", data);
394   }
386395//   m_segment1 |= (data<<8);
387396//   m_segment1 |= 0x10000;
388397//   if ((m_segment1 & 0x70000) == 0x30000)
r24012r24013
396405{
397406   if(m_dmdtype2)
398407      return m_dmdtype2->busy_r(space,offset);
399   return 0xff;
408   return 0;
400409}
401410
402411WRITE8_MEMBER( de_3_state::pia2c_pb_w )
r24012r24013
407416      m_dmdtype2->ctrl_w(space,offset,data);
408417      logerror("DMD: Control write %02x\n", data);
409418   }
419   else if(m_dmdtype1)
420   {
421      m_dmdtype1->ctrl_w(space,offset,data);
422      logerror("DMD: Control write %02x\n", data);
423   }
410424
411425//   m_segment1 |= data;
412426//   m_segment1 |= 0x20000;
r24012r24013
481495   {
482496      return m_dmdtype2->status_r(space,offset);
483497   }
498   else if(m_dmdtype1)
499   {
500      return m_dmdtype1->status_r(space,offset);
501   }
484502   return 0;
485503}
486504
r24012r24013
500518   DEVCB_DRIVER_LINE_MEMBER(de_3_state, pia_irq)        /* IRQB */
501519};
502520
503static const decodmd_intf decodmd_interface =
521static const decodmd_type1_intf decodmd1_interface =
504522{
505523   ":gfx3"  // region containing DMD ROM data
506524};
507525
526static const decodmd_type2_intf decodmd2_interface =
527{
528   ":gfx3"  // region containing DMD ROM data
529};
530
508531void de_3_state::machine_reset()
509532{
510533}
r24012r24013
545568MACHINE_CONFIG_END
546569
547570static MACHINE_CONFIG_DERIVED( de_3_dmd2, de_3 )
548   MCFG_DECODMD_TYPE2_ADD("decodmd",decodmd_interface)
571   MCFG_DECODMD_TYPE2_ADD("decodmd2",decodmd2_interface)
549572MACHINE_CONFIG_END
550573
574static MACHINE_CONFIG_DERIVED( de_3_dmd1, de_3 )
575   MCFG_DECODMD_TYPE1_ADD("decodmd1",decodmd1_interface)
576MACHINE_CONFIG_END
577
551578/*-------------------------------------------------------------
552579/ Adventures of Rocky and Bullwinkle and Friends - CPU Rev 3b /DMD  Type 2 512K Rom - 64K CPU Rom
553580/------------------------------------------------------------*/
r24012r24013
12191246GAME(1993,  rab_130,        rab_320,    de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Adventures of Rocky and Bullwinkle and Friends (1.30)",        GAME_IS_SKELETON_MECHANICAL)
12201247GAME(1993,  rab_103,        rab_320,    de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Adventures of Rocky and Bullwinkle and Friends (1.03 Spain)",  GAME_IS_SKELETON_MECHANICAL)
12211248GAME(1992,  aar_101,        0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Aaron Spelling (1.01)",                                        GAME_IS_SKELETON_MECHANICAL)
1222GAME(1991,  btmn_103,       0,          de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.03)",                                                GAME_IS_SKELETON_MECHANICAL)
1223GAME(1991,  btmn_101,       btmn_103,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.01)",                                                GAME_IS_SKELETON_MECHANICAL)
1224GAME(1991,  btmn_g13,       btmn_103,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.03 Germany)",                                        GAME_IS_SKELETON_MECHANICAL)
1225GAME(1991,  btmn_106,       btmn_103,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.06)",                                                GAME_IS_SKELETON_MECHANICAL)
1226GAME(1991,  ckpt_a17,       0,          de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Checkpoint (1.7)",                                             GAME_IS_SKELETON_MECHANICAL)
1249GAME(1991,  btmn_103,       0,          de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.03)",                                                GAME_IS_SKELETON_MECHANICAL)
1250GAME(1991,  btmn_101,       btmn_103,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.01)",                                                GAME_IS_SKELETON_MECHANICAL)
1251GAME(1991,  btmn_g13,       btmn_103,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.03 Germany)",                                        GAME_IS_SKELETON_MECHANICAL)
1252GAME(1991,  btmn_106,       btmn_103,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Batman (1.06)",                                                GAME_IS_SKELETON_MECHANICAL)
1253GAME(1991,  ckpt_a17,       0,          de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Checkpoint (1.7)",                                             GAME_IS_SKELETON_MECHANICAL)
12271254GAME(1994,  gnr_300,        0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Guns N Roses (3.00)",                                          GAME_IS_SKELETON_MECHANICAL)
1228GAME(1992,  hook_408,       0,          de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.08)",                                                  GAME_IS_SKELETON_MECHANICAL)
1229GAME(1992,  hook_401,       hook_408,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.01)",                                                  GAME_IS_SKELETON_MECHANICAL)
1230GAME(1992,  hook_404,       hook_408,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.04)",                      GAME_IS_SKELETON_MECHANICAL)
1255GAME(1992,  hook_408,       0,          de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.08)",                                                  GAME_IS_SKELETON_MECHANICAL)
1256GAME(1992,  hook_401,       hook_408,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.01)",                                                  GAME_IS_SKELETON_MECHANICAL)
1257GAME(1992,  hook_404,       hook_408,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Hook (4.04)",                      GAME_IS_SKELETON_MECHANICAL)
12311258GAME(1993,  jupk_513,       0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Jurassic Park (5.13)",             GAME_IS_SKELETON_MECHANICAL)
12321259GAME(1993,  jupk_501,       jupk_513,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Jurassic Park (5.01)",             GAME_IS_SKELETON_MECHANICAL)
12331260GAME(1993,  jupk_g51,       jupk_513,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Jurassic Park (5.01 Germany)",     GAME_IS_SKELETON_MECHANICAL)
r24012r24013
12391266GAME(1992,  lw3_207,        lw3_208,    de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Lethal Weapon 3 (2.07 Canada)",    GAME_IS_SKELETON_MECHANICAL)
12401267GAME(1992,  lw3_205,        lw3_208,    de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Lethal Weapon 3 (2.05)",           GAME_IS_SKELETON_MECHANICAL)
12411268GAME(1992,  lw3_200,        lw3_208,    de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Lethal Weapon 3 (2.00)",           GAME_IS_SKELETON_MECHANICAL)
1242GAME(1992,  trek_201,       0,          de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (2.01)",                GAME_IS_SKELETON_MECHANICAL)
1243GAME(1992,  trek_200,       trek_201,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (2.00)",                GAME_IS_SKELETON_MECHANICAL)
1244GAME(1992,  trek_120,       trek_201,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.20)",                GAME_IS_SKELETON_MECHANICAL)
1245GAME(1992,  trek_110,       trek_201,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.10)",                GAME_IS_SKELETON_MECHANICAL)
1246GAME(1992,  trek_11a,       trek_201,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.10 Alpha Display)",  GAME_IS_SKELETON_MECHANICAL)
1269GAME(1992,  trek_201,       0,          de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (2.01)",                GAME_IS_SKELETON_MECHANICAL)
1270GAME(1992,  trek_200,       trek_201,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (2.00)",                GAME_IS_SKELETON_MECHANICAL)
1271GAME(1992,  trek_120,       trek_201,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.20)",                GAME_IS_SKELETON_MECHANICAL)
1272GAME(1992,  trek_110,       trek_201,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.10)",                GAME_IS_SKELETON_MECHANICAL)
1273GAME(1992,  trek_11a,       trek_201,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Trek 25th Anniversary (1.10 Alpha Display)",  GAME_IS_SKELETON_MECHANICAL)
12471274GAME(1992,  stwr_103,       0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Wars (1.03)",             GAME_IS_SKELETON_MECHANICAL)
12481275GAME(1992,  stwr_g11,       stwr_103,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Wars (1.01 Germany)",     GAME_IS_SKELETON_MECHANICAL)
12491276GAME(1992,  stwr_a14,       stwr_103,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Star Wars (Display Rev.1.04)", GAME_IS_SKELETON_MECHANICAL)
r24012r24013
12541281GAME(1993,  tftc_300,       tftc_303,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Tales From the Crypt (3.00)",              GAME_IS_SKELETON_MECHANICAL)
12551282GAME(1993,  tftc_200,       tftc_303,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Tales From the Crypt (2.00)",              GAME_IS_SKELETON_MECHANICAL)
12561283GAME(1993,  tftc_104,       tftc_303,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Tales From the Crypt (1.04 Spain)",        GAME_IS_SKELETON_MECHANICAL)
1257GAME(1991,  tmnt_104,       0,          de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Teenage Mutant Ninja Turtles (1.04)",      GAME_IS_SKELETON_MECHANICAL)
1258GAME(1991,  tmnt_103,       tmnt_104,   de_3,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Teenage Mutant Ninja Turtles (1.03)",      GAME_IS_SKELETON_MECHANICAL)
1284GAME(1991,  tmnt_104,       0,          de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Teenage Mutant Ninja Turtles (1.04)",      GAME_IS_SKELETON_MECHANICAL)
1285GAME(1991,  tmnt_103,       tmnt_104,   de_3_dmd1,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "Teenage Mutant Ninja Turtles (1.03)",      GAME_IS_SKELETON_MECHANICAL)
12591286GAME(1994,  tomy_400,       0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "The Who's Tommy Pinball Wizard (4.00)",                GAME_IS_SKELETON_MECHANICAL)
12601287GAME(1994,  tomy_h30,       tomy_400,   de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "The Who's Tommy Pinball Wizard (3.00 Holland)",        GAME_IS_SKELETON_MECHANICAL)
12611288GAME(1994,  wwfr_106,       0,          de_3_dmd2,   de_3, de_3_state,   de_3,   ROT0,   "Data East",    "WWF Royal Rumble (1.06)",              GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team