Previous 199869 Revisions Next

r31816 Thursday 28th August, 2014 at 14:32:58 UTC by Robbbert
taito.c : added ay sound, snake sounds better now.
[src/mame/drivers]taito.c

trunk/src/mame/drivers/taito.c
r31815r31816
1313
1414  Need schematics to do this properly.
1515
16Status of each game:
17- shock, obaoba, drakor, meteort, sureshop, cosmic, vortexp, stest, rally:
18    Works, with various quality of sounds
19- sharkt, snake:
20    As above, but outhole can randomly stop working
21- lunelle:
22    Works, but play can be interrupted by a large flashing '14'
23- ladylukt, vegast, titan, gork:
24    Works, no sound
25- gemini2k, zarza, cavnegro, hawkman, mrblack, sshuttle, fireactd:
26    Can insert a coin but cannot start a game
27- fireact:
28    Cannot insert a coin
29- mrblkz80:
30    Different hardware, not emulated
1631
32
1733ToDO:
1834- Inputs
1935- Outputs
2036- Sound (need a schematic)
2137- Display flickers ingame
22- Votrax makes continual rattling noise
38- Votrax makes continual rattling noise and nothing else
2339- Some games produce sound, but silence or random sounds often occur, or it just
2440  cuts out for a while.
2541
2642*****************************************************************************************/
2743
28#include "emu.h"
44#include "machine/genpin.h"
2945#include "cpu/i8085/i8085.h"
3046#include "cpu/m6800/m6800.h"
3147#include "machine/6821pia.h"
r31815r31816
3450#include "sound/dac.h"
3551#include "taito.lh"
3652
37class taito_state : public driver_device
53class taito_state : public genpin_class
3854{
3955public:
4056   taito_state(const machine_config &mconfig, device_type type, const char *tag)
41      : driver_device(mconfig, type, tag)
57      : genpin_class(mconfig, type, tag)
4258      , m_maincpu(*this, "maincpu")
4359      , m_cpu2(*this, "audiocpu")
4460      , m_pia(*this, "pia")
r31815r31816
108124   AM_RANGE(0x2000, 0x3fff) AM_ROM AM_REGION("cpu2", 0x2000)
109125ADDRESS_MAP_END
110126
111static ADDRESS_MAP_START( taito_sub_map3, AS_PROGRAM, 8, taito_state )
127static ADDRESS_MAP_START( taito_sub_map5, AS_PROGRAM, 8, taito_state )
112128   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
113129   AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
114130   AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia", pia6821_device, read, write)
115   AM_RANGE(0x5000, 0x7fff) AM_ROM AM_REGION("cpu2", 0x5000)
131   AM_RANGE(0x1000, 0x1000) AM_DEVWRITE("aysnd_0", ay8910_device, address_w)
132   AM_RANGE(0x1003, 0x1003) AM_DEVWRITE("aysnd_0", ay8910_device, address_w)
133   AM_RANGE(0x1007, 0x1007) AM_DEVREAD("aysnd_0", ay8910_device, data_r)
134   AM_RANGE(0x100c, 0x100c) AM_DEVWRITE("aysnd_1", ay8910_device, address_w)
135   AM_RANGE(0x100a, 0x100a) AM_DEVWRITE("aysnd_0", ay8910_device, data_w)
136   AM_RANGE(0x100b, 0x100b) AM_DEVWRITE("aysnd_0", ay8910_device, data_w)
137   AM_RANGE(0x100d, 0x100d) AM_DEVREAD("aysnd_1", ay8910_device, data_r)
138   AM_RANGE(0x100e, 0x100e) AM_DEVWRITE("aysnd_1", ay8910_device, data_w)
139   AM_RANGE(0x2000, 0x7fff) AM_ROM AM_REGION("cpu2", 0x2000)
116140ADDRESS_MAP_END
117141
118142static ADDRESS_MAP_START( shock_map, AS_PROGRAM, 8, taito_state )
r31815r31816
306330   MCFG_DEFAULT_LAYOUT(layout_taito)
307331
308332   /* Sound */
309   MCFG_SPEAKER_STANDARD_MONO("mono")
333   MCFG_FRAGMENT_ADD( genpin_audio )
334
335   MCFG_SPEAKER_STANDARD_MONO("dacsnd")
310336   MCFG_DAC_ADD("dac")
311   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.95)
337   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "dacsnd", 0.95)
312338
313339   MCFG_DEVICE_ADD("pia", PIA6821, 0)
314340   //MCFG_PIA_READPA_HANDLER(READ8(taito_state, pia_pa_r))
r31815r31816
323349   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", taito_state, timer_a, attotime::from_hz(200))
324350MACHINE_CONFIG_END
325351
326static MACHINE_CONFIG_DERIVED( taito2, taito )
327   MCFG_CPU_MODIFY( "audiocpu" )
328   MCFG_CPU_PROGRAM_MAP(taito_sub_map2)
329MACHINE_CONFIG_END
330
331static MACHINE_CONFIG_DERIVED( taito3, taito )
332   MCFG_CPU_MODIFY( "audiocpu" )
333   MCFG_CPU_PROGRAM_MAP(taito_sub_map3)
334MACHINE_CONFIG_END
335
336352static MACHINE_CONFIG_DERIVED( shock, taito )
337353   MCFG_CPU_MODIFY( "maincpu" )
338354   MCFG_CPU_PROGRAM_MAP(shock_map)
r31815r31816
340356   MCFG_CPU_PROGRAM_MAP(shock_sub_map)
341357MACHINE_CONFIG_END
342358
359static MACHINE_CONFIG_DERIVED( taito2, taito )
360   MCFG_CPU_MODIFY( "audiocpu" )
361   MCFG_CPU_PROGRAM_MAP(taito_sub_map2)
362MACHINE_CONFIG_END
363
343364// add vox
344365static MACHINE_CONFIG_DERIVED( taito4, taito )
366   MCFG_SPEAKER_STANDARD_MONO("voxsnd")
345367   MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) // guess
346368   MCFG_VOTRAX_SC01_REQUEST_CB(WRITELINE(taito_state, votrax_request))
347   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) // todo: fix - it makes noise continuously
369   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "voxsnd", 0.15) // todo: fix - it makes noise continuously
348370
349371   MCFG_DEVICE_REMOVE("pia")
350372   MCFG_DEVICE_ADD("pia", PIA6821, 0)
r31815r31816
358380   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("audiocpu", m6802_cpu_device, irq_line))
359381MACHINE_CONFIG_END
360382
383static MACHINE_CONFIG_FRAGMENT( taito_ay_audio )
384   MCFG_CPU_MODIFY( "audiocpu" )
385   MCFG_CPU_PROGRAM_MAP(taito_sub_map5)
361386
387   MCFG_SPEAKER_STANDARD_MONO("aysnd")
388   MCFG_SOUND_ADD("aysnd_0", AY8910, XTAL_3_579545MHz/2) /* guess */
389   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "aysnd", 0.8)
390   MCFG_SOUND_ADD("aysnd_1", AY8910, XTAL_3_579545MHz/2) /* guess */
391   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "aysnd", 0.8)
392MACHINE_CONFIG_END
362393
394// add ay
395static MACHINE_CONFIG_DERIVED( taito5, taito )
396   MCFG_FRAGMENT_ADD( taito_ay_audio )
397MACHINE_CONFIG_END
363398
399// add vox and ay
400static MACHINE_CONFIG_DERIVED( taito6, taito4 )
401   MCFG_FRAGMENT_ADD( taito_ay_audio )
402MACHINE_CONFIG_END
364403
404
405
406
365407/*--------------------------------
366408/ Apache
367409/-------------------------------*/
r31815r31816
510552   ROM_LOAD( "gork3.bin", 0x1000, 0x0800, CRC(0ea1a2dc) SHA1(3ab58bc25a4512aae5c16f497bddf713413c02fe))
511553   ROM_LOAD( "gork4.bin", 0x1800, 0x0800, CRC(0e6260fb) SHA1(b2f7190991d63701210a25a3970293b8f4c34022))
512554
513   ROM_REGION(0x4000, "cpu2", 0)
555   ROM_REGION(0x8000, "cpu2", 0)
514556   ROM_LOAD("gork_s1.bin", 0x2000, 0x1000, CRC(6611a4cb) SHA1(3ab840b162f9bfe2aebe1d3afeb1fddaf849d9c5))
515557   ROM_LOAD("gork_s2.bin", 0x3000, 0x1000, CRC(440739cb) SHA1(6172bf000f854ccf5c24c7700a0ad208596d24f8))
558   ROM_RELOAD( 0x7000, 0x1000)
516559ROM_END
517560
518561/*--------------------------------
r31815r31816
719762   ROM_LOAD( "snake3.bin", 0x1000, 0x0800, CRC(6f054bc0) SHA1(08ab82131888756e8178b2fe2bbc24fc4f494ef2))
720763   ROM_LOAD( "snake4.bin", 0x1800, 0x0800, CRC(ed231064) SHA1(42410dbbef36dea9d0163c65406bc86b35bb0bd7))
721764
722   ROM_REGION(0x4000, "cpu2", 0)
765   ROM_REGION(0x8000, "cpu2", 0)
723766   ROM_LOAD("snake_s1.bin", 0x2000, 0x1000, CRC(f7c1623c) SHA1(77e79ccc4b074b715008de37332baf76791d471e))
724767   ROM_LOAD("snake_s2.bin", 0x3000, 0x1000, CRC(18316d73) SHA1(422a093ff245f0c8f710aeba91acd59666e2398b))
768   ROM_RELOAD( 0x7000, 0x1000)
725769ROM_END
726770
727771/*--------------------------------
r31815r31816
845889   ROM_LOAD( "voley3.bin", 0x1000, 0x0800, NO_DUMP)
846890   ROM_LOAD( "voley4.bin", 0x1800, 0x0800, NO_DUMP)
847891
848   ROM_REGION(0x4000, "cpu2", 0)
892   ROM_REGION(0x8000, "cpu2", 0)
849893   ROM_LOAD("voley_s1.bin", 0x2000, 0x1000, CRC(9c825666) SHA1(330ecd9caccb8a1555c5e7302095ae25558c020e))
850894   ROM_LOAD("voley_s2.bin", 0x3000, 0x1000, CRC(79a8228c) SHA1(e71d9347a8fc230c70703164ae0e4d44423bbb5d))
895   ROM_RELOAD( 0x7000, 0x1000)
851896ROM_END
852897
853898/*--------------------------------
r31815r31816
921966ROM_END
922967
923968// no sound
924GAME(198?,  taitest,    0,          taito,  taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Taito Test Fixture", GAME_MECHANICAL | GAME_NO_SOUND_HW )
969GAME(198?,  taitest,    0,          taito,  taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Taito Test Fixture", GAME_MECHANICAL )
925970
926971// dac (sintetizador)
927972GAME(1979,  shock,      0,          shock,  taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Shock", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
r31815r31816
954999GAME(1982,  hawkman1,   hawkman,    taito4, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Hawkman (set 2)", GAME_IS_SKELETON_MECHANICAL)
9551000
9561001// dac and ay
957GAME(1982,  snake,      0,          taito2, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Snake Machine", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
958GAME(198?,  voleybal,   0,          taito2, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Voley Ball",  GAME_IS_SKELETON_MECHANICAL)
959GAME(1984,  mrblack,    0,          taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Mr. Black (set 1)", GAME_IS_SKELETON_MECHANICAL)
960GAME(1985,  mrblack1,   mrblack,    taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Mr. Black (set 2)", GAME_IS_SKELETON_MECHANICAL)
961GAME(1985,  sshuttle,   0,          taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Space Shuttle (Taito) (set 1)", GAME_IS_SKELETON_MECHANICAL)
962GAME(1985,  sshuttle1,  sshuttle,   taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Space Shuttle (Taito) (set 2)", GAME_IS_SKELETON_MECHANICAL)
963GAME(198?,  polar,      0,          taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Polar Explorer", GAME_IS_SKELETON_MECHANICAL)
1002GAME(1982,  snake,      0,          taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Snake Machine", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
1003GAME(198?,  voleybal,   0,          taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Voley Ball",  GAME_IS_SKELETON_MECHANICAL)
1004GAME(1984,  mrblack,    0,          taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Mr. Black (set 1)", GAME_IS_SKELETON_MECHANICAL)
1005GAME(1985,  mrblack1,   mrblack,    taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Mr. Black (set 2)", GAME_IS_SKELETON_MECHANICAL)
1006GAME(1985,  sshuttle,   0,          taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Space Shuttle (Taito) (set 1)", GAME_IS_SKELETON_MECHANICAL)
1007GAME(1985,  sshuttle1,  sshuttle,   taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Space Shuttle (Taito) (set 2)", GAME_IS_SKELETON_MECHANICAL)
1008GAME(198?,  polar,      0,          taito5, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Polar Explorer", GAME_IS_SKELETON_MECHANICAL)
9641009
9651010// dac, vox and ay
966GAME(1982,  gork,       0,          taito2, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Gork", GAME_MECHANICAL | GAME_NO_SOUND )
967GAME(198?,  fireactd,   0,          taito3, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Fire Action Deluxe", GAME_IS_SKELETON_MECHANICAL)
1011GAME(1982,  gork,       0,          taito6, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Gork", GAME_MECHANICAL | GAME_NO_SOUND )
1012GAME(198?,  fireactd,   0,          taito6, taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Fire Action Deluxe", GAME_IS_SKELETON_MECHANICAL)
9681013
9691014// different hardware
9701015GAME(198?,  mrblkz80,   mrblack,    taito,  taito, taito_state, taito,  ROT0,   "Taito do Brasil",  "Mr. Black (Z-80 CPU)", GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team