summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/arcade.flt17
-rw-r--r--src/mame/audio/acan.cpp2
-rw-r--r--src/mame/audio/acan.h2
-rw-r--r--src/mame/audio/alesis.cpp2
-rw-r--r--src/mame/audio/cage.cpp2
-rw-r--r--src/mame/audio/cmi01a.cpp2
-rw-r--r--src/mame/audio/cmi01a.h2
-rw-r--r--src/mame/audio/csd.cpp2
-rw-r--r--src/mame/audio/csd.h2
-rw-r--r--src/mame/audio/dcs.cpp6
-rw-r--r--src/mame/audio/efo_zsu.cpp2
-rw-r--r--src/mame/audio/flower.cpp167
-rw-r--r--src/mame/audio/flower.h50
-rw-r--r--src/mame/audio/geebee.cpp2
-rw-r--r--src/mame/audio/geebee.h2
-rw-r--r--src/mame/audio/gottlieb.cpp2
-rw-r--r--src/mame/audio/gottlieb.h2
-rw-r--r--src/mame/audio/laserbat.cpp2
-rw-r--r--src/mame/audio/leland.cpp2
-rw-r--r--src/mame/audio/leland.h2
-rw-r--r--src/mame/audio/lynx.cpp527
-rw-r--r--src/mame/audio/lynx.h85
-rw-r--r--src/mame/audio/midway.cpp6
-rw-r--r--src/mame/audio/midway.h6
-rw-r--r--src/mame/audio/mw8080bw.cpp2
-rw-r--r--src/mame/audio/namco52.cpp17
-rw-r--r--src/mame/audio/namco52.h4
-rw-r--r--src/mame/audio/namco54.cpp17
-rw-r--r--src/mame/audio/namco54.h5
-rw-r--r--src/mame/audio/nichisnd.cpp11
-rw-r--r--src/mame/audio/nichisnd.h1
-rw-r--r--src/mame/audio/nl_segaspeech.h2
-rw-r--r--src/mame/audio/pinsnd88.cpp2
-rw-r--r--src/mame/audio/pinsnd88.h2
-rw-r--r--src/mame/audio/rax.cpp8
-rw-r--r--src/mame/audio/segag80.cpp6
-rw-r--r--src/mame/audio/segaspeech.cpp3
-rw-r--r--src/mame/audio/t5182.cpp4
-rw-r--r--src/mame/audio/t5182.h2
-rw-r--r--src/mame/audio/tvc.cpp2
-rw-r--r--src/mame/audio/tvc.h2
-rw-r--r--src/mame/audio/vboy.cpp6
-rw-r--r--src/mame/audio/vboy.h4
-rw-r--r--src/mame/audio/warpwarp.cpp2
-rw-r--r--src/mame/audio/warpwarp.h2
-rw-r--r--src/mame/audio/williams.cpp367
-rw-r--r--src/mame/audio/williams.h101
-rw-r--r--src/mame/audio/wiping.cpp20
-rw-r--r--src/mame/audio/wiping.h14
-rw-r--r--src/mame/drivers/2mindril.cpp4
-rw-r--r--src/mame/drivers/4enraya.cpp49
-rw-r--r--src/mame/drivers/a1supply.cpp2
-rw-r--r--src/mame/drivers/a2600.cpp293
-rw-r--r--src/mame/drivers/a5105.cpp8
-rw-r--r--src/mame/drivers/a7150.cpp2
-rw-r--r--src/mame/drivers/a7800.cpp4
-rw-r--r--src/mame/drivers/aa310.cpp2021
-rw-r--r--src/mame/drivers/abc1600.cpp21
-rw-r--r--src/mame/drivers/abc80.cpp4
-rw-r--r--src/mame/drivers/abc80x.cpp1
-rw-r--r--src/mame/drivers/accomm.cpp4
-rw-r--r--src/mame/drivers/acefruit.cpp4
-rw-r--r--src/mame/drivers/aces1.cpp4
-rw-r--r--src/mame/drivers/aci_ggm.cpp4
-rw-r--r--src/mame/drivers/acrnsys.cpp61
-rw-r--r--src/mame/drivers/acrnsys1.cpp9
-rw-r--r--src/mame/drivers/actfancr.cpp329
-rw-r--r--src/mame/drivers/adam.cpp2
-rw-r--r--src/mame/drivers/adds2020.cpp144
-rw-r--r--src/mame/drivers/advision.cpp2
-rw-r--r--src/mame/drivers/aim65.cpp2
-rw-r--r--src/mame/drivers/airbase99.cpp95
-rw-r--r--src/mame/drivers/airraid.cpp145
-rw-r--r--src/mame/drivers/albazc.cpp4
-rw-r--r--src/mame/drivers/aleck64.cpp18
-rw-r--r--src/mame/drivers/alfaskop41xx.cpp4
-rw-r--r--src/mame/drivers/alien.cpp188
-rw-r--r--src/mame/drivers/allied.cpp112
-rw-r--r--src/mame/drivers/alpha68k_i.cpp13
-rw-r--r--src/mame/drivers/alpha68k_n.cpp100
-rw-r--r--src/mame/drivers/alphatpc16.cpp2
-rw-r--r--src/mame/drivers/alphatpx.cpp2
-rw-r--r--src/mame/drivers/alphatro.cpp22
-rw-r--r--src/mame/drivers/alto2.cpp4
-rw-r--r--src/mame/drivers/altos5.cpp10
-rw-r--r--src/mame/drivers/ampro.cpp3
-rw-r--r--src/mame/drivers/amspdwy.cpp244
-rw-r--r--src/mame/drivers/amstr_pc.cpp5
-rw-r--r--src/mame/drivers/amust.cpp20
-rw-r--r--src/mame/drivers/apc.cpp2
-rw-r--r--src/mame/drivers/apexc.cpp2
-rw-r--r--src/mame/drivers/apf.cpp18
-rw-r--r--src/mame/drivers/apogee.cpp1
-rw-r--r--src/mame/drivers/apple1.cpp2
-rw-r--r--src/mame/drivers/apple2.cpp237
-rw-r--r--src/mame/drivers/apple2e.cpp1119
-rw-r--r--src/mame/drivers/apple2gs.cpp966
-rw-r--r--src/mame/drivers/apple3.cpp25
-rw-r--r--src/mame/drivers/applix.cpp43
-rw-r--r--src/mame/drivers/apricot.cpp2
-rw-r--r--src/mame/drivers/apxen.cpp1
-rw-r--r--src/mame/drivers/aquarius.cpp2
-rw-r--r--src/mame/drivers/arcadia.cpp12
-rw-r--r--src/mame/drivers/argo.cpp12
-rw-r--r--src/mame/drivers/aristmk4.cpp4
-rw-r--r--src/mame/drivers/aristmk5.cpp2
-rw-r--r--src/mame/drivers/armedf.cpp40
-rw-r--r--src/mame/drivers/artmagic.cpp4
-rw-r--r--src/mame/drivers/asterix.cpp2
-rw-r--r--src/mame/drivers/astinvad.cpp8
-rw-r--r--src/mame/drivers/astrohome.cpp2
-rw-r--r--src/mame/drivers/at.cpp6
-rw-r--r--src/mame/drivers/atari400.cpp7
-rw-r--r--src/mame/drivers/atari_4x4.cpp120
-rw-r--r--src/mame/drivers/atari_s1.cpp491
-rw-r--r--src/mame/drivers/atari_s2.cpp318
-rw-r--r--src/mame/drivers/atarist.cpp8
-rw-r--r--src/mame/drivers/atetris.cpp333
-rw-r--r--src/mame/drivers/atlantis.cpp17
-rw-r--r--src/mame/drivers/atm.cpp18
-rw-r--r--src/mame/drivers/atom.cpp3
-rw-r--r--src/mame/drivers/attache.cpp2
-rw-r--r--src/mame/drivers/aussiebyte.cpp1
-rw-r--r--src/mame/drivers/ave_arb.cpp2
-rw-r--r--src/mame/drivers/avigo.cpp4
-rw-r--r--src/mame/drivers/aviion88k.cpp2
-rw-r--r--src/mame/drivers/b2m.cpp1
-rw-r--r--src/mame/drivers/babbage.cpp8
-rw-r--r--src/mame/drivers/badlands.cpp3
-rw-r--r--src/mame/drivers/balsente.cpp33
-rw-r--r--src/mame/drivers/bandai_design_master.cpp1
-rw-r--r--src/mame/drivers/barni.cpp30
-rw-r--r--src/mame/drivers/bartop52.cpp2
-rw-r--r--src/mame/drivers/basf7100.cpp1
-rw-r--r--src/mame/drivers/basic52.cpp2
-rw-r--r--src/mame/drivers/battlera.cpp162
-rw-r--r--src/mame/drivers/bbc.cpp2
-rw-r--r--src/mame/drivers/bbcbc.cpp6
-rw-r--r--src/mame/drivers/bcs3.cpp12
-rw-r--r--src/mame/drivers/beezer.cpp4
-rw-r--r--src/mame/drivers/besta.cpp164
-rw-r--r--src/mame/drivers/bfcobra.cpp2
-rw-r--r--src/mame/drivers/bigbord2.cpp8
-rw-r--r--src/mame/drivers/binbug.cpp4
-rw-r--r--src/mame/drivers/bk.cpp1
-rw-r--r--src/mame/drivers/blockade.cpp4
-rw-r--r--src/mame/drivers/bml3.cpp42
-rw-r--r--src/mame/drivers/boxer.cpp8
-rw-r--r--src/mame/drivers/br8641.cpp6
-rw-r--r--src/mame/drivers/btoads.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp2
-rw-r--r--src/mame/drivers/bw2.cpp2
-rw-r--r--src/mame/drivers/by6803.cpp349
-rw-r--r--src/mame/drivers/byvid.cpp350
-rw-r--r--src/mame/drivers/c128.cpp2
-rw-r--r--src/mame/drivers/c2color.cpp2
-rw-r--r--src/mame/drivers/c64.cpp2
-rw-r--r--src/mame/drivers/cabal.cpp8
-rw-r--r--src/mame/drivers/camplynx.cpp15
-rw-r--r--src/mame/drivers/capbowl.cpp4
-rw-r--r--src/mame/drivers/casloopy.cpp2
-rw-r--r--src/mame/drivers/cat.cpp6
-rw-r--r--src/mame/drivers/cave.cpp36
-rw-r--r--src/mame/drivers/cball.cpp6
-rw-r--r--src/mame/drivers/cbm2.cpp6
-rw-r--r--src/mame/drivers/cc40.cpp2
-rw-r--r--src/mame/drivers/cchasm.cpp4
-rw-r--r--src/mame/drivers/cclimber.cpp2
-rw-r--r--src/mame/drivers/ccs2810.cpp10
-rw-r--r--src/mame/drivers/cd2650.cpp8
-rw-r--r--src/mame/drivers/cdi.cpp289
-rw-r--r--src/mame/drivers/cgenie.cpp2
-rw-r--r--src/mame/drivers/channelf.cpp2
-rw-r--r--src/mame/drivers/chaos.cpp2
-rw-r--r--src/mame/drivers/chessmstdm.cpp2
-rw-r--r--src/mame/drivers/chexx.cpp4
-rw-r--r--src/mame/drivers/chicago.cpp2
-rw-r--r--src/mame/drivers/chihiro.cpp10
-rw-r--r--src/mame/drivers/cidelsa.cpp2
-rw-r--r--src/mame/drivers/cinemat.cpp39
-rw-r--r--src/mame/drivers/ckz80.cpp2
-rw-r--r--src/mame/drivers/clickstart.cpp6
-rw-r--r--src/mame/drivers/clshroad.cpp16
-rw-r--r--src/mame/drivers/cmi.cpp4
-rw-r--r--src/mame/drivers/cms.cpp1
-rw-r--r--src/mame/drivers/cobra.cpp8
-rw-r--r--src/mame/drivers/coco12.cpp45
-rw-r--r--src/mame/drivers/coco3.cpp13
-rw-r--r--src/mame/drivers/cointek.cpp31
-rw-r--r--src/mame/drivers/coleco.cpp2
-rw-r--r--src/mame/drivers/compc.cpp3
-rw-r--r--src/mame/drivers/compis.cpp1
-rw-r--r--src/mame/drivers/compucolor.cpp2
-rw-r--r--src/mame/drivers/compucranes.cpp103
-rw-r--r--src/mame/drivers/comquest.cpp48
-rw-r--r--src/mame/drivers/comx35.cpp3
-rw-r--r--src/mame/drivers/conchess.cpp1
-rw-r--r--src/mame/drivers/cop01.cpp8
-rw-r--r--src/mame/drivers/cortex.cpp6
-rw-r--r--src/mame/drivers/cosmicg.cpp6
-rw-r--r--src/mame/drivers/cps1.cpp31
-rw-r--r--src/mame/drivers/cps2.cpp41
-rw-r--r--src/mame/drivers/crei680.cpp2
-rw-r--r--src/mame/drivers/crshrace.cpp97
-rw-r--r--src/mame/drivers/crvision.cpp1
-rw-r--r--src/mame/drivers/ctk2000.cpp34
-rw-r--r--src/mame/drivers/ctk551.cpp74
-rw-r--r--src/mame/drivers/cv1k.cpp44
-rw-r--r--src/mame/drivers/cvicny.cpp4
-rw-r--r--src/mame/drivers/cyclemb.cpp8
-rw-r--r--src/mame/drivers/d6800.cpp9
-rw-r--r--src/mame/drivers/d6809.cpp2
-rw-r--r--src/mame/drivers/dai.cpp1
-rw-r--r--src/mame/drivers/datum.cpp4
-rw-r--r--src/mame/drivers/dc_atomiswave.cpp1516
-rw-r--r--src/mame/drivers/dccons.cpp314
-rw-r--r--src/mame/drivers/dcebridge.cpp4
-rw-r--r--src/mame/drivers/dct11em.cpp12
-rw-r--r--src/mame/drivers/ddenlovr.cpp46
-rw-r--r--src/mame/drivers/de_3.cpp17
-rw-r--r--src/mame/drivers/debut.cpp21
-rw-r--r--src/mame/drivers/dec0.cpp39
-rw-r--r--src/mame/drivers/dec8.cpp2
-rw-r--r--src/mame/drivers/dectalk.cpp6
-rw-r--r--src/mame/drivers/destroyr.cpp8
-rw-r--r--src/mame/drivers/dg680.cpp10
-rw-r--r--src/mame/drivers/dgn_beta.cpp1
-rw-r--r--src/mame/drivers/dietgo.cpp37
-rw-r--r--src/mame/drivers/digilog320.cpp421
-rw-r--r--src/mame/drivers/dim68k.cpp8
-rw-r--r--src/mame/drivers/dkong.cpp2
-rw-r--r--src/mame/drivers/dmainevent.cpp78
-rw-r--r--src/mame/drivers/dms86.cpp2
-rw-r--r--src/mame/drivers/dolphunk.cpp10
-rw-r--r--src/mame/drivers/dpb7000.cpp4
-rw-r--r--src/mame/drivers/dps1.cpp6
-rw-r--r--src/mame/drivers/dragon.cpp1
-rw-r--r--src/mame/drivers/dvk_kcgd.cpp260
-rw-r--r--src/mame/drivers/dvk_ksm.cpp4
-rw-r--r--src/mame/drivers/dynax.cpp72
-rw-r--r--src/mame/drivers/eacc.cpp8
-rw-r--r--src/mame/drivers/easy_karaoke.cpp2
-rw-r--r--src/mame/drivers/ec184x.cpp68
-rw-r--r--src/mame/drivers/einstein.cpp2
-rw-r--r--src/mame/drivers/elan_eu3a05.cpp1
-rw-r--r--src/mame/drivers/electron.cpp2
-rw-r--r--src/mame/drivers/elekscmp.cpp4
-rw-r--r--src/mame/drivers/elwro800.cpp3
-rw-r--r--src/mame/drivers/emma2.cpp4
-rw-r--r--src/mame/drivers/ep64.cpp2
-rw-r--r--src/mame/drivers/ertictac.cpp2
-rw-r--r--src/mame/drivers/esh.cpp2
-rw-r--r--src/mame/drivers/eti660.cpp19
-rw-r--r--src/mame/drivers/eurocom2.cpp5
-rw-r--r--src/mame/drivers/europc.cpp5
-rw-r--r--src/mame/drivers/evmbug.cpp8
-rw-r--r--src/mame/drivers/excali64.cpp13
-rw-r--r--src/mame/drivers/exelv.cpp2
-rw-r--r--src/mame/drivers/exidy.cpp60
-rw-r--r--src/mame/drivers/exorciser.cpp4
-rw-r--r--src/mame/drivers/expro02.cpp66
-rw-r--r--src/mame/drivers/f387x.cpp173
-rw-r--r--src/mame/drivers/falco500.cpp662
-rw-r--r--src/mame/drivers/falco5220.cpp238
-rw-r--r--src/mame/drivers/falcots28.cpp449
-rw-r--r--src/mame/drivers/falgas_m89.cpp166
-rw-r--r--src/mame/drivers/fanucspmg.cpp2
-rw-r--r--src/mame/drivers/fc100.cpp28
-rw-r--r--src/mame/drivers/fcrash.cpp2
-rw-r--r--src/mame/drivers/fgoal.cpp4
-rw-r--r--src/mame/drivers/fidel_as12.cpp2
-rw-r--r--src/mame/drivers/fidel_desdis.cpp14
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp2
-rw-r--r--src/mame/drivers/fidel_elite.cpp2
-rw-r--r--src/mame/drivers/fidel_msc.cpp2
-rw-r--r--src/mame/drivers/fidel_sc12.cpp2
-rw-r--r--src/mame/drivers/fidel_sc6.cpp2
-rw-r--r--src/mame/drivers/fidel_sc9.cpp2
-rw-r--r--src/mame/drivers/finalizr.cpp94
-rw-r--r--src/mame/drivers/flicker.cpp181
-rw-r--r--src/mame/drivers/flower.cpp249
-rw-r--r--src/mame/drivers/flyball.cpp8
-rw-r--r--src/mame/drivers/fm7.cpp2
-rw-r--r--src/mame/drivers/fmtowns.cpp9
-rw-r--r--src/mame/drivers/ft68m.cpp8
-rw-r--r--src/mame/drivers/funeball.cpp57
-rw-r--r--src/mame/drivers/fuukifg2.cpp2
-rw-r--r--src/mame/drivers/fuukifg3.cpp2
-rw-r--r--src/mame/drivers/g627.cpp54
-rw-r--r--src/mame/drivers/gaelco.cpp321
-rw-r--r--src/mame/drivers/gaelco2.cpp30
-rw-r--r--src/mame/drivers/galaga.cpp10
-rw-r--r--src/mame/drivers/galaxian.cpp88
-rw-r--r--src/mame/drivers/galaxy.cpp1
-rw-r--r--src/mame/drivers/galpani2.cpp44
-rw-r--r--src/mame/drivers/galspnbl.cpp11
-rw-r--r--src/mame/drivers/gamate.cpp2
-rw-r--r--src/mame/drivers/gamecom.cpp2
-rw-r--r--src/mame/drivers/gameking.cpp2
-rw-r--r--src/mame/drivers/gamepock.cpp2
-rw-r--r--src/mame/drivers/gaplus.cpp6
-rw-r--r--src/mame/drivers/gb.cpp262
-rw-r--r--src/mame/drivers/gba.cpp4
-rw-r--r--src/mame/drivers/gberet.cpp237
-rw-r--r--src/mame/drivers/generalplus_gpl16250_nand.cpp1
-rw-r--r--src/mame/drivers/generalplus_gpl16250_spi.cpp1
-rw-r--r--src/mame/drivers/generalplus_gpl16250_spi_direct.cpp111
-rw-r--r--src/mame/drivers/generalplus_gpl32612.cpp2
-rw-r--r--src/mame/drivers/generalplus_gpl_unknown.cpp75
-rw-r--r--src/mame/drivers/geneve.cpp12
-rw-r--r--src/mame/drivers/geniusiq.cpp2
-rw-r--r--src/mame/drivers/genpc.cpp2
-rw-r--r--src/mame/drivers/gigatron.cpp26
-rw-r--r--src/mame/drivers/gimix.cpp2
-rw-r--r--src/mame/drivers/gkigt.cpp18
-rw-r--r--src/mame/drivers/gmaster.cpp2
-rw-r--r--src/mame/drivers/go2000.cpp153
-rw-r--r--src/mame/drivers/goldnpkr.cpp59
-rw-r--r--src/mame/drivers/gottlieb.cpp10
-rw-r--r--src/mame/drivers/goupil.cpp4
-rw-r--r--src/mame/drivers/gp32.cpp26
-rw-r--r--src/mame/drivers/gp_1.cpp210
-rw-r--r--src/mame/drivers/gp_2.cpp406
-rw-r--r--src/mame/drivers/gpworld.cpp4
-rw-r--r--src/mame/drivers/gridcomp.cpp1
-rw-r--r--src/mame/drivers/gts1.cpp2
-rw-r--r--src/mame/drivers/gts3.cpp412
-rw-r--r--src/mame/drivers/gts3a.cpp511
-rw-r--r--src/mame/drivers/gts80.cpp54
-rw-r--r--src/mame/drivers/gts80a.cpp58
-rw-r--r--src/mame/drivers/gts80b.cpp83
-rw-r--r--src/mame/drivers/guab.cpp2
-rw-r--r--src/mame/drivers/gumrally.cpp144
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/gundealr.cpp2
-rw-r--r--src/mame/drivers/gunpey.cpp2
-rw-r--r--src/mame/drivers/h01x.cpp2
-rw-r--r--src/mame/drivers/h19.cpp4
-rw-r--r--src/mame/drivers/h8.cpp14
-rw-r--r--src/mame/drivers/hankin.cpp276
-rw-r--r--src/mame/drivers/hazeltin.cpp4
-rw-r--r--src/mame/drivers/hds200.cpp394
-rw-r--r--src/mame/drivers/hec2hrp.cpp1
-rw-r--r--src/mame/drivers/hh_cop400.cpp273
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp5
-rw-r--r--src/mame/drivers/hh_melps4.cpp13
-rw-r--r--src/mame/drivers/hh_sm510.cpp316
-rw-r--r--src/mame/drivers/hh_tms1k.cpp5
-rw-r--r--src/mame/drivers/hh_ucom4.cpp6
-rw-r--r--src/mame/drivers/highvdeo.cpp17
-rw-r--r--src/mame/drivers/hikaru.cpp6
-rw-r--r--src/mame/drivers/homelab.cpp8
-rw-r--r--src/mame/drivers/horizon.cpp2
-rw-r--r--src/mame/drivers/houseball.cpp96
-rw-r--r--src/mame/drivers/hp80.cpp2
-rw-r--r--src/mame/drivers/hp9825.cpp64
-rw-r--r--src/mame/drivers/hp9845.cpp2
-rw-r--r--src/mame/drivers/hp_ipc.cpp5
-rw-r--r--src/mame/drivers/hpz80unk.cpp4
-rw-r--r--src/mame/drivers/ht68k.cpp2
-rw-r--r--src/mame/drivers/hx20.cpp2
-rw-r--r--src/mame/drivers/i7000.cpp2
-rw-r--r--src/mame/drivers/ibm6580.cpp316
-rw-r--r--src/mame/drivers/ibmpc.cpp4
-rw-r--r--src/mame/drivers/ibmpcjr.cpp6
-rw-r--r--src/mame/drivers/icebox.cpp2
-rw-r--r--src/mame/drivers/ichiban.cpp190
-rw-r--r--src/mame/drivers/idsa.cpp117
-rw-r--r--src/mame/drivers/igs011.cpp91
-rw-r--r--src/mame/drivers/igs017.cpp20
-rw-r--r--src/mame/drivers/igs_m027.cpp4
-rw-r--r--src/mame/drivers/igs_m036.cpp23
-rw-r--r--src/mame/drivers/igspoker.cpp110
-rw-r--r--src/mame/drivers/im01.cpp429
-rw-r--r--src/mame/drivers/imolagp.cpp23
-rw-r--r--src/mame/drivers/imsai.cpp2
-rw-r--r--src/mame/drivers/inder.cpp1727
-rw-r--r--src/mame/drivers/inderp.cpp15
-rw-r--r--src/mame/drivers/innotv_innotabmax.cpp2
-rw-r--r--src/mame/drivers/instruct.cpp10
-rw-r--r--src/mame/drivers/intellect02.cpp27
-rw-r--r--src/mame/drivers/intv.cpp10
-rw-r--r--src/mame/drivers/ipds.cpp2
-rw-r--r--src/mame/drivers/iphone2g.cpp8
-rw-r--r--src/mame/drivers/iq151.cpp2
-rw-r--r--src/mame/drivers/iqunlim.cpp1
-rw-r--r--src/mame/drivers/isbc.cpp10
-rw-r--r--src/mame/drivers/iteagle.cpp18
-rw-r--r--src/mame/drivers/itech32.cpp47
-rw-r--r--src/mame/drivers/itech8.cpp10
-rw-r--r--src/mame/drivers/itt3030.cpp1
-rw-r--r--src/mame/drivers/jack.cpp2
-rw-r--r--src/mame/drivers/jackal.cpp4
-rw-r--r--src/mame/drivers/jackie.cpp1
-rw-r--r--src/mame/drivers/jaguar.cpp26
-rw-r--r--src/mame/drivers/jeutel.cpp465
-rw-r--r--src/mame/drivers/jonos.cpp8
-rw-r--r--src/mame/drivers/jp.cpp279
-rw-r--r--src/mame/drivers/jpmimpct.cpp8
-rw-r--r--src/mame/drivers/jpmimpctsw.cpp4
-rw-r--r--src/mame/drivers/jr100.cpp8
-rw-r--r--src/mame/drivers/jtc.cpp4
-rw-r--r--src/mame/drivers/juicebox.cpp2
-rw-r--r--src/mame/drivers/juku.cpp1
-rw-r--r--src/mame/drivers/junior.cpp6
-rw-r--r--src/mame/drivers/junior80.cpp2
-rw-r--r--src/mame/drivers/jupace.cpp2
-rw-r--r--src/mame/drivers/jvh.cpp100
-rw-r--r--src/mame/drivers/k8915.cpp2
-rw-r--r--src/mame/drivers/kawai_acr20.cpp60
-rw-r--r--src/mame/drivers/kaypro.cpp2
-rw-r--r--src/mame/drivers/kc.cpp2
-rw-r--r--src/mame/drivers/kdt6.cpp2
-rw-r--r--src/mame/drivers/kim1.cpp1
-rw-r--r--src/mame/drivers/konamigv.cpp26
-rw-r--r--src/mame/drivers/konamigx.cpp2
-rw-r--r--src/mame/drivers/ksys573.cpp162
-rw-r--r--src/mame/drivers/kyocera.cpp1
-rw-r--r--src/mame/drivers/lancelot.cpp218
-rw-r--r--src/mame/drivers/laserbas.cpp173
-rw-r--r--src/mame/drivers/laserbat.cpp4
-rw-r--r--src/mame/drivers/lckydraw.cpp27
-rw-r--r--src/mame/drivers/ld50.cpp322
-rw-r--r--src/mame/drivers/ldplayer.cpp10
-rw-r--r--src/mame/drivers/leapfrog_iquest.cpp2
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp2
-rw-r--r--src/mame/drivers/leapfrog_leapster_explorer.cpp2
-rw-r--r--src/mame/drivers/leapster.cpp2
-rw-r--r--src/mame/drivers/lethal.cpp2
-rw-r--r--src/mame/drivers/lindbergh.cpp50
-rw-r--r--src/mame/drivers/lisa.cpp2
-rw-r--r--src/mame/drivers/lk3000.cpp1
-rw-r--r--src/mame/drivers/llc1.cpp4
-rw-r--r--src/mame/drivers/lnw80.cpp42
-rw-r--r--src/mame/drivers/lola8a.cpp2
-rw-r--r--src/mame/drivers/looping.cpp103
-rw-r--r--src/mame/drivers/ltd.cpp877
-rw-r--r--src/mame/drivers/lviv.cpp1
-rw-r--r--src/mame/drivers/lwriter.cpp195
-rw-r--r--src/mame/drivers/lynx.cpp80
-rw-r--r--src/mame/drivers/m20.cpp2
-rw-r--r--src/mame/drivers/m24.cpp2
-rw-r--r--src/mame/drivers/m3.cpp10
-rw-r--r--src/mame/drivers/m5.cpp2
-rw-r--r--src/mame/drivers/m62_bkungfu.cpp365
-rw-r--r--src/mame/drivers/m68705prg.cpp6
-rw-r--r--src/mame/drivers/m72.cpp8
-rw-r--r--src/mame/drivers/m90.cpp11
-rw-r--r--src/mame/drivers/m92.cpp68
-rw-r--r--src/mame/drivers/mac.cpp2
-rw-r--r--src/mame/drivers/macp.cpp23
-rw-r--r--src/mame/drivers/macpdm.cpp2
-rw-r--r--src/mame/drivers/macprtb.cpp2
-rw-r--r--src/mame/drivers/macpwrbk030.cpp2
-rw-r--r--src/mame/drivers/macquadra700.cpp2
-rw-r--r--src/mame/drivers/macrossp.cpp591
-rw-r--r--src/mame/drivers/magicard.cpp188
-rw-r--r--src/mame/drivers/magiceyes_pollux_vr3520f.cpp2
-rw-r--r--src/mame/drivers/mattelchess.cpp19
-rw-r--r--src/mame/drivers/max80.cpp4
-rw-r--r--src/mame/drivers/maxaflex.cpp2
-rw-r--r--src/mame/drivers/maygay1bsw.cpp36
-rw-r--r--src/mame/drivers/maygayep.cpp16
-rw-r--r--src/mame/drivers/mbc200.cpp6
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/mbee.cpp5
-rw-r--r--src/mame/drivers/mc10.cpp2
-rw-r--r--src/mame/drivers/mc1000.cpp2
-rw-r--r--src/mame/drivers/mc1502.cpp2
-rw-r--r--src/mame/drivers/mc8020.cpp4
-rw-r--r--src/mame/drivers/mccpm.cpp2
-rw-r--r--src/mame/drivers/mdisk.cpp2
-rw-r--r--src/mame/drivers/mediagx.cpp3
-rw-r--r--src/mame/drivers/megadriv.cpp18
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp74
-rw-r--r--src/mame/drivers/megadriv_rad.cpp4
-rw-r--r--src/mame/drivers/megasys1.cpp249
-rw-r--r--src/mame/drivers/megatech.cpp23
-rw-r--r--src/mame/drivers/mekd1.cpp4
-rw-r--r--src/mame/drivers/mekd2.cpp12
-rw-r--r--src/mame/drivers/mekd5.cpp4
-rw-r--r--src/mame/drivers/mephisto_mm1.cpp2
-rw-r--r--src/mame/drivers/mephisto_mm2.cpp2
-rw-r--r--src/mame/drivers/mephisto_smondial.cpp2
-rw-r--r--src/mame/drivers/mephistp.cpp72
-rw-r--r--src/mame/drivers/meritum.cpp1
-rw-r--r--src/mame/drivers/mes.cpp4
-rw-r--r--src/mame/drivers/metro.cpp2
-rw-r--r--src/mame/drivers/mfabfz.cpp2
-rw-r--r--src/mame/drivers/mgolf.cpp6
-rw-r--r--src/mame/drivers/micral.cpp6
-rw-r--r--src/mame/drivers/microdar.cpp55
-rw-r--r--src/mame/drivers/microdec.cpp6
-rw-r--r--src/mame/drivers/microkit.cpp11
-rw-r--r--src/mame/drivers/micropin.cpp495
-rw-r--r--src/mame/drivers/microtan.cpp2
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/midvunit.cpp47
-rw-r--r--src/mame/drivers/mikro80.cpp1
-rw-r--r--src/mame/drivers/mikromik.cpp2
-rw-r--r--src/mame/drivers/mikrosha.cpp1
-rw-r--r--src/mame/drivers/mindset.cpp1
-rw-r--r--src/mame/drivers/miniforce.cpp2
-rw-r--r--src/mame/drivers/mjkjidai.cpp59
-rw-r--r--src/mame/drivers/mjsister.cpp6
-rw-r--r--src/mame/drivers/mkit09.cpp2
-rw-r--r--src/mame/drivers/mlanding.cpp4
-rw-r--r--src/mame/drivers/mmd1.cpp6
-rw-r--r--src/mame/drivers/mmd2.cpp4
-rw-r--r--src/mame/drivers/model2.cpp114
-rw-r--r--src/mame/drivers/model3.cpp11
-rw-r--r--src/mame/drivers/modellot.cpp2
-rw-r--r--src/mame/drivers/monon_color.cpp1
-rw-r--r--src/mame/drivers/moo.cpp2
-rw-r--r--src/mame/drivers/mpu12wbk.cpp262
-rw-r--r--src/mame/drivers/mpz80.cpp2
-rw-r--r--src/mame/drivers/mrdo.cpp26
-rw-r--r--src/mame/drivers/mrgame.cpp448
-rw-r--r--src/mame/drivers/ms32.cpp1
-rw-r--r--src/mame/drivers/ms9540.cpp6
-rw-r--r--src/mame/drivers/msx.cpp2
-rw-r--r--src/mame/drivers/mtouchxl.cpp2
-rw-r--r--src/mame/drivers/mtx.cpp2
-rw-r--r--src/mame/drivers/multfish.cpp2428
-rw-r--r--src/mame/drivers/myb3k.cpp6
-rw-r--r--src/mame/drivers/mycom.cpp10
-rw-r--r--src/mame/drivers/mystston.cpp145
-rw-r--r--src/mame/drivers/mystwarr.cpp2
-rw-r--r--src/mame/drivers/myvision.cpp2
-rw-r--r--src/mame/drivers/mz2000.cpp2
-rw-r--r--src/mame/drivers/mz2500.cpp6
-rw-r--r--src/mame/drivers/mz700.cpp2
-rw-r--r--src/mame/drivers/namcofl.cpp68
-rw-r--r--src/mame/drivers/namcona1.cpp2
-rw-r--r--src/mame/drivers/namconb1.cpp144
-rw-r--r--src/mame/drivers/namcops2.cpp14
-rw-r--r--src/mame/drivers/namcos10.cpp33
-rw-r--r--src/mame/drivers/namcos12.cpp36
-rw-r--r--src/mame/drivers/namcos2.cpp54
-rw-r--r--src/mame/drivers/namcos22.cpp60
-rw-r--r--src/mame/drivers/namcos23.cpp55
-rw-r--r--src/mame/drivers/naomi.cpp2369
-rw-r--r--src/mame/drivers/nascom1.cpp26
-rw-r--r--src/mame/drivers/nc.cpp22
-rw-r--r--src/mame/drivers/nds.cpp2
-rw-r--r--src/mame/drivers/nemesis.cpp74
-rw-r--r--src/mame/drivers/neogeo.cpp2
-rw-r--r--src/mame/drivers/neomania.cpp100
-rw-r--r--src/mame/drivers/nes.cpp10
-rw-r--r--src/mame/drivers/nes_vt369_vtunknown.cpp9
-rw-r--r--src/mame/drivers/newbrain.cpp2
-rw-r--r--src/mame/drivers/news_38xx.cpp4
-rw-r--r--src/mame/drivers/news_68k.cpp4
-rw-r--r--src/mame/drivers/news_r3k.cpp4
-rw-r--r--src/mame/drivers/next.cpp2
-rw-r--r--src/mame/drivers/nexus3d.cpp2
-rw-r--r--src/mame/drivers/nforcepc.cpp82
-rw-r--r--src/mame/drivers/ngp.cpp2
-rw-r--r--src/mame/drivers/nightgal.cpp4
-rw-r--r--src/mame/drivers/nightmare.cpp4
-rw-r--r--src/mame/drivers/niyanpai.cpp10
-rw-r--r--src/mame/drivers/nmk16.cpp9
-rw-r--r--src/mame/drivers/norautp.cpp14
-rw-r--r--src/mame/drivers/notetaker.cpp6
-rw-r--r--src/mame/drivers/novag_const.cpp2
-rw-r--r--src/mame/drivers/novag_diablo.cpp10
-rw-r--r--src/mame/drivers/ns32kdb.cpp17
-rw-r--r--src/mame/drivers/nsm.cpp456
-rw-r--r--src/mame/drivers/octopus.cpp6
-rw-r--r--src/mame/drivers/odyssey2.cpp6
-rw-r--r--src/mame/drivers/ohmygod.cpp256
-rw-r--r--src/mame/drivers/okean240.cpp18
-rw-r--r--src/mame/drivers/olivpc1.cpp2
-rw-r--r--src/mame/drivers/olyboss.cpp4
-rw-r--r--src/mame/drivers/olytext.cpp2
-rw-r--r--src/mame/drivers/ondra.cpp1
-rw-r--r--src/mame/drivers/orao.cpp2
-rw-r--r--src/mame/drivers/orion.cpp1
-rw-r--r--src/mame/drivers/osbexec.cpp2
-rw-r--r--src/mame/drivers/osborne1.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp176
-rw-r--r--src/mame/drivers/parodius.cpp2
-rw-r--r--src/mame/drivers/partner.cpp1
-rw-r--r--src/mame/drivers/pasogo.cpp2
-rw-r--r--src/mame/drivers/pasopia.cpp2
-rw-r--r--src/mame/drivers/pb1000.cpp2
-rw-r--r--src/mame/drivers/pc.cpp28
-rw-r--r--src/mame/drivers/pc1512.cpp2
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc6001.cpp10
-rw-r--r--src/mame/drivers/pc8001.cpp1
-rw-r--r--src/mame/drivers/pc8801.cpp47
-rw-r--r--src/mame/drivers/pc88va.cpp30
-rw-r--r--src/mame/drivers/pc9801.cpp7
-rw-r--r--src/mame/drivers/pc9821.cpp8
-rw-r--r--src/mame/drivers/pce.cpp6
-rw-r--r--src/mame/drivers/pcfx.cpp6
-rw-r--r--src/mame/drivers/pcipc.cpp36
-rw-r--r--src/mame/drivers/pcm.cpp4
-rw-r--r--src/mame/drivers/pcw.cpp2
-rw-r--r--src/mame/drivers/pcw16.cpp2
-rw-r--r--src/mame/drivers/pcxt.cpp4
-rw-r--r--src/mame/drivers/pdp1.cpp19
-rw-r--r--src/mame/drivers/pdp11.cpp122
-rw-r--r--src/mame/drivers/pecom.cpp1
-rw-r--r--src/mame/drivers/pegasus.cpp8
-rw-r--r--src/mame/drivers/pencil2.cpp10
-rw-r--r--src/mame/drivers/pentagon.cpp28
-rw-r--r--src/mame/drivers/peplus.cpp486
-rw-r--r--src/mame/drivers/pet.cpp2
-rw-r--r--src/mame/drivers/peyper.cpp479
-rw-r--r--src/mame/drivers/pgm.cpp35
-rw-r--r--src/mame/drivers/phc25.cpp1
-rw-r--r--src/mame/drivers/photon2.cpp2
-rw-r--r--src/mame/drivers/picno.cpp1
-rw-r--r--src/mame/drivers/pinball2k.cpp112
-rw-r--r--src/mame/drivers/pipbug.cpp4
-rw-r--r--src/mame/drivers/pk8000.cpp8
-rw-r--r--src/mame/drivers/pk8020.cpp2
-rw-r--r--src/mame/drivers/plan80.cpp4
-rw-r--r--src/mame/drivers/play_1.cpp422
-rw-r--r--src/mame/drivers/play_2.cpp497
-rw-r--r--src/mame/drivers/play_3.cpp516
-rw-r--r--src/mame/drivers/playch10.cpp8
-rw-r--r--src/mame/drivers/plus4.cpp2
-rw-r--r--src/mame/drivers/pmd85.cpp1
-rw-r--r--src/mame/drivers/pmi80.cpp12
-rw-r--r--src/mame/drivers/pockchal.cpp2
-rw-r--r--src/mame/drivers/pofo.cpp2
-rw-r--r--src/mame/drivers/poisk1.cpp118
-rw-r--r--src/mame/drivers/pokemini.cpp6
-rw-r--r--src/mame/drivers/poker72.cpp122
-rw-r--r--src/mame/drivers/poly.cpp2
-rw-r--r--src/mame/drivers/popper.cpp4
-rw-r--r--src/mame/drivers/positron.cpp976
-rw-r--r--src/mame/drivers/prestige.cpp2
-rw-r--r--src/mame/drivers/pro80.cpp6
-rw-r--r--src/mame/drivers/prof180x.cpp2
-rw-r--r--src/mame/drivers/prof80.cpp4
-rw-r--r--src/mame/drivers/proteus.cpp2
-rw-r--r--src/mame/drivers/proteus3.cpp10
-rw-r--r--src/mame/drivers/ps2.cpp2
-rw-r--r--src/mame/drivers/psion.cpp2
-rw-r--r--src/mame/drivers/psion5.cpp2
-rw-r--r--src/mame/drivers/ptcsol.cpp16
-rw-r--r--src/mame/drivers/pturn.cpp10
-rw-r--r--src/mame/drivers/pubint_storyreader.cpp2
-rw-r--r--src/mame/drivers/pv1000.cpp2
-rw-r--r--src/mame/drivers/pv2000.cpp2
-rw-r--r--src/mame/drivers/pwrview.cpp151
-rw-r--r--src/mame/drivers/px4.cpp2
-rw-r--r--src/mame/drivers/px8.cpp2
-rw-r--r--src/mame/drivers/pyl601.cpp32
-rw-r--r--src/mame/drivers/ql.cpp4
-rw-r--r--src/mame/drivers/qx10.cpp2
-rw-r--r--src/mame/drivers/rabbit.cpp4
-rw-r--r--src/mame/drivers/radio86.cpp1
-rw-r--r--src/mame/drivers/radionic.cpp1
-rw-r--r--src/mame/drivers/rainbow.cpp10
-rw-r--r--src/mame/drivers/rastan.cpp280
-rw-r--r--src/mame/drivers/ravens.cpp4
-rw-r--r--src/mame/drivers/rawthrillspc.cpp143
-rw-r--r--src/mame/drivers/rbowlorama.cpp143
-rw-r--r--src/mame/drivers/rc702.cpp12
-rw-r--r--src/mame/drivers/recel.cpp87
-rw-r--r--src/mame/drivers/rfslotspcpent.cpp140
-rw-r--r--src/mame/drivers/rmnimbus.cpp5
-rw-r--r--src/mame/drivers/rohga.cpp48
-rw-r--r--src/mame/drivers/roland_cm32p.cpp29
-rw-r--r--src/mame/drivers/roland_r8.cpp305
-rw-r--r--src/mame/drivers/roland_tb303.cpp87
-rw-r--r--src/mame/drivers/roland_tr606.cpp79
-rw-r--r--src/mame/drivers/roland_tr808.cpp94
-rw-r--r--src/mame/drivers/rollerg.cpp2
-rw-r--r--src/mame/drivers/rowamet.cpp316
-rw-r--r--src/mame/drivers/royalmah.cpp802
-rw-r--r--src/mame/drivers/rt1715.cpp16
-rw-r--r--src/mame/drivers/rtpc.cpp76
-rw-r--r--src/mame/drivers/rx78.cpp18
-rw-r--r--src/mame/drivers/rzone.cpp77
-rw-r--r--src/mame/drivers/s11.cpp115
-rw-r--r--src/mame/drivers/s3.cpp606
-rw-r--r--src/mame/drivers/s4.cpp682
-rw-r--r--src/mame/drivers/s6.cpp564
-rw-r--r--src/mame/drivers/s6a.cpp426
-rw-r--r--src/mame/drivers/s7.cpp900
-rw-r--r--src/mame/drivers/s8.cpp289
-rw-r--r--src/mame/drivers/s8a.cpp266
-rw-r--r--src/mame/drivers/s9.cpp484
-rw-r--r--src/mame/drivers/sacstate.cpp4
-rw-r--r--src/mame/drivers/sag.cpp2
-rw-r--r--src/mame/drivers/sage2.cpp2
-rw-r--r--src/mame/drivers/saitek_corona.cpp2
-rw-r--r--src/mame/drivers/saitek_cp2000.cpp10
-rw-r--r--src/mame/drivers/saitek_leonardo.cpp39
-rw-r--r--src/mame/drivers/saitek_renaissance.cpp5
-rw-r--r--src/mame/drivers/saitek_schess.cpp1
-rw-r--r--src/mame/drivers/saitek_simultano.cpp2
-rw-r--r--src/mame/drivers/saitek_stratos.cpp2
-rw-r--r--src/mame/drivers/saitek_superstar.cpp2
-rw-r--r--src/mame/drivers/samcoupe.cpp10
-rw-r--r--src/mame/drivers/sapi1.cpp16
-rw-r--r--src/mame/drivers/saturn.cpp2
-rw-r--r--src/mame/drivers/savia84.cpp4
-rw-r--r--src/mame/drivers/sbc6510.cpp4
-rw-r--r--src/mame/drivers/sbrain.cpp17
-rw-r--r--src/mame/drivers/scorpion.cpp20
-rw-r--r--src/mame/drivers/scv.cpp6
-rw-r--r--src/mame/drivers/sdk85.cpp6
-rw-r--r--src/mame/drivers/sdk86.cpp2
-rw-r--r--src/mame/drivers/seattle.cpp60
-rw-r--r--src/mame/drivers/seattlecmp.cpp2
-rw-r--r--src/mame/drivers/sega_beena.cpp2
-rw-r--r--src/mame/drivers/segac2.cpp15
-rw-r--r--src/mame/drivers/segae.cpp4
-rw-r--r--src/mame/drivers/segag80v.cpp30
-rw-r--r--src/mame/drivers/segahang.cpp2
-rw-r--r--src/mame/drivers/segaorun.cpp2
-rw-r--r--src/mame/drivers/segapico.cpp6
-rw-r--r--src/mame/drivers/segas16a.cpp2
-rw-r--r--src/mame/drivers/segas16b.cpp2
-rw-r--r--src/mame/drivers/segas18.cpp14
-rw-r--r--src/mame/drivers/segas24.cpp14
-rw-r--r--src/mame/drivers/segas32.cpp17
-rw-r--r--src/mame/drivers/segasp.cpp27
-rw-r--r--src/mame/drivers/segaxbd.cpp2
-rw-r--r--src/mame/drivers/segaybd.cpp2
-rw-r--r--src/mame/drivers/seibuspi.cpp8
-rw-r--r--src/mame/drivers/selz80.cpp4
-rw-r--r--src/mame/drivers/seta.cpp130
-rw-r--r--src/mame/drivers/seta2.cpp4
-rw-r--r--src/mame/drivers/sg1000.cpp9
-rw-r--r--src/mame/drivers/shaolins.cpp22
-rw-r--r--src/mame/drivers/simpsons.cpp2
-rw-r--r--src/mame/drivers/sitcom.cpp6
-rw-r--r--src/mame/drivers/slapshot.cpp2
-rw-r--r--src/mame/drivers/sleic.cpp302
-rw-r--r--src/mame/drivers/smc777.cpp2
-rw-r--r--src/mame/drivers/sms.cpp4
-rw-r--r--src/mame/drivers/snes.cpp25
-rw-r--r--src/mame/drivers/snesb.cpp36
-rw-r--r--src/mame/drivers/snk68.cpp68
-rw-r--r--src/mame/drivers/snowbros.cpp29
-rw-r--r--src/mame/drivers/socrates.cpp12
-rw-r--r--src/mame/drivers/sorcerer.cpp2
-rw-r--r--src/mame/drivers/spacefb.cpp4
-rw-r--r--src/mame/drivers/spc1000.cpp12
-rw-r--r--src/mame/drivers/spc1500.cpp2
-rw-r--r--src/mame/drivers/spec128.cpp47
-rw-r--r--src/mame/drivers/special.cpp1
-rw-r--r--src/mame/drivers/special_gambl.cpp4
-rw-r--r--src/mame/drivers/specpls3.cpp134
-rw-r--r--src/mame/drivers/spectra.cpp22
-rw-r--r--src/mame/drivers/spectrum.cpp175
-rw-r--r--src/mame/drivers/speedbsk.cpp8
-rw-r--r--src/mame/drivers/spg110.cpp2
-rw-r--r--src/mame/drivers/spg2xx_ican.cpp1
-rw-r--r--src/mame/drivers/spg2xx_jakks_gkr.cpp1
-rw-r--r--src/mame/drivers/spg2xx_smarttv.cpp1
-rw-r--r--src/mame/drivers/spg2xx_telestory.cpp1
-rw-r--r--src/mame/drivers/spg2xx_tvgogo.cpp1
-rw-r--r--src/mame/drivers/spg2xx_vii.cpp5
-rw-r--r--src/mame/drivers/spg2xx_wiwi.cpp8
-rw-r--r--src/mame/drivers/spinb.cpp953
-rw-r--r--src/mame/drivers/spirit76.cpp69
-rw-r--r--src/mame/drivers/splus.cpp4
-rw-r--r--src/mame/drivers/spoker.cpp130
-rw-r--r--src/mame/drivers/sprint4.cpp274
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/ssem.cpp1
-rw-r--r--src/mame/drivers/ssingles.cpp4
-rw-r--r--src/mame/drivers/ssv.cpp10
-rw-r--r--src/mame/drivers/st2302u_bbl_spi.cpp10
-rw-r--r--src/mame/drivers/st_mp100.cpp473
-rw-r--r--src/mame/drivers/st_mp200.cpp673
-rw-r--r--src/mame/drivers/stargame.cpp391
-rw-r--r--src/mame/drivers/stop.cpp109
-rw-r--r--src/mame/drivers/storio.cpp2
-rw-r--r--src/mame/drivers/studio2.cpp14
-rw-r--r--src/mame/drivers/stv.cpp90
-rw-r--r--src/mame/drivers/subhuntr.cpp6
-rw-r--r--src/mame/drivers/sun4.cpp4
-rw-r--r--src/mame/drivers/super6.cpp2
-rw-r--r--src/mame/drivers/super80.cpp2
-rw-r--r--src/mame/drivers/superga2.cpp9
-rw-r--r--src/mame/drivers/supracan.cpp2
-rw-r--r--src/mame/drivers/suprnova.cpp39
-rw-r--r--src/mame/drivers/sv8000.cpp20
-rw-r--r--src/mame/drivers/svi318.cpp2
-rw-r--r--src/mame/drivers/svision.cpp4
-rw-r--r--src/mame/drivers/svmu.cpp2
-rw-r--r--src/mame/drivers/swtpc09.cpp2
-rw-r--r--src/mame/drivers/swyft.cpp2
-rw-r--r--src/mame/drivers/sym1.cpp1
-rw-r--r--src/mame/drivers/symbolics.cpp6
-rw-r--r--src/mame/drivers/sys1121.cpp59
-rw-r--r--src/mame/drivers/tabe22.cpp27
-rw-r--r--src/mame/drivers/tail2nos.cpp192
-rw-r--r--src/mame/drivers/taito.cpp1059
-rw-r--r--src/mame/drivers/taito_b.cpp123
-rw-r--r--src/mame/drivers/taito_f2.cpp36
-rw-r--r--src/mame/drivers/taito_f3.cpp2
-rw-r--r--src/mame/drivers/taito_h.cpp200
-rw-r--r--src/mame/drivers/taito_l.cpp4
-rw-r--r--src/mame/drivers/taito_o.cpp100
-rw-r--r--src/mame/drivers/taito_x.cpp604
-rw-r--r--src/mame/drivers/taito_z.cpp4
-rw-r--r--src/mame/drivers/taitotx.cpp4
-rw-r--r--src/mame/drivers/tandy1t.cpp2
-rw-r--r--src/mame/drivers/tandy2k.cpp11
-rw-r--r--src/mame/drivers/tavernie.cpp14
-rw-r--r--src/mame/drivers/tec1.cpp7
-rw-r--r--src/mame/drivers/techno.cpp384
-rw-r--r--src/mame/drivers/tehkanwc.cpp2
-rw-r--r--src/mame/drivers/tek405x.cpp2
-rw-r--r--src/mame/drivers/tekigw.cpp4
-rw-r--r--src/mame/drivers/thayers.cpp4
-rw-r--r--src/mame/drivers/thomson.cpp10
-rw-r--r--src/mame/drivers/ti74.cpp2
-rw-r--r--src/mame/drivers/ti990_4.cpp4
-rw-r--r--src/mame/drivers/ti99_4p.cpp4
-rw-r--r--src/mame/drivers/ti99_4x.cpp6
-rw-r--r--src/mame/drivers/ti99_8.cpp4
-rw-r--r--src/mame/drivers/tiamc1.cpp2
-rw-r--r--src/mame/drivers/tickee.cpp10
-rw-r--r--src/mame/drivers/tiki100.cpp2
-rw-r--r--src/mame/drivers/timeplt.cpp2
-rw-r--r--src/mame/drivers/timex.cpp6
-rw-r--r--src/mame/drivers/tispeak.cpp2
-rw-r--r--src/mame/drivers/tk80.cpp10
-rw-r--r--src/mame/drivers/tk80bs.cpp2
-rw-r--r--src/mame/drivers/tm990189.cpp24
-rw-r--r--src/mame/drivers/tmaster.cpp3
-rw-r--r--src/mame/drivers/tmc1800.cpp4
-rw-r--r--src/mame/drivers/tmnt.cpp41
-rw-r--r--src/mame/drivers/tnzs.cpp35
-rw-r--r--src/mame/drivers/toaplan1.cpp96
-rw-r--r--src/mame/drivers/tomy_princ.cpp1
-rw-r--r--src/mame/drivers/tosh1000.cpp3
-rw-r--r--src/mame/drivers/tourvis.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp1
-rw-r--r--src/mame/drivers/trs80dt1.cpp6
-rw-r--r--src/mame/drivers/trs80m2.cpp2
-rw-r--r--src/mame/drivers/trs80m3.cpp1
-rw-r--r--src/mame/drivers/trucocl.cpp2
-rw-r--r--src/mame/drivers/tsconf.cpp296
-rw-r--r--src/mame/drivers/tubep.cpp6
-rw-r--r--src/mame/drivers/tugboat.cpp4
-rw-r--r--src/mame/drivers/tutor.cpp2
-rw-r--r--src/mame/drivers/tv912.cpp4
-rw-r--r--src/mame/drivers/tv965.cpp2
-rw-r--r--src/mame/drivers/tv990.cpp4
-rw-r--r--src/mame/drivers/tvc.cpp2
-rw-r--r--src/mame/drivers/tx0.cpp60
-rw-r--r--src/mame/drivers/uchroma68.cpp4
-rw-r--r--src/mame/drivers/ultim809.cpp3
-rw-r--r--src/mame/drivers/ultratnk.cpp4
-rw-r--r--src/mame/drivers/ultrsprt.cpp8
-rw-r--r--src/mame/drivers/unichamp.cpp6
-rw-r--r--src/mame/drivers/unior.cpp10
-rw-r--r--src/mame/drivers/univac.cpp38
-rw-r--r--src/mame/drivers/unixpc.cpp24
-rw-r--r--src/mame/drivers/usgames.cpp207
-rw-r--r--src/mame/drivers/ut88.cpp1
-rw-r--r--src/mame/drivers/uzebox.cpp2
-rw-r--r--src/mame/drivers/v1050.cpp12
-rw-r--r--src/mame/drivers/v6809.cpp11
-rw-r--r--src/mame/drivers/vboy.cpp3
-rw-r--r--src/mame/drivers/vc4000.cpp2
-rw-r--r--src/mame/drivers/vcs80.cpp6
-rw-r--r--src/mame/drivers/vd.cpp228
-rw-r--r--src/mame/drivers/vector06.cpp1
-rw-r--r--src/mame/drivers/vectrex.cpp2
-rw-r--r--src/mame/drivers/vegas.cpp26
-rw-r--r--src/mame/drivers/vendetta.cpp7
-rw-r--r--src/mame/drivers/vg5k.cpp2
-rw-r--r--src/mame/drivers/vgmplay.cpp1
-rw-r--r--src/mame/drivers/vic10.cpp3
-rw-r--r--src/mame/drivers/vic20.cpp2
-rw-r--r--src/mame/drivers/vicdual.cpp3
-rw-r--r--src/mame/drivers/victor9k.cpp2
-rw-r--r--src/mame/drivers/vidbrain.cpp4
-rw-r--r--src/mame/drivers/video21.cpp4
-rw-r--r--src/mame/drivers/videopin.cpp4
-rw-r--r--src/mame/drivers/vip.cpp2
-rw-r--r--src/mame/drivers/viper.cpp175
-rw-r--r--src/mame/drivers/vis.cpp86
-rw-r--r--src/mame/drivers/vixen.cpp45
-rw-r--r--src/mame/drivers/vk100.cpp6
-rw-r--r--src/mame/drivers/votrhv.cpp4
-rw-r--r--src/mame/drivers/votrpss.cpp8
-rw-r--r--src/mame/drivers/vp415.cpp2
-rw-r--r--src/mame/drivers/vsmile.cpp2
-rw-r--r--src/mame/drivers/vsmileb.cpp2
-rw-r--r--src/mame/drivers/vsnes.cpp16
-rw-r--r--src/mame/drivers/vtech1.cpp1
-rw-r--r--src/mame/drivers/vtech2.cpp1
-rw-r--r--src/mame/drivers/vtech_innotab.cpp2
-rw-r--r--src/mame/drivers/wangpc.cpp2
-rw-r--r--src/mame/drivers/wardner.cpp284
-rw-r--r--src/mame/drivers/wgp.cpp2
-rw-r--r--src/mame/drivers/wicat.cpp5
-rw-r--r--src/mame/drivers/wico.cpp274
-rw-r--r--src/mame/drivers/wiping.cpp8
-rw-r--r--src/mame/drivers/wizard.cpp2
-rw-r--r--src/mame/drivers/wmg.cpp10
-rw-r--r--src/mame/drivers/wms_shuffle.cpp774
-rw-r--r--src/mame/drivers/wolfpack.cpp4
-rw-r--r--src/mame/drivers/wpc_an.cpp4
-rw-r--r--src/mame/drivers/wpc_dot.cpp2
-rw-r--r--src/mame/drivers/wrally.cpp6
-rw-r--r--src/mame/drivers/wswan.cpp4
-rw-r--r--src/mame/drivers/x07.cpp2
-rw-r--r--src/mame/drivers/x1.cpp2
-rw-r--r--src/mame/drivers/x68k.cpp12
-rw-r--r--src/mame/drivers/xavix.cpp1
-rw-r--r--src/mame/drivers/xbox.cpp10
-rw-r--r--src/mame/drivers/xmen.cpp2
-rw-r--r--src/mame/drivers/ympsr60.cpp2
-rw-r--r--src/mame/drivers/ymrx15.cpp111
-rw-r--r--src/mame/drivers/ymtx81z.cpp4
-rw-r--r--src/mame/drivers/yuvomz80.cpp83
-rw-r--r--src/mame/drivers/z1013.cpp1
-rw-r--r--src/mame/drivers/z80clock.cpp439
-rw-r--r--src/mame/drivers/z80ne.cpp2
-rw-r--r--src/mame/drivers/z88.cpp2
-rw-r--r--src/mame/drivers/z9001.cpp5
-rw-r--r--src/mame/drivers/zac_1.cpp19
-rw-r--r--src/mame/drivers/zac_2.cpp137
-rw-r--r--src/mame/drivers/zac_proto.cpp66
-rw-r--r--src/mame/drivers/zexall.cpp8
-rw-r--r--src/mame/drivers/zn.cpp37
-rw-r--r--src/mame/drivers/zorba.cpp2
-rw-r--r--src/mame/drivers/zr107.cpp27
-rw-r--r--src/mame/drivers/zrt80.cpp2
-rw-r--r--src/mame/drivers/zx.cpp2
-rw-r--r--src/mame/etc/doxy_driver.h39
-rw-r--r--src/mame/etc/gen_device_defs.py76
-rw-r--r--src/mame/etc/multfish_ref.cpp445
-rw-r--r--src/mame/etc/template_cpu.cpp129
-rw-r--r--src/mame/etc/template_cpu.h70
-rw-r--r--src/mame/etc/template_device.cpp83
-rw-r--r--src/mame/etc/template_device.h40
-rw-r--r--src/mame/etc/template_driver.cpp199
-rw-r--r--src/mame/etc/template_readme.txt43
-rw-r--r--src/mame/includes/a2600.h35
-rw-r--r--src/mame/includes/abc1600.h1
-rw-r--r--src/mame/includes/abc80.h2
-rw-r--r--src/mame/includes/actfancr.h53
-rw-r--r--src/mame/includes/alesis.h2
-rw-r--r--src/mame/includes/alpha68k.h1
-rw-r--r--src/mame/includes/amiga.h2
-rw-r--r--src/mame/includes/amspdwy.h84
-rw-r--r--src/mame/includes/amstrad.h2
-rw-r--r--src/mame/includes/apexc.h2
-rw-r--r--src/mame/includes/apollo.h9
-rw-r--r--src/mame/includes/artmagic.h2
-rw-r--r--src/mame/includes/asterix.h2
-rw-r--r--src/mame/includes/astrocde.h2
-rw-r--r--src/mame/includes/atarist.h4
-rw-r--r--src/mame/includes/atetris.h112
-rw-r--r--src/mame/includes/aussiebyte.h26
-rw-r--r--src/mame/includes/battlera.h51
-rw-r--r--src/mame/includes/bebox.h2
-rw-r--r--src/mame/includes/blstroid.h2
-rw-r--r--src/mame/includes/btoads.h2
-rw-r--r--src/mame/includes/bublbobl.h2
-rw-r--r--src/mame/includes/capbowl.h2
-rw-r--r--src/mame/includes/cclimber.h1
-rw-r--r--src/mame/includes/cdi.h25
-rw-r--r--src/mame/includes/cidelsa.h2
-rw-r--r--src/mame/includes/coco.h2
-rw-r--r--src/mame/includes/comquest.h35
-rw-r--r--src/mame/includes/comx35.h2
-rw-r--r--src/mame/includes/crshrace.h4
-rw-r--r--src/mame/includes/dc.h62
-rw-r--r--src/mame/includes/dc_atomiswave.h69
-rw-r--r--src/mame/includes/dccons.h7
-rw-r--r--src/mame/includes/dcheese.h2
-rw-r--r--src/mame/includes/dec0.h6
-rw-r--r--src/mame/includes/dec8.h2
-rw-r--r--src/mame/includes/dgn_beta.h3
-rw-r--r--src/mame/includes/dkong.h1
-rw-r--r--src/mame/includes/dynax.h3
-rw-r--r--src/mame/includes/electron.h2
-rw-r--r--src/mame/includes/fgoal.h2
-rw-r--r--src/mame/includes/finalizr.h24
-rw-r--r--src/mame/includes/fmtowns.h2
-rw-r--r--src/mame/includes/fuukifg2.h2
-rw-r--r--src/mame/includes/fuukifg3.h2
-rw-r--r--src/mame/includes/gaelco.h17
-rw-r--r--src/mame/includes/gaelco2.h3
-rw-r--r--src/mame/includes/gaelcrpt.h5
-rw-r--r--src/mame/includes/gameplan.h2
-rw-r--r--src/mame/includes/gaplus.h2
-rw-r--r--src/mame/includes/gb.h23
-rw-r--r--src/mame/includes/gberet.h146
-rw-r--r--src/mame/includes/gottlieb.h2
-rw-r--r--src/mame/includes/gunbustr.h2
-rw-r--r--src/mame/includes/hh_sm510.h8
-rw-r--r--src/mame/includes/homedata.h8
-rw-r--r--src/mame/includes/hyhoo.h2
-rw-r--r--src/mame/includes/intv.h2
-rw-r--r--src/mame/includes/itech8.h4
-rw-r--r--src/mame/includes/jaguar.h2
-rw-r--r--src/mame/includes/kaypro.h14
-rw-r--r--src/mame/includes/konamigx.h3
-rw-r--r--src/mame/includes/laserbat.h2
-rw-r--r--src/mame/includes/lethalj.h2
-rw-r--r--src/mame/includes/lynx.h379
-rw-r--r--src/mame/includes/m62.h61
-rw-r--r--src/mame/includes/m92.h2
-rw-r--r--src/mame/includes/macrossp.h122
-rw-r--r--src/mame/includes/mcr3.h3
-rw-r--r--src/mame/includes/megadriv.h1
-rw-r--r--src/mame/includes/megadriv_acbl.h2
-rw-r--r--src/mame/includes/megasys1.h1
-rw-r--r--src/mame/includes/metro.h2
-rw-r--r--src/mame/includes/micro3d.h2
-rw-r--r--src/mame/includes/midvunit.h2
-rw-r--r--src/mame/includes/midyunit.h2
-rw-r--r--src/mame/includes/mjkjidai.h22
-rw-r--r--src/mame/includes/model2.h2
-rw-r--r--src/mame/includes/mpu4.h2
-rw-r--r--src/mame/includes/mrdo.h7
-rw-r--r--src/mame/includes/mystston.h25
-rw-r--r--src/mame/includes/n64.h2
-rw-r--r--src/mame/includes/namcofl.h31
-rw-r--r--src/mame/includes/namcona1.h2
-rw-r--r--src/mame/includes/naomi.h100
-rw-r--r--src/mame/includes/nbmj8688.h2
-rw-r--r--src/mame/includes/nbmj8891.h2
-rw-r--r--src/mame/includes/nbmj8900.h22
-rw-r--r--src/mame/includes/nbmj8991.h2
-rw-r--r--src/mame/includes/nbmj9195.h2
-rw-r--r--src/mame/includes/nc.h3
-rw-r--r--src/mame/includes/nes.h2
-rw-r--r--src/mame/includes/newbrain.h2
-rw-r--r--src/mame/includes/next.h2
-rw-r--r--src/mame/includes/niyanpai.h2
-rw-r--r--src/mame/includes/ohmygod.h67
-rw-r--r--src/mame/includes/osi.h16
-rw-r--r--src/mame/includes/overdriv.h90
-rw-r--r--src/mame/includes/parodius.h2
-rw-r--r--src/mame/includes/pastelg.h2
-rw-r--r--src/mame/includes/pc4.h2
-rw-r--r--src/mame/includes/pc8801.h2
-rw-r--r--src/mame/includes/pc88va.h2
-rw-r--r--src/mame/includes/pc9801.h2
-rw-r--r--src/mame/includes/pdp1.h34
-rw-r--r--src/mame/includes/phc25.h4
-rw-r--r--src/mame/includes/pmd85.h2
-rw-r--r--src/mame/includes/pocketc.h2
-rw-r--r--src/mame/includes/poly.h14
-rw-r--r--src/mame/includes/prof80.h2
-rw-r--r--src/mame/includes/psion5.h2
-rw-r--r--src/mame/includes/rastan.h71
-rw-r--r--src/mame/includes/rmnimbus.h50
-rw-r--r--src/mame/includes/rollerg.h2
-rw-r--r--src/mame/includes/s11.h2
-rw-r--r--src/mame/includes/segag80r.h4
-rw-r--r--src/mame/includes/segag80v.h9
-rw-r--r--src/mame/includes/segahang.h2
-rw-r--r--src/mame/includes/segaorun.h2
-rw-r--r--src/mame/includes/segas16a.h2
-rw-r--r--src/mame/includes/segas16b.h2
-rw-r--r--src/mame/includes/segas18.h2
-rw-r--r--src/mame/includes/segasp.h7
-rw-r--r--src/mame/includes/segaxbd.h2
-rw-r--r--src/mame/includes/segaybd.h2
-rw-r--r--src/mame/includes/seibuspi.h1
-rw-r--r--src/mame/includes/seta.h11
-rw-r--r--src/mame/includes/shaolins.h4
-rw-r--r--src/mame/includes/simpsons.h2
-rw-r--r--src/mame/includes/slapshot.h2
-rw-r--r--src/mame/includes/snes.h6
-rw-r--r--src/mame/includes/sorcerer.h18
-rw-r--r--src/mame/includes/spacefb.h2
-rw-r--r--src/mame/includes/specpls3.h6
-rw-r--r--src/mame/includes/spectrum.h23
-rw-r--r--src/mame/includes/sprint4.h85
-rw-r--r--src/mame/includes/ssv.h1
-rw-r--r--src/mame/includes/stfight.h2
-rw-r--r--src/mame/includes/stv.h14
-rw-r--r--src/mame/includes/super80.h16
-rw-r--r--src/mame/includes/taito_f2.h2
-rw-r--r--src/mame/includes/taito_f3.h2
-rw-r--r--src/mame/includes/taito_h.h45
-rw-r--r--src/mame/includes/taito_o.h52
-rw-r--r--src/mame/includes/taito_x.h61
-rw-r--r--src/mame/includes/taito_z.h2
-rw-r--r--src/mame/includes/tandy2k.h2
-rw-r--r--src/mame/includes/tank8.h2
-rw-r--r--src/mame/includes/tehkanwc.h2
-rw-r--r--src/mame/includes/ti85.h2
-rw-r--r--src/mame/includes/tmc1800.h4
-rw-r--r--src/mame/includes/tmnt.h3
-rw-r--r--src/mame/includes/triplhnt.h2
-rw-r--r--src/mame/includes/trs80m3.h36
-rw-r--r--src/mame/includes/trucocl.h2
-rw-r--r--src/mame/includes/tsconf.h195
-rw-r--r--src/mame/includes/tubep.h2
-rw-r--r--src/mame/includes/tx0.h188
-rw-r--r--src/mame/includes/ultratnk.h2
-rw-r--r--src/mame/includes/usgames.h53
-rw-r--r--src/mame/includes/vectrex.h3
-rw-r--r--src/mame/includes/vendetta.h2
-rw-r--r--src/mame/includes/vidbrain.h2
-rw-r--r--src/mame/includes/videopin.h2
-rw-r--r--src/mame/includes/vp415.h6
-rw-r--r--src/mame/includes/vsnes.h16
-rw-r--r--src/mame/includes/wgp.h2
-rw-r--r--src/mame/includes/wolfpack.h2
-rw-r--r--src/mame/includes/wpc_dot.h2
-rw-r--r--src/mame/includes/wrally.h3
-rw-r--r--src/mame/includes/x68k.h2
-rw-r--r--src/mame/includes/xbox_pci.h4
-rw-r--r--src/mame/includes/xbox_usb.h2
-rw-r--r--src/mame/includes/z80ne.h2
-rw-r--r--src/mame/includes/zn.h5
-rw-r--r--src/mame/includes/zorba.h14
-rw-r--r--src/mame/includes/zx.h21
-rw-r--r--src/mame/layout/ac1clbmn.lay3013
-rw-r--r--src/mame/layout/ac1gogld.lay3013
-rw-r--r--src/mame/layout/ac1primt.lay3013
-rw-r--r--src/mame/layout/ac1pster.lay3014
-rw-r--r--src/mame/layout/ac1pstrt.lay3014
-rw-r--r--src/mame/layout/ac1taklv.lay3014
-rw-r--r--src/mame/layout/atari_s1.lay8
-rw-r--r--src/mame/layout/ave_arb.lay16
-rw-r--r--src/mame/layout/by6803.lay52
-rw-r--r--src/mame/layout/conic_cchess2.lay6
-rw-r--r--src/mame/layout/cxg_dominator.lay14
-rw-r--r--src/mame/layout/db32016.lay37
-rw-r--r--src/mame/layout/fidel_cc10.lay2
-rw-r--r--src/mame/layout/fidel_eag.lay24
-rw-r--r--src/mame/layout/fidel_eag_68k.lay24
-rw-r--r--src/mame/layout/fidel_eas.lay24
-rw-r--r--src/mame/layout/flicker.lay8
-rw-r--r--src/mame/layout/im01.lay288
-rw-r--r--src/mame/layout/im05.lay304
-rw-r--r--src/mame/layout/j2adnote.lay3429
-rw-r--r--src/mame/layout/j2always.lay3327
-rw-r--r--src/mame/layout/j2bankch.lay3327
-rw-r--r--src/mame/layout/j2bigbnk.lay3327
-rw-r--r--src/mame/layout/j2bigbox.lay3327
-rw-r--r--src/mame/layout/j2blustr.lay3014
-rw-r--r--src/mame/layout/j2cashbn.lay3429
-rw-r--r--src/mame/layout/j2cashrl.lay3327
-rw-r--r--src/mame/layout/j2cashro.lay3327
-rw-r--r--src/mame/layout/j2cashrv.lay3327
-rw-r--r--src/mame/layout/j2cashtk.lay3327
-rw-r--r--src/mame/layout/j2coinsh.lay3327
-rw-r--r--src/mame/layout/j2coppot.lay3327
-rw-r--r--src/mame/layout/j2cprndx.lay3327
-rw-r--r--src/mame/layout/j2criscr.lay3327
-rw-r--r--src/mame/layout/j2crown.lay3327
-rw-r--r--src/mame/layout/j2cshalm.lay3014
-rw-r--r--src/mame/layout/j2cshcrd.lay3327
-rw-r--r--src/mame/layout/j2cshfil.lay3327
-rw-r--r--src/mame/layout/j2cshnud.lay3327
-rw-r--r--src/mame/layout/j2cshsmh.lay3014
-rw-r--r--src/mame/layout/j2cvault.lay3327
-rw-r--r--src/mame/layout/j2droplt.lay3014
-rw-r--r--src/mame/layout/j2ewn.lay3327
-rw-r--r--src/mame/layout/j2ews.lay3327
-rw-r--r--src/mame/layout/j2exec.lay3429
-rw-r--r--src/mame/layout/j2fasttk.lay3327
-rw-r--r--src/mame/layout/j2fiveal.lay3327
-rw-r--r--src/mame/layout/j2fiveln.lay3327
-rw-r--r--src/mame/layout/j2fqueen.lay3013
-rw-r--r--src/mame/layout/j2frucnx.lay3327
-rw-r--r--src/mame/layout/j2fullhs.lay3429
-rw-r--r--src/mame/layout/j2fws.lay3327
-rw-r--r--src/mame/layout/j2ghostb.lay3327
-rw-r--r--src/mame/layout/j2gldchy.lay3327
-rw-r--r--src/mame/layout/j2goldbr.lay3327
-rw-r--r--src/mame/layout/j2hilocl.lay3429
-rw-r--r--src/mame/layout/j2hinote.lay3429
-rw-r--r--src/mame/layout/j2hiroll.lay3429
-rw-r--r--src/mame/layout/j2hitmon.lay3014
-rw-r--r--src/mame/layout/j2hotpot.lay3014
-rw-r--r--src/mame/layout/j2hotsht.lay3429
-rw-r--r--src/mame/layout/j2hypnot.lay3327
-rw-r--r--src/mame/layout/j2jackbr.lay3327
-rw-r--r--src/mame/layout/j2kingcl.lay3429
-rw-r--r--src/mame/layout/j2litean.lay3327
-rw-r--r--src/mame/layout/j2litnot.lay3429
-rw-r--r--src/mame/layout/j2lovshd.lay3327
-rw-r--r--src/mame/layout/j2lovsht.lay3327
-rw-r--r--src/mame/layout/j2luckar.lay3327
-rw-r--r--src/mame/layout/j2lucky2.lay3327
-rw-r--r--src/mame/layout/j2maxima.lay3327
-rw-r--r--src/mame/layout/j2missis.lay3429
-rw-r--r--src/mame/layout/j2monblt.lay3327
-rw-r--r--src/mame/layout/j2mongam.lay3014
-rw-r--r--src/mame/layout/j2montrp.lay3327
-rw-r--r--src/mame/layout/j2nolimt.lay3327
-rw-r--r--src/mame/layout/j2notesh.lay3327
-rw-r--r--src/mame/layout/j2nudbnz.lay3014
-rw-r--r--src/mame/layout/j2nudfev.lay3327
-rw-r--r--src/mame/layout/j2nudmon.lay3327
-rw-r--r--src/mame/layout/j2nudshf.lay3327
-rw-r--r--src/mame/layout/j2paypkt.lay3327
-rw-r--r--src/mame/layout/j2penny.lay3327
-rw-r--r--src/mame/layout/j2plsmnd.lay3014
-rw-r--r--src/mame/layout/j2plsnud.lay3327
-rw-r--r--src/mame/layout/j2pndrsh.lay3327
-rw-r--r--src/mame/layout/j2rdclb.lay3429
-rw-r--r--src/mame/layout/j2reelbn.lay3429
-rw-r--r--src/mame/layout/j2reelbo.lay3429
-rw-r--r--src/mame/layout/j2reelcz.lay3327
-rw-r--r--src/mame/layout/j2reelmc.lay3429
-rw-r--r--src/mame/layout/j2reelmo.lay3327
-rw-r--r--src/mame/layout/j2silvcl.lay3327
-rw-r--r--src/mame/layout/j2silvsh.lay3327
-rw-r--r--src/mame/layout/j2sldgld.lay3633
-rw-r--r--src/mame/layout/j2slvrgh.lay3327
-rw-r--r--src/mame/layout/j2spcrsv.lay3014
-rw-r--r--src/mame/layout/j2sstrea.lay3327
-rw-r--r--src/mame/layout/j2stahed.lay3429
-rw-r--r--src/mame/layout/j2supfrc.lay3014
-rw-r--r--src/mame/layout/j2suprsh.lay3327
-rw-r--r--src/mame/layout/j2supsft.lay3327
-rw-r--r--src/mame/layout/j2supstp.lay3429
-rw-r--r--src/mame/layout/j2suptrk.lay3327
-rw-r--r--src/mame/layout/j2swbank.lay3327
-rw-r--r--src/mame/layout/j2take2.lay3014
-rw-r--r--src/mame/layout/j2trail.lay3327
-rw-r--r--src/mame/layout/j2tstplt.lay3014
-rw-r--r--src/mame/layout/j5ar80cla.lay3531
-rw-r--r--src/mame/layout/j5cira.lay3361
-rw-r--r--src/mame/layout/j5fairp.lay3327
-rw-r--r--src/mame/layout/j5firebl.lay3327
-rw-r--r--src/mame/layout/j5hollyc.lay3361
-rw-r--r--src/mame/layout/j5hotdoga.lay3429
-rw-r--r--src/mame/layout/j5indsum.lay3327
-rw-r--r--src/mame/layout/j5intr.lay3361
-rw-r--r--src/mame/layout/j5movie.lay3531
-rw-r--r--src/mame/layout/j5nite.lay3531
-rw-r--r--src/mame/layout/j5palma.lay3429
-rw-r--r--src/mame/layout/j5popeye.lay3429
-rw-r--r--src/mame/layout/j5sizl.lay3327
-rw-r--r--src/mame/layout/j5supbara.lay3633
-rw-r--r--src/mame/layout/j5suphi.lay3429
-rw-r--r--src/mame/layout/j5swop.lay3429
-rw-r--r--src/mame/layout/j5term.lay3361
-rw-r--r--src/mame/layout/j5topshp.lay3429
-rw-r--r--src/mame/layout/j5trail.lay3531
-rw-r--r--src/mame/layout/j5ujb.lay3327
-rw-r--r--src/mame/layout/j5wsc.lay3531
-rw-r--r--src/mame/layout/j6aceclb.lay2272
-rw-r--r--src/mame/layout/j6acehi.lay3312
-rw-r--r--src/mame/layout/j6amdrm.lay3312
-rw-r--r--src/mame/layout/j6arcadee.lay210
-rw-r--r--src/mame/layout/j6big50.lay210
-rw-r--r--src/mame/layout/j6bigbukc.lay3299
-rw-r--r--src/mame/layout/j6bigtopa.lay244
-rw-r--r--src/mame/layout/j6bnkrcl.lay3519
-rw-r--r--src/mame/layout/j6bnza.lay3142
-rw-r--r--src/mame/layout/j6btbwd.lay3587
-rw-r--r--src/mame/layout/j6camelt.lay210
-rw-r--r--src/mame/layout/j6casclaf.lay3417
-rw-r--r--src/mame/layout/j6cascze.lay3298
-rw-r--r--src/mame/layout/j6colcsh.lay210
-rw-r--r--src/mame/layout/j6cpal.lay3315
-rw-r--r--src/mame/layout/j6crack.lay3315
-rw-r--r--src/mame/layout/j6drdogh.lay210
-rw-r--r--src/mame/layout/j6euphor.lay3349
-rw-r--r--src/mame/layout/j6ewn.lay3281
-rw-r--r--src/mame/layout/j6fastfr.lay2968
-rw-r--r--src/mame/layout/j6ffce.lay3417
-rw-r--r--src/mame/layout/j6frtpot.lay3315
-rw-r--r--src/mame/layout/j6gidogh.lay3315
-rw-r--r--src/mame/layout/j6gldclb.lay3383
-rw-r--r--src/mame/layout/j6gogold.lay3315
-rw-r--r--src/mame/layout/j6goldgla.lay3315
-rw-r--r--src/mame/layout/j6guabc.lay3312
-rw-r--r--src/mame/layout/j6guabcl.lay3417
-rw-r--r--src/mame/layout/j6hapyhrb.lay3295
-rw-r--r--src/mame/layout/j6impuls.lay210
-rw-r--r--src/mame/layout/j6impuls15.lay210
-rw-r--r--src/mame/layout/j6indy6.lay210
-rw-r--r--src/mame/layout/j6indy8.lay210
-rw-r--r--src/mame/layout/j6kfc.lay3417
-rw-r--r--src/mame/layout/j6kungfu.lay244
-rw-r--r--src/mame/layout/j6megbck.lay3315
-rw-r--r--src/mame/layout/j6mono60.lay3346
-rw-r--r--src/mame/layout/j6mono6010.lay3346
-rw-r--r--src/mame/layout/j6mono608.lay3346
-rw-r--r--src/mame/layout/j6monst.lay3417
-rw-r--r--src/mame/layout/j6montlk.lay3312
-rw-r--r--src/mame/layout/j6montlk6.lay3312
-rw-r--r--src/mame/layout/j6oxobin.lay193
-rw-r--r--src/mame/layout/j6oxobin10.lay193
-rw-r--r--src/mame/layout/j6quick.lay3315
-rw-r--r--src/mame/layout/j6ra.lay3281
-rw-r--r--src/mame/layout/j6redarwf.lay3315
-rw-r--r--src/mame/layout/j6reelmn.lay346
-rw-r--r--src/mame/layout/j6rh6cld.lay3587
-rw-r--r--src/mame/layout/j6rhchil.lay3655
-rw-r--r--src/mame/layout/j6rico10.lay244
-rw-r--r--src/mame/layout/j6roller10.lay210
-rw-r--r--src/mame/layout/j6roller15.lay3349
-rw-r--r--src/mame/layout/j6roller8.lay210
-rw-r--r--src/mame/layout/j6slagng.lay3315
-rw-r--r--src/mame/layout/j6snakes.lay210
-rw-r--r--src/mame/layout/j6sonic10.lay210
-rw-r--r--src/mame/layout/j6stards.lay210
-rw-r--r--src/mame/layout/j6swpdrp.lay3451
-rw-r--r--src/mame/layout/j6tombc.lay3281
-rw-r--r--src/mame/layout/j6topflg.lay3383
-rw-r--r--src/mame/layout/j6twst.lay3315
-rw-r--r--src/mame/layout/j6untch.lay210
-rw-r--r--src/mame/layout/j6vindal.lay3383
-rw-r--r--src/mame/layout/j6vivark.lay3281
-rw-r--r--src/mame/layout/j6wizardd.lay210
-rw-r--r--src/mame/layout/j6wldkng.lay244
-rw-r--r--src/mame/layout/j80bac.lay3014
-rw-r--r--src/mame/layout/j80bounc.lay3014
-rw-r--r--src/mame/layout/j80frogh.lay3014
-rw-r--r--src/mame/layout/j80golds.lay3014
-rw-r--r--src/mame/layout/j80hotln.lay3014
-rw-r--r--src/mame/layout/j80myspn.lay3014
-rw-r--r--src/mame/layout/j80nudg2.lay3014
-rw-r--r--src/mame/layout/j80rr.lay3014
-rw-r--r--src/mame/layout/j80supbk.lay3014
-rw-r--r--src/mame/layout/j80supst.lay3014
-rw-r--r--src/mame/layout/j80topsp.lay3014
-rw-r--r--src/mame/layout/j80wsprt2.lay3014
-rw-r--r--src/mame/layout/jeutel.lay68
-rw-r--r--src/mame/layout/lafootb.lay104
-rw-r--r--src/mame/layout/m1albsqp.lay3475
-rw-r--r--src/mame/layout/m1apollo2.lay3475
-rw-r--r--src/mame/layout/m1bargnc.lay3475
-rw-r--r--src/mame/layout/m1bghou.lay3395
-rw-r--r--src/mame/layout/m1bigdel.lay3327
-rw-r--r--src/mame/layout/m1calypsa.lay3361
-rw-r--r--src/mame/layout/m1casclb.lay3014
-rw-r--r--src/mame/layout/m1casroy1.lay3014
-rw-r--r--src/mame/layout/m1chain.lay3361
-rw-r--r--src/mame/layout/m1cik51o.lay3361
-rw-r--r--src/mame/layout/m1clbfvr.lay3014
-rw-r--r--src/mame/layout/m1cluecb1.lay3463
-rw-r--r--src/mame/layout/m1cluedo4.lay3361
-rw-r--r--src/mame/layout/m1cluessf.lay3361
-rw-r--r--src/mame/layout/m1coro21n.lay3361
-rw-r--r--src/mame/layout/m1cororrk.lay3361
-rw-r--r--src/mame/layout/m1dkong91n.lay3361
-rw-r--r--src/mame/layout/m1dxmono51o.lay3395
-rw-r--r--src/mame/layout/m1eastndl.lay3327
-rw-r--r--src/mame/layout/m1eastqv3.lay3361
-rw-r--r--src/mame/layout/m1fantfbb.lay3429
-rw-r--r--src/mame/layout/m1fightb.lay3361
-rw-r--r--src/mame/layout/m1frexplc.lay3361
-rw-r--r--src/mame/layout/m1gladg.lay3429
-rw-r--r--src/mame/layout/m1grescb.lay3361
-rw-r--r--src/mame/layout/m1guvnor.lay3327
-rw-r--r--src/mame/layout/m1hotpoth.lay3361
-rw-r--r--src/mame/layout/m1htclb.lay3014
-rw-r--r--src/mame/layout/m1imclb.lay3463
-rw-r--r--src/mame/layout/m1infern.lay3327
-rw-r--r--src/mame/layout/m1inwinc.lay3361
-rw-r--r--src/mame/layout/m1itjobc.lay3361
-rw-r--r--src/mame/layout/m1itskob.lay3361
-rw-r--r--src/mame/layout/m1jpmult.lay3014
-rw-r--r--src/mame/layout/m1lucknon.lay3327
-rw-r--r--src/mame/layout/m1luxorb.lay3361
-rw-r--r--src/mame/layout/m1manhat.lay3361
-rw-r--r--src/mame/layout/m1monclb.lay3463
-rw-r--r--src/mame/layout/m1mongam.lay3463
-rw-r--r--src/mame/layout/m1monmon.lay3361
-rw-r--r--src/mame/layout/m1monou.lay3395
-rw-r--r--src/mame/layout/m1nhp.lay3327
-rw-r--r--src/mame/layout/m1nudbnke.lay3361
-rw-r--r--src/mame/layout/m1omega.lay3361
-rw-r--r--src/mame/layout/m1onbusa.lay3361
-rw-r--r--src/mame/layout/m1pinkpc.lay3361
-rw-r--r--src/mame/layout/m1przeeb.lay3361
-rw-r--r--src/mame/layout/m1retpp.lay3395
-rw-r--r--src/mame/layout/m1search.lay3014
-rw-r--r--src/mame/layout/m1sptlgtc.lay3361
-rw-r--r--src/mame/layout/m1startr.lay3361
-rw-r--r--src/mame/layout/m1sudnima.lay3361
-rw-r--r--src/mame/layout/m1taknot.lay3014
-rw-r--r--src/mame/layout/m1thatlfc.lay3361
-rw-r--r--src/mame/layout/m1topstr.lay3327
-rw-r--r--src/mame/layout/m1triviax.lay3361
-rw-r--r--src/mame/layout/m1trtr.lay3361
-rw-r--r--src/mame/layout/m1ttcash.lay3361
-rw-r--r--src/mame/layout/m1wldzner.lay3361
-rw-r--r--src/mame/layout/m1wotwa.lay3361
-rw-r--r--src/mame/layout/m3acech.lay3014
-rw-r--r--src/mame/layout/m3autort.lay3014
-rw-r--r--src/mame/layout/m3biggam.lay3014
-rw-r--r--src/mame/layout/m3bigsht.lay3014
-rw-r--r--src/mame/layout/m3blkhle.lay3014
-rw-r--r--src/mame/layout/m3cabreta.lay3014
-rw-r--r--src/mame/layout/m3chase.lay3014
-rw-r--r--src/mame/layout/m3circle.lay3429
-rw-r--r--src/mame/layout/m3cskill.lay3014
-rw-r--r--src/mame/layout/m3cunlim.lay3014
-rw-r--r--src/mame/layout/m3fortun.lay1971
-rw-r--r--src/mame/layout/m3gcrown.lay1971
-rw-r--r--src/mame/layout/m3gmine.lay1971
-rw-r--r--src/mame/layout/m3lineup.lay1971
-rw-r--r--src/mame/layout/m3loony.lay1971
-rw-r--r--src/mame/layout/m3nnice.lay1971
-rw-r--r--src/mame/layout/m3oddson.lay1971
-rw-r--r--src/mame/layout/m3online.lay1971
-rw-r--r--src/mame/layout/m3oxo.lay1971
-rw-r--r--src/mame/layout/m3ratrce.lay1971
-rw-r--r--src/mame/layout/m3razdaza.lay1971
-rw-r--r--src/mame/layout/m3replay.lay1971
-rw-r--r--src/mame/layout/m3rockpl.lay1971
-rw-r--r--src/mame/layout/m3rollem.lay1971
-rw-r--r--src/mame/layout/m3rxchng.lay1971
-rw-r--r--src/mame/layout/m3sexcu.lay1971
-rw-r--r--src/mame/layout/m3slight.lay1971
-rw-r--r--src/mame/layout/m3snaphp.lay1971
-rw-r--r--src/mame/layout/m3spoof.lay1971
-rw-r--r--src/mame/layout/m3supadr.lay1971
-rw-r--r--src/mame/layout/m3supnud.lay1971
-rw-r--r--src/mame/layout/m3supspo.lay1971
-rw-r--r--src/mame/layout/m3supwin.lay1971
-rw-r--r--src/mame/layout/m3sweep.lay1971
-rw-r--r--src/mame/layout/m3tfair.lay1971
-rw-r--r--src/mame/layout/m3toplin.lay1971
-rw-r--r--src/mame/layout/m3winagnb.lay1971
-rw-r--r--src/mame/layout/m3winstr.lay1971
-rw-r--r--src/mame/layout/m3xchngg.lay1971
-rw-r--r--src/mame/layout/m4aao.lay2386
-rw-r--r--src/mame/layout/m4actbnk.lay193
-rw-r--r--src/mame/layout/m4actclb.lay2386
-rw-r--r--src/mame/layout/m4actpak.lay193
-rw-r--r--src/mame/layout/m4addr.lay2318
-rw-r--r--src/mame/layout/m4alladv.lay2284
-rw-r--r--src/mame/layout/m4alpha.lay2080
-rw-r--r--src/mame/layout/m4andybt.lay244
-rw-r--r--src/mame/layout/m4andycp.lay210
-rw-r--r--src/mame/layout/m4andyfh.lay193
-rw-r--r--src/mame/layout/m4andyge.lay193
-rw-r--r--src/mame/layout/m4apachg.lay193
-rw-r--r--src/mame/layout/m4tenten.lay193
-rw-r--r--src/mame/layout/m5addams.lay2318
-rw-r--r--src/mame/layout/m5all41d.lay2318
-rw-r--r--src/mame/layout/m5arab.lay1971
-rw-r--r--src/mame/layout/m5austin11.lay2318
-rw-r--r--src/mame/layout/m5barkng.lay2284
-rw-r--r--src/mame/layout/m5barmy.lay2318
-rw-r--r--src/mame/layout/m5baxe04.lay2386
-rw-r--r--src/mame/layout/m5bbro.lay2318
-rw-r--r--src/mame/layout/m5bbrocl.lay2420
-rw-r--r--src/mame/layout/m5beansa.lay2318
-rw-r--r--src/mame/layout/m5bigchs.lay2318
-rw-r--r--src/mame/layout/m5biggam.lay2318
-rw-r--r--src/mame/layout/m5bling.lay2352
-rw-r--r--src/mame/layout/m5blkwht11.lay2080
-rw-r--r--src/mame/layout/m5bnzclb.lay2420
-rw-r--r--src/mame/layout/m5btlbnk.lay2420
-rw-r--r--src/mame/layout/m5bttf.lay2318
-rw-r--r--src/mame/layout/m5bwaves.lay2284
-rw-r--r--src/mame/layout/m5carou.lay2318
-rw-r--r--src/mame/layout/m5cashat.lay2284
-rw-r--r--src/mame/layout/m5cashrn.lay2284
-rw-r--r--src/mame/layout/m5cbw.lay2318
-rw-r--r--src/mame/layout/m5centcl.lay2386
-rw-r--r--src/mame/layout/m5circlb33.lay2590
-rw-r--r--src/mame/layout/m5circus0a.lay2284
-rw-r--r--src/mame/layout/m5clifhn.lay2284
-rw-r--r--src/mame/layout/m5clown11.lay2318
-rw-r--r--src/mame/layout/m5codft.lay2318
-rw-r--r--src/mame/layout/m5cosclb.lay2522
-rw-r--r--src/mame/layout/m5crzkni.lay2284
-rw-r--r--src/mame/layout/m5cshkcb.lay2420
-rw-r--r--src/mame/layout/m5cshstx.lay2318
-rw-r--r--src/mame/layout/m5dblqtsb.lay2318
-rw-r--r--src/mame/layout/m5devil.lay2318
-rw-r--r--src/mame/layout/m5dick10.lay2318
-rw-r--r--src/mame/layout/m5doshpk05.lay2386
-rw-r--r--src/mame/layout/m5egr.lay2284
-rw-r--r--src/mame/layout/m5elband.lay2522
-rw-r--r--src/mame/layout/m5elim.lay2318
-rw-r--r--src/mame/layout/m5evgrhr.lay2284
-rw-r--r--src/mame/layout/m5ewn.lay2318
-rw-r--r--src/mame/layout/m5extrm.lay2386
-rw-r--r--src/mame/layout/m5fiddle.lay2318
-rw-r--r--src/mame/layout/m5fire.lay2318
-rw-r--r--src/mame/layout/m5firebl.lay2318
-rw-r--r--src/mame/layout/m5flipcr.lay2284
-rw-r--r--src/mame/layout/m5fortby.lay2318
-rw-r--r--src/mame/layout/m5frnzy.lay2318
-rw-r--r--src/mame/layout/m5funsun.lay2386
-rw-r--r--src/mame/layout/m5gdrag.lay2318
-rw-r--r--src/mame/layout/m5ggems20.lay2692
-rw-r--r--src/mame/layout/m5gimmie.lay2318
-rw-r--r--src/mame/layout/m5grush.lay2284
-rw-r--r--src/mame/layout/m5grush5.lay2284
-rw-r--r--src/mame/layout/m5gsstrk07.lay2284
-rw-r--r--src/mame/layout/m5gstrik.lay2318
-rw-r--r--src/mame/layout/m5hellrz.lay1971
-rw-r--r--src/mame/layout/m5hgl14.lay2318
-rw-r--r--src/mame/layout/m5hiclau.lay2454
-rw-r--r--src/mame/layout/m5hifly.lay2318
-rw-r--r--src/mame/layout/m5hilok.lay1971
-rw-r--r--src/mame/layout/m5hisprt.lay2318
-rw-r--r--src/mame/layout/m5hlsumo.lay2284
-rw-r--r--src/mame/layout/m5holy.lay2318
-rw-r--r--src/mame/layout/m5hopidl.lay2420
-rw-r--r--src/mame/layout/m5hotslt.lay2284
-rw-r--r--src/mame/layout/m5hotstf.lay2318
-rw-r--r--src/mame/layout/m5hypvip.lay2318
-rw-r--r--src/mame/layout/m5jackbx.lay1971
-rw-r--r--src/mame/layout/m5jackp2.lay2318
-rw-r--r--src/mame/layout/m5jackpt.lay2318
-rw-r--r--src/mame/layout/m5jlyjwl.lay2284
-rw-r--r--src/mame/layout/m5jmpgem01.lay2318
-rw-r--r--src/mame/layout/m5kingqc06.lay2386
-rw-r--r--src/mame/layout/m5kkebab.lay2318
-rw-r--r--src/mame/layout/m5korma.lay2454
-rw-r--r--src/mame/layout/m5loony.lay2318
-rw-r--r--src/mame/layout/m5loot.lay2590
-rw-r--r--src/mame/layout/m5lotta.lay2318
-rw-r--r--src/mame/layout/m5martns07.lay2284
-rw-r--r--src/mame/layout/m5mega.lay2454
-rw-r--r--src/mame/layout/m5mmak06.lay2318
-rw-r--r--src/mame/layout/m5monmst.lay2318
-rw-r--r--src/mame/layout/m5mpfc.lay2318
-rw-r--r--src/mame/layout/m5mprio.lay2386
-rw-r--r--src/mame/layout/m5neptun.lay2318
-rw-r--r--src/mame/layout/m5nnww.lay2284
-rw-r--r--src/mame/layout/m5oohaah.lay2318
-rw-r--r--src/mame/layout/m5oohrio.lay2284
-rw-r--r--src/mame/layout/m5openbx05.lay2284
-rw-r--r--src/mame/layout/m5overld.lay2318
-rw-r--r--src/mame/layout/m5peepsh.lay2318
-rw-r--r--src/mame/layout/m5piefac.lay2624
-rw-r--r--src/mame/layout/m5piefcr.lay2590
-rw-r--r--src/mame/layout/m5ppussy.lay2284
-rw-r--r--src/mame/layout/m5psyccl01.lay2488
-rw-r--r--src/mame/layout/m5psycho.lay2318
-rw-r--r--src/mame/layout/m5ptyani.lay2386
-rw-r--r--src/mame/layout/m5qdrawb.lay2318
-rw-r--r--src/mame/layout/m5qshot04.lay2284
-rw-r--r--src/mame/layout/m5ratpka.lay2318
-rw-r--r--src/mame/layout/m5razdz10.lay2386
-rw-r--r--src/mame/layout/m5redbal.lay2318
-rw-r--r--src/mame/layout/m5redrcka.lay2318
-rw-r--r--src/mame/layout/m5resfrg.lay2318
-rw-r--r--src/mame/layout/m5revo13.lay2386
-rw-r--r--src/mame/layout/m5rfymc.lay2284
-rw-r--r--src/mame/layout/m5rgclb12.lay2386
-rw-r--r--src/mame/layout/m5rhrgt02.lay2284
-rw-r--r--src/mame/layout/m5ritj.lay2318
-rw-r--r--src/mame/layout/m5rollup.lay2454
-rw-r--r--src/mame/layout/m5rollx.lay1971
-rw-r--r--src/mame/layout/m5rthh.lay2318
-rw-r--r--src/mame/layout/m5rub.lay2318
-rw-r--r--src/mame/layout/m5rwb.lay2590
-rw-r--r--src/mame/layout/m5scharg.lay2284
-rw-r--r--src/mame/layout/m5seven.lay2284
-rw-r--r--src/mame/layout/m5shark.lay2318
-rw-r--r--src/mame/layout/m5sheik.lay2318
-rw-r--r--src/mame/layout/m5skulcl20.lay2454
-rw-r--r--src/mame/layout/m5sondra.lay2318
-rw-r--r--src/mame/layout/m5speccl.lay2420
-rw-r--r--src/mame/layout/m5spiker.lay2386
-rw-r--r--src/mame/layout/m5spins.lay2284
-rw-r--r--src/mame/layout/m5squids06.lay2318
-rw-r--r--src/mame/layout/m5sstrk.lay2284
-rw-r--r--src/mame/layout/m5starcl.lay2590
-rw-r--r--src/mame/layout/m5stars26.lay2590
-rw-r--r--src/mame/layout/m5stax.lay2284
-rw-r--r--src/mame/layout/m5supnov.lay2318
-rw-r--r--src/mame/layout/m5supro.lay2284
-rw-r--r--src/mame/layout/m5tbird.lay2284
-rw-r--r--src/mame/layout/m5tempcl.lay2420
-rw-r--r--src/mame/layout/m5tempp.lay2590
-rw-r--r--src/mame/layout/m5tempt2.lay2284
-rw-r--r--src/mame/layout/m5tictacbwb.lay2590
-rw-r--r--src/mame/layout/m5trail.lay2420
-rw-r--r--src/mame/layout/m5ultimo04.lay2386
-rw-r--r--src/mame/layout/m5upover.lay2352
-rw-r--r--src/mame/layout/m5vampup.lay2318
-rw-r--r--src/mame/layout/m5vertgo.lay2318
-rw-r--r--src/mame/layout/m5wking05.lay2284
-rw-r--r--src/mame/layout/m5wonga.lay2352
-rw-r--r--src/mame/layout/m5wthing20.lay2420
-rw-r--r--src/mame/layout/m5xchn.lay1971
-rw-r--r--src/mame/layout/m5xfact11.lay1971
-rw-r--r--src/mame/layout/mephisto_academy.lay148
-rw-r--r--src/mame/layout/mephisto_montec.lay248
-rw-r--r--src/mame/layout/metalman.lay142
-rw-r--r--src/mame/layout/mwcbaseb.lay4
-rw-r--r--src/mame/layout/novag_snova.lay4
-rw-r--r--src/mame/layout/nsm.lay80
-rw-r--r--src/mame/layout/play_1.lay8
-rw-r--r--src/mame/layout/play_3.lay6
-rw-r--r--src/mame/layout/pnchmn.lay1669
-rw-r--r--src/mame/layout/s3.lay2
-rw-r--r--src/mame/layout/s4.lay2
-rw-r--r--src/mame/layout/sc1barcd.lay2284
-rw-r--r--src/mame/layout/sc1bartk.lay2284
-rw-r--r--src/mame/layout/sc1cl65.lay2590
-rw-r--r--src/mame/layout/sc1clbtma.lay2420
-rw-r--r--src/mame/layout/sc1cwcl.lay2420
-rw-r--r--src/mame/layout/sc1dblch.lay2318
-rw-r--r--src/mame/layout/sc1pwrl.lay2284
-rw-r--r--src/mame/layout/sc1sirb.lay2318
-rw-r--r--src/mame/layout/sc1spct.lay2318
-rw-r--r--src/mame/layout/sc1str4.lay2284
-rw-r--r--src/mame/layout/sc2casr2.lay2696
-rw-r--r--src/mame/layout/sc2copcl7.lay484
-rw-r--r--src/mame/layout/sc2cpe.lay450
-rw-r--r--src/mame/layout/sc2cpg.lay2420
-rw-r--r--src/mame/layout/sc2eggs1.lay2318
-rw-r--r--src/mame/layout/sc2heypr.lay2352
-rw-r--r--src/mame/layout/sc2majes.lay2284
-rw-r--r--src/mame/layout/sc2prem2.lay590
-rw-r--r--src/mame/layout/sc2prom.lay382
-rw-r--r--src/mame/layout/sc2ptytm1.lay382
-rw-r--r--src/mame/layout/sc2suprz1.lay2318
-rw-r--r--src/mame/layout/sc2town2.lay382
-rw-r--r--src/mame/layout/sc4acesh.lay3269
-rw-r--r--src/mame/layout/sc4bantm.lay3235
-rw-r--r--src/mame/layout/sc4bedcl.lay2420
-rw-r--r--src/mame/layout/sc4blast.lay2420
-rw-r--r--src/mame/layout/sc4blokq.lay2454
-rw-r--r--src/mame/layout/sc4bobcl.lay2420
-rw-r--r--src/mame/layout/sc4brksp.lay2352
-rw-r--r--src/mame/layout/sc4brollb.lay2454
-rw-r--r--src/mame/layout/sc4cabin.lay2454
-rw-r--r--src/mame/layout/sc4canca.lay2284
-rw-r--r--src/mame/layout/sc4captn.lay2318
-rw-r--r--src/mame/layout/sc4cariqd.lay2318
-rw-r--r--src/mame/layout/sc4carrya.lay2318
-rw-r--r--src/mame/layout/sc4cashm.lay2318
-rw-r--r--src/mame/layout/sc4cclasd.lay2590
-rw-r--r--src/mame/layout/sc4cclim.lay2284
-rw-r--r--src/mame/layout/sc4cfcas.lay2284
-rw-r--r--src/mame/layout/sc4chainb.lay2488
-rw-r--r--src/mame/layout/sc4chavy.lay2352
-rw-r--r--src/mame/layout/sc4chick.lay2284
-rw-r--r--src/mame/layout/sc4chuba.lay2318
-rw-r--r--src/mame/layout/sc4clashd.lay2318
-rw-r--r--src/mame/layout/sc4clue.lay2318
-rw-r--r--src/mame/layout/sc4cmania.lay2454
-rw-r--r--src/mame/layout/sc4cmous.lay2352
-rw-r--r--src/mame/layout/sc4cnfr.lay2318
-rw-r--r--src/mame/layout/sc4coro.lay2318
-rw-r--r--src/mame/layout/sc4crc.lay2318
-rw-r--r--src/mame/layout/sc4crcla.lay2420
-rw-r--r--src/mame/layout/sc4crzgna.lay2284
-rw-r--r--src/mame/layout/sc4crzkya.lay2284
-rw-r--r--src/mame/layout/sc4cvanif.lay2454
-rw-r--r--src/mame/layout/sc4cvclb.lay2556
-rw-r--r--src/mame/layout/sc4dayltf.lay2930
-rw-r--r--src/mame/layout/sc4deepi.lay2352
-rw-r--r--src/mame/layout/sc4derby.lay2488
-rw-r--r--src/mame/layout/sc4dmineb.lay2318
-rw-r--r--src/mame/layout/sc4dnd.lay349
-rw-r--r--src/mame/layout/sc4dnddw.lay349
-rw-r--r--src/mame/layout/sc4dndtp.lay349
-rw-r--r--src/mame/layout/sc4drubyb.lay2284
-rw-r--r--src/mame/layout/sc4duckqa.lay2352
-rw-r--r--src/mame/layout/sc4dyna.lay2318
-rw-r--r--src/mame/layout/sc4eascsc.lay2386
-rw-r--r--src/mame/layout/sc4emmerc.lay2318
-rw-r--r--src/mame/layout/sc4fastfb.lay2454
-rw-r--r--src/mame/layout/sc4fd7tha.lay2318
-rw-r--r--src/mame/layout/sc4fever.lay2488
-rw-r--r--src/mame/layout/sc4fire.lay2318
-rw-r--r--src/mame/layout/sc4fpitcb.lay2318
-rw-r--r--src/mame/layout/sc4ftopib.lay2318
-rw-r--r--src/mame/layout/sc4fullt.lay2318
-rw-r--r--src/mame/layout/sc4fwpcs.lay2386
-rw-r--r--src/mame/layout/sc4gaga.lay2318
-rw-r--r--src/mame/layout/sc4gball.lay2318
-rw-r--r--src/mame/layout/sc4gd.lay2556
-rw-r--r--src/mame/layout/sc4gdclb.lay2658
-rw-r--r--src/mame/layout/sc4ggdlxf.lay2284
-rw-r--r--src/mame/layout/sc4gldcl.lay2420
-rw-r--r--src/mame/layout/sc4gslam.lay2590
-rw-r--r--src/mame/layout/sc4gx.lay2284
-rw-r--r--src/mame/layout/sc4hdd.lay2318
-rw-r--r--src/mame/layout/sc4hi5.lay2318
-rw-r--r--src/mame/layout/sc4hilo.lay2284
-rw-r--r--src/mame/layout/sc4himi.lay2318
-rw-r--r--src/mame/layout/sc4hissa.lay2454
-rw-r--r--src/mame/layout/sc4holyw.lay2318
-rw-r--r--src/mame/layout/sc4hotpr.lay2318
-rw-r--r--src/mame/layout/sc4hotwd.lay2522
-rw-r--r--src/mame/layout/sc4hyde.lay2284
-rw-r--r--src/mame/layout/sc4jack.lay2488
-rw-r--r--src/mame/layout/sc4kalei.lay2318
-rw-r--r--src/mame/layout/sc4knokb.lay2488
-rw-r--r--src/mame/layout/sc4lined.lay2284
-rw-r--r--src/mame/layout/sc4lions.lay2318
-rw-r--r--src/mame/layout/sc4lirb.lay2318
-rw-r--r--src/mame/layout/sc4lkbcl.lay2420
-rw-r--r--src/mame/layout/sc4lockb.lay2318
-rw-r--r--src/mame/layout/sc4mgr.lay2386
-rw-r--r--src/mame/layout/sc4mmmg.lay2318
-rw-r--r--src/mame/layout/sc4mondxe.lay2284
-rw-r--r--src/mame/layout/sc4monoba.lay2318
-rw-r--r--src/mame/layout/sc4monot.lay2284
-rw-r--r--src/mame/layout/sc4motor.lay2284
-rw-r--r--src/mame/layout/sc4mou.lay2318
-rw-r--r--src/mame/layout/sc4mr2rc.lay2182
-rw-r--r--src/mame/layout/sc4mspid.lay2386
-rw-r--r--src/mame/layout/sc4mtbb.lay2318
-rw-r--r--src/mame/layout/sc4mtbclb.lay2488
-rw-r--r--src/mame/layout/sc4nmtj.lay2454
-rw-r--r--src/mame/layout/sc4nudita.lay2284
-rw-r--r--src/mame/layout/sc4paccl.lay2420
-rw-r--r--src/mame/layout/sc4pacqpa.lay2318
-rw-r--r--src/mame/layout/sc4pen1c.lay2386
-rw-r--r--src/mame/layout/sc4pgold.lay2420
-rw-r--r--src/mame/layout/sc4pipe.lay2284
-rw-r--r--src/mame/layout/sc4plumb.lay2420
-rw-r--r--src/mame/layout/sc4po8.lay2318
-rw-r--r--src/mame/layout/sc4polic.lay2352
-rw-r--r--src/mame/layout/sc4pony.lay2488
-rw-r--r--src/mame/layout/sc4potsha.lay2318
-rw-r--r--src/mame/layout/sc4ppclb.lay2454
-rw-r--r--src/mame/layout/sc4pstata.lay2284
-rw-r--r--src/mame/layout/sc4pwrbq.lay2318
-rw-r--r--src/mame/layout/sc4pwrsg.lay2488
-rw-r--r--src/mame/layout/sc4qmodo.lay2318
-rw-r--r--src/mame/layout/sc4quidrb.lay2318
-rw-r--r--src/mame/layout/sc4redsq.lay2318
-rw-r--r--src/mame/layout/sc4revod.lay2454
-rw-r--r--src/mame/layout/sc4rhxcl.lay2590
-rw-r--r--src/mame/layout/sc4rhxcsa.lay2318
-rw-r--r--src/mame/layout/sc4richl.lay2556
-rw-r--r--src/mame/layout/sc4rmo.lay2284
-rw-r--r--src/mame/layout/sc4rogds.lay2454
-rw-r--r--src/mame/layout/sc4roksc.lay2318
-rw-r--r--src/mame/layout/sc4rotc.lay2420
-rw-r--r--src/mame/layout/sc4rtc.lay2454
-rw-r--r--src/mame/layout/sc4rttt.lay2318
-rw-r--r--src/mame/layout/sc4s6cd.lay2284
-rw-r--r--src/mame/layout/sc4sahed.lay2454
-rw-r--r--src/mame/layout/sc4sbust.lay2318
-rw-r--r--src/mame/layout/sc4slci.lay2488
-rw-r--r--src/mame/layout/sc4slihd.lay2318
-rw-r--r--src/mame/layout/sc4smk7.lay2284
-rw-r--r--src/mame/layout/sc4solgl.lay2454
-rw-r--r--src/mame/layout/sc4sparkd.lay2284
-rw-r--r--src/mame/layout/sc4sprng.lay2318
-rw-r--r--src/mame/layout/sc4srrca.lay2284
-rw-r--r--src/mame/layout/sc4starpk.lay2284
-rw-r--r--src/mame/layout/sc4strk.lay2284
-rw-r--r--src/mame/layout/sc4suscl.lay2420
-rw-r--r--src/mame/layout/sc4susk.lay2284
-rw-r--r--src/mame/layout/sc4taekw.lay2454
-rw-r--r--src/mame/layout/sc4takcl.lay2420
-rw-r--r--src/mame/layout/sc4tbana.lay2556
-rw-r--r--src/mame/layout/sc4tempt.lay2318
-rw-r--r--src/mame/layout/sc4tfclb.lay2420
-rw-r--r--src/mame/layout/sc4tic2.lay2284
-rw-r--r--src/mame/layout/sc4tload.lay2318
-rw-r--r--src/mame/layout/sc4tpshta.lay2318
-rw-r--r--src/mame/layout/sc4trail.lay2318
-rw-r--r--src/mame/layout/sc4tridn.lay2352
-rw-r--r--src/mame/layout/sc4ttomb.lay2454
-rw-r--r--src/mame/layout/sc4vrgclb.lay2386
-rw-r--r--src/mame/layout/sc4wldjkc.lay2284
-rw-r--r--src/mame/layout/sc4xmarka.lay2454
-rw-r--r--src/mame/layout/scat.lay26
-rw-r--r--src/mame/layout/shuffle11.lay129
-rw-r--r--src/mame/layout/shuffle4.lay111
-rw-r--r--src/mame/layout/shuffle9.lay111
-rw-r--r--src/mame/layout/stargame.lay150
-rw-r--r--src/mame/layout/tr606.lay23
-rw-r--r--src/mame/layout/vd.lay130
-rw-r--r--src/mame/layout/wico.lay4
-rw-r--r--src/mame/layout/z80clock.lay36
-rw-r--r--src/mame/machine/3dom2.cpp6
-rw-r--r--src/mame/machine/3dom2.h6
-rw-r--r--src/mame/machine/6883sam.cpp2
-rw-r--r--src/mame/machine/abc1600mac.cpp351
-rw-r--r--src/mame/machine/abc1600mac.h24
-rw-r--r--src/mame/machine/alpha8201.cpp8
-rw-r--r--src/mame/machine/amiga.cpp8
-rw-r--r--src/mame/machine/amstrad.cpp17
-rw-r--r--src/mame/machine/apexc.cpp6
-rw-r--r--src/mame/machine/apexc.h25
-rw-r--r--src/mame/machine/apollo.cpp6
-rw-r--r--src/mame/machine/apple2common.cpp13
-rw-r--r--src/mame/machine/archimedes_keyb.cpp152
-rw-r--r--src/mame/machine/archimedes_keyb.h22
-rw-r--r--src/mame/machine/asic65.cpp2
-rw-r--r--src/mame/machine/asic65.h2
-rw-r--r--src/mame/machine/atarigen.cpp10
-rw-r--r--src/mame/machine/atarigen.h2
-rw-r--r--src/mame/machine/atariscom.cpp2
-rw-r--r--src/mame/machine/atariscom.h2
-rw-r--r--src/mame/machine/badlands.cpp4
-rw-r--r--src/mame/machine/bbc.cpp6
-rw-r--r--src/mame/machine/bebox.cpp6
-rw-r--r--src/mame/machine/bingoct.cpp2
-rw-r--r--src/mame/machine/bublbobl.cpp2
-rw-r--r--src/mame/machine/cdicdic.cpp1843
-rw-r--r--src/mame/machine/cdicdic.h193
-rw-r--r--src/mame/machine/cdislavehle.cpp119
-rw-r--r--src/mame/machine/cdislavehle.h24
-rw-r--r--src/mame/machine/cmi_mkbd.cpp2
-rw-r--r--src/mame/machine/cmi_mkbd.h2
-rw-r--r--src/mame/machine/coco.cpp3
-rw-r--r--src/mame/machine/coco_vhd.h5
-rw-r--r--src/mame/machine/cuda.cpp6
-rw-r--r--src/mame/machine/cuda.h2
-rw-r--r--src/mame/machine/dc.cpp183
-rw-r--r--src/mame/machine/dc_g2if.cpp538
-rw-r--r--src/mame/machine/dc_g2if.h105
-rw-r--r--src/mame/machine/dccons.cpp113
-rw-r--r--src/mame/machine/dec0.cpp19
-rw-r--r--src/mame/machine/dec_lk201.cpp2
-rw-r--r--src/mame/machine/dec_lk201.h2
-rw-r--r--src/mame/machine/decopincpu.cpp2
-rw-r--r--src/mame/machine/decopincpu.h2
-rw-r--r--src/mame/machine/dgn_beta.cpp26
-rw-r--r--src/mame/machine/digilog320_kbd.cpp309
-rw-r--r--src/mame/machine/digilog320_kbd.h64
-rw-r--r--src/mame/machine/dmac_0266.cpp2
-rw-r--r--src/mame/machine/dmac_0266.h2
-rw-r--r--src/mame/machine/dmac_0448.cpp4
-rw-r--r--src/mame/machine/dmac_0448.h4
-rw-r--r--src/mame/machine/e22_kbd.cpp9
-rw-r--r--src/mame/machine/egret.cpp4
-rw-r--r--src/mame/machine/egret.h2
-rw-r--r--src/mame/machine/elan_eu3a05commonsys.cpp2
-rw-r--r--src/mame/machine/elan_eu3a05commonsys.h2
-rw-r--r--src/mame/machine/electron.cpp13
-rw-r--r--src/mame/machine/esqpanel.cpp3
-rw-r--r--src/mame/machine/esqpanel.h2
-rw-r--r--src/mame/machine/esqvfd.cpp2
-rw-r--r--src/mame/machine/esqvfd.h2
-rw-r--r--src/mame/machine/f5220_kbd.cpp300
-rw-r--r--src/mame/machine/f5220_kbd.h60
-rw-r--r--src/mame/machine/fidel_clockdiv.cpp2
-rw-r--r--src/mame/machine/fm_scsi.cpp2
-rw-r--r--src/mame/machine/fm_scsi.h2
-rw-r--r--src/mame/machine/fmt_icmem.cpp2
-rw-r--r--src/mame/machine/fmt_icmem.h10
-rw-r--r--src/mame/machine/gaelco3d.h1
-rw-r--r--src/mame/machine/gaelcrpt.cpp64
-rw-r--r--src/mame/machine/gaelcrpt.h36
-rw-r--r--src/mame/machine/gb.cpp25
-rw-r--r--src/mame/machine/gdrom.cpp154
-rw-r--r--src/mame/machine/hds200_kbd.cpp407
-rw-r--r--src/mame/machine/hds200_kbd.h66
-rw-r--r--src/mame/machine/hp2640_tape.cpp2
-rw-r--r--src/mame/machine/hp2640_tape.h2
-rw-r--r--src/mame/machine/hp48_port.h7
-rw-r--r--src/mame/machine/hp80_optrom.cpp2
-rw-r--r--src/mame/machine/hp80_optrom.h10
-rw-r--r--src/mame/machine/hp9825_optrom.cpp2
-rw-r--r--src/mame/machine/hp9825_optrom.h10
-rw-r--r--src/mame/machine/hp9845_optrom.cpp2
-rw-r--r--src/mame/machine/hp9845_optrom.h10
-rw-r--r--src/mame/machine/hp9845_printer.cpp2
-rw-r--r--src/mame/machine/hp9845_printer.h2
-rw-r--r--src/mame/machine/hp_ipc_optrom.cpp2
-rw-r--r--src/mame/machine/hp_ipc_optrom.h10
-rw-r--r--src/mame/machine/hpc3.cpp4
-rw-r--r--src/mame/machine/hpc3.h4
-rw-r--r--src/mame/machine/hyperscan_card.cpp9
-rw-r--r--src/mame/machine/hyperscan_card.h10
-rw-r--r--src/mame/machine/ibm6580_fdc.cpp2
-rw-r--r--src/mame/machine/ibm6580_fdc.h6
-rw-r--r--src/mame/machine/ibm6580_kbd.cpp103
-rw-r--r--src/mame/machine/ibm6580_kbd.h13
-rw-r--r--src/mame/machine/imm6_76.h6
-rw-r--r--src/mame/machine/intv.cpp4
-rw-r--r--src/mame/machine/iteagle_fpga.cpp4
-rw-r--r--src/mame/machine/iteagle_fpga.h2
-rw-r--r--src/mame/machine/jaleco_ms32_sysctrl.cpp2
-rw-r--r--src/mame/machine/jaleco_ms32_sysctrl.h2
-rw-r--r--src/mame/machine/k573dio.cpp80
-rw-r--r--src/mame/machine/k573dio.h14
-rw-r--r--src/mame/machine/k573kara.cpp2
-rw-r--r--src/mame/machine/k573kara.h2
-rw-r--r--src/mame/machine/k573mcr.cpp13
-rw-r--r--src/mame/machine/k7659kb.cpp2
-rw-r--r--src/mame/machine/k7659kb.h2
-rw-r--r--src/mame/machine/kaneko_calc3.cpp2
-rw-r--r--src/mame/machine/kaneko_calc3.h2
-rw-r--r--src/mame/machine/kc_keyb.cpp2
-rw-r--r--src/mame/machine/kc_keyb.h2
-rw-r--r--src/mame/machine/lynx.cpp903
-rw-r--r--src/mame/machine/m1comm.h2
-rw-r--r--src/mame/machine/m24_kbd.cpp2
-rw-r--r--src/mame/machine/m24_kbd.h6
-rw-r--r--src/mame/machine/m2comm.h2
-rw-r--r--src/mame/machine/m3comm.cpp2
-rw-r--r--src/mame/machine/m3comm.h2
-rw-r--r--src/mame/machine/macadb.cpp34
-rw-r--r--src/mame/machine/macadb.h5
-rw-r--r--src/mame/machine/mace.cpp2
-rw-r--r--src/mame/machine/mace.h2
-rw-r--r--src/mame/machine/macrtc.cpp2
-rw-r--r--src/mame/machine/macrtc.h2
-rw-r--r--src/mame/machine/maple-dc.cpp2
-rw-r--r--src/mame/machine/maple-dc.h2
-rw-r--r--src/mame/machine/mapledev.cpp2
-rw-r--r--src/mame/machine/mapledev.h2
-rw-r--r--src/mame/machine/mct_adr.cpp2
-rw-r--r--src/mame/machine/megadriv.cpp4
-rw-r--r--src/mame/machine/micro3d.cpp4
-rw-r--r--src/mame/machine/midikbd.cpp2
-rw-r--r--src/mame/machine/midikbd.h2
-rw-r--r--src/mame/machine/mie.cpp2
-rw-r--r--src/mame/machine/mie.h2
-rw-r--r--src/mame/machine/mm1kb.cpp2
-rw-r--r--src/mame/machine/mm1kb.h2
-rw-r--r--src/mame/machine/mpu4.cpp6
-rw-r--r--src/mame/machine/n64.cpp2
-rw-r--r--src/mame/machine/namco06.cpp89
-rw-r--r--src/mame/machine/namco06.h6
-rw-r--r--src/mame/machine/namco50.cpp9
-rw-r--r--src/mame/machine/namco50.h1
-rw-r--r--src/mame/machine/namco51.cpp9
-rw-r--r--src/mame/machine/namco51.h1
-rw-r--r--src/mame/machine/naomi.cpp407
-rw-r--r--src/mame/machine/naomig1.cpp2
-rw-r--r--src/mame/machine/naomig1.h2
-rw-r--r--src/mame/machine/naomigd.cpp4
-rw-r--r--src/mame/machine/nb1412m2.cpp2
-rw-r--r--src/mame/machine/nb1412m2.h2
-rw-r--r--src/mame/machine/nb1413m3.cpp4
-rw-r--r--src/mame/machine/nb1413m3.h2
-rw-r--r--src/mame/machine/nes.cpp38
-rw-r--r--src/mame/machine/nextkbd.cpp2
-rw-r--r--src/mame/machine/nextkbd.h2
-rw-r--r--src/mame/machine/ng_memcard.cpp2
-rw-r--r--src/mame/machine/ng_memcard.h9
-rw-r--r--src/mame/machine/p2000t_mdcr.cpp2
-rw-r--r--src/mame/machine/p2000t_mdcr.h2
-rw-r--r--src/mame/machine/pc1512kb.cpp2
-rw-r--r--src/mame/machine/pc1512kb.h2
-rw-r--r--src/mame/machine/pc80s31k.cpp2
-rw-r--r--src/mame/machine/pc80s31k.h2
-rw-r--r--src/mame/machine/pc9801_kbd.cpp2
-rw-r--r--src/mame/machine/pc9801_kbd.h2
-rw-r--r--src/mame/machine/pce220_ser.cpp2
-rw-r--r--src/mame/machine/pce220_ser.h8
-rw-r--r--src/mame/machine/pgm2_memcard.cpp2
-rw-r--r--src/mame/machine/pgm2_memcard.h10
-rw-r--r--src/mame/machine/pmd85.cpp4
-rw-r--r--src/mame/machine/pocketc.cpp2
-rw-r--r--src/mame/machine/psion_pack.cpp14
-rw-r--r--src/mame/machine/psion_pack.h13
-rw-r--r--src/mame/machine/psxcd.cpp15
-rw-r--r--src/mame/machine/psxcd.h3
-rw-r--r--src/mame/machine/qx10kbd.cpp2
-rw-r--r--src/mame/machine/qx10kbd.h2
-rw-r--r--src/mame/machine/rmnimbus.cpp290
-rw-r--r--src/mame/machine/rtpc_iocc.cpp1
-rw-r--r--src/mame/machine/rtpc_iocc.h6
-rw-r--r--src/mame/machine/s32comm.cpp4
-rw-r--r--src/mame/machine/s32comm.h2
-rw-r--r--src/mame/machine/saa7191.cpp2
-rw-r--r--src/mame/machine/saa7191.h2
-rw-r--r--src/mame/machine/seicopbl.cpp2
-rw-r--r--src/mame/machine/sgi.cpp2
-rw-r--r--src/mame/machine/sgi.h2
-rw-r--r--src/mame/machine/snes.cpp71
-rw-r--r--src/mame/machine/snescx4.cpp18
-rw-r--r--src/mame/machine/sorcerer.cpp6
-rw-r--r--src/mame/machine/stfight.cpp2
-rw-r--r--src/mame/machine/tatsumi.cpp8
-rw-r--r--src/mame/machine/thomson.cpp2
-rw-r--r--src/mame/machine/ti85.cpp2
-rw-r--r--src/mame/machine/tsconf.cpp653
-rw-r--r--src/mame/machine/upd65031.cpp2
-rw-r--r--src/mame/machine/upd65031.h2
-rw-r--r--src/mame/machine/vectrex.cpp21
-rw-r--r--src/mame/machine/victor9k_fdc.cpp2
-rw-r--r--src/mame/machine/victor9k_fdc.h2
-rw-r--r--src/mame/machine/vino.cpp2
-rw-r--r--src/mame/machine/vino.h2
-rw-r--r--src/mame/machine/vsnes.cpp157
-rw-r--r--src/mame/machine/wpc.cpp2
-rw-r--r--src/mame/machine/wpc.h2
-rw-r--r--src/mame/machine/wpc_lamp.cpp2
-rw-r--r--src/mame/machine/wpc_lamp.h2
-rw-r--r--src/mame/machine/wpc_out.cpp2
-rw-r--r--src/mame/machine/wpc_out.h2
-rw-r--r--src/mame/machine/x68k_hdc.cpp3
-rw-r--r--src/mame/machine/x68k_hdc.h16
-rw-r--r--src/mame/machine/xbox.cpp40
-rw-r--r--src/mame/machine/xbox_pci.cpp6
-rw-r--r--src/mame/machine/xbox_usb.cpp2
-rw-r--r--src/mame/machine/z80ne.cpp2
-rw-r--r--src/mame/machine/znmcu.cpp2
-rw-r--r--src/mame/machine/znmcu.h2
-rw-r--r--src/mame/machine/zx.cpp76
-rw-r--r--src/mame/machine/zx8302.cpp2
-rw-r--r--src/mame/machine/zx8302.h2
-rw-r--r--src/mame/mame.cpp2
-rw-r--r--src/mame/mame.lst566
-rw-r--r--src/mame/mess.cpp2
-rw-r--r--src/mame/mess.flt19
-rw-r--r--src/mame/video/3dom2_te.cpp4
-rw-r--r--src/mame/video/3dom2_te.h2
-rw-r--r--src/mame/video/733_asr.cpp2
-rw-r--r--src/mame/video/733_asr.h2
-rw-r--r--src/mame/video/911_vdt.cpp2
-rw-r--r--src/mame/video/911_vdt.h2
-rw-r--r--src/mame/video/actfancr.cpp33
-rw-r--r--src/mame/video/airraid_dev.cpp3
-rw-r--r--src/mame/video/amspdwy.cpp142
-rw-r--r--src/mame/video/antic.cpp10
-rw-r--r--src/mame/video/antic.h2
-rw-r--r--src/mame/video/apple2.cpp322
-rw-r--r--src/mame/video/apple2.h9
-rw-r--r--src/mame/video/astrocde.cpp4
-rw-r--r--src/mame/video/atarimo.cpp2
-rw-r--r--src/mame/video/atarimo.h2
-rw-r--r--src/mame/video/atarivad.cpp2
-rw-r--r--src/mame/video/atarivad.h2
-rw-r--r--src/mame/video/atetris.cpp66
-rw-r--r--src/mame/video/bbc.cpp6
-rw-r--r--src/mame/video/bfm_dm01.cpp9
-rw-r--r--src/mame/video/blstroid.cpp4
-rw-r--r--src/mame/video/cave.cpp2
-rw-r--r--src/mame/video/channelf.cpp3
-rw-r--r--src/mame/video/comquest.cpp24
-rw-r--r--src/mame/video/cps1.cpp10
-rw-r--r--src/mame/video/dcheese.cpp2
-rw-r--r--src/mame/video/deadang.cpp12
-rw-r--r--src/mame/video/deco16ic.cpp2
-rw-r--r--src/mame/video/dkong.cpp2
-rw-r--r--src/mame/video/dpb_combiner.cpp2
-rw-r--r--src/mame/video/electron.cpp4
-rw-r--r--src/mame/video/fmtowns.cpp6
-rw-r--r--src/mame/video/gaelco.cpp76
-rw-r--r--src/mame/video/gaelco2.cpp154
-rw-r--r--src/mame/video/gameplan.cpp6
-rw-r--r--src/mame/video/gberet.cpp60
-rw-r--r--src/mame/video/gic.cpp2
-rw-r--r--src/mame/video/gic.h2
-rw-r--r--src/mame/video/gime.cpp4
-rw-r--r--src/mame/video/gime.h2
-rw-r--r--src/mame/video/gp9001.cpp10
-rw-r--r--src/mame/video/gp9001.h2
-rw-r--r--src/mame/video/homedata.cpp102
-rw-r--r--src/mame/video/hyhoo.cpp2
-rw-r--r--src/mame/video/itech8.cpp4
-rw-r--r--src/mame/video/jag_blitter.cpp2
-rw-r--r--src/mame/video/jag_blitter.h2
-rw-r--r--src/mame/video/jaguar.cpp2
-rw-r--r--src/mame/video/k053250_ps.cpp2
-rw-r--r--src/mame/video/k053250_ps.h2
-rw-r--r--src/mame/video/k054000.cpp238
-rw-r--r--src/mame/video/k054000.h18
-rw-r--r--src/mame/video/konamigx.cpp6
-rw-r--r--src/mame/video/ladyfrog.cpp10
-rw-r--r--src/mame/video/lethalj.cpp2
-rw-r--r--src/mame/video/m92.cpp2
-rw-r--r--src/mame/video/macrossp.cpp469
-rw-r--r--src/mame/video/mcd212.cpp2002
-rw-r--r--src/mame/video/mcd212.h385
-rw-r--r--src/mame/video/mcr3.cpp3
-rw-r--r--src/mame/video/midtunit.cpp6
-rw-r--r--src/mame/video/midtunit.h2
-rw-r--r--src/mame/video/midvunit.cpp4
-rw-r--r--src/mame/video/midyunit.cpp8
-rw-r--r--src/mame/video/mjkjidai.cpp45
-rw-r--r--src/mame/video/model2.cpp2
-rw-r--r--src/mame/video/mrdo.cpp46
-rw-r--r--src/mame/video/mystston.cpp85
-rw-r--r--src/mame/video/n64.cpp12
-rw-r--r--src/mame/video/n64.h10
-rw-r--r--src/mame/video/nbmj8688.cpp2
-rw-r--r--src/mame/video/nbmj8891.cpp2
-rw-r--r--src/mame/video/nbmj8900.cpp4
-rw-r--r--src/mame/video/nbmj8991.cpp2
-rw-r--r--src/mame/video/nbmj9195.cpp2
-rw-r--r--src/mame/video/nick.cpp3
-rw-r--r--src/mame/video/nick.h2
-rw-r--r--src/mame/video/niyanpai.cpp2
-rw-r--r--src/mame/video/ohmygod.cpp107
-rw-r--r--src/mame/video/overdriv.cpp66
-rw-r--r--src/mame/video/pastelg.cpp2
-rw-r--r--src/mame/video/pc4.cpp2
-rw-r--r--src/mame/video/powervr2.cpp572
-rw-r--r--src/mame/video/powervr2.h19
-rw-r--r--src/mame/video/rastan.cpp56
-rw-r--r--src/mame/video/rdptpipe.cpp23
-rw-r--r--src/mame/video/rmnimbus.cpp4
-rw-r--r--src/mame/video/saturn.cpp9361
-rw-r--r--src/mame/video/segag80r.cpp2
-rw-r--r--src/mame/video/seta.cpp9
-rw-r--r--src/mame/video/sgi_re2.cpp2
-rw-r--r--src/mame/video/sgi_re2.h2
-rw-r--r--src/mame/video/shaolins.cpp47
-rw-r--r--src/mame/video/spectrum.cpp6
-rw-r--r--src/mame/video/sprint4.cpp138
-rw-r--r--src/mame/video/stic.cpp130
-rw-r--r--src/mame/video/stic.h46
-rw-r--r--src/mame/video/taito_f3.cpp4
-rw-r--r--src/mame/video/taito_h.cpp4
-rw-r--r--src/mame/video/taito_o.cpp45
-rw-r--r--src/mame/video/tank8.cpp2
-rw-r--r--src/mame/video/tatsumi.cpp4
-rw-r--r--src/mame/video/tc0180vcu.cpp2
-rw-r--r--src/mame/video/tc0180vcu.h2
-rw-r--r--src/mame/video/tia.cpp2
-rw-r--r--src/mame/video/triplhnt.cpp2
-rw-r--r--src/mame/video/tx0.cpp4
-rw-r--r--src/mame/video/usgames.cpp56
-rw-r--r--src/mame/video/uv201.cpp2
-rw-r--r--src/mame/video/uv201.h2
-rw-r--r--src/mame/video/vectrex.cpp17
-rw-r--r--src/mame/video/wswan.cpp2
-rw-r--r--src/mame/video/wswan.h2
-rw-r--r--src/mame/video/xbox_nv2a.cpp4
-rw-r--r--src/mame/video/ygv608.cpp2
-rw-r--r--src/mame/video/ygv608.h2
-rw-r--r--src/mame/video/zx.cpp2
-rw-r--r--src/mame/video/zx8301.cpp2
-rw-r--r--src/mame/video/zx8301.h2
2125 files changed, 99166 insertions, 1591284 deletions
diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt
index 01204133fad..2a11adcdf3f 100644
--- a/src/mame/arcade.flt
+++ b/src/mame/arcade.flt
@@ -83,6 +83,7 @@ atarisy1.cpp
atarisy2.cpp
atarisy4.cpp
atarittl.cpp
+atari_4x4.cpp
atari_s1.cpp
atari_s2.cpp
atetris.cpp
@@ -255,6 +256,7 @@ combatsc.cpp
comebaby.cpp
commando.cpp
compgolf.cpp
+compucranes.cpp
contra.cpp
coolpool.cpp
coolridr.cpp
@@ -306,6 +308,7 @@ dassault.cpp
dblcrown.cpp
dblewing.cpp
dbz.cpp
+dc_atomiswave.cpp
dcheese.cpp
dcon.cpp
dday.cpp
@@ -344,6 +347,7 @@ dkmb.cpp
dkong.cpp
dlair.cpp
dlair2.cpp
+dmainevent.cpp
dmndrby.cpp
docastle.cpp
dogfgt.cpp
@@ -399,6 +403,7 @@ exzisus.cpp
ez2d.cpp
f-32.cpp
f1gp.cpp
+falgas_m89.cpp
famibox.cpp
fantland.cpp
fastfred.cpp
@@ -432,6 +437,7 @@ fresh.cpp
fromanc2.cpp
fromance.cpp
fruitpc.cpp
+funeball.cpp
fungames.cpp
funkball.cpp
funkybee.cpp
@@ -526,6 +532,7 @@ gts80a.cpp
gts80b.cpp
guab.cpp
gumbo.cpp
+gumrally.cpp
gunbustr.cpp
gundealr.cpp
gunpey.cpp
@@ -557,6 +564,7 @@ homerun.cpp
hornet.cpp
hotblock.cpp
hotstuff.cpp
+houseball.cpp
hshavoc.cpp
hvyunit.cpp
hyhoo.cpp
@@ -566,7 +574,6 @@ icecold.cpp
ice_bozopail.cpp
ice_hhhippos.cpp
ice_tbd.cpp
-ichiban.cpp
idsa.cpp
igs009.cpp
igs011.cpp
@@ -670,6 +677,7 @@ kyugo.cpp
labyrunr.cpp
ladybug.cpp
ladyfrog.cpp
+lancelot.cpp
laserbas.cpp
laserbat.cpp
lasso.cpp
@@ -712,6 +720,7 @@ m52.cpp
m57.cpp
m58.cpp
m62.cpp
+m62_bkungfu.cpp
m63.cpp
m72.cpp
m79amb.cpp
@@ -892,6 +901,7 @@ nbmj8991.cpp
nbmj9195.cpp
nemesis.cpp
neogeo.cpp
+neomania.cpp
neopcb.cpp
neoprint.cpp
neptunp2.cpp
@@ -1041,8 +1051,10 @@ rampart.cpp
ramtek.cpp
rastan.cpp
rastersp.cpp
+rawthrillspc.cpp
rbisland.cpp
rbmk.cpp
+rbowlorama.cpp
rcorsair.cpp
re900.cpp
realbrk.cpp
@@ -1256,6 +1268,7 @@ statriv2.cpp
stellafr.cpp
stfight.cpp
stlforce.cpp
+stop.cpp
strkzn.cpp
stuntair.cpp
stv.cpp
@@ -1277,6 +1290,7 @@ supduck.cpp
superchs.cpp
supercrd.cpp
superdq.cpp
+superga2.cpp
superqix.cpp
supertnk.cpp
superwng.cpp
@@ -1462,6 +1476,7 @@ witch.cpp
wiz.cpp
wmg.cpp
wms.cpp
+wms_shuffle.cpp
wolfpack.cpp
wpc_95.cpp
wpc_an.cpp
diff --git a/src/mame/audio/acan.cpp b/src/mame/audio/acan.cpp
index 0df726ad8c9..f9e559236a1 100644
--- a/src/mame/audio/acan.cpp
+++ b/src/mame/audio/acan.cpp
@@ -71,7 +71,7 @@ void acan_sound_device::device_reset()
m_dma_irq_handler(0);
}
-void acan_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void acan_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
if (m_regs[0x14] & 0x40)
{
diff --git a/src/mame/audio/acan.h b/src/mame/audio/acan.h
index 0f6ac312a2d..b56ffd1cebe 100644
--- a/src/mame/audio/acan.h
+++ b/src/mame/audio/acan.h
@@ -27,7 +27,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
diff --git a/src/mame/audio/alesis.cpp b/src/mame/audio/alesis.cpp
index b36a6fa060e..102de6566bb 100644
--- a/src/mame/audio/alesis.cpp
+++ b/src/mame/audio/alesis.cpp
@@ -77,7 +77,7 @@ void alesis_dm3ag_device::device_reset()
//-------------------------------------------------
// device_timer - handler timer events
//-------------------------------------------------
-void alesis_dm3ag_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void alesis_dm3ag_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
if (m_output_active)
{
diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp
index e0c9e9fae37..d295b690b0f 100644
--- a/src/mame/audio/cage.cpp
+++ b/src/mame/audio/cage.cpp
@@ -200,7 +200,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( atari_cage_device::dma_timer_callback )
m_tms32031_io_regs[DMA_SOURCE_ADDR] = param;
/* set the interrupt */
- m_cpu->set_input_line(TMS3203X_DINT, ASSERT_LINE);
+ m_cpu->set_input_line(TMS3203X_DINT0, ASSERT_LINE);
m_dma_enabled = 0;
}
diff --git a/src/mame/audio/cmi01a.cpp b/src/mame/audio/cmi01a.cpp
index 5577805856f..c51fedcbf67 100644
--- a/src/mame/audio/cmi01a.cpp
+++ b/src/mame/audio/cmi01a.cpp
@@ -340,7 +340,7 @@ WRITE_LINE_MEMBER( cmi01a_device::cmi01a_irq )
m_irq_cb(state ? ASSERT_LINE : CLEAR_LINE);
}
-void cmi01a_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void cmi01a_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch(id)
{
diff --git a/src/mame/audio/cmi01a.h b/src/mame/audio/cmi01a.h
index 743c50e5829..a19a7fabd8c 100644
--- a/src/mame/audio/cmi01a.h
+++ b/src/mame/audio/cmi01a.h
@@ -41,7 +41,7 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
static const device_timer_id TIMER_ZX = 0;
static const device_timer_id TIMER_EOSI = 1;
diff --git a/src/mame/audio/csd.cpp b/src/mame/audio/csd.cpp
index 6550548a43b..755d463abcd 100644
--- a/src/mame/audio/csd.cpp
+++ b/src/mame/audio/csd.cpp
@@ -92,7 +92,7 @@ void midway_cheap_squeak_deluxe_device::device_start()
// device_timer - timer callbacks
//-------------------------------------------------
-void midway_cheap_squeak_deluxe_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void midway_cheap_squeak_deluxe_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
m_pia->ca1_w(param);
diff --git a/src/mame/audio/csd.h b/src/mame/audio/csd.h
index 514480f7bae..ed20b78f2aa 100644
--- a/src/mame/audio/csd.h
+++ b/src/mame/audio/csd.h
@@ -43,7 +43,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// devices
diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp
index aeadfc27a21..36b65f4808b 100644
--- a/src/mame/audio/dcs.cpp
+++ b/src/mame/audio/dcs.cpp
@@ -746,7 +746,7 @@ dcs_audio_device::dcs_audio_device(const machine_config &mconfig, device_type ty
void dcs_audio_device::device_reset()
{
- dcs_reset(nullptr, 0);
+ dcs_reset(0);
}
void dcs_audio_device::device_start()
@@ -795,7 +795,7 @@ void dcs_audio_device::device_start()
/* register for save states */
dcs_register_state();
/* reset the system */
- dcs_reset(nullptr, 0);
+ dcs_reset(0);
}
@@ -893,7 +893,7 @@ void dcs2_audio_device::device_start()
dcs_register_state();
/* reset the system */
- dcs_reset(nullptr, 0);
+ dcs_reset(0);
}
diff --git a/src/mame/audio/efo_zsu.cpp b/src/mame/audio/efo_zsu.cpp
index 017bb10c005..5be098b0e51 100644
--- a/src/mame/audio/efo_zsu.cpp
+++ b/src/mame/audio/efo_zsu.cpp
@@ -233,7 +233,7 @@ static const z80_daisy_config daisy_chain[] =
TIMER_CALLBACK_MEMBER(cedar_magnet_sound_device::reset_assert_callback)
{
- cedar_magnet_board_interface::reset_assert_callback(ptr,param);
+ cedar_magnet_board_interface::reset_assert_callback(param);
// reset lines go to the ctc as well?
m_ctc[0]->reset();
m_ctc[1]->reset();
diff --git a/src/mame/audio/flower.cpp b/src/mame/audio/flower.cpp
index 99806a0c6b6..01b298cdf60 100644
--- a/src/mame/audio/flower.cpp
+++ b/src/mame/audio/flower.cpp
@@ -9,6 +9,8 @@
TODO:
- several unknown registers (effects and unknown register tied to repeat port);
- repeat certainly needs a cutoff, which is unknown about how it works;
+ - keyon/off behavior is not verified
+ - PCM output is incorrect/unverified
***************************************************************************/
@@ -42,14 +44,15 @@ void flower_sound_device::regs_map(address_map &map)
// flower_sound_device - constructor
//-------------------------------------------------
-flower_sound_device::flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+flower_sound_device::flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, FLOWER_CUSTOM, tag, owner, clock),
device_sound_interface(mconfig, *this),
device_memory_interface(mconfig, *this),
m_io_space_config("io", ENDIANNESS_LITTLE, 8, 7, 0, address_map_constructor(FUNC(flower_sound_device::regs_map), this)),
m_stream(nullptr),
m_mixer_lookup(nullptr),
- m_last_channel(nullptr)
+ m_sample_rom(*this, "samples"),
+ m_volume_rom(*this, "soundvol")
{
}
@@ -66,25 +69,18 @@ void flower_sound_device::device_start()
m_mixer_buffer.resize(clock()/50);
make_mixer_table(MAX_VOICES, defgain);
- m_last_channel = m_channel_list + MAX_VOICES;
-
- m_sample_rom = machine().root_device().memregion("samples")->base();
- m_volume_rom = machine().root_device().memregion("soundvol")->base();
-
- for (int i = 0; i < MAX_VOICES; i++)
- {
- save_item(NAME(m_channel_list[i].start_address), i);
- save_item(NAME(m_channel_list[i].position), i);
- save_item(NAME(m_channel_list[i].frequency), i);
- save_item(NAME(m_channel_list[i].volume), i);
- save_item(NAME(m_channel_list[i].volume_bank), i);
- save_item(NAME(m_channel_list[i].effect), i);
- save_item(NAME(m_channel_list[i].enable), i);
- save_item(NAME(m_channel_list[i].repeat), i);
-
- // assign a channel number (debugger aid)
- m_channel_list[i].channel_number = i;
- }
+ save_item(STRUCT_MEMBER(m_channel_list, start_nibbles));
+ save_item(STRUCT_MEMBER(m_channel_list, raw_frequency));
+ save_item(STRUCT_MEMBER(m_channel_list, start_address));
+ save_item(STRUCT_MEMBER(m_channel_list, position));
+ save_item(STRUCT_MEMBER(m_channel_list, frequency));
+ save_item(STRUCT_MEMBER(m_channel_list, volume));
+ save_item(STRUCT_MEMBER(m_channel_list, volume_bank));
+ //save_item(STRUCT_MEMBER(m_channel_list, effect));
+ save_item(STRUCT_MEMBER(m_channel_list, enable));
+ save_item(STRUCT_MEMBER(m_channel_list, repeat));
+
+ save_item(NAME(m_io_regs));
}
@@ -115,13 +111,13 @@ void flower_sound_device::make_mixer_table(int voices, int gain)
void flower_sound_device::device_reset()
{
- for (fl_sound_channel *voice = m_channel_list; voice < m_last_channel; voice++)
+ for (auto &voice : m_channel_list)
{
- voice->start_address = 0;
- voice->position = 0;
- voice->volume = 0;
- voice->enable = false;
- voice->repeat = false;
+ voice.start_address = 0;
+ voice.position = 0;
+ voice.volume = 0;
+ voice.enable = false;
+ voice.repeat = false;
}
}
@@ -129,45 +125,49 @@ void flower_sound_device::sound_stream_update(sound_stream &stream, std::vector<
{
auto &buffer = outputs[0];
short *mix;
- uint8_t raw_sample;
+ u8 raw_sample;
std::fill_n(&m_mixer_buffer[0], buffer.samples(), 0);
- for (fl_sound_channel *voice = m_channel_list; voice < m_last_channel; voice++)
+ for (auto &voice : m_channel_list)
{
- int ch_volume = voice->volume;
- int ch_frequency = voice->frequency;
+ int ch_volume = voice.volume;
+ int ch_frequency = voice.frequency;
- if (voice->enable == false)
+ if (!voice.enable)
continue;
mix = &m_mixer_buffer[0];
for (int i = 0; i < buffer.samples(); i++)
{
- if (voice->repeat == true)
+ // Volume LUT ROM address bit:
+ // Bit 0-7: Sample ROM data
+ // Bit 8-11: Channel Volume
+ // Bit 12: Sample Position bit 6 (Sample nibble select bit for 4 bit data)
+ // Bit 13: Volume LUT bank select? (4 bit/8 bit data mode or wavetable/PCM?)
+ const u16 volume_index = (((ch_volume | voice.volume_bank) & 0x2f) << 8) | (BIT(voice.position, 6) << 12);
+ if (voice.repeat)
{
- raw_sample = m_sample_rom[((voice->start_address >> 7) & 0x7e00) | ((voice->position >> 7) & 0x1ff)];
- // guess: cut off after a number of repetitions
- if ((voice->position >> 7) & 0x20000)
+ raw_sample = m_sample_rom[((voice.start_address >> 7) & 0x7e00) | ((voice.position >> 7) & 0x1ff)];
+ // guess: key on/off bit is lowest bit of volume bank register?
+ if ((voice.volume_bank & 0x10) != 0x10)
{
- voice->enable = false;
+ voice.enable = false;
break;
}
}
else
{
- raw_sample = m_sample_rom[((voice->start_address + voice->position) >> 7) & 0x7fff];
+ raw_sample = m_sample_rom[((voice.start_address + voice.position) >> 7) & 0x7fff];
if (raw_sample == 0xff)
{
- voice->enable = false;
+ voice.enable = false;
break;
}
}
- ch_volume |= voice->volume_bank;
-
- *mix++ += m_volume_rom[(ch_volume << 8 | raw_sample) & 0x3fff] - 0x80;
- voice->position += ch_frequency;
+ *mix++ += m_volume_rom[(volume_index | raw_sample) & 0x3fff] - 0x80;
+ voice.position += ch_frequency;
}
}
@@ -193,80 +193,83 @@ device_memory_interface::space_config_vector flower_sound_device::memory_space_c
// READ/WRITE HANDLERS
//**************************************************************************
-void flower_sound_device::lower_write(offs_t offset, uint8_t data)
+void flower_sound_device::lower_write(offs_t offset, u8 data)
{
m_stream->update();
+ m_io_regs[offset] = data;
m_iospace->write_byte(offset,data);
}
-void flower_sound_device::upper_write(offs_t offset, uint8_t data)
+void flower_sound_device::upper_write(offs_t offset, u8 data)
{
m_stream->update();
+ m_io_regs[offset|0x40] = data;
m_iospace->write_byte(offset|0x40,data);
}
-void flower_sound_device::frequency_w(offs_t offset, uint8_t data)
+void flower_sound_device::frequency_w(offs_t offset, u8 data)
{
- uint8_t ch = (offset >> 3) & 0x7;
- fl_sound_channel *voice;
-
- voice = &m_channel_list[ch];
+ u8 ch = (offset >> 3) & 0x7;
+ fl_sound_channel &voice = m_channel_list[ch];
- voice->raw_frequency[offset & 3] = data & 0xf;
+ // Low nibbles: part of frequency
+ // High nibbles: unknown
+ voice.raw_frequency[offset & 3] = data;
- voice->frequency = voice->raw_frequency[2] << 12;
- voice->frequency|= voice->raw_frequency[3] << 8;
- voice->frequency|= voice->raw_frequency[0] << 4;
- voice->frequency|= voice->raw_frequency[1] << 0;
+ voice.frequency = (voice.raw_frequency[2] & 0xf) << 12;
+ voice.frequency|= (voice.raw_frequency[3] & 0xf) << 8;
+ voice.frequency|= (voice.raw_frequency[0] & 0xf) << 4;
+ voice.frequency|= (voice.raw_frequency[1] & 0xf) << 0;
}
-void flower_sound_device::repeat_w(offs_t offset, uint8_t data)
+void flower_sound_device::repeat_w(offs_t offset, u8 data)
{
- uint8_t ch = (offset >> 3) & 0x7;
- fl_sound_channel *voice;
+ u8 ch = (offset >> 3) & 0x7;
+ fl_sound_channel &voice = m_channel_list[ch];
- voice = &m_channel_list[ch];
- voice->repeat = BIT(data,4);
+ voice.repeat = BIT(data, 4); // Bit 4: Repeat flag?
}
-void flower_sound_device::unk_w(offs_t offset, uint8_t data)
+void flower_sound_device::unk_w(offs_t offset, u8 data)
{
// same as above?
}
-void flower_sound_device::volume_w(offs_t offset, uint8_t data)
+void flower_sound_device::volume_w(offs_t offset, u8 data)
{
- uint8_t ch = (offset >> 3) & 0x7;
- fl_sound_channel *voice;
+ u8 ch = (offset >> 3) & 0x7;
+ fl_sound_channel &voice = m_channel_list[ch];
- voice = &m_channel_list[ch];
- voice->volume = data >> 4;
+ // Low nibbles: unknown
+ // High nibbles: volume
+ voice.volume = data >> 4;
}
-void flower_sound_device::start_address_w(offs_t offset, uint8_t data)
+void flower_sound_device::start_address_w(offs_t offset, u8 data)
{
- uint8_t ch = (offset >> 3) & 0x7;
- fl_sound_channel *voice;
+ u8 ch = (offset >> 3) & 0x7;
+ fl_sound_channel &voice = m_channel_list[ch];
- voice = &m_channel_list[ch];
- voice->start_nibbles[offset & 7] = data & 0xf;
+ // Low nibbles: part of start address
+ // High nibbles: unknown
+ voice.start_nibbles[offset & 7] = data;
+ /*
if ((offset & 7) == 4)
- voice->effect = data >> 4;
+ voice.effect = data >> 4;
+ */
}
-void flower_sound_device::sample_trigger_w(offs_t offset, uint8_t data)
+void flower_sound_device::sample_trigger_w(offs_t offset, u8 data)
{
- uint8_t ch = (offset >> 3) & 0x7;
- fl_sound_channel *voice;
-
- voice = &m_channel_list[ch];
+ u8 ch = (offset >> 3) & 0x7;
+ fl_sound_channel &voice = m_channel_list[ch];
- voice->enable = true;
- voice->volume_bank = (data & 3) << 4;
- voice->start_address = 0;
- voice->position = 0;
+ voice.enable = true; // BIT(data, 0);
+ voice.volume_bank = (data & 3) << 4; // Bit 0: Keyon/off?, Bit 1: PCM/Wavetable mode select?
+ voice.start_address = 0;
+ voice.position = 0;
for (int i = 5; i >= 0; i--)
{
- voice->start_address = (voice->start_address << 4) | voice->start_nibbles[i];
+ voice.start_address = (voice.start_address << 4) | (voice.start_nibbles[i] & 0xf);
}
}
diff --git a/src/mame/audio/flower.h b/src/mame/audio/flower.h
index 44787c6f30d..2f59c879182 100644
--- a/src/mame/audio/flower.h
+++ b/src/mame/audio/flower.h
@@ -23,11 +23,11 @@ class flower_sound_device : public device_t,
{
public:
// construction/destruction
- flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// I/O operations
- void lower_write(offs_t offset, uint8_t data);
- void upper_write(offs_t offset, uint8_t data);
+ void lower_write(offs_t offset, u8 data);
+ void upper_write(offs_t offset, u8 data);
// virtual void lower_map(address_map &map);
// virtual void upper_map(address_map &map);
@@ -50,40 +50,40 @@ private:
static constexpr unsigned MAX_VOICES = 8;
static constexpr int defgain = 48;
- std::vector<int16_t> m_mixer_table;
- int16_t *m_mixer_lookup;
+ u8 m_io_regs[0x80] = {0}; // for debug purpose
+
+ std::vector<s16> m_mixer_table;
+ s16 *m_mixer_lookup;
std::vector<short> m_mixer_buffer;
struct fl_sound_channel
{
- uint8_t start_nibbles[6];
- uint8_t raw_frequency[4];
- uint32_t start_address;
- uint32_t position;
- uint16_t frequency;
- uint8_t volume;
- uint8_t volume_bank;
- uint8_t effect;
- bool enable;
- bool repeat;
- int channel_number;
+ u8 start_nibbles[6] = {0};
+ u8 raw_frequency[4] = {0};
+ u32 start_address = 0;
+ u32 position = 0;
+ u16 frequency = 0;
+ u8 volume = 0;
+ u8 volume_bank = 0;
+ //u8 effect = 0;
+ bool enable = false;
+ bool repeat = false;
};
/* data about the sound system */
fl_sound_channel m_channel_list[MAX_VOICES];
- fl_sound_channel *m_last_channel;
void make_mixer_table(int voices, int gain);
- const uint8_t *m_sample_rom;
- const uint8_t *m_volume_rom;
+ required_region_ptr<u8> m_sample_rom;
+ required_region_ptr<u8> m_volume_rom;
- void frequency_w(offs_t offset, uint8_t data);
- void repeat_w(offs_t offset, uint8_t data);
- void unk_w(offs_t offset, uint8_t data);
- void volume_w(offs_t offset, uint8_t data);
- void start_address_w(offs_t offset, uint8_t data);
- void sample_trigger_w(offs_t offset, uint8_t data);
+ void frequency_w(offs_t offset, u8 data);
+ void repeat_w(offs_t offset, u8 data);
+ void unk_w(offs_t offset, u8 data);
+ void volume_w(offs_t offset, u8 data);
+ void start_address_w(offs_t offset, u8 data);
+ void sample_trigger_w(offs_t offset, u8 data);
};
diff --git a/src/mame/audio/geebee.cpp b/src/mame/audio/geebee.cpp
index 01858b5ecad..3ac70c3947c 100644
--- a/src/mame/audio/geebee.cpp
+++ b/src/mame/audio/geebee.cpp
@@ -54,7 +54,7 @@ void geebee_sound_device::device_start()
save_item(NAME(m_vcount));
}
-void geebee_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void geebee_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
diff --git a/src/mame/audio/geebee.h b/src/mame/audio/geebee.h
index 1bbddf36bba..aaa49a0278d 100644
--- a/src/mame/audio/geebee.h
+++ b/src/mame/audio/geebee.h
@@ -24,7 +24,7 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// internal state
diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp
index a0a985e5027..f7754ec99e4 100644
--- a/src/mame/audio/gottlieb.cpp
+++ b/src/mame/audio/gottlieb.cpp
@@ -741,7 +741,7 @@ void gottlieb_sound_r2_device::device_start()
// device_timer - handle timer-based behaviors
//-------------------------------------------------
-void gottlieb_sound_r2_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void gottlieb_sound_r2_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
diff --git a/src/mame/audio/gottlieb.h b/src/mame/audio/gottlieb.h
index 623844845f7..a2b64bcac83 100644
--- a/src/mame/audio/gottlieb.h
+++ b/src/mame/audio/gottlieb.h
@@ -159,7 +159,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// internal helpers
diff --git a/src/mame/audio/laserbat.cpp b/src/mame/audio/laserbat.cpp
index 66ec4dc2c10..3adefb5f944 100644
--- a/src/mame/audio/laserbat.cpp
+++ b/src/mame/audio/laserbat.cpp
@@ -233,7 +233,7 @@ void laserbat_state::csound2_w(uint8_t data)
circuitry. Unfortunately we lack a schematic, so all knowledge of
this board is based on tracing the sound program, examining PCB
photos and cross-referencing with the schematic for the 1B11142
- schematic.
+ board.
The 6821 PIA is mapped at addresses $005C..$005F. The known PIA
signal assignments are as follows:
diff --git a/src/mame/audio/leland.cpp b/src/mame/audio/leland.cpp
index ddeb4f1c286..b67471686e7 100644
--- a/src/mame/audio/leland.cpp
+++ b/src/mame/audio/leland.cpp
@@ -492,7 +492,7 @@ void leland_80186_sound_device::command_hi_w(u8 data)
*
*************************************/
-void leland_80186_sound_device::delayed_response_r(void *ptr, int param)
+void leland_80186_sound_device::delayed_response_r(int param)
{
int checkpc = param;
int pc = m_master->pc();
diff --git a/src/mame/audio/leland.h b/src/mame/audio/leland.h
index eaca7c0e6c4..847ac382ea5 100644
--- a/src/mame/audio/leland.h
+++ b/src/mame/audio/leland.h
@@ -71,7 +71,7 @@ protected:
void leland_80186_map_program(address_map &map);
private:
- void delayed_response_r(void *ptr, int param);
+ void delayed_response_r(int param);
void set_clock_line(int which, int state) { m_clock_active = state ? (m_clock_active | (1<<which)) : (m_clock_active & ~(1<<which)); }
// internal state
diff --git a/src/mame/audio/lynx.cpp b/src/mame/audio/lynx.cpp
deleted file mode 100644
index d839a4c1704..00000000000
--- a/src/mame/audio/lynx.cpp
+++ /dev/null
@@ -1,527 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Peter Trauner
-/******************************************************************************
- PeT mess@utanet.at 2000,2001
-******************************************************************************/
-
-#include "emu.h"
-#include "audio/lynx.h"
-
-
-/* accordingly to atari's reference manual
- there were no stereo lynx produced (the manual knows only production until mid 1991)
- the howard/developement board might have stereo support
- the revised lynx 2 hardware might have stereo support at least at the stereo jacks
-
- some games support stereo
-*/
-
-
-/*
-AUDIO_A EQU $FD20
-AUDIO_B EQU $FD28
-AUDIO_C EQU $FD30
-AUDIO_D EQU $FD38
-
-VOLUME_CNTRL EQU 0
-FEEDBACK_ENABLE EQU 1 ; enables 11/10/5..0
-OUTPUT_VALUE EQU 2
-SHIFTER_L EQU 3
-AUD_BAKUP EQU 4
-AUD_CNTRL1 EQU 5
-AUD_COUNT EQU 6
-AUD_CNTRL2 EQU 7
-
-; AUD_CNTRL1
-FEEDBACK_7 EQU %10000000
-AUD_RESETDONE EQU %01000000
-AUD_INTEGRATE EQU %00100000
-AUD_RELOAD EQU %00010000
-AUD_CNTEN EQU %00001000
-AUD_LINK EQU %00000111
-; link timers (0->2->4 / 1->3->5->7->Aud0->Aud1->Aud2->Aud3->1
-AUD_64us EQU %00000110
-AUD_32us EQU %00000101
-AUD_16us EQU %00000100
-AUD_8us EQU %00000011
-AUD_4us EQU %00000010
-AUD_2us EQU %00000001
-AUD_1us EQU %00000000
-
-; AUD_CNTRL2 (read only)
-; B7..B4 ; shifter bits 11..8
-; B3 ; who knows
-; B2 ; last clock state (0->1 causes count)
-; B1 ; borrow in (1 causes count)
-; B0 ; borrow out (count EQU 0 and borrow in)
-
-ATTEN_A EQU $FD40
-ATTEN_B EQU $FD41
-ATTEN_C EQU $FD42
-ATTEN_D EQU $FD43
-; B7..B4 attenuation left ear (0 silent ..15/16 volume)
-; B3..B0 " right ear
-
-MPAN EQU $FD44
-; B7..B4 left ear
-; B3..B0 right ear
-; B7/B3 EQU Audio D
-; a 1 enables attenuation for channel and side
-
-
-MSTEREO EQU $FD50 ; a 1 disables audio connection
-AUD_D_LEFT EQU %10000000
-AUD_C_LEFT EQU %01000000
-AUD_B_LEFT EQU %00100000
-AUD_A_LEFT EQU %00010000
-AUD_D_RIGHT EQU %00001000
-AUD_C_RIGHT EQU %00000100
-AUD_B_RIGHT EQU %00000010
-AUD_A_RIGHT EQU %00000001
-
- */
-
-#define LYNX_AUDIO_CHANNELS 4
-
-
-// device type definition
-DEFINE_DEVICE_TYPE(LYNX_SND, lynx_sound_device, "lynx_sound", "Mikey")
-DEFINE_DEVICE_TYPE(LYNX2_SND, lynx2_sound_device, "lynx2_sound", "Mikey (Lynx II)")
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// lynx_sound_device - constructor
-//-------------------------------------------------
-
-lynx_sound_device::lynx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : lynx_sound_device(mconfig, LYNX_SND, tag, owner, clock)
-{
-}
-
-lynx_sound_device::lynx_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_sound_interface(mconfig, *this)
- , m_timer_delegate(*this)
-{
-}
-
-
-lynx2_sound_device::lynx2_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : lynx_sound_device(mconfig, LYNX2_SND, tag, owner, clock)
-{
-}
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void lynx_sound_device::register_save()
-{
- save_item(NAME(m_attenuation_enable));
- save_item(NAME(m_master_enable));
- for (int chan = 0; chan < LYNX_AUDIO_CHANNELS; chan++)
- {
- save_item(NAME(m_audio[chan].reg.volume), chan);
- save_item(NAME(m_audio[chan].reg.feedback), chan);
- save_item(NAME(m_audio[chan].reg.output), chan);
- save_item(NAME(m_audio[chan].reg.shifter), chan);
- save_item(NAME(m_audio[chan].reg.bakup), chan);
- save_item(NAME(m_audio[chan].reg.control1), chan);
- save_item(NAME(m_audio[chan].reg.counter), chan);
- save_item(NAME(m_audio[chan].reg.control2), chan);
- save_item(NAME(m_audio[chan].attenuation), chan);
- save_item(NAME(m_audio[chan].mask), chan);
- save_item(NAME(m_audio[chan].shifter), chan);
- save_item(NAME(m_audio[chan].ticks), chan);
- save_item(NAME(m_audio[chan].count), chan);
- }
-}
-
-void lynx_sound_device::init()
-{
- m_shift_mask = make_unique_clear<int[]>(512);
- m_shift_xor = make_unique_clear<int[]>(4096);
-
- for (int i = 0; i < 512; i++)
- {
- m_shift_mask[i] = 0;
- if (i & 1) m_shift_mask[i] |= 1;
- if (i & 2) m_shift_mask[i] |= 2;
- if (i & 4) m_shift_mask[i] |= 4;
- if (i & 8) m_shift_mask[i] |= 8;
- if (i & 0x10) m_shift_mask[i] |= 0x10;
- if (i & 0x20) m_shift_mask[i] |= 0x20;
- if (i & 0x40) m_shift_mask[i] |= 0x400;
- if (i & 0x80) m_shift_mask[i] |= 0x800;
- if (i & 0x100) m_shift_mask[i] |= 0x80;
- }
-
- for (int i = 0; i < 4096; i++)
- {
- m_shift_xor[i] = 1;
- for (int j = 4096/2; j > 0; j >>= 1)
- {
- if (i & j)
- m_shift_xor[i] ^= 1;
- }
- }
-}
-
-void lynx_sound_device::device_start()
-{
- m_mixer_channel = stream_alloc(0, 1, machine().sample_rate());
- m_usec_per_sample = 1000000 / machine().sample_rate();
- m_timer_delegate.resolve();
- init();
- register_save();
-}
-
-
-void lynx2_sound_device::device_start()
-{
- m_mixer_channel = stream_alloc(0, 2, machine().sample_rate());
- m_usec_per_sample = 1000000 / machine().sample_rate();
- m_timer_delegate.resolve();
- init();
- register_save();
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void lynx_sound_device::device_reset()
-{
- for (auto & elem : m_audio)
- {
- reset_channel(&elem);
- }
-}
-
-
-void lynx_sound_device::reset_channel(LYNX_AUDIO *channel)
-{
- channel->reg.volume = 0;
- channel->reg.feedback = 0;
- channel->reg.output = 0;
- channel->reg.shifter = 0;
- channel->reg.bakup = 0;
- channel->reg.control1 = 0;
- channel->reg.counter = 0;
- channel->reg.control2 = 0;
-
- channel->attenuation = 0;
- channel->mask = 0;
- channel->shifter = 0;
- channel->ticks = 0;
- channel->count = 0;
-}
-
-void lynx_sound_device::count_down(int nr)
-{
- LYNX_AUDIO *channel = &m_audio[nr];
- if (channel->reg.control1 & 8 && (channel->reg.control1 & 7) != 7)
- return;
- if (nr == 0)
- m_mixer_channel->update();
- //if ((channel->reg.control1 & 0x0f) == 0x0f) //count down if linking enabled and count enabled
- channel->count--;
-}
-
-void lynx_sound_device::shift(int chan_nr)
-{
- int16_t out_temp;
- LYNX_AUDIO *channel;
-
- assert(chan_nr < 4);
-
- channel = &m_audio[chan_nr];
- //channel->shifter = ((channel->shifter<<1)&0xffe) | (m_shift_xor[ channel->shifter & channel->mask ]&1);
-
- // alternative method (functionally the same as above)
- uint8_t xor_out = 0;
- for (int bit = 0; bit < 12; bit++)
- {
- if ((channel->mask >> bit) & 1)
- xor_out ^= (channel->shifter >> bit) & 1;
- }
- channel->shifter = ((channel->shifter << 1) & 0xffe) | (xor_out ^ 1); // output of xor is inverted
-
-
- if (channel->reg.control1 & 0x20) // integrate mode enabled
- {
- if (channel->shifter & 1)
- out_temp = channel->reg.output + channel->reg.volume;
- else
- out_temp = channel->reg.output - channel->reg.volume;
-
- // clipping
- if (out_temp > 127) out_temp = 127;
- if (out_temp < -128) out_temp = -128;
- channel->reg.output = (int16_t)out_temp;
- }
-
- switch (chan_nr)
- {
- case 0: count_down(1); break;
- case 1: count_down(2); break;
- case 2: count_down(3); break;
- case 3:
- if (!m_timer_delegate.isnull())
- m_timer_delegate();
- break;
- }
-}
-
-void lynx_sound_device::execute(int chan_nr)
-{
- LYNX_AUDIO *channel;
-
- assert(chan_nr < 4);
-
- channel = &m_audio[chan_nr];
-
- if (channel->reg.control1 & 8) // count enable
- {
- channel->ticks += m_usec_per_sample;
- if ((channel->reg.control1 & 7) == 7) // link
- {
- if (channel->count < 0) // counter finished
- {
- //channel->count+=channel->reg.counter; // reload (wrong?)
- if (channel->reg.control1 & 0x10)
- channel->count = channel->reg.bakup;
- shift(chan_nr);
- }
- }
- else
- {
- int t = 1 << (channel->reg.control1 & 7); // microseconds per count
- for (;;)
- {
- for (; (channel->ticks >= t) && (channel->count >= 0); channel->ticks -= t) // at least one sampled worth of time left, timer not expired
- channel->count--;
-
- if (channel->ticks < t)
- break;
-
- if (channel->count < 0)
- {
- shift(chan_nr);
- if (channel->reg.control1 & 0x10)
- channel->count = channel->reg.bakup;
- else
- break;
- }
- }
- }
-
- if (!(channel->reg.control1 & 0x20)) // normal mode
- {
- channel->reg.output = (channel->shifter & 1) ? channel->reg.volume : -channel->reg.volume;
- }
- }
- else
- {
- channel->ticks = 0;
- channel->count = 0;
- }
-}
-
-uint8_t lynx_sound_device::read(offs_t offset)
-{
- uint8_t value = 0;
- LYNX_AUDIO *channel = &m_audio[(offset >> 3) & 3];
-
- m_mixer_channel->update();
-
- if (offset < 0x40)
- {
- switch (offset & 7)
- {
- case 0:
- value = channel->reg.volume;
- break;
- case 1:
- value = channel->reg.feedback;
- break;
- case 2:
- value = channel->reg.output;
- break;
- case 3:
- // current shifter state (lower 8 bits)
- value = channel->shifter & 0xff;
- break;
- case 4:
- value = channel->reg.bakup;
- break;
- case 5:
- value = channel->reg.control1;
- break;
- case 6:
- //current timer value
- if (channel->count >=0)
- value = channel->count;
- else
- value = 0;
- break;
- case 7:
- // current shifter state (upper 4 bits), status bits
- value = (channel->shifter >> 4) & 0xf0;
- value |= channel->reg.control2 & 0x0f;
- break;
- }
- }
- else
- {
- switch (offset) // Lynx II stereo control registers
- {
- case 0x40: case 0x41: case 0x42: case 0x43:
- value = m_audio[offset & 3].attenuation;
- break;
- case 0x44:
- value = m_attenuation_enable;
- break;
- case 0x50:
- value = m_master_enable;
- break;
- }
-
- }
- return value;
-}
-
-void lynx_sound_device::write(offs_t offset, uint8_t data)
-{
- //logerror("audio write %.2x %.2x\n", offset, data);
- LYNX_AUDIO *channel = &m_audio[(offset >> 3) & 3];
-
- m_mixer_channel->update();
-
- if (offset < 0x40)
- {
- switch (offset & 0x07)
- {
- // Volume control (signed)
- case 0:
- channel->reg.volume = data;
- //logerror("write to volume %d\n", data);
- break;
- // Shift register feedback enable bits 0-5, 11,10
- case 1:
- channel->reg.feedback = data;
- channel->mask &= 0x80;
- channel->mask |= (data & 0x3f) | ((data & 0xc0)<<4);
- break;
- // Output value
- case 2:
- channel->reg.output = data;
- //logerror("write to output %d\n", data);
- break;
- // Lower 8 bits of shift register
- case 3:
- channel->shifter &= 0xf00;
- channel->shifter |= data;
- break;
- // Audio timer backup value
- case 4:
- channel->reg.bakup = data;
- break;
- // Audio control bits
- case 5:
- channel->mask &= ~0x80;
- channel->mask |= (data&0x80);
- channel->reg.control1 = data;
- break;
- // Current count
- case 6:
- channel->count=data;
- break;
- // Upper 4 bits of shift register and audio status bits
- case 7:
- channel->shifter&=0xff;
- channel->shifter|=(data&0xf0)<<4;
- channel->reg.control2 = data;
- break;
- }
- }
- else
- {
- switch (offset) // Stereo Registers
- {
- case 0x40: case 0x41: case 0x42: case 0x43:
- m_audio[offset&3].attenuation = data;
- break;
- case 0x44:
- m_attenuation_enable = data;
- break;
- case 0x50:
- m_master_enable = data;
- break;
- }
- }
-}
-
-
-//-------------------------------------------------
-// sound_stream_update - handle a stream update
-//-------------------------------------------------
-
-void lynx_sound_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs)
-{
- int v;
- auto &buffer = outputs[0];
-
- for (int i = 0; i < buffer.samples(); i++)
- {
- s32 result = 0;
- for (int channel = 0; channel < LYNX_AUDIO_CHANNELS; channel++)
- {
- execute(channel);
- v = m_audio[channel].reg.output;
- result += v * 15; // where does the *15 come from?
- }
- buffer.put_int(i, result, 32768);
- }
-}
-
-//-------------------------------------------------
-// sound_stream_update - handle a stream update
-//-------------------------------------------------
-
-void lynx2_sound_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs)
-{
- auto &left=outputs[0];
- auto &right=outputs[1];
- int v;
-
- for (int i = 0; i < left.samples(); i++)
- {
- s32 lsum = 0;
- s32 rsum = 0;
- for (int channel = 0; channel < LYNX_AUDIO_CHANNELS; channel++)
- {
- execute(channel);
- v = m_audio[channel].reg.output;
- if (!(m_master_enable & (0x10 << channel)))
- {
- if (m_attenuation_enable & (0x10 << channel))
- lsum += v * (m_audio[channel].attenuation >> 4);
- else
- lsum += v * 15;
- }
- if (!(m_master_enable & (1 << channel)))
- {
- if (m_attenuation_enable & (1 << channel))
- rsum += v * (m_audio[channel].attenuation & 0xf);
- else
- rsum += v * 15;
- }
- }
- left.put_int(i, lsum, 32768);
- right.put_int(i, rsum, 32768);
- }
-}
diff --git a/src/mame/audio/lynx.h b/src/mame/audio/lynx.h
deleted file mode 100644
index 07bfef1a98b..00000000000
--- a/src/mame/audio/lynx.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Peter Trauner
-#ifndef MAME_AUDIO_LYNX_H
-#define MAME_AUDIO_LYNX_H
-
-#pragma once
-
-
-class lynx_sound_device : public device_t, public device_sound_interface
-{
-public:
- typedef device_delegate<void (void)> timer_delegate;
-
- lynx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- uint8_t read(offs_t offset);
- void write(offs_t offset, uint8_t data);
- void count_down(int nr);
- template <typename... T> void set_timer_delegate(T &&... args) { m_timer_delegate.set(std::forward<T>(args)...); }
-
-protected:
- struct LYNX_AUDIO {
- struct {
- int8_t volume;
- uint8_t feedback;
- int8_t output;
- uint8_t shifter;
- uint8_t bakup;
- uint8_t control1;
- uint8_t counter;
- uint8_t control2;
- } reg;
- uint8_t attenuation;
- uint16_t mask; // 12-bit
- uint16_t shifter; // 12-bit
- float ticks;
- int count;
- };
-
- lynx_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
-
- // device-level overrides
- virtual void device_start() override;
-
- virtual void device_reset() override;
-
- // sound stream update overrides
- virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
-
- void reset_channel(LYNX_AUDIO *channel);
- void shift(int chan_nr);
- void execute(int chan_nr);
- void init();
- void register_save();
-
- sound_stream *m_mixer_channel;
- timer_delegate m_timer_delegate; // this calls lynx_timer_count_down from the driver state
-
- float m_usec_per_sample;
- std::unique_ptr<int[]> m_shift_mask;
- std::unique_ptr<int[]> m_shift_xor;
- uint8_t m_attenuation_enable;
- uint8_t m_master_enable;
- LYNX_AUDIO m_audio[4];
-};
-
-
-class lynx2_sound_device : public lynx_sound_device
-{
-public:
- lynx2_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
-protected:
- // device-level overrides
- virtual void device_start() override;
-
- // sound stream update overrides
- virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
-};
-
-
-DECLARE_DEVICE_TYPE(LYNX_SND, lynx_sound_device)
-DECLARE_DEVICE_TYPE(LYNX2_SND, lynx2_sound_device)
-
-#endif // MAME_AUDIO_LYNX_H
diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp
index 58d7c830b8d..a6a67710cde 100644
--- a/src/mame/audio/midway.cpp
+++ b/src/mame/audio/midway.cpp
@@ -463,7 +463,7 @@ void midway_ssio_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void midway_ssio_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void midway_ssio_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
m_data[param >> 8] = param & 0xff;
}
@@ -653,7 +653,7 @@ void midway_sounds_good_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void midway_sounds_good_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void midway_sounds_good_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
m_pia->portb_w((param >> 1) & 0x0f);
m_pia->ca1_w(~param & 0x01);
@@ -820,7 +820,7 @@ void midway_turbo_cheap_squeak_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void midway_turbo_cheap_squeak_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void midway_turbo_cheap_squeak_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
m_pia->portb_w((param >> 1) & 0x0f);
m_pia->ca1_w(~param & 0x01);
diff --git a/src/mame/audio/midway.h b/src/mame/audio/midway.h
index d633448ba79..38021a863e2 100644
--- a/src/mame/audio/midway.h
+++ b/src/mame/audio/midway.h
@@ -85,7 +85,7 @@ protected:
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// internal helpers
@@ -143,7 +143,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// devices
@@ -183,7 +183,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// devices
diff --git a/src/mame/audio/mw8080bw.cpp b/src/mame/audio/mw8080bw.cpp
index 301a335d010..0d35eb4194a 100644
--- a/src/mame/audio/mw8080bw.cpp
+++ b/src/mame/audio/mw8080bw.cpp
@@ -3115,7 +3115,7 @@ void spcenctr_audio_device::device_start()
save_item(NAME(m_strobe_enable));
- strobe_callback(nullptr, 0U);
+ strobe_callback(0);
}
TIMER_CALLBACK_MEMBER(spcenctr_audio_device::strobe_callback)
diff --git a/src/mame/audio/namco52.cpp b/src/mame/audio/namco52.cpp
index 65e25c87382..48513fb6b2e 100644
--- a/src/mame/audio/namco52.cpp
+++ b/src/mame/audio/namco52.cpp
@@ -56,11 +56,6 @@ WRITE_LINE_MEMBER( namco_52xx_device::reset )
m_cpu->set_input_line(INPUT_LINE_RESET, !state);
}
-TIMER_CALLBACK_MEMBER( namco_52xx_device::latch_callback )
-{
- m_latched_cmd = param;
-}
-
uint8_t namco_52xx_device::K_r()
{
return m_latched_cmd & 0x0f;
@@ -108,16 +103,17 @@ void namco_52xx_device::O_w(uint8_t data)
void namco_52xx_device::write(uint8_t data)
{
- machine().scheduler().synchronize(timer_expired_delegate(FUNC(namco_52xx_device::latch_callback),this), data);
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(namco_52xx_device::write_sync),this), data);
+}
- // TODO: should use chip_select line for this
- m_cpu->pulse_input_line(0, m_irq_duration);
+TIMER_CALLBACK_MEMBER( namco_52xx_device::write_sync )
+{
+ m_latched_cmd = param;
}
WRITE_LINE_MEMBER( namco_52xx_device::chip_select )
{
- // TODO: broken sound when using this
- //m_cpu->set_input_line(0, state);
+ m_cpu->set_input_line(0, state);
}
TIMER_CALLBACK_MEMBER( namco_52xx_device::external_clock_pulse )
@@ -143,7 +139,6 @@ namco_52xx_device::namco_52xx_device(const machine_config &mconfig, const char *
: device_t(mconfig, NAMCO_52XX, tag, owner, clock),
m_cpu(*this, "mcu"),
m_discrete(*this, finder_base::DUMMY_TAG),
- m_irq_duration(attotime::from_usec(100)),
m_basenode(0),
m_extclock(0),
m_romread(*this),
diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h
index b4f56762c9d..a775921b6a7 100644
--- a/src/mame/audio/namco52.h
+++ b/src/mame/audio/namco52.h
@@ -16,7 +16,6 @@ public:
void set_extclock(attoseconds_t clk) { m_extclock = clk; }
auto romread_callback() { return m_romread.bind(); }
auto si_callback() { return m_si.bind(); }
- namco_52xx_device &set_irq_duration(attotime t) { m_irq_duration = t; return *this; }
DECLARE_WRITE_LINE_MEMBER( reset );
WRITE_LINE_MEMBER( chip_select );
@@ -28,7 +27,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
- TIMER_CALLBACK_MEMBER( latch_callback );
+ TIMER_CALLBACK_MEMBER( write_sync );
TIMER_CALLBACK_MEMBER( external_clock_pulse );
private:
@@ -36,7 +35,6 @@ private:
required_device<mb88_cpu_device> m_cpu;
required_device<discrete_device> m_discrete;
- attotime m_irq_duration;
int m_basenode;
attoseconds_t m_extclock;
emu_timer *m_extclock_pulse_timer;
diff --git a/src/mame/audio/namco54.cpp b/src/mame/audio/namco54.cpp
index 0c908b523ec..891cb957d0c 100644
--- a/src/mame/audio/namco54.cpp
+++ b/src/mame/audio/namco54.cpp
@@ -52,10 +52,6 @@
#include "emu.h"
#include "namco54.h"
-TIMER_CALLBACK_MEMBER( namco_54xx_device::latch_callback )
-{
- m_latched_cmd = param;
-}
WRITE_LINE_MEMBER( namco_54xx_device::reset )
{
@@ -92,16 +88,18 @@ void namco_54xx_device::R1_w(uint8_t data)
void namco_54xx_device::write(uint8_t data)
{
- machine().scheduler().synchronize(timer_expired_delegate(FUNC(namco_54xx_device::latch_callback),this), data);
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(namco_54xx_device::write_sync),this), data);
+}
- // TODO: should use chip_select line for this
- m_cpu->pulse_input_line(0, m_irq_duration);
+TIMER_CALLBACK_MEMBER( namco_54xx_device::write_sync )
+{
+ m_latched_cmd = param;
}
+
WRITE_LINE_MEMBER( namco_54xx_device::chip_select )
{
- // TODO: broken sound when using this
- //m_cpu->set_input_line(0, state);
+ m_cpu->set_input_line(0, state);
}
@@ -120,7 +118,6 @@ namco_54xx_device::namco_54xx_device(const machine_config &mconfig, const char *
: device_t(mconfig, NAMCO_54XX, tag, owner, clock),
m_cpu(*this, "mcu"),
m_discrete(*this, finder_base::DUMMY_TAG),
- m_irq_duration(attotime::from_usec(100)),
m_basenode(0),
m_latched_cmd(0)
{
diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h
index b809a59a115..6bb0264820f 100644
--- a/src/mame/audio/namco54.h
+++ b/src/mame/audio/namco54.h
@@ -14,7 +14,6 @@ public:
template <typename T> void set_discrete(T &&tag) { m_discrete.set_tag(std::forward<T>(tag)); }
void set_basenote(int node) { m_basenode = node; }
- namco_54xx_device &set_irq_duration(attotime t) { m_irq_duration = t; return *this; }
DECLARE_WRITE_LINE_MEMBER( reset );
WRITE_LINE_MEMBER( chip_select );
@@ -26,14 +25,11 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
- TIMER_CALLBACK_MEMBER( latch_callback );
-
private:
// internal state
required_device<mb88_cpu_device> m_cpu;
required_device<discrete_device> m_discrete;
- attotime m_irq_duration;
int m_basenode;
uint8_t m_latched_cmd;
@@ -41,6 +37,7 @@ private:
uint8_t R0_r();
void O_w(uint8_t data);
void R1_w(uint8_t data);
+ TIMER_CALLBACK_MEMBER( write_sync );
};
DECLARE_DEVICE_TYPE(NAMCO_54XX, namco_54xx_device)
diff --git a/src/mame/audio/nichisnd.cpp b/src/mame/audio/nichisnd.cpp
index b54ae645559..85f25bde76a 100644
--- a/src/mame/audio/nichisnd.cpp
+++ b/src/mame/audio/nichisnd.cpp
@@ -37,7 +37,8 @@ DEFINE_DEVICE_TYPE(NICHISND, nichisnd_device, "nichisnd", "Nichibutsu Sound Devi
nichisnd_device::nichisnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NICHISND, tag, owner, clock),
m_soundlatch(*this, "soundlatch"),
- m_sound_rom(*this, "audiorom")
+ m_sound_rom(*this, "audiorom"),
+ m_soundbank(*this, "soundbank")
{
}
@@ -45,7 +46,7 @@ void nichisnd_device::nichisnd_map(address_map &map)
{
map(0x0000, 0x77ff).rom().region("audiorom", 0);
map(0x7800, 0x7fff).ram();
- map(0x8000, 0xffff).bankr("soundbank");
+ map(0x8000, 0xffff).bankr(m_soundbank);
}
void nichisnd_device::nichisnd_io_map(address_map &map)
@@ -56,7 +57,7 @@ void nichisnd_device::nichisnd_io_map(address_map &map)
void nichisnd_device::soundbank_w(uint8_t data)
{
- membank("soundbank")->set_entry(data & 0x03);
+ m_soundbank->set_entry(data & 0x03);
}
void nichisnd_device::soundlatch_clear_w(uint8_t data)
@@ -115,8 +116,8 @@ void nichisnd_device::device_start()
SNDROM[0x0213] = 0x00; // DI -> NOP
// initialize sound rom bank
- membank("soundbank")->configure_entries(0, 3, m_sound_rom + 0x8000, 0x8000);
- membank("soundbank")->set_entry(0);
+ m_soundbank->configure_entries(0, 3, m_sound_rom + 0x8000, 0x8000);
+ m_soundbank->set_entry(0);
}
diff --git a/src/mame/audio/nichisnd.h b/src/mame/audio/nichisnd.h
index 5c304430555..30ddda36f7b 100644
--- a/src/mame/audio/nichisnd.h
+++ b/src/mame/audio/nichisnd.h
@@ -46,6 +46,7 @@ protected:
private:
required_device<generic_latch_8_device> m_soundlatch;
required_region_ptr<uint8_t> m_sound_rom;
+ required_memory_bank m_soundbank;
void soundlatch_clear_w(uint8_t data);
void soundbank_w(uint8_t data);
diff --git a/src/mame/audio/nl_segaspeech.h b/src/mame/audio/nl_segaspeech.h
index 2affc0665a1..fcfd4b2e49e 100644
--- a/src/mame/audio/nl_segaspeech.h
+++ b/src/mame/audio/nl_segaspeech.h
@@ -5,6 +5,8 @@
#pragma once
+#include "netlist/nl_setup.h"
+
NETLIST_EXTERNAL(segaspeech)
#endif // MAME_AUDIO_NL_SEGASPEECH_H
diff --git a/src/mame/audio/pinsnd88.cpp b/src/mame/audio/pinsnd88.cpp
index d3f36e3cd50..45f12c09024 100644
--- a/src/mame/audio/pinsnd88.cpp
+++ b/src/mame/audio/pinsnd88.cpp
@@ -159,7 +159,7 @@ void pinsnd88_device::pinsnd88_map(address_map &map)
map(0xc000, 0xffff).rom().region("cpu",0x3c000); // fixed bank
}
-void pinsnd88_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void pinsnd88_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch(id)
{
diff --git a/src/mame/audio/pinsnd88.h b/src/mame/audio/pinsnd88.h
index 13c06392fb5..f6fc88790dd 100644
--- a/src/mame/audio/pinsnd88.h
+++ b/src/mame/audio/pinsnd88.h
@@ -55,7 +55,7 @@ protected:
static const device_timer_id TIMER_SYNC = 0;
private:
// overrides
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
// members
devcb_write_line m_syncq_cb;
diff --git a/src/mame/audio/rax.cpp b/src/mame/audio/rax.cpp
index 79c7a4bacea..1f0a29f78c9 100644
--- a/src/mame/audio/rax.cpp
+++ b/src/mame/audio/rax.cpp
@@ -236,9 +236,9 @@ TIMER_DEVICE_CALLBACK_MEMBER( acclaim_rax_device::dma_timer_callback )
void acclaim_rax_device::update_data_ram_bank()
{
if (m_dmovlay_val == 0)
- membank("databank")->set_entry(0);
+ m_adsp_data_bank->set_entry(0);
else
- membank("databank")->set_entry(1 + m_data_bank);
+ m_adsp_data_bank->set_entry(1 + m_data_bank);
}
void acclaim_rax_device::ram_bank_w(uint16_t data)
@@ -281,7 +281,7 @@ void acclaim_rax_device::adsp_program_map(address_map &map)
void acclaim_rax_device::adsp_data_map(address_map &map)
{
map.unmap_value_high();
- map(0x0000, 0x1fff).bankrw("databank");
+ map(0x0000, 0x1fff).bankrw(m_adsp_data_bank);
map(0x2000, 0x3fdf).ram(); // Internal RAM
map(0x3fe0, 0x3fff).rw(FUNC(acclaim_rax_device::adsp_control_r), FUNC(acclaim_rax_device::adsp_control_w));
}
@@ -302,7 +302,7 @@ void acclaim_rax_device::device_start()
// 1 bank for internal
m_banked_ram = make_unique_clear<uint16_t[]>(0x2000 * 5);
- membank("databank")->configure_entries(0, 5, &m_banked_ram[0], 0x2000*sizeof(uint16_t));
+ m_adsp_data_bank->configure_entries(0, 5, &m_banked_ram[0], 0x2000*sizeof(uint16_t));
}
void acclaim_rax_device::device_reset()
diff --git a/src/mame/audio/segag80.cpp b/src/mame/audio/segag80.cpp
index aa377894643..cf790afc61c 100644
--- a/src/mame/audio/segag80.cpp
+++ b/src/mame/audio/segag80.cpp
@@ -7,12 +7,14 @@
*************************************************************************/
#include "emu.h"
-
#include "audio/segag80.h"
+
+#include "includes/segag80v.h" // FIXME: eliminate the need for this dependency
+
#include "audio/nl_astrob.h"
#include "audio/nl_elim.h"
#include "audio/nl_spacfury.h"
-#include "includes/segag80v.h"
+
#include "sound/samples.h"
diff --git a/src/mame/audio/segaspeech.cpp b/src/mame/audio/segaspeech.cpp
index 81a74350476..cd766d6a2ca 100644
--- a/src/mame/audio/segaspeech.cpp
+++ b/src/mame/audio/segaspeech.cpp
@@ -12,8 +12,7 @@
#include "segaspeech.h"
#include "sound/sp0250.h"
-#include "includes/segag80r.h"
-#include "includes/segag80v.h"
+
#include "audio/nl_segaspeech.h"
#define VERBOSE 0
diff --git a/src/mame/audio/t5182.cpp b/src/mame/audio/t5182.cpp
index c6e62079d29..2b5c4f65bf0 100644
--- a/src/mame/audio/t5182.cpp
+++ b/src/mame/audio/t5182.cpp
@@ -221,12 +221,12 @@ TIMER_CALLBACK_MEMBER( t5182_device::setirq_callback )
m_ourcpu->set_input_line(0,ASSERT_LINE);
}
-void t5182_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void t5182_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
case SETIRQ_CB:
- setirq_callback(ptr, param);
+ setirq_callback(param);
break;
default:
throw emu_fatalerror("Unknown id in t5182_device::device_timer");
diff --git a/src/mame/audio/t5182.h b/src/mame/audio/t5182.h
index c4280cc913a..6fef45ca445 100644
--- a/src/mame/audio/t5182.h
+++ b/src/mame/audio/t5182.h
@@ -42,7 +42,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/mame/audio/tvc.cpp b/src/mame/audio/tvc.cpp
index ddae30f94ed..7baad1f6401 100644
--- a/src/mame/audio/tvc.cpp
+++ b/src/mame/audio/tvc.cpp
@@ -52,7 +52,7 @@ void tvc_sound_device::device_reset()
// device_timer - handler timer events
//-------------------------------------------------
-void tvc_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void tvc_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
m_write_sndint(1);
}
diff --git a/src/mame/audio/tvc.h b/src/mame/audio/tvc.h
index 004ed6975bf..8ad34a97e21 100644
--- a/src/mame/audio/tvc.h
+++ b/src/mame/audio/tvc.h
@@ -33,7 +33,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
private:
diff --git a/src/mame/audio/vboy.cpp b/src/mame/audio/vboy.cpp
index 3d6abbe6b89..1b4a32d8185 100644
--- a/src/mame/audio/vboy.cpp
+++ b/src/mame/audio/vboy.cpp
@@ -4,7 +4,7 @@
vboy.c - Virtual Boy audio emulation
By Richard Bannister and Gil Pedersen.
- MESS device adaptation by R. Belmont
+ MAME device adaptation by R. Belmont
*/
#include "emu.h"
@@ -211,7 +211,7 @@ void vboysnd_device::device_start()
// create the stream
m_stream = stream_alloc(0, 2, rate);
- m_timer = timer_alloc(0, nullptr);
+ m_timer = timer_alloc(0);
m_timer->adjust(attotime::zero, 0, rate ? attotime::from_hz(rate / 4) : attotime::never);
for (int i=0; i<2048; i++)
@@ -259,7 +259,7 @@ void vboysnd_device::device_reset()
// device_timer - called when our device timer expires
//-------------------------------------------------
-void vboysnd_device::device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr)
+void vboysnd_device::device_timer(emu_timer &timer, device_timer_id tid, int param)
{
m_stream->update();
}
diff --git a/src/mame/audio/vboy.h b/src/mame/audio/vboy.h
index ca4de746db3..e73f51b232c 100644
--- a/src/mame/audio/vboy.h
+++ b/src/mame/audio/vboy.h
@@ -4,7 +4,7 @@
vboy.h - Virtual Boy audio emulation
By Richard Bannister and Gil Pedersen.
- MESS device adaptation by R. Belmont
+ MAME device adaptation by R. Belmont
*/
#ifndef MAME_AUDIO_VBOY_H
#define MAME_AUDIO_VBOY_H
@@ -70,7 +70,7 @@ protected:
virtual void device_start() override;
virtual void device_clock_changed() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
diff --git a/src/mame/audio/warpwarp.cpp b/src/mame/audio/warpwarp.cpp
index 5ef7e52659c..c7c0845ff66 100644
--- a/src/mame/audio/warpwarp.cpp
+++ b/src/mame/audio/warpwarp.cpp
@@ -71,7 +71,7 @@ void warpwarp_sound_device::device_start()
save_item(NAME(m_mcount));
}
-void warpwarp_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void warpwarp_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
diff --git a/src/mame/audio/warpwarp.h b/src/mame/audio/warpwarp.h
index d4bcdc15d23..34add2c258d 100644
--- a/src/mame/audio/warpwarp.h
+++ b/src/mame/audio/warpwarp.h
@@ -29,7 +29,7 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// internal state
diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp
index 20424857d77..636dc9b27f9 100644
--- a/src/mame/audio/williams.cpp
+++ b/src/mame/audio/williams.cpp
@@ -35,6 +35,7 @@
#include "machine/6821pia.h"
#include "machine/rescap.h"
#include "cpu/m6809/m6809.h"
+#include "cpu/m6800/m6800.h"
#include "sound/dac.h"
#include "sound/hc55516.h"
#include "sound/okim6295.h"
@@ -59,6 +60,9 @@
DEFINE_DEVICE_TYPE(WILLIAMS_CVSD_SOUND, williams_cvsd_sound_device, "wmscvsd", "Williams CVSD Sound Board")
DEFINE_DEVICE_TYPE(WILLIAMS_NARC_SOUND, williams_narc_sound_device, "wmsnarc", "Williams NARC Sound Board")
DEFINE_DEVICE_TYPE(WILLIAMS_ADPCM_SOUND, williams_adpcm_sound_device, "wmsadpcm", "Williams ADPCM Sound Board")
+DEFINE_DEVICE_TYPE(WILLIAMS_S4_SOUND, williams_s4_sound_device, "wmss4", "Williams System 4 Sound Board")
+DEFINE_DEVICE_TYPE(WILLIAMS_S6_SOUND, williams_s6_sound_device, "wmss6", "Williams System 6 Sound Board")
+DEFINE_DEVICE_TYPE(WILLIAMS_S9_SOUND, williams_s9_sound_device, "wmss9", "Williams System 9 Sound Board")
@@ -245,7 +249,7 @@ void williams_cvsd_sound_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void williams_cvsd_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void williams_cvsd_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
// process incoming data write
m_pia->portb_w(param & 0xff);
@@ -581,7 +585,7 @@ void williams_narc_sound_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void williams_narc_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void williams_narc_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
@@ -817,7 +821,7 @@ void williams_adpcm_sound_device::device_reset()
// device_timer - timer callbacks
//-------------------------------------------------
-void williams_adpcm_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void williams_adpcm_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
@@ -836,3 +840,360 @@ void williams_adpcm_sound_device::device_timer(emu_timer &timer, device_timer_id
break;
}
}
+
+
+//**************************************************************************
+// S4 SOUND BOARD (simple sound card used in system 3/4 pinballs)
+//**************************************************************************
+
+//-------------------------------------------------
+// williams_s4_sound_device - constructor
+//-------------------------------------------------
+
+williams_s4_sound_device::williams_s4_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, WILLIAMS_S4_SOUND, tag, owner, clock)
+ , device_mixer_interface(mconfig, *this)
+ , m_cpu(*this, "cpu")
+ , m_pia(*this, "pia")
+{
+}
+
+//-------------------------------------------------
+// write - handle an external write
+//-------------------------------------------------
+
+void williams_s4_sound_device::write(u8 data)
+{
+ // Handle S2 (electronic or tones)
+ data &= ioport("S4")->read();
+ if ((data & 0x9f) != 0x9f)
+ {
+ m_pia->portb_w(data);
+ m_pia->cb1_w(0);
+ }
+ m_pia->cb1_w(1);
+}
+
+//-------------------------------------------------
+// audio CPU map
+//-------------------------------------------------
+
+void williams_s4_sound_device::williams_s4_map(address_map &map)
+{
+ map.global_mask(0x0fff);
+ map(0x0000, 0x00ff).ram();
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x0800, 0x0fff).rom().region("audiocpu", 0);
+}
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+void williams_s4_sound_device::device_add_mconfig(machine_config &config)
+{
+ M6808(config, m_cpu, 3580000);
+ m_cpu->set_addrmap(AS_PROGRAM, &williams_s4_sound_device::williams_s4_map);
+
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.5);
+
+ PIA6821(config, m_pia, 0);
+ m_pia->writepa_handler().set("dac", FUNC(dac_byte_interface::data_w));
+ m_pia->irqa_handler().set_inputline(m_cpu, M6808_IRQ_LINE);
+ m_pia->irqb_handler().set_inputline(m_cpu, M6808_IRQ_LINE);
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void williams_s4_sound_device::device_start()
+{
+ // register for save states
+ save_item(NAME(m_dummy));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void williams_s4_sound_device::device_reset()
+{
+ // reset interrupt states
+ m_cpu->set_input_line(M6808_IRQ_LINE, CLEAR_LINE);
+}
+
+INPUT_PORTS_START( williams_s4 )
+ PORT_START("S4")
+ PORT_BIT( 0xbf, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_DIPNAME( 0x40, 0x00, "Sounds" )
+ PORT_DIPSETTING( 0x00, "Set 1" )
+ PORT_DIPSETTING( 0x40, "Set 2" )
+ PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, williams_s4_sound_device, audio_nmi, 1)
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER( williams_s4_sound_device::audio_nmi )
+{
+ // Diagnostic button sends a pulse to NMI pin
+ if (newval==CLEAR_LINE)
+ m_cpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+}
+
+//-------------------------------------------------
+// device_input_ports - return a pointer to
+// the device's I/O ports
+//-------------------------------------------------
+
+ioport_constructor williams_s4_sound_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( williams_s4 );
+}
+
+
+//**************************************************************************
+// S6 SOUND BOARD (s4 with speech, used in system 6/6a/7 pinballs)
+//**************************************************************************
+
+//-------------------------------------------------
+// williams_s6_sound_device - constructor
+//-------------------------------------------------
+
+williams_s6_sound_device::williams_s6_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, WILLIAMS_S6_SOUND, tag, owner, clock)
+ , device_mixer_interface(mconfig, *this)
+ , m_cpu(*this, "cpu")
+ , m_pia(*this, "pia")
+ , m_hc(*this, "hc")
+{
+}
+
+//-------------------------------------------------
+// write - handle an external write
+//-------------------------------------------------
+
+void williams_s6_sound_device::write(u8 data)
+{
+ data = bitswap<8>(data, 6, 7, 5, 4, 3, 2, 1, 0) | 0x40;
+ // Handle dips
+ data &= ioport("S6")->read();
+ if ((data & 0x9f) != 0x9f)
+ {
+ m_pia->portb_w(data);
+ m_pia->cb1_w(0);
+ }
+ m_pia->cb1_w(1);
+}
+
+//-------------------------------------------------
+// pb_w - acknowledge interrupt
+//-------------------------------------------------
+
+void williams_s6_sound_device::pb_w(u8 data)
+{
+ m_pia->cb1_w(1);
+}
+
+//-------------------------------------------------
+// audio CPU map
+//-------------------------------------------------
+
+void williams_s6_sound_device::williams_s6_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x00ff).ram();
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x3000, 0x7fff).rom().region("audiocpu", 0);
+}
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+void williams_s6_sound_device::device_add_mconfig(machine_config &config)
+{
+ M6802(config, m_cpu, 3580000);
+ m_cpu->set_addrmap(AS_PROGRAM, &williams_s6_sound_device::williams_s6_map);
+
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.5);
+
+ HC55516(config, m_hc, 0).add_route(ALL_OUTPUTS, *this, 1.00);
+
+ PIA6821(config, m_pia, 0);
+ m_pia->writepa_handler().set("dac", FUNC(dac_byte_interface::data_w));
+ m_pia->writepb_handler().set(FUNC(williams_s6_sound_device::pb_w));
+ m_pia->ca2_handler().set(m_hc, FUNC(hc55516_device::digit_w));
+ m_pia->cb2_handler().set(m_hc, FUNC(hc55516_device::clock_w));
+ m_pia->irqa_handler().set_inputline(m_cpu, M6802_IRQ_LINE);
+ m_pia->irqb_handler().set_inputline(m_cpu, M6802_IRQ_LINE);
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void williams_s6_sound_device::device_start()
+{
+ // register for save states
+ save_item(NAME(m_dummy));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void williams_s6_sound_device::device_reset()
+{
+ // reset interrupt states
+ m_cpu->set_input_line(M6808_IRQ_LINE, CLEAR_LINE);
+}
+
+INPUT_PORTS_START( williams_s6 )
+ PORT_START("S6")
+ PORT_BIT( 0x9f, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_DIPNAME( 0x20, 0x00, "Speech" )
+ PORT_DIPSETTING( 0x20, "Off" )
+ PORT_DIPSETTING( 0x00, "On" )
+ PORT_DIPNAME( 0x40, 0x40, "Sounds" )
+ PORT_DIPSETTING( 0x00, "Tones" )
+ PORT_DIPSETTING( 0x40, "Synth" )
+ PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, williams_s6_sound_device, audio_nmi, 1)
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER( williams_s6_sound_device::audio_nmi )
+{
+ // Diagnostic button sends a pulse to NMI pin
+ if (newval==CLEAR_LINE)
+ m_cpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+}
+
+//-------------------------------------------------
+// device_input_ports - return a pointer to
+// the device's I/O ports
+//-------------------------------------------------
+
+ioport_constructor williams_s6_sound_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( williams_s6 );
+}
+
+
+//**************************************************************************
+// S9 SOUND BOARD (s6 with different interface, used in system 9 pinballs)
+//**************************************************************************
+
+//-------------------------------------------------
+// williams_s9_sound_device - constructor
+//-------------------------------------------------
+
+williams_s9_sound_device::williams_s9_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, WILLIAMS_S9_SOUND, tag, owner, clock)
+ , device_mixer_interface(mconfig, *this)
+ , m_cpu(*this, "cpu")
+ , m_pia(*this, "pia")
+ , m_hc(*this, "hc")
+{
+}
+
+//-------------------------------------------------
+// write - handle an external write
+//-------------------------------------------------
+
+void williams_s9_sound_device::write(u8 data)
+{
+ m_pia->porta_w(data);
+}
+
+//-------------------------------------------------
+// strobe - tell PIA to process the input
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER(williams_s9_sound_device::strobe)
+{
+ m_pia->ca1_w(state);
+}
+
+//-------------------------------------------------
+// audio CPU map
+//-------------------------------------------------
+
+void williams_s9_sound_device::williams_s9_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0x2000, 0x2003).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x8000, 0xffff).rom().region("audiocpu", 0 );
+}
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+void williams_s9_sound_device::device_add_mconfig(machine_config &config)
+{
+ M6802(config, m_cpu, XTAL(4'000'000));
+ m_cpu->set_addrmap(AS_PROGRAM, &williams_s9_sound_device::williams_s9_map);
+
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.5);
+
+ HC55516(config, m_hc, 0).add_route(ALL_OUTPUTS, *this, 1.00);
+
+ PIA6821(config, m_pia, 0);
+ m_pia->set_port_a_input_overrides_output_mask(0xff);
+ m_pia->writepb_handler().set("dac", FUNC(dac_byte_interface::data_w));
+ m_pia->ca2_handler().set(m_hc, FUNC(hc55516_device::clock_w));
+ m_pia->cb2_handler().set(m_hc, FUNC(hc55516_device::digit_w));
+ m_pia->irqa_handler().set_inputline(m_cpu, M6802_IRQ_LINE);
+ m_pia->irqb_handler().set_inputline(m_cpu, M6802_IRQ_LINE);
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void williams_s9_sound_device::device_start()
+{
+ // register for save states
+ save_item(NAME(m_dummy));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void williams_s9_sound_device::device_reset()
+{
+ // reset interrupt states
+ m_cpu->set_input_line(M6802_IRQ_LINE, CLEAR_LINE);
+}
+
+INPUT_PORTS_START( williams_s9 )
+ PORT_START("S9")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, williams_s9_sound_device, audio_nmi, 1)
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER( williams_s9_sound_device::audio_nmi )
+{
+ // Diagnostic button sends a pulse to NMI pin
+ if (newval==CLEAR_LINE)
+ m_cpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+}
+
+//-------------------------------------------------
+// device_input_ports - return a pointer to
+// the device's I/O ports
+//-------------------------------------------------
+
+ioport_constructor williams_s9_sound_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( williams_s9 );
+}
+
+
diff --git a/src/mame/audio/williams.h b/src/mame/audio/williams.h
index db15bfab4bb..e970b6e49b9 100644
--- a/src/mame/audio/williams.h
+++ b/src/mame/audio/williams.h
@@ -9,6 +9,7 @@
****************************************************************************/
#include "machine/6821pia.h"
+#include "cpu/m6800/m6800.h"
#include "cpu/m6809/m6809.h"
#include "sound/hc55516.h"
#include "sound/okim6295.h"
@@ -23,6 +24,9 @@
DECLARE_DEVICE_TYPE(WILLIAMS_CVSD_SOUND, williams_cvsd_sound_device)
DECLARE_DEVICE_TYPE(WILLIAMS_NARC_SOUND, williams_narc_sound_device)
DECLARE_DEVICE_TYPE(WILLIAMS_ADPCM_SOUND, williams_adpcm_sound_device)
+DECLARE_DEVICE_TYPE(WILLIAMS_S4_SOUND, williams_s4_sound_device)
+DECLARE_DEVICE_TYPE(WILLIAMS_S6_SOUND, williams_s6_sound_device)
+DECLARE_DEVICE_TYPE(WILLIAMS_S9_SOUND, williams_s9_sound_device)
@@ -57,7 +61,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// devices
@@ -112,7 +116,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// timer IDs
@@ -176,7 +180,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
private:
// devices
@@ -190,3 +194,94 @@ private:
u8 m_talkback;
u8 m_sound_int_state;
};
+
+
+// ======================> williams_s4_sound_device
+
+class williams_s4_sound_device : public device_t, public device_mixer_interface
+{
+public:
+ // construction/destruction
+ williams_s4_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ // read/write
+ void write(u8 data);
+ DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
+
+protected:
+
+ // device-level overrides
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual ioport_constructor device_input_ports() const override;
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+ // devices
+ void williams_s4_map(address_map &map);
+ required_device<m6808_cpu_device> m_cpu;
+ required_device<pia6821_device> m_pia;
+ u8 m_dummy = 0; // needed for save-state support
+};
+
+
+// ======================> williams_s6_sound_device
+
+class williams_s6_sound_device : public device_t, public device_mixer_interface
+{
+public:
+ // construction/destruction
+ williams_s6_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ // read/write
+ void write(u8 data);
+ DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
+
+protected:
+
+ // device-level overrides
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual ioport_constructor device_input_ports() const override;
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+ void pb_w(u8 data);
+ // devices
+ void williams_s6_map(address_map &map);
+ required_device<m6802_cpu_device> m_cpu;
+ required_device<pia6821_device> m_pia;
+ required_device<hc55516_device> m_hc;
+ u8 m_dummy = 0; // needed for save-state support
+};
+
+
+// ======================> williams_s9_sound_device
+
+class williams_s9_sound_device : public device_t, public device_mixer_interface
+{
+public:
+ // construction/destruction
+ williams_s9_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ // read/write
+ void write(u8 data);
+ DECLARE_WRITE_LINE_MEMBER(strobe);
+ DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
+
+protected:
+
+ // device-level overrides
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual ioport_constructor device_input_ports() const override;
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+ // devices
+ void williams_s9_map(address_map &map);
+ required_device<m6802_cpu_device> m_cpu;
+ required_device<pia6821_device> m_pia;
+ required_device<hc55516_device> m_hc;
+ u8 m_dummy = 0; // needed for save-state support
+};
diff --git a/src/mame/audio/wiping.cpp b/src/mame/audio/wiping.cpp
index e16ea5c95e8..1e1ab744400 100644
--- a/src/mame/audio/wiping.cpp
+++ b/src/mame/audio/wiping.cpp
@@ -23,8 +23,8 @@ wiping_sound_device::wiping_sound_device(const machine_config &mconfig, const ch
: device_t(mconfig, WIPING_CUSTOM, tag, owner, clock),
device_sound_interface(mconfig, *this),
m_last_channel(nullptr),
- m_sound_prom(nullptr),
- m_sound_rom(nullptr),
+ m_sound_prom(*this, "soundproms"),
+ m_sound_rom(*this, "samples"),
m_num_voices(0),
m_sound_enable(0),
m_stream(nullptr)
@@ -52,9 +52,6 @@ void wiping_sound_device::device_start()
m_num_voices = 8;
m_last_channel = m_channel_list + m_num_voices;
- m_sound_rom = machine().root_device().memregion("samples")->base();
- m_sound_prom = machine().root_device().memregion("soundproms")->base();
-
/* start with sound enabled, many games don't have a sound enable register */
m_sound_enable = 1;
@@ -69,14 +66,11 @@ void wiping_sound_device::device_start()
save_item(NAME(m_soundregs));
- for (int i = 0; i < MAX_VOICES; i++)
- {
- save_item(NAME(m_channel_list[i].frequency), i);
- save_item(NAME(m_channel_list[i].counter), i);
- save_item(NAME(m_channel_list[i].volume), i);
- save_item(NAME(m_channel_list[i].oneshot), i);
- save_item(NAME(m_channel_list[i].oneshotplaying), i);
- }
+ save_item(STRUCT_MEMBER(m_channel_list, frequency));
+ save_item(STRUCT_MEMBER(m_channel_list, counter));
+ save_item(STRUCT_MEMBER(m_channel_list, volume));
+ save_item(STRUCT_MEMBER(m_channel_list, oneshot));
+ save_item(STRUCT_MEMBER(m_channel_list, oneshotplaying));
}
/********************************************************************************/
diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h
index 1f50683387e..6a5ca1c1de5 100644
--- a/src/mame/audio/wiping.h
+++ b/src/mame/audio/wiping.h
@@ -20,10 +20,10 @@ protected:
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
private:
- /* 8 voices max */
+ // 8 voices max
static constexpr unsigned MAX_VOICES = 8;
- /* this structure defines the parameters for a channel */
+ // this structure defines the parameters for a channel
struct wp_sound_channel
{
int frequency;
@@ -36,18 +36,18 @@ private:
// internal state
- /* data about the sound system */
+ // data about the sound system
wp_sound_channel m_channel_list[MAX_VOICES];
wp_sound_channel *m_last_channel;
- /* global sound parameters */
- const uint8_t *m_sound_prom;
- const uint8_t *m_sound_rom;
+ // global sound parameters
+ required_region_ptr<uint8_t> m_sound_prom;
+ required_region_ptr<uint8_t> m_sound_rom;
int m_num_voices;
int m_sound_enable;
sound_stream *m_stream;
- /* mixer tables and internal buffers */
+ // mixer tables and internal buffers
std::vector<short> m_mixer_buffer;
uint8_t m_soundregs[0x4000];
diff --git a/src/mame/drivers/2mindril.cpp b/src/mame/drivers/2mindril.cpp
index 5630b00edc3..a102fd6df03 100644
--- a/src/mame/drivers/2mindril.cpp
+++ b/src/mame/drivers/2mindril.cpp
@@ -88,7 +88,7 @@ private:
};
protected:
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
#endif
};
@@ -132,7 +132,7 @@ void _2mindril_state::coins_w(u8 data)
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
*/
#ifdef UNUSED_FUNCTION
-void _2mindril_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void _2mindril_state::device_timer(emu_timer &timer, device_timer_id id, int param)
{
switch (id)
{
diff --git a/src/mame/drivers/4enraya.cpp b/src/mame/drivers/4enraya.cpp
index 1cfeb83af07..fcd88aae270 100644
--- a/src/mame/drivers/4enraya.cpp
+++ b/src/mame/drivers/4enraya.cpp
@@ -48,7 +48,7 @@
Video :
No scrolling , no sprites.
- 32x32 Tilemap stored in VRAM (10 bits/tile (tile numebr 0-1023))
+ 32x32 Tilemap stored in VRAM (10 bits/tile (tile number 0-1023))
3 gfx ROMS
ROM1 - R component (ROM ->(parallel in) shift register 74166 (serial out) -> jamma output
@@ -87,7 +87,7 @@
around the center. (each ghost represent a number).
Bet using START, and once done, press UP (deal), to allow the pacman eat all
- ghosts, revealing the five numbers (like italian poker games without cards).
+ ghosts, revealing the five numbers (like Italian poker games without cards).
Now you have an arrow as cursor. Place it under the each number you want to
discard and press START to eliminate the number and place the representative
@@ -102,7 +102,7 @@
If you're playing the Double-Up, choose left or right for Big and Small.
If you win, you'll get the bet amount x2. If you lose, your pacman will die.
- Coin with A or B to exit the gambling game and play the ultra-adictive
+ Coin with A or B to exit the gambling game and play the ultra-addictive
pacman front game again!...
***************************************************************************
@@ -142,7 +142,7 @@
1x oscillator 18.432 MHz.
1x 8 DIP Switches bank (near ay8910).
- 1x Volume Pot (betweeen the audio amp and ay8910).
+ 1x Volume Pot (between the audio amp and ay8910).
1x Motorola MCT1413 (High Current Darlington Transistor Array, same as ULN2003).
1x 2x28 Edge connector (pins 1-2-27-28 from component side are GND).
@@ -694,6 +694,28 @@ ROM_START( tourpgum )
ROM_LOAD( "3_tourvision.ic17", 0x10000, 0x8000, CRC(0b081663) SHA1(86dbf69e819ced12ac7cb7a4839fe0ba677580ae) )
ROM_END
+ROM_START( strker )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ic52", 0x0000, 0x8000, CRC(745beb7f) SHA1(1ead50897d27e338b768b0335d4dbd9581c93372) ) // 1ST AND 2ND HALF IDENTICAL
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "1.ic19", 0x2000, 0x2000, CRC(30b66fcd) SHA1(42b2fb20036e0126abf44b39855eaab449206c71) ) // 1ST AND 2ND HALF IDENTICAL
+ ROM_CONTINUE( 0x2000, 0x4000 )
+ ROM_CONTINUE( 0x6000, 0x2000 )
+ ROM_CONTINUE( 0x0000, 0x6000 )
+ ROM_CONTINUE( 0x0000, 0x2000 )
+ ROM_LOAD( "2.ic18", 0xa000, 0x2000, CRC(002b5537) SHA1(c293e4307a817064ee1c868491ac927c096b9f5d) ) // x00xxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0xa000, 0x4000 )
+ ROM_CONTINUE( 0xe000, 0x2000 )
+ ROM_CONTINUE( 0x8000, 0x6000 )
+ ROM_CONTINUE( 0x8000, 0x2000 )
+ ROM_LOAD( "3.ic17", 0x12000, 0x2000, CRC(9be6aeb7) SHA1(cc7daa39f30c7dfd529b22815af3b62aad79934d) ) // x00xxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x12000, 0x4000 )
+ ROM_CONTINUE( 0x16000, 0x2000 )
+ ROM_CONTINUE( 0x10000, 0x6000 )
+ ROM_CONTINUE( 0x10000, 0x2000 )
+ROM_END
+
/*
Unknown 'Pac-Man' gambling game.
*/
@@ -742,6 +764,17 @@ ROM_START(unkpacgb)
ROM_IGNORE(0x4000)
ROM_END
+ROM_START(unkpacgc)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD( "4", 0x0000, 0x2000, CRC(9f620694) SHA1(957d5c6636d40a74579d3f20be8f0b7e58516935) )
+ ROM_LOAD( "5", 0x8000, 0x2000, CRC(b107ad7e) SHA1(33ab0a63f8a57dd7efd5c5efae7c6e8bda1a65cc) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "1", 0x2000, 0x2000, CRC(d00b04ea) SHA1(e65901d8586507257d74ab103001207e28fa28af) )
+ ROM_LOAD( "2", 0x4000, 0x2000, CRC(4a123a3d) SHA1(26300b8af0d0df0023a153a212699727311d1b74) )
+ ROM_LOAD( "3", 0x0000, 0x2000, CRC(f7cd9de0) SHA1(e0a6b316811ef7c3d3aeb853a9c50f9fdf1f2ff2) )
+ROM_END
+
/*
Unknown 'Space Invaders' gambling game.
All roms are 0x8000 but only the last 0x2000 of each is used.
@@ -836,10 +869,12 @@ GAME( 1990, 4enraya, 0, _4enraya, 4enraya, _4enraya_state, empty_init, R
GAME( 1990, 4enrayaa, 4enraya, _4enraya, 4enraya, _4enraya_state, empty_init, ROT0, "IDSA", "4 En Raya (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1992?, tourpgum, 0, tourpgum, tourpgum, unk_gambl_state, empty_init, ROT0, u8"Paradise Automatique / TourVisión", u8"unknown Paradise Automatique / TourVisión bowling themed poker game with gum prizes (France)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992?, strker, 0, tourpgum, tourpgum, unk_gambl_state, empty_init, ROT0, "<unknown>", "Striker", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 'RAM NO GOOD', if bypassed it resets after coining up
-GAME( 199?, unkpacg, 0, unkpacg, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 199?, unkpacgb, unkpacg, unkpacg, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 199?, unkpacga, unkpacg, unkpacga, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "IDI SRL", "Pucman", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, unkpacg, 0, unkpacg, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, unkpacgb, unkpacg, unkpacg, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, unkpacgc, unkpacg, unkpacg, unkpacg, unk_gambl_state, empty_init, ROT0, "<unknown>", "Coco Louco", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, unkpacga, unkpacg, unkpacga, unkpacg, unk_gambl_enc_state, empty_init, ROT0, "IDI SRL", "Pucman", MACHINE_SUPPORTS_SAVE )
GAME( 199?, unksig, 0, unkpacg, unkfr, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 199?, unksiga, unksig, unkpacg, unkfr, unk_gambl_enc_state, empty_init, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/a1supply.cpp b/src/mame/drivers/a1supply.cpp
index 0567a728287..d5a4a94f411 100644
--- a/src/mame/drivers/a1supply.cpp
+++ b/src/mame/drivers/a1supply.cpp
@@ -60,7 +60,7 @@ void a1supply_state::rom_map(address_map &map)
void a1supply_state::a1supply(machine_config &config)
{
// basic machine hardware
- i4040_cpu_device &cpu(I4040(config, "maincpu", 4_MHz_XTAL / 4)); // divider not verified
+ i4040_cpu_device &cpu(I4040(config, "maincpu", 4_MHz_XTAL / 7)); // P4201A divides the incoming clock by seven to get the multi-phase clock
cpu.set_rom_map(&a1supply_state::rom_map);
// video hardware
diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp
index 723ea2600fa..6a9a2f7aa44 100644
--- a/src/mame/drivers/a2600.cpp
+++ b/src/mame/drivers/a2600.cpp
@@ -8,6 +8,78 @@ TODO:
- Move the 2 32-in-1 rom dumps into their own driver
- Add 128-in-1 driver
+ Atari A2600 Point of Purchase Display Unit
+
+TODO:
+- Does the reset by pressing game select buttons only work on the infinite
+ timer mode or also in the other modes?
+- Asteroids is an 8KB software title with banking. Does the display unit
+ use a special 4KB version or is there banking hardware installed?
+- 2 joysticks and 2 paddles are hooked up to the unit; unknown how.
+
+
+Selection buttons on the kiosk unit:
+2 "Press to select game number" buttons
+1 "Press to start" button
+
+
+Switch A8 controls the gameplay duration. Factory default is one minute
+gameplay duration.
+1 - 2 minute gameplay
+2 - 1 minute gameplay
+3 - 30 second gameplay
+4 - Infinite gameplay (gameplay allowed until end of game or until a "Press
+ to select game number" button is pressed)
+
+This seems to be completely hardware controlled; it is never queried or set up
+by the game selection rom.
+
+
+The POP unit comes with the following 42 games installed:
+Location Game
+D6 Prog ROM 1 ADVENTURE (CX2613)
+E6 Prog ROM 2 AIR-SEA BATTLE (CX2602)
+F6 Prog ROM 3 ASTEROIDS (CX2649)
+J6 Prog ROM 4 BACKGAMMON (CX2617)
+K6 Prog ROM 5 BASKETBALL (CX2624)
+L6 Prog ROM 6 BOWLING (CX2628)
+M6 Prog ROM 7 BREAKOUT (CX2622)
+C5 Prog ROM 8 CANYON BOMBER (CX2607)
+D5 Prog ROM 9 CASINO (CX2652)
+E5 Prog ROM 10 CIRCUS ATARI (CX2630)
+F5 Prog ROM 11 COMBAT (CX2601)
+J5 Prog ROM 12 DODGE'EM (CX2637)
+K5 Prog ROM 13 FOOTBALL (CX2625)
+L5 Prog ROM 14 GOLF (CX2634)
+M5 Prog ROM 15 HANGMAN (CX2662)
+C4 Prog ROM 16 HOMERUN (CX2623)
+D4 Prog ROM 17 H. CANNONBALL (CX2627)
+E4 Prog ROM 18 MAZE CRAZE (CX2635)
+F4 Prog ROM 19 MISSILE CMD (CX2638)
+J4 Prog ROM 20 NIGHT DRIVER (CX2633)
+K4 Prog ROM 21 OTHELLO (CX2639)
+L4 Prog ROM 22 OUTLAW (CX2605)
+M4 Prog ROM 23 SOCCER (CX2616)
+C3 Prog ROM 24 SKYDIVER (CX2629)
+D3 Prog ROM 25 sLOT RAcERS (CX2606)
+E3 Prog ROM 26 SPACE INVADERS (CX2632)
+F3 Prog ROM 27 STREET RACER (CX2612)
+J3 Prog ROM 28 SUPERMAN (CX2631)
+K3 Prog ROM 29 3D TIC-TAC-TOE (CX2618)
+L3 Prog ROM 30 VIDEO CHECKERS (CX2636)
+M3 Prog ROM 31 VIDEO CHESS (CX2645)
+C2 Prog ROM 32 VIDEO OLYMPICS (CX2621)
+D2 Prog ROM 33 VIDEO PINBALL (CX2648)
+E2 Prog ROM 34 WAR LORDS (CX2610)
+F2 Prog ROM 35 BERZERK (CX2650)
+J2 Prog ROM 36 HAUNTED HOUSE (CX2654)
+K2 Prog ROM 37 MATH GRAND PRIX (CX2658)