Previous 199869 Revisions Next

r18360 Monday 8th October, 2012 at 18:36:15 UTC by James Wallace
New clones added
=================
Each Way Nudger (Barcrest?, set 3, version 20?) [Launton/MPU Mecca]

New games added
===============
New games

Each Way Shifter (Barcrest?) [Launton/MPU Mecca]
Lucky Twos [launton/MPU Mecca]

Scoop (Peter Simper, prototype?) (MPU3) [Superbank/MPU Mecca]
More Money (VFS) (MPU3) [Fruitsim/MPU Mecca]
Talk of the Town (MPU3) [Fruitsim/MPU Mecca]

Improvements to Maygay M1 emulation, most games at least show something now [David Haywood/James Wallace]
[src/mame]mame.lst
[src/mame/drivers]jpmsru.c maygay1b.c maygayv1.c mpu3.c

trunk/src/mame/drivers/maygayv1.c
r18359r18360
818818   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
819819
820820   PORT_START("STROBE2")
821   PORT_DIPNAME( 0x01, 0x01, "Teste")
821   PORT_DIPNAME( 0x01, 0x01, "Test")
822822   PORT_DIPSETTING(   0x01, DEF_STR( Off ) )
823823   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
824824   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
trunk/src/mame/drivers/maygay1b.c
r18359r18360
22
33    Maygay M1 A/B driver, (under heavy construction !!!)
44
5    A.G.E Code Copyright J. Wallace and the AGEMAME Development Team.
6    Visit http://agemame.mameworld.info for more information.
7
85    M.A.M.E Core Copyright Nicola Salmoria and the MAME Team,
96    used under license from http://mamedev.org
107
r18359r18360
116113   maygay1b_state(const machine_config &mconfig, device_type type, const char *tag)
117114      : driver_device(mconfig, type, tag),
118115        m_vfd(*this, "vfd")
119      { }
116   {
117   
118      m_NMIENABLE = 0;
119   }
120120
121121   UINT8 m_lamppos;
122122   int m_alpha_clock;
r18359r18360
125125   int m_PSUrelay;
126126   int m_WDOG;
127127   int m_SRSEL;
128   int m_NMIENABLE;
129   TIMER_DEVICE_CALLBACK_MEMBER( maygay1b_nmitimer_callback );
128130   UINT8 m_Lamps[256];
129131   int m_optic_pattern;
130132   optional_device<roc10937_t> m_vfd;
r18359r18360
146148   DECLARE_WRITE8_MEMBER(m1_pia_porta_w);
147149   DECLARE_WRITE8_MEMBER(m1_pia_portb_w);
148150   DECLARE_WRITE8_MEMBER(m1_meter_w);
151   DECLARE_READ8_MEMBER(m1_meter_r);
152   DECLARE_READ8_MEMBER(m1_firq_trg_r);
149153   DECLARE_DRIVER_INIT(m1);
150154   virtual void machine_start();
151155   virtual void machine_reset();
r18359r18360
155159void maygay1b_state::m1_draw_lamps(int data,int strobe, int col)
156160{
157161   int i;
158   int scramble[8] = { 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08 };
159162
160   m_lamppos = strobe + col * 8;
161
162163   for ( i = 0; i < 8; i++ )
163164   {
164      m_Lamps[m_lamppos] = ( data & scramble[i] );
165      m_lamppos = (strobe*8) + col + i;
166
167      if ((data>>i)&1)
168         m_Lamps[m_lamppos] = 1;
169      else
170         m_Lamps[m_lamppos] = 0;
171
165172      output_set_lamp_value(m_lamppos, m_Lamps[m_lamppos]);
166173   }
167   m_lamppos++;
168174}
169175
170176
r18359r18360
370376         m1_draw_lamps(chip->ram[chip->disp_address],chip->disp_address, 0);
371377      }
372378      chip->ram[chip->disp_address] = data;
379     
373380      if ( chip->disp_auto_inc )
374      chip->disp_address ++;
381         chip->disp_address ++;
375382   }
376383}
377384
r18359r18360
521528      }
522529      chip->ram[chip->disp_address] = data;
523530      if ( chip->disp_auto_inc )
524      chip->disp_address ++;
531         chip->disp_address ++;
525532   }
526533
527534}
r18359r18360
551558
552559///////////////////////////////////////////////////////////////////////////
553560
561// IRQ from Duart (hopper?)
554562static void duart_irq_handler(device_t *device, int state, UINT8 vector)
555563{
556   device->machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, state);
564   device->machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, state?ASSERT_LINE:CLEAR_LINE);
557565   LOG(("6809 irq%d \n",state));
558566}
559567
560#if 0
561static void cpu0_firq(int state)
568// FIRQ, related to the sample playback?
569READ8_MEMBER( maygay1b_state::m1_firq_trg_r )
562570{
563   cpunum_set_input_line(Machine, 0, M6809_FIRQ_LINE, state?ASSERT_LINE:CLEAR_LINE);
564   LOG(("6809 firq%d \n",state));
571   static int i = 0xff;
572   i ^= 0xff;
573   space.machine().device("maincpu")->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
574   LOG(("6809 firq\n"));
575   return i;
565576}
566#endif
567577
568static void cpu0_nmi(running_machine &machine, int state)
578// NMI is periodic? or triggered by a write?
579TIMER_DEVICE_CALLBACK_MEMBER( maygay1b_state::maygay1b_nmitimer_callback )
569580{
570   machine.device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, state?ASSERT_LINE:CLEAR_LINE);
571   LOG(("6809 nmi%d \n",state));
581   if (m_NMIENABLE)
582   {
583      LOG(("6809 nmi\n"));
584      machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, HOLD_LINE);
585   }
572586}
573587
588
589
574590/***************************************************************************
575591    6821 PIA
576592***************************************************************************/
577593
594// some games might differ..
578595WRITE8_MEMBER(maygay1b_state::m1_pia_porta_w)
579596{
580   if(!(data & 0x40))
597//   printf("m1_pia_porta_w %02x\n",data);
598
599   if((data & 0x40))
581600   {
582601      if (m_alpha_clock != (data & 0x20))
583602      {
584         if (!m_alpha_clock)//falling edge
603         if (!m_alpha_clock)
585604         {
586            m_vfd->shift_data((data & 0x10)?1:0);
605            m_vfd->shift_data((data & 0x10)?0:1);
587606         }
588607      }
589608      m_alpha_clock = (data & 0x20);
r18359r18360
793812static UINT8 m1_duart_r (device_t *device)
794813{
795814   maygay1b_state *state = device->machine().driver_data<maygay1b_state>();
796   return (state->m_optic_pattern);
815   return ~(state->m_optic_pattern);
797816}
798817
799818WRITE8_MEMBER(maygay1b_state::m1_meter_w)
r18359r18360
815834      m_ALARMEN = (data & 1);
816835      break;
817836      case 2: // Enable
818         cpu0_nmi(machine(),1);
819         cpu0_nmi(machine(),0);
820
821        //        if ( m1_enable == 0 && ( data & 1 ) && Vmm )
822//      {
823   //      cpu0_nmi(1)
824      //  m1_enable = (data & 1);
825//      }
837      //printf("nmi enable %02x\n",data);
838      m_NMIENABLE = (data & 1);
826839      break;
827840      case 3: // RTS
828841      {
r18359r18360
835848      m_WDOG = (data & 1);
836849      break;
837850      case 6: // Srsel
851      // this is the ROM banking?
852      printf("rom bank %02x\n",data);
838853      m_SRSEL = (data & 1);
839854      break;
840855   }
r18359r18360
862877   return 0;
863878}
864879
880READ8_MEMBER(maygay1b_state::m1_meter_r)
881{
882   device_t *ay8910 = machine().device("aysnd");
883   return ~ay8910_read_ym(ay8910);
884}
885 
865886static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state )
866887   AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
867888
r18359r18360
869890   AM_RANGE(0x2010, 0x2010) AM_WRITE(reel34_w)
870891   AM_RANGE(0x2020, 0x2020) AM_WRITE(reel56_w)
871892
893   // there is actually an 8279 and an 8051..
872894   AM_RANGE(0x2030, 0x2031) AM_READWRITE(m1_8279_r,m1_8279_w)
873895   AM_RANGE(0x2040, 0x2041) AM_READWRITE(m1_8279_2_r,m1_8279_2_w)
874   AM_RANGE(0x2050, 0x2050)// SCAN on M1B
896//   AM_RANGE(0x2050, 0x2050)// SCAN on M1B
875897
876898   AM_RANGE(0x2070, 0x207f) AM_DEVREADWRITE_LEGACY("duart68681", duart68681_r, duart68681_w )
877899
878900   AM_RANGE(0x2090, 0x2091) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
879   AM_RANGE(0x20B0, 0x20B0) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
901   AM_RANGE(0x20B0, 0x20B0) AM_READ(m1_meter_r)
880902
881903   AM_RANGE(0x20A0, 0x20A3) AM_DEVWRITE("pia", pia6821_device, write)
882904   AM_RANGE(0x20A0, 0x20A3) AM_DEVREAD("pia", pia6821_device, read)
r18359r18360
887909   AM_RANGE(0x2404, 0x2405) AM_READ(latch_st_lo)
888910   AM_RANGE(0x2406, 0x2407) AM_READ(latch_st_hi)
889911
912   AM_RANGE(0x2412, 0x2412) AM_READ(m1_firq_trg_r) // firq, sample playback?
913
914   
915
890916   AM_RANGE(0x2420, 0x2421) AM_WRITE(latch_ch2_w ) // oki
891917
892918   AM_RANGE(0x2800, 0xffff) AM_ROM
r18359r18360
912938
913939// machine driver for maygay m1 board /////////////////////////////////
914940
941
942
915943static MACHINE_CONFIG_START( m1, maygay1b_state )
916944
917945   MCFG_CPU_ADD("maincpu", M6809, M1_MASTER_CLOCK/2)
r18359r18360
919947
920948   MCFG_DUART68681_ADD("duart68681", M1_DUART_CLOCK, maygaym1_duart68681_config)
921949   MCFG_PIA6821_ADD("pia", m1_pia_intf)
922   MCFG_MSC1937_ADD("vfd",0,LEFT_TO_RIGHT)
950   MCFG_MSC1937_ADD("vfd",0,RIGHT_TO_LEFT)
923951   MCFG_SPEAKER_STANDARD_MONO("mono")
924952   MCFG_SOUND_ADD("aysnd",AY8913, M1_MASTER_CLOCK)
925953   MCFG_SOUND_CONFIG(ay8910_config)
r18359r18360
930958   MCFG_SOUND_ADD("msm6376", OKIM6376, M1_MASTER_CLOCK/4) //?
931959   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
932960
961   MCFG_TIMER_DRIVER_ADD_PERIODIC("nmitimer", maygay1b_state, maygay1b_nmitimer_callback, attotime::from_hz(75)) // freq?
962
933963   MCFG_NVRAM_ADD_0FILL("nvram")
934964
935965   MCFG_DEFAULT_LAYOUT(layout_maygay1b)
trunk/src/mame/drivers/mpu3.c
r18359r18360
10541054   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
10551055ROM_END
10561056
1057//VFS conversion based around Chances and Options unlimited
1058ROM_START( m3mremon )
1059   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
1060   ROM_LOAD( "mmchancs.bin", 0x6000, 0x2000, CRC(3eaede51) SHA1(6914fcaed6e51736c6dc725ba82b691803571222) )
1061   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
1062ROM_END
10571063
10581064ROM_START( m3chase )
10591065   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
r18359r18360
13821388   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
13831389ROM_END
13841390
1391ROM_START( m3scoop )
1392   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
1393   ROM_LOAD( "scoopv-2.p1", 0x7000, 0x1000, CRC(e937e298) SHA1(edb4dfb5afd6c2640b6bbd83be591987225bd8fc) )
1394   ROM_LOAD( "scoopv-2.p2", 0x6000, 0x1000, CRC(2a97a254) SHA1(a249e013d86f7e65e43b07ff916c4d0fd5099f44) )
1395   ROM_LOAD( "scoopv-2.p3", 0x5000, 0x1000, CRC(34ab1805) SHA1(1e389e9b47c4b3305ec70c94f49a4e3ca0a6f439) )
1396   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
1397ROM_END
13851398
13861399ROM_START( m3spoof )
13871400   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
r18359r18360
15201533   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
15211534ROM_END
15221535
1536ROM_START( m3tlktwn )
1537   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
1538   ROM_LOAD( "ttown1.bin", 0x7000, 0x1000, CRC(996c435b) SHA1(1fcf5a637cddacd6660da752a1fe10e56a7653c7) )
1539   ROM_LOAD( "ttown2.bin", 0x6000, 0x1000, CRC(93bd6446) SHA1(ef271bb45d27844f0ef1437bbc7f4847f4c0c6ee) )
1540   ROM_LOAD( "ttown3.bin", 0x5000, 0x1000, CRC(0ca34690) SHA1(1734692d82af89272a2243e2c5f584965bfe197f) )
1541   ROM_COPY( "maincpu", 0x0000, 0x8000, 0x8000 )
1542ROM_END
15231543
15241544ROM_START( m3toplin )
15251545   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00  )
r18359r18360
16951715GAME( 198?, m3tfair,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Tuppenny Fair (Mdm) (MPU3)",GAME_FLAGS )
16961716GAME( 198?, m3wacky,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Wacky Racer (Mdm) (MPU3)",GAME_FLAGS )
16971717
1718/* VFS */
1719GAME( 198?, m3oxo,      0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","Noughts 'n' Crosses (VFS) (MPU3)",GAME_FLAGS )
1720GAME( 198?, m3mremon,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","More Money (VFS) (MPU3)",GAME_FLAGS )
1721
16981722/* Others */
16991723
17001724GAME( 198?, m3minmax,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Associated Leisure","Mini Max (Associated Leisure) (MPU3)",GAME_FLAGS )
1701GAME( 198?, m3oxo,      0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","Noughts 'n' Crosses (VFS) (MPU3)",GAME_FLAGS )
1702
1725GAME( 198?, m3scoop,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Peter Simper","Scoop (Peter Simper, prototype?) (MPU3)",GAME_FLAGS )
1726GAME( 198?, m3tlktwn,   0,         mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "<unknown>","Talk of the Town (MPU3?)",GAME_FLAGS )
trunk/src/mame/drivers/jpmsru.c
r18359r18360
9090   ROM_LOAD( "ewn3.bin", 0x0800, 0x000400, CRC(bef3a938) SHA1(6a6844203c6361b65f5b07853d9dbe18a29ebc44) )
9191ROM_END
9292
93ROM_START( j_ewnd20 )
94   ROM_REGION( 0x10000, "maincpu", 0 )
95   ROM_LOAD( "ewn20.1", 0x0000, 0x000400, CRC(e90f686b) SHA1(aec88647c6289b01149b2816845a568481b1d37f) )
96   ROM_LOAD( "ewn20.2", 0x0400, 0x000400, CRC(c02a2427) SHA1(57144443a03db56a803b19e14e868b1ccd222f37) )
97   ROM_LOAD( "ewn20.3", 0x0800, 0x000400, CRC(a64e4df7) SHA1(1512c3c85e100dadd5ff67fed731feb69cc8575e) )
98ROM_END
9399
100ROM_START( j_ews )
101   ROM_REGION( 0x10000, "maincpu", 0 )
102   ROM_LOAD( "ews13c1.bin", 0x0000, 0x000400, CRC(2eec7c4d) SHA1(a1740d27e60192659392ba7602b9b62947c4f6db) )
103   ROM_LOAD( "ews13b2.bin", 0x0400, 0x000400, CRC(b84b7858) SHA1(90fd64881d52e1f4362ccbcb9434dbf7b25b97f9) )
104   ROM_LOAD( "ews13.3",     0x0800, 0x000400, CRC(4d8e197a) SHA1(1569327f0e4b5d7632658b69abf59076effb2600) )
105ROM_END
94106
107ROM_START( j_ews8a )
108   ROM_REGION( 0x10000, "maincpu", 0 )
109   ROM_LOAD( "ews8a.1", 0x0000, 0x000400, CRC(52e9709a) SHA1(0b437834f48ca7718e0b30303916eed00c7fb4c9) )
110   ROM_LOAD( "ews8a.2", 0x0400, 0x000400, CRC(ee4a4809) SHA1(292a12a5ddc5a22c8568016b34dfec7959f49027) )
111   ROM_LOAD( "ews8a.3", 0x0800, 0x000400, CRC(3700a7a3) SHA1(cf24a54e6aa3a3a86ff75f6e8bcb692d0cfd0e80) )
112ROM_END
113
95114ROM_START( j_luckac )
96115   ROM_REGION( 0x10000, "maincpu", 0 )
97116   ROM_LOAD( "la1.bin", 0x0000, 0x000400, CRC(21076280) SHA1(d5cf25d289f03c743f4428273ac002df3164c344) )
r18359r18360
118137   ROM_LOAD( "super2_3.bin", 0x0800, 0x000400, CRC(ddd998d3) SHA1(5964da70ae4c2f174dc3d1494fc67579c221a7b7) )
119138ROM_END
120139
140ROM_START( j_luck2 )
141   ROM_REGION( 0x10000, "maincpu", 0 )
142   ROM_LOAD( "lt_9.1", 0x0000, 0x000400, CRC(97236ce3) SHA1(f71861576f33daec3e1d371c670b535e6fd32b5e) )
143   ROM_LOAD( "lt_9.2", 0x0400, 0x000400, CRC(6e1cd083) SHA1(17edaa9880ae2a6d6d99e771e41b985527d5ed3b) )
144   ROM_LOAD( "lt_9.3", 0x0800, 0x000400, CRC(d6881e6f) SHA1(42a83f01d67a8f530ca2a10ffeff30237bdfba94) )
145ROM_END
121146
122147
123148GAME(198?, j_ewnud   ,0         ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "Barcrest?","Each Way Nudger (Barcrest?, set 1)",                  GAME_IS_SKELETON_MECHANICAL )
124149GAME(198?, j_ewnda   ,j_ewnud   ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "Barcrest?","Each Way Nudger (Barcrest?, set 2)",                  GAME_IS_SKELETON_MECHANICAL )
150GAME(198?, j_ewnd20   ,j_ewnud   ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "Barcrest?","Each Way Nudger (Barcrest?, set 3, version 20?)",         GAME_IS_SKELETON_MECHANICAL )
151GAME(198?, j_ews   ,0         ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "Barcrest?","Each Way Shifter (Barcrest?, set 1, version 16)",                  GAME_IS_SKELETON_MECHANICAL )
152GAME(198?, j_ews8a   ,j_ews      ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "Barcrest?","Each Way Shifter (Barcrest?, set 2, version 8a)",                  GAME_IS_SKELETON_MECHANICAL )
153
125154GAME(198?, j_luckac   ,0         ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "<unknown>","Lucky Aces (Unk)",                  GAME_IS_SKELETON_MECHANICAL )
126155GAME(198?, j_super2   ,0         ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0,   "JPM","Super 2 (JPM)",                  GAME_IS_SKELETON_MECHANICAL )
127156
157GAME(198?, j_luck2   ,0         ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0,   "<unknown>","Lucky Twos?",                  GAME_IS_SKELETON_MECHANICAL )
158
128159// this one is different again?
129160GAME(198?, j_plus2   ,0         ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0,   "JPM","Plus 2 (JPM)",                  GAME_IS_SKELETON_MECHANICAL )
trunk/src/mame/mame.lst
r18359r18360
1150311503
1150411504/* JPM */
1150511505
11506// JPM older?
11507j_ewnud      // Each Way Nudge
11508j_ewnda      // Each Way Nudger
11506// JPM SRU?
11507j_ewnud      // Each Way Nudger
11508j_ewnda   
11509j_ewnd20
11510j_ews      // Each Way Shifter
11511j_ews8a
1150911512j_luckac   // Lucky Aces
1151011513j_super2   // Super 2
1151111514j_plus2      // Plus 2
11515j_luck2      // Lucky Twos
1151211516
11513
1151411517// JPM System 80
1151511518j80bac      // Bank A Coin (JPM)
1151611519j80bounc   // Bouncer (JPM)
r18359r18360
1891018913m3tfair      // Tuppenny Fair (Mdm)
1891118914m3wacky      // Wacky Racer (Mdm)
1891218915
18916/* VFS */
18917m3oxo      // Noughts 'n' Crosses (VFS)
18918m3mremon   // More Money (VFS)
18919
1891318920/* Others */
1891418921
1891518922m3minmax   // Mini Max (Associated Leisure)
18916m3oxo      // Noughts 'n' Crosses (VFS)
18923m3scoop      // Scoop (Peter Simper, prototype?)
18924m3tlktwn   // Talk of The Town (Unknown)
1891718925
1891818926// MPU4
1891918927

Previous 199869 Revisions Next


© 1997-2024 The MAME Team