Previous 199869 Revisions Next

r32166 Thursday 18th September, 2014 at 02:42:12 UTC by Robbbert
spinb.c : wip
[src/mame/drivers]spinb.c wpc_dot.c

trunk/src/mame/drivers/wpc_dot.c
r32165r32166
509509ROM_END
510510
511511/*--------------------
512/ Slugfest baseball #60001,60021
512/ Slugfest baseball #60001
513513/--------------------*/
514514ROM_START(sf_l1)
515515   ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
trunk/src/mame/drivers/spinb.c
r32165r32166
1/***************************************************************************************************
12
2#include "emu.h"
3  PINBALL
4  Spinball (previously Inder)
5
6  Hardware is much the same as Inder, except the digital display is replaced by a DMD controlled by
7  a i8031.
8
9  Status
10  - Verne's World has different hardware, does nothing
11  - The others make a horrible noise when 5 pressed, nothing else, no display.
12  - Code for inputs and outputs is wrong (copied from inder.c)
13  - There are 2 sound cards (one for effects and one for music), however looks like they
14    both receive the same commands? Diagram only shows J9 for sound control.
15  - The DMD uses a i8031 but no luck getting it to do anything so far.
16  - There are mistakes in the sound board schematic: IC14 pin12 goes to IC5 pin13 only. IC16 pin 22
17    is the CS0 line only. So, they are not joined but are separate tracks. Also, according to PinMAME,
18    the outputs of IC11 are all wrong. They should be (from top to bottom): A16, A17, A18, NC, NC,
19    CS2, CS1, CS0.
20
21
22****************************************************************************************************/
23
24#include "machine/genpin.h"
25#include "cpu/z80/z80.h"
326#include "cpu/mcs51/mcs51.h"
27#include "machine/i8255.h"
28#include "sound/ay8910.h"
29#include "sound/msm5205.h"
30#include "machine/7474.h"
431
5class spinb_state : public driver_device
32class spinb_state : public genpin_class
633{
734public:
835   spinb_state(const machine_config &mconfig, device_type type, const char *tag)
9      : driver_device(mconfig, type, tag),
10         m_maincpu(*this, "maincpu")
36      : genpin_class(mconfig, type, tag)
37      , m_maincpu(*this, "maincpu")
38      , m_audiocpu(*this, "audiocpu")
39      , m_musiccpu(*this, "musiccpu")
40      , m_dmdcpu(*this, "dmdcpu")
41      , m_msm_a(*this, "msm_a")
42      , m_msm_m(*this, "msm_m")
43      , m_ic5a(*this, "ic5a")
44      , m_ic5m(*this, "ic5m")
45      , m_switches(*this, "SW")
1146   { }
1247
13protected:
14
15   // devices
48   DECLARE_WRITE8_MEMBER(p1_w);
49   DECLARE_READ8_MEMBER(p3_r);
50   DECLARE_WRITE8_MEMBER(p3_w);
51   DECLARE_READ8_MEMBER(ppia_c_r);
52   DECLARE_WRITE8_MEMBER(ppia_a_w);
53   DECLARE_WRITE8_MEMBER(ppia_b_w);
54   DECLARE_WRITE8_MEMBER(ppia_c_w);
55   DECLARE_READ8_MEMBER(ppim_c_r);
56   DECLARE_WRITE8_MEMBER(ppim_a_w);
57   DECLARE_WRITE8_MEMBER(ppim_b_w);
58   DECLARE_WRITE8_MEMBER(ppim_c_w);
59   DECLARE_WRITE8_MEMBER(ppi60a_w);
60   DECLARE_WRITE8_MEMBER(ppi60b_w);
61   DECLARE_WRITE8_MEMBER(ppi64c_w);
62   DECLARE_READ8_MEMBER(sw_r);
63   DECLARE_WRITE8_MEMBER(sw_w);
64   DECLARE_READ8_MEMBER(sndcmd_r);
65   DECLARE_WRITE8_MEMBER(sndbank_a_w);
66   DECLARE_WRITE8_MEMBER(sndbank_m_w);
67   DECLARE_WRITE8_MEMBER(sndcmd_w);
68   DECLARE_WRITE8_MEMBER(lamp_w) { };
69   DECLARE_WRITE8_MEMBER(lamp1_w) { };
70   DECLARE_WRITE8_MEMBER(volume_w) { };
71   DECLARE_WRITE8_MEMBER(disp_w);
72   DECLARE_WRITE_LINE_MEMBER(ic5a_w);
73   DECLARE_WRITE_LINE_MEMBER(ic5m_w);
74   DECLARE_WRITE_LINE_MEMBER(vck_a_w);
75   DECLARE_WRITE_LINE_MEMBER(vck_m_w);
76   DECLARE_DRIVER_INIT(spinb);
77private:
78   bool m_pc0a;
79   bool m_pc0m;
80   UINT8 m_game;
81   UINT8 m_portc_a;
82   UINT8 m_portc_m;
83   UINT8 m_row;
84   UINT8 m_segment[8];
85   UINT8 m_sndcmd;
86   UINT8 m_sndbank_a;
87   UINT8 m_sndbank_m;
88   UINT32 m_sound_addr_a;
89   UINT32 m_sound_addr_m;
90   UINT8 *m_p_audio;
91   UINT8 *m_p_music;
92   virtual void machine_reset();
1693   required_device<cpu_device> m_maincpu;
17
18   // driver_device overrides
19   virtual void machine_reset();
20public:
21   DECLARE_DRIVER_INIT(spinb);
94   required_device<cpu_device> m_audiocpu;
95   required_device<cpu_device> m_musiccpu;
96   required_device<cpu_device> m_dmdcpu;
97   required_device<msm5205_device> m_msm_a;
98   required_device<msm5205_device> m_msm_m;
99   required_device<ttl7474_device> m_ic5a;
100   required_device<ttl7474_device> m_ic5m;
101   required_ioport_array<11> m_switches;
22102};
23103
24
25104static ADDRESS_MAP_START( spinb_map, AS_PROGRAM, 8, spinb_state )
26   AM_RANGE(0x0000, 0xffff) AM_NOP
105   AM_RANGE(0x0000, 0x3fff) AM_ROM
106   AM_RANGE(0x4000, 0x5fff) AM_RAM AM_SHARE("nvram") // 6164, battery-backed
107   AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi60", i8255_device, read, write)
108   AM_RANGE(0x6400, 0x6403) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi64", i8255_device, read, write)
109   AM_RANGE(0x6800, 0x6803) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi68", i8255_device, read, write)
110   AM_RANGE(0x6c00, 0x6c03) AM_MIRROR(0x131c) AM_DEVREADWRITE("ppi6c", i8255_device, read, write)
111   AM_RANGE(0x6c20, 0x6c3f) AM_MIRROR(0x1300) AM_WRITE(sndcmd_w)
112   AM_RANGE(0x6c40, 0x6c45) AM_MIRROR(0x1300) AM_WRITE(lamp1_w)
113   AM_RANGE(0x6c60, 0x6c60) AM_MIRROR(0x1300) AM_WRITE(disp_w)
114   AM_RANGE(0x6ce0, 0x6ce0) AM_WRITENOP
27115ADDRESS_MAP_END
28116
117static ADDRESS_MAP_START( spinb_audio_map, AS_PROGRAM, 8, spinb_state )
118   AM_RANGE(0x0000, 0x1fff) AM_ROM
119   AM_RANGE(0x2000, 0x3fff) AM_RAM // 6164
120   AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE("ppia", i8255_device, read, write)
121   AM_RANGE(0x6000, 0x6000) AM_WRITE(sndbank_a_w)
122   AM_RANGE(0x8000, 0x8000) AM_READ(sndcmd_r)
123ADDRESS_MAP_END
124
125static ADDRESS_MAP_START( spinb_music_map, AS_PROGRAM, 8, spinb_state )
126   AM_RANGE(0x0000, 0x1fff) AM_ROM
127   AM_RANGE(0x2000, 0x3fff) AM_RAM // 6164
128   AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE("ppim", i8255_device, read, write)
129   AM_RANGE(0x6000, 0x6000) AM_WRITE(sndbank_m_w)
130   AM_RANGE(0x8000, 0x8000) AM_READ(sndcmd_r)
131   AM_RANGE(0xA000, 0xA000) AM_WRITE(volume_w)
132ADDRESS_MAP_END
133
134static ADDRESS_MAP_START(dmd_mem, AS_PROGRAM, 8, spinb_state)
135   AM_RANGE(0x0000, 0xffff) AM_ROM
136ADDRESS_MAP_END
137
138static ADDRESS_MAP_START(dmd_io, AS_IO, 8, spinb_state)
139   AM_RANGE(0x0000, 0x1fff) AM_RAM
140   AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(p1_w)
141   AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(p3_r, p3_w)
142ADDRESS_MAP_END
143
29144static INPUT_PORTS_START( spinb )
145   PORT_START("SW.0")
146   PORT_DIPNAME( 0x80, 0x80, "Balls")
147   PORT_DIPSETTING(    0x80, "3")
148   PORT_DIPSETTING(    0x00, "5")
149   PORT_DIPNAME( 0x30, 0x30, "Coin Slot 1")
150   PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C )) // slot 2: 1 moneda 4 partidas
151   PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C )) // and 4c_3c; slot 2: 1 moneda 3 partidas
152   PORT_DIPNAME( 0x0c, 0x0c, "Points for free game")
153   PORT_DIPSETTING(    0x0c, "2600000")
154   PORT_DIPSETTING(    0x08, "3000000")
155   PORT_DIPSETTING(    0x04, "3400000")
156   PORT_DIPSETTING(    0x00, "3800000")
157
158   PORT_START("SW.1")
159   PORT_DIPNAME( 0x30, 0x30, "High Score") //"Handicap"
160   PORT_DIPSETTING(    0x30, "4800000")
161   PORT_DIPSETTING(    0x20, "5000000")
162   PORT_DIPSETTING(    0x10, "5200000")
163   PORT_DIPSETTING(    0x00, "5400000")
164   PORT_DIPNAME( 0x08, 0x08, "Especial en Picabolas")
165   PORT_DIPSETTING(    0x08, "1st Derribo")
166   PORT_DIPSETTING(    0x00, "2nd Derribo")
167   PORT_DIPNAME( 0x04, 0x04, "Bola Extra En Rampas")
168   PORT_DIPSETTING(    0x04, "4 dianas")
169   PORT_DIPSETTING(    0x00, "2 dianas")
170   PORT_BIT( 0xc3, IP_ACTIVE_LOW, IPT_UNUSED )
171
172   PORT_START("SW.2")
173   PORT_DIPNAME( 0x04, 0x04, "Quita bola extra en passillos 1,2,y 3")
174   PORT_DIPSETTING(    0x04, DEF_STR(No))
175   PORT_DIPSETTING(    0x00, DEF_STR(Yes))
176   PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED )
177
178   PORT_START("SW.3")
179   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) // "Monedero A"
180   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) // "Monedero B"
181   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
182   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_TILT ) // "Falta"
183   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) // "Pulsador Partidas"
184   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE3 ) PORT_NAME("Reset") // "Puesta a cero"
185   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting info") // "Test economico"
186   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Test") // "Test tecnico"
187
188   PORT_START("SW.4")
189   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
190   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
191   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
192   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
193   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
194   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
195   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
196   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
197
198   PORT_START("SW.5")
199   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
200   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
201   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
202   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
203   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
204   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
205   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
206   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
207
208   PORT_START("SW.6")
209   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
210   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
211   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
212   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
213   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
214   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
215   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
216   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
217
218   PORT_START("SW.7")
219   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
220   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
221   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
222   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
223   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
224   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
225   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
226   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
227
228   PORT_START("SW.8")
229   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
230
231   PORT_START("SW.9")
232   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
233
234   PORT_START("SW.10")
235   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
30236INPUT_PORTS_END
31237
238/*
239d0 = / enable RAM
240d1 = display enable
241d2 = RDATA    )
242d3 = ROWCK    ) to DMD
243d4 = COLATCH  )
244d5 = part of the data input circuit
245d6 = STAT0
246d7 = STAT1
247*/
248WRITE8_MEMBER( spinb_state::p1_w )
249{
250}
251
252READ8_MEMBER( spinb_state::p3_r )
253{
254   return 0;
255}
256
257/*
258d0 = RXD - SDATA ) to DMD
259d1 = TXD - DOTCK )
260d2 = Interrupt Input when data is coming from maincpu
261d6 = R/W of RAM
262d7 = OE of RAM , also part of data input circuit
263*/
264WRITE8_MEMBER( spinb_state::p3_w )
265{
266}
267
268READ8_MEMBER( spinb_state::sw_r )
269{
270   return m_switches[m_row]->read();
271}
272
273WRITE8_MEMBER( spinb_state::sw_w )
274{
275   m_row = offset;
276}
277
278WRITE8_MEMBER( spinb_state::sndcmd_w )
279{
280   m_sndcmd = data;
281}
282
283READ8_MEMBER( spinb_state::sndcmd_r )
284{
285   return m_sndcmd;
286}
287
288WRITE8_MEMBER( spinb_state::disp_w )
289{
290   UINT8 i;
291   if (offset < 8)
292      m_segment[offset] = data;
293   else
294   // From here, only used on old cpu board
295   if (offset > 0x40)
296   {
297      offset = (offset >> 3) & 7;
298      for (i = 0; i < 5; i++)
299         output_set_digit_value(i*10+offset, m_segment[i]);
300   }
301}
302
303WRITE8_MEMBER( spinb_state::ppi60a_w )
304{
305   if (data)
306      for (UINT8 i = 0; i < 8; i++)
307         if BIT(data, i)
308            m_row = i;
309}
310
311// always 0 but we'll support it anyway
312WRITE8_MEMBER( spinb_state::ppi60b_w )
313{
314   if (data & 7)
315      for (UINT8 i = 0; i < 3; i++)
316         if BIT(data, i)
317            m_row = i+8;
318}
319
320WRITE8_MEMBER( spinb_state::ppi64c_w )
321{
322   UINT8 i;
323   data &= 15;
324   if BIT(data, 3) // 8 to 15
325   {
326      data ^= 15; // now 7 to 0
327      for (i = 0; i < 5; i++)
328      {
329         if ((m_game==1) && (i == 4))  // mundial,clown,250cc,atleta have credit and ball displays swapped
330            data ^= 4;
331         output_set_digit_value(i*10+data, m_segment[i]);
332      }
333   }
334}
335
336WRITE8_MEMBER( spinb_state::sndbank_a_w )
337{
338   m_sndbank_a = data;
339   m_sound_addr_a = (m_sound_addr_a & 0xffff) | ((data & 7) << 16);
340
341   if (!BIT(data, 6))
342      m_sound_addr_a |= (1<<19);
343   else
344   if (!BIT(data, 5))
345      m_sound_addr_a |= (2<<19);
346   else
347   if BIT(data, 7)
348      m_sndbank_a = 0xff;
349}
350
351WRITE8_MEMBER( spinb_state::sndbank_m_w )
352{
353   m_sndbank_m = data;
354   m_sound_addr_m = (m_sound_addr_m & 0xffff) | ((data & 7) << 16);
355
356   if (!BIT(data, 6))
357      m_sound_addr_m |= (1<<19);
358   else
359   if (!BIT(data, 5))
360      m_sound_addr_m |= (2<<19);
361   else
362   if BIT(data, 7)
363      m_sndbank_m = 0xff;
364}
365
366WRITE_LINE_MEMBER( spinb_state::vck_a_w )
367{
368   m_ic5a->clock_w(0);
369   m_ic5a->clock_w(1);
370
371   if (m_sndbank_a != 0xff)
372   {
373      if (!m_pc0a)
374         m_msm_a->data_w(m_p_audio[m_sound_addr_a] & 15);
375      else
376         m_msm_a->data_w(m_p_audio[m_sound_addr_a] >> 4);
377   }
378   else
379      m_msm_a->data_w(0);
380}
381
382WRITE_LINE_MEMBER( spinb_state::vck_m_w )
383{
384   m_ic5m->clock_w(0);
385   m_ic5m->clock_w(1);
386
387   if (m_sndbank_m != 0xff)
388   {
389      if (!m_pc0m)
390         m_msm_m->data_w(m_p_music[m_sound_addr_m] & 15);
391      else
392         m_msm_m->data_w(m_p_music[m_sound_addr_m] >> 4);
393   }
394   else
395      m_msm_m->data_w(0);
396}
397
398WRITE_LINE_MEMBER( spinb_state::ic5a_w )
399{
400   m_pc0a = state;
401   m_ic5a->d_w(state);
402}
403
404WRITE_LINE_MEMBER( spinb_state::ic5m_w )
405{
406   m_pc0m = state;
407   m_ic5m->d_w(state);
408}
409
410READ8_MEMBER( spinb_state::ppia_c_r )
411{
412   return m_pc0a | m_portc_a;
413}
414
415READ8_MEMBER( spinb_state::ppim_c_r )
416{
417   return m_pc0m | m_portc_m;
418}
419
420WRITE8_MEMBER( spinb_state::ppia_a_w )
421{
422   m_sound_addr_a = (m_sound_addr_a & 0xfff00) | data;
423}
424
425WRITE8_MEMBER( spinb_state::ppim_a_w )
426{
427   m_sound_addr_m = (m_sound_addr_m & 0xfff00) | data;
428}
429
430WRITE8_MEMBER( spinb_state::ppia_b_w )
431{
432   m_sound_addr_a = (m_sound_addr_a & 0xf00ff) | (data << 8);
433}
434
435WRITE8_MEMBER( spinb_state::ppim_b_w )
436{
437   m_sound_addr_m = (m_sound_addr_m & 0xf00ff) | (data << 8);
438}
439
440WRITE8_MEMBER( spinb_state::ppia_c_w )
441{
442   // pc4 - READY line back to cpu board, but not used
443   if (BIT(data, 5) != BIT(m_portc_a, 5))
444      m_msm_a->set_prescaler_selector(m_msm_a, BIT(data, 5) ? MSM5205_S48_4B : MSM5205_S96_4B); // S1 pin
445   m_msm_a->reset_w(BIT(data, 6));
446   m_ic5a->clear_w(!BIT(data, 6));
447   m_portc_a = data & 0xfe;
448}
449
450WRITE8_MEMBER( spinb_state::ppim_c_w )
451{
452   // pc4 - READY line back to cpu board, but not used
453   if (BIT(data, 5) != BIT(m_portc_m, 5))
454      m_msm_m->set_prescaler_selector(m_msm_m, BIT(data, 5) ? MSM5205_S48_4B : MSM5205_S96_4B); // S1 pin
455   m_msm_m->reset_w(BIT(data, 6));
456   m_ic5m->clear_w(!BIT(data, 6));
457   m_portc_m = data & 0xfe;
458}
459
32460void spinb_state::machine_reset()
33461{
462   m_sound_addr_a = 0;
463   m_sound_addr_m = 0;
464   m_sndbank_a = 0xff;
465   m_sndbank_m = 0xff;
466   m_row = 0;
34467}
35468
36DRIVER_INIT_MEMBER(spinb_state,spinb)
469DRIVER_INIT_MEMBER( spinb_state, spinb )
37470{
471   m_p_audio = memregion("audiorom")->base();
472   m_p_music = memregion("musicrom")->base();
473   m_game = 0;
38474}
39475
40476static MACHINE_CONFIG_START( spinb, spinb_state )
41477   /* basic machine hardware */
42   MCFG_CPU_ADD("maincpu", I8051, 16000000)
478   MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2)
43479   MCFG_CPU_PROGRAM_MAP(spinb_map)
480   MCFG_CPU_PERIODIC_INT_DRIVER(spinb_state, irq0_line_hold, 160) // NE556 adjustable (if faster, then jolypark has a stack problem)
481   MCFG_CPU_ADD("audiocpu", Z80, XTAL_5MHz / 2)
482   MCFG_CPU_PROGRAM_MAP(spinb_audio_map)
483   MCFG_CPU_ADD("musiccpu", Z80, XTAL_5MHz / 2)
484   MCFG_CPU_PROGRAM_MAP(spinb_music_map)
485   MCFG_CPU_ADD("dmdcpu",I8031, XTAL_16MHz)
486   MCFG_CPU_PROGRAM_MAP(dmd_mem)
487   MCFG_CPU_IO_MAP(dmd_io)
488
489   MCFG_NVRAM_ADD_1FILL("nvram")
490
491   /* Sound */
492   MCFG_FRAGMENT_ADD( genpin_audio )
493   MCFG_SPEAKER_STANDARD_MONO("msmavol")
494   MCFG_SOUND_ADD("msm_a", MSM5205, XTAL_384kHz)
495   MCFG_MSM5205_VCLK_CB(WRITELINE(spinb_state, vck_a_w))
496   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 4KHz 4-bit */
497   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msmavol", 1.0)
498   MCFG_SPEAKER_STANDARD_MONO("msmmvol")
499   MCFG_SOUND_ADD("msm_m", MSM5205, XTAL_384kHz)
500   MCFG_MSM5205_VCLK_CB(WRITELINE(spinb_state, vck_m_w))
501   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 4KHz 4-bit */
502   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msmmvol", 1.0)
503
504   /* Devices */
505   MCFG_DEVICE_ADD("ppi60", I8255A, 0 )
506   //MCFG_I8255_IN_PORTA_CB(READ8(spinb_state, ppi60a_r))
507   MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppi60a_w))
508   //MCFG_I8255_IN_PORTB_CB(READ8(spinb_state, ppi60b_r))
509   MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppi60b_w))
510   MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, sw_r))
511   //MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppi60c_w))
512
513   MCFG_DEVICE_ADD("ppi64", I8255A, 0 )
514   //MCFG_I8255_IN_PORTA_CB(READ8(spinb_state, ppi64a_r))
515   //MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppi64a_w))
516   //MCFG_I8255_IN_PORTB_CB(READ8(spinb_state, ppi64b_r))
517   //MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppi64b_w))
518   //MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, ppi64c_r))
519   MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppi64c_w))
520
521   MCFG_DEVICE_ADD("ppi68", I8255A, 0 )
522   //MCFG_I8255_IN_PORTA_CB(READ8(spinb_state, ppi68a_r))
523   //MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppi68a_w))
524   //MCFG_I8255_IN_PORTB_CB(READ8(spinb_state, ppi68b_r))
525   //MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppi68b_w))
526   //MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, ppi68c_r))
527   //MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppi68c_w))
528
529   MCFG_DEVICE_ADD("ppi6c", I8255A, 0 )
530   //MCFG_I8255_IN_PORTA_CB(READ8(spinb_state, ppi6ca_r))
531   //MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppi6ca_w))
532   //MCFG_I8255_IN_PORTB_CB(READ8(spinb_state, ppi6cb_r))
533   //MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppi6cb_w))
534   //MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, ppi6cc_r))
535   //MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppi6cc_w))
536
537   MCFG_DEVICE_ADD("ppia", I8255A, 0 )
538   MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppia_a_w))
539   MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppia_b_w))
540   MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, ppia_c_r))
541   MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppia_c_w))
542
543   MCFG_DEVICE_ADD("ppim", I8255A, 0 )
544   MCFG_I8255_OUT_PORTA_CB(WRITE8(spinb_state, ppim_a_w))
545   MCFG_I8255_OUT_PORTB_CB(WRITE8(spinb_state, ppim_b_w))
546   MCFG_I8255_IN_PORTC_CB(READ8(spinb_state, ppim_c_r))
547   MCFG_I8255_OUT_PORTC_CB(WRITE8(spinb_state, ppim_c_w))
548
549   MCFG_DEVICE_ADD("ic5a", TTL7474, 0)
550   MCFG_7474_COMP_OUTPUT_CB(WRITELINE(spinb_state, ic5a_w))
551
552   MCFG_DEVICE_ADD("ic5m", TTL7474, 0)
553   MCFG_7474_COMP_OUTPUT_CB(WRITELINE(spinb_state, ic5m_w))
44554MACHINE_CONFIG_END
45555
556#if 0
557static MACHINE_CONFIG_START( spinb, spinb_state )
558   /* basic machine hardware */
559   MCFG_CPU_ADD("maincpu", I8031, XTAL_16MHz)
560   MCFG_CPU_PROGRAM_MAP(spinb_map)
561MACHINE_CONFIG_END
562#endif
563
46564/*-------------------------------------------------------------------
47565/ Bushido (1993) - ( Last game by Inder - before becoming Spinball - but same hardware)
48566/-------------------------------------------------------------------*/
r32165r32166
50568   ROM_REGION(0x10000, "maincpu", 0)
51569   ROM_LOAD("0-z80.bin", 0x0000, 0x2000, CRC(3ea1eb1d) SHA1(cceb6c68e481f36a5646ff4f38d3dfc4275b0c79))
52570   ROM_LOAD("1-z80.old", 0x2000, 0x2000, CRC(648da72b) SHA1(1005a13b4746e302d979c8b1da300e943cdcab3d))
53   ROM_REGION(0x32001, "cpu2", 0)
571   ROM_REGION(0x32001, "dmdcpu", 0)
54572   ROM_LOAD("g-disply.bin", 0x00000, 0x10000, CRC(9a1df82f) SHA1(4ad6a12ae36ec898b8ac5243da6dec3abcd9dc33))
55   ROM_REGION(0x10000, "cpu3", 0)
56   ROM_LOAD("a-sonido.bin", 0x00000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762))
57   ROM_REGION(0x180000, "user1", 0)
58   ROM_LOAD("b-sonido.bin", 0x0000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa))
573   ROM_REGION(0x10000, "audiocpu", 0)
574   ROM_LOAD("a-sonido.bin", 0x0000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762))
575   ROM_REGION(0x180000, "audiorom", 0)
576   ROM_LOAD("b-sonido.bin", 0x00000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa))
59577   ROM_LOAD("c-sonido.bin", 0x80000, 0x80000, CRC(35a43dd8) SHA1(f2b1994f67f749c65a88c95d970b655990d85b96))
60   ROM_REGION(0x10000, "cpu4", 0)
61   ROM_LOAD("d-musica.bin", 0x00000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569))
62   ROM_REGION(0x180000, "user2", 0)
63   ROM_LOAD("e-musica.bin", 0x0000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96))
578   ROM_REGION(0x10000, "musiccpu", 0)
579   ROM_LOAD("d-musica.bin", 0x0000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569))
580   ROM_REGION(0x180000, "musicrom", 0)
581   ROM_LOAD("e-musica.bin", 0x00000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96))
64582   ROM_LOAD("f-musica.bin", 0x80000, 0x80000, CRC(80f3a6df) SHA1(e09ad4660e511779c6e55559fa0c2c0b0c6600c8))
65583ROM_END
66584
r32165r32166
68586   ROM_REGION(0x10000, "maincpu", 0)
69587   ROM_LOAD("0-cpu.bin", 0x0000, 0x2000, CRC(7f7e6642) SHA1(6872397eed7525f384b79cdea13531d273d8cf14))
70588   ROM_LOAD("1-cpu.bin", 0x2000, 0x2000, CRC(a538d37f) SHA1(d2878ad0d31b4221b823812485c7faaf666ce185))
71   ROM_REGION(0x32001, "cpu2", 0)
589   ROM_REGION(0x32001, "dmdcpu", 0)
72590   ROM_LOAD("g-disply.bin", 0x00000, 0x10000, CRC(9a1df82f) SHA1(4ad6a12ae36ec898b8ac5243da6dec3abcd9dc33))
73   ROM_REGION(0x10000, "cpu3", 0)
74   ROM_LOAD("a-sonido.bin", 0x00000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762))
75   ROM_REGION(0x180000, "user1", 0)
76   ROM_LOAD("b-sonido.bin", 0x0000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa))
591   ROM_REGION(0x10000, "audiocpu", 0)
592   ROM_LOAD("a-sonido.bin", 0x0000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762))
593   ROM_REGION(0x180000, "audiorom", 0)
594   ROM_LOAD("b-sonido.bin", 0x00000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa))
77595   ROM_LOAD("c-sonido.bin", 0x80000, 0x80000, CRC(35a43dd8) SHA1(f2b1994f67f749c65a88c95d970b655990d85b96))
78   ROM_REGION(0x10000, "cpu4", 0)
79   ROM_LOAD("d-musica.bin", 0x00000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569))
80   ROM_REGION(0x180000, "user2", 0)
81   ROM_LOAD("e-musica.bin", 0x0000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96))
596   ROM_REGION(0x10000, "musiccpu", 0)
597   ROM_LOAD("d-musica.bin", 0x0000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569))
598   ROM_REGION(0x180000, "musicrom", 0)
599   ROM_LOAD("e-musica.bin", 0x00000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96))
82600   ROM_LOAD("f-musica.bin", 0x80000, 0x80000, CRC(80f3a6df) SHA1(e09ad4660e511779c6e55559fa0c2c0b0c6600c8))
83601ROM_END
84602
r32165r32166
89607   ROM_REGION(0x10000, "maincpu", 0)
90608   ROM_LOAD("jpcpu0.rom", 0x0000, 0x2000, CRC(061967af) SHA1(45048e1d9f17efa3382460fd474a5aeb4191d617))
91609   ROM_LOAD("jpcpu1.rom", 0x2000, 0x2000, CRC(ea99202f) SHA1(e04825e73fd25f6469b3315f063f598ea1ab44c7))
92   ROM_REGION(0x32001, "cpu2", 0)
610   ROM_REGION(0x32001, "dmdcpu", 0)
93611   ROM_LOAD("jpdmd0.rom", 0x00000, 0x10000, CRC(b57565cb) SHA1(3fef66d298893029de78fdb6ecdb562c33d76180))
94612   ROM_LOAD("jpdmd1.rom", 0x12000, 0x20000, CRC(40d1563f) SHA1(90dbea742202340da6fa950eedc2bceec5a2af7e))
95   ROM_REGION(0x10000, "cpu3", 0)
96   ROM_LOAD("jpsndc1.rom", 0x00000, 0x2000, CRC(0475318f) SHA1(7154bd5ca5b28019eb0ff598ec99bbe49260932b))
97   ROM_REGION(0x180000, "user1", 0)
98   ROM_LOAD("jpsndm4.rom", 0x0000, 0x80000, CRC(735f3db7) SHA1(81dc893f5194d6ac1af54b262555a40c5c3e0292))
613   ROM_REGION(0x10000, "audiocpu", 0)
614   ROM_LOAD("jpsndc1.rom", 0x0000, 0x2000, CRC(0475318f) SHA1(7154bd5ca5b28019eb0ff598ec99bbe49260932b))
615   ROM_REGION(0x180000, "audiorom", 0)
616   ROM_LOAD("jpsndm4.rom", 0x00000, 0x80000, CRC(735f3db7) SHA1(81dc893f5194d6ac1af54b262555a40c5c3e0292))
99617   ROM_LOAD("jpsndm5.rom", 0x80000, 0x80000, CRC(769374bd) SHA1(8121369714c55cc06c493b15e5c2ca79b13aff52))
100   ROM_REGION(0x10000, "cpu4", 0)
101   ROM_LOAD("jpsndc0.rom", 0x00000, 0x2000, CRC(a97259dc) SHA1(58dea3f36b760112cfc32d306077da8cf6cdec5a))
102   ROM_REGION(0x180000, "user2", 0)
103   ROM_LOAD("jpsndm1.rom", 0x0000, 0x80000, CRC(fc91d2f1) SHA1(c838a0b31bbec9dbc96b46d692c8d6f1286fe46a))
104   ROM_LOAD("jpsndm2.rom", 0x80000, 0x80000, CRC(fb2d1882) SHA1(fb0ef9def54d9163a46354a0df0757fac6cbd57c))
618   ROM_REGION(0x10000, "musiccpu", 0)
619   ROM_LOAD("jpsndc0.rom", 0x0000, 0x2000, CRC(a97259dc) SHA1(58dea3f36b760112cfc32d306077da8cf6cdec5a))
620   ROM_REGION(0x180000, "musicrom", 0)
621   ROM_LOAD("jpsndm1.rom", 0x000000, 0x80000, CRC(fc91d2f1) SHA1(c838a0b31bbec9dbc96b46d692c8d6f1286fe46a))
622   ROM_LOAD("jpsndm2.rom", 0x080000, 0x80000, CRC(fb2d1882) SHA1(fb0ef9def54d9163a46354a0df0757fac6cbd57c))
105623   ROM_LOAD("jpsndm3.rom", 0x100000, 0x80000, CRC(77e515ba) SHA1(17b635d107c437bfc809f8cc1a6cd063cef12691))
106624ROM_END
107625
r32165r32166
112630   ROM_REGION(0x10000, "maincpu", 0)
113631   ROM_LOAD("m2cpu0.19", 0x0000, 0x2000, CRC(274c8040) SHA1(6b039b79b7e08f2bf2045bc4f1cbba790c999fed))
114632   ROM_LOAD("m2cpu1.19", 0x2000, 0x2000, CRC(c445df0b) SHA1(1f346c1df8df0a3c4e8cb1186280d2f34959b3f8))
115   ROM_REGION(0x32001, "cpu2", 0)
633   ROM_REGION(0x32001, "dmdcpu", 0)
116634   ROM_LOAD("m2dmdf.01", 0x00000, 0x10000, CRC(c45ccc74) SHA1(8362e799a76536a16dd2d5dde500ad3db273180f))
117   ROM_REGION(0x10000, "cpu3", 0)
118   ROM_LOAD("m2sndd.01", 0x00000, 0x2000, CRC(e789f22d) SHA1(36aa7eac1dd37a02c982d109462dddbd85a305cc))
119   ROM_REGION(0x180000, "user1", 0)
120   ROM_LOAD("m2snde.01", 0x0000, 0x80000, CRC(f5721119) SHA1(9082198e8d875b67323266c4bf8c2c378b63dfbb))
121   ROM_REGION(0x10000, "cpu4", 0)
122   ROM_LOAD("m2musa.01", 0x00000, 0x2000, CRC(2d92a882) SHA1(cead22e434445e5c25414646b1e9ae2b9457439d))
123   ROM_REGION(0x180000, "user2", 0)
124   ROM_LOAD("m2musb.01", 0x0000, 0x80000, CRC(6689cd19) SHA1(430092d51704dfda8bd8264875f1c1f4461c56e5))
635   ROM_REGION(0x10000, "audiocpu", 0)
636   ROM_LOAD("m2sndd.01", 0x0000, 0x2000, CRC(e789f22d) SHA1(36aa7eac1dd37a02c982d109462dddbd85a305cc))
637   ROM_REGION(0x180000, "audiorom", 0)
638   ROM_LOAD("m2snde.01", 0x00000, 0x80000, CRC(f5721119) SHA1(9082198e8d875b67323266c4bf8c2c378b63dfbb))
639   ROM_REGION(0x10000, "musiccpu", 0)
640   ROM_LOAD("m2musa.01", 0x0000, 0x2000, CRC(2d92a882) SHA1(cead22e434445e5c25414646b1e9ae2b9457439d))
641   ROM_REGION(0x180000, "musicrom", 0)
642   ROM_LOAD("m2musb.01", 0x00000, 0x80000, CRC(6689cd19) SHA1(430092d51704dfda8bd8264875f1c1f4461c56e5))
125643   ROM_LOAD("m2musc.01", 0x80000, 0x80000, CRC(88851b82) SHA1(d0c9fa391ca213a69b7c8ae7ca52063503b5656e))
126644ROM_END
127645
r32165r32166
132650   ROM_REGION(0x10000, "maincpu", 0)
133651   ROM_LOAD("vwcpu0.rom", 0x0000, 0x4000, CRC(89c980e7) SHA1(09eeed0232255875cf119d59143d839ff40e30dd))
134652   ROM_LOAD("vwcpu1.rom", 0x4000, 0x4000, CRC(a4db4e64) SHA1(fc55781295fc723741de24ad60311b7e33551830))
135   ROM_REGION(0x114000, "cpu2", 0)
653   ROM_REGION(0x114000, "dmdcpu", 0)
136654   ROM_LOAD("vwdmd0.rom", 0x00000, 0x10000, CRC(40600060) SHA1(7ad619bcb5e5e50325360f4e946b5bfa072caead))
137655   ROM_LOAD("vwdmd1.rom", 0x14000, 0x80000, CRC(de4a1060) SHA1(6b848dfd8aafdbcf7e1593f98bd1c3d69306aa11))
138656   ROM_LOAD("vwdmd2.rom", 0x94000, 0x80000, CRC(29fc8da7) SHA1(2704f14a3338a63abda3bcbc56e9f984a679eb38))
139   ROM_REGION(0x10000, "cpu3", 0)
140   ROM_LOAD("vws2ic9.rom", 0x00000, 0x2000, CRC(ab8cb4c5) SHA1(92a702c11e2cef703992244529ba86079d5ab9b0))
141   ROM_REGION(0x180000, "user1", 0)
142   ROM_LOAD("vws3ic15.rom", 0x0000, 0x80000, CRC(d62c9443) SHA1(7c6b8662d88ba6592da8b83af11087647105e8dd))
143   ROM_REGION(0x10000, "cpu4", 0)
144   ROM_LOAD("vws4ic30.rom", 0x00000, 0x2000, CRC(ecd18a19) SHA1(558e687e0429d31fafe8db05954d9a8ad90d6aeb))
145   ROM_REGION(0x180000, "user2", 0)
146   ROM_LOAD("vws5ic25.rom", 0x0000, 0x80000, CRC(56d349f0) SHA1(e71d2d03c3e978c552e272de8850cc265255fbd1))
147   ROM_LOAD("vws6ic26.rom", 0x80000, 0x80000, CRC(bee399c1) SHA1(b2c6e4830641ed32b9643dc8c1fa08a2da5a7e9b))
657   ROM_REGION(0x10000, "audiocpu", 0)
658   ROM_LOAD("vws2ic9.rom", 0x0000, 0x2000, CRC(ab8cb4c5) SHA1(92a702c11e2cef703992244529ba86079d5ab9b0))
659   ROM_REGION(0x180000, "audiorom", 0)
660   ROM_LOAD("vws3ic15.rom", 0x00000, 0x80000, CRC(d62c9443) SHA1(7c6b8662d88ba6592da8b83af11087647105e8dd))
661   ROM_REGION(0x10000, "musiccpu", 0)
662   ROM_LOAD("vws4ic30.rom", 0x0000, 0x2000, CRC(ecd18a19) SHA1(558e687e0429d31fafe8db05954d9a8ad90d6aeb))
663   ROM_REGION(0x180000, "musicrom", 0)
664   ROM_LOAD("vws5ic25.rom", 0x000000, 0x80000, CRC(56d349f0) SHA1(e71d2d03c3e978c552e272de8850cc265255fbd1))
665   ROM_LOAD("vws6ic26.rom", 0x080000, 0x80000, CRC(bee399c1) SHA1(b2c6e4830641ed32b9643dc8c1fa08a2da5a7e9b))
148666   ROM_LOAD("vws7ic27.rom", 0x100000, 0x80000, CRC(7335b29c) SHA1(4de6de09f069feecbad2e5ef50032e8d381ff9b1))
149667ROM_END
150668
151GAME(1993,  bushido,   0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Inder/Spinball",    "Bushido (set 1)",         GAME_IS_SKELETON_MECHANICAL)
152GAME(1993,  bushidoa,  bushido, spinb,  spinb, spinb_state,  spinb,  ROT0,  "Inder/Spinball",    "Bushido (set 2)",         GAME_IS_SKELETON_MECHANICAL)
153GAME(1996,  jolypark,  0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",          "Jolly Park",              GAME_IS_SKELETON_MECHANICAL)
154GAME(1995,  mach2,     0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",          "Mach 2",                  GAME_IS_SKELETON_MECHANICAL)
155GAME(1996,  vrnwrld,   0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",          "Verne's World",           GAME_IS_SKELETON_MECHANICAL)
669GAME(1993, bushido,   0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Inder/Spinball", "Bushido (set 1)", GAME_IS_SKELETON_MECHANICAL)
670GAME(1993, bushidoa,  bushido, spinb,  spinb, spinb_state,  spinb,  ROT0,  "Inder/Spinball", "Bushido (set 2)", GAME_IS_SKELETON_MECHANICAL)
671GAME(1996, jolypark,  0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",       "Jolly Park",      GAME_IS_SKELETON_MECHANICAL)
672GAME(1995, mach2,     0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",       "Mach 2",          GAME_IS_SKELETON_MECHANICAL)
673GAME(1996, vrnwrld,   0,       spinb,  spinb, spinb_state,  spinb,  ROT0,  "Spinball",       "Verne's World",   GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team