Previous 199869 Revisions Next

r31590 Sunday 10th August, 2014 at 09:47:31 UTC by Robbbert
Minor cleanups and notes
[src/mame/drivers]flicker.c gp_2.c rowamet.c s3.c techno.c wico.c zac_proto.c

trunk/src/mame/drivers/techno.c
r31589r31590
11/**********************************************************************************
22
3    Pinball
3    PINBALL
44    Technoplay "2-2C 8008 LS" (68000 CPU)
55    Schematic and PinMAME used as references
66
77ToDo:
8- Once game starts, nothing responds
8- Once you press the credit button, nothing responds (game requires 4 balls)
9- Sliding display is too fast to read (much better if cpu xtal changed to 4MHz)
910- No sound due to missing roms
1011
1112***********************************************************************************/
r31589r31590
1516#include "cpu/m68000/m68000.h"
1617#include "techno.lh"
1718
18#define TECHNO_MAINCLK 8e6
1919
2020class techno_state : public driver_device
2121{
2222public:
2323   techno_state(const machine_config &mconfig, device_type type, const char *tag)
24      : driver_device(mconfig, type, tag),
25   m_maincpu(*this, "maincpu")
24      : driver_device(mconfig, type, tag)
25      , m_maincpu(*this, "maincpu")
2626   { }
2727
2828   DECLARE_READ16_MEMBER(key_r);
r31589r31590
3636   DECLARE_WRITE16_MEMBER(sol1_w);
3737   DECLARE_WRITE16_MEMBER(sol2_w);
3838   DECLARE_WRITE16_MEMBER(sound_w);
39   UINT16 m_digit;
40   UINT8 m_vector;
41protected:
42
43   // devices
44   required_device<cpu_device> m_maincpu;
45
46   // driver_device overrides
47   virtual void machine_reset();
39   INTERRUPT_GEN_MEMBER(techno_intgen);
4840private:
4941   bool m_digwait;
5042   UINT8 m_keyrow;
51public:
52   INTERRUPT_GEN_MEMBER(techno_intgen);
43   UINT16 m_digit;
44   UINT8 m_vector;
45   virtual void machine_reset();
46   required_device<cpu_device> m_maincpu;
5347};
5448
5549
r31589r31590
249243
250244static MACHINE_CONFIG_START( techno, techno_state )
251245   /* basic machine hardware */
252   MCFG_CPU_ADD("maincpu", M68000, TECHNO_MAINCLK)
246   MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz)
253247   MCFG_CPU_PROGRAM_MAP(techno_map)
254   MCFG_CPU_PERIODIC_INT_DRIVER(techno_state, techno_intgen,  TECHNO_MAINCLK/256) // 31250Hz
248   MCFG_CPU_PERIODIC_INT_DRIVER(techno_state, techno_intgen,  XTAL_8MHz/256) // 31250Hz
255249   MCFG_NVRAM_ADD_0FILL("nvram")
256   //MCFG_CPU_ADD("cpu2", TMS7000, 4000000)
250   //MCFG_CPU_ADD("cpu2", TMS7000, XTAL_4MHz)
257251   //MCFG_CPU_PROGRAM_MAP(techno_sub_map)
258252
259253   /* Video */
r31589r31590
261255MACHINE_CONFIG_END
262256
263257ROM_START(xforce)
264   ROM_REGION(0x1000000, "maincpu", 0)
265   ROM_LOAD16_BYTE("ic15", 0x000001, 0x8000, CRC(fb8d2853) SHA1(0b0004abfe32edfd3ac15d66f90695d264c97eba))
266   ROM_LOAD16_BYTE("ic17", 0x000000, 0x8000, CRC(122ef649) SHA1(0b425f81869bc359841377a91c39f44395502bff))
258   ROM_REGION(0x10000, "maincpu", 0)
259   ROM_LOAD16_BYTE("ic15", 0x0001, 0x8000, CRC(fb8d2853) SHA1(0b0004abfe32edfd3ac15d66f90695d264c97eba))
260   ROM_LOAD16_BYTE("ic17", 0x0000, 0x8000, CRC(122ef649) SHA1(0b425f81869bc359841377a91c39f44395502bff))
267261
268262   //ROM_REGION(0x20000), "cpu2", 0)
269263   // 5 x 27256 roms are undumped
270264ROM_END
271265
272GAME(1987,  xforce,  0,  techno,  techno, driver_device,  0,  ROT0,  "Tecnoplay", "X Force", GAME_MECHANICAL | GAME_NO_SOUND | GAME_IMPERFECT_KEYBOARD)
266GAME(1987,  xforce,  0,  techno,  techno, driver_device,  0,  ROT0,  "Tecnoplay", "X Force", GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/wico.c
r31589r31590
3737{
3838public:
3939   wico_state(const machine_config &mconfig, device_type type, const char *tag)
40      : genpin_class(mconfig, type, tag),
41   m_ccpu(*this, "ccpu"),
42   m_hcpu(*this, "hcpu"),
43   m_shared_ram(*this, "sharedram")
40      : genpin_class(mconfig, type, tag)
41      , m_ccpu(*this, "ccpu")
42      , m_hcpu(*this, "hcpu")
43      , m_shared_ram(*this, "sharedram")
4444   { }
4545
4646   DECLARE_READ8_MEMBER(lampst_r);
r31589r31590
5454   DECLARE_READ8_MEMBER(gentmrcl_r);
5555   TIMER_DEVICE_CALLBACK_MEMBER(irq_housekeeping);
5656   TIMER_DEVICE_CALLBACK_MEMBER(firq_housekeeping);
57protected:
58
59   // devices
60   required_device<cpu_device> m_ccpu;
61   required_device<cpu_device> m_hcpu;
62   required_shared_ptr<UINT8> m_shared_ram;
63
64   // driver_device overrides
65   virtual void machine_reset();
6657private:
6758   bool m_zcen;
6859   bool m_gten;
6960   bool m_disp_on;
7061   bool m_diag_on;
7162   UINT8 m_firqtimer;
63   virtual void machine_reset();
64   required_device<cpu_device> m_ccpu;
65   required_device<cpu_device> m_hcpu;
66   required_shared_ptr<UINT8> m_shared_ram;
7267};
7368
7469// housekeeping cpu
trunk/src/mame/drivers/zac_proto.c
r31589r31590
2626{
2727public:
2828   zac_proto_state(const machine_config &mconfig, device_type type, const char *tag)
29      : driver_device(mconfig, type, tag),
30         m_maincpu(*this, "maincpu")
29      : driver_device(mconfig, type, tag)
30      , m_maincpu(*this, "maincpu")
3131   { }
3232
3333   DECLARE_WRITE8_MEMBER(out0_w);
3434   DECLARE_WRITE8_MEMBER(out1_w);
3535   DECLARE_WRITE8_MEMBER(digit_w);
3636   DECLARE_WRITE8_MEMBER(sound_w);
37protected:
38
39   // devices
40   required_device<cpu_device> m_maincpu;
41
42   // driver_device overrides
37private:
4338   virtual void machine_reset();
39   required_device<cpu_device> m_maincpu;
4440};
4541
4642
trunk/src/mame/drivers/s3.c
r31589r31590
11/***********************************************************************************
22
3    Pinball
3    PINBALL
44    Williams System 3
55
66    Typical of Williams hardware: Motorola 8-bit CPUs, and lots of PIAs.
r31589r31590
1616    the real board.
1717
1818ToDo:
19- Add 10k chime when added to samples.
19- Mechanical
2020
2121
2222************************************************************************************/
r31589r31590
3333{
3434public:
3535   s3_state(const machine_config &mconfig, device_type type, const char *tag)
36      : genpin_class(mconfig, type, tag),
37   m_maincpu(*this, "maincpu"),
38   m_audiocpu(*this, "audiocpu"),
39   m_dac(*this, "dac"),
40   m_pia22(*this, "pia22"),
41   m_pia24(*this, "pia24"),
42   m_pia28(*this, "pia28"),
43   m_pia30(*this, "pia30"),
44   m_pias(*this, "pias")
36      : genpin_class(mconfig, type, tag)
37      , m_maincpu(*this, "maincpu")
38      , m_audiocpu(*this, "audiocpu")
39      , m_dac(*this, "dac")
40      , m_pia22(*this, "pia22")
41      , m_pia24(*this, "pia24")
42      , m_pia28(*this, "pia28")
43      , m_pia30(*this, "pia30")
44      , m_pias(*this, "pias")
4545   { }
4646
4747   DECLARE_READ8_MEMBER(dac_r);
r31589r31590
7171   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
7272   DECLARE_MACHINE_RESET(s3);
7373   DECLARE_MACHINE_RESET(s3a);
74protected:
75
76   // devices
77   required_device<cpu_device> m_maincpu;
78   optional_device<cpu_device> m_audiocpu;
79   optional_device<dac_device> m_dac;
80   required_device<pia6821_device> m_pia22;
81   required_device<pia6821_device> m_pia24;
82   required_device<pia6821_device> m_pia28;
83   required_device<pia6821_device> m_pia30;
84   optional_device<pia6821_device> m_pias;
8574private:
8675   UINT8 m_t_c;
8776   UINT8 m_sound_data;
r31589r31590
9079   bool m_cb1;
9180   bool m_data_ok;
9281   bool m_chimes;
82   required_device<cpu_device> m_maincpu;
83   optional_device<cpu_device> m_audiocpu;
84   optional_device<dac_device> m_dac;
85   required_device<pia6821_device> m_pia22;
86   required_device<pia6821_device> m_pia24;
87   required_device<pia6821_device> m_pia28;
88   required_device<pia6821_device> m_pia30;
89   optional_device<pia6821_device> m_pias;
9390};
9491
9592static ADDRESS_MAP_START( s3_main_map, AS_PROGRAM, 8, s3_state )
r31589r31590
273270WRITE8_MEMBER( s3_state::sol0_w )
274271{
275272   if (BIT(data, 4))
276      m_samples->start(2, 5); // outhole
273      m_samples->start(5, 5); // outhole
277274}
278275
279276WRITE8_MEMBER( s3_state::sol1_w )
r31589r31590
289286      if (BIT(data, 2))
290287         m_samples->start(3, 3); // 1000 chime
291288
292      // we don't have a 10k chime in samples yet
293      //if (BIT(data, 3))
294         //m_samples->start(1, x); // 10k chime
289      if (BIT(data, 3))
290         m_samples->start(4, 4); // 10k chime
295291   }
296292   else
297293   {
trunk/src/mame/drivers/rowamet.c
r31589r31590
11/************************************************************************************
22
3    Pinball
3    PINBALL
44    Rowamet : Heavy Metal
55
66    PinMAME used as reference (couldn't find a manual)
r31589r31590
1010- Outputs
1111- Fix display
1212- Doesn't boot properly
13- Bad sound rom
1314
1415*************************************************************************************/
1516
r31589r31590
2223{
2324public:
2425   rowamet_state(const machine_config &mconfig, device_type type, const char *tag)
25      : driver_device(mconfig, type, tag),
26   m_maincpu(*this, "maincpu"),
27   m_cpu2(*this, "cpu2"),
28   m_p_ram(*this, "ram")
26      : driver_device(mconfig, type, tag)
27      , m_maincpu(*this, "maincpu")
28      , m_cpu2(*this, "cpu2")
29      , m_p_ram(*this, "ram")
2930   { }
3031
3132   DECLARE_READ8_MEMBER(sound_r);
r31589r31590
3435   DECLARE_READ8_MEMBER(io_r);
3536   DECLARE_WRITE8_MEMBER(io_w);
3637   TIMER_DEVICE_CALLBACK_MEMBER(rowamet_timer);
37
38protected:
39
40   // devices
41   required_device<cpu_device> m_maincpu;
42   required_device<cpu_device> m_cpu2;
43   required_shared_ptr<UINT8> m_p_ram;
44
45   // driver_device overrides
46   virtual void machine_reset();
4738private:
4839   UINT8 m_out_offs;
4940   UINT8 m_sndcmd;
5041   UINT8 m_io[16];
42   virtual void machine_reset();
43   required_device<cpu_device> m_maincpu;
44   required_device<cpu_device> m_cpu2;
45   required_shared_ptr<UINT8> m_p_ram;
5146};
5247
5348
5449static ADDRESS_MAP_START( rowamet_map, AS_PROGRAM, 8, rowamet_state )
55   AM_RANGE(0x0000, 0x1fff) AM_ROM
50   AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("roms", 0)
5651   AM_RANGE(0x2800, 0x2808) AM_READ(switch_r)
5752   AM_RANGE(0x4000, 0x407f) AM_RAM
5853   AM_RANGE(0x4080, 0x408f) AM_RAM AM_SHARE("ram")
r31589r31590
6156ADDRESS_MAP_END
6257
6358static ADDRESS_MAP_START( rowamet_sub_map, AS_PROGRAM, 8, rowamet_state )
64   AM_RANGE(0x0000, 0x0fff) AM_ROM
59   AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("roms", 0x2000)
6560   AM_RANGE(0x1000, 0x17ff) AM_RAM
6661ADDRESS_MAP_END
6762
r31589r31590
8277
8378READ8_MEMBER( rowamet_state::switch_r )
8479{
85   return 0;
80   if (offset==6)
81      return 0x3f; // gets stuck in a loop without this
82   else
83      return 0;
8684}
8785
8886WRITE8_MEMBER( rowamet_state::mute_w )
r31589r31590
112110
113111void rowamet_state::machine_reset()
114112{
113   UINT8 i;
114   m_out_offs = 0;
115   m_sndcmd = 0;
116   for (i = 0; i < 16; i++)
117      m_io[i] = 0;
115118}
116119
117120TIMER_DEVICE_CALLBACK_MEMBER(rowamet_state::rowamet_timer)
r31589r31590
150153/ Heavy Metal (????)
151154/-------------------------------------------------------------------*/
152155ROM_START(heavymtl)
153   ROM_REGION(0x10000, "maincpu", 0)
156   ROM_REGION(0x3000, "roms", 0)
154157   ROM_LOAD("hvymtl_c.bin", 0x0000, 0x1000, CRC(8f36d3da) SHA1(beec79c5d794ede96d95105bad7466b67762606d))
155158   ROM_LOAD("hvymtl_b.bin", 0x1000, 0x1000, CRC(357f1252) SHA1(ddc55ded0dc1c8632c31d809bfadfb45ae248cfd))
156
157   ROM_REGION(0x10000, "cpu2", 0)
158   ROM_LOAD("hvymtl_s.bin", 0x0000, 0x1000, CRC(c525e6cb) SHA1(144e06fbbdd1f3e45ccca8bace6b04f876b1312c))
159   ROM_FILL(0, 1, 0) // remove erronous FF
159   ROM_LOAD("hvymtl_s.bin", 0x2000, 0x1000, BAD_DUMP CRC(c525e6cb) SHA1(144e06fbbdd1f3e45ccca8bace6b04f876b1312c))
160   ROM_FILL(0x2000, 1, 0xaf) // bad byte
161   ROM_FILL(0x2551, 1, 0xdd) // another bad byte
160162ROM_END
161163
162164/*-------------------------------------------------------------------
trunk/src/mame/drivers/gp_2.c
r31589r31590
1313All the Z80 "maincpu" code is copied from gp_1.c
1414Any bug fixes need to be applied both here and there.
1515
16Sound boards: (each game has its own custom sounds)
17-------------------------------------------------------------------------------
18Old Coney Island            3x SN76477
19Sharpshooter                3x SN76477
20Super Nova                  4x SN76477
21Andromeda/Cyclopes          6808/6802/6810 + 6821 + 1 rom + ZN428
22Lady Sharpshooter           6808/6802/6810 + 2x6821 + 2xROM + 6840 + discrete
23(no schematics for the others)
1624
1725ToDo:
18- The earlier sets have a sound board with 3x SN76477 and lots of discrete circuitry (not emulated)
19- The later sets (with sound roms) have a sound board with a MC6808 and 6821PIA (not emulated)
20- Each machine has its own set of inputs (not emulated)
26- Sound
27- Inputs vary per machine
28- Mechanical
2129
2230
2331******************************************************************************************/
r31589r31590
202210   PORT_DIPSETTING(    0x80, DEF_STR( On ))
203211
204212   PORT_START("DSW3")
205   PORT_DIPNAME( 0x07, 0x07, "Max number of credits")
213   PORT_DIPNAME( 0x07, 0x02, "Max number of credits")
206214   PORT_DIPSETTING(    0x00, "5" )
207215   PORT_DIPSETTING(    0x01, "10")
208216   PORT_DIPSETTING(    0x02, "15")
r31589r31590
211219   PORT_DIPSETTING(    0x05, "30")
212220   PORT_DIPSETTING(    0x06, "35")
213221   PORT_DIPSETTING(    0x07, "40")
214   PORT_DIPNAME( 0x08, 0x08, "Balls")
222   PORT_DIPNAME( 0x08, 0x00, "Balls")
215223   PORT_DIPSETTING(    0x00, "3")
216224   PORT_DIPSETTING(    0x08, "5")
217225   PORT_DIPNAME( 0x10, 0x10, "Award")
trunk/src/mame/drivers/flicker.c
r31589r31590
11/***********************************************************************************
22
3  Flicker Pinball
3  PINBALL
4  Flicker was originally an EM machine, and Bally asked Nutting Associates
5  to create a solid-state prototype.
46
5  Prototype create by Nutting Associates for Bally.
6
77  Seems to be the first ever microprocessor-controlled pinball machine.
88
99  2012-08-23 Made working [Robbbert]
r31589r31590
2525{
2626public:
2727   flicker_state(const machine_config &mconfig, device_type type, const char *tag)
28      : genpin_class(mconfig, type, tag),
29   m_maincpu(*this, "maincpu")
28      : genpin_class(mconfig, type, tag)
29      , m_maincpu(*this, "maincpu")
3030   { }
3131
3232   DECLARE_WRITE8_MEMBER(port00_w);
3333   DECLARE_WRITE8_MEMBER(port01_w);
3434   DECLARE_WRITE8_MEMBER(port10_w);
3535   DECLARE_READ8_MEMBER(port02_r);
36
37protected:
38
39   // devices
40   required_device<i4004_cpu_device> m_maincpu;
41
4236private:
4337   UINT8 m_out_data;
38   required_device<i4004_cpu_device> m_maincpu;
4439};
4540
4641
r31589r31590
192187                  break;
193188               case 0x07:
194189               case 0x08:
195                  m_samples->start(0, 5);
190                  m_samples->start(5, 5);
196191                  break;
197192               case 0x09:
198193                  m_samples->start(0, 6);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team